Please, help!
#1

Hi, guys!
Well, I am changing my commands to zcmd and I have one problem. What should I do whit this one?

pawn Код:
CMD:s(playerid, params[])
{
      if(cmdtext[2]==0){SendClientMessage(playerid,0x00FF00AA, "* Naudojimas: {347C17}/s [tekstas]"); return 1;}
      new zin[256],vardas[MAX_PLAYER_NAME];
      GetPlayerName(playerid,vardas,MAX_PLAYER_NAME);
      format(zin,sizeof(zin),"{66ff33}Adminas {66ff33}%s: {66ff33}%s",vardas,cmdtext[3]);
      SendClientMessageToAll(0x00DAECAA,zin);
      return 1;
  }
After I compline, I got these errors:
pawn Код:
D:\GTASA~1\ghjhj\GAMEMO~1\band7.pwn(17597) : error 017: undefined symbol "cmdtext"
D:\GTASA~1\ghjhj\GAMEMO~1\band7.pwn(17597) : warning 215: expression has no effect
D:\GTASA~1\ghjhj\GAMEMO~1\band7.pwn(17597) : error 001: expected token: ";", but found "]"
D:\GTASA~1\ghjhj\GAMEMO~1\band7.pwn(17597) : error 029: invalid expression, assumed zero
D:\GTASA~1\ghjhj\GAMEMO~1\band7.pwn(17597) : fatal error 107: too many error messages on one line

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


4 Errors.
What should I do? Help, please
Reply
#2

Change
pawn Код:
if(cmdtext[2]==0){SendClientMessage(playerid,0x00FF00AA, "* Naudojimas: {347C17}/s [tekstas]"); return 1;}
To

pawn Код:
if(isnull(params)) return SendClientMessage(playerid,0x00FF00AA, "* Naudojimas: {347C17}/s [tekstas]");
Reply
#3

Thanks, works fine. When i put
pawn Код:
if(!playerDB[playerid][admin]) return
I got errors. Here is the code:

pawn Код:
CMD:s(playerid, params[])
    {
    if(!playerDB[playerid][admin]) return
       if(isnull(params)) return SendClientMessage(playerid,0x00FF00AA, "* Naudojimas: {347C17}/s [tekstas]");
      new zin[256],vardas[MAX_PLAYER_NAME];
      GetPlayerName(playerid,vardas,MAX_PLAYER_NAME);
      format(zin,sizeof(zin),"{66ff33}Adminas {66ff33}%s: {66ff33}%s",vardas,isnull(params));
      SendClientMessageToAll(0x00DAECAA,zin);
      return 1;
  }
Here is the error:

pawn Код:
D:\GTASA~1\ghjhj\GAMEMO~1\band7.pwn(17598) : error 029: invalid expression, assumed zero
D:\GTASA~1\ghjhj\GAMEMO~1\band7.pwn(17598) : warning 215: expression has no effect
D:\GTASA~1\ghjhj\GAMEMO~1\band7.pwn(17598) : error 001: expected token: ";", but found "return"
D:\GTASA~1\ghjhj\GAMEMO~1\band7.pwn(17599) : warning 225: unreachable code
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
What's wrong? Could you help me?
Reply
#4

pawn Код:
if(!playerDB[playerid][admin]) return
Should actually return a value such as:

pawn Код:
if(!playerDB[playerid][admin]) return SendClientMessage(playerid,0x00FF00AA, "* Naudojimas: {347C17} You're not admin"); //In your language :P
or if you want it saying unknown command for any non-admins:
pawn Код:
if(!playerDB[playerid][admin]) return 0;
Reply
#5

Thanks, works fine
But here is another problem. When I go to game, everything works fine, I type "/s bla bla bla" and it only says "Admin Name_Surname says: " nothing more... I hope you understand me Here is the code:

pawn Код:
CMD:s(playerid, params[])
    {
    if(!playerDB[playerid][admin]) return SendClientMessage(playerid,COLOR_RED, "* Tai skirta tik administracijai.");
       if(isnull(params)) return SendClientMessage(playerid,0x00FF00AA, "* Naudojimas: {347C17}/s [tekstas]");
      new zin[256],vardas[MAX_PLAYER_NAME];
      GetPlayerName(playerid,vardas,MAX_PLAYER_NAME);
      format(zin,sizeof(zin),"{66ff33}Adminas {66ff33}%s: {66ff33}%s",vardas,isnull(params));
      SendClientMessageToAll(0x00DAECAA,zin);
      return 1;
  }
