Dobrý večer, potrebujem radu ohľadom jednej chyby týkajúcej sa checkpointov.
Spravil som dva rôzne závody s rovnakým princípom, lenže.. ked dokončím prvý závod, tak zapnutie druhého má rovnakú reakciu ako koniec toho predošlého. Tak isto je to aj naopak. Skúšal som to viac krát, podla mna je najskôr chyba v zátvorkách a skúšal som ich rôzne vymienať s returnami ale žiadna zmena... errory mi to nevyhadzuje ale nejde to tak ako má
#include <a_samp>
#define BEL 0x000000
#define ch2 2
#define ch3 3
#define ch4 4
#define ch5 5
new race1[MAX_PLAYERS];
new race2[MAX_PLAYERS];
public OnFilterScriptInit()
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/race1", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, BEL, "Začali ste závod č.1");
SetPlayerCheckpoint(playerid,-2532.3000488,2286.1000977,5.3000002,5);
race1[playerid] = ch2;
return 1;
}
if (strcmp("/race2", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, BEL, "Začali ste závod č.2");
SetPlayerCheckpoint(playerid,-2546.1000977,2323.8999023,5.3000002,5);
race2[playerid] = ch4;
return 1;
}
if (strcmp("/port", cmdtext, true, 10) == 0)
{
SetPlayerPos(playerid, -2532.3000488,2286.1000977,5.3000002);
return 1;
}
return 0;
}
public OnPlayerEnterCheckpoint(playerid)
{
switch(race1[playerid])
{
case ch2:
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-2546.1000977,2323.8999023,5.3000002,5);
race1[playerid] = ch3;
}
case ch3:
{
DisablePlayerCheckpoint(playerid);
GameTextForPlayer(playerid,"~w~GRATULUJEME!",4000,5);
SendClientMessage(playerid,BEL,"[ ! ] Vyhrali ste závod č.1");
}
}
switch(race2[playerid])
{
case ch4:
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-2415.6000977,2331.1999512,5.3000002,5);
race2[playerid] = ch5;
}
case ch5:
{
DisablePlayerCheckpoint(playerid);
GameTextForPlayer(playerid,"~w~GRATULUJEME!",4000,5);
SendClientMessage(playerid,BEL,"[ ! ] Vyhrali ste závod č.2");
}
}
}
Nahral som aj video pre lepsie pochopenie
http://youtu.be/rmRNbXRdzw4
Dakujem vopred za kazdu pomoc