Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: CkusaColeCM poslato Mart 30, 2013, 13:43:22 POSLE PODNE

Naslov: [Pomoc] /ticket komanda errori
Poruka od: CkusaColeCM poslato Mart 30, 2013, 13:43:22 POSLE PODNE
Skripta koju koristim: BE
Detaljan opis problema: Imao sam bug sa /ticket kad si napisao /ticket izbaci ti "Nisi policajac" i sad sam promjenio komandu sad imam puno errora.
Dio skripte:
Errori
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36862) : error 017: undefined symbol "tmp"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36862) : error 017: undefined symbol "cmdtext"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36863) : error 017: undefined symbol "tmp"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36868) : error 017: undefined symbol "tmp"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36869) : error 017: undefined symbol "tmp"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36869) : error 017: undefined symbol "cmdtext"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36870) : error 017: undefined symbol "tmp"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36875) : error 017: undefined symbol "tmp"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36883) : error 017: undefined symbol "giveplayer"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36883) : error 017: undefined symbol "giveplayer"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36883) : error 029: invalid expression, assumed zero
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36883) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


12 Errors.

Commanda
COMMAND:ticket(playerid, params[])
{
    if(IsPlayerConnected(playerid))
    {
        if(gTeam[playerid] != 2)
{
    SendClientMessage(playerid, COLOR_GREY, "   Niste policajac!");
    return 1;
}
        if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
{
    SendClientMessage(playerid, COLOR_GREY, "   Niste na Duznosti!");
    return 1;
}
    tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: /kazna [ID Igraca/Dio Imena] [cijena] [razlog]");
return 1;
}
giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: /ticket [ID Igraca/Dio Imena] [cijena] [razlog]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 || moneys > 2001) { SendClientMessage(playerid, COLOR_GREY, "   Cijena kazne ne moze biti ispod 1 ni preko 2000 !"); return 1; }
if(IsPlayerConnected(giveplayerid))
{
    if(giveplayerid != INVALID_PLAYER_ID)
    {
        if (ProxDetectorS(8.0, playerid, giveplayerid))
{
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: /ticket [ID Igraca/Dio Imena] [cijena] [razlog]");
return 1;
}
if (GetPlayerMoney(giveplayerid) < moneys)
{
SendClientMessage(playerid, COLOR_WHITE, "* Taj igrac nema dovoljno novca da plati kaznu.");
return 1;
}
format(string, sizeof(string), "* Napisali ste %s-u kaznu od $%d, razlog: %s", giveplayer, moneys, (result));
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "* Policajac %s vam je napisao kaznu od $%d, razlog: %s", sendername, moneys, (result));
SendClientMessage(giveplayerid, COLOR_WHITE, string);
SendClientMessage(giveplayerid, COLOR_WHITE, "* Kucajte /prihvati ticket, da je prihvatite.");
SendClientMessage(giveplayerid, COLOR_WHITE, "* Ako ne prihvatite kaznu, ici cete u zatvor!");
TicketOffer[giveplayerid] = playerid;
TicketMoney[giveplayerid] = moneys;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "   Taj igrac nije blizu vas !");
return 1;
}
}
}
else
{
    SendClientMessage(playerid, COLOR_GREY, "   Igrac je offline !");
    return 1;
}
}
return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno): -
Naslov: Odg: [Pomoc] /ticket komanda errori
Poruka od: FlasH poslato Mart 30, 2013, 14:04:15 POSLE PODNE
Ne možeš koristiti strcmp dijelove i zcmd komandi,gluposti :)

Ovak:


Daj komandu di prihvacas jer tamo moras koristit varijablu KaznaPoslana ..

Vrh:


new KaznaPoslana[MAX_PLAYERS];

OnPlayerConnect:

KaznaPoslana[playerid] = -1;

Komanda:

