/*****************************************************
* [ZP]Extended Give Ammo 2.0                         *
* Copyright 2010 [ru]In1ernal Error		     *
* 						     *
******************************************************
*						     *
*                                                    *
******************************************************
*						     *
* Usage:                                             *
*						     *
* zp_ammo_e - open ammo packs menu		     *
* zp_ammo_e_self <amount> - give ammo to yourself    *
*						     *
* Enjoy!					     *
*****************************************************/



#include <amxmisc>
#include <amxmodx>
#include <zombieplague>

#define PLUGIN "[ZP] Addon: Donate Ammo"
#define VERSION "2.0"
#define AUTHOR "[Ballantine's]Furion"

new  cur_add_amount = 1;//g_msgSayText,

public plugin_init() {

	register_cvar("zp_ammo_donate", VERSION, FCVAR_SERVER|FCVAR_SPONLY);

	register_plugin(PLUGIN, VERSION, AUTHOR);
	

	register_clcmd("say /donate", "menu_init");	
	register_clcmd("say_team /donate", "menu_init");		

	register_dictionary("zp_addon_ammo_donate.txt");
	
	//g_msgSayText = get_user_msgid("SayText");
}

public give_ammo_e (id, ammo){
	
	new user_ammo = zp_get_user_ammo_packs(id) + ammo;
	
	zp_set_user_ammo_packs ( id, max ( 1, user_ammo) );
	
	return PLUGIN_HANDLED;
}



public menu_init(id){
	new MenuName[64]
	format(MenuName, 63, "\r%L", id, "AM")
	
	new menu = menu_create(MenuName, "menu_handler");
	
	new players[32], inum, tempid;

	get_players(players, inum);

	new nomer[10], name[32];
 
	switch(cur_add_amount){
	
		case 1:
		{
			menu_additem(menu, "\w1 ammo", "33", 0);
		}

		case 10:
		{
			menu_additem(menu, "\w10 ammo", "34", 0);
		}

		case 100:
		{
			menu_additem(menu, "\w100 ammo", "35", 0);
		}
	
	}

	//menu_additem(menu, "", "36", 0);
	
	for ( new i; i<inum; i++)
	{		
		tempid = players[i];
		get_user_name(tempid, name, 31);
		num_to_str(tempid, nomer, 9);
		
		if (id != tempid){
			menu_additem(menu, name, nomer,0);
		}
	}

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	
	menu_display(id, menu, 0);
}

public menu_handler(id, menu, item){
if ( item == MENU_EXIT )
{
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
	
new data[6], iName[64];
new access, callback;

menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback);

new tempid = str_to_num(data);

switch(tempid){
	case 33:
		{
			cur_add_amount = 10;
		//	client_print_color(id,print_team_default, "^4[ZP][Donate]^1 /y%L /t%i /y%L", id, "CHANGED", cur_add_amount, id, "AMMO");
			menu_destroy(menu);
			menu_init(id);

		}
	case 34:
		{
			cur_add_amount = 100;
		//	client_print_color(id,print_team_default, "^4[ZP][Donate]^1 /y%L /t%i /y%L", id, "CHANGED", cur_add_amount, id, "AMMO");
			menu_destroy(menu);
			menu_init(id);

		}
	case 35:
		{
			cur_add_amount = 1;
		//	client_print_color(id,print_team_default, "^4[ZP][Donate]^1 /y%L /t%i /y%L", id, "CHANGED", cur_add_amount, id, "AMMO");
			menu_destroy(menu);
			menu_init(id);
		}
	default:
		{
			if(is_user_connected(tempid)&& tempid !=id ){
			give_ammo_e(tempid, cur_add_amount);
			new user_ammo = zp_get_user_ammo_packs(id) - cur_add_amount;
			zp_set_user_ammo_packs ( id, max ( 1, user_ammo) );			
			new Nick[32];
			get_user_name(tempid, Nick, 31);
			
			client_print_color(id,print_team_default, "^4[ZP][Donate]^1 ^4%s^1 %L ^4%i^1 %L!", Nick, id, "WAS_G", cur_add_amount, id, "AMMO")
			menu_destroy(menu);
			menu_init(id);			
			
			} else {
			menu_destroy(menu);
			menu_init(id);
			}
		}
}


return PLUGIN_HANDLED;
}
