Senior Member
|
02-17-2024
, 04:42
Re: [Knife Menu Save Choice] Scripting help
|
#6
|
Quote:
Originally Posted by fysiks
The "setinfo" command is blocked by any competent player using cl_filterstuffcmd so that will not work for what you are trying to do. Many players also make the config file read-only which would prevent this from working even if the aforementioned cvar was set to 0.
So, you need to store the info on the server using a storage method like nVault. You'll need to use the player's SteamID for the "key" and then you can set the value to the value of the knife selection.
Here is a quick and simple example that is basically all done for you. Just use SaveKnife() where you want to save the knife and GetKnife() when you want to get it.
PHP Code:
#include <amxmodx>
#include <nvault>
new g_pVault
public plugin_init()
{
g_pVault = nvault_open("knifevault")
}
public plugin_end()
{
nvault_close(g_pVault)
}
/**
Saves a player's knife in the vault
*/
stock SaveKnife(id, iKnife)
{
// Get only usable unique identifier
new szSteamID[32]
get_user_authid(id, szSteamID, charsmax(szSteamID))
// Prepare for storing in nVault
new szTemp[6]
num_to_str(++iKnife, szTemp, charsmax(szTemp))
// Put in the vault
nvault_set(g_pVault, szSteamID, szTemp)
}
/**
Gets a player's last saved knife.
Returns -1 if player has no knife saved.
*/
stock GetKnife(id)
{
// Get only usable unique identifier
new szSteamID[32]
get_user_authid(id, szSteamID, charsmax(szSteamID))
// Get knife value from vault
new iKnife
iKnife = nvault_get(g_pVault, szSteamID)
// Check if it's valid and return
return iKnife == 0 ? -1 : --iKnife
}
In fact, you can simply replace:
PHP Code:
client_cmd(id, "setinfo Knifes 1");
with
PHP Code:
SaveKnife(id, 1)
Then, to get which knife they have, you simply do GetKnife(id) whenever you need it. To do what you want, you probably need to hook the spawn event and then get the knife value and if it's not -1 then call the function to give them their chosen knife.
|
So should i do something like this ?
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <engine>
#include <hamsandwich>
#include <zombieplague>
#include <nvault>
#define PLUGIN "[ZP]Knife Menu"
#define VERSION "2.0"
#define AUTHOR "tedaimlocks, Bu!ld3r"
#define VIP ADMIN_LEVEL_H
#define PVIP ADMIN_LEVEL_D
#define ADMIN1 ADMIN_BAN
#define HEADADMIN ADMIN_CVAR
#define OWNER ADMIN_RCON
#define MAXPLAYERS 32
new g_pVault
public plugin_init()
{
g_pVault = nvault_open("knifevault")
}
public plugin_end()
{
nvault_close(g_pVault)
}
/**
Saves a player's knife in the vault
*/
stock SaveKnife(id, iKnife)
{
// Get only usable unique identifier
new szSteamID[32]
get_user_authid(id, szSteamID, charsmax(szSteamID))
// Prepare for storing in nVault
new szTemp[6]
num_to_str(++iKnife, szTemp, charsmax(szTemp))
// Put in the vault
nvault_set(g_pVault, szSteamID, szTemp)
}
/**
Gets a player's last saved knife.
Returns -1 if player has no knife saved.
*/
stock GetKnife(id)
{
// Get only usable unique identifier
new szSteamID[32]
get_user_authid(id, szSteamID, charsmax(szSteamID))
// Get knife value from vault
new iKnife
iKnife = nvault_get(g_pVault, szSteamID)
// Check if it's valid and return
return iKnife == 0 ? -1 : --iKnife
}
#define ID_FBURN5 (taskid - 100)
#define ID_FBURN6 (taskid - 100)
#define ID_FBURN7 (taskid - 100)
new g_burning5[33],
g_burning6[33],
g_burning7[33],
g_sprite5,
g_sprite6,
g_sprite7
new knife1_v_model[] = "models/zp_knife_menu/v_dual_katana.mdl"
new knife1_p_model[] = "models/zp_knife_menu/p_dual_katana.mdl"
new knife2_v_model[] = "models/zp_knife_menu/v_strong_gloves.mdl"
new knife2_p_model[] = "models/zp_knife_menu/p_strong_gloves.mdl"
new knife3_v_model[] = "models/zp_knife_menu/v_axe.mdl"
new knife3_p_model[] = "models/zp_knife_menu/p_axe.mdl"
new vip_v_model[] = "models/zp_knife_menu/v_hammer.mdl"
new vip_p_model[] = "models/zp_knife_menu/p_hammer.mdl"
new pvip_v_model[] = "models/zp_knife_menu/v_warhammer_storm.mdl"
new pvip_p_model[] = "models/zp_knife_menu/p_warhammer_storm.mdl"
new admin_v_model[] = "models/zp_knife_menu/v_warhammer_storm.mdl"
new admin_p_model[] = "models/zp_knife_menu/p_warhammer_storm.mdl"
new headadmin_v_model[] = "models/zp_knife_menu/v_warhammer_ice.mdl"
new headadmin_p_model[] = "models/zp_knife_menu/p_warhammer_ice.mdl"
new founder_v_model[] = "models/zp_knife_menu/v_boss_hammer.mdl"
new founder_p_model[] = "models/zp_knife_menu/p_boss_hammer.mdl"
new survivor_v_model[] = "models/zp_knife_menu/v_sur_hammer.mdl"
new survivor_p_model[] = "models/zp_knife_menu/p_sur_hammer.mdl"
const m_pPlayer = 41
const m_flNextPrimaryAttack = 46
const m_flNextSecondaryAttack = 47
const m_flTimeWeaponIdle = 48
new g_hasSpeed[33], SayText
new bool:g_WasShowed[MAXPLAYERS + 1]
new g_knife_knife1[33], cvar_knife_knife1_jump, cvar_knife_knife1_spd, cvar_knife_knife1_dmg, cvar_knife_knife1_knock, cvar_knife_knife1_spd_attack2
new g_knife_knife2[33], cvar_knife_knife2_jump, cvar_knife_knife2_spd, cvar_knife_knife2_dmg, cvar_knife_knife2_knock, cvar_knife_knife2_spd_attack2
new g_knife_knife3[33], cvar_knife_knife3_jump, cvar_knife_knife3_spd, cvar_knife_knife3_dmg, cvar_knife_knife3_knock, cvar_knife_knife3_spd_attack2
new g_knife_vip[33], cvar_knife_vip_jump, cvar_knife_vip_spd, cvar_knife_vip_dmg, cvar_knife_vip_knock, cvar_knife_vip_spd_attack2
new g_knife_pvip[33], cvar_knife_pvip_jump, cvar_knife_pvip_spd, cvar_knife_pvip_dmg, cvar_knife_pvip_knock, cvar_knife_pvip_spd_attack2
new g_knife_admin[33], cvar_knife_admin_jump, cvar_knife_admin_spd, cvar_knife_admin_dmg, cvar_knife_admin_knock, cvar_admin_spd_attack2
new g_knife_headadmin[33], cvar_knife_headadmin_jump, cvar_knife_headadmin_spd, cvar_knife_headadmin_dmg, cvar_knife_headadmin_knock, cvar_headadmin_spd_attack2
new g_knife_founder[33], cvar_knife_founder_jump, cvar_knife_founder_spd, cvar_knife_founder_dmg, cvar_knife_founder_knock, cvar_founder_spd_attack2
new g_knife_survivor[33], cvar_knife_survivor_jump, cvar_knife_survivor_spd, cvar_knife_survivor_dmg, cvar_knife_survivor_knock, cvar_survivor_spd_attack2
new const g_sound_knife[] = { "items/gunpickup2.wav" }
new const knife1_sounds[][] =
{
"zp_knife_menu/katana_deploy.wav",
"zp_knife_menu/katana_hit1.wav",
"zp_knife_menu/katana_hit2.wav",
"zp_knife_menu/katana_hitwall.wav",
"zp_knife_menu/katana_slash.wav",
"zp_knife_menu/katana_stab.wav"
}
new const knife2_sounds[][] =
{
"zp_knife_menu/strong_gloves_deploy.wav",
"zp_knife_menu/strong_gloves_hit.wav",
"zp_knife_menu/strong_gloves_hit2.wav",
"zp_knife_menu/strong_gloves_hitwall.wav",
"zp_knife_menu/strong_gloves_slash.wav",
"zp_knife_menu/strong_gloves_stab.wav"
}
new const knife3_sounds[][] =
{
"zp_knife_menu/axe_draw.wav",
"zp_knife_menu/axe_hit_01.wav",
"zp_knife_menu/axe_hit_02.wav",
"zp_knife_menu/axe_hitwall.wav",
"zp_knife_menu/axe_miss.wav",
"zp_knife_menu/axe_stab.wav"
}
new const vip_sounds[][] =
{
"zp_knife_menu/hammer_deploy.wav",
"zp_knife_menu/hammer_hit.wav",
"zp_knife_menu/hammer_hit.wav",
"zp_knife_menu/hammer_hitwall.wav",
"zp_knife_menu/hammer_slash.wav",
"zp_knife_menu/hammer_stab.wav"
}
new const pvip_sounds[][] =
{
"zp_knife_menu/warhammer_deploy.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hitwall.wav",
"zp_knife_menu/warhammer_slash.wav",
"zp_knife_menu/warhammer_stab.wav"
}
new const admin_sounds[][] =
{
"zp_knife_menu/warhammer_deploy.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hitwall.wav",
"zp_knife_menu/warhammer_slash.wav",
"zp_knife_menu/warhammer_stab.wav"
}
new const headadmin_sounds[][] =
{
"zp_knife_menu/warhammer_deploy.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hitwall.wav",
"zp_knife_menu/warhammer_slash.wav",
"zp_knife_menu/warhammer_stab.wav"
}
new const founder_sounds[][] =
{
"zp_knife_menu/warhammer_deploy.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hitwall.wav",
"zp_knife_menu/warhammer_slash.wav",
"zp_knife_menu/warhammer_stab.wav"
}
new const survivor_sounds[][] =
{
"zp_knife_menu/warhammer_deploy.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hit.wav",
"zp_knife_menu/warhammer_hitwall.wav",
"zp_knife_menu/warhammer_slash.wav",
"zp_knife_menu/warhammer_stab.wav"
}
public plugin_init()
{
register_plugin(PLUGIN , VERSION , AUTHOR);
register_cvar("zp_addon_knife", VERSION, FCVAR_SERVER);
SayText = get_user_msgid("SayText")
register_clcmd("say /knife","knife",ADMIN_ALL,"knife")
register_clcmd("knife","knife",ADMIN_ALL,"knife")
register_clcmd("knife1", "give_knife1")
register_clcmd("knife2", "give_knife2")
register_clcmd("knife3", "give_knife3")
register_clcmd("vip", "give_vip")
register_clcmd("pvip", "give_pvip")
register_clcmd("admin", "give_admin")
register_clcmd("headadmin", "give_headadmin")
register_clcmd("founder", "give_founder")
register_clcmd("survivor", "give_survivor")
register_event("CurWeapon","checkWeapon","be","1=1");
register_event("Damage" , "event_Damage" , "b" , "2>0");
register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");
register_forward(FM_EmitSound, "CEntity__EmitSound");
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg");
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fw_Knife_SecondaryAttack_Post", 1)
cvar_knife_knife1_jump= register_cvar("zp_knife_knife1_jump", "275.0");
cvar_knife_knife1_spd = register_cvar("zp_knife_knife1_spd", "310.0");
cvar_knife_knife1_dmg = register_cvar("zp_knife_knife1_dmg" , "4.0");
cvar_knife_knife1_knock = register_cvar("zp_knife_knife1_knock" , "6.0");
cvar_knife_knife1_spd_attack2 = register_cvar("zp_knife_knife1_spd_attack2" , "1.4");
cvar_knife_knife2_jump= register_cvar("zp_knife_knife2_jump", "275.0");
cvar_knife_knife2_spd = register_cvar("zp_knife_knife2_spd", "255.0");
cvar_knife_knife2_dmg = register_cvar("zp_knife_knife2_dmg" , "12.0");
cvar_knife_knife2_knock = register_cvar("zp_knife_knife2_knock" , "7.0");
cvar_knife_knife2_spd_attack2 = register_cvar("zp_knife_knife2_spd_attack2" , "1.4");
cvar_knife_knife3_jump= register_cvar("zp_knife_knife3_jump", "330.0");
cvar_knife_knife3_spd = register_cvar("zp_knife_knife3_spd", "250.0");
cvar_knife_knife3_dmg = register_cvar("zp_knife_knife3_dmg" , "5.0");
cvar_knife_knife3_knock = register_cvar("zp_knife_knife3_knock" , "6.0");
cvar_knife_knife3_spd_attack2 = register_cvar("zp_knife_knife3_spd_attack2" , "1.4");
cvar_knife_vip_jump= register_cvar("zp_knife_vip_jump", "330.0");
cvar_knife_vip_spd = register_cvar("zp_knife_vip_spd", "270.0");
cvar_knife_vip_dmg = register_cvar("zp_knife_vip_dmg" , "5.0");
cvar_knife_vip_knock = register_cvar("zp_knife_vip_knock" , "10.0");
cvar_knife_vip_spd_attack2 = register_cvar("zp_knife_vip_spd_attack2" , "1.4");
cvar_knife_pvip_jump= register_cvar("zp_knife_pvip_jump", "330.0");
cvar_knife_pvip_spd = register_cvar("zp_knife_pvip_spd", "270.0");
cvar_knife_pvip_dmg = register_cvar("zp_knife_pvip_dmg" , "5.0");
cvar_knife_pvip_knock = register_cvar("zp_knife_pvip_knock" , "10.0");
cvar_knife_pvip_spd_attack2 = register_cvar("zp_knife_pvip_spd_attack2" , "1.4");
cvar_knife_admin_jump= register_cvar("zp_knife_admin_jump", "330.0");
cvar_knife_admin_spd= register_cvar("zp_knife_admin_spd", "280.0");
cvar_knife_admin_dmg = register_cvar("zp_knife_admin_dmg" , "15.0");
cvar_knife_admin_knock = register_cvar("zp_knife_admin_knock" , "11.0");
cvar_admin_spd_attack2 = register_cvar("zp_knife_admin_spd_attack2" , "1.4");
cvar_knife_headadmin_jump= register_cvar("zp_knife_headadmin_jump", "330.0");
cvar_knife_headadmin_spd= register_cvar("zp_knife_headadmin_spd", "285.0");
cvar_knife_headadmin_dmg = register_cvar("zp_knife_headadmin_dmg" , "17.0");
cvar_knife_headadmin_knock = register_cvar("zp_knife_headadmin_knock" , "12.0");
cvar_headadmin_spd_attack2 = register_cvar("zp_knife_headadmin_spd_attack2" , "1.4");
cvar_knife_founder_jump= register_cvar("zp_knife_founder_jump", "330.0");
cvar_knife_founder_spd= register_cvar("zp_knife_founder_spd", "290.0");
cvar_knife_founder_dmg = register_cvar("zp_knife_founder_dmg" , "20.0");
cvar_knife_founder_knock = register_cvar("zp_knife_founder_knock" , "13.0");
cvar_founder_spd_attack2 = register_cvar("zp_knife_founder_spd_attack2" , "1.4");
cvar_knife_survivor_jump= register_cvar("zp_knife_survivor_jump", "330.0");
cvar_knife_survivor_spd= register_cvar("zp_knife_survivor_spd", "290.0");
cvar_knife_survivor_dmg = register_cvar("zp_knife_survivor_dmg" , "22.0");
cvar_knife_survivor_knock = register_cvar("zp_knife_survivor_knock" , "14.0");
cvar_survivor_spd_attack2 = register_cvar("zp_knife_survivor_spd_attack2" , "1.4");
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}
public zp_round_started()
{
for(new id = 1; id <=get_maxplayers(); id++)
{
if(zp_get_user_survivor(id))
set_task(1.0, "task_give", id+45634)
}
}
public task_give(id)
{
id -= 45634
if(zp_get_user_survivor(id) && is_user_alive(id))
{
give_survivor(id)
}
}
public zp_round_ended()
{
for(new id = 1; id <=get_maxplayers(); id++)
{
if(zp_get_user_survivor(id))
set_task(1.0, "task_remove", id-45634)
}
}
public task_remove(id)
{
id -= -45634
if(zp_get_user_survivor(id))
{
remove_survivor(id)
}
}
public client_connect(id)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_founder[id] = false
g_knife_survivor[id] = false
g_hasSpeed[id] = false
GetKnife(id)
}
public client_disconnect(id)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_founder[id] = false
g_knife_survivor[id] = false
g_hasSpeed[id] = false
}
public plugin_precache()
{
precache_model(knife1_v_model)
precache_model(knife1_p_model)
precache_model(knife2_v_model)
precache_model(knife2_p_model)
precache_model(knife3_v_model)
precache_model(knife3_p_model)
precache_model(vip_v_model)
precache_model(vip_p_model)
precache_model(pvip_v_model)
precache_model(pvip_p_model)
precache_model(admin_v_model)
precache_model(admin_p_model)
precache_model(headadmin_p_model)
precache_model(headadmin_v_model)
precache_model(founder_p_model)
precache_model(founder_v_model)
precache_model(survivor_p_model)
precache_model(survivor_v_model)
precache_sound(g_sound_knife)
for(new i = 0; i < sizeof knife1_sounds; i++)
precache_sound(knife1_sounds[i])
for(new i = 0; i < sizeof knife2_sounds; i++)
precache_sound(knife2_sounds[i])
for(new i = 0; i < sizeof knife3_sounds; i++)
precache_sound(knife3_sounds[i])
for(new i = 0; i < sizeof vip_sounds; i++)
precache_sound(vip_sounds[i])
for(new i = 0; i < sizeof pvip_sounds; i++)
precache_sound(pvip_sounds[i])
for(new i = 0; i < sizeof admin_sounds; i++)
precache_sound(admin_sounds[i])
for(new i = 0; i < sizeof headadmin_sounds; i++)
precache_sound(headadmin_sounds[i])
for(new i = 0; i < sizeof founder_sounds; i++)
precache_sound(founder_sounds[i])
for(new i = 0; i < sizeof survivor_sounds; i++)
precache_sound(survivor_sounds[i])
g_sprite5 = precache_model("sprites/zp_knife_menu/5.spr")
g_sprite6 = precache_model("sprites/zp_knife_menu/6.spr")
g_sprite7 = precache_model("sprites/zp_knife_menu/7.spr")
}
public event_round_start(id)
{
for (new i; i < MAXPLAYERS + 1; i++)
g_WasShowed[i] = false
}
public knife(id)
{
if(is_user_alive(id) && !zp_get_user_zombie(id) && !zp_get_user_survivor(id))
{
my_menu(id)
}
return PLUGIN_HANDLED
}
public my_menu(id)
{
new menu = menu_create("\ySPK - Zombie Plague \r[CSO] \d | Knife Menu^n", "menu_handler");
menu_additem(menu, "\y Dual Katana \r -|Speed|-", "1", 0);
menu_additem(menu, "\y Strong Gloves \r -|Damage|-", "2", 0);
menu_additem(menu, "\y Axe \r -|Jump|-^n", "3", 0);
if(get_user_flags(id) & VIP)
menu_additem(menu, "\y Hammer \r -|VIP|-", "4", 0);
else
menu_additem(menu, "\w Hammer \r -|VIP|-", "4", 0);
if(get_user_flags(id) & PVIP)
menu_additem(menu, "\y Test Hammer \r -|Premium-VIP|-^n", "5", 0);
else
menu_additem(menu, "\w Test Hammer \r -|Premium-VIP|-^n", "5", 0);
if(get_user_flags(id) & ADMIN1)
menu_additem(menu, "\y Storm \r -|Admin|-", "6", 0);
else
menu_additem(menu, "\w Storm \r -|Admin|-", "6", 0);
if(get_user_flags(id) & HEADADMIN)
menu_additem(menu, "\y Frost \r -|Head-Admin|-^n", "7", 0);
else
menu_additem(menu, "\w Frost \r -|Head-Admin|-^n", "7", 0);
if(get_user_flags(id) & OWNER)
menu_additem(menu, "\y Galaxy Hammer \r -|Founder|-", "8", 0);
else
menu_additem(menu, "\w Galaxy Hammer \r -|Founder|-", "8", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[7], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
give_knife1(id)
menu_destroy(menu);
return PLUGIN_HANDLED
}
case 2:
{
give_knife2(id)
menu_destroy(menu);
return PLUGIN_HANDLED
}
case 3:
{
give_knife3(id)
menu_destroy(menu);
return PLUGIN_HANDLED
}
case 4:
{
give_vip(id)
menu_destroy(menu);
return PLUGIN_HANDLED
}
case 5:
{
give_pvip(id)
menu_destroy(menu);
return PLUGIN_HANDLED
}
case 6:
{
give_admin(id)
menu_destroy(menu);
return PLUGIN_HANDLED
}
case 7:
{
give_headadmin(id)
menu_destroy(menu);
return PLUGIN_HANDLED
}
case 8:
{
give_founder(id)
menu_destroy(menu);
return PLUGIN_HANDLED
}
}
menu_destroy(menu);
return PLUGIN_HANDLED
}
public give_knife1(id)
{
g_knife_knife1[id] = true
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_founder[id] = false
g_knife_survivor[id] = false
g_hasSpeed[id] = true
g_WasShowed[id] = true
SaveKnife(id, 1)
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public give_knife2(id)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = true
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_founder[id] = false
g_knife_survivor[id] = false
g_hasSpeed[id] = true
g_WasShowed[id] = true
SaveKnife(id, 2)
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public give_knife3(id)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = false
g_knife_knife3[id] = true
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_survivor[id] = false
g_knife_founder[id] = false
g_hasSpeed[id] = true
g_WasShowed[id] = true
SaveKnife(id, 3)
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public give_vip(id)
if (get_user_flags(id) & VIP)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = true
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_founder[id] = false
g_knife_survivor[id] = false
g_hasSpeed[id] = true
g_WasShowed[id] = true
SaveKnife(id, 4)
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public give_pvip(id)
if (get_user_flags(id) & PVIP)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = true
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_founder[id] = false
g_knife_survivor[id] = false
g_hasSpeed[id] = true
g_WasShowed[id] = true
SaveKnife(id, 5)
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public give_admin(id)
if (get_user_flags(id) & ADMIN1)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = true
g_knife_headadmin[id] = false
g_knife_founder[id] = false
g_knife_survivor[id] = false
g_hasSpeed[id] = true
g_WasShowed[id] = true
SaveKnife(id, 6)
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public give_headadmin(id)
if (get_user_flags(id) & HEADADMIN)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = true
g_knife_founder[id] = false
g_knife_survivor[id] = false
g_hasSpeed[id] = true
g_WasShowed[id] = true
SaveKnife(id, 7)
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public give_founder(id)
if (get_user_flags(id) & OWNER)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_founder[id] = true
g_knife_survivor[id] = false
g_hasSpeed[id] = true
g_WasShowed[id] = true
SaveKnife(id, 8)
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public give_survivor(id)
{
g_knife_knife1[id] = false
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_founder[id] = false
g_knife_survivor[id] = true
g_hasSpeed[id] = true
g_WasShowed[id] = true
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public remove_survivor(id)
{
g_knife_knife1[id] = true
g_knife_knife2[id] = false
g_knife_knife3[id] = false
g_knife_vip[id] = false
g_knife_pvip[id] = false
g_knife_admin[id] = false
g_knife_headadmin[id] = false
g_knife_founder[id] = false
g_knife_survivor[id] = false
g_hasSpeed[id] = false
g_WasShowed[id] = false
engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public checkWeapon(id)
{
new plrWeapId
plrWeapId = get_user_weapon(id)
if (plrWeapId == CSW_KNIFE && (g_knife_knife1[id] || g_knife_knife2[id] || g_knife_knife3[id] || g_knife_vip[id] || g_knife_pvip[id] || g_knife_admin[id] || g_knife_headadmin[id] || g_knife_founder[id] || g_knife_survivor[id]))
{
checkModel(id)
}
}
public checkModel(id)
{
if (zp_get_user_zombie(id))
return PLUGIN_HANDLED
if (g_knife_knife1[id])
{
set_pev(id, pev_viewmodel2, knife1_v_model)
set_pev(id, pev_weaponmodel2, knife1_p_model)
}
if (g_knife_knife2[id])
{
set_pev(id, pev_viewmodel2, knife2_v_model)
set_pev(id, pev_weaponmodel2, knife2_p_model)
}
if (g_knife_knife3[id])
{
set_pev(id, pev_viewmodel2, knife3_v_model)
set_pev(id, pev_weaponmodel2, knife3_p_model)
}
if (g_knife_vip[id])
{
set_pev(id, pev_viewmodel2, vip_v_model)
set_pev(id, pev_weaponmodel2, vip_p_model)
}
if (g_knife_pvip[id])
{
set_pev(id, pev_viewmodel2, pvip_v_model)
set_pev(id, pev_weaponmodel2, pvip_p_model)
}
if (g_knife_admin[id])
{
set_pev(id, pev_viewmodel2, admin_v_model)
set_pev(id, pev_weaponmodel2, admin_p_model)
}
if (g_knife_headadmin[id])
{
set_pev(id, pev_viewmodel2, headadmin_v_model)
set_pev(id, pev_weaponmodel2, headadmin_p_model)
}
if (g_knife_founder[id])
{
set_pev(id, pev_viewmodel2, founder_v_model)
set_pev(id, pev_weaponmodel2, founder_p_model)
}
if (g_knife_survivor[id])
{
set_pev(id, pev_viewmodel2, survivor_v_model)
set_pev(id, pev_weaponmodel2, survivor_p_model)
}
return PLUGIN_HANDLED
}
public CEntity__EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
{
if (!is_user_connected(id))
return HAM_IGNORED
if (zp_get_user_zombie(id))
return HAM_IGNORED
if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
{
if (sample[14] == 'd')
{
if(g_knife_knife1[id])
emit_sound(id, channel, knife1_sounds[0], volume, attn, flags, pitch)
if(g_knife_knife2[id])
emit_sound(id, channel, knife2_sounds[0], volume, attn, flags, pitch)
if(g_knife_knife3[id])
emit_sound(id, channel, knife3_sounds[0], volume, attn, flags, pitch)
if(g_knife_vip[id])
emit_sound(id, channel, vip_sounds[0], volume, attn, flags, pitch)
if(g_knife_pvip[id])
emit_sound(id, channel, pvip_sounds[0], volume, attn, flags, pitch)
if(g_knife_admin[id])
emit_sound(id, channel, admin_sounds[0], volume, attn, flags, pitch)
if(g_knife_headadmin[id])
emit_sound(id, channel, headadmin_sounds[0], volume, attn, flags, pitch)
if(g_knife_founder[id])
emit_sound(id, channel, founder_sounds[0], volume, attn, flags, pitch)
if(g_knife_survivor[id])
emit_sound(id, channel, survivor_sounds[0], volume, attn, flags, pitch)
}
else if (sample[14] == 'h')
{
if (sample[17] == 'w')
{
if(g_knife_knife1[id])
emit_sound(id, channel, knife1_sounds[3], volume, attn, flags, pitch)
if(g_knife_knife2[id])
emit_sound(id, channel, knife2_sounds[3], volume, attn, flags, pitch)
if(g_knife_knife3[id])
emit_sound(id, channel, knife3_sounds[3], volume, attn, flags, pitch)
if(g_knife_vip[id] )
emit_sound(id, channel, vip_sounds[3], volume, attn, flags, pitch)
if(g_knife_pvip[id] )
emit_sound(id, channel, pvip_sounds[3], volume, attn, flags, pitch)
if(g_knife_admin[id])
emit_sound(id, channel, admin_sounds[3], volume, attn, flags, pitch)
if(g_knife_headadmin[id])
emit_sound(id, channel, headadmin_sounds[3], volume, attn, flags, pitch)
if(g_knife_founder[id])
emit_sound(id, channel, founder_sounds[3], volume, attn, flags, pitch)
if(g_knife_survivor[id])
emit_sound(id, channel, survivor_sounds[3], volume, attn, flags, pitch)
}
else
{
if(g_knife_knife1[id])
emit_sound(id, channel, knife1_sounds[random_num(1,2)], volume, attn, flags, pitch)
if(g_knife_knife2[id])
emit_sound(id, channel, knife2_sounds[random_num(1,2)], volume, attn, flags, pitch)
if(g_knife_knife3[id])
emit_sound(id, channel, knife3_sounds[random_num(1,2)], volume, attn, flags, pitch)
if(g_knife_vip[id])
emit_sound(id, channel, vip_sounds[random_num(1,2)], volume, attn, flags, pitch)
if(g_knife_pvip[id])
emit_sound(id, channel, pvip_sounds[random_num(1,2)], volume, attn, flags, pitch)
if(g_knife_admin[id])
emit_sound(id, channel, admin_sounds[random_num(1,2)], volume, attn, flags, pitch)
if(g_knife_headadmin[id])
emit_sound(id, channel, headadmin_sounds[random_num(1,2)], volume, attn, flags, pitch)
if(g_knife_founder[id])
emit_sound(id, channel, founder_sounds[random_num(1,2)], volume, attn, flags, pitch)
if(g_knife_survivor[id])
emit_sound(id, channel, survivor_sounds[random_num(1,2)], volume, attn, flags, pitch)
}
}
else
{
if (sample[15] == 'l')
{
if(g_knife_knife1[id])
emit_sound(id, channel, knife1_sounds[4], volume, attn, flags, pitch)
if(g_knife_knife2[id])
emit_sound(id, channel, knife2_sounds[4], volume, attn, flags, pitch)
if(g_knife_knife3[id])
emit_sound(id, channel, knife3_sounds[4], volume, attn, flags, pitch)
if(g_knife_vip[id])
emit_sound(id, channel, vip_sounds[4], volume, attn, flags, pitch)
if(g_knife_pvip[id])
emit_sound(id, channel, pvip_sounds[4], volume, attn, flags, pitch)
if(g_knife_admin[id])
emit_sound(id, channel, admin_sounds[4], volume, attn, flags, pitch)
if(g_knife_headadmin[id])
emit_sound(id, channel, headadmin_sounds[4], volume, attn, flags, pitch)
if(g_knife_founder[id])
emit_sound(id, channel, founder_sounds[4], volume, attn, flags, pitch)
if(g_knife_survivor[id])
emit_sound(id, channel, survivor_sounds[4], volume, attn, flags, pitch)
}
else
{
if(g_knife_knife1[id])
emit_sound(id, channel, knife1_sounds[5], volume, attn, flags, pitch)
if(g_knife_knife2[id] )
emit_sound(id, channel, knife2_sounds[5], volume, attn, flags, pitch)
if(g_knife_knife3[id] )
emit_sound(id, channel, knife3_sounds[5], volume, attn, flags, pitch)
if(g_knife_vip[id])
emit_sound(id, channel, vip_sounds[5], volume, attn, flags, pitch)
if(g_knife_pvip[id])
emit_sound(id, channel, pvip_sounds[5], volume, attn, flags, pitch)
if(g_knife_admin[id])
emit_sound(id, channel, admin_sounds[5], volume, attn, flags, pitch)
if(g_knife_headadmin[id])
emit_sound(id, channel, headadmin_sounds[5], volume, attn, flags, pitch)
if(g_knife_founder[id])
emit_sound(id, channel, founder_sounds[5], volume, attn, flags, pitch)
if(g_knife_survivor[id])
emit_sound(id, channel, survivor_sounds[5], volume, attn, flags, pitch)
}
}
return HAM_SUPERCEDE
}
return HAM_IGNORED
}
public message_DeathMsg(msg_id, msg_dest, id)
{
static szTruncatedWeapon[33], iattacker, ivictim
get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
iattacker = get_msg_arg_int(1)
ivictim = get_msg_arg_int(2)
if(!is_user_connected(iattacker) || iattacker == ivictim)
return PLUGIN_CONTINUE
if (!zp_get_user_zombie(iattacker))
{
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
{
if(g_knife_knife1[iattacker])
set_msg_arg_string(4, "Dual Katana")
}
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
{
if(g_knife_knife2[iattacker])
set_msg_arg_string(4, "Strong Gloves")
}
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
{
if(g_knife_knife3[iattacker])
set_msg_arg_string(4, "Axe")
}
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
{
if(g_knife_vip[iattacker])
set_msg_arg_string(4, "Hammer")
}
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
{
if(g_knife_pvip[iattacker])
set_msg_arg_string(4, "Test Hammer")
}
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
{
if(g_knife_admin[iattacker])
set_msg_arg_string(4, "Storm Knife")
}
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
{
if(g_knife_headadmin[iattacker])
set_msg_arg_string(4, "Frost Knife")
}
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
{
if(g_knife_founder[iattacker])
set_msg_arg_string(4, "Galaxy Hammer")
}
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
{
if(g_knife_survivor[iattacker])
set_msg_arg_string(4, "Survivor Knife")
}
}
return PLUGIN_CONTINUE
}
stock print_col_chat(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4"); // Green Color
replace_all(msg, 190, "!y", "^1"); // Default Color
replace_all(msg, 190, "!t", "^3"); // Team Color
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, SayText, _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
public fw_PlayerPreThink(id)
{
if(!is_user_alive(id) || zp_get_user_zombie(id))
return FMRES_IGNORED
new temp[2], weapon = get_user_weapon(id, temp[0], temp[1])
if (weapon == CSW_KNIFE && g_knife_knife1[id])
{
g_hasSpeed[id] = true
set_pev(id, pev_maxspeed, get_pcvar_float(cvar_knife_knife1_spd))
}
if(weapon == CSW_KNIFE && g_knife_knife1[id])
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if (!(flags & FL_ONGROUND))
return FMRES_IGNORED
if (flags & FL_WATERJUMP)
return FMRES_IGNORED
if (waterlvl > 1)
return FMRES_IGNORED
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_knife_knife1_jump)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 7)
}
if (weapon == CSW_KNIFE && g_knife_knife2[id])
{
g_hasSpeed[id] = true
set_pev(id, pev_maxspeed, get_pcvar_float(cvar_knife_knife2_spd))
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if (!(flags & FL_ONGROUND))
return FMRES_IGNORED
if (flags & FL_WATERJUMP)
return FMRES_IGNORED
if (waterlvl > 1)
return FMRES_IGNORED
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_knife_knife2_jump)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 7)
}
}
if (weapon == CSW_KNIFE && g_knife_knife3[id])
{
g_hasSpeed[id] = true
set_pev(id, pev_maxspeed, get_pcvar_float(cvar_knife_knife3_spd))
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if (!(flags & FL_ONGROUND))
return FMRES_IGNORED
if (flags & FL_WATERJUMP)
return FMRES_IGNORED
if (waterlvl > 1)
return FMRES_IGNORED
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_knife_knife3_jump)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 7)
}
}
if (weapon == CSW_KNIFE && g_knife_vip[id])
{
g_hasSpeed[id] = true
set_pev(id, pev_maxspeed, get_pcvar_float(cvar_knife_vip_spd))
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if (!(flags & FL_ONGROUND))
return FMRES_IGNORED
if (flags & FL_WATERJUMP)
return FMRES_IGNORED
if (waterlvl > 1)
return FMRES_IGNORED
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_knife_vip_jump)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 7)
}
}
if (weapon == CSW_KNIFE && g_knife_pvip[id])
{
g_hasSpeed[id] = true
set_pev(id, pev_maxspeed, get_pcvar_float(cvar_knife_pvip_spd))
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if (!(flags & FL_ONGROUND))
return FMRES_IGNORED
if (flags & FL_WATERJUMP)
return FMRES_IGNORED
if (waterlvl > 1)
return FMRES_IGNORED
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_knife_pvip_jump)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 7)
}
}
if (weapon == CSW_KNIFE && g_knife_admin[id])
{
g_hasSpeed[id] = true
set_pev(id, pev_maxspeed, get_pcvar_float(cvar_knife_admin_spd))
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if (!(flags & FL_ONGROUND))
return FMRES_IGNORED
if (flags & FL_WATERJUMP)
return FMRES_IGNORED
if (waterlvl > 1)
return FMRES_IGNORED
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_knife_admin_jump)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 7)
}
}
if (weapon == CSW_KNIFE && g_knife_headadmin[id])
{
g_hasSpeed[id] = true
set_pev(id, pev_maxspeed, get_pcvar_float(cvar_knife_headadmin_spd))
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if (!(flags & FL_ONGROUND))
return FMRES_IGNORED
if (flags & FL_WATERJUMP)
return FMRES_IGNORED
if (waterlvl > 1)
return FMRES_IGNORED
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_knife_headadmin_jump)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 7)
}
}
if (weapon == CSW_KNIFE && g_knife_founder[id])
{
g_hasSpeed[id] = true
set_pev(id, pev_maxspeed, get_pcvar_float(cvar_knife_founder_spd))
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if (!(flags & FL_ONGROUND))
return FMRES_IGNORED
if (flags & FL_WATERJUMP)
return FMRES_IGNORED
if (waterlvl > 1)
return FMRES_IGNORED
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_knife_founder_jump)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 7)
}
}
if (weapon == CSW_KNIFE && g_knife_survivor[id])
{
g_hasSpeed[id] = true
set_pev(id, pev_maxspeed, get_pcvar_float(cvar_knife_survivor_spd))
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if (!(flags & FL_ONGROUND))
return FMRES_IGNORED
if (flags & FL_WATERJUMP)
return FMRES_IGNORED
if (waterlvl > 1)
return FMRES_IGNORED
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_knife_survivor_jump)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 7)
}
}
return FMRES_IGNORED
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if(!is_user_connected(attacker))
return HAM_IGNORED
if(zp_get_user_zombie(attacker))
return HAM_IGNORED
new weapon = get_user_weapon(attacker)
if (weapon == CSW_KNIFE && g_knife_knife1[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_knife_knife1_dmg))
}
if (weapon == CSW_KNIFE && g_knife_knife2[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_knife_knife2_dmg))
}
if (weapon == CSW_KNIFE && g_knife_knife3[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_knife_knife3_dmg))
}
if (weapon == CSW_KNIFE && g_knife_vip[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_knife_vip_dmg))
}
if (weapon == CSW_KNIFE && g_knife_pvip[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_knife_pvip_dmg))
}
if (weapon == CSW_KNIFE && g_knife_admin[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_knife_admin_dmg))
}
if (weapon == CSW_KNIFE && g_knife_headadmin[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_knife_headadmin_dmg))
}
if (weapon == CSW_KNIFE && g_knife_founder[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_knife_founder_dmg))
}
if (weapon == CSW_KNIFE && g_knife_survivor[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_knife_survivor_dmg))
}
if (weapon == CSW_KNIFE && g_knife_admin[attacker])
{
if(!task_exists(victim + 100))
{
g_burning5[victim] += 8
set_task(0.1, "Burning5", victim + 100, _, _, "b")
}
}
if (weapon == CSW_KNIFE && g_knife_headadmin[attacker])
{
if(!task_exists(victim + 100))
{
g_burning6[victim] += 9
set_task(0.1, "Burning6", victim + 100, _, _, "b")
}
}
if (weapon == CSW_KNIFE && g_knife_founder[attacker])
{
if(!task_exists(victim + 100))
{
g_burning7[victim] += 11
set_task(0.1, "Burning7", victim + 100, _, _, "b")
}
}
return HAM_IGNORED
}
public fw_Knife_SecondaryAttack_Post(knife)
{
static id
id = get_pdata_cbase(knife, m_pPlayer, 4)
if(zp_get_user_zombie(id))
return HAM_IGNORED
if(is_user_connected(id) && g_knife_knife1[id])
{
static Float:flRate
flRate = get_pcvar_float(cvar_knife_knife1_spd_attack2)
set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
if(is_user_connected(id) && g_knife_knife2[id])
{
static Float:flRate
flRate = get_pcvar_float(cvar_knife_knife2_spd_attack2)
set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
if(is_user_connected(id) && g_knife_knife3[id])
{
static Float:flRate
flRate = get_pcvar_float(cvar_knife_knife3_spd_attack2)
set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
if(is_user_connected(id) && g_knife_vip[id])
{
static Float:flRate
flRate = get_pcvar_float(cvar_knife_vip_spd_attack2)
set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
if(is_user_connected(id) && g_knife_pvip[id])
{
static Float:flRate
flRate = get_pcvar_float(cvar_knife_pvip_spd_attack2)
set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
if(is_user_connected(id) && g_knife_admin[id])
{
static Float:flRate
flRate = get_pcvar_float(cvar_admin_spd_attack2)
set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
if(is_user_connected(id) && g_knife_headadmin[id])
{
static Float:flRate
flRate = get_pcvar_float(cvar_headadmin_spd_attack2)
set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
if(is_user_connected(id) && g_knife_founder[id])
{
static Float:flRate
flRate = get_pcvar_float(cvar_founder_spd_attack2)
set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
if(is_user_connected(id) && g_knife_survivor[id])
{
static Float:flRate
flRate = get_pcvar_float(cvar_survivor_spd_attack2)
set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
return HAM_IGNORED
}
public Burning5(taskid)
{
static origin[3], flags
get_user_origin(ID_FBURN5, origin)
flags = pev(ID_FBURN5, pev_flags)
if ((flags & FL_INWATER) || g_burning5[ID_FBURN5] < 1 || !is_user_alive(ID_FBURN5))
{
remove_task(taskid)
return
}
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SPRITE)
write_coord(origin[0]+random_num(-5, 5))
write_coord(origin[1]+random_num(-5, 5))
write_coord(origin[2]+random_num(-10, 10))
write_short(g_sprite5)
write_byte(2)
write_byte(200)
message_end()
g_burning5[ID_FBURN5]--
}
public Burning6(taskid)
{
static origin[3], flags
get_user_origin(ID_FBURN6, origin)
flags = pev(ID_FBURN6, pev_flags)
if ((flags & FL_INWATER) || g_burning6[ID_FBURN6] < 1 || !is_user_alive(ID_FBURN6))
{
remove_task(taskid)
return
}
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SPRITE)
write_coord(origin[0]+random_num(-5, 5))
write_coord(origin[1]+random_num(-5, 5))
write_coord(origin[2]+random_num(-10, 10))
write_short(g_sprite6)
write_byte(2)
write_byte(200)
message_end()
g_burning6[ID_FBURN6]--
}
public Burning7(taskid)
{
static origin[3], flags
get_user_origin(ID_FBURN7, origin)
flags = pev(ID_FBURN7, pev_flags)
if ((flags & FL_INWATER) || g_burning7[ID_FBURN7] < 1 || !is_user_alive(ID_FBURN7))
{
remove_task(taskid)
return
}
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SPRITE)
write_coord(origin[0]+random_num(-5, 5))
write_coord(origin[1]+random_num(-5, 5))
write_coord(origin[2]+random_num(-10, 10))
write_short(g_sprite7)
write_byte(2)
write_byte(200)
message_end()
g_burning7[ID_FBURN7]--
}
public event_Damage(id)
{
new weapon , attacker = get_user_attacker(id , weapon);
if(!is_user_alive(attacker))
return PLUGIN_CONTINUE;
if(weapon == CSW_KNIFE && g_knife_knife1[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(id, oldvelo);
create_velocity_vector(id , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(id , vec);
}
if(weapon == CSW_KNIFE && g_knife_knife2[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(id, oldvelo);
create_velocity_vector(id , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(id , vec);
}
if(weapon == CSW_KNIFE && g_knife_knife3[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(id, oldvelo);
create_velocity_vector(id , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(id , vec);
}
if(weapon == CSW_KNIFE && g_knife_vip[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(id, oldvelo);
create_velocity_vector(id , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(id , vec);
}
if(weapon == CSW_KNIFE && g_knife_pvip[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(id, oldvelo);
create_velocity_vector(id , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(id , vec);
}
if(weapon == CSW_KNIFE && g_knife_admin[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(id, oldvelo);
create_velocity_vector(id , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(id , vec);
}
if(weapon == CSW_KNIFE && g_knife_headadmin[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(id, oldvelo);
create_velocity_vector(id , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(id , vec);
}
if(weapon == CSW_KNIFE && g_knife_founder[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(id, oldvelo);
create_velocity_vector(id , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(id , vec);
}
if(weapon == CSW_KNIFE && g_knife_survivor[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(id, oldvelo);
create_velocity_vector(id , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(id , vec);
}
return PLUGIN_CONTINUE;
}
stock create_velocity_vector(victim,attacker,Float:velocity[3])
{
if(!zp_get_user_zombie(victim) || !is_user_alive(attacker))
return 0;
new Float:vicorigin[3];
new Float:attorigin[3];
entity_get_vector(victim , EV_VEC_origin , vicorigin);
entity_get_vector(attacker , EV_VEC_origin , attorigin);
new Float:origin2[3]
origin2[0] = vicorigin[0] - attorigin[0];
origin2[1] = vicorigin[1] - attorigin[1];
new Float:largestnum = 0.0;
if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0]);
if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1]);
origin2[0] /= largestnum;
origin2[1] /= largestnum;
if (g_knife_knife1[attacker])
{
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_knife1_knock) * 3000) ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_knife1_knock) * 3000) ) / get_entity_distance(victim , attacker);
}
if (g_knife_knife2[attacker])
{
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_knife2_knock) * 3000) ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_knife2_knock) * 3000) ) / get_entity_distance(victim , attacker);
}
if (g_knife_knife3[attacker])
{
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_knife3_knock) * 3000) ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_knife3_knock) * 3000) ) / get_entity_distance(victim , attacker);
}
if (g_knife_vip[attacker])
{
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_vip_knock) * 3000) ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_vip_knock) * 3000) ) / get_entity_distance(victim , attacker);
}
if (g_knife_pvip[attacker])
{
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_pvip_knock) * 3000) ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_pvip_knock) * 3000) ) / get_entity_distance(victim , attacker);
}
if (g_knife_admin[attacker])
{
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_admin_knock) * 3000) ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_admin_knock) * 3000) ) / get_entity_distance(victim , attacker);
}
if (g_knife_headadmin[attacker])
{
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_headadmin_knock) * 3000) ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_headadmin_knock) * 3000) ) / get_entity_distance(victim , attacker);
}
if (g_knife_founder[attacker])
{
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_founder_knock) * 3000) ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_founder_knock) * 3000) ) / get_entity_distance(victim , attacker);
}
if (g_knife_survivor[attacker])
{
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_survivor_knock) * 3000) ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_survivor_knock) * 3000) ) / get_entity_distance(victim , attacker);
}
if(velocity[0] <= 20.0 || velocity[1] <= 20.0)
velocity[2] = random_float(200.0 , 275.0);
return 1;
}
public client_putinserver(id)
{
switch(random_num(0, 0))
{
case 0:
{
g_knife_knife1[id] = true
g_hasSpeed[id] = true
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
I added your code and what you said , but when i try compile it gives me a error on : plugin_init() is already defined at line 350
|
|