Raised This Month: $51 Target: $400
 12% 

[ZP] Donate Ammopacks


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Multipower
Junior Member
Join Date: May 2018
Location: İstanbul/Turkey
Old 06-03-2019 , 08:08   [ZP] Donate Ammopacks
Reply With Quote #1

Hi. I was looking for a donation plugin from ammo packs with the menu.
for example when we write /donate, a menu appears to donate aps.
Multipower is offline
AmXDusT
Member
Join Date: Feb 2019
Location: Italy / Albania
Old 06-04-2019 , 20:20   Re: [ZP] Donate Ammopacks
Reply With Quote #2

Hi, haven't tested it, but it should work. You can put different amounts on the "menuPos" array
PHP Code:
#include <amxmodx>
#include <zombieplague>

new const VERSION[] = "1.0.1"
new const menuPos[][] = {
    
"100",
    
"250",
    
"500",
    
"1000",
    
"5000",
    
"CUSTOM"
}
new 
gGiving33 ]
public 
plugin_init(){
    
register_plugin("[ZP] Donate Menu"VERSION"DusT")
    
register_clcmd("say /donate""donateMenu")
    
register_clcmd("_donate_ammo""cusDonation")
}

public 
donateMenu(id){
    static 
menuidmenu[32], buffer[2]
    new 
players[32], numname[32]
    
menuid menu_create("Donate Menu""menuHandler")
    
get_players(playersnum)
    
buffer[1] = 0
    
for(new 0numi++){
        if(
id == players[i]) continue
        
buffer[0] = players[i]
        
get_user_name(players[i], namecharsmax(name))
        
formatex(menucharsmax(menu), "%s"name)
        
menu_additem(menuidmenubuffer)
    }
    
menu_display(idmenuid0)
}
public 
menuHandler(idmenuiditem){
    if(!
is_user_connected(id) || item == MENU_EXIT){
        
gGiving[id] = 0
        menu_destroy
(menuid)
        return 
PLUGIN_HANDLED
    
}
    new 
buffer[2], dummy
    menu_item_getinfo
(menuiditemdummybuffercharsmax(buffer), __dummy)
    
gGiving[id] = buffer[0]
    
menu_destroy(menuid)
    
chooseAmmo(id)
    return 
PLUGIN_HANDLED 
}

