Junior Member
10-21-2018
, 11:28
Re: Plugin Bug
#7
Quote:
Originally Posted by
PutoMike
I've solved this BUG, now I wanted to know how I can type choose only 1 knife per round, when I choose the knife the menu does not open anymore only in the next round
New Plugin
Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta_util>
#include <fakemeta>
#include <cstrike>
#include <engine>
#include <fun>
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#define MAX_PLAYERS 32
#endif
#pragma dynamic 32768
#define PLUGIN "Furien "
#define XTRA_OFS_PLAYER 5
#define XTRA_OFS_PLAYER 5
#define EmitSnd(%1,%2) emit_sound(%1, CHAN_ITEM, %2, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
#define nvault_clear(%1) nvault_prune(%1, 0, get_systime() + 1)
#define isTeam(%0) (CS_TEAM_T <= cs_get_user_team(%0) <= CS_TEAM_CT)
#define TOTAL_KNIVES 8
#define TOTAL_ITEMS 7
#define IsHeadShot(%1) (get_pdata_int(%1,75) == HIT_HEAD)
#define ADMIN_VIP ADMIN_LEVEL_H
#define ADMIN_SVIP ADMIN_LEVEL_G
#define PISTOL_WEAPONS_BIT (1<<CSW_GLOCK18|1<<CSW_USP|1<<CSW_DEAGLE|1<<CSW_P228|1<<CSW_FIVESEVEN|1<<CSW_ELITE)
#define SHOTGUN_WEAPONS_BIT (1<<CSW_M3|1<<CSW_XM1014)
#define SUBMACHINE_WEAPONS_BIT (1<<CSW_TMP|1<<CSW_MAC10|1<<CSW_MP5NAVY|1<<CSW_UMP45|1<<CSW_P90)
#define RIFLE_WEAPONS_BIT (1<<CSW_FAMAS|1<<CSW_GALIL|1<<CSW_AK47|1<<CSW_SCOUT|1<<CSW_M4A1|1<<CSW_SG550|1<<CSW_SG552|1<<CSW_AUG|1<<CSW_AWP|1<<CSW_G3SG1)
#define MACHINE_WEAPONS_BIT (1<<CSW_M249)
#define PRIMARY_WEAPONS_BIT (SHOTGUN_WEAPONS_BIT|SUBMACHINE_WEAPONS_BIT|RIFLE_WEAPONS_BIT|MACHINE_WEAPONS_BIT)
#define SECONDARY_WEAPONS_BIT (PISTOL_WEAPONS_BIT)
#define IsPrimaryWeapon(%1) ((1<<%1) & PRIMARY_WEAPONS_BIT)
#define IsSecondaryWeapon(%1) ((1<<%1) & PISTOL_WEAPONS_BIT)
#define MODELSET_TASK 100
#define MODELCHANGE_DELAY 0.6
const FIRST_PLAYER = 1
const USE_STOPPED = 0
const PDATA_SAFE = 2
const OFFSET_LINUX_WEAPONS = 4
const SUPERKNIFE_BOUGHT_MAX = 4
const PLAYER_JUMP = 6
const ACT_HOP = 7
const m_pPlayer = 41
const m_Activity = 73
const m_IdealActivity = 74
const m_flNextAttack = 83
const m_flNextPrimaryAttack = 46
const m_afButtonPressed = 246
const m_pActiveItem = 373
const TASK_C4 = 200232
const Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame
const DMG_NADE = (1<<24)
new RoundsCount = 0
new Float:g_roundstarttime
new msg_StatusIcon, msg_SayText, msg_TextMsg, msg_ClCorpse, msg_HostagePos, msg_HostageK, msg_SendAudio, msg_Money,msg_ScreenFade
new const ItemBoughtSound[] = "items/gunpickup2.wav"
new const g_szClassname[] = "invisibility"
new const g_szFolder[] = "FurienSettings"
enum _:g_szKnives
{
KNIFE_DEFAULT,
KNIFE_COMBAT,
KNIFE_AXE,
KNIFE_SILVER,
KNIFE_HUNTER,
KNIFE_SPIRIT,
KNIFE_EPIC,
KNIFE_CROWBAR,
KNIFE_DEAD
}
new g_szKnife[MAX_PLAYERS+1][g_szKnives]
enum AFPWSettings
{
szPWeaponName[MAX_PLAYERS],
iPWeaponCost,
szPWeaponIndex[17],
szPWeaponType,
iPWeaponBpAmmo
}
new const AntiFurienPWeapons[][AFPWSettings] =
{
{ "UMP", 0, "weapon_ump45", CSW_UMP45, 250 },
{ "M3", 0, "weapon_m3", CSW_M3, 250 },
{ "AWP", 0, "weapon_awp", CSW_AWP,250 },
{ "MP5", 0, "weapon_mp5navy", CSW_MP5NAVY,250 },
{ "AK47", 0, "weapon_ak47", CSW_AK47, 250 },
{ "M4A1", 0, "weapon_m4a1", CSW_M4A1, 250 },
{ "M249", 0, "weapon_m249", CSW_M249, 250 },
{ "\y[ExtraVIP] \wFAMAS", 0, "weapon_famas", CSW_FAMAS, 250 }
}
enum AFSWSettings
{
szSWeaponName[MAX_PLAYERS],
iSWeaponCost,
szSWeaponIndex[17],
szSWeaponType,
iSWeaponBpAmmo
}
new const AntiFurienSWeapons[][AFSWSettings] =
{
{ "Glock", 0, "weapon_glock18", CSW_GLOCK18, 250 },
{ "USP pistol", 0, "weapon_usp", CSW_USP, 250 },
{ "FiveseveN", 0, "weapon_fiveseven", CSW_FIVESEVEN, 250 },
{ "Desert Eagle", 0, "weapon_deagle", CSW_DEAGLE, 250 },
{ "Elite Duals", 0, "weapon_elite", CSW_ELITE, 250 }
}
enum
{
DeathMsg_KillerID = 1,
DeathMsg_VictimID
}
enum WeapSett
{
V_KNIFE_T,
V_KNIFE_CT,
V_M4A1,
V_AK47,
V_AWP,
V_FAMAS,
V_M249,
V_MP5,
V_UMP45,
V_M3,
V_C4,
V_DEAGLE,
V_USP,
V_GLOCK18,
V_ELITE,
V_FIVESEVEN,
V_HEGRENADE_V,
V_HEGRENADE_P,
V_HEGRENADE_W,
V_FLASHBANG_V,
V_FLASHBANG_P,
V_FLASHBANG_W,
V_SMOKEGRENADE_V,
V_SMOKEGRENADE_P,
V_SMOKEGRENADE_W
}
enum KillSett
{
MONEY_MAX,
MONEY_T_EVIP_KILL,
MONEY_CT_EVIP_KILL,
MONEY_T_VIP_KILL,
MONEY_CT_VIP_KILL,
MONEY_T_NORMAL_KILL,
MONEY_CT_NORMAL_KILL,
}
enum PlayerModelSett
{
FurienModel,
AntiModel
}
new PlayersSkins[PlayerModelSett][32]
new WeaponSkins[WeapSett][84]
new const Knives[][] =
{
"models/pFa/Facas/p_knife_axe.mdl",
"models/pFa/Facas/v_knife_axe.mdl",
"models/pFa/Facas/p_knife_comba.mdl",
"models/pFa/Facas/v_knife_comba.mdl",
"models/pFa/Facas/p_knife_silver.mdl",
"models/pFa/Facas/v_knife_silver.mdl",
"models/pFa/Facas/p_knife_hunter.mdl",
"models/pFa/Facas/v_knife_hunter.mdl",
"models/pFa/Facas/v_knife_spirit.mdl",
"models/pFa/Facas/p_knife_epic.mdl",
"models/pFa/Facas/v_knife_epic.mdl",
"models/pFa/Facas/p_knife_aqr.mdl",
"models/pFa/Facas/v_knife_aqr.mdl",
"models/pFa/Facas/p_knife_dead.mdl",
"models/pFa/Facas/v_knife_dead.mdl"
}
new const oldknife_sounds[][] =
{
"weapons/knife_deploy1.wav",
"weapons/knife_hit1.wav",
"weapons/knife_hit2.wav",
"weapons/knife_hit3.wav",
"weapons/knife_hit4.wav",
"weapons/knife_hitwall1.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
}
new const oldknife_supersounds[][] =
{
"weapons/knife_deploy1.wav",
"weapons/knife_hitwall1.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
}
new const SpiritSounds[][] =
{
"pFa/Facas/knife_deploy1_black.wav",
"pFa/Facas/knife_hit1_black.wav",
"pFa/Facas/knife_hit2_black.wav",
"pFa/Facas/knife_hit1_black.wav",
"pFa/Facas/knife_hit2_black.wav",
"pFa/Facas/knife_hitwall1_black.wav",
"pFa/Facas/knife_slash_black.wav",
"pFa/Facas/knife_slash_black.wav",
"pFa/Facas/knife_stab_black.wav"
}
new const EpicSounds[][] =
{
"pFa/Facas/knife_deploy1_combat.wav",
"pFa/Facas/knife_hit1_combat.wav",
"pFa/Facas/knife_hit2_combat.wav",
"pFa/Facas/knife_hit3_combat.wav",
"pFa/Facas/knife_hit4_combat.wav",
"pFa/Facas/knife_hitwall1_combat.wav",
"pFa/Facas/knife_slash_combat.wav",
"pFa/Facas/knife_slash2_combat.wav",
"pFa/Facas/knife_stab_combat.wav"
}
new const DeadSounds[][] =
{
"pFa/Facas/knife_deploy1_hunter.wav",
"pFa/Facas/knife_hit1_black.wav",
"pFa/Facas/knife_hit2_black.wav",
"pFa/Facas/knife_hit1_black.wav",
"pFa/Facas/knife_hit2_black.wav",
"pFa/Facas/knife_hitwall1_axe.wav",
"pFa/Facas/knife_slash1_hunter.wav",
"pFa/Facas/knife_slash2_hunter.wav",
"pFa/Facas/knife_stab_black.wav"
}
new const AxeSounds[][] =
{
"pFa/Facas/knife_deploy1_axe.wav",
"pFa/Facas/knife_hit1_axe.wav",
"pFa/Facas/knife_hit2_axe.wav",
"pFa/Facas/knife_hit1_axe.wav",
"pFa/Facas/knife_hit2_axe.wav",
"pFa/Facas/knife_hitwall1_axe.wav",
"pFa/Facas/knife_slash_axe.wav",
"pFa/Facas/knife_slash_axe.wav",
"pFa/Facas/knife_stab_axe.wav"
}
new const SilverSounds[][] =
{
"pFa/Facas/knife_deploy1_combat.wav",
"pFa/Facas/knife_hit1_combat.wav",
"pFa/Facas/knife_hit2_combat.wav",
"pFa/Facas/knife_hit3_combat.wav",
"pFa/Facas/knife_hit4_combat.wav",
"pFa/Facas/knife_hitwall1_hunter.wav",
"pFa/Facas/knife_slash_combat.wav",
"pFa/Facas/knife_slash2_combat.wav",
"pFa/Facas/knife_stab_combat.wav"
}
new const CombaSounds[][] =
{
"pFa/Facas/knife_deploy1_combat.wav",
"pFa/Facas/knife_hit1_combat.wav",
"pFa/Facas/knife_hit2_combat.wav",
"pFa/Facas/knife_hit3_combat.wav",
"pFa/Facas/knife_hit4_combat.wav",
"pFa/Facas/knife_hitwall1_combat.wav",
"pFa/Facas/knife_slash_combat.wav",
"pFa/Facas/knife_slash2_combat.wav",
"pFa/Facas/knife_stab_combat.wav"
}
new const HunterSounds[][] =
{
"pFa/Facas/knife_deploy1_hunter.wav",
"pFa/Facas/knife_hit1_hunter.wav",
"pFa/Facas/knife_hit1_hunter.wav",
"pFa/Facas/knife_hit1_hunter.wav",
"pFa/Facas/knife_hit1_hunter.wav",
"pFa/Facas/knife_hitwall1_hunter.wav",
"pFa/Facas/knife_slash1_hunter.wav",
"pFa/Facas/knife_slash2_hunter.wav",
"pFa/Facas/knife_stab_combat.wav"
}
new const SuperSounds[][] =
{
"pFa/Facas/knife_deploy1_hunter.wav",
"pFa/Facas/knife_hitwall1_hunter.wav",
"pFa/Facas/knife_slash1_hunter.wav",
"pFa/Facas/knife_slash2_hunter.wav",
"pFa/Facas/knife_stab_super.wav"
}
new const CrowSounds[][] =
{
"pFa/Facas/knife_deploy1_axe.wav",
"pFa/Facas/knife_hit1_crow.wav",
"pFa/Facas/knife_hit2_crow.wav",
"pFa/Facas/knife_hit1_crow.wav",
"pFa/Facas/knife_hit2_crow.wav",
"pFa/Facas/knife_hitwall_crow.wav",
"pFa/Facas/knife_slash_crow.wav",
"pFa/Facas/knife_slash_crow.wav",
"pFa/Facas/knife_stab_crow.wav"
}
new const g_szTer_Sounds[][] =
{
"sound/pFa/Rondas/twin1.mp3",
"sound/pFa/Rondas/twin2.mp3",
"sound/pFa/Rondas/twin3.mp3",
"sound/pFa/Rondas/twin4.mp3",
"sound/pFa/Rondas/twin5.mp3",
"sound/pFa/Rondas/twin6.mp3",
"sound/pFa/Rondas/twin7.mp3",
"sound/pFa/Rondas/twin8.mp3",
"sound/pFa/Rondas/twin9.mp3"
}
new const g_szCt_Sounds[][] =
{
"sound/pFa/Rondas/ctwin1.mp3",
"sound/pFa/Rondas/ctwin2.mp3",
"sound/pFa/Rondas/ctwin3.mp3",
"sound/pFa/Rondas/ctwin4.mp3",
"sound/pFa/Rondas/ctwin5.mp3",
"sound/pFa/Rondas/ctwin6.mp3",
"sound/pFa/Rondas/ctwin7.mp3",
"sound/pFa/Rondas/ctwin8.mp3",
"sound/pFa/Rondas/ctwin9.mp3"
}
new const ModelsT[2][] =
{
"terror",
"guerilla"
}
new Float:g_models_targettime
new bool:RoundEnd
new const WEAPONENTNAMES[][] =
{
"", "weapon_p228", "","weapon_hegrenade", "weapon_c4",
"weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1","weapon_tmp", "weapon_flashbang", "weapon_deagle",
"weapon_ak47", "weapon_knife"
}
new const g_MusicList[][] =
{
{"sound/pFa/Musicas/music1.mp3"},
{"sound/pFa/Musicas/music2.mp3"},
{"sound/pFa/Musicas/music3.mp3"}
}
new bool:g_bRoundEnd, bool:g_bIsTrue, g_iMaxPlayers
enum HudSyncSettings
{
hudSpecialItems,
hudCTWin,
hudTWin,
hudC4Delay,
hudAdv
}
enum MenuSettings
{
MenuPrimary,
MenuSecondary,
MenuMessages,
MenuAdminCmds
}
enum pCvarsSettings
{
pCvarGameDescription
}
enum ConfigSettingsMenu
{
bool:g_bFMenu,
bool:g_bEffect,
bool:g_b3D,
bool:g_bSkins,
bool:g_bStartSound,
}
enum UserFurienBases
{
bool:g_bGravity,
bool:g_bSpeed,
bool:g_bWeapons
}
enum PlayerModelDatas
{
g_HasCustomModel,
g_Human,
g_PlayerModel[MAX_PLAYERS]
}
new pCvars[pCvarsSettings]
new HudSync[HudSyncSettings]
new Menus[MenuSettings]
new PlayerModelData[MAX_PLAYERS+1][PlayerModelDatas]
new ConfigSettingMenu[MAX_PLAYERS+1][ConfigSettingsMenu]
new UserFurienBase[MAX_PLAYERS+1][UserFurienBases]
new g_HoldingC4, g_RoundStartTime
new grab[MAX_PLAYERS+1]
new bool:g_Grab[MAX_PLAYERS+1]
new Float:g_fVecMins[MAX_PLAYERS+1][3]
new Float:g_fVecMaxs[MAX_PLAYERS+1][3]
new Float:g_fVecOrigin[MAX_PLAYERS+1][3]
new iTimeLimit
new iEnt
public plugin_init()
{
register_plugin(PLUGIN, "0.5.7", "pFa")
register_dictionary("furien_gamesites.txt")
register_dictionary("common.txt")
RegisterHam(Ham_Spawn, "player", "ham_Player_Spawn_Post", 1)
RegisterHam(Ham_TakeDamage, "player", "ham_Player_TakeDamage_Post", 0)
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwdPrimaryAttackKnifePre", 1)
RegisterHam(Ham_Player_PostThink, "player", "ham_Player_PostThink_Post", 1)
RegisterHam(Ham_Killed, "player", "ham_Player_Killed_Pre", 0)
RegisterHam(Ham_Touch, "func_wall", "ham_Touch_Pre", 0)
RegisterHam(Ham_Touch, "func_breakable", "ham_Touch_Pre", 0)
RegisterHam(Ham_Touch, "worldspawn", "ham_Touch_Pre", 0)
RegisterHam(Ham_Touch, "armoury_entity", "TouchWeapons", 0)
RegisterHam(Ham_Touch, "weapon_shield", "TouchWeapons", 0)
RegisterHam(Ham_Touch, "weaponbox", "TouchWeapons", 0)
RegisterHam(Ham_Use, "func_tank", "ham_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tankmortar", "ham_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tankrocket", "ham_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tanklaser", "ham_UseStationary_Post", 1)
RegisterHam(Ham_Weapon_PrimaryAttack , "weapon_c4" , "ham_PrimaryAttack_C4")
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_tmp", "Fwd_PrimAttack", 0)
for(new i = 1; i < sizeof WEAPONENTNAMES; i++)
if(WEAPONENTNAMES[i][0])
RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "ham_Item_Deploy_Post", 1)
pCvars[pCvarGameDescription] = register_cvar("amx_game_description", "PFA-CM.ORG")
g_RoundStartTime = get_systime()
iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
Menus[MenuPrimary] = menu_create("Anti-Furien Menu \d|| \rPrimarias", "Handler_Primary")
Menus[MenuSecondary] = menu_create("Anti-Furien Menu \d|| \rPistolas", "Handler_Secondary")
menu_setprop(Menus[MenuPrimary], MPROP_PERPAGE, 0)
for(new i;i < sizeof AntiFurienPWeapons;i++)
{
menu_additem(Menus[MenuPrimary], AntiFurienPWeapons[i][szPWeaponName])
}
for(new i;i < sizeof AntiFurienSWeapons;i++)
{
menu_additem(Menus[MenuSecondary], AntiFurienSWeapons[i][szSWeaponName])
}
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
register_forward(FM_PlaybackEvent, "fw_PlaybackEvent")
register_forward(FM_AddToFullPack, "AddToFullPack", 1)
register_forward(FM_PlayerPreThink, "PreThink")
register_forward(FM_GetGameDescription, "ForwardGameDescription")
register_forward(FM_EmitSound, "EmitSound")
register_forward(FM_CmdStart, "CmdStart")
register_forward(FM_SetModel, "fw_SetModel")
register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
register_forward(FM_ClientKill, "Forward_ClientKill")
register_event("CurWeapon", "SwitchToC4" , "be" , "1=1" , "2=6")
register_event("CurWeapon", "SwitchToOther" , "be" , "1=1" , "2!6")
register_event("SendAudio", "EVENT_CTWin", "a", "1=0", "2=%!MRAD_ctwin")
register_event("SendAudio", "EVENT_TWin", "a", "1=0", "2=%!MRAD_terwin")
register_event("DeathMsg", "eDeathMsg", "a")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_concmd("amx_restartdata","RestartData",ADMIN_IMMUNITY,"Resetar Dinheiro/Itens.")
register_logevent("Round_Start", 2, "1=Round_Start")
register_logevent("Round_End", 2, "1=Round_End")
iTimeLimit = get_cvar_pointer("mp_timelimit")
register_clcmd("/menu", "Open_FurMenu")
register_clcmd("menu", "Open_FurMenu")
register_clcmd("say_team /menu", "Open_FurMenu")
register_clcmd("say_team menu", "Open_FurMenu")
for(new i; i < sizeof HudSync; i++)
HudSync[HudSyncSettings:i] = CreateHudSyncObj()
g_iMaxPlayers = get_maxplayers()
LoadCvars()
LoadDefaultCfgs()
}
LoadCvars()
{
new szConfigFile[128]
formatex(szConfigFile[get_configsdir(szConfigFile,charsmax(szConfigFile))],charsmax(szConfigFile),"/%s/furien_cvars.cfg", g_szFolder)
if(file_exists(szConfigFile))
server_cmd("exec %s",szConfigFile)
}
LoadDefaultCfgs()
{
new szConfigFile[128]
formatex(szConfigFile[get_configsdir(szConfigFile,charsmax(szConfigFile))],charsmax(szConfigFile),"/%s/furien_default_cfgs.cfg", g_szFolder)
if(file_exists(szConfigFile))
server_cmd("exec %s",szConfigFile)
}
public plugin_precache()
{
new szFile[256]
get_configsdir(szFile, charsmax(szFile))
formatex(szFile, charsmax(szFile), "%s/%s/furien_settings.ini", szFile, g_szFolder)
new iFile = fopen(szFile, "r")
while (!feof(iFile))
{
new szBuffer[2056], Key[64], Value[256], ValueRight[256], ValueRight2[256]
fgets(iFile, szBuffer, charsmax(szBuffer))
trim(szBuffer)
if (szBuffer[0] == EOS || szBuffer[0] == ';' || (szBuffer[0] == '/' && szBuffer[1] == '/'))
continue
strtok(szBuffer, Key, charsmax(Key), Value, charsmax(Value), '=')
replace(Value, charsmax(Value), ",", "")
trim(Key)
trim(Value)
trim(ValueRight)
if(equal(Key, "V_KNIFE"))
{
if(Value[0] || ValueRight[0])
{
parse(Value, Value, charsmax(Value), ValueRight, charsmax(ValueRight))
if(file_exists(Value))
{
copy(WeaponSkins[V_KNIFE_T], charsmax(WeaponSkins[]), Value)
precache_model(Value)
}
if(file_exists(ValueRight))
{
copy(WeaponSkins[V_KNIFE_CT], charsmax(WeaponSkins[]), ValueRight)
precache_model(ValueRight)
}
}
else
{
if(!Value[0]) copy(WeaponSkins[V_KNIFE_T], charsmax(WeaponSkins[]), "models/v_knife.mdl")
if(!ValueRight[0]) copy(WeaponSkins[V_KNIFE_CT], charsmax(WeaponSkins[]), "models/v_knife.mdl")
}
}
else if(equal(Key, "V_HEGRENADE"))
{
if(Value[0] || ValueRight[0] || ValueRight2[0])
{
parse
(
Value,
Value, charsmax(Value),
ValueRight, charsmax(ValueRight),
ValueRight2, charsmax(ValueRight2)
)
replace(ValueRight, charsmax(ValueRight), ",", "")
if(file_exists(Value)
|| file_exists(ValueRight)
|| file_exists(ValueRight2))
{
copy(WeaponSkins[V_HEGRENADE_V], charsmax(WeaponSkins[]), Value)
copy(WeaponSkins[V_HEGRENADE_P], charsmax(WeaponSkins[]), ValueRight)
copy(WeaponSkins[V_HEGRENADE_W], charsmax(WeaponSkins[]), ValueRight2)
precache_model(Value)
precache_model(ValueRight)
precache_model(ValueRight2)
}
}
}
else if(equal(Key, "V_FLASHBANG"))
{
if(Value[0] || ValueRight[0] || ValueRight2[0])
{
parse
(
Value,
Value, charsmax(Value),
ValueRight, charsmax(ValueRight),
ValueRight2, charsmax(ValueRight2)
)
replace(ValueRight, charsmax(ValueRight), ",", "")
if(file_exists(Value)
|| file_exists(ValueRight)
|| file_exists(ValueRight2))
{
copy(WeaponSkins[V_FLASHBANG_V], charsmax(WeaponSkins[]), Value)
copy(WeaponSkins[V_FLASHBANG_P], charsmax(WeaponSkins[]), ValueRight)
copy(WeaponSkins[V_FLASHBANG_W], charsmax(WeaponSkins[]), ValueRight2)
precache_model(Value)
precache_model(ValueRight)
precache_model(ValueRight2)
}
}
}
else if(equal(Key, "V_SMOKEGRENADE"))
{
if(Value[0] || ValueRight[0] || ValueRight2[0])
{
parse
(
Value,
Value, charsmax(Value),
ValueRight, charsmax(ValueRight),
ValueRight2, charsmax(ValueRight2)
)
replace(ValueRight, charsmax(ValueRight), ",", "")
if(file_exists(Value)
|| file_exists(ValueRight)
|| file_exists(ValueRight2))
{
copy(WeaponSkins[V_SMOKEGRENADE_V], charsmax(WeaponSkins[]), Value)
copy(WeaponSkins[V_SMOKEGRENADE_P], charsmax(WeaponSkins[]), ValueRight)
copy(WeaponSkins[V_SMOKEGRENADE_W], charsmax(WeaponSkins[]), ValueRight2)
precache_model(Value)
precache_model(ValueRight)
precache_model(ValueRight2)
}
}
}
if(file_exists(Value))
{
if(Value[0])
{
if(equal(Key, "V_M4A1"))
{
copy(WeaponSkins[V_M4A1], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_AK47"))
{
copy(WeaponSkins[V_AK47], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_AWP"))
{
copy(WeaponSkins[V_AWP], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_FAMAS"))
{
copy(WeaponSkins[V_FAMAS], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_M249"))
{
copy(WeaponSkins[V_M249], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_MP5"))
{
copy(WeaponSkins[V_MP5], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_UMP45"))
{
copy(WeaponSkins[V_UMP45], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_M3"))
{
copy(WeaponSkins[V_M3], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_C4"))
{
copy(WeaponSkins[V_C4], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_DEAGLE"))
{
copy(WeaponSkins[V_DEAGLE], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_GLOCK18"))
{
copy(WeaponSkins[V_GLOCK18], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_USP"))
{
copy(WeaponSkins[V_USP], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_ELITE"))
{
copy(WeaponSkins[V_ELITE], charsmax(WeaponSkins[]), Value)
}
else if(equal(Key, "V_FIVESEVEN"))
{
copy(WeaponSkins[V_FIVESEVEN], charsmax(WeaponSkins[]), Value)
}
precache_model(Value)
}
}
}
fclose(iFile)
for(new i = 0; i < sizeof Knives; i++)
precache_model(Knives[i])
for(new i = 0; i < sizeof g_szTer_Sounds; i++)
precache_generic(g_szTer_Sounds[i])
for(new i = 0; i < sizeof g_szCt_Sounds; i++)
precache_generic(g_szCt_Sounds[i])
for(new i = 0; i < sizeof CombaSounds; i++)
precache_sound(CombaSounds[i])
for(new i = 0; i < sizeof SilverSounds; i++)
precache_sound(SilverSounds[i])
for(new i = 0; i < sizeof EpicSounds; i++)
precache_sound(EpicSounds[i])
for(new i = 0; i < sizeof DeadSounds; i++)
precache_sound(DeadSounds[i])
for(new i = 0; i < sizeof SpiritSounds; i++)
precache_sound(SpiritSounds[i])
for(new i = 0; i < sizeof SuperSounds; i++)
precache_sound(SuperSounds[i])
for(new i = 0; i < sizeof AxeSounds ; i++)
precache_sound(AxeSounds[i])
for(new i = 0; i < sizeof HunterSounds; i++)
precache_sound(HunterSounds[i])
for(new i = 0; i < sizeof CrowSounds; i++)
precache_sound(CrowSounds[i])
}
public plugin_natives()
{
register_library("furien_gs")
register_native("fm_get_user_knife", "_fm_get_user_knife", 1)
register_native("fm_set_user_knife", "_fm_set_user_knife", 1)
}
public _fm_get_user_knife()
{
return g_szKnife[get_param(1)][TOTAL_KNIVES]
}
public _fm_set_user_knife()
{
new id = get_param(1)
g_szKnife[id][TOTAL_KNIVES] = get_param(2)
new weapon_ent; weapon_ent = fm_cs_get_current_weapon_ent(id)
if(pev_valid(weapon_ent))
replace_weapon_models(id, cs_get_weapon_id(weapon_ent))
}
public Msg(id)
{
client_print(id-2016, print_chat,"%L", id, "PLAYER_CONNECT_MSG")
}
public client_putinserver(id)
{
if(is_user_bot(id))
return
if(get_playersnum() >= 10)
{
set_pcvar_num(iTimeLimit,60)
}
set_task(10.5,"Msg", id+2016)
ConfigSettingMenu[id][g_bFMenu] = true
ConfigSettingMenu[id][g_bEffect] = true
ConfigSettingMenu[id][g_bSkins] = true
ConfigSettingMenu[id][g_bStartSound] = false
ConfigSettingMenu[id][g_b3D] = false
g_szKnife[id][TOTAL_KNIVES] = KNIFE_DEFAULT
}
public client_disconnect(id) {
if(get_playersnum() <= 9)
{
set_pcvar_num(iTimeLimit,0)
}
}
public event_round_start()
{
g_bRoundEnd = false
g_roundstarttime = get_gametime()
}
public ham_Player_Spawn_Post(id)
{
if(!is_user_alive(id))
return HAM_IGNORED
static CsTeams:team; team = cs_get_user_team(id)
static weapon_ent; weapon_ent = fm_cs_get_current_weapon_ent(id)
if(pev_valid(weapon_ent))
replace_weapon_models(id, cs_get_weapon_id(weapon_ent))
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
UserFurienBase[id][g_bWeapons] = false
ConfigSettingMenu[id][g_b3D] = false
set_view(id,CAMERA_NONE)
strip_user_weapons(id)
new iUserFlags = get_user_flags(id)
switch(team)
{
case CS_TEAM_T:
{
give_item(id, "weapon_knife")
give_item(id, "weapon_hegrenade")
set_user_armor(id,0)
set_user_footsteps(id, 1)
if(iUserFlags & ADMIN_SVIP)
{
new iGetUserHealth = pev(id, pev_health)
fm_set_user_health(id, iGetUserHealth + 20)
}
else if(iUserFlags & ADMIN_VIP)
{
new iGetUserHealth = pev(id, pev_health)
fm_set_user_health(id, iGetUserHealth + 10)
}
else
{
new szUserModel[15]
cs_get_user_model(id, szUserModel, charsmax(szUserModel))
if(equal(szUserModel, "arctic"))
{
cs_set_user_model(id,ModelsT[0])
}
else if(equal(szUserModel, "leet"))
{
cs_set_user_model(id,ModelsT[1])
}
}
switch(g_szKnife[id][TOTAL_KNIVES])
{
case KNIFE_COMBAT:
{
fm_set_user_armor(id, pev(id, pev_armorvalue) + 10)
}
case KNIFE_AXE:
{
fm_set_user_health(id, pev(id, pev_health) + 20)
}
case KNIFE_SILVER:
{
fm_set_user_health(id, pev(id, pev_health) + 10)
}
case KNIFE_SPIRIT:
{
fm_set_user_health(id, pev(id, pev_health) + 5)
}
case KNIFE_CROWBAR:
{
fm_set_user_health(id, pev(id, pev_health) + 10)
}
}
}
case CS_TEAM_CT:
{
if(iUserFlags & ADMIN_SVIP)
{
cs_set_user_armor(id,100,CsArmorType:2)
}
else if(iUserFlags & ADMIN_VIP)
{
cs_set_user_armor(id,50,CsArmorType:2)
}
give_item(id, "weapon_knife")
set_user_footsteps(id, 0)
}
}
client_cmd(id,"weapon_knife")
Open_FurMenu(id)
return HAM_IGNORED
}
public fm_user_model_update(taskid)
{
static Float:current_time
current_time = get_gametime()
if(current_time - g_models_targettime >= MODELCHANGE_DELAY)
{
fm_set_user_model(taskid)
g_models_targettime = current_time
}
else
{
set_task((g_models_targettime + MODELCHANGE_DELAY) - current_time, "fm_set_user_model", taskid)
g_models_targettime = g_models_targettime + MODELCHANGE_DELAY
}
}
public fm_set_user_model(player)
{
player -= MODELSET_TASK
RoundEnd = false
engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", PlayerModelData[player][g_PlayerModel])
PlayerModelData[player][g_HasCustomModel] = true
}
public Forward_ClientKill(id)
{
if(!is_user_alive(id))
return FMRES_IGNORED
client_print(id, print_chat, "Nao te Poder Suicidar")
client_print(id, print_console, "Nao te Poder Suicidar")
return FMRES_SUPERCEDE
}
public ham_Player_TakeDamage_Post(iVictim, iInfictor, iAttacker, Float:fDamage, iDmgBits)
{
if(!is_user_connected(iVictim) || !is_user_connected(iAttacker) || iVictim == iAttacker)
return HAM_IGNORED
new iWeapon = get_user_weapon(iAttacker)
switch(cs_get_user_team(iAttacker))
{
case CS_TEAM_T:
{
switch(g_szKnife[iAttacker][TOTAL_KNIVES])
{
case KNIFE_HUNTER:
{
if(iWeapon == CSW_KNIFE && iDmgBits != DMG_NADE)
{
SetHamParamFloat(4, fDamage + 20)
}
}
case KNIFE_SPIRIT:
{
if(iWeapon == CSW_KNIFE && iDmgBits != DMG_NADE)
{
SetHamParamFloat(4, fDamage + 5)
}
}
case KNIFE_CROWBAR:
{
if(iWeapon == CSW_KNIFE && iDmgBits != DMG_NADE)
{
SetHamParamFloat(4, fDamage + 10)
}
}
case KNIFE_DEAD:
{
if(cs_get_user_team(iVictim) == CS_TEAM_CT && iDmgBits != DMG_NADE)
{
fm_set_user_health(iAttacker, pev(iAttacker, pev_health) + 2)
}
}
}
}
case CS_TEAM_CT:
{
if(g_szKnife[iVictim][TOTAL_KNIVES] == KNIFE_EPIC )
{
if(IsPrimaryWeapon(iWeapon) || IsSecondaryWeapon(iWeapon))
{
new random = random_num(1,10)
if(random == 5)
{
SetHamParamFloat(4, fDamage - fDamage)
}
}
}
}
}
return HAM_IGNORED
}
public Fwd_PrimAttack(iEnt)
{
new pPlayer = get_pdata_cbase(iEnt, 41, 4)
set_pdata_float(iEnt, m_flNextPrimaryAttack, 3.0, 4)
set_pdata_float(pPlayer, m_flNextAttack, 3.0)
}
public fwdPrimaryAttackKnifePre(ent)
{
new id = get_pdata_cbase(ent, m_pPlayer, OFFSET_LINUX_WEAPONS)
if(!is_user_connected(id))
return HAM_IGNORED
return HAM_IGNORED
}
public EVENT_CTWin()
{
new iPlayers[MAX_PLAYERS], iNum, id
get_players(iPlayers, iNum)
for(new i;i < iNum;i++)
{
id = iPlayers[i]
if(!ConfigSettingMenu[id][g_bStartSound])
{
client_cmd(id, "mp3 stop")
new buffer = belo_random(sizeof g_szCt_Sounds)
client_cmd(id, "mp3 play %s", g_szCt_Sounds[buffer])
}
if(isTeam(id))
{
cs_set_user_team(id, cs_get_user_team(id) == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT)
set_pev(id,pev_takedamage,DAMAGE_NO)
}
}
RoundsCount = 0
RoundEnd = true
}
public EVENT_TWin()
{
RoundsCount++
new iPlayers[MAX_PLAYERS], iNum, id
get_players(iPlayers, iNum)
for(new i;i < iNum;i++)
{
id = iPlayers[i]
if(!ConfigSettingMenu[id][g_bStartSound])
{
client_cmd(id, "mp3 stop")
new buffer = belo_random(sizeof g_szTer_Sounds)
client_cmd(id, "mp3 play %s", g_szTer_Sounds[buffer])
}
if(RoundsCount >= 3)
{
if(isTeam(id))
{
cs_set_user_team(id, cs_get_user_team(id) == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT)
set_pev(id,pev_takedamage,DAMAGE_NO)
}
}
}
RoundEnd = true
}
public TouchWeapons(iWeapon, id)
{
if(!is_user_connected(id))
return HAM_IGNORED
new Model[MAX_PLAYERS]
pev(iWeapon, pev_model, Model, charsmax(Model))
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(containi(Model, "w_backpack") != -1)
return HAM_IGNORED
return HAM_SUPERCEDE
}
return HAM_IGNORED
}
public ham_UseStationary_Post(entity, caller, activator, use_type)
{
if(use_type == USE_STOPPED && is_user_connected(caller))
replace_weapon_models(caller, get_user_weapon(caller))
}
public ham_Item_Deploy_Post(weapon_ent)
{
static id; id = fm_cs_get_weapon_ent_owner(weapon_ent)
if(!pev_valid(id))
return
static weaponid; weaponid = cs_get_weapon_id(weapon_ent)
replace_weapon_models(id, weaponid)
}
public fw_SetModel(ent, const model[])
{
if(!pev_valid(ent))
return FMRES_IGNORED
new id = pev(ent, pev_owner)
if(equal(model,"models/w_tmp.mdl"))
{
dllfunc(DLLFunc_Think, ent)
return FMRES_SUPERCEDE
}
else if(equal(model,"models/w_backpack.mdl"))
{
static Float:RenderColor[3]
RenderColor[0] = 255.0
RenderColor[1] = 0.0
RenderColor[2] = 0.0
set_pev(ent, pev_renderfx, kRenderFxGlowShell)
set_pev(ent, pev_rendercolor, RenderColor)
set_pev(ent, pev_rendermode, kRenderNormal)
set_pev(ent, pev_renderamt, 200.0)
}
else if(equal(model, "models/w_smokegrenade.mdl"))
{
engfunc(EngFunc_SetModel, ent, WeaponSkins[V_SMOKEGRENADE_W])
return FMRES_SUPERCEDE
}
if(ConfigSettingMenu[id][g_bSkins])
{
if(equal(model, "models/w_hegrenade.mdl"))
{
engfunc(EngFunc_SetModel, ent, WeaponSkins[V_HEGRENADE_W])
return FMRES_SUPERCEDE
}
else if(equal(model, "models/w_flashbang.mdl"))
{
engfunc(EngFunc_SetModel, ent, WeaponSkins[V_FLASHBANG_W])
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public PreThink(id)
{
if(is_user_alive(id))
{
new iTemp, iWepId, iButton
iWepId = get_user_weapon(id, iTemp, iTemp)
iButton = pev(id, pev_button)
if(iWepId == CSW_KNIFE)
{
if(iButton & IN_ATTACK)
{
iButton = (iButton & ~IN_ATTACK) | IN_ATTACK2
set_pev(id, pev_button, iButton)
}
}
}
return PLUGIN_HANDLED
}
public ForwardGameDescription()
{
new szGameDescription[20]
get_pcvar_string(pCvars[pCvarGameDescription], szGameDescription, charsmax(szGameDescription))
forward_return(FMV_STRING, szGameDescription)
return FMRES_SUPERCEDE
}
public EmitSound(id, channel, sample[])
{
new i
if(is_user_connected(id) && is_user_alive(id))
{
static CsTeams:team; team = cs_get_user_team(id)
switch(team)
{
case CS_TEAM_T:
{
if(ConfigSettingMenu[id][g_bSkins])
{
switch(g_szKnife[id][TOTAL_KNIVES])
{
case KNIFE_COMBAT:
{
for(i = 0; i < sizeof CombaSounds; i++)
{
if(equal(sample, oldknife_sounds[i]))
{
EmitSnd(id, CombaSounds[i])
return FMRES_SUPERCEDE
}
}
}
case KNIFE_EPIC:
{
for(i = 0; i < sizeof EpicSounds; i++)
{
if(equal(sample, oldknife_sounds[i]))
{
EmitSnd(id, EpicSounds[i])
return FMRES_SUPERCEDE;
}
}
}
case KNIFE_SPIRIT:
{
for(i = 0; i < sizeof SpiritSounds; i++)
{
if(equal(sample, oldknife_sounds[i]))
{
EmitSnd(id, SpiritSounds[i])
return FMRES_SUPERCEDE
}
}
}
case KNIFE_DEAD:
{
for(i = 0; i < sizeof DeadSounds; i++)
{
if(equal(sample, oldknife_sounds[i]))
{
EmitSnd(id, DeadSounds[i])
return FMRES_SUPERCEDE
}
}
}
case KNIFE_AXE:
{
for(i = 0; i < sizeof AxeSounds; i++)
{
if(equal(sample, oldknife_sounds[i]))
{
EmitSnd(id, AxeSounds[i])
return FMRES_SUPERCEDE
}
}
}
case KNIFE_HUNTER:
{
for(i = 0; i < sizeof HunterSounds; i++)
{
if(equal(sample, oldknife_sounds[i]))
{
EmitSnd(id, HunterSounds[i])
return FMRES_SUPERCEDE
}
}
}
case KNIFE_SILVER:
{
for(i = 0; i < sizeof SilverSounds; i++)
{
if(equal(sample, oldknife_sounds[i]))
{
EmitSnd(id, SilverSounds[i])
return FMRES_SUPERCEDE
}
}
}
case KNIFE_CROWBAR:
{
for(i = 0; i < sizeof CrowSounds; i++)
{
if(equal(sample, oldknife_sounds[i]))
{
EmitSnd(id, CrowSounds[i])
return FMRES_SUPERCEDE
}
}
}
}
}
}
}
}
return FMRES_HANDLED
}
public Round_Start()
{
g_RoundStartTime = get_systime()
}
public Round_End()
{
g_bRoundEnd = true
RoundEnd = true
}
public message_StatusIcon(iMsgId, iMsgDest, id)
{
static szIcon[5]
get_msg_arg_string(2, szIcon, charsmax(szIcon))
if(szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z')
{
set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0))
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public message_SendAudio(iMsgId, iMsgDest, id)
{
new szSound[19]
get_msg_arg_string(2, szSound, charsmax(szSound))
if(get_msg_block(msg_TextMsg) == BLOCK_NOT)
{
set_msg_block(msg_TextMsg, BLOCK_ONCE)
}
if(equal(szSound, "%!MRAD_FIREINHOLE"))
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}
public message_ClCorpse(iMsgId, iMsgDest, id)
return PLUGIN_HANDLED
Open_ShopKnives(id)
{
if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
{
return PLUGIN_HANDLED
}
new formatMsg[80]
new hKnf = menu_create("\yFurien \d|| \rFacas", "Handler_ShopKnives")
new szComprado[MAX_PLAYERS]
formatex(szComprado, charsmax(szComprado), "\w[%L]", id, "MENU_BOUGHT")
formatex(formatMsg, charsmax(formatMsg), "Normal Knife ^t^t^t^t%s^n\d ", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_DEFAULT) ? szComprado : "", id, "MENU_KNIFE_DEFAULT")
menu_additem(hKnf,formatMsg,"1",0)
formatex(formatMsg, charsmax(formatMsg), "Combat Knife ^t^t^t^t%s^n\d ", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_COMBAT) ? szComprado : "", id, "MENU_KNIFE_COMBAT")
menu_additem(hKnf,formatMsg,"2",0)
formatex(formatMsg, charsmax(formatMsg), "PickAxe Knife ^t^t^t %s^n\d ", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_AXE) ? szComprado : "", id, "MENU_KNIFE_AXE")
menu_additem(hKnf,formatMsg,"3",0)
formatex(formatMsg, charsmax(formatMsg), "Silver Knife ^t^t^t^t %s^n\d ", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_SILVER) ? szComprado : " \y[VIP]", id, "MENU_KNIFE_SILVER")
menu_additem(hKnf,formatMsg,"4",0)
formatex(formatMsg, charsmax(formatMsg), "Hunter Knife ^t^t^t^t %s^n\d ", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_HUNTER) ? szComprado : "\y[VIP]", id, "MENU_KNIFE_HUNTER")
menu_additem(hKnf,formatMsg,"5",0)
formatex(formatMsg, charsmax(formatMsg), "%L", id, "MORE")
menu_additem(hKnf,formatMsg,"6",0)
formatex(formatMsg, charsmax(formatMsg), "\r%L", id, "BACK")
menu_additem(hKnf,formatMsg,"7",0)
menu_setprop(hKnf, MPROP_EXIT, MEXIT_ALL)
menu_display(id, hKnf, 0)
return PLUGIN_HANDLED
}
Open_ShopKnives2(id)
{
if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
{
return PLUGIN_HANDLED
}
new formatMsg[70]
new hKnf = menu_create("\yFurien \d|| \rFacas", "Handler_ShopKnives2")
new szComprado[MAX_PLAYERS]
formatex(szComprado, charsmax(szComprado), "\w[%L]", id, "MENU_BOUGHT")
formatex(formatMsg, charsmax(formatMsg), "Spirit Knife ^t^t^t^t %s^n\d ", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_SPIRIT) ? szComprado : "", id, "MENU_KNIFE_SPIRIT")
menu_additem(hKnf,formatMsg,"1",0)
formatex(formatMsg, charsmax(formatMsg), "Epic Knife ^t^t^t^t %s^n\d ", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_EPIC) ? szComprado : " \y[ExtraVIP]", id, "MENU_KNIFE_EPIC")
menu_additem(hKnf,formatMsg,"2",0)
formatex(formatMsg, charsmax(formatMsg), "Crowbar Knife^t^t %s^n\d ", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_CROWBAR) ? szComprado : " \y[ExtraVIP]", id, "MENU_KNIFE_CROWBAR")
menu_additem(hKnf,formatMsg,"3",0)
formatex(formatMsg, charsmax(formatMsg), "Dead Knife ^t^t^t^t %s^n\d ", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_DEAD) ? szComprado : " \y[ExtraVIP]", id, "MENU_KNIFE_DEAD")
menu_additem(hKnf,formatMsg,"4",0)
formatex(formatMsg, charsmax(formatMsg), "%L", id, "BACK")
menu_additem(hKnf,formatMsg,"5",0)
menu_setprop(hKnf, MPROP_EXIT, MEXIT_ALL)
menu_display(id, hKnf, 0)
return PLUGIN_HANDLED
}
Open_Primary(id)
{
if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
{
return PLUGIN_HANDLED
}
menu_display(id, Menus[MenuPrimary])
return PLUGIN_HANDLED
}
Open_Secondary(id)
{
if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
{
return PLUGIN_HANDLED
}
menu_display(id, Menus[MenuSecondary])
return PLUGIN_HANDLED
}
public Open_FurMenu(id)
{
new CsTeams:team; team = cs_get_user_team(id)
new hFur = menu_create("Furien Menu:", "Handler_FurMenu")
new formatText[15]
if(team == CS_TEAM_T)
{
formatex(formatText, charsmax(formatText), "%L", id, "MENU_DEFAULT_KNIFE")
menu_additem(hFur, formatText, "1", 0)
}
if(team == CS_TEAM_CT)
{
formatex(formatText, charsmax(formatText), "%L", id, "MENU_DEFAULT_WEAPON")
menu_additem(hFur, formatText, "2", 0)
}
formatex(formatText, charsmax(formatText), "%L", id, "MENU_DEFAULT_SETTINGS")
menu_additem(hFur, formatText, "3", 0)
switch(get_user_flags(id))
{
case ADMIN_VIP:
{
formatex(formatText, charsmax(formatText), "\y%L ExtraVIP", id, "MENU_DEFAULT_ACTIVE")
menu_additem(hFur, formatText, "7", 0)
}
case ADMIN_USER:
{
formatex(formatText, charsmax(formatText), "\y%L VIP", id, "MENU_DEFAULT_ACTIVE")
menu_additem(hFur, formatText, "7", 0)
}
}
menu_display(id, hFur, 0)
return PLUGIN_HANDLED
}
Open_Setting(id)
{
if(!is_user_alive(id))
{
return PLUGIN_HANDLED
}
new formatMsg[80]
formatex(formatMsg, charsmax(formatMsg), "\yFurien Menu \d|| %L", id, "MENU_SETTINGS_TITTLE")
new hSet = menu_create(formatMsg, "Handler_Setting")
formatex(formatMsg, charsmax(formatMsg), "Menu Rapido ^t^t^t^t^t\y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_bFMenu] ? "\w" : "\r", id, (ConfigSettingMenu[id][g_bFMenu]) ? "MENU_ENABLED" : "MENU_DISABLED", id, "MENU_SETTINGS_FAST_MENU")
menu_additem(hSet, formatMsg, "1", 0)
formatex(formatMsg, charsmax(formatMsg), "Efeito Morte ^t^t^t^t^t \y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_bEffect] ? "\w" : "\r", id, (ConfigSettingMenu[id][g_bEffect]) ? "MENU_ENABLED" : "MENU_DISABLED", id, "MENU_SETTINGS_EFFECT")
menu_additem(hSet, formatMsg, "2", 0)
formatex(formatMsg, charsmax(formatMsg), "Armas Antigas ^t^t^t\y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_bSkins] ? "\r" : "\w", id, (ConfigSettingMenu[id][g_bSkins]) ? "MENU_DISABLED" : "MENU_ENABLED", id, "MENU_SETTINGS_SKINS")
menu_additem(hSet, formatMsg, "3", 0)
formatex(formatMsg, charsmax(formatMsg), "Musica de Ronda ^t^t^t^t\y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_bStartSound] ? "\w" : "\r", id, (ConfigSettingMenu[id][g_bStartSound]) ? "MENU_ENABLED" : "MENU_DISABLED", id, "MENU_SETTINGS_START_SOUND")
menu_additem(hSet, formatMsg, "4", 0)
formatex(formatMsg, charsmax(formatMsg), "Furien 3D ^t^t^t^t^t \y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_b3D] ? "\w" : "\r", id, (ConfigSettingMenu[id][g_b3D]) ? "MENU_ENABLED" : "MENU_DISABLED", id, "MENU_SETTINGS_CAMERA")
menu_additem(hSet, formatMsg, "5", 0)
formatex(formatMsg, charsmax(formatMsg), "%L", id, "BACK")
menu_additem(hSet, formatMsg, "6", 0)
menu_setprop(hSet, MPROP_EXIT, MEXIT_ALL)
menu_display(id, hSet, 0)
return PLUGIN_HANDLED
}
public Handler_ShopKnives(id, hMenu, iItem)
{
if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
{
menu_destroy(hMenu)
return PLUGIN_HANDLED
}
if(g_bRoundEnd)
{
CantRightNow(id)
return PLUGIN_HANDLED
}
new szData[6], iAccess2, hCallback
menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
new iKey = str_to_num(szData)
new iUserFlag = get_user_flags(id)
switch(iKey)
{
case 1:
{
if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_DEFAULT)
{
g_szKnife[id][TOTAL_KNIVES] = KNIFE_DEFAULT
EmitSnd(id,ItemBoughtSound)
}
else
{
youAlreadyHave(id, "Normal knife")
}
Open_ShopKnives(id)
}
case 2:
{
if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_COMBAT)
{
fm_set_user_armor(id, pev(id, pev_armorvalue) + 10)
g_szKnife[id][TOTAL_KNIVES] = KNIFE_COMBAT
}
else
{
youAlreadyHave(id, "Combat knife")
}
Open_ShopKnives(id)
}
case 3:
{
if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_AXE)
{
fm_set_user_health(id, pev(id, pev_health) + 20)
g_szKnife[id][TOTAL_KNIVES] = KNIFE_AXE
EmitSnd(id,ItemBoughtSound)
}
else
{
youAlreadyHave(id, "Axe knife")
}
Open_ShopKnives(id)
}
case 4:
{
if(iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP)
{
if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_SILVER)
{
fm_set_user_health(id, pev(id, pev_health) + 10)
g_szKnife[id][TOTAL_KNIVES] = KNIFE_SILVER
EmitSnd(id, ItemBoughtSound)
}
else
{
youAlreadyHave(id, "Silver knife")
}
}
else
{
noAccessfunc(id,ADMIN_SVIP)
}
Open_ShopKnives(id)
}
case 5:
{
if(iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP)
{
if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_HUNTER)
{
g_szKnife[id][TOTAL_KNIVES] = KNIFE_HUNTER
EmitSnd(id,ItemBoughtSound)
}
else
{
youAlreadyHave(id, "Hunter knife")
}
}
else
{
noAccessfunc(id,ADMIN_SVIP)
}
Open_ShopKnives(id)
}
case 6: Open_ShopKnives2(id)
case 7: Open_FurMenu(id)
}
new weapon_ent; weapon_ent = fm_cs_get_current_weapon_ent(id)
if(pev_valid(weapon_ent))
replace_weapon_models(id, cs_get_weapon_id(weapon_ent))
return PLUGIN_HANDLED
}
public Handler_ShopKnives2(id, hMenu, iItem)
{
if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
{
menu_destroy(hMenu)
return PLUGIN_HANDLED
}
if(g_bRoundEnd)
{
CantRightNow(id)
return PLUGIN_HANDLED
}
new szData[6], iAccess2, hCallback
menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
new iKey = str_to_num(szData)
new iUserFlag = get_user_flags(id)
switch(iKey)
{
case 1:
{
if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_SPIRIT)
{
fm_set_user_health(id, pev(id, pev_health) + 5)
g_szKnife[id][TOTAL_KNIVES] = KNIFE_SPIRIT
EmitSnd(id,ItemBoughtSound)
}
else
{
youAlreadyHave(id, "Spirit knife")
}
Open_ShopKnives2(id)
}
case 2:
{
if(iUserFlag & ADMIN_SVIP)
{
if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_EPIC)
{
g_szKnife[id][TOTAL_KNIVES] = KNIFE_EPIC
EmitSnd(id,ItemBoughtSound)
}
else
{
youAlreadyHave(id, "Epic knife")
}
}
else
{
noAccessfunc(id,ADMIN_SVIP)
}
Open_ShopKnives2(id)
}
case 3:
{
if(iUserFlag & ADMIN_SVIP)
{
if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_CROWBAR)
{
fm_set_user_health(id, pev(id, pev_health) + 10)
g_szKnife[id][TOTAL_KNIVES] = KNIFE_CROWBAR
EmitSnd(id,ItemBoughtSound)
}
else
{
youAlreadyHave(id, "Crowbar knife")
}
}
else
{
noAccessfunc(id,ADMIN_SVIP)
}
Open_ShopKnives2(id)
}
case 4:
{
if(iUserFlag & ADMIN_SVIP)
{
if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_DEAD)
{
g_szKnife[id][TOTAL_KNIVES] = KNIFE_DEAD
EmitSnd(id,ItemBoughtSound)
}
else
{
youAlreadyHave(id, "Dead knife")
}
}
else
{
noAccessfunc(id,ADMIN_SVIP)
}
Open_ShopKnives2(id)
}
case 5: Open_ShopKnives(id)
}
new weapon_ent; weapon_ent = fm_cs_get_current_weapon_ent(id)
if(pev_valid(weapon_ent))
replace_weapon_models(id, cs_get_weapon_id(weapon_ent))
return PLUGIN_HANDLED
}
public Handler_Primary(id, hMenu, iItem)
{
if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
{
return PLUGIN_HANDLED
}
if(g_bRoundEnd)
{
CantRightNow(id)
return PLUGIN_HANDLED
}
new iUserFlag = get_user_flags(id)
strip_user_weapons(id)
give_item(id,"weapon_flashbang")
give_item(id,"weapon_knife")
UserFurienBase[id][g_bWeapons] = true
Open_Secondary(id)
if(iItem != 7)
{
give_item(id, AntiFurienPWeapons[iItem][szPWeaponIndex])
cs_set_user_bpammo(id, AntiFurienPWeapons[iItem][szPWeaponType], AntiFurienPWeapons[iItem][iPWeaponBpAmmo])
if((iItem == 0) || (iItem == 1))
color_chat(id, "%L", id, "CHAT_BAD_WEAPON")
}
else
{
if(iUserFlag & ADMIN_SVIP)
{
give_item(id, AntiFurienPWeapons[iItem][szPWeaponName])
cs_set_user_bpammo(id, AntiFurienPWeapons[iItem][szPWeaponType], AntiFurienPWeapons[iItem][iPWeaponBpAmmo])
UserFurienBase[id][g_bWeapons] = true
Open_Secondary(id)
}
else
{
noAccessfunc(id,ADMIN_SVIP)
Open_Primary(id)
}
}
Open_Primary(id)
return PLUGIN_HANDLED
}
public Handler_Secondary(id, hMenu, iItem)
{
if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
{
return PLUGIN_HANDLED
}
if(g_bRoundEnd)
{
CantRightNow(id)
return PLUGIN_HANDLED
}
give_item(id, AntiFurienSWeapons[iItem][szSWeaponIndex])
cs_set_user_bpammo(id, AntiFurienSWeapons[iItem][szSWeaponType], AntiFurienSWeapons[iItem][iSWeaponBpAmmo])
if(!ConfigSettingMenu[id][g_bFMenu])
Open_FurMenu(id)
else
{
noMoneyfunc(id)
Open_Secondary(id)
}
return PLUGIN_HANDLED
}
public Handler_FurMenu(id, hMenu, iItem)
{
if(!is_user_alive(id))
{
menu_destroy(hMenu)
return PLUGIN_HANDLED
}
new szData[6], iAccess2, hCallback
menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
new iKey = str_to_num(szData)
switch(iKey)
{
case 1: Open_ShopKnives(id)
case 2:
{
if(!UserFurienBase[id][g_bWeapons])
{
Open_Primary(id)
}
else
{
Open_FurMenu(id)
color_chat(id, "%L", id, "CHAT_ALREADY_SELECTEC_THE_EQUIPAMENT")
client_print(id, print_center,"%L", id, "CHAT_ALREADY_SELECTEC_THE_EQUIPAMENT")
}
}
case 3: Open_Setting(id)
}
menu_destroy(hMenu)
return PLUGIN_HANDLED
}
public Handler_Setting(id, hMenu, iItem)
{
if(!is_user_alive(id))
{
menu_destroy(hMenu)
return PLUGIN_HANDLED
}
new szData[6], iAccess2, hCallback
menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
new iKey = str_to_num(szData)
switch(iKey)
{
case 1:
{
ConfigSettingMenu[id][g_bFMenu] = (ConfigSettingMenu[id][g_bFMenu]) ? false : true
Open_Setting(id)
}
case 2:
{
ConfigSettingMenu[id][g_bEffect] = (ConfigSettingMenu[id][g_bEffect]) ? false : true
Open_Setting(id)
}
case 3:
{
ConfigSettingMenu[id][g_bSkins] = (ConfigSettingMenu[id][g_bSkins]) ? false : true
new weapon_ent; weapon_ent = fm_cs_get_current_weapon_ent(id)
if(pev_valid(weapon_ent))
replace_weapon_models(id, cs_get_weapon_id(weapon_ent))
Open_Setting(id)
}
case 4:
{
client_cmd(id, "mp3 stop")
if(ConfigSettingMenu[id][g_bStartSound])
{
ConfigSettingMenu[id][g_bStartSound] = false
}
else
{
color_chat(id,"%L", id, "CHAT_SPAWN_FIRST_MESSAGE")
new buffer = belo_random(sizeof g_MusicList)
client_cmd(id, "mp3 play %s", g_MusicList[buffer])
ConfigSettingMenu[id][g_bStartSound] = true
}
Open_Setting(id)
}
case 5:
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
ConfigSettingMenu[id][g_b3D] = (ConfigSettingMenu[id][g_b3D]) ? false : true
set_view(id,(ConfigSettingMenu[id][g_b3D]) ? CAMERA_3RDPERSON : CAMERA_NONE)
}
else
{
color_chat(id,"%L", id, "CHAT_SHOULD_BE_FURIEN")
}
Open_Setting(id)
}
case 6:
{
Open_FurMenu(id)
}
}
menu_destroy(hMenu)
return PLUGIN_HANDLED
}
public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
if(!is_user_alive(id))
return FMRES_IGNORED
if(get_user_weapon(id) == CSW_TMP)
set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001)
return FMRES_HANDLED
}
replace_weapon_models(id, weaponid)
{
if(!is_user_connected(id))
return
static CsTeams:team; team = cs_get_user_team(id)
switch(weaponid)
{
case CSW_SMOKEGRENADE:
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
set_pev(id, pev_viewmodel2, WeaponSkins[V_SMOKEGRENADE_V])
set_pev(id, pev_weaponmodel2, WeaponSkins[V_SMOKEGRENADE_P])
}
}
}
if(ConfigSettingMenu[id][g_bSkins])
{
switch(weaponid)
{
case CSW_KNIFE:
{
switch(team)
{
case CS_TEAM_T:
{
switch(g_szKnife[id][TOTAL_KNIVES])
{
case KNIFE_COMBAT:
{
set_pev(id, pev_viewmodel2, Knives[3])
set_pev(id, pev_weaponmodel2, Knives[2])
}
case KNIFE_AXE:
{
set_pev(id, pev_viewmodel2, Knives[1])
set_pev(id, pev_weaponmodel2, Knives[0])
}
case KNIFE_SILVER:
{
set_pev(id, pev_viewmodel2, Knives[5])
set_pev(id, pev_weaponmodel2, Knives[4])
}
case KNIFE_HUNTER:
{
set_pev(id, pev_viewmodel2, Knives[7])
set_pev(id, pev_weaponmodel2, Knives[6])
}
case KNIFE_SPIRIT:
{
set_pev(id, pev_viewmodel2, Knives[8])
}
case KNIFE_EPIC:
{
set_pev(id, pev_viewmodel2, Knives[10])
set_pev(id, pev_weaponmodel2, Knives[9])
}
case KNIFE_CROWBAR:
{
set_pev(id, pev_viewmodel2, Knives[12])
set_pev(id, pev_weaponmodel2, Knives[11])
}
case KNIFE_DEAD:
{
set_pev(id, pev_viewmodel2, Knives[14])
set_pev(id, pev_weaponmodel2, Knives[13])
}
default:
{
set_pev(id, pev_viewmodel2, WeaponSkins[V_KNIFE_T])
}
}
}
case CS_TEAM_CT:
{
set_pev(id, pev_viewmodel2, WeaponSkins[V_KNIFE_CT])
}
}
}
case CSW_AWP: set_pev(id, pev_viewmodel2, WeaponSkins[V_AWP])
case CSW_M4A1: set_pev(id, pev_viewmodel2, WeaponSkins[V_M4A1])
case CSW_AK47: set_pev(id, pev_viewmodel2, WeaponSkins[V_AK47])
case CSW_FAMAS: set_pev(id, pev_viewmodel2, WeaponSkins[V_FAMAS])
case CSW_M249: set_pev(id, pev_viewmodel2, WeaponSkins[V_M249])
case CSW_MP5NAVY: set_pev(id, pev_viewmodel2, WeaponSkins[V_MP5])
case CSW_UMP45: set_pev(id, pev_viewmodel2, WeaponSkins[V_UMP45])
case CSW_M3: set_pev(id, pev_viewmodel2, WeaponSkins[V_M3])
case CSW_C4: set_pev(id, pev_viewmodel2, WeaponSkins[V_C4])
case CSW_DEAGLE: set_pev(id, pev_viewmodel2, WeaponSkins[V_DEAGLE])
case CSW_USP: set_pev(id, pev_viewmodel2, WeaponSkins[V_USP])
case CSW_GLOCK18: set_pev(id, pev_viewmodel2, WeaponSkins[V_GLOCK18])
case CSW_ELITE: set_pev(id, pev_viewmodel2, WeaponSkins[V_ELITE])
case CSW_FIVESEVEN: set_pev(id, pev_viewmodel2, WeaponSkins[V_FIVESEVEN])
case CSW_HEGRENADE:
{
set_pev(id, pev_viewmodel2, WeaponSkins[V_HEGRENADE_V])
set_pev(id, pev_weaponmodel2, WeaponSkins[V_HEGRENADE_P])
}
case CSW_FLASHBANG:
{
set_pev(id, pev_viewmodel2, WeaponSkins[V_FLASHBANG_V])
set_pev(id, pev_weaponmodel2, WeaponSkins[V_FLASHBANG_P])
}
}
}
else
{
switch(weaponid)
{
case CSW_KNIFE:
{
set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
}
case CSW_UMP45:
{
set_pev(id, pev_viewmodel2, "models/v_ump45.mdl")
}
case CSW_M3:
{
set_pev(id, pev_viewmodel2, "models/v_xm1014.mdl")
}
case CSW_AWP:
{
set_pev(id, pev_viewmodel2, "models/v_awp.mdl")
}
case CSW_MP5NAVY:
{
set_pev(id, pev_viewmodel2, "models/v_mp5.mdl")
}
case CSW_AK47:
{
set_pev(id, pev_viewmodel2, "models/v_ak47.mdl")
}
case CSW_M4A1:
{
set_pev(id, pev_viewmodel2, "models/v_m4a1.mdl")
}
case CSW_M249:
{
set_pev(id, pev_viewmodel2, "models/v_m249.mdl")
}
case CSW_FAMAS:
{
set_pev(id, pev_viewmodel2, "models/v_famas.mdl")
}
case CSW_GLOCK18:
{
set_pev(id, pev_viewmodel2, "models/v_glock18.mdl")
}
case CSW_USP:
{
set_pev(id, pev_viewmodel2, "models/v_usp.mdl")
}
case CSW_DEAGLE:
{
set_pev(id, pev_viewmodel2, "models/v_deagle.mdl")
}
case CSW_C4:
{
set_pev(id, pev_viewmodel2, "models/v_c4.mdl")
}
case CSW_HEGRENADE:
{
set_pev(id, pev_viewmodel2, "models/v_hegrenade.mdl")
set_pev(id, pev_weaponmodel2, "models/p_hegrenade.mdl")
}
case CSW_FLASHBANG:
{
set_pev(id, pev_viewmodel2, "models/v_flashbang.mdl")
set_pev(id, pev_weaponmodel2, "models/p_flashbang.mdl")
}
}
}
}
belo_random(num)
{
static LastRandom
new rand = random(num)
while(LastRandom == rand)
rand = random(num)
LastRandom = rand
return rand
}
ScreenFade(id, Duration, HoldTime, FadeType, R, G, B, Intensity)
{
message_begin(id ? MSG_ONE : MSG_ALL, msg_ScreenFade, .player = id)
write_short(Duration)
write_short(HoldTime)
write_short(FadeType)
write_byte(R)
write_byte(G)
write_byte(B)
write_byte(Intensity)
message_end()
}
fm_get_user_model(player, model[], len)
{
engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}
fm_cs_get_current_weapon_ent(id)
{
if(pev_valid(id) != PDATA_SAFE)
return -1
return get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER)
}
fm_cs_get_weapon_ent_owner(ent)
{
if(pev_valid(ent) != PDATA_SAFE)
return -1
return get_pdata_cbase(ent, m_pPlayer, OFFSET_LINUX_WEAPONS)
}
noMoneyfunc(index)
{
switch(get_user_flags(index))
{
case ADMIN_SVIP: color_chat(index, "%L", index, "PLAYER_NO_MONEY_EVIP")
case ADMIN_VIP: color_chat(index, "%L", index, "PLAYER_NO_MONEY_VIP")
default: color_chat(index, "%L", index, "PLAYER_NO_MONEY")
}
}
CantRightNow(index)
{
color_chat(index, "%L", index, "CHAT_YOU_CANNOT_SAY_MESSAGE")
}
noAccessfunc(index, iAccess)
{
switch(iAccess)
{
case ADMIN_SVIP:
{
color_chat(index, "%L", index, "PLAYER_NO_ACCESS_EVIP")
client_print(index, print_center,"%L", index, "PLAYER_NO_ACCESS_EVIP")
}
case ADMIN_VIP:
{
color_chat(index, "%L", index, "PLAYER_NO_ACCESS_VIP")
client_print(index, print_center,"%L", index, "PLAYER_NO_ACCESS_VIP")
}
}
}
youAlreadyHave(index, itemName[18])
{
new bool:isKnife = bool:(!(containi(itemName, "super") != -1) && (containi(itemName, "knife") != -1))
new szPreposition[5]
if(isKnife)
{
replace(itemName, charsmax(itemName), "knife", "")
formatex(szPreposition, charsmax(szPreposition), "%L", index, "CHAT_PREPOSITION_A")
}
else
{
formatex(szPreposition, charsmax(szPreposition), "%L", index, "CHAT_PREPOSITION_B")
}
color_chat(index, "%L", index, "CHAT_YOU_ALREADY_HAVE", szPreposition, isKnife ? "knife" : "item", itemName)
}
get_user_id()
{
new LogUser[80], szName[MAX_PLAYERS]
read_logargv(0, LogUser, charsmax(LogUser))
parse_loguser(LogUser, szName, charsmax(szName))
return get_user_index(szName)
}
giveUserTmp(id)
{
switch(get_user_flags(id))
{
case ADMIN_SVIP:
{
give_user_weapon(id, CSW_TMP, 10, 0)
}
case ADMIN_VIP:
{
give_user_weapon(id, CSW_TMP, 7, 0)
}
default:
{
give_user_weapon(id, CSW_TMP, 5, 0)
}
}
}
stock color_chat(const id, const szMessage[], any:...)
{
new iCount = 1, iPlayers[MAX_PLAYERS], Player
static szMsg[191]
vformat(szMsg, charsmax(szMsg), szMessage, 3)
replace_all(szMsg, charsmax(szMsg), "!g", "^4")
replace_all(szMsg, charsmax(szMsg), "!y", "^1")
replace_all(szMsg, charsmax(szMsg), "!t", "^3")
if(id) iPlayers[0] = id; else get_players(iPlayers, iCount, "ch")
{
for(new i = 0; i < iCount; i++)
{
Player = iPlayers[i]
message_begin(MSG_ONE_UNRELIABLE, msg_SayText, .player = Player )
write_byte(Player)
write_string(szMsg)
message_end()
}
}
}
// Craxor's stock - https://forums.alliedmods.net/showthread.php?t=278123
give_user_weapon( index , iWeaponTypeID , iClip=0 , iBPAmmo=0 , szWeapon[]="" , maxchars=0 )
{
if ( !( CSW_P228 <= iWeaponTypeID <= CSW_P90 ) || ( iClip < 0 ) || ( iBPAmmo < 0 ) || !is_user_alive( index ) )
return -1;
new szWeaponName[ 20 ] , iWeaponEntity , bool:bIsGrenade;
const GrenadeBits = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_C4 ) );
if ( ( bIsGrenade = bool:!!( GrenadeBits & ( 1 << iWeaponTypeID ) ) ) )
iClip = clamp( iClip ? iClip : iBPAmmo , 1 );
get_weaponname( iWeaponTypeID , szWeaponName , charsmax( szWeaponName ) );
if ( ( iWeaponEntity = user_has_weapon( index , iWeaponTypeID ) ? find_ent_by_owner( -1 , szWeaponName , index ) : give_item( index , szWeaponName ) ) > 0 )
{
if ( iWeaponTypeID != CSW_KNIFE )
{
if ( iClip && !bIsGrenade )
cs_set_weapon_ammo( iWeaponEntity , iClip );
if ( iWeaponTypeID == CSW_C4 )
cs_set_user_plant( index , 1 , 1 );
else
cs_set_user_bpammo( index , iWeaponTypeID , bIsGrenade ? iClip : iBPAmmo );
}
if ( maxchars )
copy( szWeapon , maxchars , szWeaponName[7] );
}
return iWeaponEntity;
}
Done
You need add/remake this.
PHP Code:
new g_round [ 33 ] public plugin_init () { RegisterHam ( Ham_Spawn , "player" , "FwdHamSpawn_Post" , 1 ); } public FwdHamSpawn_Post ( id ) { if( is_user_alive ( id )){ g_round [ id ] = 0 } } Open_ShopKnives ( id ) { if(! is_user_alive ( id ) || cs_get_user_team ( id ) == CS_TEAM_CT ) { return PLUGIN_HANDLED } if( g_round [ id ] == 0 ) { new formatMsg [ 80 ] new hKnf = menu_create ( "\yFurien \d|| \rFacas" , "Handler_ShopKnives" ) new szComprado [ MAX_PLAYERS ] formatex ( szComprado , charsmax ( szComprado ), "\w[%L]" , id , "MENU_BOUGHT" ) formatex ( formatMsg , charsmax ( formatMsg ), "Normal Knife ^t^t^t^t%s^n\d - %L" , ( g_szKnife [ id ][ TOTAL_KNIVES ] == KNIFE_DEFAULT ) ? szComprado : "" , id , "MENU_KNIFE_DEFAULT" ) menu_additem ( hKnf , formatMsg , "1" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "Combat Knife ^t^t^t^t%s^n\d - %L" , ( g_szKnife [ id ][ TOTAL_KNIVES ] == KNIFE_COMBAT ) ? szComprado : "\r15$" , id , "MENU_KNIFE_COMBAT" ) menu_additem ( hKnf , formatMsg , "2" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "PickAxe Knife ^t^t^t %s^n\d - %L" , ( g_szKnife [ id ][ TOTAL_KNIVES ] == KNIFE_AXE ) ? szComprado : "\r25$" , id , "MENU_KNIFE_AXE" ) menu_additem ( hKnf , formatMsg , "3" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "Silver Knife ^t^t^t^t %s^n\d - %L" , ( g_szKnife [ id ][ TOTAL_KNIVES ] == KNIFE_SILVER ) ? szComprado : "\r20$ \y[VIP]" , id , "MENU_KNIFE_SILVER" ) menu_additem ( hKnf , formatMsg , "4" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "Hunter Knife ^t^t^t^t %s^n\d - %L" , ( g_szKnife [ id ][ TOTAL_KNIVES ] == KNIFE_HUNTER ) ? szComprado : "\r40$ \y[VIP]" , id , "MENU_KNIFE_HUNTER" ) menu_additem ( hKnf , formatMsg , "5" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "%L" , id , "MORE" ) menu_additem ( hKnf , formatMsg , "6" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "\r%L" , id , "BACK" ) menu_additem ( hKnf , formatMsg , "7" , 0 ) menu_setprop ( hKnf , MPROP_EXIT , MEXIT_ALL ) menu_display ( id , hKnf , 0 ) } return PLUGIN_HANDLED } Open_ShopKnives2 ( id ) { if(! is_user_alive ( id ) || cs_get_user_team ( id ) == CS_TEAM_CT ) { return PLUGIN_HANDLED } if( g_round [ id ] == 0 ) { new formatMsg [ 70 ] new hKnf = menu_create ( "\yFurien \d|| \rFacas" , "Handler_ShopKnives2" ) new szComprado [ MAX_PLAYERS ] formatex ( szComprado , charsmax ( szComprado ), "\w[%L]" , id , "MENU_BOUGHT" ) formatex ( formatMsg , charsmax ( formatMsg ), "Spirit Knife ^t^t^t^t %s^n\d - %L" , ( g_szKnife [ id ][ TOTAL_KNIVES ] == KNIFE_SPIRIT ) ? szComprado : "\r20$" , id , "MENU_KNIFE_SPIRIT" ) menu_additem ( hKnf , formatMsg , "1" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "Epic Knife ^t^t^t^t %s^n\d - %L" , ( g_szKnife [ id ][ TOTAL_KNIVES ] == KNIFE_EPIC ) ? szComprado : "\r30$ \y[ExtraVIP]" , id , "MENU_KNIFE_EPIC" ) menu_additem ( hKnf , formatMsg , "2" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "Crowbar Knife^t^t %s^n\d - %L" , ( g_szKnife [ id ][ TOTAL_KNIVES ] == KNIFE_CROWBAR ) ? szComprado : "\r40$ \y[ExtraVIP]" , id , "MENU_KNIFE_CROWBAR" ) menu_additem ( hKnf , formatMsg , "3" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "Dead Knife ^t^t^t^t %s^n\d - %L" , ( g_szKnife [ id ][ TOTAL_KNIVES ] == KNIFE_DEAD ) ? szComprado : "\r50$ \y[ExtraVIP]" , id , "MENU_KNIFE_DEAD" ) menu_additem ( hKnf , formatMsg , "4" , 0 ) formatex ( formatMsg , charsmax ( formatMsg ), "%L" , id , "BACK" ) menu_additem ( hKnf , formatMsg , "5" , 0 ) menu_setprop ( hKnf , MPROP_EXIT , MEXIT_ALL ) menu_display ( id , hKnf , 0 ) } return PLUGIN_HANDLED } public Handler_ShopKnives ( id , hMenu , iItem ) { if( iItem == MENU_EXIT || ! is_user_alive ( id ) || cs_get_user_team ( id ) == CS_TEAM_CT ) { menu_destroy ( hMenu ) return PLUGIN_HANDLED } if( g_bRoundEnd ) { CantRightNow ( id ) return PLUGIN_HANDLED } new szData [ 6 ], iAccess2 , hCallback menu_item_getinfo ( hMenu , iItem , iAccess2 , szData , 5 , _ , _ , hCallback ) new iKey = str_to_num ( szData ) new iUserFlag = get_user_flags ( id ) switch( iKey ) { case 1 : { if( g_szKnife [ id ][ TOTAL_KNIVES ] != KNIFE_DEFAULT ) { g_round [ id ] = 1 g_szKnife [ id ][ TOTAL_KNIVES ] = KNIFE_DEFAULT EmitSnd ( id , ItemBoughtSound ) } else { youAlreadyHave ( id , "Normal knife" ) } Open_ShopKnives ( id ) } case 2 : { if( g_szKnife [ id ][ TOTAL_KNIVES ] != KNIFE_COMBAT ) { g_round [ id ] = 1 fm_set_user_armor ( id , pev ( id , pev_armorvalue ) + 10 ) g_szKnife [ id ][ TOTAL_KNIVES ] = KNIFE_COMBAT EmitSnd ( id , ItemBoughtSound ) } else { youAlreadyHave ( id , "Combat knife" ) } Open_ShopKnives ( id ) } case 3 : { if( g_szKnife [ id ][ TOTAL_KNIVES ] != KNIFE_AXE ) { g_round [ id ] = 1 fm_set_user_health ( id , pev ( id , pev_health ) + 20 ) g_szKnife [ id ][ TOTAL_KNIVES ] = KNIFE_AXE EmitSnd ( id , ItemBoughtSound ) } else { youAlreadyHave ( id , "Axe knife" ) } Open_ShopKnives ( id ) } case 4 : { if( iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP ) { if( g_szKnife [ id ][ TOTAL_KNIVES ] != KNIFE_SILVER ) { g_round [ id ] = 1 fm_set_user_health ( id , pev ( id , pev_health ) + 10 ) g_szKnife [ id ][ TOTAL_KNIVES ] = KNIFE_SILVER EmitSnd ( id , ItemBoughtSound ) } else { youAlreadyHave ( id , "Silver knife" ) } } else { noAccessfunc ( id , ADMIN_SVIP ) } Open_ShopKnives ( id ) } case 5 : { if( iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP ) { if( g_szKnife [ id ][ TOTAL_KNIVES ] != KNIFE_HUNTER ) { g_round [ id ] = 1 g_szKnife [ id ][ TOTAL_KNIVES ] = KNIFE_HUNTER EmitSnd ( id , ItemBoughtSound ) } else { youAlreadyHave ( id , "Hunter knife" ) } } else { noAccessfunc ( id , ADMIN_SVIP ) } Open_ShopKnives ( id ) } case 6 : Open_ShopKnives2 ( id ) } return PLUGIN_HANDLED } public Handler_ShopKnives2 ( id , hMenu , iItem ) { if( iItem == MENU_EXIT || ! is_user_alive ( id ) || cs_get_user_team ( id ) == CS_TEAM_CT ) { menu_destroy ( hMenu ) return PLUGIN_HANDLED } if( g_bRoundEnd ) { CantRightNow ( id ) return PLUGIN_HANDLED } new szData [ 6 ], iAccess2 , hCallback menu_item_getinfo ( hMenu , iItem , iAccess2 , szData , 5 , _ , _ , hCallback ) new iKey = str_to_num ( szData ) new iUserFlag = get_user_flags ( id ) switch( iKey ) { case 1 : { if( g_szKnife [ id ][ TOTAL_KNIVES ] != KNIFE_SPIRIT ) { g_round [ id ] = 1 fm_set_user_health ( id , pev ( id , pev_health ) + 5 ) g_szKnife [ id ][ TOTAL_KNIVES ] = KNIFE_SPIRIT EmitSnd ( id , ItemBoughtSound ) } else { youAlreadyHave ( id , "Spirit knife" ) } Open_ShopKnives2 ( id ) } case 2 : { if( iUserFlag & ADMIN_SVIP ) { if( g_szKnife [ id ][ TOTAL_KNIVES ] != KNIFE_EPIC ) { g_round [ id ] = 1 g_szKnife [ id ][ TOTAL_KNIVES ] = KNIFE_EPIC EmitSnd ( id , ItemBoughtSound ) } else { youAlreadyHave ( id , "Epic knife" ) } } else { noAccessfunc ( id , ADMIN_SVIP ) } Open_ShopKnives2 ( id ) } case 3 : { if( iUserFlag & ADMIN_SVIP ) { if( g_szKnife [ id ][ TOTAL_KNIVES ] != KNIFE_CROWBAR ) { g_round [ id ] = 1 fm_set_user_health ( id , pev ( id , pev_health ) + 10 ) g_szKnife [ id ][ TOTAL_KNIVES ] = KNIFE_CROWBAR EmitSnd ( id , ItemBoughtSound ) } else { youAlreadyHave ( id , "Crowbar knife" ) } } else { noAccessfunc ( id , ADMIN_SVIP ) } Open_ShopKnives2 ( id ) } case 4 : { if( iUserFlag & ADMIN_SVIP ) { if( g_szKnife [ id ][ TOTAL_KNIVES ] != KNIFE_DEAD ) { g_round [ id ] = 1 g_szKnife [ id ][ TOTAL_KNIVES ] = KNIFE_DEAD EmitSnd ( id , ItemBoughtSound ) } else { youAlreadyHave ( id , "Dead knife" ) } } else { noAccessfunc ( id , ADMIN_SVIP ) } Open_ShopKnives2 ( id ) } case 5 : Open_ShopKnives ( id ) } return PLUGIN_HANDLED }
Last edited by Kanek1; 10-21-2018 at 11:44 .