Find everything you need for Zombie Mod servers in CS 1.6 – plugins, models, skins, and full addons. All in one place, ready to download and use instantly.
![[Image: image.png]](https://i.postimg.cc/6Qrw3qpn/image.png)
Call command:
ghost_menu| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.0 | OsuDesu | N/A | Any Mod |
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#define PLUGIN "Weapons Model Vip"
#define VERSION "1.0"
#define AUTHOR "SirErick"
new g_weapons[33], g_maxplayers
new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade",
"weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" }
enum _:model_weapons
{
V_AK47,
V_M4A1,
V_AWP
}
enum _:models_weapons_new
{
V_WEAPONS[50]
}
new const new_weapons[model_weapons][models_weapons_new] =
{
"models/v_ak47anubis.mdl",
"models/v_m4a1victim.mdl",
"models/v_awpwildstyle.mdl"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
set_pcvar_string(register_cvar("Weapons Model Vip", VERSION, FCVAR_SERVER|FCVAR_SPONLY), VERSION)
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
{
if(WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
}
register_clcmd("say /skins", "new_menu")
g_maxplayers = get_maxplayers()
}
public plugin_precache()
{
for(new i = 0;i < sizeof new_weapons;i++)
{
precache_model(new_weapons[i][V_WEAPONS]);
}
}
public client_putinserver(id)
{
g_weapons[id] = 0
}
public event_round_start()
{
for (new id = 1; id <= g_maxplayers; id++)
{
if (!is_user_connected(id))
continue;
}
}
public new_menu(id)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
new Menu = menu_create("Extrem-Tutorials | Weapons", "show_menu_weapons")
menu_additem(Menu, "AK47 Anubis" , "1", 0)
menu_additem(Menu, "M4A1 Victim " , "2", 0)
menu_additem(Menu, "AWP Wyld Style" , "3", 0)
menu_setprop(Menu,MPROP_EXITNAME,"Exit")
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu, 0)
return PLUGIN_HANDLED
}
public show_menu_weapons(id, menu, item)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item)
{
case 0:
{
g_weapons[id] = 1
}
case 1:
{
g_weapons[id] = 2
}
case 2:
{
g_weapons[id] = 3
}
}
return PLUGIN_HANDLED;
}
public fw_Item_Deploy_Post(weapon_ent)
{
if(!pev_valid(weapon_ent))
return
// Get weapon's owner
static owner
owner = fm_cs_get_weapon_ent_owner(weapon_ent)
// Get weapon's id
static weaponid
weaponid = cs_get_weapon_id(weapon_ent)
switch (weaponid)
{
case CSW_AK47:
{
if (g_weapons[owner] == 1)
{
set_pev(owner, pev_viewmodel2, new_weapons[V_AK47][V_WEAPONS])
}
}
case CSW_M4A1:
{
if (g_weapons[owner] == 2)
{
set_pev(owner, pev_viewmodel2, new_weapons[V_M4A1][V_WEAPONS])
}
}
case CSW_AWP:
{
if (g_weapons[owner] == 3)
{
set_pev(owner, pev_viewmodel2, new_weapons[V_AWP][V_WEAPONS])
}
}
}
}
stock fm_cs_get_weapon_ent_owner(ent)
{
// Prevent server crash if entity's private data not initalized
if (pev_valid(ent) != 2)
return -1;
return get_pdata_cbase(ent, 41, 4);
}#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#define PLUGIN "Weapons Model Vip"
#define VERSION "1.0"
#define AUTHOR "SirErick"
// Array-uri și variabile globale
new g_weapons[33], g_maxplayers;
new const WEAPONENTNAMES[][] = {
"", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4",
"weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven",
"weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18",
"weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp",
"weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47",
"weapon_knife", "weapon_p90"
};
enum _:model_weapons {
V_AK47,
V_M4A1,
V_AWP
};
enum _:models_weapons_new {
V_WEAPONS[50]
};
new const new_weapons[model_weapons][models_weapons_new] = {
"models/v_ak47anubis.mdl",
"models/v_m4a1victim.mdl",
"models/v_awpwildstyle.mdl"
};
// =================== Plugin Init ===================
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
// CVar simplu, nu afectează funcționalitatea
set_pcvar_string(register_cvar("Weapons Model Vip", VERSION, FCVAR_SERVER|FCVAR_SPONLY), VERSION);
// Înregistrăm toate armele pentru Ham Sandwich
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
{
if(WEAPONENTNAMES[i][0])
RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1);
}
// Comanda pentru meniu
register_clcmd("say /skins", "new_menu");
g_maxplayers = get_maxplayers();
}
// =================== Precache Modele ===================
public plugin_precache()
{
for(new i = 0; i < sizeof new_weapons; i++)
{
precache_model(new_weapons[i][V_WEAPONS]);
}
}
// =================== Jucător în server ===================
public client_putinserver(id)
{
g_weapons[id] = 0;
}
// =================== Round Start ===================
public event_round_start()
{
for (new id = 1; id <= g_maxplayers; id++)
{
if (!is_user_connected(id))
continue;
}
}
// =================== Meniu VIP ===================
public new_menu(id)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED;
// Verificare VIP: flag "z"
if (!(get_user_flags(id) & ADMFLAG_ROOT)) // Înlocuiește cu flagul VIP corect dacă e altul
{
client_print(id, print_chat, "\x04[Vip] \x01Only VIP can use this menu.");
return PLUGIN_HANDLED;
}
new Menu = menu_create("Extrem-Tutorials| Vip Skins Weapons", "show_menu_weapons");
menu_additem(Menu, "AK47 Anubis", "1", 0);
menu_additem(Menu, "M4A1 Victim", "2", 0);
menu_additem(Menu, "AWP Wyld Style", "3", 0);
menu_setprop(Menu, MPROP_EXITNAME, "Exit");
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, Menu, 0);
return PLUGIN_HANDLED;
}
// =================== Meniu Callback ===================
public show_menu_weapons(id, menu, item)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED;
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item)
{
case 0: g_weapons[id] = 1;
case 1: g_weapons[id] = 2;
case 2: g_weapons[id] = 3;
}
return PLUGIN_HANDLED;
}
// =================== Schimbare Model Arme ===================
public fw_Item_Deploy_Post(weapon_ent)
{
if(!pev_valid(weapon_ent))
return;
static owner = fm_cs_get_weapon_ent_owner(weapon_ent);
static weaponid = cs_get_weapon_id(weapon_ent);
switch (weaponid)
{
case CSW_AK47:
{
if (g_weapons[owner] == 1)
set_pev(owner, pev_viewmodel2, new_weapons[V_AK47][V_WEAPONS]);
}
case CSW_M4A1:
{
if (g_weapons[owner] == 2)
set_pev(owner, pev_viewmodel2, new_weapons[V_M4A1][V_WEAPONS]);
}
case CSW_AWP:
{
if (g_weapons[owner] == 3)
set_pev(owner, pev_viewmodel2, new_weapons[V_AWP][V_WEAPONS]);
}
}
}
// =================== Obținere Owner ===================
stock fm_cs_get_weapon_ent_owner(ent)
{
if (pev_valid(ent) != 2)
return -1;
return get_pdata_cbase(ent, 41, 4);
}![[Image: 10-145.jpg]](https://i.postimg.cc/TY5yzD0S/10-145.jpg)
| Version | Author | Requirements | Mod for |
|---|---|---|---|
| N/A | N/A | N/A | Any Mod |
![[Image: 10-142.jpg]](https://i.postimg.cc/tTSgnqqB/10-142.jpg)
![[Image: image.png]](https://i.postimg.cc/GmH6bbVL/image.png)
#include <amxmisc>
#include <engine>
#include <fakemeta>
#define pev_light pev_iuser1
enum _:STRSPRPARAM {
Float:RP_STR_CORDX, //Координаты начала
Float:RP_STR_CORDY,
Float:RP_STR_CORDZ,
Float:RP_END_CORDX, //Координаты конца
Float:RP_END_CORDY,
Float:RP_END_CORDZ,
RP_SEGMENT, //Количество точек.
bool:RP_CURVE, //Кривизна.
bool:RP_BLINK, //Мерцание.
bool:RP_COLOR_RAND, //Цвет случайный/сохранённый (1/0)
RP_COL_R, //Если не случайный то тут сохранён цвет.
RP_COL_G,
RP_COL_B,
bool:RP_START,
RP_COLOR
};
new Array:g_ArrSprPar;
new g_PlArrParam[33][STRSPRPARAM];
new g_iCount;
new g_szSprite[][] = {
"sprites/redspr.spr"
}
new g_szPathFile[256];
new g_szClassName[] = "class_light";
enum _:COLORTYPE {
COL_R,
COL_G,
COL_B,
COL_NAME[32]
}
new g_szColor[][COLORTYPE] = { // <= Цвета добавлять здесь. Но случайный не трогать и только после него!
{0,0,0,"Random"},
{255,0,0,"Red"},
{0,255,0,"Green"},
{0,0,255,"Blue"},
{55,163,221,"Light Blue"},
{235,206,41,"Yellow"},
{176,43,234,"Purple"}
}
public plugin_precache() {
for(new i=0;i<sizeof(g_szSprite);i++)
precache_model(g_szSprite[i]);
g_ArrSprPar = ArrayCreate(STRSPRPARAM);
ReadSaveParam();
}
public ReadSaveParam() {
new szLoadDir[128],szMapName[64];
get_mapname(szMapName,charsmax(szMapName));
get_configsdir(szLoadDir, charsmax(szLoadDir));
formatex(szLoadDir, charsmax(szLoadDir), "%s/lightMap",szLoadDir)
if(!dir_exists(szLoadDir)) mkdir(szLoadDir);
formatex(g_szPathFile, charsmax(g_szPathFile), "%s/%s.ini",szLoadDir,szMapName)
if(file_exists(g_szPathFile)) {
enum STRCORD {STR_X,STR_Y,STR_Z,END_X,END_Y,END_Z};
new szParse[256],szCord[STRCORD][8],szSegment[8],szCurve[5],szBlink[5],szColRand[5],szColR[8],szColG[8],szColB[8];
new ArrSprPar[STRSPRPARAM];
new iLine, iNum;
for(iLine = 0; read_file(g_szPathFile, iLine, szParse, charsmax(szParse), iNum); iLine++) {
parse(szParse,
szCord[STR_X],charsmax(szCord[]),
szCord[STR_Y],charsmax(szCord[]),
szCord[STR_Z],charsmax(szCord[]),
szCord[END_X],charsmax(szCord[]),
szCord[END_Y],charsmax(szCord[]),
szCord[END_Z],charsmax(szCord[]),
szSegment, charsmax(szSegment),
szCurve, charsmax(szCurve),
szBlink, charsmax(szBlink),
szColRand, charsmax(szColRand),
szColR, charsmax(szColR),
szColG, charsmax(szColG),
szColB, charsmax(szColB)
);
ArrSprPar[RP_STR_CORDX] = _:str_to_float(szCord[STR_X]);
ArrSprPar[RP_STR_CORDY] = _:str_to_float(szCord[STR_Y]);
ArrSprPar[RP_STR_CORDZ] = _:str_to_float(szCord[STR_Z]);
ArrSprPar[RP_END_CORDX] = _:str_to_float(szCord[END_X]);
ArrSprPar[RP_END_CORDY] = _:str_to_float(szCord[END_Y]);
ArrSprPar[RP_END_CORDZ] = _:str_to_float(szCord[END_Z]);
ArrSprPar[RP_SEGMENT] = _:str_to_num(szSegment);
ArrSprPar[RP_CURVE] = _:str_to_num(szCurve);
ArrSprPar[RP_BLINK] = _:str_to_num(szBlink);
ArrSprPar[RP_COLOR_RAND] = _:str_to_num(szColRand);
ArrSprPar[RP_COL_R] = _:str_to_num(szColR);
ArrSprPar[RP_COL_G] = _:str_to_num(szColG);
ArrSprPar[RP_COL_B] = _:str_to_num(szColB);
new Float:fStart[3],Float:fEnd[3];
fStart[0] = ArrSprPar[RP_STR_CORDX];
fStart[1] = ArrSprPar[RP_STR_CORDY];
fStart[2] = ArrSprPar[RP_STR_CORDZ];
fEnd[0] = ArrSprPar[RP_END_CORDX];
fEnd[1] = ArrSprPar[RP_END_CORDY];
fEnd[2] = ArrSprPar[RP_END_CORDZ];
calc_sprite(g_iCount,ArrSprPar[RP_CURVE],ArrSprPar[RP_BLINK],fStart,fEnd,ArrSprPar[RP_SEGMENT],-1,ArrSprPar[RP_COL_R],ArrSprPar[RP_COL_G],ArrSprPar[RP_COL_B],ArrSprPar[RP_COLOR_RAND]);
ArrayPushArray(g_ArrSprPar, ArrSprPar);
g_iCount++;
}
}
}
public WriteSaveParam() {
if(file_exists(g_szPathFile)) delete_file(g_szPathFile);
for(new i=0;i<ArraySize(g_ArrSprPar);i++) {
new ArrSprPar[STRSPRPARAM];
ArrayGetArray(g_ArrSprPar, i, ArrSprPar);
new szSaveStr[1024];
format(szSaveStr,charsmax(szSaveStr),
"^"%.1f^" ^"%.1f^" ^"%.1f^" ^"%.1f^" ^"%.1f^" ^"%.1f^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^"",
ArrSprPar[RP_STR_CORDX],
ArrSprPar[RP_STR_CORDY],
ArrSprPar[RP_STR_CORDZ],
ArrSprPar[RP_END_CORDX],
ArrSprPar[RP_END_CORDY],
ArrSprPar[RP_END_CORDZ],
ArrSprPar[RP_SEGMENT],
ArrSprPar[RP_CURVE],
ArrSprPar[RP_BLINK],
ArrSprPar[RP_COLOR_RAND],
ArrSprPar[RP_COL_R],
ArrSprPar[RP_COL_G],
ArrSprPar[RP_COL_B]
);
write_file(g_szPathFile, szSaveStr, i);
}
}
public plugin_init() {
register_plugin("Light", "1.0", "Author" );
register_menu("lightmenu", 1023, "lightmenu_function");
register_think(g_szClassName, "LightThink" );
register_clcmd("light","start_lightmenu");
}
public LightThink(iEnt) {
if(!pev_valid(iEnt))
return;
set_rendering(iEnt,kRenderFxNone,random_num(0,200),random_num(0,200),random_num(0,200),kRenderTransAdd,255)
set_pev( iEnt, pev_nextthink, get_gametime()+1.0);
}
public start_lightmenu(id) {
if(~get_user_flags(id) & read_flags("gh"))
return PLUGIN_HANDLED;
lightmenu(id,true);
return PLUGIN_HANDLED;
}
stock lightmenu(id,bool:first = false) {
static menu[512],len;
len = 0;
if(first) {
g_PlArrParam[id][RP_START] = false;
g_PlArrParam[id][RP_SEGMENT] = 10;
g_PlArrParam[id][RP_COLOR] = 0;
}
len = formatex(menu[len], charsmax(menu) - len, "\rGarland Menu. Total \d[\r%d\d]^n\yLights in garland \d[\r%d\d]^n^n",g_iCount,g_PlArrParam[id][RP_SEGMENT]+1);
len += formatex(menu[len], charsmax(menu) - len, "\r[1] \w%s^n",g_PlArrParam[id][RP_START] ? "End":"Start");
len += formatex(menu[len], charsmax(menu) - len, "\r[2] \wColor: \d[\y%s\d]^n",g_szColor[g_PlArrParam[id][RP_COLOR]][COL_NAME]);
len += formatex(menu[len], charsmax(menu) - len, "\r[3] \wAdd lights^n");
len += formatex(menu[len], charsmax(menu) - len, "\r[4] \wRemove lights^n^n");
len += formatex(menu[len], charsmax(menu) - len, "\r[5] \wShape \d[\y%s\d]^n",g_PlArrParam[id][RP_CURVE] ? "Curved":"Straight");
if(g_PlArrParam[id][RP_COLOR] == 0)
len += formatex(menu[len], charsmax(menu) - len, "\r[6] \wBlinking \d[\y%s\d]^n^n",g_PlArrParam[id][RP_BLINK] ? "On":"Off");
else len += formatex(menu[len], charsmax(menu) - len, "^n^n");
len += formatex(menu[len], charsmax(menu) - len, "\r[7] \wDelete last^n");
len += formatex(menu[len], charsmax(menu) - len, "\r[8] \wDelete all^n");
len += formatex(menu[len], charsmax(menu) - len, "\r[9] \wSave^n");
len += formatex(menu[len], charsmax(menu) - len, "^n\r[0] \wExit");
new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9;
show_menu(id, keys, menu, -1, "lightmenu");
return PLUGIN_HANDLED;
}
public lightmenu_function(id,key) {
switch(key) {
case 0: {
new Origin[3],Float:fOrigin[3];
get_user_origin(id, Origin, 3);
for(new i=0;i<sizeof(fOrigin);i++)
fOrigin[i] = float(Origin[i]);
if(!g_PlArrParam[id][RP_START]) {
g_PlArrParam[id][RP_START] = true;
g_PlArrParam[id][RP_STR_CORDX] = _:fOrigin[0];
g_PlArrParam[id][RP_STR_CORDY] = _:fOrigin[1];
g_PlArrParam[id][RP_STR_CORDZ] = _:fOrigin[2];
} else {
g_PlArrParam[id][RP_START] = false;
g_PlArrParam[id][RP_END_CORDX] = _:fOrigin[0];
g_PlArrParam[id][RP_END_CORDY] = _:fOrigin[1];
g_PlArrParam[id][RP_END_CORDZ] = _:fOrigin[2];
new Float:fStart[3];
fStart[0] = g_PlArrParam[id][RP_STR_CORDX];
fStart[1] = g_PlArrParam[id][RP_STR_CORDY];
fStart[2] = g_PlArrParam[id][RP_STR_CORDZ];
calc_sprite(g_iCount,g_PlArrParam[id][RP_CURVE],g_PlArrParam[id][RP_BLINK],fStart,fOrigin,g_PlArrParam[id][RP_SEGMENT],g_PlArrParam[id][RP_COLOR]);
if(g_PlArrParam[id][RP_COLOR] == 0) g_PlArrParam[id][RP_COLOR_RAND] = true;
else {
g_PlArrParam[id][RP_COLOR_RAND] = false;
g_PlArrParam[id][RP_COL_R] = g_szColor[g_PlArrParam[id][RP_COLOR]][COL_R];
g_PlArrParam[id][RP_COL_G] = g_szColor[g_PlArrParam[id][RP_COLOR]][COL_G];
g_PlArrParam[id][RP_COL_B] = g_szColor[g_PlArrParam[id][RP_COLOR]][COL_B];
}
ArrayPushArray(g_ArrSprPar, g_PlArrParam[id]);
g_iCount++;
}
}
case 1: {
if(g_PlArrParam[id][RP_COLOR]<sizeof(g_szColor)-1) {
g_PlArrParam[id][RP_COLOR]++;
} else g_PlArrParam[id][RP_COLOR] = 0;
}
case 2: {
g_PlArrParam[id][RP_SEGMENT]++;
}
case 3: {
if(g_PlArrParam[id][RP_SEGMENT] > 2)
g_PlArrParam[id][RP_SEGMENT]--;
}
case 4: g_PlArrParam[id][RP_CURVE] = !g_PlArrParam[id][RP_CURVE];
case 5: g_PlArrParam[id][RP_BLINK] = !g_PlArrParam[id][RP_BLINK];
case 6: {
new iSize = ArraySize(g_ArrSprPar);
if(g_iCount == iSize && iSize != 0) {
g_iCount--;
new iEnt = FM_NULLENT;
while((iEnt = find_ent_by_class( iEnt, g_szClassName))) {
if(pev(iEnt,pev_light) == g_iCount) {
set_pev(iEnt, pev_flags, FL_KILLME);
}
}
ArrayDeleteItem(g_ArrSprPar,g_iCount);
}
}
case 7: {
ArrayClear(g_ArrSprPar);
new iEnt = FM_NULLENT;
while((iEnt = find_ent_by_class( iEnt, g_szClassName))) {
set_pev(iEnt, pev_flags, FL_KILLME);
}
g_iCount = 0;
}
case 8: {
WriteSaveParam();
return PLUGIN_HANDLED;
}
case 9: return PLUGIN_HANDLED;
}
lightmenu(id);
return PLUGIN_HANDLED;
}
public client_putinserver(id) {
g_PlArrParam[id][RP_START] = false;
}
public client_disconnect(id) {
g_PlArrParam[id][RP_START] = false;
}
stock calc_sprite(iNum,iCurve,iBlink,Float:fStart[3],Float:fEnd[3],iSegment,iColor,R=0,G=0,B=0,iRand=false) {
new Float:newPoint[3],Float:vector[3],Float:fFistortion,Float:fCurve;
new Float:fAllDist = get_distance_f(fEnd,fStart);
new Float:fDist = fAllDist / iSegment;
for(new i=0;i<sizeof(fStart);i++)
vector[i] = (fEnd[i] - fStart[i])/fAllDist;
fCurve = fAllDist/100*18/iSegment/2;
for(new j=1;j<iSegment;j++) {
for(new i=0;i<sizeof(fStart);i++) {
newPoint[i] = vector[i] * fDist*j + fStart[i];
if(iCurve) {
if(fDist*j > fAllDist/2) {
fFistortion += fCurve;
newPoint[2] += fFistortion;
} else if(fDist*j > fAllDist/2 - fDist/4) {
fFistortion += -fCurve/2;
newPoint[2] += fFistortion;
} else {
fFistortion += -fCurve;
newPoint[2] += fFistortion;
}
}
}
create_sprite(iNum,iBlink,newPoint,iColor,R,G,B,iRand);
}
create_sprite(iNum,iBlink,fEnd,iColor,R,G,B,iRand);
create_sprite(iNum,iBlink,fStart,iColor,R,G,B,iRand);
}
stock create_sprite(iNum,iBlink,Float:vecOrigin[3],iColor,R=0,G=0,B=0,iRand = false) {
static iszInfoTarget = 0; new iSprId = FM_NULLENT;
if(iszInfoTarget || (iszInfoTarget = engfunc(EngFunc_AllocString, "env_sprite"))) iSprId = engfunc(EngFunc_CreateNamedEntity, iszInfoTarget);
if(is_valid_ent(iSprId)) {
set_pev(iSprId, pev_origin, vecOrigin);
set_pev(iSprId, pev_solid, SOLID_NOT);
set_pev(iSprId, pev_movetype, MOVETYPE_NONE);
set_pev(iSprId, pev_framerate, 5.0);
set_pev(iSprId, pev_scale, 0.15);
if(iColor > 0) {
set_rendering(iSprId,kRenderFxNone,g_szColor[iColor][COL_R],g_szColor[iColor][COL_G],g_szColor[iColor][COL_B],kRenderTransAdd,255)
} else if(iColor == 0 || iRand) {
set_rendering(iSprId,kRenderFxNone,random_num(0,200),random_num(0,200),random_num(0,200),kRenderTransAdd,255)
} else if(iColor == -1) {
set_rendering(iSprId,kRenderFxNone,R,G,B,kRenderTransAdd,255)
}
engfunc(EngFunc_SetModel, iSprId, g_szSprite[random_num(0,charsmax(g_szSprite))]);
set_pev(iSprId, pev_classname, g_szClassName);
set_pev(iSprId, pev_spawnflags, SF_SPRITE_STARTON);
dllfunc(DLLFunc_Spawn, iSprId);
set_pev(iSprId,pev_light,iNum);
if(iBlink && iColor == 0 || iRand)
set_pev( iSprId, pev_nextthink, get_gametime()+1.0);
}
}| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.0 | eLLectro | N/A | Any mod |
![[Image: image-(5).png]](https://i.postimg.cc/KYS8ksmG/image-(5).png)
| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.0 | xPaw | N/A | XMAS |
![[Image: 972d5016-33e6-4a24-af7a-39ef1927bf63.png]](https://i.postimg.cc/FFZ61J0w/972d5016-33e6-4a24-af7a-39ef1927bf63.png)
#include <amxmodx>
#define NUMAR_SUNETE_T 3
#define NUMAR_SUNETE_CT 3
new const Christmas_Sounds_T[NUMAR_SUNETE_T][] = {
// "xmas/xmas_te1.mp3",
// "xmas/xmas_te2.mp3",
"xmas/xmas_te3.mp3",
"xmas/xmas_te4.mp3",
"xmas/xmas_te5.mp3"
}
new const Christmas_Sounds_CT[NUMAR_SUNETE_CT][] = {
// "xmas/xmas_ct1.mp3",
// "xmas/xmas_ct2.mp3",
// "xmas/xmas_ct3.mp3",
"xmas/xmas_ct4.mp3",
"xmas/xmas_ct5.mp3",
"xmas/xmas_ct6.mp3"
}
public plugin_init() {
register_plugin("[XMAS] RoundSounds","1.0","A k c 3 n 7");
register_message( get_user_msgid( "SendAudio" ),"message_sendaudio" );
register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin");
register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin");
}
public t_win() {
PlaySoundToClients (Christmas_Sounds_T[random(NUMAR_SUNETE_T)]);
}
public ct_win() {
PlaySoundToClients (Christmas_Sounds_CT[random(NUMAR_SUNETE_CT)]);
}
public plugin_precache() {
for(new i = 0; i < NUMAR_SUNETE_T; i ++)
precache_sound(Christmas_Sounds_T[i]);
for(new i = 0; i < NUMAR_SUNETE_CT; i ++)
precache_sound(Christmas_Sounds_CT[i]);
}
public message_sendaudio( msg_id, msg_dest, msg_entity ) {
static message[10];
get_msg_arg_string( 2, message, sizeof message - 1 );
switch( message[7] )
{
case 'c', 't', 'r' : return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
PlaySoundToClients ( const sound [ ] ) {
if ( equal ( sound [ strlen ( sound ) -4 ], ".mp3" ) )
client_cmd ( 0, "mp3 play ^"sound/%s^"", sound );
else
client_cmd ( 0, "spk ^"%s^"", sound );
}| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.0 | A k c 3 n 7 | AMX Mod X | Classic / Xmas |
![[Image: Untitled-image-1.png]](https://i.postimg.cc/DzZNChBF/Untitled-image-1.png)
| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.3 | medusa + spincs | Reapi | ZP 5.0.8 |
![[Image: 0dbbac3f-8329-4619-ab5e-d452e4136a96.png]](https://i.postimg.cc/RZwwWgxc/0dbbac3f-8329-4619-ab5e-d452e4136a96.png)
| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.0 | N/A | fakemeta_util / reapi / zombieplague | ZP 4.3 |
![[Image: b2d81e88-2b2f-4864-bec6-4e0d336ec9e6.png]](https://i.postimg.cc/Zny8FsZT/b2d81e88-2b2f-4864-bec6-4e0d336ec9e6.png)
CVARS:
zp_heartbeat_hp <50> - Heartbeats start when HP is lower than this| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.1.0 | ConnorMcLeod / AlexBreems | amxmodx / zombieplague | ZP 4.3 / ZP 5.0.8 |
![[Image: Untitled-image.png]](https://i.postimg.cc/jq7z7DT9/Untitled-image.png)
| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.0 | N/A | hamsandwich / fakemeta / amxmodx | ZP 4.3 |
![[Image: Untitled-image-1.png]](https://i.postimg.cc/RFYDYPSM/Untitled-image-1.png)
| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 4.2.0 | SandStriker | AmxMisc / FakeMeta / XS / HamSandwich / ZombiePlague | ZP 4.3 |
![[Image: Untitled-image.png]](https://i.postimg.cc/R0D9LLHB/Untitled-image.png)
| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.0 | Unknown | Reapi / ZombiePlague | ZP 4.3 |
![[Image: Untitled-image.png]](https://i.postimg.cc/jqpNynDY/Untitled-image.png)
| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.0 | xUnicorn | AMX Mod X | Zombie Plague 4.3 / 5.0.8 |
![[Image: Untitled-image-1.png]](https://i.postimg.cc/65bsnsK4/Untitled-image-1.png)
| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0.0 | S3xTy | AMX Mod X | Zombie Plague 4.3 |
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#define DAMAGE_COLOR_ENABLED // Comment out '//' if you need a standard damage dealer color.
#define NDAMAGE_SPRITE "sprites/new_damage.spr" // Path to sprite
#define NDAMAGE_REMOVE 1.0 // The sprite will be deleted after a certain period of time.
#define NDAMAGE_SIZE 0.30 // Sprite size (standard 0.30), less than 0.25 is not recommended!
#if defined DAMAGE_COLOR_ENABLED
new THUD_COLOR[] = {255, 0, 0};
new CTHUD_COLOR[] = {0, 0, 255};
new Float:SPRITE_TCOLOR[3] = {255.0, 0.0, 0.0};
new Float:SPRITE_CTCOLOR[3] = {0.0, 0.0, 255.0};
#endif
public plugin_init()
{
register_plugin("new_damage", "v0.01", "souledar");
RegisterHam(Ham_Think, "info_target", "fw_ThinkInfoTarget");
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Post", true);
}
public plugin_precache() engfunc(EngFunc_PrecacheModel, NDAMAGE_SPRITE);
public Ham_TakeDamage_Post(iVictim, iWeapon, iAttacker, Float:fDamage)
{
if (get_user_team(iVictim) == get_user_team(iAttacker)) return;
new iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if (pev_valid(iEnt))
{
new Float:fOrigin[3];
pev(iVictim, pev_origin, fOrigin);
set_pev(iEnt, pev_classname, "func_damager");
set_pev(iEnt, pev_impulse, 11082018);
set_pev(iEnt, pev_movetype, MOVETYPE_FOLLOW);
set_pev(iEnt, pev_aiment, iVictim);
engfunc(EngFunc_SetModel, iEnt, NDAMAGE_SPRITE);
set_pev(iEnt, pev_scale, NDAMAGE_SIZE);
set_pev(iEnt, pev_rendermode, kRenderTransAdd);
#if defined DAMAGE_COLOR_ENABLED
if(cs_get_user_team(iAttacker) == CS_TEAM_T) set_pev(iEnt, pev_rendercolor, SPRITE_TCOLOR);
else if(cs_get_user_team(iAttacker) == CS_TEAM_CT) set_pev(iEnt, pev_rendercolor, SPRITE_CTCOLOR);
#else
new Float:standart_color[3] = {255.0, 255.0, 255.0};
set_pev(iEnt, pev_rendercolor, standart_color);
#endif
set_pev(iEnt, pev_renderamt, 255.0);
if (fDamage > 99.0) set_pev(iEnt, pev_frame, 0);
else set_pev(iEnt, pev_frame, fDamage);
set_pev(iEnt, pev_nextthink, get_gametime() + NDAMAGE_REMOVE);
}
if(iVictim == iAttacker || !is_user_alive(iAttacker) || !is_user_connected(iVictim)) return;
if(cs_get_user_team(iAttacker) == CS_TEAM_T)
{
#if defined DAMAGE_COLOR_ENABLED
set_hudmessage(THUD_COLOR[0], THUD_COLOR[1], THUD_COLOR[2], -1.0, -1.0, 0, 0.01, 0.05, 0.1);
#else
set_hudmessage(255, 255, 255, -1.0, -1.0, 0, 0.01, 0.05, 0.1);
#endif
}
else if (cs_get_user_team(iAttacker) == CS_TEAM_CT)
{
#if defined DAMAGE_COLOR_ENABLED
set_hudmessage(CTHUD_COLOR[0], CTHUD_COLOR[1], CTHUD_COLOR[2], -1.0, -1.0, 0, 0.01, 0.05, 0.1);
#else
set_hudmessage(255, 255, 255, -1.0, -1.0, 0, 0.01, 0.05, 0.1);
#endif
}
show_hudmessage(iAttacker, "\\ //^n^n// \\"); // Displaying a hit on a player.
}
public fw_ThinkInfoTarget(iEnt)
{
if (pev_valid(iEnt))
{
if (pev(iEnt, pev_impulse) == 11082018)
set_pev(iEnt, pev_flags, FL_KILLME);
}
}| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 0.01 | souledar | AMX Mod X, Cstrike, FakeMeta, HamSandwich | Counter-Strike 1.6 |
![[Image: Untitled-image-1.png]](https://i.postimg.cc/gjWVY5kS/Untitled-image-1.png)
#include <amxmodx>
#include <biohazard>
#include <fakemeta_util>
#include <hamsandwich>
new g_first_zombie_sounds[][] = {
"zm/zombie/Z_Vision/Activate.wav"
}
new g_zombie_die_sounds[][] =
{
"biohazard/death1.wav",
"biohazard/death2.wav",
"biohazard/death3.wav"
}
new g_attack_hit[][] =
{
"zm/zombie/snd/attack/hit/Z_Hit-01.wav",
"zm/zombie/snd/attack/hit/Z_Hit-02.wav",
"zm/zombie/snd/attack/hit/Z_Hit-03.wav",
"zm/zombie/snd/attack/hit/Z_Hit-04.wav",
"zm/zombie/snd/attack/hit/Z_Hit-05.wav",
"zm/zombie/snd/attack/hit/Z_Hit-06.wav"
}
new g_attack_swipe[][] =
{
"zm/zombie/snd/attack/swipe/z-swipe-1.wav",
"zm/zombie/snd/attack/swipe/z-swipe-2.wav",
"zm/zombie/snd/attack/swipe/z-swipe-3.wav",
"zm/zombie/snd/attack/swipe/z-swipe-4.wav",
"zm/zombie/snd/attack/swipe/z-swipe-5.wav",
"zm/zombie/snd/attack/swipe/z-swipe-6.wav"
}
new zom1_attack[][] =
{
"zm/zombie/snd/zom1/attack/ZCarrier_Attack-01.wav",
"zm/zombie/snd/zom1/attack/ZCarrier_Attack-02.wav",
"zm/zombie/snd/zom1/attack/ZCarrier_Attack-03.wav",
"zm/zombie/snd/zom1/attack/ZCarrier_Attack-04.wav",
"zm/zombie/snd/zom1/attack/ZCarrier_Attack-05.wav",
"zm/zombie/snd/zom1/attack/ZCarrier_Attack-06.wav"
}
new zom2_attack[][] =
{
"zm/zombie/snd/zom2/attack/Attack-01.wav",
"zm/zombie/snd/zom2/attack/Attack-02.wav",
"zm/zombie/snd/zom2/attack/Attack-03.wav",
"zm/zombie/snd/zom2/attack/Attack-04.wav",
"zm/zombie/snd/zom2/attack/Attack-05.wav",
"zm/zombie/snd/zom2/attack/Attack-06.wav"
}
new zom3_attack[][] =
{
"zm/zombie/snd/zom3/attack/ZMale_Attack1.wav",
"zm/zombie/snd/zom3/attack/ZMale_Attack2.wav",
"zm/zombie/snd/zom3/attack/ZMale_Attack3.wav",
"zm/zombie/snd/zom3/attack/ZMale_Attack4.wav",
"zm/zombie/snd/zom3/attack/ZMale_Attack5.wav",
"zm/zombie/snd/zom3/attack/ZMale_Attack6.wav",
"zm/zombie/snd/zom3/attack/ZMale_Attack7.wav"
}
new g_speech[][] =
{
"zm/zombie/snd/speech/braaains.wav",
"zm/zombie/snd/speech/brain.wav",
"zm/zombie/snd/speech/brains.wav",
"zm/zombie/snd/speech/brains2.wav",
"zm/zombie/snd/speech/feeed.wav",
"zm/zombie/snd/speech/hungers.wav",
"zm/zombie/snd/speech/join.wav",
"zm/zombie/snd/speech/join2.wav",
"zm/zombie/snd/speech/joinusss.wav",
"zm/zombie/snd/speech/mustfeed.wav"
}
new Float: g_players[33]
new Float: g_moaning[33]
new g_class[33]
new g_oldtalk[33]
new Float:g_old_pa[33]
new cvar_primattack;
new cvar_moaningdelay
public plugin_init() {
register_plugin("bio_painsounds","1.1","bipbip")
is_biomod_active() ? plugin_init2() : pause("ad")
}
public plugin_init2() {
cvar_primattack = register_cvar("bh_pasounds","1")
cvar_moaningdelay = register_cvar("bh_moaningdelay", "10")
RegisterHam(Ham_Player_PostThink, "player", "bacon_prethink", 1)
register_forward(FM_EmitSound, "fwd_emitsound")
}
public client_connect(id) {
g_class[id]=0
g_oldtalk[id]=0
}
public eCurWeapon(id) {
if (get_gametime() > g_old_pa[id]) {
primaryattack(id)
g_old_pa[id] = get_gametime()+2.5;
}
}
public primaryattack(id) if (is_user_alive(id)) {
if (get_gametime() > g_old_pa[id]) {
if (is_user_zombie(id)) {
switch(g_class[id]) {
case 0: {
engfunc(EngFunc_EmitSound, id, CHAN_VOICE, zom1_attack[_random(id, sizeof zom1_attack)], 1.0, ATTN_NORM, 0, PITCH_NORM);
}
case 1: {
engfunc(EngFunc_EmitSound, id, CHAN_VOICE, zom2_attack[_random(id, sizeof zom2_attack)], 1.0, ATTN_NORM, 0, PITCH_NORM);
}
case 2: {
engfunc(EngFunc_EmitSound, id, CHAN_VOICE, zom3_attack[_random(id, sizeof zom3_attack)], 1.0, ATTN_NORM, 0, PITCH_NORM);
}
}
}
g_old_pa[id] = get_gametime()+0.5;
}
}
public event_infect(victim, attacker) {
if (attacker == 0) {
client_cmd(victim,"spk %s", g_first_zombie_sounds[random_num(0, sizeof g_first_zombie_sounds - 1)])
}
g_class[victim] = random_num(0,2)
}
public plugin_precache() {
register_forward(FM_PrecacheSound, "dontprecache")
new i = 0;
for(i = 0; i < sizeof g_attack_hit; i++)
precache_sound(g_attack_hit[i])
for(i = 0; i < sizeof g_attack_swipe; i++)
precache_sound(g_attack_swipe[i])
for(i = 0; i < sizeof zom1_attack; i++)
precache_sound(zom1_attack[i])
for(i = 0; i < sizeof zom2_attack; i++)
precache_sound(zom2_attack[i])
for( i = 0; i < sizeof zom3_attack; i++)
precache_sound(zom3_attack[i])
for(i = 0; i < sizeof g_zombie_die_sounds; i++) precache_sound(g_zombie_die_sounds[i])
for(i = 0; i < sizeof g_speech; i++)
precache_sound(g_speech[i])
for(i = 0; i < sizeof g_first_zombie_sounds; i++)
precache_sound(g_first_zombie_sounds[i])
}
public bacon_prethink(iPlayer)
{
if(is_user_alive(iPlayer) ) {
if ((pev(iPlayer, pev_button) & IN_ATTACK) && get_pcvar_num(cvar_primattack)) primaryattack(iPlayer);
if (is_user_zombie(iPlayer)) {
if ( get_gametime() > g_moaning[iPlayer]) {
static Float: origin[3]
pev(iPlayer, pev_origin, origin)
static ent ; ent = engfunc(EngFunc_FindEntityInSphere, iPlayer, origin, 250.0)
if (ent) {
engfunc(EngFunc_EmitSound, iPlayer, CHAN_VOICE, g_speech[_random(iPlayer, sizeof g_speech)], random_float(0.7, 1.0), ATTN_NORM, 0, PITCH_NORM);
g_moaning[iPlayer] = get_gametime() + random_float(0.0,5.0) + float(get_pcvar_num(cvar_moaningdelay));
}
}
}
}
}
public fwd_emitsound(id, channel, sample[], Float:volume, Float:attn, flag, pitch)
{
if(!is_user_connected(id) )
return FMRES_IGNORED
if (is_user_zombie(id)) {
g_players[id] = get_gametime() + 1.0;
//client_print(0,print_chat,"sample %s", sample)
if (sample[0] == 'z' && sample[1] == 'm')
return FMRES_IGNORED
if(sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
{
if(sample[14] == 'h' && sample[15] == 'i' && sample[16] == 't' || sample[14] == 's' && sample[15] == 't' && sample[16] == 'a')
{
if(sample[17] == 'w' && sample[18] == 'a' && sample[19] == 'l') {
emit_sound(id, CHAN_WEAPON, g_attack_swipe[_random(id, sizeof g_attack_swipe)], volume, attn, flag, pitch)
} else {
emit_sound(id, CHAN_WEAPON, g_attack_hit[_random(id, sizeof g_attack_hit)], volume, attn, flag, pitch)
}
return FMRES_SUPERCEDE
}
}
else if(sample[7] == 'd' && (sample[8] == 'i' && sample[9] == 'e' || sample[12] == '6'))
{
emit_sound(id, channel, g_zombie_die_sounds[_random(id, sizeof g_zombie_die_sounds)], volume, attn, flag, pitch)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
stock _random(id, maxnum) {
static luck
luck = random_num(0, maxnum - 1)
while (luck==g_oldtalk[id]) {
luck = random_num(0, maxnum - 1)
}
g_oldtalk[id] = luck
return luck;
}
public dontprecache(file[]) {
if(file[0]=='h' && file[1]=='o' && file[2]=='s')
return FMRES_SUPERCEDE
return FMRES_IGNORED
}| Version | Author | Requirements | Mod for |
|---|---|---|---|
| 1.0 | bipbip | AMX Mod X, Biohazard, FakeMeta_Util, HamSandwich | Biohazard |