[Zombie mod] Liderul oamenilor
Scris: Vin Noi 29, 2024 10:32 pm
Descriere: Jucatorul care are cele mai multe fraguri si cele mai putine decese, va fi ales liderul echipei. Acesta primeste trail, glow, aura (fiecare se seteaza din cvar) si va fi anuntat printr-un mesaj in chat. Acest plugin este conceput doar pentru modul biohazard.
Descarcare: Aici
SMA (pentru biohazard) |
Nume plugin: [Zombie mod] Leader
Versiune: 1.0
Instalare:
1. Fisierul bio_leader.sma il puneti in addons/amxmodx/scripting
2. Fisierul bio_leader.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
Code:
bio_leader.amxx
4. Alti pasi necesari:
Cvar-uri (se adauga in fisierul addons/amxmodx/configs/amxx.cfg):
bio_leader_trail "1/0" - 1: esti urmat de o dara in spatele tau | 0: oprit
bio_leader_glow "1/0" - 1: stralucesti | 0: oprit
bio_leader_aura "1/0" - 1: in functie de pozitia ta, in jurul tau totul straluceste | 0: oprit
Comenzi administrative (se tasteaza in consola si trebuie sa fiti admin): NU necesita.
Comenzi publice (se tasteaza in joc prin apasarea tastei Y sau U): NU necesita.
Module necesare (se sterge ; din fata modului de mai jos):
fun
fakemeta
Imagini
Alte informatii:
- Culorile pentru trail/glow/aura sunt alese random (aleatoriu) pentru mai multa distractie.
- Acest plugin este unul pentru FUN.
Descarcare: Aici
SMA (pentru biohazard) |
Cod: Selectaţi tot
/*
* CREDITS:
* - tuty *for Trail Player
*/
#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <biohazard>
#define TASK_AURA 1292
enum attributes
{
GLOW = 0,
TRAIL,
AURA
};
new cvar[attributes];
new trail_randomcolor[3], trail[33], Float:bflNextCheck[33];
new leader = -1, last_leader = -1, g_rounds = 0, trail_sprite;
new const g_trail_sprite[] = "sprites/zbeam2.spr";
const IN_MOVING = IN_FORWARD | IN_BACK | IN_MOVELEFT | IN_MOVERIGHT | IN_JUMP;
public plugin_init()
{
register_plugin("[Biohazard] Leader", "1.0", "YONTU");
register_logevent("le_RoundStart", 2, "1=Round_Start");
register_logevent("le_RoundRestart", 2, "1&Restart_Round_");
register_logevent("le_RoundRestart", 2, "1=Game_Commencing");
register_event("DeathMsg", "event_DeathMsg", "a");
register_forward(FM_CmdStart, "fw_CmdStart");
cvar[GLOW] = register_cvar("bio_leader_glow", "1");
cvar[TRAIL] = register_cvar("bio_leader_trail", "1");
cvar[AURA] = register_cvar("bio_leader_aura", "1");
}
public plugin_precache()
{
trail_sprite = precache_model(g_trail_sprite);
}
public le_RoundRestart()
{
g_rounds = 0;
}
public client_disconnect(id)
{
return_to_default(leader);
set_task(0.1, "check_leader");
}
public le_RoundStart()
{
if(g_rounds == 1)
{
g_rounds = -1;
}
else if(g_rounds != -1)
{
g_rounds = 1;
}
return_to_default(leader);
return_to_default(last_leader);
last_leader = -1;
}
public event_infect(victim, attacker)
{
set_task(0.5, "check_leader");
}
public event_DeathMsg()
{
set_task(0.5, "check_leader");
}
public event_gamestart()
{
set_task(0.5, "check_leader");
}
public check_leader()
{
if(!game_started() || g_rounds == 0 || g_rounds == 1)
{
return;
}
leader = get_leader();
if(last_leader != leader && last_leader != -1)
{
return_to_default(leader);
return_to_default(last_leader);
last_leader = -1;
}
if(leader != last_leader)
{
trail_randomcolor[0] = random_num(0, 255);
trail_randomcolor[1] = random_num(0, 255);
trail_randomcolor[2] = random_num(0, 255);
if(get_pcvar_num(cvar[GLOW]))
{
set_user_rendering(leader, kRenderFxGlowShell, trail_randomcolor[0], trail_randomcolor[1], trail_randomcolor[2], kRenderNormal, 15);
}
if(get_pcvar_num(cvar[TRAIL]))
{
trail[leader] = 1;
}
if(get_pcvar_num(cvar[AURA]))
{
set_task(0.1, "leader_aura", leader + TASK_AURA, _, _, "b");
}
new name[32];
get_user_name(leader, name, charsmax(name));
ColorChat(0, "!4[Biohazard]!1 Noul lider al acestei runde este!3 %s!1.", name);
last_leader = leader;
}
}
public fw_CmdStart(id, handle)
{
if(!get_pcvar_num(cvar[TRAIL]))
{
return FMRES_HANDLED;
}
if(leader != last_leader)
{
id = leader;
}
if(!is_user_alive(id) || trail[id] == 0)
{
return FMRES_IGNORED;
}
new iButton = get_uc(handle, UC_Buttons);
if(!(iButton & IN_MOVING))
{
new Float:flGameTime = get_gametime();
if(bflNextCheck[id] < flGameTime)
{
UTIL_KillBeamFollow(id);
UTIL_BeamFollow(id);
bflNextCheck[id] = flGameTime + (15 / 8);
}
}
return FMRES_IGNORED;
}
public get_leader_handler(id1, id2)
{
if(get_user_frags(id1) > get_user_frags(id2) || get_user_frags(id1) == get_user_frags(id2) && get_user_deaths(id1) < get_user_deaths(id2))
return -1;
return 1;
}
public get_leader()
{
new players[32], num;
get_players(players, num, "aeh", "CT");
SortCustom1D(players, num, "get_leader_handler");
return players[0];
}
public leader_aura(taskid)
{
new id = taskid - TASK_AURA;
new origin[3];
get_user_origin(id, origin);
message_begin(MSG_PVS, SVC_TEMPENTITY, origin);
write_byte(TE_DLIGHT);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]);
write_byte(20);
write_byte(trail_randomcolor[0]);
write_byte(trail_randomcolor[1]);
write_byte(trail_randomcolor[2]);
write_byte(2);
write_byte(0);
message_end();
}
stock UTIL_BeamFollow(const id)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW);
write_short(id);
write_short(trail_sprite);
write_byte(15);
write_byte(20);
write_byte(trail_randomcolor[0]);
write_byte(trail_randomcolor[1]);
write_byte(trail_randomcolor[2]);
write_byte(255);
message_end();
}
stock UTIL_KillBeamFollow(const id)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_KILLBEAM);
write_short(id);
message_end();
}
stock return_to_default(id)
{
if(!(1 <= id <= 32) || !is_user_connected(id))
return;
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0);
trail[id] = 0;
bflNextCheck[id] = -1.0;
UTIL_KillBeamFollow(id);
remove_task(id + TASK_AURA);
}
stock ColorChat(id, String[], any:...)
{
static szMesage[192];
vformat(szMesage, charsmax(szMesage), String, 3);
replace_all(szMesage, charsmax(szMesage), "!1", "^1");
replace_all(szMesage, charsmax(szMesage), "!3", "^3");
replace_all(szMesage, charsmax(szMesage), "!4", "^4");
static g_msg_SayText = 0;
if(!g_msg_SayText)
g_msg_SayText = get_user_msgid("SayText");
new Players[32], iNum = 1, i;
if(id) Players[0] = id;
else get_players(Players, iNum, "ch");
for(--iNum; iNum >= 0; iNum--)
{
i = Players[iNum];
message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
write_byte(i);
write_string(szMesage);
message_end();
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1048\\ f0\\ fs16 \n\\ par }
*/
Nume plugin: [Zombie mod] Leader
Versiune: 1.0
Instalare:
1. Fisierul bio_leader.sma il puneti in addons/amxmodx/scripting
2. Fisierul bio_leader.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
Code:
bio_leader.amxx
4. Alti pasi necesari:
Cvar-uri (se adauga in fisierul addons/amxmodx/configs/amxx.cfg):
bio_leader_trail "1/0" - 1: esti urmat de o dara in spatele tau | 0: oprit
bio_leader_glow "1/0" - 1: stralucesti | 0: oprit
bio_leader_aura "1/0" - 1: in functie de pozitia ta, in jurul tau totul straluceste | 0: oprit
Comenzi administrative (se tasteaza in consola si trebuie sa fiti admin): NU necesita.
Comenzi publice (se tasteaza in joc prin apasarea tastei Y sau U): NU necesita.
Module necesare (se sterge ; din fata modului de mai jos):
fun
fakemeta
Imagini
Alte informatii:
- Culorile pentru trail/glow/aura sunt alese random (aleatoriu) pentru mai multa distractie.
- Acest plugin este unul pentru FUN.