[Ajuda] de strcmp para zcmd.
#1

Alguйm podwria me ajudar convertendo esse comando de "strcmp + strok para zcmd + sscanf2?

Pf preciso muito. Dou reputaзгo.

PHP код:
 public OnPlayerCommandText(playeridcmdtext[])
{
    new
        
cmd[128], idxtmp[128];
    
cmd strtok(cmdtextidx);
    
    
GetPlayerPos(playeridPlayerGetPos[0], PlayerGetPos[1], PlayerGetPos[2]);
    new
        
Float:iAngulo
    
;
    
GetPlayerFacingAngle(playeridiAngulo);
    if(
strcmp(cmd"/veh"true) == || strcmp(cmd"/criarveiculo"true) == 0)
    {
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp))
        {
            
SendClientMessage(playerid0xFF3300AA"| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 
1;
        }
        new 
veiculo GetVehicleModelID(tmp);
        if(
veiculo == -1)
        {
            
veiculo strval(tmp);
            if(
veiculo 400 || veiculo 611)
            {
                
SendClientMessage(playerid0xFF3300AA"| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
                return 
1;
            }
        }
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp))
        {
            
SendClientMessage(playerid0xFF3300AA"| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 
1;
        }
        new 
color1 strval(tmp);
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp))
        {
            
SendClientMessage(playerid0xFF3300AA"| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 
1;
        }
        new 
color2 strval(tmp);
        if(
veiculo 400 || veiculo 611)
        {
            
SendClientMessage(playerid0xFF3300AA"| ERRO | Somente veнculos entre 400 б 611!");
            return 
1;
        }
        
DestroyVehicle(VeiculoID[playerid]);
        
PutPlayerInVehicle(playeridModeloplayerid ] = CreateVehicle(veiculoPlayerGetPos[0], PlayerGetPos[1], PlayerGetPos[2], iAngulocolor1color2, -1), 0);
        
VeiculoID[playerid] = GetPlayerVehicleID(playerid);
        
CriouVeiculo[playerid] = true;
        
format(g_stringsizeof(g_string), "| INFO | %s criado com sucesso! (Somente vocк pode dirigi-lo)"Veiculos[GetVehicleModel(Modeloplayerid ])-400]);
        
SendClientMessage(playerid0xFFFF33AAg_string);
        
format(g_stringsizeof(g_string), "%s [%d]"PlayerName(playerid), playerid);
        
VLabel3D[playerid] = Create3DTextLabel(g_string0x00FF00AA0.00.00.040.001);
        
Attach3DTextLabelToVehicle(VLabel3D[playerid], Modeloplayerid ], 0.0, -2.50.5);
        
format(Veiculopp[VeiculoID[playerid]][Nome], 20PlayerName(playerid));
        return 
1;
    } 
Reply
#2

Hб vбrios tutoriais na board explicando como o fazer.

Segue dois tutoriais abaixo:
[Tutorial] Usando sscanf em zcmd
[Tutorial] zcmd + sscanf (Criando Comando + Video Aula)
Reply
#3


Conversor
Reply
#4

Pra zcmd eu ate consigo... so tф errando na parte de converter strok para sscanf essa parte ta foda. Alguem ajuda aqui.
Reply
#5

pawn Код:
new ID, Cor1, Cor2;
if(sscanf(params, "ddd", ID, Cor1, Cor2)) return SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
Reply
#6

na sscanf usa-se:
d ou i - usado quando vocк usa nъmeros.
s - й o string usado quando vocк usa letras.
u - usado para ID de Players
f - usado para coordenadas
Aqui Abaixo um Exemplo:
pawn Код:
CMD:setarvida(playerid,params[])
{
    new ID,Var1;
    if(sscanf(params,"ud",ID,Var1)) return SendClientMessage(playerid,-1,"/setarvida [id] [life]");
    if(!IsPlayerConnected(ID)) return SendClientMessage(playerid,-1,"ID Invбlido");
    SetPlayerHealth(ID,Var1);
    return 1;
}
Reply
#7

Assim se nгo for desculpe-me

pawn Код:
public OnPlayerCommandText(playerid, cmd[])
{
    new
    cmd[128], idx, tmp[128];
   
    cmd = strtok(cmd, idx);
   
    GetPlayerPos(playerid, PlayerGetPos[0], PlayerGetPos[1], PlayerGetPos[2]);
    new
    Float:iAngulo
    ;
    GetPlayerFacingAngle(playerid, iAngulo);
   
CMD:veh(playerid, params[])  return cmd_criarveiculo(playerid, params);
CMD:criarveiculo(playerid, params[])
{
    tmp = strtok(cmd, idx);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
        return 1;
    }
    new veiculo = GetVehicleModelID(tmp);
    if(veiculo == -1)
    {
        veiculo = strval(tmp);
        if(veiculo < 400 || veiculo > 611)
        {
            SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 1;
        }
    }
    tmp = strtok(cmd, idx);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
        return 1;
    }
    new color1 = strval(tmp);
    tmp = strtok(cmd, idx);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
        return 1;
    }
    new color2 = strval(tmp);
    if(veiculo < 400 || veiculo > 611)
    {
        SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Somente veнculos entre 400 б 611!");
        return 1;
    }
    DestroyVehicle(VeiculoID[playerid]);
    PutPlayerInVehicle(playerid, Modelo[ playerid ] = CreateVehicle(veiculo, PlayerGetPos[0], PlayerGetPos[1], PlayerGetPos[2], iAngulo, color1, color2, -1), 0);
    VeiculoID[playerid] = GetPlayerVehicleID(playerid);
    CriouVeiculo[playerid] = true;
    format(g_string, sizeof(g_string), "| INFO | %s criado com sucesso! (Somente vocк pode dirigi-lo)", Veiculos[GetVehicleModel(Modelo[ playerid ])-400]);
    SendClientMessage(playerid, 0xFFFF33AA, g_string);
    format(g_string, sizeof(g_string), "%s [%d]", PlayerName(playerid), playerid);
    VLabel3D[playerid] = Create3DTextLabel(g_string, 0x00FF00AA, 0.0, 0.0, 0.0, 40.0, 0, 1);
    Attach3DTextLabelToVehicle(VLabel3D[playerid], Modelo[ playerid ], 0.0, -2.5, 0.5);
    format(Veiculopp[VeiculoID[playerid]][Nome], 20, PlayerName(playerid));
    return 1;
}
Reply
#8

Vocк so adicionou o "CMD:" no comando e ele estб pedindo o uso de sscanf como coloquei acima,e nгo se usa ZCMD em public.
Reply
#9

Bom cara nгo foi eu que criei o comando so te dei o comando que vocк pediu... usei um Conversor Strcmp para Zcmd
Reply
#10

Quote:
Originally Posted by Dolby
Посмотреть сообщение
pawn Код:
new ID, Cor1, Cor2;
if(sscanf(params, "ddd", ID, Cor1, Cor2)) return SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
Sim isso tb eu sei mas o comando em strcmp original pode criar carros pelo id ou nome, desse jeito acho q a pelo ID.
Reply


Forum Jump:


Users browsing this thread: