GIVECASH
#1

How do I make a givecash because I want to give it to OnPlayerClickPlayer ??
Thanks
Reply
#2

You have to specify how you want to give it. Just by double-clicking player, and giving him 100k, or maybe showing a dialog asking how much do you want to give?
Reply
#3

Normally how much I want to give
Reply
#4

Код:
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	if(!IsPlayerConnected(clickedplayerid)) return SendClientMessage(playerid, -1, "Player not online!");
	if(clickedplayerid == playerid) return SendClientMessage(playerid, -1, "Cannot give money to yourself!");
	Dialog_Show(playerid, GiveMoney, DIALOG_STYLE_INPUT, "Give money", "Please specify how much money you want to give (ID, amount)", "OK", "Cancel");
	SetPVarInt(playerid, "ClickedPlayer", clickedplayerid);
	return 1;
}

Dialog:GiveMoney(playerid, response, listitem, inputtext[])
{
	if(!response) return 1;
	new 
		clickedplayer = GetPVarInt(playerid, "ClickedPlayer"),
		amount;
	if(sscanf(inputtext, "i", amount)) return Dialog_Show(playerid, GiveMoney, DIALOG_STYLE_INPUT, "Give money", "Please specify how much money you want to give", "OK", "Cancel");
	if(amount > GetPlayerMoney(playerid)) return SendClientMessage(playerid, -1, "Not enough money!");
	GivePlayerMoney(playerid, -amount);
	GivePlayerMoney(clickedplayer, amount);
	return 1;
}
This should give you the rough idea. Not tested!
Reply
#5

I did it this way but it shows me error.....

