SA-MP Forums Archive
[Ajuda] Ajuda com comando - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Ajuda com comando (/showthread.php?tid=552854)



Ajuda com comando - MakillesBr - 26.12.2014

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;
}


Re: Ajuda com comando - MultiKill - 26.12.2014

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


Re: Ajuda com comando - MakillesBr - 27.12.2014

Irei testar,logo trarei a resposta.


Re: Ajuda com comando - MakillesBr - 30.12.2014

Nгo deu


Re: Ajuda com comando - Artista - 30.12.2014

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.


Re: Ajuda com comando - MakillesBr - 31.12.2014

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.


Re: Ajuda com comando - Artista - 31.12.2014

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!");


Re: Ajuda com comando - MakillesBr - 31.12.2014

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


Re: Ajuda com comando - LucasAllexandre - 31.12.2014

kibando gm do bls ,
que vergonha


Re: Ajuda com comando - HaydeK - 31.12.2014

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