[Ajuda] Bug no /contrato.
#1

Eu mexi aqui olhei e aparentemente n vi nenhum erro no cmd, mas eu sou burro e posso n ter percebido..
o valor minimo do contrato eu coloquei 200 e o maximo 2000.. sу que quando tento dar um /contrato com 400 reais ou mais, da o erro no jogo: O valor de transiзгo do contrato estб invalido..

Avaliem ae e vejam oq tem de errado pra mim ? + REP.

pawn Код:
dcmd_contrato(playerid, params[])
    {
        new tmp[24], idx; tmp = strtok(params, idx);
        if(!strlen(tmp))
            return  SendClientMessage(playerid, COLOR_GREY, "[USO] /contrato [id/nick] [amount]");

        new giveid = ReturnUser(tmp);
        tmp = strtok(params, idx);
        if(!strlen(tmp))
            return  SendClientMessage(playerid, COLOR_GREY, "[USO] /contrato [id/nick] [amount]");

        if(Player[playerid][pMember] == TEAM_HITMAN)
            return SendClientMessage(playerid, COLOR_RED, "[ERRO] Hitmans nгo podem fazer contratos.");

        new moneys = strval(tmp);
        if(moneys < 200 || moneys > 2000)
            return SendClientMessage(playerid, COLOR_RED, "[ERRO] O contrato deve ser entre R$200 e R$2000)");

        if(IsPlayerConnected(giveid))
        {

            if(Player[giveid][pLeader] == TEAM_HITMAN && Player[playerid][pMember] == TEAM_HITMAN)
               return SendClientMessage(playerid,COLOR_RED, "[ERRO] Vocк nгo pode criar os contratos sobre o lнder.");
            else if(Player[giveid][pMember] == TEAM_HITMAN||Player[giveid][pLeader] == TEAM_HITMAN)
                return SendClientMessage(playerid,COLOR_RED, "[ERRO] Vocк nгo pode fazer contrato em um Hitman.");
            else if(gTeam[giveid] == 2 && moneys != 1000)
                return SendClientMessage(playerid, COLOR_RED, "[ERRO] Contrato para cabeca de oficiais somente no valor de R$1000.");
            else if(giveid == playerid)
                return SendClientMessage(playerid, COLOR_RED, "[ERRO] Vocк nгo pode fazer um contrato sobre si mesmo.");

            new playermoney = GetPlayerGP(playerid);
            if(moneys > 0 && playermoney >= moneys)
            {
                if(Player[giveid][pMember] == TEAM_HITMAN)
                {
                    format(thestring, sizeof(thestring), "Vocк criou um contrato sobre %s, por R$ %d.",Player[giveid][pName], moneys);
                    SendClientMessage(playerid, COLOR_DRIFTERS, thestring);
                    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
                    return 1;
                }
                GivePlayerGP(playerid, (-moneys));
                Player[giveid][pHeadValue] += moneys;
                format(thestring, sizeof(thestring), "<< %s criou um contrato sobre %s, por R$ %d. >>",Player[playerid][pName],Player[giveid][pName], moneys);
                SendTeamMessage(8, COLOR_DRIFTERS, thestring);
                format(thestring, sizeof(thestring), "Vocк criou um contrato sobre %s, por R$ %d.",Player[giveid][pName], moneys);
                SendClientMessage(playerid, COLOR_DRIFTERS, thestring);
                PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
            }
            else
                SendClientMessage(playerid, COLOR_RED, "[ERRO] O valor de transiзгo do contrato estб invбlido.");

        }
        else
            SendClientMessage(playerid, COLOR_RED, "[ERRO] Jogador nгo encontrado.");

        return 1;
    }
Reply
#2