public 
chooseAmmo(id){
    static 
menuidmenu[32]
    
menuid menu_create("How much AmmoPacks to donate""ammoHandler")
    for(new 
0sizeof(menuPos); i++){
        
formatex(menucharsmax(menu), "%s %s"menuPos[i], equali(menuPos[i], "custom")? """AmmoPack(s)")
        
menu_additem(menuidmenu)
    }
    
menu_display(idmenuid0)
}
public 
ammoHandler(idmenuiditem){
    if(!
is_user_connected(id) || item == MENU_EXIT){
        
gGiving[id] = 0
        menu_destroy
(menuid)
        return 
PLUGIN_HANDLED
    
}
    new 
pid 
    
if( equali(menuPos[item], "CUSTOM")){
        
menu_destroy(menuid)
        
customAmmo(id)
        return 
PLUGIN_HANDLED
    
}
    
pid gGiving[id]
    
gGiving[id] = 0
    menu_destroy
(menuid)
    
giveAmmo(idpidstr_to_num(menuPos[item]))
    return 
PLUGIN_HANDLED
}
public 
customAmmoid ){
    
client_cmd(id"messagemode _donate_ammo")
}
public 
cusDonation(id){
    if(!
gGiving[id])
        return 
PLUGIN_HANDLED
    
new ammo[32], pid
    pid 
gGiving[id]
    
gGiving[id] = 0
    read_args
(ammocharsmax(ammo))
    
remove_quotes(ammo)
    
giveAmmo(idpidstr_to_num(ammo))
    return 
PLUGIN_HANDLED
}
public 
giveAmmo(idplayeridammo){
    if(!
is_user_connected(id) || !is_user_connected(playerid))
        return 
PLUGIN_HANDLED
    
if(zp_get_user_ammo_packs(id) < ammo){
        
client_print(idprint_chat"[ZP] You don't have enough AmmoPacks")
        return 
PLUGIN_HANDLED
    
}
    if(!
ammo || ammo 0)
        return 
PLUGIN_HANDLED
    
    
new name[32]
    
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) - ammo)
    
zp_set_user_ammo_packs(playeridzp_get_user_ammo_packs(playerid) + ammo)
    
get_user_name(playeridnamecharsmax(name))
    
client_print(idprint_chat"[ZP] You donated %d AmmoPacks to '%s'"ammoname)
    
get_user_name(idnamecharsmax(name))
    
client_print(playeridprint_chat"[ZP] '%s' donated you %d AmmoPacks"nameammo)
    return 
PLUGIN_HANDLED

EDIT: while looking at it, it seemed pretty badly formatted and written. this is the same plugin basically, but only works for 1.8.3+
PHP Code:
#include <amxmodx>
#include <zombieplague>

new const VERSION[] = "1.1";

// put max or min to 0 to disable.
new const MIN_DONATION 50;
new const 
MAX_DONATION 0;
new const 
PREFIX[] = "^4[TeamNexium]^1";

new const 
menuPos[][] = 
{
    
"50",
    
"100",
    
"250",
    
"500",
    
"1000",
    
"5000"
}

new 
gGiving33 ];

public 
plugin_init()
{
    
register_plugin"Donate Menu"VERSION"DusT" );
    
register_clcmd"say /donate""CmdDonateMenu" );
    
register_clcmd"say donate""CmdDonateMenu" );
    
register_clcmd"_donate_ammo""CusDonation" );
}

public 
CmdDonateMenu(id){
    if( 
MIN_DONATION && zp_get_user_ammo_packsid ) < MIN_DONATION )
    {
        
client_print_coloridprint_team_red"%s You don't have enough AmmoPacks to donate."PREFIX );
        return 
PLUGIN_HANDLED;
    }

    new 
players32 ], num;
    new 
buffer];
    new 
menuid menu_create"Donate Menu""MenuHandler" );
    
get_playersplayersnum );

    
buffer] = 0;

    for( new 
inumi++ )
    {
        if( 
id == players] ) continue;
        
buffer] = players]; 

        
menu_additemmenuidfmt"%n"buffer] ), buffer );
    }
    
gGivingid ] = 0;  // just a safe way to be sure it's 0
    
menu_displayidmenuid );
    return 
PLUGIN_HANDLED;
}
public 
MenuHandleridmenuiditem )
{

    if( 
is_user_connectedid ) && item != MENU_EXIT )
    {
        new 
buf];
        
menu_item_getinfomenuiditem_bufcharsmaxbuf ) );
        
gGivingid ] = buf];
        
ChooseAmmoMenuid );
    }
    else
        
gGivingid ] = 0;

    
menu_destroymenuid );
    return 
PLUGIN_HANDLED;
}

ChooseAmmoMenuid )
{
    new 
menuid;
    
menuid menu_create"How much AmmoPacks to donate""AmmoHandler" );

    for( new 
isizeof menuPosi++ )
        
menu_additem(menuidfmt"%s AmmoPacks"menuPos] ) );

    
menu_additemmenuid"Custom" );

    
menu_displayidmenuid );
}
public 
AmmoHandleridmenuiditem )
{
    if( 
gGivingid ] && is_user_connectedid ) && is_user_connectedgGivingid ] ) && item != MENU_EXIT )
    {
        if( 
item == sizeof menuPos )
            
client_cmdid"messagemode _donate_ammo" );
        else
            
GiveAmmoidgGivingid ], str_to_nummenuPositem ] ) );
    }
    else
        
gGivingid ] = 0;
    
    
menu_destroymenuid );
    return 
PLUGIN_HANDLED;
}

public 
CusDonationid )
{
    if( !
gGivingid ] )
        return 
PLUGIN_HANDLED;

    new 
ammo32 ];

    
read_argsammocharsmaxammo ) );
    
remove_quotesammo );

    
GiveAmmoidgGivingid ], str_to_numammo ) );

    return 
PLUGIN_HANDLED;
}

GiveAmmoidplayeridammo )
{
    if( !
is_user_connectedid ) || !is_user_connectedplayerid ) )
        return;
    
    if( 
MIN_DONATION && MIN_DONATION ammo )
    {
        
client_print_coloridprint_team_red"%s You can't donate less than %s AmmoPacks."PREFIXMIN_DONATION );
        return;
    }

    if( 
MAX_DONATION && MAX_DONATION ammo )
    {
        
client_print_coloridprint_team_red"%s You can't donate more than %s AmmoPacks."PREFIXMAX_DONATION );
        return;
    }
    if( 
zp_get_user_ammo_packsid ) < ammo )
    {
        
client_print_coloridprint_team_red"%s You don't have enough AmmoPacks to donate."PREFIX );
        return;
    }


    if( 
ammo <= 0  )
    {
        
client_print_coloridprint_team_red"%s You can't donate that amount."PREFIX );
        return;
    }
    
    
zp_set_user_ammo_packsidzp_get_user_ammo_packsid ) - ammo );
    
zp_set_user_ammo_packsplayeridzp_get_user_ammo_packsplayerid ) + ammo );
    
    
client_print_coloridprint_team_red"%s You donated %d AmmoPacks to %n"ammoplayerid );
    
    
client_print_colorplayeridprint_team_red"%s %n donated you %d AmmoPacks"idammo );



Last edited by AmXDusT; 02-13-2020 at 19:06.
AmXDusT is offline
Multipower
Junior Member
Join Date: May 2018
Location: İstanbul/Turkey
Old 06-30-2019 , 09:07   Re: [ZP] Donate Ammopacks
Reply With Quote #3

Quote:
Originally Posted by AmXDusT View Post
Hi, haven't tested it, but it should work. You can put different amounts on the "menuPos" array
PHP Code:
#include <amxmodx>
#include <zombieplague>

new const VERSION[] = "1.0.1"
new const menuPos[][] = {
    
"100",
    
"250",
    
"500",
    
"1000",
    
"5000",
    
"CUSTOM"
}
new 
gGiving33 ]
public 
plugin_init(){
    
register_plugin("[ZP] Donate Menu"VERSION"DusT")
    
register_clcmd("say /donate""donateMenu")
    
register_clcmd("_donate_ammo""cusDonation")
}

public 
donateMenu(id){
    static 
menuidmenu[32], buffer[2]
    new 
players[32], numname[32]
    
menuid menu_create("Donate Menu""menuHandler")
    
get_players(playersnum)
    
buffer[1] = 0
    
for(new 0numi++){
        if(
id == players[i]) continue
        
buffer[0] = players[i]
        
get_user_name(players[i], namecharsmax(name))
        
formatex(menucharsmax(menu), "%s"name)
        
menu_additem(menuidmenubuffer)
    }
    
menu_display(idmenuid0)
}
public 
menuHandler(idmenuiditem){
    if(!
is_user_connected(id) || item == MENU_EXIT){
        
gGiving[id] = 0
        menu_destroy
(menuid)
        return 
PLUGIN_HANDLED
    
}
    new 
buffer[2], dummy
    menu_item_getinfo
(menuiditemdummybuffercharsmax(buffer), __dummy)
    
gGiving[id] = buffer[0]
    
menu_destroy(menuid)
    
chooseAmmo(id)
    return 
PLUGIN_HANDLED 
}

public 
chooseAmmo(id){
    static 
menuidmenu[32]
    
menuid menu_create("How much AmmoPacks to donate""ammoHandler")
    for(new 
0sizeof(menuPos); i++){
        
formatex(menucharsmax(menu), "%s %s"menuPos[i], equali(menuPos[i], "custom")? """AmmoPack(s)")
        
menu_additem(menuidmenu)
    }
    
menu_display(idmenuid0)
}
public 
ammoHandler(idmenuiditem){
    if(!
is_user_connected(id) || item == MENU_EXIT){
        
gGiving[id] = 0
        menu_destroy
(menuid)
        return 
PLUGIN_HANDLED
    
}
    new 
pid 
    
if( equali(menuPos[item], "CUSTOM")){
        
menu_destroy(menuid)
        
customAmmo(id)
        return 
PLUGIN_HANDLED
    
}
    
pid gGiving[id]
    
gGiving[id] = 0
    menu_destroy
(menuid)
    
giveAmmo(idpidstr_to_num(menuPos[item]))
    return 
PLUGIN_HANDLED
}
public 
customAmmoid ){
    
client_cmd(id"messagemode _donate_ammo")
}
public 
cusDonation(id){
    if(!
gGiving[id])
        return 
PLUGIN_HANDLED
    
new ammo[32], pid
    pid 
gGiving[id]
    
gGiving[id] = 0
    read_args
(ammocharsmax(ammo))
    
remove_quotes(ammo)
    
giveAmmo(idpidstr_to_num(ammo))
    return 
PLUGIN_HANDLED
}
public 
giveAmmo(idplayeridammo){
    if(!
is_user_connected(id) || !is_user_connected(playerid))
        return 
PLUGIN_HANDLED
    
if(zp_get_user_ammo_packs(id) < ammo){
        
client_print(idprint_chat"[ZP] You don't have enough AmmoPacks")
        return 
PLUGIN_HANDLED
    
}
    if(!
ammo)
        return 
PLUGIN_HANDLED
    
    
new name[32]
    
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) - ammo)
    
zp_set_user_ammo_packs(playeridzp_get_user_ammo_packs(playerid) + ammo)
    
get_user_name(playeridnamecharsmax(name))
    
client_print(idprint_chat"[ZP] You donated %d AmmoPacks to '%s'"ammoname)
    
get_user_name(idnamecharsmax(name))
    
client_print(playeridprint_chat"[ZP] '%s' donated you %d AmmoPacks"nameammo)
    return 
PLUGIN_HANDLED

thanks
Multipower is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 02:48.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode