Jump to content
  • 0

pomoc Race System


Mikoo

Dotaz

Zdravím, dnes som sa pozrel do RZE.pwn a zahliadol som tam tento system tak som si ho chcel dať na svoj server , skopiroval som ho a hodil do pawna , mam tam erorry prosim o pomoc.. Diky, tu je kod aj errory..

 

 

-----Pawno-----

 

 

#include <a_samp>

 

#define MAX_RACE_POS 30

 

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

 

new Float:RacePos[MAX_RACE_POS][3];
new RaceLoad = -1;
new RaceCount;
new RaceStarted;
new Race[MAX_PLAYERS] = {-1,...};

 

stock Jmeno(playerid){
    new p_name[MAX_PLAYER_NAME];
 if(IsPlayerConnected(playerid)){
  GetPlayerName(playerid, p_name, MAX_PLAYER_NAME);
 }
 return p_name;
}

 

public OnPlayerCommandText(playerid, cmdtext[])
{
 //----
 dcmd(racepos, 7, cmdtext);
 dcmd(racereset, 9, cmdtext);
 dcmd(racecreate, 10, cmdtext);
 dcmd(racejoin, 8, cmdtext);
 dcmd(racestart, 7, cmdtext);
 dcmd(raceend, 7, cmdtext);
 //----
 return 0;
}

//----------
dcmd_racepos(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RaceLoad == MAX_RACE_POS-1) return SendClientMessage(playerid,-1,"Presiahol si limit CP!");
new car = GetPlayerVehicleID(playerid);
if(car == 0) return SendClientMessage(playerid,-1,"Musis byt v aute !");
RaceLoad++;
GetVehiclePos(car,RacePos[RaceLoad][0],RacePos[RaceLoad][1],RacePos[RaceLoad][2]);
SendClientMessage(playerid, -1 ,"CP %d bol vytvoreny",RaceLoad);
return true;
}

dcmd_racereset(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
for(new i; i < MAX_RACE_POS;i++){
RacePos[0] = 0;
RacePos[1] = 0;
RacePos[2] = 0;
}
RaceLoad = -1;
SendClientMessage(playerid,-1,"Zmazal si CP! Nove vytvoris prikazom /racepos");
return true;
}

dcmd_racecreate(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Ziadny zavod neni vytvoren !");
Race[playerid] = 0;
new string[150];
format(string, sizeof(string), "Administrator %s vytvoril zavod", Jmeno(playerid));
SendClientMessageToAll(0x0048ff, string);
SetPlayerRaceCheckpoint(playerid,0,RacePos[0][0],RacePos[0][1],RacePos[0][2],RacePos[1][0],RacePos[1][1],RacePos[1][2],40);
SendClientMessage(playerid,-1,"Dojed na start zavodu. Nasleduj cerveny ctverecek na minimape");
return true;
}

dcmd_racejoin(playerid, params[])
{
#pragma unused params
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Zadny zavod neni vytvoren !");
if(Race[playerid] == 0) return SendClientMessage(playerid,-1,"Uz si pripojeny v zavode !");
if(RaceStarted) return SendClientMessageToAll(playerid,-1,"Zavod je uz odstrartovany !");
Race[playerid] = 0;
SendClientMessageToAll(0x00B700AA,"Hrac %s se pripojil do zavodu, pomoci /racejoin",Jmeno(playerid));
SetPlayerRaceCheckpoint(playerid,0,RacePos[0][0],RacePos[0][1],RacePos[0][2],RacePos[1][0],RacePos[1][1],RacePos[1][2],40);
SendClientMessage(playerid,-1,"Dojed na start zavodu. Nasleduj cerveny ctverecek na minimape");
return true;
}

dcmd_racestart(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Zadny zavod neni vytvoren !");
RaceCount = 5;
RaceStarted = true;
ForPlayers(i){
if(Race == 0){
TogglePlayerControllable(i,0);
SendClientMessage(i,-1,"Odpocitavani zavodu bylo zpustene !");
}
}
SetTimer("StartRace", 1000, false);
return true;
}

dcmd_raceend(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Zadny zavod neni vytvoren !");
if(RaceStarted) return SendClientMessage(playerid,-1,"Zavod je už odštartovaný!");
ForPlayers(i){
if(Race > -1){
DisablePlayerRaceCheckpoint(i);
Race = -1;
}
}
RaceStarted = false;
SendClientMessageToAll(0x00B700AA,"Zavod bol zrušený.");
return true;
}

 

 

 