pawn Код:
dcmd_contrato(playerid, params[])
    {
        new tmp[24], idx; tmp = strtok(params, idx);
        if(!strlen(tmp))
            return  SendClientMessage(playerid, COLOR_GREY, "[USO] /contrato [id/nick] [amount]");

        new giveid = ReturnUser(tmp);
        tmp = strtok(params, idx);
        if(!strlen(tmp))
            return  SendClientMessage(playerid, COLOR_GREY, "[USO] /contrato [id/nick] [amount]");

        if(Player[playerid][pMember] == TEAM_HITMAN)
            return SendClientMessage(playerid, COLOR_RED, "[ERRO] Assassinos nгo podem fazer contratos.");

        new moneys = strval(tmp);
        if(moneys < 200 || moneys > 2000)
            return SendClientMessage(playerid, COLOR_RED, "[ERRO] O contrato deve ser entre R$200 e R$2000)");

        if(IsPlayerConnected(giveid))
        {
            if(Player[giveid][pAdmin] > 0)
                return SendClientMessage(playerid,COLOR_RED, "[ERRO] Vocк nгo pode fazer contrato em um admin.");

            if(Player[giveid][pLeader] == TEAM_HITMAN && Player[playerid][pMember] == TEAM_HITMAN)
               return SendClientMessage(playerid,COLOR_RED, "[ERRO] Vocк nгo pode criar os contratos sobre o lнder.");
            else if(Player[giveid][pMember] == TEAM_HITMAN||Player[giveid][pLeader] == TEAM_HITMAN)
                return SendClientMessage(playerid,COLOR_RED, "[ERRO] Vocк nгo pode fazer contrato em um assassino.");
            else if(gTeam[giveid] == 2 && moneys != 1000)
                return SendClientMessage(playerid, COLOR_RED, "[ERRO] Contrato para cabeca de oficiais somente no valor de R$1000.");
            else if(giveid == playerid)
                return SendClientMessage(playerid, COLOR_RED, "[ERRO] Vocк nгo pode fazer um contrato sobre si mesmo.");

            new playermoney = GetPlayerGP(playerid);
            if(moneys > 0 && playermoney >= moneys)
            {
                if(Player[giveid][pMember] == TEAM_HITMAN)
                {
                    format(thestring, sizeof(thestring), "Vocк criou um contrato sobre %s, por R$ %d.",Player[giveid][pName], moneys);
                    SendClientMessage(playerid, COLOR_LIGHTBLUE, thestring);
                    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
                    return 1;
                }
                GivePlayerGP(playerid, (-moneys));
                Player[giveid][pHeadValue] += moneys;
                format(thestring, sizeof(thestring), "<< Alguйm criou um contrato sobre %s, por R$ %d. >>",Player[giveid][pName], moneys);
                SendTeamMessage(8, COLOR_LIGHTBLUE, thestring);
                format(thestring, sizeof(thestring), "Vocк criou um contrato sobre %s, por R$ %d.",Player[giveid][pName], moneys);
                SendClientMessage(playerid, COLOR_LIGHTBLUE, thestring);
                PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
            }
            else
                SendClientMessage(playerid, COLOR_RED, "[ERRO] O valor de transiзгo do contrato estб invбlido.");

        }
        else
            SendClientMessage(playerid, COLOR_RED, "[ERRO] Jogador nгo encontrado.");

        return 1;
    }

Compile , com f5..

Caso nгo der, desative os filter scripters, do servidor e tente..
Reply
#3

Nгo deu.
Mesma coisa os 2 pow. Unica coisa que mudei nesta biroska ae й que aparece qm criou os contrato pros hitman.

No meu backup sem mostrar qm fez o contrato funfa normal, dae botei isso e da erro no valor da transiзгo.

pawn Код:
format(thestring, sizeof(thestring), "<< %s criou um contrato sobre %s, por R$ %d. >>",Player[playerid][pName],Player[giveid][pName], moneys);
SendTeamMessage(8, COLOR_DRIFTERS, thestring);
Reply
#4

Estranho ._.
Reply
#5

nй..
Reply
#6

Up
ngm sabe mano ?
Reply
#7

Corrigindo! Estб dando o erro pois vc esta colocando um valor menor que 0 ou nгo tem o dinheiro q coloca no contrato. Pois o CMD esta correto!
Reply
#8

Uai, tava com 2kk na mгo, tentei colocar /contrato id 500.. nгo funfa auheauheu
vou tentar de novo
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)