PHP код:
PlayerInfo[playerid][BankMoney]+=strval(castka);
GivePlayerMoney(playerid,-strval(castka));
error 035argument type mismatch (argument 1)
error 035argument type mismatch (argument 1
DIALOG....
PHP код:
case DIALOG_PLAYER3:
        {
            if(
response == 1)
            {
                   switch(
listitem)
                {
                    case 
0:
                    {
                           if(
IsPlayerConnected(playerid))
                        {
                            if(
strlen(inputtext) > 24) return SendClientMessage(playeridCOLOR_SYSTEM"Chybne parametry!");
                            new 
hrac strval(inputtext),pos chrfind(' ',inputtext);
                             if(
playerid == hracSendClientMessage(playeridCOLOR_SYSTEM"Sam sobe si nemuzes posilat penize.");
                            else
                            {
                                new 
castka strval(inputtext[pos]),string[200];
                                if(
castka GetPlayerMoney(playerid) || castka 1SendClientMessage(playeridCOLOR_SYSTEM"Chybna castka.");
                                else
                                {
                                    
PlayerInfo[playerid][BankMoney]+=strval(castka);
                                    
GivePlayerMoney(playerid,-strval(castka));
                                    
format(stringsizeof(string), "Poslal jste hrбči %s castku %d$."PlayerName(hrac), castka);
                                    
SendClientMessage(playerid,COLOR_ORANGE,string);
                                    new 
strinG0[128];
                                    
format(strinG0sizeof(strinG0), "Hrбč %s ti poslal %d$.",PlayerName(playerid), castka);
                                    
SendClientMessage(hrac,COLOR_ORANGE,strinG0);
                                }
                            }
                        }
                     }
                }
            }
        } 
Reply
#6

"castka" is already an integer.
You can't use strval on it (since strval need a string as a parameter).
PHP код:
PlayerInfo[playerid][BankMoney]+=strval(castka); 
GivePlayerMoney(playerid,-strval(castka)); 
You should read error message carefully.
Reply
#7

Quote:
Originally Posted by Dayrion
Посмотреть сообщение
"castka" is already an integer.
You can't use strval on it (since strval need a string as a parameter).
PHP код:
PlayerInfo[playerid][BankMoney]+=strval(castka); 
GivePlayerMoney(playerid,-strval(castka)); 
You should read error message carefully.
So how do it make it work if I want to to make a player through ClickPlayer send the player money from the Bank
Reply
#8

Why aren't you using sscanf?
Reply
#9

Dude, are u using Roleplay Gamong this is our for roleplay gamemode

Код:
CMD:pay(playerid, params[])
{
	if(AdminDuty[playerid] == 1)
 	{
  		SendClientMessage(playerid,COLOR_WHITE, "You can't use this command while on-duty as admin.");
		return 1;
	}

	new
		iTargetID, iCashAmount;

	if(sscanf(params, "ui", iTargetID, iCashAmount)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /pay [playerid/partofname] [amount]");

	if(iTargetID == playerid)
	{
		SendClientMessage(playerid, COLOR_GRAD1, "You can't use this command on yourself!");
		return 1;
	}
	if(iCashAmount > 100 && PlayerInfo[playerid][pLevel] < 2)
	{
		SendClientMessage(playerid, COLOR_GRAD1, "You must be level 2 to pay over $100");
		return 1;
	}
	if(iCashAmount < 1 || iCashAmount > 10000)
	{
		SendClientMessage(playerid, COLOR_GRAD1, "Don't go below $1, or above $10,000 at once.");
		return 1;
	}
	if(IsPlayerConnected(iTargetID))
	{
		if(ProxDetectorS(5.0, playerid, iTargetID))
		{
			new
				szMessage[128], giveplayer[MAX_PLAYER_NAME], sendername[MAX_PLAYER_NAME], playermoney = GetPlayerCash(playerid);

			giveplayer = GetPlayerNameEx(iTargetID);
			sendername = GetPlayerNameEx(playerid);
			if(iCashAmount > 0 && playermoney >= iCashAmount)
			{
				GivePlayerCash(playerid, (0 - iCashAmount));
				GivePlayerCash(iTargetID, iCashAmount);
				format(szMessage, sizeof(szMessage), "   You have sent %s(player: %d), $%d.", GetPlayerNameEx(iTargetID),iTargetID, iCashAmount);
				PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
				SendClientMessage(playerid, COLOR_GRAD1, szMessage);
				format(szMessage, sizeof(szMessage), "   You have recieved $%d from %s(player: %d).", iCashAmount, GetPlayerNameEx(playerid), playerid);
				SendClientMessage(iTargetID, COLOR_GRAD1, szMessage);

				new ip[32], ipex[32];
				GetPlayerIp(playerid, ip, sizeof(ip));
				GetPlayerIp(iTargetID, ipex, sizeof(ipex));
				format(szMessage, sizeof(szMessage), "%s (IP:%s) has paid $%d to %s (IP:%s)", GetPlayerNameEx(playerid), ip, iCashAmount, GetPlayerNameEx(iTargetID), ipex);
				Log("logs/pay.log", szMessage);

				PayWarn[playerid][iTargetID] += iCashAmount;
				if(PayWarn[playerid][iTargetID] >= 10000 && PlayerInfo[playerid][pLevel] <= 3)
				{
					format(szMessage, sizeof(szMessage), "%s (IP:%s) has paid %s (IP:%s) $%d in this session.", GetPlayerNameEx(playerid), ip, GetPlayerNameEx(iTargetID), ipex, PayWarn[playerid][iTargetID]);
					ABroadCast(COLOR_YELLOW, szMessage, 1);
				}

				if(iCashAmount >= 100000)
				{
					ABroadCast(COLOR_YELLOW,szMessage,1);
				}

				PlayerPlaySound(iTargetID, 1052, 0.0, 0.0, 0.0);
				format(szMessage, sizeof(szMessage), "* %s takes out some cash, and hands it to %s.", GetPlayerNameEx(playerid) ,GetPlayerNameEx(iTargetID));
				ProxDetector(30.0, playerid, szMessage, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "   Invalid transaction amount.");
			}
		}
		else
		{
			SendClientMessage(playerid, COLOR_GREY, "That player isn't near you.");
		}
	}
	else SendClientMessage(playerid, COLOR_GRAD1, "Invalid player specified.");
	return 1;
}
Reply
#10

I want to send the money to the player through the TAB.......
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)