/pay command
#1

The /pay command dont work good...whats wrong?


pawn Код:
CMD:pay(playerid, params[])
{
    new giveplayerid, moneys, string[128];
    if(sscanf(params, "ud"),giveplayerid, moneys) return SyntaxMessage(playerid, "/pay [name of player/id] [amount]");
    if(moneys > 1000 && PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid, GREY, "    You must be level 3 to pay more than $1,000 at a time.");
    if(moneys < 1 || moneys > 150000 && PlayerInfo[playerid][pAdmin] < 1337) return SendClientMessage(playerid, GREY, "    You cannot pay under $1 or more than $150,000 at a time.");
    if(IsPlayerConnected(giveplayerid))
    {
        if(giveplayerid == playerid) return SendClientMessage(playerid, GREY, "    You cannot pay money to yourself.");
        if(giveplayerid != INVALID_PLAYER_ID)
        {
            if(ProxDetectorS(5.0, playerid, giveplayerid))
            {
                new playermoney = PlayerInfo[playerid][pCash];
                if(moneys > 0 && playermoney >= moneys)
                {
                    PlayerInfo[playerid][pCash] = PlayerInfo[playerid][pCash]-moneys;
                    GivePlayerMoney(playerid, (0 - moneys));
                    PlayerInfo[giveplayerid][pCash] = PlayerInfo[giveplayerid][pCash]+moneys;
                    GivePlayerMoney(giveplayerid, moneys);
                    format(string, sizeof(string), "   You have sent %s(player: %d), $%d.", pName(giveplayerid), giveplayerid, moneys);
                    SendClientMessage(playerid, GREY1, string);
                    format(string, sizeof(string), "   You have recieved $%d from %s(player: %d).", moneys, pName(playerid), playerid);
                    SendClientMessage(giveplayerid, GREY1, string);
                    if(PlayerInfo[playerid][pMask] == 1) format(string, sizeof(string), "* Stranger takes out some Cash, and hands it to %s.",pName(giveplayerid));
                    else format(string, sizeof(string), "* %s takes out some Cash, and hands it to %s.", pName(playerid),pName(giveplayerid));
                    ProxDetector(30.0, playerid, string, PURPLE,PURPLE,PURPLE,PURPLE,PURPLE);
                    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
                    PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0);
                    new plrIP[16];
                    new giveplrIP[16];
                    GetPlayerIp(playerid, plrIP, sizeof(plrIP));
                    GetPlayerIp(giveplayerid, giveplrIP, sizeof(giveplrIP));
                    format(string, sizeof(string), "%s (IP:%s) (Key:%d) (ConTime:%d) has paid $%d to %s (IP:%s) (Key:%d)", pName(playerid),plrIP,PlayerInfo[playerid][pKey], PlayerInfo[playerid][pConnectTime],moneys,pName(giveplayerid),giveplrIP,PlayerInfo[giveplayerid][pKey]);
                    PayLog(string);
                }
                else return SendClientMessage(playerid, GREY1, "Invalid transaction amount.");

            }
            else return SendClientMessage(playerid, GREY, "    You are too far away.");
        }
    }
    else { SendClientMessage(playerid, WHITE, " Not an active player!"); }
    return 1;
}
Reply
#2

Buddy, put your code like this [*pawn]my code[/pawn] remove star. (Red colour)
Reply
#3

Quote:
Originally Posted by [vTc]Patroool
Посмотреть сообщение
Buddy, put your code like this [*pawn]my code[/pawn] remove star. (Red colour)
I forgot, sorry..can anyone help me?
Reply
#4

what error did it give u?
Does it send u any message when u try to use /pay ?
Reply
#5

Yep that message

pawn Код:
SendClientMessage(playerid, GREY, "    You must be level 3 to pay more than $1,000 at a time.");
Reply
#6

Your level is lower than 3 so you can't use it. That's what the command was meant to do - returning an error for the players that are not greater or equal to level 3.
Reply
#7

pawn Код:
if(moneys > 1000 && PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid, GREY, "    You must be level 3 to pay more than $1,000 at a time.");
This line checks if the player has greater level than 3 or not and also check the amount of money that the player is typing.
Modify it according to ur needs.
Reply
#8

pawn Код:
CMD:pay(playerid, params[])
{
    new iTargetID, iMoney, szString[128], pIP[16], ptIP[16];
   
    if(!IsPlayerConnected(iTargetID)) return SendClientMessage(playerid, GREY, "ERR: That player isn't connected!");
    if(sscanf(params, "ud", iTargetID, iMoney)) return SendClientMessage(playerid, GREY, "USAGE: /pay [ID] [$]");
   
    if(iMoney > 1000 && PlayerInfo[playerid][pLevel] < 3)
    if(iMoney < 1) return SendClientMessage(playerid, GREY, "ERR: The amount cannot be lower than $1!");
    if(iMoney > 150000 && PlayerInfo[playerid][pAdmin] < 1337) return SendClientMessage(playerid, GREY, "ERR: You cannot pay more than $150,000 at a time!");
   
    if(iTargetID == playerid) return SendClientMessage(playerid, GREY, "ERR: You cannot pay yourself!");
    if(iTargetID != INVALID_PLAYER_ID) {
        new pOnHandCash = PlayerInfo[playerid][pCash];
        if(iMoney > 0 && pOnHandCash >= iMoney) {
       
            PlayerInfo[playerid][pCash] = PlayerInfo[playerid][pCash]-iMoney;
            GivePlayerMoney(playerid, (0 - iMoney));
            PlayerInfo[iTargetID][pCash] = PlayerInfo[iTargetID][pCash]+iMoney;
            GivePlayerMoney(iTargetID, iMoney);
           
            format(szString, sizeof(szString), "You have paid %s (%d) $%d", pName(iTargetID), iTargetID, iMoney);
            SendClientMessage(playerid, GREY, szString);
            format(szString, sizeof(szString), "You have been paid $%d by %s (%d)", iMoney, pName(playerid), playerid);
            SendClientMessage(playerid, GREY, szString);
           
            if(PlayerInfo[playerid][pMask] == 1) format(szString, sizeof(szString), "* A stranger takes out some money, paying it to %s.", pName(iTargetID));
            else format(szString, sizeof(szString), "* %s takes out some money, paying it to %s.", pName(playerid), pName(iTargetID));
            ProxDetector(30.0, playerid, string, PURPLE,PURPLE,PURPLE,PURPLE,PURPLE);
           
            PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
            PlayerPlaySound(iTargetID, 1052, 0.0, 0.0, 0.0);
           
            GetPlayerIp(playerid, pIP, sizeof(pIP));
            GetPlayerIp(iTargetID, ptIP, sizeof(ptIP));
            format(szString, sizeof(szString), "%s (IP: %s) (Key: %d) has paid $%d to %s (IP: %s) (Key: %s)", pName(playerid), pIP, PlayerInfo[playerid][pKey], iMoney, pName(iTargetID), ptIP, PlayerInfo[playerid][pKey]);
            PayLog(szString);
        }
        else return SendClientMessage(playerid, GREY, "ERR: Invalid Transaction value!");
    }
    return 1;
}
Try using the code I provided however, this was structured incorrectly:
pawn Код:
if(sscanf(params, "ud"),giveplayerid, moneys) return SyntaxMessage(playerid, "/pay [name of player/id] [amount]");
Reply
#9

EDIT:Its okay, its working
Thanks anyway!!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)