Como se le hace para que los jugadores tengas que donar minimo de 10 ammos?
Gracias.
edit. Creo que tambien se cae el server con este plugin, pero no estoy seguro.
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <zombieplague>
#define PLUGIN "ammo donate"
#define VERSION "1.5"
#define AUTHOR "none"
new players_menu, players[32], num, i
new accessmenu, iName[64], callback
new g_msgSayText
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /donate", "transfer_menu", ADMIN_ALL, "") // Para abrir el menu
register_clcmd("transfer", "transfer_ammo", ADMIN_ALL, "")
g_msgSayText = get_user_msgid("SayText")
}
public transfer_menu(id)
{
get_players(players, num, "h")
if (num <= 1)
{
client_printcolor(id, "/g[ZP Donar] /yNo hay jugadores")
return PLUGIN_HANDLED
}
new tempname[32], info[10]
players_menu = menu_create("Jugadores", "players_menu_handler")
for(i = 0; i < num; i++)
{
if(players[i] == id)
continue
get_user_name(players[i], tempname, 31)
num_to_str(players[i], info, 9)
menu_additem(players_menu, tempname, info, 0)
}
menu_setprop(players_menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, players_menu, 0)
return PLUGIN_CONTINUE
}
public players_menu_handler(id, players_menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(players_menu)
return PLUGIN_HANDLED
}
new data[6]
menu_item_getinfo(players_menu, item, accessmenu, data, charsmax(data), iName, charsmax(iName), callback)
new player = str_to_num(data)
client_cmd(id, "messagemode ^"transfer %i^"", player)
return PLUGIN_CONTINUE
}
public transfer_ammo(id)
{
new param[6]
read_argv(2, param, charsmax(param))
for (new x; x < strlen(param); x++)
{
if(!isdigit(param[x]))
{
client_printcolor(id, "/g[ZP Donar] /yTiene que ser un numero")
return 0
}
}
new amount = str_to_num(param)
new ammo = zp_get_user_ammo_packs(id)
if (ammo < amount)
{
client_printcolor(id, "/g[ZP Donar] /yNo tienes ammos suficientes")
return 0
}
read_argv(1, param, charsmax(param))
new player = str_to_num(param)
new player_ammo = zp_get_user_ammo_packs(player)
zp_set_user_ammo_packs(id, ammo - amount)
zp_set_user_ammo_packs(player, player_ammo + amount)
new names[2][32]
get_user_name(id, names[0], 31)
get_user_name(player, names[1], 31)
set_hudmessage(255, 10, 10, -1.0, 0.3, 1, 6.0, 6.0)
show_hudmessage(id, "%s le dio %i ammos packs a %s", names[0], amount, names[1])
return 0
}
stock client_printcolor(id, const input[], any:...)
{
new iCount = 1, iPlayers[32]
static szMsg[191]
vformat(szMsg, charsmax(szMsg), input, 3)
replace_all(szMsg, 190, "/g", "^4") // green txt
replace_all(szMsg, 190, "/y", "^1") // orange txt
replace_all(szMsg, 190, "/ctr", "^3") // team txt
replace_all(szMsg, 190, "/w", "^0") // team txt
if(id) iPlayers[0] = id
else get_players(iPlayers, iCount, "ch")
for (new i = 0; i < iCount; i++)
{
if (is_user_connected(iPlayers[i]))
{
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, iPlayers[i])
write_byte(iPlayers[i])
write_string(szMsg)
message_end()
}
}
}