/givemoney Bug!
#1

Player have $000100000
when players use this :
Quote:

/givemoney <TargetID> <200000>

Will show server message like this:
** You don't have the money for that!

But when players use this :
Quote:

/givemoney <TargetID> <834924857824597829525>

Server message not showing, then TargetID's money will look like this : -$89198667

This my script:

pawn Код:
CMD:givemoney(playerid,params[])
{
    new target, money;
    new str1[150], str2[150];

    if(sscanf(params,"ud",target,money)) return SCM(playerid,-1,"Usage : /givemoney <PlayerID> <Amount>");
    if(!IsPlayerConnected(target)) return SCM(playerid,-1,"** Invalid PlayerID !!");
    if(money > GetPlayerMoney(playerid)) return SendClientMessage(playerid, red, "** You don't have the money for that!");
    if(money >= 9999999999 ) return SendClientMessage(playerid, red, "** You don't have the money for that!");
    printf(".: MONEY :. '%s' has send '%s' moeny >> '%d' !",GetName(playerid),GetName(target),money);

    format(str1,150,""GR".: MONEY :. '%s' has given you money '$.%d' !",GetName(playerid),money);
    SCM(target,-1,str1);
    GivePlayerMoney(target, 0+money);

    format(str2,150,""GR".: MONEY :. You has give money to '%s', '$.%d' !",GetName(target),money);
    SCM(playerid,-1,str2);
    GivePlayerMoney(playerid, 0-money);
    sDialog(playerid,"Server message",str2);

    return 1;
}
Sorry for my bad english -_-
Reply
#2

Try this :

Код:
CMD:givemoney(playerid, params[])
{
    new player, amount,name1[24], name2[24], string[128];
    if(!sscanf(params, "ui",player,amount))
    {
        if(playerid != player)
        {
            if(GetPlayerMoney(playerid) >= amount)
            {
                GetPlayerName(playerid, name1, 24);
                GetPlayerName(player, name2, 24);
                format(string, sizeof(string), "You gaved $%d to %s.",amount,name2);
                SendClientMessage(playerid, 0xFFFF00FF, string);
                format(string, sizeof(string), "%s gave you $%d!", name1, amount);
                SendClientMessage(player, 0xFFFF00FF, string);
                GivePlayerMoney(playerid, -amount);
                GivePlayerMoney(player, amount);
            }
            else return SendClientMessage(playerid, 0xFF0000FF,"You don't have that much.");
        }
        else return SendClientMessage(playerid, 0xFF0000FF,"You can't pay to yourself.");
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF,"{F07F1D}Usage : /givemoney [ID][Amount]");
    return 1;
}
Reply
#3

pawn Код:
CMD:givemoney(playerid,params[])
{
    new target, money;
    if(sscanf(params, "ui", target, money)) return SCM(playerid, -1, "Usage : /givemoney <PlayerID> <Amount>");
    if(!IsPlayerConnected(target) || target == INVALID_PLAYER_ID) return SCM(playerid, -1, "** Invalid PlayerID !!");
    if(!(0 < money <= GetPlayerMoney(playerid))) return SendClientMessage(playerid, red, "** You don't have the money for that!");
    new str1[90];
    printf(".: MONEY :. '%s' has sent '%s' moeny >> '%d' !", GetName(playerid), GetName(target), money);
    format(str1, sizeof(str1), ""GR".: MONEY :. '%s' has given you money '$.%d' !", GetName(playerid), money);
    SCM(target, -1, str1);
    GivePlayerMoney(target, money);
    format(str1, sizeof(str1), ""GR".: MONEY :. You have given money to '%s', '$.%d' !", GetName(target), money);
    SCM(playerid, -1, str1);
    GivePlayerMoney(playerid, -money);
    sDialog(playerid, "Server message", str1);
    return 1;
}
Reply
#4

@Threshold your command have errors, i think my command is clear of errors
Reply
#5

No, it has no errors. (In terms of the OP's script)

Your command is just copied and pasted from your own script... that doesn't help anyone. Not to mention, your command isn't the best either...
Reply
#6

Quote:
Originally Posted by kirostar
Посмотреть сообщение
Try this :

Код:
CMD:givemoney(playerid, params[])
{
    new player, amount,name1[24], name2[24], string[128];
    if(!sscanf(params, "ui",player,amount))
    {
        if(playerid != player)
        {
            if(GetPlayerMoney(playerid) >= amount)
            {
                GetPlayerName(playerid, name1, 24);
                GetPlayerName(player, name2, 24);
                format(string, sizeof(string), "You gaved $%d to %s.",amount,name2);
                SendClientMessage(playerid, 0xFFFF00FF, string);
                format(string, sizeof(string), "%s gave you $%d!", name1, amount);
                SendClientMessage(player, 0xFFFF00FF, string);
                GivePlayerMoney(playerid, -amount);
                GivePlayerMoney(player, amount);
            }
            else return SendClientMessage(playerid, 0xFF0000FF,"You don't have that much.");
        }
        else return SendClientMessage(playerid, 0xFF0000FF,"You can't pay to yourself.");
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF,"{F07F1D}Usage : /givemoney [ID][Amount]");
    return 1;
}
When i type : /givemoney <ID> <2304923482034824823408203482034234802348234>
Still bugged !
Reply
#7

pawn Код:
CMD:givemoney(playerid, params[])
{
    new player, amount,name1[24], name2[24], string[128];
    if(!sscanf(params, "ui",player,amount))
    {
        if(playerid != player)
        {
            if(ammount < 99999999) return SendClientMessage(playerid, 0xFF0000FF,"Invalid values."); // becouse the max money in gta sa is that much i think
            if(GetPlayerMoney(playerid) >= amount)
            {
                GetPlayerName(playerid, name1, 24);
                GetPlayerName(player, name2, 24);
                format(string, sizeof(string), "You gaved $%d to %s.",amount,name2);
                SendClientMessage(playerid, 0xFFFF00FF, string);
                format(string, sizeof(string), "%s gave you $%d!", name1, amount);
                SendClientMessage(player, 0xFFFF00FF, string);
                GivePlayerMoney(playerid, -amount);
                GivePlayerMoney(player, amount);
            }
            else return SendClientMessage(playerid, 0xFF0000FF,"You don't have that much.");
        }
        else return SendClientMessage(playerid, 0xFF0000FF,"You can't pay to yourself.");
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF,"{F07F1D}Usage : /givemoney [ID] [Amount]");
    return 1;
}
hope it's work
Reply
#8

Make it limited only to 2000$ it's better.
Reply
#9

Now fixed !
Thank you all for your help me
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)