Reply
#6

Anyone could help me?
Reply
#7

pawn Код:
format(zin,sizeof(zin),"{66ff33}Adminas {66ff33}%s: {66ff33}%s",vardas,isnull(params));
Should be:
pawn Код:
format(zin,sizeof(zin),"{66ff33}Adminas {66ff33}%s: {66ff33}%s",vardas,params);
Also NEVER use 256 byte long strings!!!!!!!!!
Chat strings can only be maximal 128 bytes, you are wasting twice as much memory as actually needed.
Reply
#8

Thanks, and I want to change /kick command to zcmd. What should I do whit this:

pawn Код:
strmid(prz,GetArgument(2, cmdtext,true),0,128);
            if(!strcmp(prz, "0", true) ){SendClientMessage(playerid, RED, "* You forgot to say a reason.."); return 1;}
here is the whole command:
pawn Код:
CMD:kick(playerid, params[])
        {
            new kick;
            if (sscanf(params, "u", kick)){SendClientMessage(playerid, COLOR_ORANGE, "* Ismesti zaideja: /kick (dalis_vardo) (priezastis)");return 1;}
            if (kick == INVALID_PLAYER_ID){ SendClientMessage(playerid, RED, "* Tokio zaidejo nera"); return 1;}
            if (playerDB[kick][admin]){ SendClientMessage(playerid, RED, "* Administratoriaus ismesti negalima."); return 1;}

            strmid(prz,GetArgument(2, cmdtext,true),0,128);
            if(!strcmp(prz, "0", true) ){SendClientMessage(playerid, RED, "* Pamirsote nurodyti priezasti."); return 1;}

            new msg[128],adminname[MAX_PLAYER_NAME];
            GetPlayerName(kick,vardas,sizeof(vardas));
            GetPlayerName(playerid,adminname,sizeof(adminname));

            format(msg,sizeof(msg),"[kick] %s",prz);
            SendClientMessage(kick,BLUE,msg);
            Kick(kick);
            format(msg,sizeof(msg),"[kick] %s ismete %s is serverio (%s).",adminname,vardas,prz);
            SendClientMessageToAll(BLUE,msg);
            return 1;
        }
Help, please, I dont know what to do. Thanks anyway
Reply
#9

To be honest, first time I come across with the strmid, so I don't know if it's correct.
pawn Код:
CMD:kick(playerid, params[])
{
    new kick, msg[128], prz[128], vardas[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME];
    if(!playerDB[playerid][admin]) return SendClientMessage(playerid,0x00FF00AA, "* Naudojimas: {347C17}/s [tekstas]");
    if(sscanf(params, "u", kick))return SendClientMessage(playerid, COLOR_ORANGE, "* Ismesti zaideja: /kick (dalis_vardo) (priezastis)");
    if(kick == INVALID_PLAYER_ID)return SendClientMessage(playerid, RED, "* Tokio zaidejo nera");
    strmid(prz, GetArgument(2, params, true), 0, 128);
    if(!strcmp(prz, "0", true))return SendClientMessage(playerid, RED, "* Pamirsote nurodyti priezasti.");
    GetPlayerName(kick, vardas, sizeof(vardas));
    GetPlayerName(playerid, adminname, sizeof(adminname));
    format(msg, sizeof(msg), "[kick] %s", prz);
    SendClientMessage(kick, BLUE, msg);
    Kick(kick);
    format(msg,sizeof(msg),"[kick] %s ismete %s is serverio (%s).", adminname, vardas, prz);
    return SendClientMessageToAll(BLUE, msg);
}

stock GetArgument(argument, const string[], untillend)
{

    new index = 0;
    new end = 0;
    new returns[256]="0";

    for(new loop = 0; loop < argument; loop++) {
        index = strfind(string," ",true,index)+1;
        if(!strcmp(string[index]," ",true,1)){return returns;}
        if (index == 0){return returns;}
    }
    if(untillend == 0) {
        end = strfind(string[index]," ",true,0);
    }
    if (end== -1 || untillend==1) end = 256-index;
    strmid(returns,string[index],0,end);
    return returns;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)