07.12.2011, 17:26
Bom
fazia muito tempo que sу vinha aqui e vez em quando de passeio e as vezes atй tinha o prazer de poder tirar umas dъvidas da galera
Mas agora, pela segunda vez na minha vida, me deparei com um bug que definitivamente nгo consigo resolver.
Jб postei diversas dъvidas, mas bug que eu nгo consegui resolver mesmo esse й o segundo.. Espero que tenham muitos scripters melhores do que eu aqui para me ajudar dessa vez =)
Bom, й simples...
Sintoma principal: um timer com loop infinito pбra de repente. E volta minutos depois... Pбra novamente... Volta minutos depois...
Sintoma detalhado: Um timer qualquer, pra evitar de fazer vбrios timers de 1seg, sendo gerenciados ao mesmo pelo processador, juntei tudo em um sу.
na public...
Bom, de repente comeзa uns RTs embora o jogo flua normalmente...
Entгo resolvi ver se tava comendo muito processador e travando por ter execussгo de muitas funзхes em sequencia...
entгo mudei a public para isto:
Percebi que nгo demorava muito, cerca de 5ms pra executar todas as funзхes...
e percebi tambйm que o timer parava de ser executado...
Entгo pensei que alguma funзгo estaria "travando" ele...
mudei novamente o cуdigo para isto:
Dessa forma, apуs uma funзгo ter sido executada com sucesso, o nome dela seria printado na tela. Entгo eu poderia ver, no momento que o timer parasse, qual seria a ъltima funзгo executada (podendo assim ver em qual delas que estaria travando o timer).
Resultado:
nenhuma!
todas eram executadas com sucesso e o timer parava...
log:
GM Iniciou:
timer funcionou bem atй:
Entгo... como se nunca tivesse parado... ele voltou a funcionar em:
parou novamente em:
Voltou novamente em:
parou novamente em:
fazia muito tempo que sу vinha aqui e vez em quando de passeio e as vezes atй tinha o prazer de poder tirar umas dъvidas da galera
Mas agora, pela segunda vez na minha vida, me deparei com um bug que definitivamente nгo consigo resolver.
Jб postei diversas dъvidas, mas bug que eu nгo consegui resolver mesmo esse й o segundo.. Espero que tenham muitos scripters melhores do que eu aqui para me ajudar dessa vez =)
Bom, й simples...
Sintoma principal: um timer com loop infinito pбra de repente. E volta minutos depois... Pбra novamente... Volta minutos depois...
Sintoma detalhado: Um timer qualquer, pra evitar de fazer vбrios timers de 1seg, sendo gerenciados ao mesmo pelo processador, juntei tudo em um sу.
PHP код:
public OnGameModeInit()
{
...
SetTimer("OneSecUpdate", 1000, true);
...
return 1;
}
PHP код:
public OneSecUpdate()
{
OtherStuff();
CustomPickups();
SetPlayerUnjail();
SyncClock();
Licenses();
CheckMH();
CheckGas();
GlobalTimer();
GangZonesCheck();
AtualizaBSLCash();
}
Entгo resolvi ver se tava comendo muito processador e travando por ter execussгo de muitas funзхes em sequencia...
entгo mudei a public para isto:
PHP код:
public OneSecUpdate()
{
new a = GetTickCount();
OtherStuff();
CustomPickups();
SetPlayerUnjail();
SyncClock();
Licenses();
CheckMH();
CheckGas();
GlobalTimer();
GangZonesCheck();
AtualizaBSLCash();
printf("Tempo = %d", GetTickCount() - a);
}
e percebi tambйm que o timer parava de ser executado...
Entгo pensei que alguma funзгo estaria "travando" ele...
mudei novamente o cуdigo para isto:
PHP код:
public OneSecUpdate()
{
new a = GetTickCount();
OtherStuff();
printf("OtherStuff();");
CustomPickups();
printf("CustomPickups();");
SetPlayerUnjail();
printf("SetPlayerUnjail();");
SyncClock();
printf("SyncClock();");
Licenses();
printf("Licenses();");
CheckMH();
printf("CheckMH();");
CheckGas();
printf("CheckGas();");
GlobalTimer();
printf("GlobalTimer();");
GangZonesCheck();
printf("GangZonesCheck();");
AtualizaBSLCash();
printf("AtualizaBSLCash();");
printf("Tempo = %d", GetTickCount() - a);
}
Resultado:
nenhuma!
todas eram executadas com sucesso e o timer parava...
log:
GM Iniciou:
Код:
[04:59:38] OtherStuff(); [04:59:38] CustomPickups(); [04:59:38] SetPlayerUnjail(); [04:59:38] SyncClock(); [04:59:38] Licenses(); [04:59:38] CheckMH(); [04:59:38] CheckGas(); [04:59:38] GlobalTimer(); [04:59:38] GangZonesCheck(); [04:59:38] AtualizaBSLCash(); [04:59:38] Tempo = 1
Код:
[09:31:30] OtherStuff(); [09:31:30] CustomPickups(); [09:31:30] SetPlayerUnjail(); [09:31:30] SyncClock(); [09:31:30] Licenses(); [09:31:30] CheckMH(); [09:31:30] CheckGas(); [09:31:30] GlobalTimer(); [09:31:30] GangZonesCheck(); [09:31:30] AtualizaBSLCash(); [09:31:30] Tempo = 2 [09:31:30] xxxx Anъncio: Equipamento й no mei do antigo HQ !, Contato: xxxxxx Tel: 17917 [09:31:31] OtherStuff(); [09:31:31] CustomPickups(); [09:31:31] SetPlayerUnjail(); [09:31:31] SyncClock(); [09:31:31] Licenses(); [09:31:31] CheckMH(); [09:31:31] CheckGas(); [09:31:31] GlobalTimer(); [09:31:31] GangZonesCheck(); [09:31:31] AtualizaBSLCash(); [09:31:31] Tempo = 2 [09:31:34] [xxxx] [xxxxx]: seguinte [09:31:35] (Radio) Hitman xxxx: quem fez esse gm?, cвmbio. [09:31:38] [xxxx] [xxxxxx]: Donos Da Org sгo: [09:31:39] (Radio) Hitman xxxx: aquela vadia?, cвmbio.
Код:
[09:33:30] OtherStuff(); [09:33:30] CustomPickups(); [09:33:30] SetPlayerUnjail(); [09:33:30] SyncClock(); [09:33:30] Licenses(); [09:33:30] CheckMH(); [09:33:30] CheckGas(); [09:33:30] GlobalTimer(); [09:33:30] GangZonesCheck(); [09:33:30] AtualizaBSLCash(); [09:33:30] Tempo = 2 [09:33:31] OtherStuff(); [09:33:31] CustomPickups(); [09:33:31] SetPlayerUnjail(); [09:33:31] SyncClock(); [09:33:31] Licenses(); [09:33:31] CheckMH(); [09:33:31] CheckGas(); [09:33:31] GlobalTimer(); [09:33:31] GangZonesCheck(); [09:33:31] AtualizaBSLCash(); [09:33:31] Tempo = 2
Код:
[09:33:40] OtherStuff(); [09:33:40] CustomPickups(); [09:33:40] SetPlayerUnjail(); [09:33:40] SyncClock(); [09:33:40] Licenses(); [09:33:40] CheckMH(); [09:33:40] CheckGas(); [09:33:40] GlobalTimer(); [09:33:40] GangZonesCheck(); [09:33:40] AtualizaBSLCash(); [09:33:40] Tempo = 2 [09:33:44] xxxx desconectou no servidor. (id: 6 - IP: 255.255.255.255) [09:33:44] [part] Smile_Kiragawa has left the server (6:1)
Код:
[09:40:26] [junkbuster] Suspected player with repairing vehicle with cheats: Doug_Turim (14, 187.115.38.227), Beagle. [09:40:27] OtherStuff(); [09:40:27] CustomPickups(); [09:40:27] SetPlayerUnjail(); [09:40:27] SyncClock(); [09:40:27] Licenses(); [09:40:27] CheckMH(); [09:40:27] CheckGas(); [09:40:27] GlobalTimer(); [09:40:27] GangZonesCheck(); [09:40:27] AtualizaBSLCash(); [09:40:27] Tempo = 2
Код:
[09:40:36] OtherStuff(); [09:40:36] CustomPickups(); [09:40:36] SetPlayerUnjail(); [09:40:36] SyncClock(); [09:40:36] Licenses(); [09:40:36] CheckMH(); [09:40:36] CheckGas(); [09:40:36] GlobalTimer(); [09:40:36] GangZonesCheck(); [09:40:36] AtualizaBSLCash(); [09:40:36] Tempo = 2 [09:40:36] Incoming connection: 177.35.163.26:60515 [09:40:36] [join] xxxxx has joined the server (4:177.35.163.26)