[convert] zcmd to strcmp
#1

well, my whole mod is on strcmp.......... but that not the issue..
I am just begginer
look, I found that script:
pawn Код:
CMD:siren(playerid, params[])
{
   if(IsACop(playerid)) {
       new string[128], type;
       new VID = GetPlayerVehicleID(playerid);
       if(sscanf(params, "d", type)) {
           SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /siren [type]");
           SendClientMessageEx(playerid, COLOR_GRAD2, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
           return 1;
       }
       switch(type) {
           case 1:
           {
               if(Siren[VID] == 1) {
                   SendClientMessageEx(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                   return 1;
               }
               new sendername[MAX_PLAYER_NAME];
               Siren[VID] = 1;
               GetPlayerName(playerid, sendername, sizeof(sendername));
               SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
               AttachObjectToVehicle(SirenObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);
               format(string, sizeof(string), "* %s puts the siren on the dashboard.", sendername);
               ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
               return 1;
           }
           case 2:
           {
               if(Siren[VID] == 1) {
                   SendClientMessageEx(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                   return 1;
               }
               Siren[VID] = 1;
               new sendername[MAX_PLAYER_NAME];
               GetPlayerName(playerid, sendername, sizeof(sendername));
               SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
               AttachObjectToVehicle(SirenObject[VID], VID, -0.43, 0.0, 0.785, 0.0, 0.1, 0.0);
               format(string, sizeof(string), "* %s puts the siren on the roof.", sendername);
               ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
               return 1;
           }
           case 3:
           {
               if(Siren[VID] == 0) {
                   SendClientMessageEx(playerid, COLOR_GRAD2, "This vehicle doesn't have a siren on it!");
                   return 1;
               }
               Siren[VID] = 0;
               new sendername[MAX_PLAYER_NAME];
               GetPlayerName(playerid, sendername, sizeof(sendername));
               DestroyObject(SirenObject[VID]);
               format(string, sizeof(string), "* %s takes down the siren.", sendername);
               ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
               return 1;
           }
           default:
           {
               SendClientMessageEx(playerid, COLOR_WHITE, "Invalid license type! /siren [type]");
               SendClientMessageEx(playerid, COLOR_GRAD2, "Type: 1 = Roof, 2 = Inside, 3 = Off.");
           }
      }
   }
   else SendClientMessageEx(playerid, COLOR_GREY, "You're not authorised to use this command.");
   return 1;
}
and I converted it to this one:
pawn Код:
if(strcmp(cmd, "/siren", true) == 0)
    {
        if(IsACop(playerid))
        {
            new x_v[256];
            x_v = strtok(cmdtext, idx);
            new string[128], type;
            new VID = GetPlayerVehicleID(playerid);

            if(!strlen(x_v))
            {
           SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [type]");
           SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
                return 1;
            }
            else if(strcmp(x_v,"1",true) == 0)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                else
                 {
               new sendername[MAX_PLAYER_NAME];
               Siren[VID] = 1;
               GetPlayerName(playerid, sendername, sizeof(sendername));
               SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
               AttachObjectToVehicle(SirenObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);
               format(string, sizeof(string), "* %s puts the siren on the dashboard.", sendername);
               ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
               return 1;
                 }
                return 1;
            }
            else if(strcmp(x_v,"2",true) == 0)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                else
             {
                            Siren[VID] = 1;
               new sendername[MAX_PLAYER_NAME];
               GetPlayerName(playerid, sendername, sizeof(sendername));
               SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
               AttachObjectToVehicle(SirenObject[VID], VID, -0.43, 0.0, 0.785, 0.0, 0.1, 0.0);
               format(string, sizeof(string), "* %s puts the siren on the roof.", sendername);
               ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
               return 1;
             }

                return 1;
            }
          else if(strcmp(x_v,"3",true) == 0)
            {

               if(Siren[VID] == 0)
               {
                   SendClientMessageEx(playerid, COLOR_GRAD2, "This vehicle doesn't have a siren on it!");
                   return 1;
               }
               else
               {
                            Siren[VID] = 0;
               new sendername[MAX_PLAYER_NAME];
               GetPlayerName(playerid, sendername, sizeof(sendername));
               DestroyObject(SirenObject[VID]);
               format(string, sizeof(string), "* %s takes down the siren.", sendername);
               ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
               return 1;
               }
                return 1;
            }
            else
            {
       SendClientMessage(playerid, COLOR_WHITE, "Unknown subcommand!");
            }
        }
        return 1;
    }
well, when I am trying to compile it, I got that messege:
"pawn compile library stopped working"
and it is stopping compiling..
:S

some suggestions?
Reply
#2

Quote:
Originally Posted by igal4576
Посмотреть сообщение
I am just begginer
It's a mystery to me why all "beginners" want to start with the most complex and sophisticated scripts. Why can't you start with something simple? What you're trying to do like installing Windows 98 while you can have Windows 7. Either convert everything to ZCMD or better yet, move away from the goddamn godfather script (or its edits).
Reply
#3

well, I just found a "siren" script.. (just one, didn't find anothers..), so I tried to do some work on it, and make it work on my "GF Edit" mod.
I didn't know it such a big work..
So, is there any way to convert all my commands to ZCMD? or I need to do it command after command.. it will take like a billion hours.

are you sure there is no way just to convert that little script to strcmp..? I mean converting like 50 lines it's much easier that converting 53482532853854385348535 lines..
Reply
#4

why you want to leave zcmd? its better and easier
Reply
#5

look, my mod based on some GF edit... it's all has been written on strcmp.. so I want to keep it.. I know zcmd is better and easier, but I realy don't want to spend hours on converting it..
this little siren script was wroten (not by me) on zcmd, so to make it work on my "GF edit mod" I need to convert it to strcmp, or to convert the whole mod to zcmd..
I prefer converting 50 lines to strcmp than converting 594325943259345932 lines to zcmd
Reply
#6

You can have both ZCMD and strcmp together.

P.S.
strcmp is not a command processor. While ZCMD is a command processor.
Reply
#7

well if I have both, every strcmp command that I use on my server I got : "SERVER: Unknown command"
Reply
#8

well nevermind, I just replaced OnPlayerCommandText with OnPlayerCommandPerformed
http://forum.sa-mp.com/showpost.php?...7&postcount=16

and now It works
no converting needed
thank you for helping anyways


Quote:
Originally Posted by igal4576
Посмотреть сообщение
I am just begginer
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)