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

Wysłany: 2013-11-20, 16:42


Porucznik







Wiek: 30
Na forum: 5010 dni
Posty: 33
Nick w MP: Porucznik

Piwa: 1

Respekt: 50

Siema,
Mam problem z dodaniem playerid do OnGameModeExit. Pojawia si? b??d(ten argument tam nie mo?e by? u?yty), lecz ja potrzebuj? zapisywa?statystyki graczom nawet jak serwer si? sam wy??czy lub "z?apie crasha". Mam co? takiego jak: LiczCzas(playerid); lecz nie wiem jak to tam doda?. Pr?bowa?em z p?tl? lecz w grze to nie dzia?a. Czy wiecie mo?e jak tego u?y??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-11-20, 17:04


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Porucznik, Poka? t? funkcj? 'LiczCzas'.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-11-20, 17:11


Pr0f3ssi0n4LisT







Wiek: 25
Na forum: 6845 dni
Posty: 120

Piwa: 3653

Respekt: 117,8
Respekt: 117,8

1. OnGameModeExit nie wykona sie przy crashu serwera

2.
Kod:

for(new playerid=0; playerid != MAX_PLAYERS; playerid++)
if(IsPlayerConnected(playerid))
LiczCzas(playerid);

+ oczywiscie sprawdzac czy gracz byl zalogowany

3. Lepiej zapisywac co jakis czas w timerze co kilka minut np co 3-4 konto

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-11-20, 18:49


Porucznik







Wiek: 30
Na forum: 5010 dni
Posty: 33
Nick w MP: Porucznik

Piwa: 1

Respekt: 50

Kod:

new StartTime[MAX_PLAYERS];

Kod:

LiczCzas(playerid){

new czas_gry_ogol[128];
new Hour, Minute, Second;
gettime( Hour, Minute, Second);
format(czas_gry_ogol,sizeof czas_gry_ogol,"UPDATE `Gracze` SET `Czas_gry_ogol` = `Czas_gry_ogol` + %d WHERE `Nick` = '%s'", (gettime()-StartTime[playerid]), PlayerName(playerid));

mysql_query(czas_gry_ogol);
return 1;
}


Pr0f3ssi0n4LisT, a jak zapisywa? statystyki wszystkim graczom gdy nast?pi crash? Bo Tw?j kod nie dzia?a. Czas gry nie aktualizuje si? po wy??czeniu konsoli.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-11-20, 22:44


Pr0f3ssi0n4LisT







Wiek: 25
Na forum: 6845 dni
Posty: 120

Piwa: 3653

Respekt: 117,8
Respekt: 117,8

Nie zapiszesz podczas crasha serwera zadnych danych, jedyne rozwiazanie to wlasnie timer co kilka minut np graczom ktorzy sa online min 3 minuty

sprawdz tak i zobaczysz czy wykonaly sie printy i sprawdz debug mysql

Kod:

LiczCzas(playerid)
{
new str[128];
format(str,sizeof str,"UPDATE `Gracze` SET `Czas_gry_ogol` = `Czas_gry_ogol` + %d WHERE `Nick` = '%s'", (gettime()-StartTime[playerid]), PlayerName(playerid));
mysql_query(str);
return;
}

Kod:


print("* Trwa zapisywanie czasu gry wszystkim graczom OnLine");

for(new playerid=0; playerid != MAX_PLAYERS; playerid++)
if(IsPlayerConnected(playerid))
LiczCzas(playerid);

print("* Zapisywanie zakonczone");


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-11-21, 14:30


Porucznik







Wiek: 30
Na forum: 5010 dni
Posty: 33
Nick w MP: Porucznik

Piwa: 1

Respekt: 50

Da?em te print do OnGameModeExit ale nic w logach nie ma. Czas resetuje si? nawet jak gracz wy??czy sampa przez menu gry. Jak temu zaradzi??

Postaw piwo autorowi tego posta
 

 
Tagi: playerid :: ongamemodeexit
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