So pra deixar as atualizações em dia...
Todas as versões de zp (Seja advance/4.3/5.0/etc):
Para ZP Special 3.5 ou superior (Que tem suporte map escape):
Todas as versões de zp (Seja advance/4.3/5.0/etc):
- Spoiler:
- Código:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <zombieplague>
new g_max_ajudantes, g_ajudante_count
public plugin_init() {
register_plugin("[ZP] Ajudante do Primeiro Zumbi", "1.0", "[P]erfect [S]crash")
}
public zp_round_started(gm)
{
if(gm == MODE_INFECTION)
{
static id
switch(zp_get_alive_players()) {
case 0..4: g_max_ajudantes = 0 // De 0 a 4 Players
case 5..7: g_max_ajudantes = 1 // De 5 a 7 Players
case 8..10: g_max_ajudantes = 2 // De 8 a 10 Players
case 11..13: g_max_ajudantes = 3 // De 11 a 13 Players
case 14..17: g_max_ajudantes = 4 // De 14 a 17 Players
case 18..22: g_max_ajudantes = 5 // De 18 a 22 Players
case 23..25: g_max_ajudantes = 6 // De 23 a 25 Players
case 26..28: g_max_ajudantes = 7 // De 26 a 28 Players
case 29..32: g_max_ajudantes = 8 // De 29 a 32 Players
}
if(g_max_ajudantes > 0) {
g_ajudante_count = 0
for(new i = 0; i <= g_max_ajudantes; i++)
{
id = zp_get_random_human()
// Pra Ter a quantia exata
if(g_ajudante_count >= g_max_ajudantes)
break;
if(zp_get_user_zombie(id) || !is_user_alive(id)) {
i--
continue;
}
zp_infect_user(id)
g_ajudante_count++
client_printcolor(id, "!g[ZP]!y Voce Foi Selecionado Para Ser um dos Ajudantes")
}
client_printcolor(0, "!g[ZP]!y Foram Escolhidos !t%d!y Jogadores Para Serem Ajudantes do Primeiro Zumbi", g_ajudante_count)
}
else
client_printcolor(0, "!g[ZP]!y Nao Havera Ajudantes nesse round")
}
}
stock zp_get_random_human()
{
static players[32],num,id
get_players(players, num,"ae", "CT")
id = players[random(num)]
return id
}
stock client_printcolor(const id,const input[], any:...)
{
new msg[191], players[32], count = 1; vformat(msg,190,input,3);
replace_all(msg,190,"!g","^4"); // green
replace_all(msg,190,"!y","^1"); // normal
replace_all(msg,190,"!t","^3"); // team
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();
}
}
}
stock zp_get_alive_players()
{
static i_alive, id
i_alive = 0
for (id = 1; id <= get_maxplayers(); id++)
{
if(is_user_alive(id))
i_alive++
}
return i_alive;
}
Para ZP Special 3.5 ou superior (Que tem suporte map escape):
- Spoiler:
- Código:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <zombie_plague_special>
#if ZPS_INC_VERSION < 35
#assert Zombie Plague Special 3.5 Include File Required. Download Link: https://forums.alliedmods.net/showthread.php?t=260845
#endif
new g_max_ajudantes, g_ajudante_count
public plugin_init() {
register_plugin("[ZP] Ajudante do Primeiro Zumbi", "1.0", "[P]erfect [S]crash")
}
public zp_round_started(gm)
{
if(gm == MODE_INFECTION)
{
static id
switch(zp_get_alive_players()) {
case 0..4: g_max_ajudantes = 0 // De 0 a 4 Players
case 5..7: g_max_ajudantes = 1 // De 5 a 7 Players
case 8..10: g_max_ajudantes = 2 // De 8 a 10 Players
case 11..13: g_max_ajudantes = 3 // De 11 a 13 Players
case 14..17: g_max_ajudantes = 4 // De 14 a 17 Players
case 18..22: g_max_ajudantes = 5 // De 18 a 22 Players
case 23..25: g_max_ajudantes = 6 // De 23 a 25 Players
case 26..28: g_max_ajudantes = 7 // De 26 a 28 Players
case 29..32: g_max_ajudantes = 8 // De 29 a 32 Players
}
if(g_max_ajudantes > 0) {
g_ajudante_count = 0
for(new i = 0; i <= g_max_ajudantes; i++)
{
id = zp_get_random_human()
// Pra Ter a quantia exata
if(g_ajudante_count >= g_max_ajudantes)
break;
if(zp_get_user_zombie(id) || !is_user_alive(id)) {
i--
continue;
}
zp_infect_user(id)
g_ajudante_count++
if(zp_is_escape_map())
zp_do_random_spawn(id)
client_printcolor(id, "!g[ZP]!y Voce Foi Selecionado Para Ser um dos Ajudantes")
}
client_printcolor(0, "!g[ZP]!y Foram Escolhidos !t%d!y Jogadores Para Serem Ajudantes do Primeiro Zumbi", g_ajudante_count)
}
else
client_printcolor(0, "!g[ZP]!y Nao Havera Ajudantes nesse round")
}
}
stock zp_get_random_human()
{
static players[32],num,id
get_players(players, num,"ae", "CT")
id = players[random(num)]
return id
}
stock client_printcolor(const id,const input[], any:...)
{
new msg[191], players[32], count = 1; vformat(msg,190,input,3);
replace_all(msg,190,"!g","^4"); // green
replace_all(msg,190,"!y","^1"); // normal
replace_all(msg,190,"!t","^3"); // team
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();
}
}
}