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

Wysłany: 2018-10-17, 20:10


JestemSuperLIKE

Początkujący grafik






Wiek: 27
Na forum: 3694 dni
Posty: 133

Piwa: 6

Respekt: 40

Cze??. Jak mo?na zrobi? takie co? ze w wybieralce b?dzie na starcie skin o ID 0 a klikaj?c w lewy przycisk b?d? same skiny dla kobiet a na prawym b?d? same skiny dla m??czyzn. Mam taki kod ale tak jak by s? dwa skiny o ID 0. Co robi? ?le?
Kod:


public OnGameModeInit()
{
for(new i, j = sizeof(Skiny_Mezczyzn); i < j; i++)
{
AddPlayerClass(Skiny_Mezczyzn[i], -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
}
for(new i, j = sizeof(Skiny_Kobiet); i < j; i++)
{
AddPlayerClass(Skiny_Kobiet[i], -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
}
return 1;
}


Podpis
By KML
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-10-17, 21:15


silentus

#define true false






Wiek: 30
Na forum: 5282 dni
Posty: 71
Nick w MP: .silent

Piwa: 1462

Respekt: 116,1
Respekt: 116,1

Je?li w tablicach Skiny_x masz poprawne ID klas to powinno by? ok, jedyny problem jaki widz? to te -1 na wszystkich argumentach. Pierwsze 4 (po id skinu) argumenty to pozycja i k?t wi?c -1 powinno by? ok (cho? powinno by? floatem). Kolejne argumenty to bronie i ich amunicja, wi?c -1 to niepoprawna dla nich warto?? i mo?e przez to co? si? psuje, zamie? to na 0:
Kod:


AddPlayerClass(Skiny_Mezczyzn[i], 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);


?eby w lewo by?y kobiece a w prawo m??czy?ni wystarczy po prostu kobiece skiny doda? jako ostatnie, wtedy w lewo skiny id? od ty?u czyli od kobiecych.

Poza tym, gdy u?ywasz sizeof w p?tli to nie tw?rz nowej zmiennej. Sizeof jest sta?? definicj? ustalan? przez preprocesor i w momencie kompilacji jest po prostu zamieniany na aktualn? wielko?? tablicy, tak samo jak makra, definicje, enumy itd.

W tym momencie tw?j kod jest du?o bardziej "nieoptymalny" ni? gdyby? u?y? po prostu i < sizeof().
Czemu? Po pierwsze tworzysz kolejn? zmienn? na stosie, po drugie przy ka?dej iteracji p?tli ten warunek zostaje sprawdzony, a ?e warto?? z sizeof przypisa?e? do zmiennej, to warto?? pobierana jest z pami?ci wed?ug adresu na kt?ry wskazuje zmienna. Gdyby? u?y? sizeof bezpo?rednio, warunek sprawdzany by?by na sta?ej warto?ci w zoptymalizowany przez kompilator spos?b.
Takiego "triku" z drug? zmienn? u?ywa si? tylko wtedy, gdy wywo?ujesz co? co jest dynamiczne, np. GetPlayerPoolSize() poniewa? wtedy dodatkowo za ka?dym razem wywo?ywana by?aby ta funkcja.

Podpis


Postaw piwo autorowi tego posta
 

 
Tagi: wybieralka
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Wybieralka 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