[Ajuda] Ajuda com comando
#1

Bom,olб a todos,tenho uma GM que tem um comando para pegar materiais para ORGs criminosas comprarem,etc em um local especifico porйm se digitarmos o valor com '' - '' vc ganha dinheiro,porem se fizer o comando normalmente fica normal.

Ex: /pegarmateriais -1000 = vocк ganha 10000de dinheiro
/pegarmateriais 1000 = Vocк ganha 1000 materiais normalmente

Tem um geito de corrigir isso?

Script:

CMDegarmateriais(playerid, params[])
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, -4481.1582, 5710.4150, 14.8167)) return SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Erro]: {FFFFFF}Vocк nгo esta no Barco.");
if(GetPlayerOrg(playerid) != 16 && GetPlayerOrg(playerid) != 17 && !IsATerror(playerid)) return SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Erro]: {FFFFFF}Vocк nгo й da Mбfia/Terrorista.");

new quantidade;
if(sscanf(params, "d", quantidade))
{
SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Uso]: {FFFFFF}/PegarMateriais <Quantidade>");
return 1;
}
else if(quantidade > 1000) return SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Erro]: {FFFFFF}Vocк so pode pegar 1000 materiais por vez.");
else if(quantidade + Player[playerid][pMats] > 1000) return SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Erro]: {FFFFFF}Vocк so pode carregar 1000 Materiais.");

new Preco = quantidade * 2;
if(GetPlayerGP(playerid) < Preco)
{
format(thestring, 256, "{00FF00}[Erro]: {FFFFFF}Vocк nгo tem R$%d para Pagar.", Preco);
SendClientMessage(playerid, SERVER_INFO, thestring);
return 1;
}

GivePlayerGP(playerid, -Preco);
Player[playerid][pMats] += quantidade;
format(thestring, 256, "{00FF00}[Info]: {FFFFFF}Vocк pagou R$%d em %d Materiais.", Preco, quantidade);
SendClientMessage(playerid, SERVER_INFO, thestring);
format(thestring, sizeof(thestring), " %s comprou Materiais.", PlayerGetName(playerid));
ProxDetector(20.0, playerid, thestring,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,C OLOR_PURPLE,COLOR_PURPLE);
return 1;
}
Reply
#2

faz a verificaзгo:
pawn Код:
if(quantidade < 0)
Se vocк estudou matemбtica vocк deve saber que o 0 fica entre os valores positivos e negativos.

Ilustaзгo
Reply
#3

Irei testar,logo trarei a resposta.
Reply
#4

Nгo deu
Reply
#5

Coloque os cуdigos entre [*pawn] e [/pawn] sem o "*"
Como vocк estб fazendo? Poste como vocк fez por favor. Porque o que o MultiKill disse estб correto.
Reply
#6

pawn Код:
CMD:pegarmateriais(playerid, params[])
{
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, -4481.1582, 5710.4150, 14.8167)) return SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Erro]: {FFFFFF}Vocк nгo esta no Barco.");
    if(GetPlayerOrg(playerid) != 16 && GetPlayerOrg(playerid) != 17 && !IsATerror(playerid)) return SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Erro]: {FFFFFF}Vocк nгo й da Mбfia/Terrorista.");

    new quantidade;
    if(sscanf(params, "d", quantidade))
    {
        SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Uso]: {FFFFFF}/PegarMateriais <Quantidade>");
        return 1;
    }
    else if(quantidade > 1000) return SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Erro]: {FFFFFF}Vocк so pode pegar 1000 materiais por vez.");
    else if(quantidade + Player[playerid][pMats] > 1000) return SendClientMessage(playerid, SERVER_INFO, "{00FF00}[Erro]: {FFFFFF}Vocк so pode carregar 1000 Materiais.");

    new Preco = quantidade * 2;
    if(quantidade < 0)
    if(GetPlayerGP(playerid) < Preco)
    {
        format(thestring, 256, "{00FF00}[Erro]: {FFFFFF}Vocк nгo tem R$%d para Pagar.", Preco);
        SendClientMessage(playerid, SERVER_INFO, thestring);
        return 1;
    }

    GivePlayerGP(playerid, -Preco);
    Player[playerid][pMats] += quantidade;
    format(thestring, 256, "{00FF00}[Info]: {FFFFFF}Vocк pagou R$%d em %d Materiais.", Preco, quantidade);
    SendClientMessage(playerid, SERVER_INFO, thestring);
    format(thestring, sizeof(thestring), " %s comprou Materiais.", PlayerGetName(playerid));
    ProxDetector(20.0, playerid, thestring,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    return 1;
}
Na Realidade sou um pouco novato em Pawn,ainda estou aprendendo com tutoriais,etc mais me diz onde coloco o que o MultiKill mencionou neste CMD para corrigir akele erro.
Reply
#7

Erro aqui:
pawn Код:
if(quantidade < 0)
Vocк apenas copiou e colou no comando o que o MultiKill disse.

Vamos traduzir esta linha, para sabermos onde estб o erro:
se quantidade й menor que 0

Incompleto, nгo acha? Nгo deveria ser...
se quantidade й menor que 0, vocк deve digitar um valor maior!

Assim?

ou seja, transformando isto em pawn...
if(quantidade < 0) return SendClientMessage(playerid, -1, "vocк deve digitar um valor maior!");
Reply
#8

Obrigado,agradeзo a compreensгo de vocкs ao me ajudar jб que ainda estou aprendendo,deu certo,atй mais
Reply
#9

kibando gm do bls ,
que vergonha
Reply
#10

Pois й Copiando a Gamemode do BLS , ainda tem muito mais bug que vocк pensa Makilles!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)