[Ajuda] SSCANF2
#1

Pessoal, comecei a mudar um pouco meu GM para sscanf2, alguem pode dar um help, pois travei em uma parte.

pawn Код:
CMD:cv(playerid, params[])
{
    if(jInfo[playerid][Admin] < 2) return SendClientMessage(playerid, VERMELHO, "{FF1493}[WarZone]{FF0000}{FFFF00} Vocк nгo estб autorizado.");
    if(AdminTrabalhando[playerid] < 1) return SendClientMessage(playerid, VERMELHO, "{FF1493}[WarZone]{FF0000} Vocк nгo estб trabalhando!");
    new carro, cor1 = -1, cor2 = -1;
    if(sscanf(params, "iii",carro, cor1, cor2))
    {
        SendClientMessage(playerid, VERMELHO,"Use: /cv [Modelo] [Cor1] [Cor2");
    }
    if(carro < 400 || carro > 611) return SendClientMessage(playerid, VERMELHO, "{FF1493}[WarZone]{FF0000} O modelo tem que ser entre 400 e 611");
//=========== [ DAQUI PRA BAIXO EU TRAVEI. ] =====================//
    cor1 = strval(tmp);
    tmp = strtok(params, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, VERMELHO, "{FF1493}[WarZone]{FF0000} Use: /cv [Modelo] [Cor1] [Cor2]");
    cor2 = strval(tmp);
    DestroyVehicle(Carro[playerid]);
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    Carro[playerid] = CreateVehicle(carro, X, Y, Z-1, 0.0, cor1, cor2, 25000);
    PutPlayerInVehicle(playerid, Carro[playerid], 0);
    format(string, sizeof(string), "{FF1493}[WarZone]{551A8B} ** O Administrador %s, criou um carro. **", GetPlayerNameEx(playerid));
    SendMessageToAdmins(ROXO, string);
    new d,m,a;
    new h,mi,s;
    getdate(d,m,a);
    gettime(h,mi,s);
    format(string, sizeof(string), "(%d/%d/%d)[%d:%d:%d] [WarZone] O Administrador %s, criou um carro.",d,m,a,h,mi,s, GetPlayerNameEx(playerid));
    Administracao(string);
    return 1;
}
Brigadгo
Reply
#2

O sscanf2 nгo й bem uma include. E sim um cуdigo.

pawn Код:
native sscanf(const data[], const format[], {Float,_}:...);
native unformat(const data[], const format[], {Float,_}:...) = sscanf;
Leia este tutorial, acho que lhe ajuda.
https://sampforum.blast.hk/showthread.php?tid=120356
Reply
#3

Na verdade 666 o sscanf2, й um plugin, e uma include, eu sou novato nesse negуcio de sscanf2, e esse "tutorial" que vocк me passou acho que vocк quis me mostrar esse:

https://sampforum.blast.hk/showthread.php?tid=277842

ou esse

https://sampforum.blast.hk/showthread.php?tid=279179

Pois os 2 nгo entendi muito bem essa parte de substituir o strtok.
Reply
#4

pawn Код:
#define IsValidCar(%0)  (0x258 < %0 > 0x190)
Oque essa linha significa? '-'
Reply
#5

pawn Код:
#define IsValidCar(%0)  (0x258 < %0 > 0x190)
Senгo me falho a memуria, ainda quando eu estava no Brazil fiz um cursinho de informбtica e aprendi nъmeros hexadecimais,binбrios e etc.

%0 » Carid ou algo como o centro.
0x258 (Hex) - 611 (Decimal)
0x190 (Hex) - 400 (Decimal)

Entгo em nossa 'lingua' ficaria

pawn Код:
#define IsValidCar(carid)  (611 < carid > 400)
Reply
#6

Los, quando tu postou o code tu tinha usado sscanf + strock '-' isso vai bugar tudo, ou tu usa strock ou tu usa sscanf '-' mais digo sscanf й mais facil e poupa mais tempo '-'...
Reply
#7

Nгo sabia dessa '-' agora aprendi xD
Reply
#8

Quote:
Originally Posted by Nathy.SA-MP
Посмотреть сообщение
esta funcгo eu peguei na pastebin de um amigo meu.
Na verdade isso nгo й uma funзгo, isso й um Macro, para facilitar nas suas funзхes posteriores.
Reply
#9

Blue, eu parei de usar o strtok atй aonde falei que tinha travado, o resto nгo consegui, e ainda nгo entendi essa macro.
Reply
#10

Mais um probleminha aqui:

pawn Код:
CMD:promoveradmin(playerid, params[])
{
    new string[ 100 ], giveplayerid, level;
    giveplayerid = ReturnUser(params);
    level = strval(params);
    if(jInfo[playerid][Admin] < 5) return SendClientMessage(playerid, VERMELHO, "{FF1493}[WarZone]{FF0000} Vocк nгo estб autorizado.");
    if(AdminTrabalhando[playerid] < 1) return SendClientMessage(playerid, VERMELHO, "{FF1493}[WarZone]{FF0000} Vocк nгo estб trabalhando!");
    if(jInfo[giveplayerid][Admin] < 1 || jInfo[giveplayerid][Admin] == 5) return SendClientMessage(playerid, VERMELHO, "{FF1493}[WarZone]{FF0000} Esse jogador nгo й administrador ou й administrador scripter.");
    if(sscanf(params, "ud", params, level)) return SendClientMessage(playerid, VERMELHO, "{FF1493}[WarZone]{FF0000} USE: /promoveradmin [playerid] [level]");
    if(level < 2 || level > 5) return SendClientMessage(playerid, VERMELHO, "{FF1493}[WarZone]{FF0000} USO: Level somente de 2 a 5");
    jInfo[giveplayerid][Admin] = level;
    format(string, sizeof(string), "{FF1493}[WarZone]{FFFF00} Vocк foi promovido para Administrador level %d pelo administrador %s.", level, GetPlayerNameEx(playerid));
    SendClientMessage(giveplayerid, AMARELO, string);
    format(string, sizeof(string), "{FF1493}[WarZone]{FFFF00} Vocк promoveu %s para Administrador level %d.", giveplayerid, level);
    SendClientMessage(playerid, AMARELO, string);
    format(string, sizeof(string),"{FF1493}[WarZone]{00FFFF} O administrador %s foi promovido para administrador level %d. Parabйns :)", giveplayerid, level);
    SendClientMessageToAll(AZUL,string);
    new d,m,a;
    new h,mi,s;
    getdate(d,m,a);
    gettime(h,mi,s);
    format(string, sizeof(string),"(%d/%d/%d)[%d:%d:%d] [WarZone]  %s promoveu %s para Administrador level %d.",d,m,a,h,mi,s, GetPlayerNameEx(playerid), giveplayerid);
    Administracao(string);
    return 1;
}
Atй a parte do playerid tб certo, mais depois que escrevo /promoveradmin ID LEVEL completo, ele da unknow command, e eu acho que й nessa parte:

pawn Код:
new string[ 100 ], giveplayerid, level;
    giveplayerid = ReturnUser(params);
    level = strval(params);
Sу nгo sei como resolver.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)