CMD:tiket(playerid, params[])
{
if(PlayerInfo[playerid][pClan] != 1) return SCM(playerid, 0xFFFFFFAA, "Niste PD"); // ( Prilagodi varijablu pClan )
new id, Cijena, razlog[32], hIme[3][MAX_PLAYER_NAME], Float:Poz[3]; // Definiras varijable koje koristis u cmd
if(sscanf(params, "uis[32]", id, Cijena, razlog)) return SCM(playerid, 0xFFFFFFAA, " /kazna [playerid] [cijena] [Razlog]");
if(!IsPlayerConnected(id)) return SCM(playerid, 0xFFFFFFAA, "Taj igrac je offline!"); // Provjerava id igraca
if(id == playerid) return SCM(playerid, 0xFFFFFFAA, "Ne mozete sami sebi naplatiti kaznu!"); // Da ne mozes sam sebi naplatiuti
if(Cijena < 1 || Cijena > 2000) return SCM(playerid, 0xFFFFFFAA, "Cijena moze biti najmanje $1, a najvise $2000!"); // Vrijednost cijene
GetPlayerPos(id, Poz[0], Poz[1], Poz[2]); // Uzimas poziciju od igrac kome naplacujes
if(!IsPlayerInRangeOfPoint(playerid, 5.0, Poz[0], Poz[1], Poz[2])) return SCM(playerid, 0xFFFFFFAA, "Predaleko ste!"); // ako igrac nije blizu tebe
RPIme(playerid, hIme[1]); // Uzimas svoje ime
RPIme(id, hIme[2]); // UZimas ime od igraca kome naplacujes
KaznaPoslana[id] = playerid; // Naplacujes mu kaznu
CijenaKazne[id] = Cijena; // Uzimas cijenu koju si upisao
SCMF(id, 0xFFFFFFAA, "Policajac %s vam je napisao kaznu u iznosu od $%d. kazna: {FFFFFF}%s.", hIme[1], Cijena, razlog); // salje igracu poruku
SCM(id, 0xFFFFFFAA,  "  Da prihvatite upisite /prihvatu kazna."); // salje igracu poruku
SCMF(playerid, 0xFFFFFFAA, "Napisali ste kaznu igracu %s u iznosu od $%d. kazna: {FFFFFF}%s.", hIme[2], Cijena, razlog); // salje tebi poruku
return 1;
}



Dva stocka:

stock RPIme(playerid, Ime[MAX_PLAYER_NAME])
{
    GetPlayerName(playerid, Ime, sizeof(Ime));
    for(new x = 0; x < sizeof(Ime); x++) { if(Ime[x] == '_') Ime[x] = ' '; }
    return 1;
}

stock SCMF(playerid,color,fstring[],{Float, _}:...)
{
   new n=(numargs()-3)*4;
   if(n)
   {
      new message[128],arg_start,arg_end;
      #emit CONST.alt                fstring
      #emit LCTRL                    5
      #emit ADD
      #emit STOR.S.pri               arg_start
      #emit LOAD.S.alt               n
      #emit ADD
      #emit STOR.S.pri               arg_end
      do
  {
         #emit LOAD.I
         #emit PUSH.pri
         arg_end-=4;
         #emit LOAD.S.pri           arg_end
      }
      while(arg_end>arg_start);
      #emit PUSH.S                   fstring
      #emit PUSH.C                   255
      #emit PUSH.ADR                 message
      n+=4*3;
      #emit PUSH.S                   n
      #emit SYSREQ.C                 format
      n+=4;
      #emit LCTRL                    4
      #emit LOAD.S.alt               n
      #emit ADD
      #emit SCTRL                    4
      return SCM(playerid,color,message);
   }
   else return SCM(playerid,color,fstring);
}
Naslov: Odg: [Pomoc] /ticket komanda errori
Poruka od: CkusaColeCM poslato Mart 30, 2013, 14:13:47 POSLE PODNE
Evo tu je za prihvatit ima vise djelova jer komanda /prihvati sastoji se od vise elemenata pa ima ono else if... else if... :D
else if(strcmp(x_job,"ticket",true) == 0)
{
    if(TicketOffer[playerid] < 999)
    {
        if(IsPlayerConnected(TicketOffer[playerid]))
        {
            if (ProxDetectorS(5.0, playerid, TicketOffer[playerid]))
{
            GetPlayerName(TicketOffer[playerid], giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Platio si kaznu u iznosu $%d! Sluzbenik: %s.", TicketMoney[playerid], giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* %s je platio tvoju kaznu u iznosu od $%d.", sendername, TicketMoney[playerid]);
SendClientMessage(TicketOffer[playerid], COLOR_LIGHTBLUE, string);
GivePlayerCash(playerid, - TicketMoney[playerid]);
GivePlayerCash(TicketOffer[playerid], TicketMoney[playerid]);
TicketOffer[playerid] = 999;
TicketMoney[playerid] = 0;
return 1;
}
else
{
    SendClientMessage(playerid, COLOR_GREY, "   Sluzbenik nije u tvojoj blizini !");
    return 1;
}
        }
}
else
{
    SendClientMessage(playerid, COLOR_GREY, "   Niko ti nije naplatio kaznu !");
    return 1;
}
}
Naslov: Odg: [Pomoc] /ticket komanda errori
Poruka od: FlasH poslato Mart 30, 2013, 14:24:45 POSLE PODNE
Ovak:

Na vrh skripte:

new CenaKazne[BROJ_SLOTOVA];

OnPlayerConnect:

CenaKazne[playerid] = 0;

Dio za prihvatiti:

         
else if(strcmp(x_job,"ticket",true) == 0)
{
new Float:Poz[3];
GetPlayerPos(KaznaPoslana[playerid], Poz[0], Poz[1], Poz[2]);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, Poz[0], Poz[1], Poz[2])) return SCM(playerid, 0xFFFFFFAA, "Predaleko ste od drugog igraca");
    if(KaznaPoslana[playerid] == -1) return SCM(playerid, 0xFFFFFFAA, "Nemate aktivnu kaznu");
    if(PlayerInfo[playerid][pNovac] <= 0 ) return SCM(playerid, 0xFFFFFFAA, "Nemate dovoljno novca da platite kaznu");
else if(PlayerInfo[playerid][pNovac] < CenaKazne[playerid] && PlayerInfo[playerid][pBanka] >= CenaKazne[playerid])
{
    new name[MAX_PLAYER_NAME];
    RPIme(playerid, name);
    SCMF(playerid, 0xFFFFFFAA, "Platili ste kaznu u iznosu od $%d.", CenaKazne[playerid]);
    SCMF(KaznaPoslana[playerid], 0xFFFFFFAA, " %s je platio kaznu u iznosu od $%d.", name, CenaKazne[playerid]);
    CenaKazne[playerid] = 0;
    KaznaPoslana[playerid] = -1;
}
else if(PlayerInfo[playerid][pNovac] >= CenaKazne[playerid])
{
    new name[MAX_PLAYER_NAME];
    RPIme(playerid, name);
    SCMF(playerid, 0xFFFFFFAA, "Platili ste kaznu u iznosu od $%d.", CenaKazne[playerid]);
    SCMF(KaznaPoslana[playerid], 0xFFFFFFAA, " %s je platio kaznu u iznosu od $%d.", name, CenaKazne[playerid]);
    CenaKazne[playerid] = 0;
    KaznaPoslana[playerid] = -1;
}
else return SCM(playerid, 0xFFFFFFAA, "Nemate dovoljno novca da platite kaznu");
}

   
Naslov: Odg: [Pomoc] /ticket komanda errori
Poruka od: CkusaColeCM poslato Mart 30, 2013, 14:31:39 POSLE PODNE
Ljepo ti to radis al mislim da je ovaj gm [CENZURA] xd

C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(331) : error 017: undefined symbol "BROJ_SLOTOVA"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(331) : error 009: invalid array size (negative, zero or out of bounds)
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(34156) : error 017: undefined symbol "pNovac"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(34157) : error 017: undefined symbol "pNovac"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(34160) : error 017: undefined symbol "RPIme"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(34161) : error 017: undefined symbol "SCMF"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(34162) : error 017: undefined symbol "SCMF"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(34166) : error 017: undefined symbol "pNovac"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(34169) : error 017: undefined symbol "RPIme"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(34170) : error 017: undefined symbol "SCMF"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(34171) : error 017: undefined symbol "SCMF"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36848) : error 017: undefined symbol "pClan"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36849) : warning 219: local variable "Cijena" shadows a variable at a preceding level
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36853) : warning 213: tag mismatch
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36853) : warning 213: tag mismatch
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36853) : warning 205: redundant code: constant expression is zero
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36856) : error 017: undefined symbol "RPIme"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36857) : error 017: undefined symbol "RPIme"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36859) : error 017: undefined symbol "CijenaKazne"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36859) : warning 215: expression has no effect
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36859) : error 001: expected token: ";", but found "]"
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36859) : error 029: invalid expression, assumed zero
C:\Users\Korisnik\Desktop\CroMafia Test Folder\Cro Mafia [GM]\gamemodes\BN.pwn(36859) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

E sad ak ja trebam nesto mjenjati reci mi tocnije redove :D
Naslov: Odg: [Pomoc] /ticket komanda errori
Poruka od: FlasH poslato Mart 30, 2013, 14:34:57 POSLE PODNE
SCMF,RpIme stock sve sam ti stavio i napisao da zamijeniš varijable samo ti trebaš sada znat kako.
Naslov: Odg: [Pomoc] /ticket komanda errori
Poruka od: CkusaColeCM poslato Mart 30, 2013, 14:37:02 POSLE PODNE
Okee onda se odoh igrat s tim D:
Naslov: Odg: [Pomoc] /ticket komanda errori
Poruka od: CkusaColeCM poslato Mart 30, 2013, 14:37:31 POSLE PODNE
I da hvala na pomoci ;))