Dobrý večer. Včera jsem si začal psát závod. Když hráč napíše /zavod1 tak ho to hodí na start závodu. Zatím tam mám, když jsou tam 2 hráči, že se spustí závod po 30 sekundách. Časovač funguje skvěle. Akorát když má závod začít, ten druhý hráč, který se připojil jako poslední tak se mu neodblokuje řízení + se neukáže 1 checkpoint. Z kámošem jsme si povídali a prý že to dělá playerid, ale jak to vyřešit? Kód, který má spustit závod vypadá takto:
if(tzavod1 == 30){
SendClientMessageToAll(0x00007777,"|Server| - {FA710C}Závod1 začíná za 30 sekund!");
}
if(tzavod1 == 10){
SendClientMessageToAll(0x00007777,"|Server| - {FA710C}Závod1 začíná za 10 sekund!");
}
if(tzavod1 == 0){
SendClientMessage(playerid,0x00007777,"|Server| - {FA710C}Závod1 začíná!!");
SetPlayerRaceCheckpoint(playerid,0,1291.4589,-85.3801,36.3366,1478.8831,73.7265,30.0750,6);
TogglePlayerControllable(playerid,1);
chzavod1[playerid] ++;
KillTimer(CasovacZavod1);
tzavod1 = 31;
}
tzavod1 --; tzavod1 - Je čas, který se postupně odečítá do začátku závodu
chzavod1 - Je ID checkpointů (pro přepínání dalšího)
CasovacZavod1 - Časovač, který odečítá po tiku 1čku Problém tedy je(pro zopakování):
Když se připojí druhý hráč na závod, závod se spustí pouze tomu prvnímu, který tam již byl. Druhému hráči se nezobrazí Checkpoint + se ani nemůže hýbat (funkce TogglePlayerControllable(playerid,1);). Moje otázka zní, jak to lze udělat, aby to fungovalo, ale abych nemusel psát např: SetPlayerRaceCheckpoint(zavod1_hrac1,.... ...Checkpoint(zavod1_hrac2,.... Atp. Možná by se hodilo ještě dodat, že tento závod by měl být až pro 4 hráče. Děkuji předem za odpovědi + uznání za přečtení tohoto dlouhého dotazu. Marks