Buenas tardes, este es un plugin que habían pedido hace poco y bueno ya que estaba lo dejo como un "aporte" por si alguno quiere sacarse alguna duda, si encuentran algún bug o error, o quizás algo que mejorar lo actualizo, discúlpenme por la pésima optimizacion
Descripción:
- Es un plugin simple que al usar el comando "amx_event" le otorga a un administrador al azar vida, velocidad, - gravedad, y para los que no les toco ser el "suertudo" tendrán un respawn cada 5 segundos que mueran.
- La idea me la propuso @spininrecor1 el codeo lo hice yo, con algunas cosas que saque de por ahí (puse el autor que me acorde)
Modo de uso:
- amx_event (en consola, siendo administrador)
Creditos:
- Gonza-* Code del Respawn
Plugin:
Logs:
Tengan compasión conmigo
Descripción:
- Es un plugin simple que al usar el comando "amx_event" le otorga a un administrador al azar vida, velocidad, - gravedad, y para los que no les toco ser el "suertudo" tendrán un respawn cada 5 segundos que mueran.
- La idea me la propuso @spininrecor1 el codeo lo hice yo, con algunas cosas que saque de por ahí (puse el autor que me acorde)
Modo de uso:
- amx_event (en consola, siendo administrador)
Creditos:
- Gonza-* Code del Respawn
Plugin:
Código PHP:
#include <amxmodx>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#define PLUGIN "Mata al admin [Evento]"
#define VERSION "1.0.6"
#define AUTHOR "Exertency"
#define SPEED 320.0
enum (+= 101)
{
TASK_HUD = 2000,
TASK_RESPAWN
}
new g_maxplayers, hud, g_event_started, g_iLastChoosenPlayer, g_ScreenFade, g_iAdminCount
new cvar_respawn, cvar_tiempo, cvar_selfkill
new g_playername[ 33 ][ 32 ]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("amx_event","command_event",ADMIN_KICK)
register_logevent("round_end", 2, "1=Round_End")
RegisterHam(Ham_Killed, "player", "player_killed")
register_forward(FM_PlayerPostThink, "fw_PlayerPostThink")
cvar_respawn = register_cvar("respawn_enabled", "1")
cvar_tiempo = register_cvar("respawn_delay", "5.0")
cvar_selfkill = register_cvar("respawn_selfkill", "0")
g_ScreenFade = get_user_msgid("ScreenFade");
g_maxplayers = get_maxplayers()
hud = CreateHudSyncObj()
}
public round_end()
{
if(g_event_started)
{
commands_off()
g_iLastChoosenPlayer = 0
new i
for(i = 1; i <= g_maxplayers; i++ )
{
remove_task(i+TASK_HUD)
remove_task(i+TASK_RESPAWN)
}
}
}
public fw_PlayerPostThink(id)
{
if(!g_event_started && !is_user_connected(id)) return PLUGIN_HANDLED
if(g_iLastChoosenPlayer == id)
{
set_pev(id, pev_maxspeed, SPEED)
return PLUGIN_HANDLED
}
}
public client_putinserver(id)
{
if(get_user_flags(id) & ADMIN_KICK)
g_iAdminCount++
}
public client_disconnect(id)
{
if(get_user_flags(id) && ADMIN_KICK)
g_iAdminCount--
if( g_iLastChoosenPlayer == id )
{
g_iLastChoosenPlayer = 0
g_event_started = false
client_print(0, print_chat, "[AMXX] El admin se ha ido")
ChooseRandomPlayer()
}
remove_task(id+TASK_HUD)
remove_task(id+TASK_RESPAWN)
}
public respawn(id)
{
id -= TASK_RESPAWN
if (!is_user_connected(id)) return
ExecuteHamB(Ham_CS_RoundRespawn, id)
client_print(id, print_center, "Fuiste revivido!")
}
public HUD(id)
{
id -= TASK_HUD
if(!is_user_connected(id) && !is_user_alive(id) || !g_event_started) return
new health = get_user_health(g_iLastChoosenPlayer)
new szHealth[10]
acortar(health, szHealth, charsmax(szHealth))
//new Name[32]
if(id == g_iLastChoosenPlayer)
{
set_hudmessage(255, 255, 255, -1.0, 0.0, 0, 6.0, 2.0) // Hud de color Azul
ShowSyncHudMsg(id, hud, "---- Evento Admin ----^nNombre: [%s]^nVida: [%d]", g_playername[id], szHealth)
}
else
{
set_hudmessage(255, 255, 255, -1.0, 0.0, 0, 6.0, 2.0) // Hud de color Azul
ShowSyncHudMsg(id, hud, "---- Evento Admin ----^nVida del admin: [%d]", szHealth)
}
}
public command_event(id, level, cid)
{
if(g_event_started)
{
client_print(id, print_chat, "[AMXX] Un evento ya empezo, espera que termine la ronda.")
return PLUGIN_HANDLED
}
if(get_user_flags(id) & level)
ChooseRandomPlayer()
else
console_print(id, "[AMXX] No tenes acceso a este comando, lo siento.")
return PLUGIN_HANDLED
}
public user_var()
{
for (new ID = 1 ; ID <= g_maxplayers ; ID++ )
{
if( !is_user_connected( ID ) || g_iLastChoosenPlayer == ID ) continue;
set_task(1.0, "HUD", ID+TASK_HUD, _, _, "b")
cs_set_user_team(ID, CS_TEAM_CT)
}
}
public player_var(ID)
{
if(g_iLastChoosenPlayer != ID) return PLUGIN_HANDLED;
if(!is_user_alive(ID) && !is_user_connected(ID)) return PLUGIN_HANDLED;
commands_on()
set_task(1.0, "HUD", ID+TASK_HUD, _, _, "b")
cs_set_user_team(ID, CS_TEAM_T)
set_user_maxspeed(ID, SPEED) //Le podes poner velocidad asi se hace mas divertido
set_user_health(ID, 50000) // Le damos la vida 50k
set_user_gravity( ID, get_user_gravity(ID) - 0.50)
get_user_name(ID, g_playername[ID], charsmax(g_playername[]))
client_print(0, print_chat, "[AMXX] Comenzo el evento Mata al administrador, %s tiene 50.000 de HP", g_playername[ID])
return PLUGIN_HANDLED
}
public commands_on()
g_event_started = true
public commands_off()
g_event_started = false
public player_killed(victim, attacker, shouldgib)
{
if ( !(g_event_started) || !get_pcvar_num(cvar_respawn) ||
(victim == attacker && !get_pcvar_num(cvar_selfkill))) return HAM_IGNORED;
if(g_iLastChoosenPlayer == victim)
{
client_print(0, print_chat, "[AMXX] El admin murio, el evento termina.")
round_end()
set_hudmessage(50, 50, 255, -1.0, -1.0, 0, 6.0, 2.0)
ShowSyncHudMsg(0, hud, "---- Evento Admin ----^nEl admin [%s] murio.", g_playername[victim])
return HAM_IGNORED
}
set_task(get_pcvar_float(cvar_tiempo), "respawn", victim + TASK_RESPAWN)
return HAM_IGNORED
}
ChooseRandomPlayer()
{
new iPlayers[32], iNum
get_players(iPlayers, iNum, "ac")
if( iNum <= 1 || g_iAdminCount < 1 )
{
return iPlayers[0]
}
new iRandomNum = random(iNum)
new iRandomPlayer = iPlayers[ iRandomNum ]
if(!(get_user_flags(iRandomPlayer) && ADMIN_BAN) )
{
ChooseRandomPlayer()
return PLUGIN_HANDLED
}
if( iRandomPlayer == g_iLastChoosenPlayer )
{
iPlayers[ iRandomNum ] = iPlayers[ --iNum ]
iRandomPlayer = iPlayers[ random(iNum) ]
}
g_iLastChoosenPlayer = iRandomPlayer
player_var(iRandomPlayer)
cs_set_user_team(iRandomPlayer, CS_TEAM_T)
screenfade(0, 1.5, 1.5, 50, 200, 200, 100);
user_var()
return iRandomPlayer
}
stock acortar(num, szNum[], len)
{
if (num <= -1000000 || num >= 1000000)
formatex(szNum, len, "%.3fM", floatdiv(float(num), 1000000.0));
else if (num <= -1000 || num >= 1000)
formatex(szNum, len, "%.2fk", floatdiv(float(num), 1000.0));
else
num_to_str(num, szNum, len);
}
stock screenfade(id, Float:fDuration, Float:fHoldtime, red, green, blue, alpha)
{
message_begin(id ? MSG_ONE : MSG_ALL, g_ScreenFade, {0, 0, 0}, id);
write_short(floatround(4096.0 * fDuration, floatround_round));
write_short(floatround(4096.0 * fHoldtime, floatround_round));
write_short(4096);
write_byte(red);
write_byte(green);
write_byte(blue);
write_byte(alpha);
message_end();
return PLUGIN_HANDLED;
}
Logs:
Cita:
- v1.0.0 - [14/03/2016]
- Creacion del plugin.
v1.0.1 - [15/03/2016]
- Agregado respawn.
- Fix ChooseRandomPlayer.
v1.0.3 - [19/03/2016]
- Fix speed.
- Fix round_end.
v1.0.4 - [20/03/2016]
- Agregado hud.
- Publicacion del plugin.
v1.0.5 - [21/03/2016]
- Agregado speed con fw_PostThink. *OsweRR*
- Fixeado disconnect admin. *Skylar*
- Agregado contador de admin's.
v1.0.6 - [29/03/2016]
- Optimizado un poco mas.
- Agregado pequeño screen fade al seleccionarse adm.
Tengan compasión conmigo
Aportes:
Slenderman Mod | The Return of Fear
[TTT] Model Detective
Voces tipo CS:GO/TS3
Comando de Evento Admin
[ORPHEU] Firmas actualizadas