Ola Pessoal eu irei mostrar mais um plugin que se chama Maquina Cacanique que funciona tipo você tem uma ficha vai digita /cacanique e inicia o sorteio se cair 3 números iguais você ganha de 5 a 100 ammo pack e você ganha uma ficha não por tempo on mas sim por matar zms e infectar e matar os humanos.
SMA:
SMA:
- Código:
#include <amxmodx>
#include <amxmisc>
#include <zombieplague>
#include <hamsandwich>
#include <nvault>
new fichas[33];
new g_vault;
new szText[555 char]
new cvar_minap, cvar_maxap
new g_HudSync
public plugin_init()
{
// Registro do Plugin
register_plugin("[ZP] Addon: Maquina Cacanique", "1.0", "T.Armg | [P]erfec[T] [S]cr[@]s[H]");
// Ham Event
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", 1 )
// Registro do Comando
register_clcmd("say /cacanique", "caca_menu");
register_clcmd("say cacanique", "caca_menu");
register_clcmd("say .cacanique", "caca_menu");
// Cvars
cvar_minap = register_cvar("zp_cacanique_minap", "5") // Quantia Minima de Ammo Packs a Ganhar
cvar_maxap = register_cvar("zp_cacanique_maxap", "100") // Quantia Maxima de Ammo Packs a Ganhar
// Outros Bangs
g_vault = nvault_open("maquina_cacanique");
g_HudSync = CreateHudSyncObj()
}
public SaveData(id)
{
new szName[35];
get_user_name(id, szName, 34);
new vaultkey[64], vaultdata[256];
format(vaultkey,63,"%s-CacaTuto",szName);
format(vaultdata,255,"%i#",fichas[id]);
nvault_set(g_vault,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public LoadData(id)
{
new szName[35];
get_user_name(id, szName, 34);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-CacaTuto",szName);
format(vaultdata,255,"%i#",fichas[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);
replace_all(vaultdata, 255, "#", " ");
new tckt[32];
parse(vaultdata, tckt, 31);
fichas[id] = str_to_num(tckt);
return PLUGIN_CONTINUE
}
public client_connect(id)
{
LoadData(id)
}
public client_disconnect(id)
{
remove_task(id)
SaveData(id)
}
public fw_PlayerKilled_Post(victim, attacker, shouldgib)
{
adicionar_fichas(attacker)
}
public zp_user_infected_post(id, infector)
{
adicionar_fichas(infector)
}
public adicionar_fichas(id)
{
fichas[id]++
zp_colored_print(id, "!g[ZP]!t Voce ganhou !g1 !tFicha na Maquina Cacanique. Digite !g/cacanique!t E Tente A Sorte :)")
SaveData(id)
}
public caca_menu(id)
{
//set_hudmessage(18, 183, 238, 0.02, 0.2, 0, 6.0, 15.0)
// show_hudmessage(id, "Voce recebe 1 Ficha^nA Cada 2 Minutos de jogo!");
formatex(szText, charsmax(szText), "\r[\dMaquina Cacanique\r]^n\wVoce tem: \r[%i]\d Fichas^n\wPodendo Ganhar Ate no Maximo \r%d\w Ammo Packs", fichas[id], get_pcvar_num(cvar_maxap));
new menu = menu_create(szText, "caca_menuhandler")
menu_additem(menu, "Iniciar Sorteio da Maquina Cacanique", "1", 0);
menu_setprop(menu, MPROP_EXITNAME, "Sair");
menu_display(id, menu, 0);
}
public caca_menuhandler(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)
switch(str_to_num(data))
{
case 1:
{
if(is_user_alive(id))
{
if(fichas[id] < 1)
{
zp_colored_print(id, "!g[ZP]!t Voce Nao Tem Fichas Suficiente Para Realizar o Sorteio"); caca_menu(id)
set_hudmessage(255, 0, 0, 0.02, 0.16, 0, 6.0, 12.0)
ShowSyncHudMsg(id, g_HudSync, "Voce Nao Tem Fichas Suficiente Para o Sorteio")
return PLUGIN_HANDLED;
}
else
{
fichas[id] -= 1
fazer_sorteio(id)
caca_menu(id)
}
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public fazer_sorteio(id)
{
new sortear_num1, sortear_num2, sortear_num3, ap_gain
sortear_num1 = random_num(0,9)
sortear_num2 = random_num(0,9)
sortear_num3 = random_num(0,9)
ap_gain = random_num(get_pcvar_num(cvar_minap), get_pcvar_num(cvar_maxap))
if(sortear_num1 == sortear_num2)
{
if(sortear_num2 == sortear_num3)
{
if(sortear_num1 == sortear_num3)
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + ap_gain);
zp_colored_print(id, "!g[ZP]!t Voce Ganhou !y%d !gAmmo Packs Na Maquina Cacanique :)", ap_gain)
set_hudmessage(0, 255, 0, 0.05, 0.70, 0, 6.0, 12.0)
ShowSyncHudMsg(id, g_HudSync, "%d %d %d Ganhou :)", sortear_num1, sortear_num2, sortear_num3)
return;
}
}
}
else
{
set_hudmessage(255, 0, 0, 0.05, 0.70, 0, 6.0, 12.0)
ShowSyncHudMsg(id, g_HudSync, "%d %d %d Perdeu :(", sortear_num1, sortear_num2, sortear_num3)
zp_colored_print(id, "!g[ZP]!t Que Pena Nao foi Dessa Vez Que Voce Ganha. Mas Tranquilo Vai Haver Mais Sorteio Pra Frente")
return;
}
}
stock zp_colored_print(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Chat Verde
replace_all(msg, 190, "!y", "^1") // Chat Normal
replace_all(msg, 190, "!t", "^3") // Chat Do Time Tr=Vermelho Ct=Azul Spec=Branco
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}