---- errory ---

 

 

 

C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(44) : warning 202: number of arguments does not match definition
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(81) : error 035: argument type mismatch (argument 2)
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(83) : warning 202: number of arguments does not match definition
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(96) : error 017: undefined symbol "ForPlayers"
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(97) : error 017: undefined symbol "i"
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(98) : error 017: undefined symbol "i"
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(99) : error 017: undefined symbol "i"
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(112) : error 017: undefined symbol "ForPlayers"
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(113) : error 017: undefined symbol "i"
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(114) : error 017: undefined symbol "i"
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(115) : error 017: undefined symbol "i"
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(94) : warning 204: symbol is assigned a value that is never used: "RaceCount"
Pawn compiler 3.2.3664     Copyright © 1997-2006, ITB CompuPhase

9 Errors.

 

 

Edited by Mikoo
Link to comment
Share on other sites

Recommended Posts

  • 0

#define ForPlayers(%0) for(new %0; %0 <= Connects;%0++) if(IsPlayerConnected(%0))

 

new Connects;

 

 

#include <a_samp>

#define MAX_RACE_POS 30
#define ForPlayers(%0) for(new %0; %0 <= Connects;%0++) if(IsPlayerConnected(%0))
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

new Connects;
new Float:RacePos[MAX_RACE_POS][3];
new RaceLoad = -1;
new RaceCount;
new RaceStarted;
new Race[MAX_PLAYERS] = {-1,...};

stock Jmeno(playerid){
    new p_name[MAX_PLAYER_NAME];
 if(IsPlayerConnected(playerid)){
  GetPlayerName(playerid, p_name, MAX_PLAYER_NAME);
 }
 return p_name;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
 //----
 dcmd(racepos, 7, cmdtext);
 dcmd(racereset, 9, cmdtext);
 dcmd(racecreate, 10, cmdtext);
 dcmd(racejoin, 8, cmdtext);
 dcmd(racestart, 7, cmdtext);
 dcmd(raceend, 7, cmdtext);
 //----
 return 0;
}

//----------
dcmd_racepos(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RaceLoad == MAX_RACE_POS-1) return SendClientMessage(playerid,-1,"Presiahol si limit CP!");
new car = GetPlayerVehicleID(playerid);
if(car == 0) return SendClientMessage(playerid,-1,"Musis byt v aute !");
RaceLoad++;
GetVehiclePos(car,RacePos[RaceLoad][0],RacePos[RaceLoad][1],RacePos[RaceLoad][2]);
SendClientMessage(playerid, -1 ,"CP %d bol vytvoreny",RaceLoad); // <--------------tento
return true;
}

dcmd_racereset(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
for(new i; i < MAX_RACE_POS;i++){
RacePos[0] = 0;
RacePos[1] = 0;
RacePos[2] = 0;
}
RaceLoad = -1;
SendClientMessage(playerid,-1,"Zmazal si CP! Nove vytvoris prikazom /racepos");
return true;
}

dcmd_racecreate(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Ziadny zavod neni vytvoren !");
Race[playerid] = 0;
new string[150];
format(string, sizeof(string), "Administrator %s vytvoril zavod", Jmeno(playerid));
SendClientMessageToAll(0x0048ff, string);
SetPlayerRaceCheckpoint(playerid,0,RacePos[0][0],RacePos[0][1],RacePos[0][2],RacePos[1][0],RacePos[1][1],RacePos[1][2],40);
SendClientMessage(playerid,-1,"Dojed na start zavodu. Nasleduj cerveny ctverecek na minimape");
return true;
}

dcmd_racejoin(playerid, params[])
{
#pragma unused params
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Zadny zavod neni vytvoren !");
if(Race[playerid] == 0) return SendClientMessage(playerid,-1,"Uz si pripojeny v zavode !");
if(RaceStarted) return SendClientMessageToAll(playerid,-1,"Zavod je uz odstrartovany !"); // tento <------------- tento
Race[playerid] = 0;
new string[150];
format(string, sizeof(string), "Hráč %s sa pripojil do zavodu!", Jmeno(playerid));
SendClientMessageToAll(0x0048ff, string);
SetPlayerRaceCheckpoint(playerid,0,RacePos[0][0],RacePos[0][1],RacePos[0][2],RacePos[1][0],RacePos[1][1],RacePos[1][2],40);
SendClientMessage(playerid,-1,"Dojed na start zavodu. Nasleduj cerveny ctverecek na minimape");
return true;
}

dcmd_racestart(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Zadny zavod neni vytvoren !");
RaceCount = 5; // <------------------ tento
RaceStarted = true;
ForPlayers(i){
if(Race == 0){
TogglePlayerControllable(i,0);
SendClientMessage(i,-1,"Odpocitavani zavodu bylo zpustene !");
}
}
SetTimer("StartRace", 1000, false);
return true;
}

dcmd_raceend(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Zadny zavod neni vytvoren !");
if(RaceStarted) return SendClientMessage(playerid,-1,"Zavod je už odštartovaný!");
ForPlayers(i){
if(Race > -1){
DisablePlayerRaceCheckpoint(i);
Race = -1;
}
}
RaceStarted = false;
SendClientMessageToAll(0x00B700AA,"Zavod bol zrušený.");
return true;
}

 

 

 

--- errory ---

 

 

C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(45) : warning 202: number of arguments does not match definition
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(82) : error 035: argument type mismatch (argument 2)
C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(97) : warning 204: symbol is assigned a value that is never used: "RaceCount"
Pawn compiler 3.2.3664     Copyright © 1997-2006, ITB CompuPhase

 

Edited by Mikoo
Link to comment
Share on other sites

  • 0

SendClientMessage(playerid, -1 ,"CP %d bol vytvoreny",RaceLoad); 

 

Lel... musíš použít format a nebo definici samotná message neumí upravovat text.

 

if(RaceStarted) return SendClientMessageToAll(playerid,-1,"Zavod je uz odstrartovany !");

 

změn na

 

if(RaceStarted) return SendClientMessageToAll(-1,"Zavod je uz odstrartovany !");

 

posíláš sem tudle zprávu je blbost tam dávat playerid. dej mi chvilku najdu tu definici.

 

tady máš řešení pro to SCMF

 

http://forum.sa-mp.com/showthread.php?t=526494

 

nebo

new bool:FALSE=false;
#define SCMF(%0,%1,%2,%3) do{new _string[128]; format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(FALSE)
#define SCMTAF(%0,%1,%2) do{new _string[128]; format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(FALSE)
Edited by Steam Wallet
Link to comment
Share on other sites

  • 0

a v druhom errore máš správu pre všetkých čiže vymaž playerid

 

no a posledný znamená že tá premena nie je nikde použitá...asi to má byť odpočet...takže ho niekde musíš vypísať ešte (nepozerám to celé len uvažujem) - je tam timer...máš tam aj public ktorý ten timer spúšťa? + forward samozrejme

Edited by Mattsy
Link to comment
Share on other sites

  • 0

C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(98) : warning 204: symbol is assigned a value that is never used: "RaceCount"
Pawn compiler 3.2.3664     Copyright © 1997-2006, ITB CompuPhase

1 Warning.

 

 

 

 

tento jediny error mi robi problem :/

Link to comment
Share on other sites

  • 0

C:\Users\Lenovo\Desktop\amx-pwn\prace.pwn(98) : warning 204: symbol is assigned a value that is never used: "RaceCount"

Pawn compiler 3.2.3664     Copyright © 1997-2006, ITB CompuPhase

1 Warning.

 

 

 

 

tento jediny error mi robi problem :/

je to warning není to error. můžeš ho ignorovat normalně. 

Link to comment
Share on other sites

  • 0

 

no a posledný znamená že tá premena nie je nikde použitá...asi to má byť odpočet...takže ho niekde musíš vypísať ešte (nepozerám to celé len uvažujem) - je tam timer...máš tam aj public ktorý ten timer spúšťa? + forward samozrejme

 

Nečítaš čo píšem alebo čo??

Link to comment
Share on other sites

  • 0
  • Globální moderátor

a funkci StartRace máš kde, když na něj spouštíš timer

 

EDIT: přesně jak ti píše Mattsy...

 

 

 

 

 

(Nevím jak se maže příspěvek :d)

Edited by HighPrint
Link to comment
Share on other sites

  • 0
  • Globální moderátor

Mhmmm, tak si ho vytvoř. Proměnná RaceCount ti určuje odpočet tzn. ve funkci se bude odečítat. Po odečítání odpočtu unfreezne všechny přihlášené. 

 

tzn. v pseudokódu

 

forward StartRace();

 

public StartRace()

     pokud je RaceCount větší než 0

            odečti RaceCount

            nastav sekundový timer na StartRace s opakování false

      jinak 

            pro všechny hráče kteří mají Race == 0

                     unfreeznout

      konec

 

 

EDIT: Jasně :) laguje mi pawno.cz, EDIT se mi zobrazil až po odeslání příspěvku

Edited by HighPrint
Link to comment
Share on other sites

  • 0

Tu je kod..

 

 

 

 

#include <a_samp>

#define MAX_RACE_POS 30
#define ForPlayers(%0) for(new %0; %0 <= Connects;%0++) if(IsPlayerConnected(%0))
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

new Connects;
new Float:RacePos[MAX_RACE_POS][3];
new RaceLoad = -1;
new RaceCount;
new RaceStarted;
new Race[MAX_PLAYERS] = {-1,...};

stock Jmeno(playerid){
    new p_name[MAX_PLAYER_NAME];
 if(IsPlayerConnected(playerid)){
  GetPlayerName(playerid, p_name, MAX_PLAYER_NAME);
 }
 return p_name;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
 //----
 dcmd(racecp, 6, cmdtext);
 dcmd(racer, 5, cmdtext);
 dcmd(racec, 5, cmdtext);
 dcmd(racej, 5, cmdtext);
 dcmd(races, 5, cmdtext);
 dcmd(racee, 5, cmdtext);
 dcmd(racehelp, 8, cmdtext);
 //----
 return 0;
}

//----------
dcmd_racecp(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RaceLoad == MAX_RACE_POS-1) return SendClientMessage(playerid,-1,"Presiahol si limit CP!");
new car = GetPlayerVehicleID(playerid);
if(car == 0) return SendClientMessage(playerid,-1,"Musis byt v aute !");
RaceLoad++;
GetVehiclePos(car,RacePos[RaceLoad][0],RacePos[RaceLoad][1],RacePos[RaceLoad][2]);
new string[50];
format(string, sizeof(string), "CP %d bol vytvoreny", RaceLoad);
return true;
}

dcmd_racehelp(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
SendClientMessage(playerid,0xFF0000AA,"/racecp,/racer,/racec,/racej,/races,/racee");
return true;
}

dcmd_racer(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
for(new i; i < MAX_RACE_POS;i++){
RacePos[0] = 0;
RacePos[1] = 0;
RacePos[2] = 0;
}
RaceLoad = -1;
SendClientMessage(playerid,-1,"Zmazal si CP! Nove vytvoris prikazom /racecp");
return true;
}

dcmd_racec(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Ziadny zavod neni vytvoren !");
Race[playerid] = 0;
new string[150];
format(string, sizeof(string), "Administrator %s vytvoril zavod", Jmeno(playerid));
SendClientMessageToAll(0xFF0000AA, string);
SetPlayerRaceCheckpoint(playerid,0,RacePos[0][0],RacePos[0][1],RacePos[0][2],RacePos[1][0],RacePos[1][1],RacePos[1][2],40);
SendClientMessage(playerid,-1,"Dojed na start zavodu. Nasleduj cerveny ctverecek na minimape");
return true;
}

dcmd_racej(playerid, params[])
{
#pragma unused params
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Zadny zavod neni vytvoren !");
if(Race[playerid] == 0) return SendClientMessage(playerid,-1,"Uz si pripojeny v zavode !");
if(RaceStarted) return SendClientMessageToAll(-1,"Zavod je uz odstrartovany !");
Race[playerid] = 0;
new string[150];
format(string, sizeof(string), "Hráč %s sa pripojil do zavodu!", Jmeno(playerid));
SendClientMessageToAll(0x0048ff, string);
SetPlayerRaceCheckpoint(playerid,0,RacePos[0][0],RacePos[0][1],RacePos[0][2],RacePos[1][0],RacePos[1][1],RacePos[1][2],40);
SendClientMessage(playerid,-1,"Dojed na start zavodu. Nasleduj cerveny ctverecek na minimape");
return true;
}

dcmd_races(playerid, params[])
{
#pragma unused params
#pragma unused RaceCount
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Zadny zavod neni vytvoren !");
RaceCount = 5;
RaceStarted = true;
ForPlayers(i){
if(Race == 0){
TogglePlayerControllable(i,0);
SendClientMessage(i,-1,"Odpocitavani zavodu bylo zpustene !");
}
}
SetTimer("StartRace", 1000, false);
return true;
}

dcmd_racee(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"[ ! ] Niesi prihlaseny na RCON [ ! ]");
if(RacePos[0][0] == 0 && RacePos[0][1] == 0) return SendClientMessage(playerid,-1,"Zadny zavod neni vytvoren !");
if(RaceStarted) return SendClientMessage(playerid,-1,"Zavod je už odštartovaný!");
ForPlayers(i){
if(Race > -1){
DisablePlayerRaceCheckpoint(i);
Race = -1;
}
}
RaceStarted = false;
SendClientMessageToAll(0xFF0000AA,"Zavod bol zrušený.");
return true;
}

forward StartRace();
public StartRace(){
if(RaceCount > 0){
new str[5];
format(str,5,"~r~%d",RaceCount);
ForPlayers(i){
if(Race == 0){
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
GameTextForPlayer(i,str, 1000, 5);
}}
RaceCount--;
SetTimer("StartRace", 1000, false);
}else{
SendClientMessageToAll(0xFF0000AA,"Zavod byl odstartovany !");
ForPlayers(i){
if(Race == 0){
TogglePlayerControllable(i,1);
if(!IsPlayerInRaceCheckpoint(i)){
new string[150];
format(string, sizeof(string), "Hráč %s bol dyskvalifykovaný zo zavodu!", Jmeno(i));
SendClientMessageToAll(0xFF0000AA, string);
Race = -1;
DisablePlayerRaceCheckpoint(i);
}else{
GameTextForPlayer(i,"~g~GO GO GO",1000, 5);
PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
if(RacePos[2][0] == 0 && RacePos[2][1] == 0)
{
SetPlayerRaceCheckpoint(i,1,RacePos[1][0],RacePos[1][1],RacePos[1][2],RacePos[2][0],RacePos[2][1],RacePos[2][2],15);
}else{
SetPlayerRaceCheckpoint(i,0,RacePos[1][0],RacePos[1][1],RacePos[1][2],RacePos[2][0],RacePos[2][1],RacePos[2][2],15);
}}}}

}
return true;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
if(Race[playerid] > -1){
SendClientMessage(playerid,-1,"Pockej na ostatnich zavodnikov. Ak ste všetci použi /races");
}
if(RaceStarted){
new id;
if(RacePos[id+1][0] == 0 && RacePos[id+1][1] == 0){
DisablePlayerRaceCheckpoint(playerid);
new count;
ForPlayers(x) { if(Race[x] > -1) count++; }
new string[150];
format(string, sizeof(string), "Hráč %s vyhrál zavod!", Jmeno(playerid));
SendClientMessageToAll(0xFF0000AA, string);
ForPlayers(i){
if(Race > -1){
DisablePlayerRaceCheckpoint(i);
Race = -1;
}
}
RaceStarted = false;
}

else if(RacePos[id+2][0] == 0 && RacePos[id+2][1] == 0){
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid,1,RacePos[id+1][0],RacePos[id+1][1],RacePos[id+1][2],RacePos[id+1][0],RacePos[id+1][1],RacePos[id+1][2],15);
}
else{
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid,0,RacePos[id+1][0],RacePos[id+1][1],RacePos[id+1][2],RacePos[id+2][0],RacePos[id+2][1],RacePos[id+2][2],15);
}
}
return 1;
}

 

 

Edited by Mikoo
Link to comment
Share on other sites

  • 0
  • Globální moderátor

Koukám zběžně na tvůj kód a nedává mi smysl dvě věci.

 

1) dyskvalifykovaný... prosím nenič tak krásný jazyk

2) new id; - huh? Nikde neinkrementuješ a neměníš, přitom ty CPčka jsou na tom id dost závislé. Co já chápu, tak zobrazuješ furt tentýž CP dokola

Edited by HighPrint
Link to comment
Share on other sites

  • 0
  • Globální moderátor

Bude lepší, když si to vyzkoušíš sám. Já tě zkusím nasměrovat. 

 

Založ si proměnnou GLOBÁLNÍ s rozsahem MAX_PLAYERS nebo co využíváš a nebo PVar. Výběr je na tobě. Nastav si ji na 1 při odstartování a při vstupu do Checkpointu (+ jestli je přihlášený do závodu) tak ji navýšíš o 1. 

Edited by HighPrint
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...