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

Wysłany: 2018-02-26, 10:14


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Chcia?bym zrobi? sprawdzanie max ilo?ci rekord?w w tabeli:
Np. Wpisuj? komende /pojazd ?eby kupi?, a tam pobiera rekordy z bazy i informacja:
Uwaga! Istnieje w bazie ju? 200 pojazd?w. Nie mo?esz stworzy? kolejnego.

2. Sprawa: czy da si? zmieni? pozycje spawnu pojazdu? Jak dam SetVehicleToRespawn ?eby w nowym miejscu si? spawnowa?. Czy tylko w taki spos?b: destroyvehicle(vehid); a p??niej vehid = createvehicle?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-02-26, 11:14


String256







Wiek: 33
Na forum: 4247 dni
Posty: 37

Piwa: 10

Respekt: 200
Respekt: 200Respekt: 200

Co do pobierania ilo?ci stworzonych pojazd?w.
Mo?esz zrobi? to na dwa sposoby:
1. Tworzysz takie zapytanie, "SELECT count(id) FROM twoja_tabela_z_pojazdami" wynik takiego zapytania to w skr?cie ilo?? twoich pojazd?w w tabeli.

2. Wykonujesz zapytanie inset w kt?rym tworzysz pojazd, po czym pobierasz id kt?re zosta?o zapisane przy nowym rekordzie za pomoc? funkcji mysql_insert_id() dzi?ki temu masz ilo?? stworzonych pojazd?w i przed wykonaniem zapytania sobie to sprawdzasz..

Je?eli chodzi o pojazdy to niestety trzeba stworzy? nowy pojazd.
Mo?na u?y? OnVehicleSpawn i aktualizowa? pozycj? XYZ, ale ta funkcja jest wywo?ywana tylko wtedy, gdy pojazd jest po raz pierwszy utworzony..

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
MG303
Wysłany: 2018-02-26, 11:56


Combacior







Wiek: 29
Na forum: 5796 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
2. S? dwie opcje, pierwsza to u?ycie pluginu YSF, kt?ry posiada funkcj? SetVehicleSpawnInfo

Kod:

native SetVehicleSpawnInfo(vehicleid, modelid, Float:fX, Float:fY, Float:fZ, Float:fAngle, color1, color2, respawntime = -2, interior = -2);


Druga opcja, to po prostu u?y? funkcji SetVehiclePos w callbacku OnVehicleSpawn.

"String256" napisał/a:

Mo?na u?y? OnVehicleSpawn i aktualizowa? pozycj? XYZ, ale ta funkcja jest wywo?ywana tylko wtedy, gdy pojazd jest po raz pierwszy utworzony


W?a?ciwie to ten callback jest wywo?ywany podczas ponownego respawnu pojazdu, cytat z wiki, a nie podczas tworzenia - kto? go kiepsko nazwa?.

Cytat:

This callback is called when a vehicle respawns.


Je?li nie korzystasz z pluginu YSF dotychczas, to nie ma sensu pobiera? go tylko do jednej funkcji, wi?c sprawdzi si? rozwi?zanie nr 2.

Kod:

new Float:gAnotherVehicleSpawnX[MAX_VEHICLES], Float:gAnotherVehicleSpawnY[MAX_VEHICLES], Float:gAnotherVehicleSpawnZ[MAX_VEHICLES], Float:gAnotherVehicleSpawnA[MAX_VEHICLES];

//ustawianie nowego spawnu
gAnotherVehicleSpawnX[vehicleid] = nowa_pozycja_x;
//dalsze pozycje y, z, a

//OnVehicleSpawn
if(gAnotherVehicleSpawnX[vehicleid])
{
SetVehiclePos(...);
SetVehicleZAngle(...);
}

//jesli chcesz zresetowac nowy spawn
gAnotherVehicleSpawnX[vehicleid] = 0.0;


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
MG303
Wysłany: 2018-02-26, 16:30


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Hmm czyli w sumie do tego 1 mo?na wykorzysta?
if(mysql_num_rows() < 200) else blablabla..

Ok, dzi?kuj? za pomoc ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-02-26, 21:29


silentus

#define true false






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

Piwa: 1462

Respekt: 116,1
Respekt: 116,1

Tylko metod? z SetVehiclePos w OnPlayerSpawn nie ustawimy rotacji pojazdu, bo SetVehicleZAngle nie dzia?a na pustych pojazdach (brawo Kalcor) - to tak na marginesie gdyby? si? zastanawia? dlaczego pojazdy s? skierowane w inn? stron? ni? powinny.

Do sprawdzania ilo?ci nie wykorzystujesz mysql_num_rows bo by?oby to nieoptymalne (pobieranie ca?ej zawarto?ci tabeli, a przypadku polecenia jak wy?ej z COUNT() funkcja zwr?ci tylko 1) ani mysql_insert_id bo to zwraca tylko ID ostatnio wprowadzonego wiersza, a usuwanie element?w z tabeli nie wp?ywa na to jak naliczane jest pole AUTO_INCREMENT, wi?c gdy mamy 3 pojazdy (mysql_insert_id = 3) i usuniemy pierwszy (czy nawet wszystkie) i wsadzimy kolejny to mysql_insert_id zwr?ci 4.

U?ywasz tak jak kolega wy?ej napisa? COUNT(id) i pobierasz to jako pole, tak jak normalnie pobierasz np. dane pojazdu.

Pro?ciej jednak zlicza? na serwerze ilo?? pojazd?w (na pocz?tku przy ?adowaniu wszystkich pojazd?w zwi?kszasz jak?? zmienn? a potem wraz z dodawaniem i usuwaniem pojazd?w odpowiednio j? modyfikujesz)

Podpis


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
MG303
Tagi: max :: rekordów
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Max rekordów +1 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