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

Napíšu ti to sem jen tak po lopatě, protože tvůj kód je nepřehledný neodtabovaný a prostě sem v něm nevyznám.

 

 

new pCP[MAX_PLAYERS];

//příkaz race
{
    //tady podmínky a ostatní kraviny
    pCP[playerid] = 1; //Mattsy tuhle někde radil, že je lepší začínat 1
    SetPlayerRaceCheckpoint(...);//tady vytvoříš 1. CP
    return 1;
}


//OnPlayerEnterChechPoint(playerid)
{
    switch(pCP[playerid])
    {
    	case 1:
        {
	    DisablePlayerRaceCheckpoint(playerid);//zničíš předchozí CP
	    pCP[playerid]++;//hodnoty zvýšíš o 1, takže pCP[playerid] má nyní hodnotu 2 a vyoká se to co je v case 2 a takhle dál a dál
   	    SetPlayerRaceCheckpoint(...);//vytvoříš nové CP            
        }
      	case 2:
        {
       	    DisablePlayerRaceCheckpoint(playerid);
            pCP[playerid]++;
	    SetPlayerRaceCheckpoint(...);
	}
  	case 3: //poslední CP
        {
            DisablePlayerRaceCheckpoint(playerid);
	    pCP[playerid] = 0;// nastavíš na 0, aby mohl když tak závodit znovu (kdyby si to nevynuloval zobrazil by se mu 2. CP (tedy předposlední).
	    SendClientMessage(playerid, -1, "Dokončil jsi závod !");
	}

    }
    return 1;
} 

 

 

 

Pokud něčemu nerozumíš (co jak pracuje, nebo nepracuje, proč se co dělá), tak se klidně zeptej. ;)

Edited by GaRGoyLeS
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...