Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2016-10-30, 12:37


ElectronicArts







Wiek: 28
Na forum: 4761 dni
Posty: 32
Nick w MP: Tymbark



Respekt: 45,3

Mam takie pytanie odno?nie zmiany textury w obiekcie a mianowicie czy da si? zmieni? texture w domy?lnym obiekcie czyli nie tym dodanym przez nas np. ?awka na ?rodku drogi tylko np. pod?o?e kt?re znajduje si? powiedzmy w lv (domy?lnie)? Je?li si? da to w jaki spos?b?

Dla og?lnego wygl?du poka?e m?j przyk?ad z zastosowaniem 3 ?awek kt?re znajduj? si? na drodze.

Kod:

#include <a_samp>

new lawka [MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
lawka[playerid] = CreatePlayerObject(playerid, 1280, 2045.93701, 1326.43445, 10.07660, 0.00000, 0.00000, 0.00000);
SetPlayerObjectMaterial(playerid, lawka[playerid], 1, 1410, "break_f_w", "CJ_SLATEDWOOD", 0);

lawka[playerid] = CreatePlayerObject(playerid, 1280, 2045.93701, 1329.43445, 10.07660, 0.00000, 0.00000, 0.00000);
SetPlayerObjectMaterial(playerid, lawka[playerid], 1, 1446, "break_fence1", "compfence2_LAe", 0);

lawka[playerid] = CreatePlayerObject(playerid, 1280, 2045.93701, 1332.43445, 10.07660, 0.00000, 0.00000, 0.00000);
SetPlayerObjectMaterial(playerid, lawka[playerid], 1, 1408, "break_fence1", "CJ_W_wood", 0);

public OnFilterScriptInit()
{
// Trzy ?awki dla kt?rych zosta?y zmienione tekstury
CreateObject(1280, 2045.93701, 1326.43445, 10.07660, 0.00000, 0.00000, 0.00000);
CreateObject(1280, 2045.93701, 1329.43445, 10.07660, 0.00000, 0.00000, 0.00000);
CreateObject(1280, 2045.93701, 1332.43445, 10.07660, 0.00000, 0.00000, 0.00000);
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-30, 12:42


Combacior







Wiek: 29
Na forum: 5796 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Nie da si? modyfikowa? domy?lnych obiekt?w, gdy? nie posiadaj? one swojego ID. Jedyne co mo?esz zrobi?, to usun?? dany obiekt (RemoveBuildingForPlayer). na jego miejsce stworzy? identyczny i wtedy podmieni? tekstur?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-30, 13:09


ElectronicArts







Wiek: 28
Na forum: 4761 dni
Posty: 32
Nick w MP: Tymbark



Respekt: 45,3

Zrobi?em tak jak piszesz tylko jest problem ze zmian? textury, zastosowa?em co? takiego.

Kod:

#include <a_samp>

new podloze [MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
podloze[playerid] = CreatePlayerObject(playerid, 7467, 1637.39063, 2143.21875, 9.82031, 0.00000, 0.00000, 0.00000);
SetPlayerObjectMaterial(playerid, podloze[playerid], 10, 1410, "break_f_w", "CJ_SLATEDWOOD", 0);

// Usuni?te pod?o?e.
RemoveBuildingForPlayer(playerid, 7467, 1637.3906, 2143.2188, 9.8203, 0.25);
RemoveBuildingForPlayer(playerid, 7797, 1637.3906, 2143.2188, 9.8203, 0.25);
return 1;
}

public OnFilterScriptInit()
{
CreateObject(7467, 1637.39063, 2143.21875, 9.82031, 0.00000, 0.00000, 0.00000);
return 1;
}


Troche dziwne jest to ?e usuwaj?c jedno pod?o?e usuwa dwa obiekty, mo?e co? z tym jest nie tak aczkolwiek pr?bowa?em r??nych sposob?w metodami pr?b i b??d?w i by? taki sam efekt je?li chodzi o zmian? textury.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-30, 13:40


Combacior







Wiek: 29
Na forum: 5796 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Z czym jest problem, bo nie bardzo rozumiem? Co do usuni?cia dw?ch obiekt?w, to je?li sprawdzisz sobie model usuni?tych obiekt?w (7467 i 7797) to zauwa?ysz, ?e s? one niemal identyczne. To jest jeden obiekt, ale zbudowany z dw?ch cz??ci (LOD). To jest normalne, niczym si? tutaj przejmowa? nie musisz.

Co do przedstawionego kodu, to po co tworzysz obiekt raz globalnie w OnFilterScriptInit i drugi raz dla gracza w OnPlayerConnect? Wystarczy raz globalnie.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-30, 13:49


ElectronicArts







Wiek: 28
Na forum: 4761 dni
Posty: 32
Nick w MP: Tymbark



Respekt: 45,3

Globalnie czyli w jaki spos?b musz? si? pozby? tego

Kod:

podloze[playerid] = CreatePlayerObject(playerid, 7467, 1637.39063, 2143.21875, 9.82031, 0.00000, 0.00000, 0.00000);


?eby to normalnie funkcjonowa?o bo chyba musz? si? tego pozby? je?eli obiekt b?dzie w OnFilterScriptInit?

Zrobi?em co? takiego

Kod:

#include <a_samp>

new podloze [MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
SetPlayerObjectMaterial(playerid, podloze[playerid], 10, 1410, "break_f_w", "CJ_SLATEDWOOD", 0);

// Usuni?te pod?o?e.
RemoveBuildingForPlayer(playerid, 7467, 1637.3906, 2143.2188, 9.8203, 0.25);
RemoveBuildingForPlayer(playerid, 7797, 1637.3906, 2143.2188, 9.8203, 0.25);
return 1;
}


Problem polega na tym ?e nie zmienia tekstury obiektu.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-30, 14:11


Combacior







Wiek: 29
Na forum: 5796 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Stw?rz obiekt i podmie? jego tekstur? w calllbacku OnGameModeInit/OnFilterScriptInit, a w OnPlayerConnect usu? domy?lny obiekt.

Kod:

public OnFilterScriptInit()
{
new objectid = CreateObject(...);
SetObjectMaterial(...);
return 1;
}

public OnPlayerConnect(playerid)
{
RemoveBuildingForPlayer(...);
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-10-30, 15:04


ElectronicArts







Wiek: 28
Na forum: 4761 dni
Posty: 32
Nick w MP: Tymbark



Respekt: 45,3

Wszystko dzia?a jak nale?y, dzi?ki za po?wi?cony czas i pomoc.

Postaw piwo autorowi tego posta
 

 
Tagi: textura
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku