[HELP] SSCANF Arguments
#1

Перевожу команды в моде на sscanf + dc_cmd
Впрочем проблем почти нету, но я не знаю как перевести такую команду: (LuxAdmin)

PHP код:
dcmd_car(playerid,params[])
{
    if(
AccInfo[playerid][Level] >= 3)
    {
        new 
Index;
        new 
tmp[256];  tmp  strtok(params,Index);
        new 
tmp2[256]; tmp2 strtok(params,Index);
        new 
tmp3[256]; tmp3 strtok(params,Index);
        if(!
strlen(tmp)) return
        
SendClientMessage(playeridLIGHTBLUE2"Usage: /car [ModelID/Name] [Colour1] [Colour2]") &&
           
SendClientMessage(playeridorange"Function: Will create a Car with specified Colours");
        new 
car;
        new 
string[128];
        new 
colour1colour2;
           if(!
IsNumeric(tmp))
         
car GetVehicleModelIDFromName(tmp);
          else 
car strval(tmp);
        if(
car 400 || car 611) return  SendClientMessage(playeridred"ERROR: Invalid Vehicle Model ID!");
        if(!
strlen(tmp2)) colour1 random(126); else colour1 strval(tmp2);
        if(!
strlen(tmp3)) colour2 random(126); else colour2 strval(tmp3);
        
        if(
AccInfo[playerid][pCar] != -&& !IsPlayerAdmin(playerid))
        
EraseVeh(AccInfo[playerid][pCar]);
        new 
LVehicleID;
        new 
Float:X,Float:Y,Float:Z;
        new 
Float:Angle,int1;
        
GetPlayerPos(playeridX,Y,Z);
        
GetPlayerFacingAngle(playerid,Angle);
        
int1 GetPlayerInterior(playerid);
        
LVehicleID CreateVehicle(carX+3,Y,ZAnglecolour1colour2, -1);
        
LinkVehicleToInterior(LVehicleID,int1);
        
AccInfo[playerid][pCar] = LVehicleID;
        
SendCommandToAdmins(playerid,"Car");
        
format(stringsizeof(string), "%s Spawned a \"%s\" (Model:%d) Colours (%d, %d), Pos: X:%0.2f, Y:%0.2f, Z:%0.2f"pName(playerid), VehicleNames[car-400], carcolour1colour2XYZ);
        
SaveIn("CarSpawns",string);
        
format(stringsizeof(string), "|- You have Spawned a \"%s\" (Model: %d) with Colours: %d,%d -|"VehicleNames[car-400], carcolour1colour2);
        return 
SendClientMessage(playerid,LIGHTBLUEstring);
    }
    else return 
ErrorMessages(playerid6);

Как сделать что бы не "ругался" сервер

Код:
[23:47:02] [command] [SkyLoKi.]: /car Elegy 0 0
[23:47:02] sscanf warning: Strings without a length are deprecated, please add a destination size.
Вот так я использую сейчас:

Код:
if(sscanf(params,"sii",id,color1,color2)) return UseCmd(playerid,"/car [ModelID/Name] [Colour1] [Colour2]","Will create a Car with specified Colours");
Возникают два вопроса:

1. Как тут сделать что бы первый параметр мог быть либо числовой, либо строчный?
2. Как сделать цвета необязательными?

P.S.
Про параметр z читал в wiki sscanf, но он строчный.
-1 перед параметрами я так и не понял как делать (где то видел что так вроде можно, но не получалось)
Reply


Messages In This Thread
[HELP] SSCANF Arguments - by SkyLoKi - 28.02.2015, 21:37
Re: [HELP] SSCANF Arguments - by DeViLsS - 28.02.2015, 21:51
Re: [HELP] SSCANF Arguments - by SkyLoKi - 28.02.2015, 22:01
Re: [HELP] SSCANF Arguments - by OKStyle - 01.03.2015, 05:32
Re: [HELP] SSCANF Arguments - by SkyLoKi - 01.03.2015, 06:29
Re: [HELP] SSCANF Arguments - by OKStyle - 01.03.2015, 09:59
Re: [HELP] SSCANF Arguments - by Dembel - 01.03.2015, 10:08
Re: [HELP] SSCANF Arguments - by SkyLoKi - 01.03.2015, 10:11
Re: [HELP] SSCANF Arguments - by SkyLoKi - 01.03.2015, 10:40
Re: [HELP] SSCANF Arguments - by Strix - 02.03.2015, 09:18
Re: [HELP] SSCANF Arguments - by SkyLoKi - 02.03.2015, 10:09
Re: [HELP] SSCANF Arguments - by Strix - 03.03.2015, 07:33

Forum Jump:


Users browsing this thread: 2 Guest(s)