View Single Post
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 09-08-2020 , 16:23   Re: Money System [Donate | Give | Take]
Reply With Quote #9

Quote:
Originally Posted by iceeedr View Post
Using amx 1.9> you can do something like:

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
 
#define PLUGIN "Money Donate"
#define VERSION "1.0"
#define AUTOR "iceeedR"

new const Prefix[] = "Allied Donators"
new DonateTarget[MAX_PLAYERS +1]

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTOR);
    
register_clcmd("say /donate""DonateCmd")
    
register_clcmd("plugin_donate""DonateHandler")
}
 
public 
client_disconnected(id)
{
    
DonateTarget[id] = -// just for secure
}

public 
client_putinserver(id)
{
    
DonateTarget[id] = -// just for secure
}

public 
DonateCmd(id)
{
    new 
iMenu menu_create(fmt("\y[\w%s\d - \rDonate Menu \y ]"Prefix), "donate_handler")

    new 
iPlayers[MAX_PLAYERS], iNum
    get_players_ex
(iPlayersiNumGetPlayers_MatchTeam, (cs_get_user_team(id) == CS_TEAM_T) ? "TERRORIST" "CT")
    for(new 
iszTempid[10], iPlayer;iNum;i++)
    {
        
iPlayer iPlayers[i]

        if(
iPlayer != id)
        {
            
num_to_str(iPlayerszTempidcharsmax(szTempid))

            
menu_additem(iMenufmt("%n"iPlayer), szTempid)
        }
    }
    
    
menu_display(idiMenu)
    return 
PLUGIN_HANDLED
}

public 
donate_handler(idiMenuiItem)
{
    if(
iItem == MENU_EXIT)
    {
        
menu_destroy(iMenu)
        return 
PLUGIN_HANDLED
    
}
    new 
iData[6], szItemName[MAX_PLAYERS 2], iAccessiCallback
    menu_item_getinfo
(iMenuiItemiAccessiDatacharsmax(iData), szItemNamecharsmax(szItemName), iCallback)
    
    
DonateTarget[id] = str_to_num(iData)
    
    if(!
DonateTarget[id])
    {
        
client_print_color(idprint_team_default"%s This player does not exist."Prefix)
        
menu_display(idiMenu)
        
DonateTarget[id] = -1
        
return PLUGIN_HANDLED
    
}
    
    
client_cmd(id"messagemode plugin_donate")
            
    
client_print_color(idprint_team_default"%s Type how much you want to give."Prefix)
    return 
PLUGIN_HANDLED
}

public 
DonateHandler(id)
{
    new 
iValue read_argv_int(1)
        
    new 
iPlayerMoney cs_get_user_money(id)
    
    if( 
iPlayerMoney iValue || iValue <= 0)
    {
        
client_print_color(idprint_team_default"%s You do not have enough money or invalid value."Prefix)
        return 
PLUGIN_CONTINUE
    
}
    
    
cs_set_user_moneyDonateTarget[id], cs_get_user_money(DonateTarget[id]) + iValue)
    
cs_set_user_moneyidcs_get_user_money(id) - iValue)
    
    new 
iPlayers[MAX_PLAYERS], iNum
    get_players_ex
(iPlayersiNumGetPlayers_MatchTeam, (cs_get_user_team(id) == CS_TEAM_T) ? "TERRORIST" "CT")
    for(new 
i;iNum;i++)
    {
        
client_print_color(iPlayers[i], print_team_default"%s^x04 %n^x01 donated^x04 $%i^x01 for^x04 %n."PrefixidiValueDonateTarget[id])
    }
    
client_cmd(DonateTarget[id], "spk ^"items/9mmclip1.wav^"")
    
    
DonateTarget[id] = -1
    
return PLUGIN_HANDLED

I can do the same but with amxmodx 1.8.x , i want my plugin working on any versions

Last edited by Supremache; 09-08-2020 at 16:43.
Supremache is offline