Descarcare:
Cod: Selectaţi tot
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#include <zombieplague>
#define PLUGIN "[Bio] Addon: Custom NVG"
#define AUTHOR "Dias"
#define VERSION "0.1"
#define TASK_NVISION 1310
#define ID_NVISION (taskid - TASK_NVISION)
//const HAS_NVGOGGLES = (1<<0)
new g_nvision[33] // has night vision
new g_nvisionenabled[33] // has night vision turned on
new g_msgNVGToggle
new cvar_nvggive,cvar_cnvg,cvar_nvgsize
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("nightvision", "clcmd_nightvision")
cvar_nvggive = register_cvar("nvg_give", "2")
cvar_cnvg = register_cvar("nvg_custom", "1")
cvar_nvgsize = register_cvar("bio_nvg_size", "250")
register_event("HLTV", "event_roundnew", "a", "1=0", "2=0")
g_msgNVGToggle = get_user_msgid("NVGToggle")
}
public client_disconnected(id)
{
remove_task(id+TASK_NVISION)
}
public event_roundnew()
{
for(new id; id <= get_maxplayers() ; ++id)
if(g_nvision[id] || g_nvisionenabled[id] )
{
g_nvision[id] = false
g_nvisionenabled[id] = false
}
}
public bacon_player_killed(victim,attacker,shouldgib)
{
// Get nightvision give setting
static nvggive
nvggive = get_pcvar_num(cvar_nvggive)
// Disable nightvision when killed (bugfix)
if (nvggive == 0 && g_nvision[victim])
{
if (g_nvisionenabled[victim] && !get_pcvar_num(cvar_cnvg)) set_user_gnvision(victim, 0)
g_nvision[victim] = false
g_nvisionenabled[victim] = false
}
// Turn off nightvision when killed (bugfix)
if (nvggive == 2 && g_nvision[victim] && g_nvisionenabled[victim])
{
if (!get_pcvar_num(cvar_cnvg)) set_user_gnvision(victim, 0)
g_nvisionenabled[victim] = false
}
}
// Nightvision toggle
public clcmd_nightvision(id)
{
if (g_nvision[id])
{
// Enable-disable
g_nvisionenabled[id] = !(g_nvisionenabled[id])
// Custom nvg?
if (get_pcvar_num(cvar_cnvg))
{
remove_task(id+TASK_NVISION);
set_task(0.1, "set_user_nvision", id+TASK_NVISION, _, _, "b")
}
else
set_user_gnvision(id, g_nvisionenabled[id])
}
return PLUGIN_HANDLED;
}
public zp_user_infected_post(victim,attacker)
{
// Get nightvision give setting
static nvggive
nvggive = get_pcvar_num(cvar_nvggive)
// Give Zombies Night Vision?
if (nvggive)
{
g_nvision[victim] = true
// Turn on Night Vision automatically?
if (nvggive == 1)
{
g_nvisionenabled[victim] = true
// Custom nvg?
if (get_pcvar_num(cvar_cnvg))
{
remove_task(victim+TASK_NVISION)
set_task(0.1, "set_user_nvision", victim+TASK_NVISION, _, _, "b")
}
else
set_user_gnvision(victim, 1)
}
}
}
// Custom Night Vision
public set_user_nvision(taskid)
{
// Not meant to have nvision or not enabled
if (!g_nvision[ID_NVISION] || !g_nvisionenabled[ID_NVISION] || !is_user_alive(ID_NVISION))
{
// Task not needed anymore
remove_task(taskid);
return;
}
// Get player origin and alive status
static Float:originF[3]
pev(ID_NVISION, pev_origin, originF)
// Nightvision message
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, ID_NVISION)
write_byte(TE_DLIGHT) // TE id
engfunc(EngFunc_WriteCoord, originF[0]) // x
engfunc(EngFunc_WriteCoord, originF[1]) // y
engfunc(EngFunc_WriteCoord, originF[2]) // z
write_byte(get_pcvar_num(cvar_nvgsize)) // radius
write_byte(205) // r
write_byte(200) // g
write_byte(0) // b
write_byte(2) // life
write_byte(0) // decay rate
message_end()
}
// Game Nightvision
set_user_gnvision(id, toggle)
{
// Toggle NVG message
message_begin(MSG_ONE, g_msgNVGToggle, _, id)
write_byte(toggle) // toggle
message_end()
}
Versiune: 0.1
Link oficial: https://forums.alliedmods.net/showthread.php?t=239072
Instalare:
1. Fisierul zp_nightvision_final.sma il puneti in addons/amxmodx/scripting
2. Fisierul zp_nightvision_final.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
Cod: Selectaţi tot
zp_nightvision_final.amxx
Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):
Cod: Selectaţi tot
nvg_give - sa primesti nightvision
cvar_cnvg - sa fie costum nightvision
bio_nvg_size - dimensiunea la nightvision