PDA

View Full Version : AmxModx Different Plug-ins



lAsuStarl
13-10-2020, 07:57 PM
Salutare tuturor, în acest topic am sa postez diverse script-uri, făcute de mine / în teste / neterminate şi re-editate sau realizate de alţi scripteri, utilizate de-a lungul acestor ani. Aceste script-uri deasemenea pot fi privite şi ca diferite metode de implementare al unor algoritmi, în funcţie de situaţia impusă, respectiv necesară.




#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>

#define MAX_KNIFE_SNDS 9

new Knife[64] = "models/axe_model/axe.mdl"


new original_sounds_knife[MAX_KNIFE_SNDS][] =
{
"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 remplace_sounds_knife[MAX_KNIFE_SNDS][] =
{
"axe_model/knife_deploy1.wav",
"axe_model/knife_hit1.wav",
"axe_model/knife_hit2.wav",
"axe_model/knife_hit3.wav",
"axe_model/knife_hit4.wav",
"axe_model/knife_hitwall1.wav",
"axe_model/knife_slash1.wav",
"axe_model/knife_slash2.wav",
"axe_model/knife_stab.wav"
}

public plugin_init()
{
register_plugin("x","y","z")

register_forward(FM_EmitSound, "sound_emit")
register_event( "CurWeapon", "Event_CurWeapon", "be", "1=1" )
}

public plugin_precache()
{
precache_model(Knife)
for(new i = 0; i < MAX_KNIFE_SNDS; i++)
precache_sound(remplace_sounds_knife[i])
}


public sound_emit(id, channel, sample[], Float:volume, Float:attenuation, fFlags, pitch)
{
if(equal(sample, original_sounds_knife[0]))
{
emit_sound(id,channel, remplace_sounds_knife[0], volume, attenuation, fFlags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, original_sounds_knife[1]))
{
emit_sound(id,channel, remplace_sounds_knife[1], volume, attenuation, fFlags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, original_sounds_knife[2]))
{
emit_sound(id,channel, remplace_sounds_knife[2], volume, attenuation, fFlags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, original_sounds_knife[3]))
{
emit_sound(id,channel, remplace_sounds_knife[3], volume, attenuation, fFlags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, original_sounds_knife[4]))
{
emit_sound(id,channel, remplace_sounds_knife[4], volume, attenuation, fFlags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, original_sounds_knife[5]))
{
emit_sound(id,channel, remplace_sounds_knife[5], volume, attenuation, fFlags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, original_sounds_knife[6]))
{
emit_sound(id,channel, remplace_sounds_knife[6], volume, attenuation, fFlags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, original_sounds_knife[7]))
{
emit_sound(id,channel, remplace_sounds_knife[7], volume, attenuation, fFlags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, original_sounds_knife[8]))
{
emit_sound(id,channel, remplace_sounds_knife[8], volume, attenuation, fFlags, pitch)
return FMRES_SUPERCEDE
}
return PLUGIN_HANDLED
}

public Event_CurWeapon(id)
{
new Arma = read_data(2)

if(Arma == CSW_KNIFE)
{
set_pev( id, pev_viewmodel2, Knife )
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/




/*
Changelog:

v1.9
* Finally fixed voice control
* Added cvar to disable team change
* Fixed OldStyle team menu issue
* Fixed crowbar user + he damage issue

v1.8
* Fixed duel bug
* Fixed clcmd/concmd flags problem
* Added cell opener for maps with multi_manager
* Added cvar to enable last request
* Added cvar to enable motd

v1.7
* Fixed auto Simon mode

v1.6
* Updated dictionary
* Fixed last request abuse bug
* Fixed voice mode bugs
* Added auto team transfer to Guards that never been Simon
* Added auto disconnect to Spectators that doesn't join any team in 3 rounds
* Added blocking for hints messages
* Added auto door open on freeday
* Added /open command only for Simon

v1.5
* Improved team select code
* Improved team status code
* Updated dictionary
* Added custom model (using body+skin)
* Added sounds
* Added freeday menu command
* Added lastrequest menu command & functionalities
* Added help command
* Added last prisoner hud message
* Added cvar to change talk mode control (+simonvoice optional or required to talk)
* Added cvar to allow shooting func_button to activate it
* Added cvar to allow auto-freeday hud message after 60 seconds with no Simon selected
* Added cvar to force round end after some time of auto-freeday
* Added cvar to change game mode (classic counter for days)
* Added simon footsteps decals (controlled by cvar)
* Added restriction on HE for guards

v1.3
* First public release
*/

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#include <dhudmessage>

#pragma tabsize 0

#define PLUGIN_NAME "JailBreak Extreme"
#define PLUGIN_AUTHOR "JoRoPiTo"
#define PLUGIN_VERSION "1.9"
#define PLUGIN_CVAR "jbextreme"

#define TASK_STATUS 2487000
#define TASK_FREEDAY 2487100
#define TASK_ROUND 2487200
#define TASK_HELP 2487300
#define TASK_SAFETIME 2487400
#define TASK_FREEEND 2487500
#define TEAM_MENU "#Team_Select_Spect"
#define TEAM_MENU2 "#Team_Select_Spect"
#define HUD_DELAY Float:4.0
#define CELL_RADIUS Float:200.0

#define get_bit(%1,%2) ( %1 & 1 << ( %2 & 31 ) )
#define set_bit(%1,%2) %1 |= ( 1 << ( %2 & 31 ) )
#define clear_bit(%1,%2) %1 &= ~( 1 << ( %2 & 31 ) )

#define vec_len(%1) floatsqroot(%1[0] * %1[0] + %1[1] * %1[1] + %1[2] * %1[2])
#define vec_mul(%1,%2) ( %1[0] *= %2, %1[1] *= %2, %1[2] *= %2)
#define vec_copy(%1,%2) ( %2[0] = %1[0], %2[1] = %1[1],%2[2] = %1[2])

// Offsets
#define m_iPrimaryWeapon 116
#define m_iVGUI 510
#define m_fGameHUDInitialized 349
#define m_fNextHudTextArgsGameTime 198

enum _hud { _hudsync, Float:_x, Float:_y, Float:_time }
enum _lastrequest { _knife, _deagle, _freeday, _weapon }
enum _duel { _name[16], _csw, _entname[32], _opt[32], _sel[32] }

new gp_PrecacheSpawn
new gp_PrecacheKeyValue

new gp_CrowbarMax
new gp_CrowbarMul
new gp_TeamRatio
new gp_CtMax
new gp_BoxMax
new gp_TalkMode
new gp_VoiceBlock
new gp_RetryTime
new gp_RoundMax
new gp_ButtonShoot
new gp_SimonSteps
new gp_SimonRandom
new gp_GlowModels
new gp_AutoLastresquest
new gp_LastRequest
new gp_Motd
new gp_SpectRounds
new gp_NosimonRounds
new gp_AutoOpen
new gp_TeamChange

new g_MaxClients
new g_MsgStatusText
new g_MsgStatusIcon
new g_MsgVGUIMenu
new g_MsgShowMenu
new g_MsgClCorpse
new g_MsgMOTD

new gc_TalkMode
new gc_VoiceBlock
new gc_SimonSteps
new gc_ButtonShoot
new Float:gc_CrowbarMul

// Precache
new const _FistModels[][] = { "models/p_bknuckles.mdl", "models/v_bknuckles.mdl" }
new const _CrowbarModels[][] = { "models/p_crowbar.mdl", "models/v_crowbar.mdl" }
new const _FistSounds[][] = { "weapons/cbar_hitbod2.wav", "weapons/cbar_hitbod1.wav", "weapons/bullet_hit1.wav", "weapons/bullet_hit2.wav" }
new const _RemoveEntities[][] = {
"func_hostage_rescue", "info_hostage_rescue", "func_bomb_target", "info_bomb_target",
"hostage_entity", "info_vip_start", "func_vip_safetyzone", "func_escapezone"
}

new const _WeaponsFree[][] = { "weapon_scout", "weapon_deagle", "weapon_mac10", "weapon_elite", "weapon_ak47", "weapon_m4a1", "weapon_mp5navy" }
new const _WeaponsFreeCSW[] = { CSW_SCOUT, CSW_DEAGLE, CSW_MAC10, CSW_ELITE, CSW_AK47, CSW_M4A1, CSW_MP5NAVY }
new const _WeaponsFreeAmmo[] = { 90, 35, 100, 120, 90, 90, 120 }

new const _Duel[][_duel] =
{
{ "Deagle", CSW_DEAGLE, "weapon_deagle", "JBE_MENU_LASTREQ_OPT4", "JBE_MENU_LASTREQ_SEL4" },
{ "Scout", CSW_SCOUT, "weapon_scout", "JBE_MENU_LASTREQ_OPT5", "JBE_MENU_LASTREQ_SEL5" },
{ "Grenades", CSW_HEGRENADE, "weapon_hegrenade", "JBE_MENU_LASTREQ_OPT6", "JBE_MENU_LASTREQ_SEL6" },
{ "Awp", CSW_AWP, "weapon_awp", "JBE_MENU_LASTREQ_OPT7", "JBE_MENU_LASTREQ_SEL7" }
}

// Reasons
new const g_Reasons[][] = {
"",
"JBE_PRISONER_REASON_1",
"JBE_PRISONER_REASON_2",
"JBE_PRISONER_REASON_3",
"JBE_PRISONER_REASON_4",
"JBE_PRISONER_REASON_5",
"JBE_PRISONER_REASON_6"
}

// HudSync: 0=ttinfo / 1=info / 2=simon / 3=ctinfo / 4=player / 5=day / 6=center / 7=help / 8=timer
new const g_HudSync[][_hud] =
{
{0, 0.6, 0.2, 2.0},
{0, -1.0, 0.7, 5.0},
{0, 0.1, 0.2, 2.0},
{0, 0.1, 0.3, 2.0},
{0, -1.0, 0.9, 3.0},
{0, 0.6, 0.1, 3.0},
{0, -1.0, 0.6, 3.0},
{0, 0.8, 0.3, 20.0},
{0, -1.0, 0.4, 3.0}
}

// Colors: 0:Simon / 1:Freeday / 2:CT Duel / 3:TT Duel
new const g_Colors[][3] = { {0, 255, 0}, {255, 140, 0}, {0, 0, 255}, {255, 0, 0} }


new CsTeams:g_PlayerTeam[33]
new Float:g_SimonRandom
new Trie:g_CellManagers
new g_HelpText[512]
new g_JailDay
new g_PlayerJoin
new g_PlayerReason[33]
new g_PlayerSpect[33]
new g_PlayerSimon[33]
new g_PlayerNomic
new g_PlayerWanted
new g_PlayerCrowbar
new g_PlayerRevolt
new g_PlayerHelp
new g_PlayerFreeday
new g_PlayerLast
new g_FreedayAuto
new g_FreedayNext
new g_TeamCount[CsTeams]
new g_TeamAlive[CsTeams]
new g_BoxStarted
new g_CrowbarCount
new g_Simon
new g_SimonAllowed
new g_SimonTalking
new g_SimonVoice
new g_RoundStarted
new g_LastDenied
new g_Freeday
new g_BlockWeapons
new g_RoundEnd
new g_Duel
new g_DuelA
new g_DuelB
new g_SafeTime
new g_Buttons[10]

//---------------------
new notice_hud
//--------------------

public plugin_init()
{
unregister_forward(FM_Spawn, gp_PrecacheSpawn)
unregister_forward(FM_KeyValue, gp_PrecacheKeyValue)

register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_CVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)

register_dictionary("jbextreme.txt")

g_MsgStatusText = get_user_msgid("StatusText")
g_MsgStatusIcon = get_user_msgid("StatusIcon")
g_MsgVGUIMenu = get_user_msgid("VGUIMenu")
g_MsgShowMenu = get_user_msgid("ShowMenu")
g_MsgMOTD = get_user_msgid("MOTD")
g_MsgClCorpse = get_user_msgid("ClCorpse")

register_message(g_MsgStatusText, "msg_statustext")
register_message(g_MsgStatusIcon, "msg_statusicon")
register_message(g_MsgVGUIMenu, "msg_vguimenu")
register_message(g_MsgShowMenu, "msg_showmenu")
register_message(g_MsgMOTD, "msg_motd")
register_message(g_MsgClCorpse, "msg_clcorpse")
register_message(get_user_msgid("TextMsg"), "TextMsg")

register_event("CurWeapon", "current_weapon", "be", "1=1", "2=29")
register_event("StatusValue", "player_status", "be", "1=2", "2!0")
register_event("StatusValue", "player_status", "be", "1=1", "2=0")

register_impulse(100, "impulse_100")

RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "player_damage")
RegisterHam(Ham_TraceAttack, "player", "player_attack")
RegisterHam(Ham_TraceAttack, "func_button", "button_attack")
RegisterHam(Ham_Killed, "player", "player_killed", 1)
RegisterHam(Ham_Touch, "weapon_hegrenade", "player_touchweapon")
RegisterHam(Ham_Touch, "weaponbox", "player_touchweapon")
RegisterHam(Ham_Touch, "armoury_entity", "player_touchweapon")

register_forward(FM_SetClientKeyValue, "set_client_kv")
register_forward(FM_EmitSound, "sound_emit")
register_forward(FM_Voice_SetClientListening, "voice_listening")
register_forward(FM_CmdStart, "player_cmdstart", 1)

register_logevent("round_end", 2, "1=Round_End")
register_logevent("round_first", 2, "0=World triggered", "1&Restart_Round_")
register_logevent("round_first", 2, "0=World triggered", "1=Game_Commencing")
register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")

register_menucmd(register_menuid(TEAM_MENU), 51, "team_select")
register_menucmd(register_menuid(TEAM_MENU2), 51, "team_select")

register_clcmd("jointeam", "cmd_jointeam")
register_clcmd("joinclass", "cmd_joinclass")
register_clcmd("+simonvoice", "cmd_voiceon")
register_clcmd("-simonvoice", "cmd_voiceoff")

register_clcmd("say /fd", "cmd_freeday")
register_clcmd("say /freeday", "cmd_freeday")
register_clcmd("say /day", "cmd_freeday")
register_clcmd("say /lr", "cmd_lastrequest")
register_clcmd("say /lastrequest", "cmd_lastrequest")
register_clcmd("say /duel", "cmd_lastrequest")
register_clcmd("say /simon", "cmd_simon")
register_clcmd("say /open", "cmd_open")
register_clcmd("say /nomic", "cmd_nomic")
register_clcmd("say /box", "cmd_box")
register_clcmd("say /help", "cmd_help")

register_clcmd("jbe_freeday", "adm_freeday", ADMIN_KICK)
register_concmd("jbe_nomic", "adm_nomic", ADMIN_KICK)
register_concmd("jbe_open", "adm_open", ADMIN_KICK)
register_concmd("jbe_box", "adm_box", ADMIN_KICK)

gp_GlowModels = register_cvar("jbe_glowmodels", "0")
gp_SimonSteps = register_cvar("jbe_simonsteps", "1")
gp_CrowbarMul = register_cvar("jbe_crowbarmultiplier", "25.0")
gp_CrowbarMax = register_cvar("jbe_maxcrowbar", "1")
gp_TeamRatio = register_cvar("jbe_teamratio", "3")
gp_TeamChange = register_cvar("jbe_teamchange", "0") // 0-disable team change for tt / 1-enable team change
gp_CtMax = register_cvar("jbe_maxct", "6")
gp_BoxMax = register_cvar("jbe_boxmax", "6")
gp_RetryTime = register_cvar("jbe_retrytime", "10.0")
gp_RoundMax = register_cvar("jbe_freedayround", "240.0")
gp_AutoLastresquest = register_cvar("jbe_autolastrequest", "1")
gp_LastRequest = register_cvar("jbe_lastrequest", "1")
gp_Motd = register_cvar("jbe_motd", "1")
gp_SpectRounds = register_cvar("jbe_spectrounds", "3")
gp_NosimonRounds = register_cvar("jbe_nosimonrounds", "7")
gp_SimonRandom = register_cvar("jbe_randomsimon", "0")
gp_AutoOpen = register_cvar("jbe_autoopen", "1")
gp_TalkMode = register_cvar("jbe_talkmode", "2") // 0-alltak / 1-tt talk / 2-tt no talk
gp_VoiceBlock = register_cvar("jbe_blockvoice", "2") // 0-dont block / 1-block voicerecord / 2-block voicerecord except simon
gp_ButtonShoot = register_cvar("jbe_buttonshoot", "1") // 0-standard / 1-func_button shoots!

g_MaxClients = get_global_int(GL_maxClients)

for(new i = 0; i < sizeof(g_HudSync); i++)
g_HudSync[i][_hudsync] = CreateHudSyncObj()

formatex(g_HelpText, charsmax(g_HelpText), "%L^n^n%L^n^n%L^n^n%L",
LANG_SERVER, "JBE_HELP_TITLE",
LANG_SERVER, "JBE_HELP_BINDS",
LANG_SERVER, "JBE_HELP_GUARD_CMDS",
LANG_SERVER, "JBE_HELP_PRISONER_CMDS")

setup_buttons()

}

public plugin_precache()
{
notice_hud = CreateHudSyncObj(1)

static i
precache_model("models/player/jbemodel/jbemodel.mdl")

for(i = 0; i < sizeof(_FistModels); i++)
precache_model(_FistModels[i])

for(i = 0; i < sizeof(_CrowbarModels); i++)
precache_model(_CrowbarModels[i])

for(i = 0; i < sizeof(_FistSounds); i++)
precache_sound(_FistSounds[i])

precache_sound("jbextreme/nm_goodbadugly.wav")
precache_sound("jbextreme/brass_bell_C.wav")

g_CellManagers = TrieCreate()
gp_PrecacheSpawn = register_forward(FM_Spawn, "precache_spawn", 1)
gp_PrecacheKeyValue = register_forward(FM_KeyValue, "precache_keyvalue", 1)
}

public precache_spawn(ent)
{
if(is_valid_ent(ent))
{
static szClass[33]
entity_get_string(ent, EV_SZ_classname, szClass, sizeof(szClass))
for(new i = 0; i < sizeof(_RemoveEntities); i++)
if(equal(szClass, _RemoveEntities[i]))
remove_entity(ent)
}
}

public TextMsg()
{
new Msg_id[32]
get_msg_arg_string(2, Msg_id, sizeof Msg_id)

if(equal(Msg_id,"#Terrorists_Win"))
{
set_msg_arg_string(2 , "")
set_dhudmessage(255,0,0,-1.0, 0.21,1,3.0,4.0)
show_dhudmessage(0,"Prisoners Win!")

}
else if(equal(Msg_id,"#CTs_Win"))
{
set_msg_arg_string(2 , "")
set_dhudmessage(0,255,0,-1.0, 0.21,1,3.0,4.0)
show_dhudmessage(0,"Guardians Win!")
}
}

public precache_keyvalue(ent, kvd_handle)
{
static info[32]
if(!is_valid_ent(ent))
return FMRES_IGNORED

get_kvd(kvd_handle, KV_ClassName, info, charsmax(info))
if(!equal(info, "multi_manager"))
return FMRES_IGNORED

get_kvd(kvd_handle, KV_KeyName, info, charsmax(info))
TrieSetCell(g_CellManagers, info, ent)
return FMRES_IGNORED
}

public client_putinserver(id)
{
clear_bit(g_PlayerJoin, id)
clear_bit(g_PlayerHelp, id)
clear_bit(g_PlayerCrowbar, id)
clear_bit(g_PlayerNomic, id)
clear_bit(g_PlayerWanted, id)
clear_bit(g_SimonTalking, id)
clear_bit(g_SimonVoice, id)
g_PlayerSpect[id] = 0
g_PlayerSimon[id] = 0
}

public client_disconnect(id)
{
if(g_Simon == id)
{
g_Simon = 0
ClearSyncHud(0, g_HudSync[2][_hudsync])
player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_HASGONE")
}
else if(g_PlayerLast == id || (g_Duel && (id == g_DuelA || id == g_DuelB)))
{
g_Duel = 0
g_DuelA = 0
g_DuelB = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_PlayerLast = 0
}
team_count()
}

public client_PostThink(id)
{
if(id != g_Simon || !gc_SimonSteps || !is_user_alive(id) ||
!(entity_get_int(id, EV_INT_flags) & FL_ONGROUND) || entity_get_int(id, EV_ENT_groundentity))
return PLUGIN_CONTINUE

static Float:origin[3]
static Float:last[3]

entity_get_vector(id, EV_VEC_origin, origin)
if(get_distance_f(origin, last) < 32.0)
{
return PLUGIN_CONTINUE
}

vec_copy(origin, last)
if(entity_get_int(id, EV_INT_bInDuck))
origin[2] -= 18.0
else
origin[2] -= 36.0


message_begin(MSG_BROADCAST, SVC_TEMPENTITY, {0,0,0}, 0)
write_byte(TE_WORLDDECAL)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2]))
write_byte(105)
message_end()

return PLUGIN_CONTINUE
}


public msg_statustext(msgid, dest, id)
{
return PLUGIN_HANDLED
}

public msg_statusicon(msgid, dest, id)
{
static icon[5]
get_msg_arg_string(2, icon, charsmax(icon))
if(icon[0] == 'b' && icon[2] == 'y' && icon[3] == 'z')
{
set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0))
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public msg_vguimenu(msgid, dest, id)
{
static msgarg1
static CsTeams:team

msgarg1 = get_msg_arg_int(1)
if(msgarg1 == 2)
{
team = cs_get_user_team(id)
if((team == CS_TEAM_T) && !is_user_admin(id) && (is_user_alive(id) || !get_pcvar_num(gp_TeamChange)))
{
client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE")
return PLUGIN_HANDLED
}
show_menu(id, 51, TEAM_MENU, -1)
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public msg_showmenu(msgid, dest, id)
{
static msgarg1, roundloop
static CsTeams:team
msgarg1 = get_msg_arg_int(1)

if(msgarg1 != 531 && msgarg1 != 563)
return PLUGIN_CONTINUE

roundloop = floatround(get_pcvar_float(gp_RetryTime) / 2)
team = cs_get_user_team(id)

if(team == CS_TEAM_T)
{
if(!is_user_admin(id) && (is_user_alive(id) || (g_RoundStarted >= roundloop) || !get_pcvar_num(gp_TeamChange)))
{
client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE")
return PLUGIN_HANDLED
}
else
{
show_menu(id, 51, TEAM_MENU, -1)
return PLUGIN_HANDLED
}
}
else
{
show_menu(id, 51, TEAM_MENU, -1)
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public msg_motd(msgid, dest, id)
{
if(get_pcvar_num(gp_Motd))
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

public msg_clcorpse(msgid, dest, id)
{
return PLUGIN_HANDLED
}

public current_weapon(id)
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE

if(get_bit(g_PlayerCrowbar, id))
{
set_pev(id, pev_viewmodel2, _CrowbarModels[1])
set_pev(id, pev_weaponmodel2, _CrowbarModels[0])
}
else
{
set_pev(id, pev_viewmodel2, _FistModels[1])
set_pev(id, pev_weaponmodel2, _FistModels[0])
}
return PLUGIN_CONTINUE
}

public player_status(id)
{
static type, player, CsTeams:team, name[32], health
type = read_data(1)
player = read_data(2)
switch(type)
{
case(1):
{
ClearSyncHud(id, g_HudSync[1][_hudsync])
}
case(2):
{
team = cs_get_user_team(player)
if((team != CS_TEAM_T) && (team != CS_TEAM_CT))
return PLUGIN_HANDLED

health = get_user_health(player)
get_user_name(player, name, charsmax(name))
player_hudmessage(id, 2, 5.0, {0, 255, 0}, "%L", LANG_SERVER,
(team == CS_TEAM_T) ? "JBE_PRISONER_STATUS" : "JBE_GUARD_STATUS", name, health)
}
}

return PLUGIN_HANDLED
}

public impulse_100(id)
{
if(cs_get_user_team(id) == CS_TEAM_T)
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

public player_spawn(id)
{
static CsTeams:team

if(!is_user_connected(id))
return HAM_IGNORED

set_pdata_float(id, m_fNextHudTextArgsGameTime, get_gametime() + 999999.0)
player_strip_weapons(id)
if(g_RoundEnd)
{
g_RoundEnd = 0
g_JailDay++
}

set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)

clear_bit(g_PlayerCrowbar, id)
clear_bit(g_PlayerWanted, id)
team = cs_get_user_team(id)

switch(team)
{
case(CS_TEAM_T):
{
g_PlayerLast = 0
if(!g_PlayerReason[id])
g_PlayerReason[id] = random_num(1, 6)

player_hudmessage(id, 0, 5.0, {255, 0, 255}, "%L %L", LANG_SERVER, "JBE_PRISONER_REASON",
LANG_SERVER, g_Reasons[g_PlayerReason[id]])

set_user_info(id, "model", "jbemodel")
entity_set_int(id, EV_INT_body, 2)
if(is_freeday() || get_bit(g_FreedayAuto, id))
{
freeday_set(0, id)
clear_bit(g_FreedayAuto, id)
}
else
{
entity_set_int(id, EV_INT_skin, random_num(0, 2))
}

if(g_CrowbarCount < get_pcvar_num(gp_CrowbarMax))
{
if(random_num(0, g_MaxClients) > (g_MaxClients / 2))
{
g_CrowbarCount++
set_bit(g_PlayerCrowbar, id)
}
}
cs_set_user_armor(id, 0, CS_ARMOR_NONE)
}
case(CS_TEAM_CT):
{
g_PlayerSimon[id]++
set_user_info(id, "model", "jbemodel")
entity_set_int(id, EV_INT_body, 3)
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
}
}
first_join(id)
return HAM_IGNORED
}

public player_damage(victim, ent, attacker, Float:damage, bits)
{
if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
return HAM_IGNORED

switch(g_Duel)
{
case(0):
{
if(attacker == ent && get_user_weapon(attacker) == CSW_KNIFE && get_bit(g_PlayerCrowbar, attacker) && cs_get_user_team(victim) != CS_TEAM_T)
{
SetHamParamFloat(4, damage * gc_CrowbarMul)
return HAM_OVERRIDE
}
}
case(2):
{
if(attacker != g_PlayerLast)
return HAM_SUPERCEDE
}
default:
{
if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA))
return HAM_IGNORED

return HAM_SUPERCEDE
}
}

return HAM_IGNORED
}

public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
{
static CsTeams:vteam, CsTeams:ateam
if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
return HAM_IGNORED

vteam = cs_get_user_team(victim)
ateam = cs_get_user_team(attacker)

if(ateam == CS_TEAM_CT && vteam == CS_TEAM_CT)
return HAM_SUPERCEDE

switch(g_Duel)
{
case(0):
{
if(ateam == CS_TEAM_CT && vteam == CS_TEAM_T)
{
if(get_bit(g_PlayerRevolt, victim))
{
clear_bit(g_PlayerRevolt, victim)
hud_status(0)
}
return HAM_IGNORED
}
}
case(2):
{
if(attacker != g_PlayerLast)
return HAM_SUPERCEDE
}
default:
{
if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA))
return HAM_IGNORED

return HAM_SUPERCEDE
}
}

if(ateam == CS_TEAM_T && vteam == CS_TEAM_T && !g_BoxStarted)
return HAM_SUPERCEDE

if(ateam == CS_TEAM_T && vteam == CS_TEAM_CT)
{
if(!g_PlayerRevolt)
revolt_start()

set_bit(g_PlayerRevolt, attacker)
}

return HAM_IGNORED
}

public button_attack(button, id, Float:damage, Float:direction[3], tracehandle, damagebits)
{
if(is_valid_ent(button) && gc_ButtonShoot)
{
ExecuteHamB(Ham_Use, button, id, 0, 2, 1.0)
entity_set_float(button, EV_FL_frame, 0.0)
}

return HAM_IGNORED
}

public player_killed(victim, attacker, shouldgib)
{
static CsTeams:vteam, CsTeams:kteam
if(!(0 < attacker <= g_MaxClients) || !is_user_connected(attacker))
kteam = CS_TEAM_UNASSIGNED
else
kteam = cs_get_user_team(attacker)

vteam = cs_get_user_team(victim)
if(g_Simon == victim)
{
g_Simon = 0
ClearSyncHud(0, g_HudSync[2][_hudsync])
player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_KILLED")
}

switch(g_Duel)
{
case(0):
{
switch(vteam)
{
case(CS_TEAM_CT):
{
if(kteam == CS_TEAM_T && !get_bit(g_PlayerWanted, attacker))
{
set_bit(g_PlayerWanted, attacker)
entity_set_int(attacker, EV_INT_skin, 4)
}
}
case(CS_TEAM_T):
{
clear_bit(g_PlayerRevolt, victim)
clear_bit(g_PlayerWanted, victim)
}
}
}
default:
{
if(g_Duel != 2 && (attacker == g_DuelA || attacker == g_DuelB))
{
set_user_rendering(victim, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
set_user_rendering(attacker, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
g_Duel = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_PlayerLast = 0
team_count()
}
}
}
hud_status(0)
return HAM_IGNORED
}

public player_touchweapon(id, ent)
{
static model[32], class[32]
if(g_BlockWeapons)
return HAM_SUPERCEDE

if(is_valid_ent(id) && g_Duel != 6 && is_user_alive(ent) && cs_get_user_team(ent) == CS_TEAM_CT)
{
entity_get_string(id, EV_SZ_model, model, charsmax(model))
if(model[7] == 'w' && model[9] == 'h' && model[10] == 'e' && model[11] == 'g')
{
entity_get_string(id, EV_SZ_classname, class, charsmax(class))
if(equal(class, "weapon_hegrenade"))
remove_entity(id)

return HAM_SUPERCEDE
}

}

return HAM_IGNORED
}

public set_client_kv(id, const info[], const key[])
{
if(equal(key, "model"))
return FMRES_SUPERCEDE

return FMRES_IGNORED
}

public sound_emit(id, channel, sample[])
{
if(is_user_alive(id) && equal(sample, "weapons/knife_", 14))
{
switch(sample[17])
{
case('b'):
{
emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
case('w'):
{
emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
}
case('1', '2'):
{
emit_sound(id, CHAN_WEAPON, "weapons/bullet_hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM)
}
}
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}

public voice_listening(receiver, sender, bool:listen)
{
if((receiver == sender))
return FMRES_IGNORED

if(is_user_admin(sender))
{
engfunc(EngFunc_SetClientListening, receiver, sender, true)
return FMRES_SUPERCEDE
}

switch(gc_VoiceBlock)
{
case(2):
{
if((sender != g_Simon) && (!get_bit(g_SimonVoice, sender) && gc_VoiceBlock))
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}
}
case(1):
{
if(!get_bit(g_SimonVoice, sender) && gc_VoiceBlock)
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}
}
}
if(!is_user_alive(sender))
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}

if(sender == g_Simon)
{
engfunc(EngFunc_SetClientListening, receiver, sender, true)
return FMRES_SUPERCEDE
}

listen = true

if(g_SimonTalking && (sender != g_Simon))
{
listen = false
}
else
{
static CsTeams:steam
steam = cs_get_user_team(sender)
switch(gc_TalkMode)
{
case(2):
{
listen = (steam == CS_TEAM_CT)
}
case(1):
{
listen = (steam == CS_TEAM_CT || steam == CS_TEAM_T)
}
}
}

engfunc(EngFunc_SetClientListening, receiver, sender, listen)
return FMRES_SUPERCEDE
}

public player_cmdstart(id, uc, random)
{
if(g_Duel > 3)
{
cs_set_user_bpammo(id, _Duel[g_Duel - 4][_csw], 1)
}
}

public round_first()
{
g_JailDay = 0
for(new i = 1; i <= g_MaxClients; i++)
g_PlayerSimon[i] = 0

set_cvar_num("sv_alltalk", 1)
set_cvar_num("mp_roundtime", 2)
set_cvar_num("mp_limitteams", 0)
set_cvar_num("mp_autoteambalance", 0)
set_cvar_num("mp_tkpunish", 0)
set_cvar_num("mp_friendlyfire", 1)
round_end()
}

public round_end()
{
static CsTeams:team
static maxnosimon, spectrounds
g_SafeTime = 0
g_PlayerRevolt = 0
g_PlayerFreeday = 0
g_PlayerLast = 0
g_BoxStarted = 0
g_CrowbarCount = 0
g_Simon = 0
g_SimonAllowed = 0
g_RoundStarted = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_TeamCount[CS_TEAM_T] = 0
g_TeamCount[CS_TEAM_CT] = 0
g_Freeday = 0
g_FreedayNext = (random_num(0,99) >= 95)
g_RoundEnd = 1
g_Duel = 0

remove_task(TASK_STATUS)
remove_task(TASK_FREEDAY)
remove_task(TASK_FREEEND)
remove_task(TASK_ROUND)
maxnosimon = get_pcvar_num(gp_NosimonRounds)
spectrounds = get_pcvar_num(gp_SpectRounds)
for(new i = 1; i <= g_MaxClients; i++)
{
if(!is_user_connected(i))
continue

menu_cancel(i)
team = cs_get_user_team(i)
player_strip_weapons(i)
switch(team)
{
case(CS_TEAM_CT):
{
if(g_PlayerSimon[i] > maxnosimon)
{
cmd_nomic(i)
}
}
case(CS_TEAM_SPECTATOR,CS_TEAM_UNASSIGNED):
{
g_PlayerSpect[i]++
if(g_PlayerSpect[i] > spectrounds)
{
client_cmd(i, "disconnect")
server_print("JBE Disconnected spectator client #%i", i)
}
else
{
show_menu(i, 51, TEAM_MENU, -1)
}
}
}
}
for(new i = 0; i < sizeof(g_HudSync); i++)
ClearSyncHud(0, g_HudSync[i][_hudsync])

}

public round_start()
{
if(g_RoundEnd)
return

team_count()
if(!g_Simon && is_freeday())
{
g_Freeday = 1
emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
check_freeday(TASK_FREEDAY)
}
else
{
set_task(60.0, "check_freeday", TASK_FREEDAY)
}
set_task(HUD_DELAY, "hud_status", TASK_STATUS, _, _, "b")
set_task(get_pcvar_float(gp_RetryTime) + 1.0, "safe_time", TASK_SAFETIME)
set_task(120.0, "freeday_end", TASK_FREEDAY)
g_SimonRandom = get_pcvar_num(gp_SimonRandom) ? random_float(15.0, 45.0) : 0.0
g_SimonAllowed = 1
g_FreedayNext = 0

}

public cmd_jointeam(id)
{
return PLUGIN_HANDLED
}

public cmd_joinclass(id)
{
return PLUGIN_HANDLED
}

public cmd_voiceon(id)
{
client_cmd(id, "+voicerecord")
set_bit(g_SimonVoice, id)
if(g_Simon == id || is_user_admin(id))
set_bit(g_SimonTalking, id)

return PLUGIN_HANDLED
}

public cmd_voiceoff(id)
{
client_cmd(id, "-voicerecord")
clear_bit(g_SimonVoice, id)
if(g_Simon == id || is_user_admin(id))
clear_bit(g_SimonTalking, id)

return PLUGIN_HANDLED
}


public cmd_simon(id)
{
static CsTeams:team, name[32]
if(!is_user_connected(id))
return PLUGIN_HANDLED

team = cs_get_user_team(id)
if(g_SimonAllowed && !g_Freeday && is_user_alive(id) && team == CS_TEAM_CT && !g_Simon)
{
g_Simon = id
get_user_name(id, name, charsmax(name))
entity_set_int(id, EV_INT_body, 1)
g_PlayerSimon[id]--
if(get_pcvar_num(gp_GlowModels))
player_glow(id, g_Colors[0])

hud_status(0)
}
return PLUGIN_HANDLED
}


public cmd_open(id)
{
if(id == g_Simon)
jail_open()

return PLUGIN_HANDLED
}

public cmd_nomic(id)
{
static CsTeams:team
team = cs_get_user_team(id)
if(team == CS_TEAM_CT)
{
server_print("JBE Transfered guard to prisoners team client #%i", id)
if(g_Simon == id)
{
g_Simon = 0
player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_TRANSFERED")
}
if(!is_user_admin(id))
set_bit(g_PlayerNomic, id)

user_silentkill(id)
cs_set_user_team(id, CS_TEAM_T)
}
return PLUGIN_HANDLED
}

public cmd_box(id)
{
static i
if((id < 0) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT))
{
if(g_TeamAlive[CS_TEAM_T] <= get_pcvar_num(gp_BoxMax) && g_TeamAlive[CS_TEAM_T] > 1)
{
for(i = 1; i <= g_MaxClients; i++)
if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
set_user_health(i, 100)

set_cvar_num("mp_tkpunish", 0)
set_cvar_num("mp_friendlyfire", 1)
g_BoxStarted = 1
player_hudmessage(0, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_BOX")
}
else
{
player_hudmessage(id, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_CANTBOX")
}
}
return PLUGIN_HANDLED
}

public cmd_help(id)
{
if(id > g_MaxClients)
id -= TASK_HELP

remove_task(TASK_HELP + id)
switch(get_bit(g_PlayerHelp, id))
{
case(0):
{
set_bit(g_PlayerHelp, id)
player_hudmessage(id, 7, 15.0, {230, 100, 10}, "%s", g_HelpText)
set_task(15.0, "cmd_help", TASK_HELP + id)
}
default:
{
clear_bit(g_PlayerHelp, id)
ClearSyncHud(id, g_HudSync[7][_hudsync])
}
}
}

public cmd_freeday(id)
{
static menu, menuname[32], option[64]
if(!is_freeday() && ((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id)))
{
formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_FREEDAY")
menu = menu_create(menuname, "freeday_choice")

formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_PLAYER")
menu_additem(menu, option, "1", 0)

formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_ALL")
menu_additem(menu, option, "2", 0)

menu_display(id, menu)
}
return PLUGIN_HANDLED
}

public cmd_freeday_player(id)
{
if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id))
menu_players(id, CS_TEAM_T, id, 1, "freeday_select", "%L", LANG_SERVER, "JBE_MENU_FREEDAY")

return PLUGIN_CONTINUE
}

public cmd_lastrequest(id)
{
static i, num[5], menu, menuname[32], option[64]
if(!get_pcvar_num(gp_LastRequest) || g_Freeday || g_LastDenied || id != g_PlayerLast || g_RoundEnd || get_bit(g_PlayerWanted, id) || get_bit(g_PlayerFreeday, id) || !is_user_alive(id))
return PLUGIN_CONTINUE

formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_LASTREQ")
menu = menu_create(menuname, "lastrequest_select")

formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT1")
menu_additem(menu, option, "1", 0)

formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT2")
menu_additem(menu, option, "2", 0)

formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT3")
menu_additem(menu, option, "3", 0)

for(i = 0; i < sizeof(_Duel); i++)
{
num_to_str(i + 4, num, charsmax(num))
formatex(option, charsmax(option), "%L", LANG_SERVER, _Duel[i][_opt])
menu_additem(menu, option, num, 0)
}

menu_display(id, menu)
return PLUGIN_CONTINUE
}

public adm_freeday(id)
{
static player, user[32]
if(!is_user_admin(id))
return PLUGIN_CONTINUE

read_argv(1, user, charsmax(user))
player = cmd_target(id, user, 2)
if(is_user_connected(player) && cs_get_user_team(player) == CS_TEAM_T)
{
freeday_set(id, player)
}
return PLUGIN_HANDLED
}

public adm_nomic(id)
{
static player, user[32]
if(id == 0 || is_user_admin(id))
{
read_argv(1, user, charsmax(user))
player = cmd_target(id, user, 3)
if(is_user_connected(player))
{
cmd_nomic(player)
}
}
return PLUGIN_HANDLED
}

public adm_open(id)
{
if(!is_user_admin(id))
return PLUGIN_CONTINUE

jail_open()
return PLUGIN_HANDLED
}

public adm_box(id)
{
if(!is_user_admin(id))
return PLUGIN_CONTINUE

cmd_box(-1)
return PLUGIN_HANDLED
}

public team_select(id, key)
{
static CsTeams:team, roundloop, admin

roundloop = get_pcvar_num(gp_RetryTime) / 2
team = cs_get_user_team(id)
admin = is_user_admin(id)
team_count()

if(!admin && (team == CS_TEAM_UNASSIGNED) && (g_RoundStarted >= roundloop) && g_TeamCount[CS_TEAM_CT] && g_TeamCount[CS_TEAM_T] && !is_user_alive(id))
{
team_join(id, CS_TEAM_SPECTATOR)
client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTJOIN")
return PLUGIN_HANDLED
}


switch(key)
{
case(0):
{
if(team == CS_TEAM_T)
return PLUGIN_HANDLED

g_PlayerReason[id] = random_num(1, 6)

team_join(id, CS_TEAM_T)
}
case(1):
{
if(team == CS_TEAM_CT || (!admin && get_bit(g_PlayerNomic, id)))
return PLUGIN_HANDLED

if(g_TeamCount[CS_TEAM_CT] < ctcount_allowed() || admin)
team_join(id, CS_TEAM_CT)
else
client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CTFULL")
}
case(5):
{
user_silentkill(id)
team_join(id, CS_TEAM_SPECTATOR)
}
}
return PLUGIN_HANDLED
}

public team_join(id, CsTeams:team)
{
static restore, vgui, msgblock

restore = get_pdata_int(id, m_iVGUI)
vgui = restore & (1<<0)
if(vgui)
set_pdata_int(id, m_iVGUI, restore & ~(1<<0))

switch(team)
{
case CS_TEAM_SPECTATOR:
{
msgblock = get_msg_block(g_MsgShowMenu)
set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
dllfunc(DLLFunc_ClientPutInServer, id)
set_msg_block(g_MsgShowMenu, msgblock)
set_pdata_int(id, m_fGameHUDInitialized, 1)
engclient_cmd(id, "jointeam", "6")
}
case CS_TEAM_T, CS_TEAM_CT:
{
msgblock = get_msg_block(g_MsgShowMenu)
set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
engclient_cmd(id, "jointeam", (team == CS_TEAM_CT) ? "2" : "1")
engclient_cmd(id, "joinclass", "1")
set_msg_block(g_MsgShowMenu, msgblock)
g_PlayerSpect[id] = 0
}
}

if(vgui)
set_pdata_int(id, m_iVGUI, restore)
}

public team_count()
{
static CsTeams:team, last
g_TeamCount[CS_TEAM_UNASSIGNED] = 0
g_TeamCount[CS_TEAM_T] = 0
g_TeamCount[CS_TEAM_CT] = 0
g_TeamCount[CS_TEAM_SPECTATOR] = 0
g_TeamAlive[CS_TEAM_UNASSIGNED] = 0
g_TeamAlive[CS_TEAM_T] = 0
g_TeamAlive[CS_TEAM_CT] = 0
g_TeamAlive[CS_TEAM_SPECTATOR] = 0
for(new i = 1; i <= g_MaxClients; i++)
{
if(is_user_connected(i))
{
team = cs_get_user_team(i)
g_TeamCount[team]++
g_PlayerTeam[i] = team
if(is_user_alive(i))
{
g_TeamAlive[team]++
if(team == CS_TEAM_T)
last = i
}
}
else
{
g_PlayerTeam[i] = CS_TEAM_UNASSIGNED
}
}
if(g_TeamAlive[CS_TEAM_T] == 1)
{
if(last != g_PlayerLast && g_SafeTime)
{
prisoner_last(last)
}
}
else
{
if(g_Duel || g_DuelA || g_DuelB)
{
if(is_user_alive(g_DuelA))
{
set_user_rendering(g_DuelA, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
player_strip_weapons(g_DuelA)
}

if(is_user_alive(g_DuelB))
{
set_user_rendering(g_DuelB, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
player_strip_weapons(g_DuelB)
}

}
g_PlayerLast = 0
g_DuelA = 0
g_DuelB = 0
g_Duel = 0
}
}

public revolt_start()
{
client_cmd(0,"speak ambience/siren")
set_task(8.0, "stop_sound")
hud_status(0)
}

public stop_sound(task)
{
client_cmd(0, "stopsound")
}

public hud_status(task)
{
static i, n
new name[32], szStatus[64], wanted[1024]

if(g_RoundStarted < (get_pcvar_num(gp_RetryTime) / 2))
g_RoundStarted++

if(!g_Freeday && !g_Simon && g_SimonAllowed && (0.0 < g_SimonRandom < get_gametime()))
{
//cmd_simon(random_num(1, g_MaxClients))
}

n = 0
formatex(wanted, charsmax(wanted), "%L", LANG_SERVER, "JBE_PRISONER_WANTED")
n = strlen(wanted)
for(i = 0; i < g_MaxClients; i++)
{
if(get_bit(g_PlayerWanted, i) && is_user_alive(i) && n < charsmax(wanted))
{
get_user_name(i, name, charsmax(name))
n += copy(wanted[n], charsmax(wanted) - n, "^n^t")
n += copy(wanted[n], charsmax(wanted) - n, name)
}
}

team_count()
set_hudmessage(random(255),random(255),random(255) ,0.0, 0.90, 0, 6.0, 4.0)
ShowSyncHudMsg(0,notice_hud, "%L", LANG_SERVER, "JBE_STATUS", g_TeamAlive[CS_TEAM_T], g_TeamCount[CS_TEAM_T])
/*
formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "JBE_STATUS", g_TeamAlive[CS_TEAM_T], g_TeamCount[CS_TEAM_T])
message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0)
write_byte(0)
write_string(szStatus)
message_end()
*/

if(g_Simon)
{
get_user_name(g_Simon, name, charsmax(name))
player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_SIMON_FOLLOW", name)
}
else if(g_Freeday)
{
player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_FREEDAY")
}

if(g_PlayerWanted)
player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 25, 50}, "%s", wanted)
else if(g_PlayerRevolt)
player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 25, 50}, "%L", LANG_SERVER, "JBE_PRISONER_REVOLT")

player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_DAY", g_JailDay)

gc_TalkMode = get_pcvar_num(gp_TalkMode)
gc_VoiceBlock = get_pcvar_num(gp_VoiceBlock)
gc_SimonSteps = get_pcvar_num(gp_SimonSteps)
gc_ButtonShoot = get_pcvar_num(gp_ButtonShoot)
gc_CrowbarMul = get_pcvar_float(gp_CrowbarMul)

}

public safe_time(task)
{
g_SafeTime = 1
}

public check_freeday(task)
{
static Float:roundmax, i
if(!g_Simon && !g_PlayerLast)
{
g_Freeday = 1
hud_status(0)
roundmax = get_pcvar_float(gp_RoundMax)
if(roundmax > 0.0)
{
for(i = 1; i <= g_MaxClients; i++)
{
if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
freeday_set(0, i)
}
emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDTIMER", floatround(roundmax - 60.0))
remove_task(TASK_ROUND)
set_task(roundmax - 60.0, "check_end", TASK_ROUND)
}
}

if(get_pcvar_num(gp_AutoOpen))
jail_open()
}

public freeday_end(task)
{
if(g_Freeday || g_PlayerFreeday)
{
emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDFREEDAY")
}
}

public check_end(task)
{
team_count()
for(new i = 1; i <= g_MaxClients; i++)
{
if(g_PlayerTeam[i] == CS_TEAM_T && is_user_alive(i))
{
user_silentkill(i)
cs_set_user_deaths(i, get_user_deaths(i) - 1)
}
}
for(new i = 1; i <= g_MaxClients; i++)
{
if(g_PlayerTeam[i] == CS_TEAM_CT && is_user_alive(i))
{
user_silentkill(i)
cs_set_user_deaths(i, get_user_deaths(i) - 1)
}
}
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ROUNDEND")
}

public prisoner_last(id)
{
static name[32], Float:roundmax
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
{
roundmax = get_pcvar_float(gp_RoundMax)
get_user_name(id, name, charsmax(name))
g_PlayerLast = id
player_hudmessage(0, 6, 5.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_PRISONER_LAST", name)
remove_task(TASK_ROUND)
if(roundmax > 0.0)
{
player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDTIMER", floatround(roundmax - 60.0))
set_task(roundmax - 60.0, "check_end", TASK_ROUND)
}
if((g_TeamAlive[CS_TEAM_CT] > 0) && get_pcvar_num(gp_AutoLastresquest))
cmd_lastrequest(id)
}
}

public freeday_select(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

static dst[32], data[5], player, access, callback

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
player = str_to_num(data)
freeday_set(id, player)
return PLUGIN_HANDLED
}

public duel_knives(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
g_LastDenied = 0
return PLUGIN_HANDLED
}

static dst[32], data[5], access, callback, option[128], player, src[32]

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
get_user_name(id, src, charsmax(src))
player = str_to_num(data)
formatex(option, charsmax(option), "%L^n%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL3", src, LANG_SERVER, "JBE_MENU_DUEL_SEL", src, dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

g_DuelA = id
clear_bit(g_PlayerCrowbar, id)
player_strip_weapons(id)
player_glow(id, g_Colors[3])
set_user_health(id, 100)

g_DuelB = player
player_strip_weapons(player)
player_glow(player, g_Colors[2])
set_user_health(player, 100)
g_BlockWeapons = 1
return PLUGIN_HANDLED
}

public duel_guns(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
g_LastDenied = 0
g_Duel = 0
return PLUGIN_HANDLED
}

static gun, dst[32], data[5], access, callback, option[128], player, src[32]

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
get_user_name(id, src, charsmax(src))
player = str_to_num(data)
formatex(option, charsmax(option), "%L^n%L", LANG_SERVER, _Duel[g_Duel - 4][_sel], src, LANG_SERVER, "JBE_MENU_DUEL_SEL", src, dst)
emit_sound(0, CHAN_AUTO, "jbextreme/nm_goodbadugly.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

g_DuelA = id
clear_bit(g_PlayerCrowbar, id)
player_strip_weapons(id)
gun = give_item(id, _Duel[g_Duel - 4][_entname])
cs_set_weapon_ammo(gun, 1)
set_user_health(id, 100)
player_glow(id, g_Colors[3])

g_DuelB = player
player_strip_weapons(player)
gun = give_item(player, _Duel[g_Duel - 4][_entname])
cs_set_weapon_ammo(gun, 1)
set_user_health(player, 100)
player_glow(player, g_Colors[2])

g_BlockWeapons = 1
return PLUGIN_HANDLED
}

public freeday_choice(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

static dst[32], data[5], access, callback

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
menu_destroy(menu)
get_user_name(id, dst, charsmax(dst))
switch(data[0])
{
case('1'):
{
cmd_freeday_player(id)
}
case('2'):
{
if((id == g_Simon) || is_user_admin(id))
{
g_Simon = 0
get_user_name(id, dst, charsmax(dst))
client_print(0, print_console, "%s gives freeday for everyone", dst)
server_print("JBE Client %i gives freeday for everyone", id)
check_freeday(TASK_FREEDAY)
}
}
}
return PLUGIN_HANDLED
}

public lastrequest_select(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

static i, dst[32], data[5], access, callback, option[64]

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
get_user_name(id, dst, charsmax(dst))
switch(data[0])
{
case('1'):
{
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL1", dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
set_bit(g_FreedayAuto, id)
user_silentkill(id)
}
case('2'):
{
formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL2", dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
g_Duel = 2
player_strip_weapons_all()
i = random_num(0, sizeof(_WeaponsFree) - 1)
give_item(id, _WeaponsFree[i])
g_BlockWeapons = 1
cs_set_user_bpammo(id, _WeaponsFreeCSW[i], _WeaponsFreeAmmo[i])
}
case('3'):
{
g_Duel = 3
menu_players(id, CS_TEAM_CT, 0, 1, "duel_knives", "%L", LANG_SERVER, "JBE_MENU_DUEL")
}
default:
{
g_Duel = str_to_num(data)
menu_players(id, CS_TEAM_CT, 0, 1, "duel_guns", "%L", LANG_SERVER, "JBE_MENU_DUEL")
}
}
g_LastDenied = 1
menu_destroy(menu)
return PLUGIN_HANDLED
}

public setup_buttons()
{
new ent[3]
new Float:origin[3]
new info[32]
new pos

while((pos <= sizeof(g_Buttons)) && (ent[0] = engfunc(EngFunc_FindEntityByString, ent[0], "classname", "info_player_deathmatch")))
{
pev(ent[0], pev_origin, origin)
while((ent[1] = engfunc(EngFunc_FindEntityInSphere, ent[1], origin, CELL_RADIUS)))
{
if(!is_valid_ent(ent[1]))
continue

entity_get_string(ent[1], EV_SZ_classname, info, charsmax(info))
if(!equal(info, "func_door"))
continue

entity_get_string(ent[1], EV_SZ_targetname, info, charsmax(info))
if(!info[0])
continue

if(TrieKeyExists(g_CellManagers, info))
{
TrieGetCell(g_CellManagers, info, ent[2])
}
else
{
ent[2] = engfunc(EngFunc_FindEntityByString, 0, "target", info)
}

if(is_valid_ent(ent[2]) && (in_array(ent[2], g_Buttons, sizeof(g_Buttons)) < 0))
{
g_Buttons[pos] = ent[2]
pos++
break
}
}
}
TrieDestroy(g_CellManagers)
}

stock in_array(needle, data[], size)
{
for(new i = 0; i < size; i++)
{
if(data[i] == needle)
return i
}
return -1
}

stock freeday_set(id, player)
{
static src[32], dst[32]
get_user_name(player, dst, charsmax(dst))

if(is_user_alive(player) && !get_bit(g_PlayerWanted, player))
{
set_bit(g_PlayerFreeday, player)
entity_set_int(player, EV_INT_skin, 3)
if(get_pcvar_num(gp_GlowModels))
player_glow(player, g_Colors[1])

if(0 < id <= g_MaxClients)
{
get_user_name(id, src, charsmax(src))
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_GUARD_FREEDAYGIVE", src, dst)
}
else if(!is_freeday())
{
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_PRISONER_HASFREEDAY", dst)
}
}
}

stock first_join(id)
{
if(!get_bit(g_PlayerJoin, id))
{
set_bit(g_PlayerJoin, id)
clear_bit(g_PlayerHelp, id)
set_task(5.0, "cmd_help", TASK_HELP + id)
}
}

stock ctcount_allowed()
{
static count
count = ((g_TeamCount[CS_TEAM_T] + g_TeamCount[CS_TEAM_CT]) / get_pcvar_num(gp_TeamRatio))
if(count < 2)
count = 2
else if(count > get_pcvar_num(gp_CtMax))
count = get_pcvar_num(gp_CtMax)

return count
}

stock player_hudmessage(id, hudid, Float:time = 0.0, color[3] = {0, 255, 0}, msg[], any:...)
{
static text[512], Float:x, Float:y
x = g_HudSync[hudid][_x]
y = g_HudSync[hudid][_y]

if(time > 0)
set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, time, 0.00, 0.00)
else
set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, g_HudSync[hudid][_time], 0.00, 0.00)

vformat(text, charsmax(text), msg, 6)
ShowSyncHudMsg(id, g_HudSync[hudid][_hudsync], text)
}

stock menu_players(id, CsTeams:team, skip, alive, callback[], title[], any:...)
{
static i, name[32], num[5], menu, menuname[32]
vformat(menuname, charsmax(menuname), title, 7)
menu = menu_create(menuname, callback)
for(i = 1; i <= g_MaxClients; i++)
{
if(!is_user_connected(i) || (alive && !is_user_alive(i)) || (skip == i))
continue

if(!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT) && (cs_get_user_team(i) == team)))
{
get_user_name(i, name, charsmax(name))
num_to_str(i, num, charsmax(num))
menu_additem(menu, name, num, 0)
}
}
menu_display(id, menu)
}

stock player_glow(id, color[3], amount=40)
{
set_user_rendering(id, kRenderFxGlowShell, color[0], color[1], color[2], kRenderNormal, amount)
}

stock player_strip_weapons(id)
{
strip_user_weapons(id)
give_item(id, "weapon_knife")
set_pdata_int(id, m_iPrimaryWeapon, 0)
}

stock player_strip_weapons_all()
{
for(new i = 1; i <= g_MaxClients; i++)
{
if(is_user_alive(i))
{
player_strip_weapons(i)
}
}
}

stock is_freeday()
{
return (g_FreedayNext || g_Freeday || (g_JailDay == 1))
}

public jail_open()
{
static i
for(i = 0; i < sizeof(g_Buttons); i++)
{
if(g_Buttons[i])
{
ExecuteHamB(Ham_Use, g_Buttons[i], 0, 0, 1, 1.0)
entity_set_float(g_Buttons[i], EV_FL_frame, 0.0)
}
}
}

stock GetRandomPlayer(const flags[]="", const teamORname[]="" )
{
new players [ 32 ], pnum;
get_players ( players, pnum, flags, teamORname );

return ( pnum > 0 ) ? players [ random ( pnum ) ] : 0
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/



Fişierul .cfg al plugin-ului de mai sus.
[en]
JBE_TEAM_CANTCHANGE = Nu poti schimba echipa acum.
JBE_TEAM_CANTJOIN = Nu poti intra intr-o echipa in timpul rundei.
JBE_TEAM_CTFULL = Sunt prea multi politisti.
JBE_MENU_DUEL = Meniu duel jucatori:
JBE_MENU_DUEL_SEL = Duel: %s vs %s
JBE_MENU_FREEDAY = Meniu zi libera:
JBE_MENU_FREEDAY_ALL = Toti jucatorii
JBE_MENU_FREEDAY_PLAYER = Jucator specific
JBE_MENU_LASTREQ = Meniu ultima dorinta:
JBE_MENU_LASTREQ_OPT1 = Zi libera
JBE_MENU_LASTREQ_OPT2 = Arma gratis
JBE_MENU_LASTREQ_OPT3 = Duel de box
JBE_MENU_LASTREQ_OPT4 = Duel de pistoale
JBE_MENU_LASTREQ_OPT5 = Duel de scout-uri
JBE_MENU_LASTREQ_OPT6 = Duel de grenade
JBE_MENU_LASTREQ_OPT7 = Duel de AWP-uri
JBE_MENU_LASTREQ_SEL1 = %s a ales o zi libera
JBE_MENU_LASTREQ_SEL2 = %s a ales o arma gratis
JBE_MENU_LASTREQ_SEL3 = %s a ales un duel de box
JBE_MENU_LASTREQ_SEL4 = %s a ales un duel de pistoale
JBE_MENU_LASTREQ_SEL5 = %s a ales un duel de scout-uri
JBE_MENU_LASTREQ_SEL6 = %s a ales un duel de grenade
JBE_MENU_LASTREQ_SEL7 = %s a ales un duel de AWP-uri
JBE_STATUS = Prizonieri: %i Vii / %i Totali
JBE_STATUS_DAY = JailBreak / Ziua %i
JBE_STATUS_FREEDAY = Astazi este o zi libera
JBE_STATUS_ROUNDEND = Runda s-a terminat din cauza timpului
JBE_STATUS_ENDTIMER = Runda se va termina in %i secunde
JBE_STATUS_ENDFREEDAY = S-a terminat timpul pentru toti prizonierii cu zi libera
JBE_SIMON_FOLLOW = %s este Simon. Toti prizonierii trebuie sa-i urmeze ordinele.
JBE_SIMON_KILLED = Simon a fost asasinat. Alt politist trebuie sa-i ocupe locul.
JBE_SIMON_HASGONE = Simon a iesit de pe server. Alt politist trebuie sa-i ocupe locul.
JBE_SIMON_TRANSFERED = Simon a fost mutat in alta echipa.^nAlt politist trebuie sa-i ocupe locul.
JBE_PRISONER_REVOLT = Prizonierii s-au enervat si vor ataca
JBE_PRISONER_STATUS = Prizonierul: %s - %i%
JBE_PRISONER_REASON = Ai fost dus la inchisoare pentru
JBE_PRISONER_WANTED = Prizonieri cautati:
JBE_PRISONER_LAST = %s este ultimul prizonier
JBE_PRISONER_HASFREEDAY = %s are o zi libera
JBE_GUARD_FREEDAYGIVE = %s i-a dat o zi libera lui %s
JBE_GUARD_STATUS = Politistul: %s - %i%
JBE_GUARD_CANTBOX = Nu poti incepe modul de box. Sunt prea multi prizonieri vii.
JBE_GUARD_BOX = Modul de box a fost activat
JBE_PRISONER_REASON_1 = furt
JBE_PRISONER_REASON_2 = viol
JBE_PRISONER_REASON_3 = inselatorie
JBE_PRISONER_REASON_4 = asasinat
JBE_PRISONER_REASON_5 = droguri
JBE_PRISONER_REASON_6 = prostitutie
JBE_HELP_TITLE = JailBreak
JBE_HELP_BINDS = Binduri:^n--------------------^n +simonvoice (ca sa vorbesti)
JBE_HELP_GUARD_CMDS = Comenzi /say (Politisti):^n--------------------^n /simon (ca sa fii Simon)^n /nomic (daca nu ai microfon)^n /box (pentru modul de box)^n /fd (pentru o zi libera)^n
JBE_HELP_PRISONER_CMDS = Comenzi /say (Prizonieri):^n--------------------^n /dorinta (meniu ultima dorinta)^n

[es]
JBE_TEAM_CANTCHANGE = No puedes cambiar de equipo en este momento
JBE_TEAM_CANTJOIN = No puedes entrar a un equipo durante la ronda
JBE_TEAM_CTFULL = Hay demasiados guardias
JBE_MENU_DUEL = Menu duelo jugadores:
JBE_MENU_DUEL_SEL = Duelo: %s vs %s
JBE_MENU_FREEDAY = Menu dia libre:
JBE_MENU_FREEDAY_ALL = Todos los jugadores
JBE_MENU_FREEDAY_PLAYER = Jugador especifico
JBE_MENU_LASTREQ = Menu ultima voluntad:
JBE_MENU_LASTREQ_OPT1 = Dia libre
JBE_MENU_LASTREQ_OPT2 = Arma gratis
JBE_MENU_LASTREQ_OPT3 = Duelo de box
JBE_MENU_LASTREQ_OPT4 = Duelo de pistolas
JBE_MENU_LASTREQ_OPT5 = Duelo de scouts
JBE_MENU_LASTREQ_OPT6 = Duelo de granadas
JBE_MENU_LASTREQ_OPT7 = Duelo de sniper
JBE_MENU_LASTREQ_SEL1 = %s eligio Dia libre
JBE_MENU_LASTREQ_SEL2 = %s eligio Arma gratis
JBE_MENU_LASTREQ_SEL3 = %s eligio Duelo de box
JBE_MENU_LASTREQ_SEL4 = %s eligio Duelo de pistolas
JBE_MENU_LASTREQ_SEL5 = %s eligio Duelo de scouts
JBE_MENU_LASTREQ_SEL6 = %s eligio Duelo de granadas
JBE_MENU_LASTREQ_SEL7 = %s eligio Duelo de sniper
JBE_STATUS = Prisioneros: %i Vivos / %i Total
JBE_STATUS_DAY = JailBreak - Dia %i
JBE_STATUS_FREEDAY = Hoy es dia libre
JBE_STATUS_ROUNDEND = La ronda termino por tiempo excesivo
JBE_STATUS_ENDTIMER = La ronda terminara en %i segundos
JBE_STATUS_ENDFREEDAY = Se termino el tiempo para los prisioneros con dia libre
JBE_SIMON_FOLLOW = %s es Simon. Todos los prisioneros deben seguir sus ordenes
JBE_SIMON_KILLED = Simon fue asesinado. Otro guardia debera tomar su lugar
JBE_SIMON_HASGONE = Simon se ha ido. Otro guardia debera tomar su lugar
JBE_SIMON_TRANSFERED = Simon fue transferido de equipo.^nOtro guardia debera tomar su lugar
JBE_PRISONER_REVOLT = Los prisioneros comenzaron una rebelion
JBE_PRISONER_STATUS = Prisionero: %s - %i%
JBE_PRISONER_REASON = Tu estas encarcelado por
JBE_PRISONER_WANTED = Prisioneros buscados:
JBE_PRISONER_LAST = %s es el ultimo prisionero
JBE_PRISONER_HASFREEDAY = %s tiene dia libre
JBE_GUARD_FREEDAYGIVE = %s le dio dia libre a %s
JBE_GUARD_STATUS = Guardia: %s - %i%
JBE_GUARD_CANTBOX = No puedes iniciar el modo box. Hay demasiados prisioneros vivos
JBE_GUARD_BOX = Modo box activado
JBE_PRISONER_REASON_1 = robo
JBE_PRISONER_REASON_2 = secuestro
JBE_PRISONER_REASON_3 = estafa
JBE_PRISONER_REASON_4 = asesinato
JBE_PRISONER_REASON_5 = agresion
JBE_PRISONER_REASON_6 = prositucion
JBE_HELP_TITLE = JailBreak Extreme Mod
JBE_HELP_BINDS = Binds:^n--------------------^n +simonvoice (para hablar)
JBE_HELP_GUARD_CMDS = Comandos Say (Guardias):^n--------------------^n /simon (para ser simon)^n /nomic (si no tenes mic)^n /box (para box mode)^n /fd (menu dia libre)^n
JBE_HELP_PRISONER_CMDS = Comandos Say (Prisioneros):^n--------------------^n /voluntad (menu ultima voluntad)^n

[nl]
JBE_TEAM_CANTCHANGE = Je kan momenteel niet van team veranderen
JBE_TEAM_CANTJOIN = Je kan niet meedoen als er al een spel bezig is
JBE_TEAM_CTFULL = Er zijn te veel CT's
JBE_MENU_DUEL = Spelers Duel Menu:
JBE_MENU_DUEL_SEL = Duel: %s vs %s
JBE_MENU_FREEDAY = Vrije Dag Menu:
JBE_MENU_FREEDAY_ALL = Alle Spelers
JBE_MENU_FREEDAY_PLAYER = Kies een Speler
JBE_MENU_LASTREQ = Laatste Verzoek Menu:
JBE_MENU_LASTREQ_OPT1 = Vrije Dag
JBE_MENU_LASTREQ_OPT2 = Gratis Wapen
JBE_MENU_LASTREQ_OPT3 = Messen duel
JBE_MENU_LASTREQ_OPT4 = Deagles duel
JBE_MENU_LASTREQ_OPT5 = Scouts duel
JBE_MENU_LASTREQ_OPT6 = Granaten duel
JBE_MENU_LASTREQ_OPT7 = Sniper duel
JBE_MENU_LASTREQ_SEL1 = %s heeft een vrije dag geselecteerd
JBE_MENU_LASTREQ_SEL2 = %s heeft een gratis wapen geselecteerd
JBE_MENU_LASTREQ_SEL3 = %s heeft een boks duel geselecteerd
JBE_MENU_LASTREQ_SEL4 = %s heeft een pistolen duel geselecteerd
JBE_MENU_LASTREQ_SEL5 = %s heeft een scouts duel geselecteerd
JBE_MENU_LASTREQ_SEL6 = %s heeft een granaten duel geselecteerd
JBE_MENU_LASTREQ_SEL7 = %s heeft een sniper duel geselecteerd
JBE_STATUS = Gevangenen: %i Levend / %i in Totaal
JBE_STATUS_DAY = JailBreak - Dag %i
JBE_STATUS_FREEDAY = Vandaag is een Vrije Dag
JBE_STATUS_ROUNDEND = De ronde eindigd in uitrekbare tijd
JBE_STATUS_ENDTIMER = De ronde eindigd in %i seconden
JBE_STATUS_ENDFREEDAY = De tijd is op voor de gevangenen met een vrije dag
JBE_SIMON_FOLLOW = %s is Simon. Alle gevangenen moeten zijn orders opvolgen
JBE_SIMON_KILLED = Simon is omgekomen. Een andere bewaker zal zijn job innemen
JBE_SIMON_HASGONE = Simon heeft het spel verlaten. Een andere bewaker zal zijn job innemen
JBE_SIMON_TRANSFERED = Simon is verplaatst naar het gevangenen team.^nEen andere bewaker zal zijn job innemen
JBE_PRISONER_REVOLT = Gevangenen begonnen een opstand!
JBE_PRISONER_STATUS = Gevangene: %s - %i%
JBE_PRISONER_REASON = Je bent in de gevangenis voor
JBE_PRISONER_WANTED = Gevangenen gevraagd:
JBE_PRISONER_LAST = %s is de laatste gevangene
JBE_PRISONER_HASFREEDAY = %s heeft een vrije dag
JBE_GUARD_FREEDAYGIVE = %s gaf een vrije dag aan %s
JBE_GUARD_STATUS = Bewaker: %s - %i%
JBE_GUARD_CANTBOX = Je kan boks modus niet starten. Te veel gevangenen
JBE_GUARD_BOX = Boks Modus Ingeschakeld
JBE_PRISONER_REASON_1 = roof
JBE_PRISONER_REASON_2 = kidnap
JBE_PRISONER_REASON_3 = kaping
JBE_PRISONER_REASON_4 = moord
JBE_PRISONER_REASON_5 = geweldpleging
JBE_PRISONER_REASON_6 = prostitutie
JBE_HELP_TITLE = JailBreak Extreem Modus Help
JBE_HELP_BINDS = Speciale Bindingen:^n--------------------^n +simonvoice (om te spreken)
JBE_HELP_GUARD_CMDS = Zeg Commando's (Bewakers):^n--------------------^n /simon (om Simon te zijn)^n /nomic (als je geen microfoon hebt)^n /box (om boks modus aan te zetten)^n /fd (vrije dag menu)^n
JBE_HELP_PRISONER_CMDS = Zeg Commando's (Gevangenen):^n--------------------^n /lr (laatste verzoek menu)^n

lAsuStarl
13-10-2020, 09:46 PM
Crysis vs Terorist - 2014


#include <amxmodx>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>

#define PLUGIN "Crysis vs Terorist v1.0"
#define VERSION "1.0"
#define AUTHOR "Asu"

// year 2014

#pragma tabsize 0

new Knife[64] = "models/Crysis_Mod/v_superknife.mdl"
new grvknife[64] = "models/Crysis_Mod/v_gravknife.mdl"
new invzknife[64] = "models/Crysis_Mod/v_invzknife.mdl"

new RoundStartSound[] = "misc/RoundStart.wav"


new Tagu[] = "!v[Crysis]:!g"

new g_last_ct,g_iMsgTeamInfo,g_iMsgSayText,g_iMaxplaye rs,CreateHud

new bool:iknife[33],gknife[33],sknife[33],dknife[33],g_bConnected[33]

new Sounds[7] []=
{
"misc/error.wav",
"misc/error2.wav",
"misc/power.wav",
"misc/maximum_armor.wav",
"misc/maximum_health.wav",
"misc/shop_open.wav",
"misc/health_armor.wav"
}

new Winsounds[6] []=
{
"misc/ctwin.wav",
"misc/ctwin2.wav",
"misc/ctwin3.wav",
"misc/twin.wav",
"misc/twin2.wav",
"misc/twin3.wav"
}

enum Color
{
NORMAL = 1,
GREEN,
RED,
BLUE
}

new TeamName[ ][ ] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}

new SpawnSound[] = "misc/energy.wav"
new CurrentWeaponSoundknife[] = "misc/clock.wav"
new max_speed[] = "misc/max_speed.wav"
new Armor,Health

new const ModelPlayer[] = "halo_ct"


public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)

register_event("HLTV","RoundStart","a","1=0","2=0")

RegisterHam(Ham_Spawn,"player","Spawn",1)

register_event("DeathMsg","DeathMsgEvent","a")

RegisterHam(Ham_Killed,"player","fw_PlayerKilled")

register_event("CurWeapon","CurrentWeapon","be","1=1")

RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" )

register_forward( FM_GetGameDescription, "GameDesc" )

register_event("SendAudio","TeroWin","a","2=%!MRAD_terwin")

register_event("SendAudio","CtWin","a","2=%!MRAD_ctwin")


register_clcmd("say /menu","cmd_menu")
register_clcmd("say menu","cmd_menu")
register_clcmd("say_team /menu","cmd_menu")
register_clcmd("say_team menu","cmd_menu")
register_concmd("menu","cmd_menu")

register_concmd("choseteam","block")

g_iMsgTeamInfo = get_user_msgid( "TeamInfo" )
g_iMsgSayText = get_user_msgid( "SayText" )
g_iMaxplayers = get_maxplayers()
CreateHud = CreateHudSyncObj()

}
public plugin_precache()
{
new buffer[128]

precache_model(Knife)
precache_model(invzknife)
precache_model(grvknife)

precache_sound(SpawnSound)
precache_sound(CurrentWeaponSoundknife)
precache_sound(max_speed)
precache_sound(RoundStartSound)

formatex(buffer,sizeof(buffer) -1,"models/player/%s/%s.mdl",ModelPlayer,ModelPlayer)
precache_model(buffer)


Armor = precache_model("sprites/armor.spr")
Health = precache_model("sprites/health.spr")


for(new i = 0;i < sizeof(Sounds);i++)
engfunc(EngFunc_PrecacheSound,Sounds)

for(new a = 0;a < sizeof(Winsounds);a++)
engfunc(EngFunc_PrecacheSound,Winsounds[a])
}
public client_putinserver(id)
{
set_task(0.3,"Set",id)
}
public Set(id)
{
cs_set_user_team(id,CS_TEAM_T)
}
public client_connect(id)
{
client_cmd(id,"bind c menu")

iknife[id] = false
gknife[id] = false
sknife[id] = false
dknife[id] = false
}

public client_disconnect(id)
{
iknife[id] = false
gknife[id] = false
sknife[id] = false
dknife[id] = false
}

public Spawn(id)
{
iknife[id] = false
gknife[id] = false
sknife[id] = false
dknife[id] = false

if(id == g_last_ct)
{
cs_reset_user_model(id)
}

if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
emit_sound(id, CHAN_ITEM,SpawnSound, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
return PLUGIN_CONTINUE

}
public DeathMsgEvent()
{
new id = read_data(2)

iknife[id] = false
gknife[id] = false
sknife[id] = false
dknife[id] = false
}

public fw_PlayerKilled(victim, attacker, shouldgib)
{
iknife[victim] = false
gknife[victim] = false
sknife[victim] = false
dknife[victim] = false
}
public block(id) return PLUGIN_HANDLED_MAIN

public CurrentWeapon(id)
{
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
new Arma = get_user_weapon(id)

if(iknife[id] && Arma == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2,invzknife)

message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(2)
write_string("dmg_rad")
write_byte(255)
write_byte(255)
write_byte(0)
message_end()

emit_sound(id, CHAN_ITEM,CurrentWeaponSoundknife, 1.0, ATTN_NORM, 0, PITCH_NORM)

set_entity_visibility(id,0)
}
else if(!(iknife[id] && Arma == CSW_KNIFE))
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(0)
write_string("dmg_rad")
write_byte(255)
write_byte(255)
write_byte(0)
message_end()

set_entity_visibility(id,1)
}

if(gknife[id] && Arma == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2,grvknife)

message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(2)
write_string("dmg_rad")
write_byte(255)
write_byte(255)
write_byte(0)
message_end()

emit_sound(id, CHAN_ITEM,CurrentWeaponSoundknife, 1.0, ATTN_NORM, 0, PITCH_NORM)

set_user_gravity(id,0.2)
}
else if(!(gknife[id] && Arma == CSW_KNIFE))
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(0)
write_string("dmg_rad")
write_byte(255)
write_byte(255)
write_byte(0)
message_end()

set_user_gravity(id)
}

if(sknife[id] && Arma == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2,Knife)

message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(2)
write_string("dmg_rad")
write_byte(255)
write_byte(255)
write_byte(0)
message_end()

emit_sound(id, CHAN_ITEM,max_speed, 1.0, ATTN_NORM, 0, PITCH_NORM)

set_user_maxspeed(id,800.0)
}
else if(!(sknife[id] && Arma == CSW_KNIFE))
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(0)
write_string("dmg_rad")
write_byte(255)
write_byte(255)
write_byte(0)
message_end()

set_user_maxspeed(id,250.0)
}

if(dknife[id] && Arma == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2,Knife)

message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(2)
write_string("dmg_rad")
write_byte(255)
write_byte(255)
write_byte(0)
message_end()

emit_sound(id, CHAN_ITEM,CurrentWeaponSoundknife, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
else if(!(dknife[id] && Arma == CSW_KNIFE))
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(0)
write_string("dmg_rad")
write_byte(255)
write_byte(255)
write_byte(0)
message_end()
}

if(Arma == CSW_HEGRENADE)
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(1) // status (0=hide, 1=show, 2=flash)
write_string("dmg_heat") // sprite name
write_byte(255) //R
write_byte(0) //G
write_byte(0) //B
message_end()
}
else if(!(Arma == CSW_HEGRENADE))
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(0)
write_string("dmg_heat")
write_byte(255)
write_byte(0)
write_byte(0)
message_end()
}

if(Arma == CSW_FLASHBANG)
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(1)
write_string("dmg_shock")
write_byte(255)
write_byte(255)
write_byte(255)
message_end()
}
else if(!(Arma == CSW_FLASHBANG))
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(0)
write_string("dmg_shock")
write_byte(255)
write_byte(255)
write_byte(255)
message_end()
}


if(Arma == CSW_SMOKEGRENADE)
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(1)
write_string("dmg_cold")
write_byte(0)
write_byte(255)
write_byte(255)
message_end()
}
else if(!(Arma == CSW_SMOKEGRENADE))
{
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(0)
write_string("dmg_cold")
write_byte(0)
write_byte(0)
write_byte(255)
message_end()
}

}
return PLUGIN_CONTINUE
}

public RoundStart()
{
new i,Players[32],iNum
get_players(Players,iNum)

if(iNum <= 1)
return PLUGIN_CONTINUE

for(i = 0;i < iNum;i++)
{
new players = Players[i]

if(cs_get_user_team(players) == CS_TEAM_CT)
{
cs_set_user_team(players,CS_TEAM_T)
}
}

new random_player, CsTeams:Team
while((random_player = Players[random_num(0,iNum -1)]) == g_last_ct) { }

//g_last_ct = random_player

Team = cs_get_user_team(random_player)

if(Team == CS_TEAM_T || Team == CS_TEAM_CT)
{
cs_set_user_team(random_player,CS_TEAM_CT)
cs_set_user_money(random_player,cs_get_user_money( random_player) + 18000)
give_item(random_player,"weapon_hegrenade")
give_item(random_player,"weapon_flashbang")
give_item(random_player,"weapon_smokegrenade")
cs_set_user_bpammo(random_player,CSW_FLASHBANG,2)

cs_set_user_model(random_player,ModelPlayer)

new name[32]
get_user_name(random_player,name,sizeof(name) -1)

for(new a = 0;a < iNum;a++)
{
ColorChatr(Players[a],RED,"[Crysis]:\YEL Sa ales noul Crysis care este %s",name)
client_cmd(Players[a],"spk %s",RoundStartSound)
}

}
g_last_ct = random_player

return PLUGIN_CONTINUE
}

public cmd_menu(id)
{
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
Shop(id)
}
else if(cs_get_user_team(id) == CS_TEAM_T || cs_get_user_team(id) == CS_TEAM_SPECTATOR)
{
ColorChat(id,"%s Trebuie sa fi!e Crisys!g pentru a folosi acest meniu!",Tagu)
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}

public Shop(id)
{
emit_sound(id, CHAN_ITEM,Sounds[5], 1.0, ATTN_NORM, 0, PITCH_NORM)
new MeniuName[64]
formatex(MeniuName,sizeof(MeniuName) -1,"\wCrisys Menu^nCash:[\r%i\w]",cs_get_user_money(id))
new ct = menu_create(MeniuName,"sub_crys")
new i = cs_get_user_money(id)
if(i >= 5000)
{
menu_additem(ct,"\wInvizibility Knife\r 5.000$","1",0)
}
else
{
menu_additem(ct,"\dInvizibility Knife\d 5.000$","1",0)
}
if(i >= 4000)
{
menu_additem(ct,"\wGravity Knife\r 4.000$","2",0)
}
else
{
menu_additem(ct,"\dGravity Knife\d 4.000$","2",0)
}
if(i >= 4000)
{
menu_additem(ct,"\wSpeed Knife\r 4.000$","3",0)
}
else
{
menu_additem(ct,"\dSpeed Knife\d 4.000$","3",0)
}
if(i >= 3000)
{
menu_additem(ct,"\wDamage Knife\r 3.000$","4",0)
}
else
{
menu_additem(ct,"\dDamage Knife\d 3.000$","4",0)
}
if(i >= 2500)
{
menu_additem(ct,"\wHeGrenade\r 2.500$","5",0)
}
else
{
menu_additem(ct,"\dHeGrenade\d 2.500$","5",0)
}
if(i >= 1500)
{
menu_additem(ct,"\wFlashBang\r 1.500$","6",0)
}
else
{
menu_additem(ct,"\dFlashBang\d 1.500$","6",0)
}
if(i >= 1000)
{
menu_additem(ct,"\wSmokeGrenade\r 1.000$","7",0)
}
else
{
menu_additem(ct,"\dSmokeGrenade\d 1.000$","7",0)
}
if(i >= 2500)
{
menu_additem(ct,"\w+50 HP\r 2.500$","8",0)
}
else
{
menu_additem(ct,"\d+50 HP\d 2.500$","8",0)
}
if(i >= 1500)
{
menu_additem(ct,"\w+100 AP\r 1.500$","9",0)
}
else
{
menu_additem(ct,"\d+100 AP\d 1.500$","9",0)
}

menu_setprop(ct, MPROP_EXIT, MEXIT_ALL)
menu_display(id, ct, 0)
}

public sub_crys(id,ct,item)
{
if (item == MENU_EXIT)
{
menu_destroy(ct)
remove_task(id)
return PLUGIN_HANDLED
}
new Data[7], Name[64]
new Access, Callback
menu_item_getinfo(ct, item, Access, Data,5, Name, 63, Callback)

new Key = str_to_num(Data)

switch (Key)
{
case 1:
{
new i = cs_get_user_money(id) - 5000
if(i < 0)
{
ColorChat(id,"%s Fonduri insuficiente",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
show_blink(id)
return PLUGIN_HANDLED
}
else if(iknife[id])
{
ColorChat(id,"%s Ai deja invizibility knife",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
return HAM_IGNORED
}
else
{
iknife[id] = true
gknife[id] = false
sknife[id] = false
dknife[id] = false

set_pev(id, pev_viewmodel2,invzknife)

cs_set_user_money(id,cs_get_user_money(id) - 5000)
ColorChat(id,"%s Ai cumparat invizibility knife",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[2], 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
case 2:
{
new i = cs_get_user_money(id) - 4000
if(i < 0)
{
ColorChat(id,"%s Fonduri insuficiente",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
show_blink(id)
return PLUGIN_HANDLED
}
else if(gknife[id])
{
ColorChat(id,"%s Ai deja gravity knife",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
return HAM_IGNORED
}
else
{
gknife[id] = true
sknife[id] = false
dknife[id] = false
iknife[id] = false

set_pev(id, pev_viewmodel2,grvknife)

cs_set_user_money(id,cs_get_user_money(id) - 4000)
ColorChat(id,"%s Ai cumparat gravity knife",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[2], 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
case 3:
{
new i = cs_get_user_money(id) - 3000
if(i < 0)
{
ColorChat(id,"%s Fonduri insuficiente",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
show_blink(id)
return PLUGIN_HANDLED
}
else if(sknife[id])
{
ColorChat(id,"%s Ai deja speed knife",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
return HAM_IGNORED
}
else
{
sknife[id] = true
dknife[id] = false
iknife[id] = false
gknife[id] = false

set_pev(id, pev_viewmodel2,Knife)

cs_set_user_money(id,cs_get_user_money(id) - 3000)
ColorChat(id,"%s Ai cumparat speed knife",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[2], 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
case 4:
{
new i = cs_get_user_money(id) - 3000
if(i < 0)
{
ColorChat(id,"%s Fonduri insuficiente",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
show_blink(id)
return PLUGIN_HANDLED
}
else if(dknife[id])
{
ColorChat(id,"%s Ai deja damage knife",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
return HAM_IGNORED
}
else
{
dknife[id] = true
sknife[id] = false
gknife[id] = false
iknife[id] = false

set_pev(id, pev_viewmodel2,Knife)

cs_set_user_money(id,cs_get_user_money(id) - 3000)
ColorChat(id,"%s Ai cumparat damage knife",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[2], 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
case 5:
{
new i = cs_get_user_money(id) - 2500
if(i < 0)
{
ColorChat(id,"%s Fonduri insuficiente",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
show_blink(id)
return PLUGIN_HANDLED
}
else if(user_has_weapon(id,CSW_HEGRENADE))
{
ColorChat(id,"%s Ai deja hegrenade",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
else
{
give_item(id,"weapon_hegrenade")
cs_set_user_money(id,cs_get_user_money(id) - 2500)
ColorChat(id,"%s Ai cumarat hegrenade",Tagu)
}
}
case 6:
{
new i = cs_get_user_money(id) - 1500
if(i < 0)
{
ColorChat(id,"%s Fonduri insuficiente",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
show_blink(id)
return PLUGIN_HANDLED
}
else if(user_has_weapon(id,CSW_FLASHBANG))
{
ColorChat(id,"%s Ai deja flashbang",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
else
{
give_item(id,"weapon_flashbang")
cs_set_user_bpammo(id,CSW_FLASHBANG,2)
cs_set_user_money(id,cs_get_user_money(id) - 1500)
ColorChat(id,"%s Ai cumparat flashbang",Tagu)
}
}
case 7:
{
new i = cs_get_user_money(id) - 1000
if(i < 0)
{
ColorChat(id,"%s Fonduri insuficiente",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
show_blink(id)
return PLUGIN_HANDLED
}
else if(user_has_weapon(id,CSW_SMOKEGRENADE))
{
ColorChat(id,"%s Ai deja smokegrenade",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
else
{
give_item(id,"weapon_smokegrenade")
cs_set_user_money(id,cs_get_user_money(id) - 1000)
ColorChat(id,"%s Ai cumparat smokegrenade",Tagu)
}
}
case 8:
{
new i = cs_get_user_money(id) - 2500
if(i < 0)
{
ColorChat(id,"%s Fonduri insuficiente",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
show_blink(id)
return PLUGIN_HANDLED
}
else
{
new Health = get_user_health(id)
if(Health >= 200)
{
ColorChat(id,"%s Ai ajuns la limita de HP",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[4], 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
else
{
set_user_health(id,min(get_user_health(id) + 50,200))
cs_set_user_money(id,cs_get_user_money(id) - 2500)
ColorChat(id,"%s Ai cumparat!e +50 HP",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[6], 1.0, ATTN_NORM, 0, PITCH_NORM)
health_sprite(id)
}
}
}
case 9:
{
new i = cs_get_user_money(id) - 1500
if(i < 0)
{
ColorChat(id,"%s Fonduri insuficiente",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
show_blink(id)
return PLUGIN_HANDLED
}
else
{
new Armor = get_user_armor(id)
if(Armor >= 200)
{
ColorChat(id,"%s Ai ajunst la limita de AP",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[3], 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
else
{
set_user_armor(id,min(get_user_armor(id) + 100,200))
cs_set_user_money(id,cs_get_user_money(id) - 1500)
ColorChat(id,"%s Ai cumparat!e + 100 AP",Tagu)
emit_sound(id, CHAN_ITEM,Sounds[6], 1.0, ATTN_NORM, 0, PITCH_NORM)
armor_sprite(id)
}
}
}
}
return PLUGIN_CONTINUE
}

public Player_TakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
if(dknife[iAttacker] && is_user_alive(iAttacker) && iInflictor == iAttacker && get_user_weapon(iAttacker) == CSW_KNIFE)
{
SetHamParamFloat( 4, fDamage * 50.0 )
return HAM_HANDLED
}
return HAM_HANDLED
}

public armor_sprite(id)
{
new Origin[3]
get_user_origin(id,Origin)

set_armor_sprite(Origin)
}
public health_sprite(id)
{
new origin[3]
get_user_origin(id,origin)

set_health_sprite(origin)
}

set_armor_sprite(Origin[3])
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_SPRITE)
write_coord(Origin[0])
write_coord(Origin[1])
write_coord(Origin[2]+=30)
write_short(Armor)
write_byte(8)
write_byte(255)
message_end()
}

set_health_sprite(origin[3])
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_SPRITE)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+=30)
write_short(Health)
write_byte(8)
write_byte(255)
message_end()
}
public TeroWin()
{
set_hudmessage(255, 0, 0, 0.3, 0.33, 0, 6.0, 6.0)
ShowSyncHudMsg(0,CreateHud,"Crisys a fost invins teroristii au preluat controlul!")

new iPlayers[32],iNum
get_players(iPlayers,iNum,"c")

for(new i = 0;i < iNum;i++)
{
if(is_user_connected(iPlayers[i]))
{
ShakeScreen(iPlayers[i],3.0)
FadeScreen(iPlayers[i],3.0, 0, 0, 230, 160)

new random_sound = random_num(1,3)

switch(random_sound)
{
case 1:client_cmd(iPlayers[i],"spk %s",Winsounds[3])
case 2:client_cmd(iPlayers[i],"spk %s",Winsounds[4])
case 3:client_cmd(iPlayers[i],"spk %s",Winsounds[5])
}
}
}
}

public CtWin()
{
set_hudmessage(42, 255, 255, 0.3, 0.33, 0, 6.0, 6.0)
ShowSyncHudMsg(0,CreateHud,"Teroristii au fost invinsi Crisys a salvat lumea!")

new iPlayers[32],num
get_players(iPlayers,num)

for(new i = 0;i < num;i++)
{
if(is_user_connected(iPlayers[i]))
{
ShakeScreen(iPlayers[i],3.0)
FadeScreen(iPlayers[i],3.0, 0, 0, 230, 160)

new random_sound = random_num(1,3)

switch(random_sound)
{
case 1:client_cmd(iPlayers[i],"spk %s",Winsounds[0])
case 2:client_cmd(iPlayers[i],"spk %s",Winsounds[1])
case 3:client_cmd(iPlayers[i],"spk %s",Winsounds[2])
}
}
}
}

public ShakeScreen( id, const Float:seconds )
{
message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( 1<<13 );
message_end( );
}

public FadeScreen( id, const Float:seconds, const red, const green, const blue, const alpha )
{
message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, id );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( 0x0000 );
write_byte( red );
write_byte( green );
write_byte( blue );
write_byte( alpha );
message_end( );
}

public GameDesc()
{
forward_return(FMV_STRING,PLUGIN)

return HAM_SUPERCEDE
}

stock show_blink(id)
{
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("BlinkAcct"),.player = id)
{
write_byte(2)
}
message_end()
}

stock ColorChat( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ]

static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!v", "^4" ) //- verde
replace_all( msg, 190, "!g", "^1" ) //- galben
replace_all( msg, 190, "!e", "^3" ) //- echipa
replace_all( msg, 190, "!n", "^0" ) //- normal

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, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] );
write_string( msg );
message_end( );
}
}
}
}


ColorChatr( id, Color:type, const szMessage[], {Float,Sql,Result,_}:... ) {
if( !get_playersnum( ) ) return;

new message[256];

switch( type ) {
case NORMAL: message[0] = 0x01;
case GREEN: message[0] = 0x04;
default: message[0] = 0x03;
}

vformat( message[ 1 ], 251, szMessage, 4 );

message[ 192 ] = '^0';

replace_all( message, 191, "\YEL", "^1" );
replace_all( message, 191, "\GRN", "^4" );
replace_all( message, 191, "\TEM", "^3" );

new iTeam, ColorChange, index, MSG_Type;

if( id ) {
MSG_Type = MSG_ONE_UNRELIABLE;
index = id;
} else {
index = CC_FindPlayer();
MSG_Type = MSG_BROADCAST;
}

iTeam = get_user_team( index );
ColorChange = CC_ColorSelection(index, MSG_Type, type);

CC_ShowColorMessage(index, MSG_Type, message);

if( ColorChange )
CC_Team_Info(index, MSG_Type, TeamName[iTeam]);
}

CC_ShowColorMessage( id, type, message[] ) {
message_begin( type, g_iMsgSayText, _, id );
write_byte( id );
write_string( message );
message_end( );
}

CC_Team_Info( id, type, team[] ) {
message_begin( type, g_iMsgTeamInfo, _, id );
write_byte( id );
write_string( team );
message_end( );

return 1;
}

CC_ColorSelection( index, type, Color:Type ) {
switch( Type ) {
case RED: return CC_Team_Info( index, type, TeamName[ 1 ] );
case BLUE: return CC_Team_Info( index, type, TeamName[ 2 ] );
}

return 0;
}

CC_FindPlayer( ) {
for( new i = 1; i <= g_iMaxplayers; i++ )
if( g_bConnected[ i ] )
return i;

return -1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1048\\ f0\\ fs16 \n\\ par }
*/


Jail Break Shop 2016


#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <engine>
#include <hamsandwich>
#include <licenta_online>

#pragma tabsize 0

#define PLUGIN "JB Shop"
#define VERSION "0.1"
#define AUTHOR "AsuStar"

//------------------------- PLAYER -----------------------------
new const tag_shop[] = "!v[JailBreak Shop]:!g"

new g_tero[] = "\w |Terorists Shop|"

new g_cts[] = "\w |CounterTs Shop|"

#define TASK_INVIZIBILITY 54234
#define TASK_SPEED 32454

new bool:g_inviziblity[33],bool:HasSpeed[33]

// ================= TERORISTS CVARS ================= //

new cvar_plugin_activat,cvar_glock_ammo,cvar_glock_mon ey,cvar_health_ammount,cvar_health_money,cvar_armo r_ammount,cvar_armor_money
new cvar_invizibility_time,cvar_invizibility_money,cva r_speed_time,cvar_speed_value,cvar_speed_money,cva r_grenade_ammo,cvar_grenade_money

// ================= TERORISTS CVARS ================= //


// ================= COUNTER-TERORISTS CVARS ================= //
new cvar_deagle_ammo,cvar_deagle_money,cvar_m4a1_ammo, cvar_m4a1_money,cvar_ak47_ammo,cvar_ak47_money
//------------------------- PLAYER -----------------------------


//------------------------ VIP ---------------------------------
new const tag_shop_vip[] = "!v[JailBreak VIP Shop]:!g"

new g_sz_tero[] = "\w |Terorists VIP Shop|"

new g_sz_cts[] = "\w |CounterTs VIP Shop|"

#define TASK_INVIZIBILITY_VIP 54233
#define TASK_SPEED_VIP 32455

new bool:g_inviziblity_vip[33],bool:HasSpeed_vip[33]


new cvar_glock_ammo_vip,cvar_glock_money_vip,cvar_heal th_ammount_vip,cvar_health_money_vip,cvar_armor_am mount_vip,cvar_armor_money_vip
new cvar_invizibility_time_vip,cvar_invizibility_money _vip,cvar_speed_time_vip,cvar_speed_value_vip,cvar _speed_money_vip,cvar_grenade_ammo_vip,cvar_grenad e_money_vip

new cvar_deagle_ammo_vip,cvar_deagle_money_vip,cvar_m4 a1_ammo_vip,cvar_m4a1_money_vip,cvar_ak47_ammo_vip ,cvar_ak47_money_vip
//------------------------ VIP ---------------------------------


new g_acces[33]

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)

register_clcmd("say /shop","cmd_shop")
register_clcmd("say_team /shop","cmd_shop")

register_clcmd("say shop","cmd_shop")
register_clcmd("say_team shop","cmd_shop")

register_clcmd("say /vipshop","cmd_shop")
register_clcmd("say_team /vipshop","cmd_shop")

register_clcmd("say vipshop","cmd_shop")
register_clcmd("say_team vipshop","cmd_shop")


register_event("DeathMsg" , "DeathMsgEvent" , "a")
RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1)
RegisterHam(Ham_Item_PreFrame,"player","PreFrame_Post",1)


cvar_plugin_activat = register_cvar("cvar_plugin_activat","1") // defaut 1

// ================= TERORISTS CVARS ================= //

cvar_glock_ammo = register_cvar("cvar_glock_munitie","20")
cvar_glock_money = register_cvar("cvar_glock_pret","3000")

cvar_health_ammount = register_cvar("cvar_viata_valoare","200")
cvar_health_money = register_cvar("cvar_viata_pret","2500")

cvar_armor_ammount = register_cvar("cvar_armura_valoare","100")
cvar_armor_money = register_cvar("cvar_armura_pret","2000")

cvar_invizibility_time = register_cvar("cvar_invizibilitate_durata","10.0")
cvar_invizibility_money = register_cvar("cvar_invizibilitate_pret","5000")

cvar_speed_time = register_cvar("cvar_viteza_timp","10.0")
cvar_speed_value = register_cvar("cvar_viteza_valoare","450.0")
cvar_speed_money = register_cvar("cvar_viteza_pret","1000")

cvar_grenade_ammo = register_cvar("cvar_grenada_munitie","2")
cvar_grenade_money = register_cvar("cvar_grenada_pret","300")

// ================= TERORISTS CVARS ================= //


// ================= COUNTER-TERORISTS CVARS ================= //

cvar_deagle_ammo = register_cvar("cvar_deagle_munitie","10")
cvar_deagle_money = register_cvar("cvar_deagle_pret", "1000")

cvar_m4a1_ammo = register_cvar("cvar_m4a1_munitie","20")
cvar_m4a1_money = register_cvar("cvar_m4a1_pret","2000")

cvar_ak47_ammo = register_cvar("cvar_ak47_munitie","30")
cvar_ak47_money = register_cvar("cvar_ak47_pret","1500")



//----------------------------------------------------------------------------------------//

cvar_glock_ammo_vip = register_cvar("cvar_glock_munitie_vip","30")
cvar_glock_money_vip = register_cvar("cvar_glock_pret_vip","2000")

cvar_health_ammount_vip = register_cvar("cvar_viata_valoare_vip","100")
cvar_health_money_vip = register_cvar("cvar_viata_pret_vip","2000")

cvar_armor_ammount_vip = register_cvar("cvar_armura_valoare_vip","150")
cvar_armor_money_vip = register_cvar("cvar_armura_pret_vip","100")

cvar_invizibility_time_vip = register_cvar("cvar_invizibilitate_durata_vip","15.0")
cvar_invizibility_money_vip = register_cvar("cvar_invizibilitate_pret_vip","3000")

cvar_speed_time_vip = register_cvar("cvar_viteza_timp_vip","15.0")
cvar_speed_value_vip = register_cvar("cvar_viteza_valoare_vip","500.0")
cvar_speed_money_vip = register_cvar("cvar_viteza_pret_vip","1500")

cvar_grenade_ammo_vip = register_cvar("cvar_grenada_munitie_vip","3")
cvar_grenade_money_vip = register_cvar("cvar_grenada_pret_vip","200")


//--------------------------- TERORISTS --------------------------------------

cvar_deagle_ammo_vip = register_cvar("cvar_deagle_munitie_vip","20")
cvar_deagle_money_vip = register_cvar("cvar_deagle_pret_vip","200")

cvar_m4a1_ammo_vip = register_cvar("cvar_m4a1_munitie_vip","40")
cvar_m4a1_money_vip = register_cvar("cvar_m4a1_pret_vip","1500")

cvar_ak47_ammo_vip = register_cvar("cvar_ak47_munitie_vip","50")
cvar_ak47_money_vip = register_cvar("cvar_ak47_pret_vip","1000")

}

public plugin_precache()
{
licence_c*****()
}

public plugin_cfg()
{
new cfgdir[64]
get_configsdir(cfgdir, charsmax(cfgdir))

server_cmd("exec %s/JailBreak_SHOP_Settings.cfg", cfgdir)
}

public client_connect(id)
{
g_inviziblity[id] = false
HasSpeed[id] = false

g_inviziblity_vip[id] = false
HasSpeed_vip[id] = false

g_acces[id] = 0
}

public client_disconnect(id)
{
g_inviziblity[id] = false
HasSpeed[id] = false

g_inviziblity_vip[id] = false
HasSpeed_vip[id] = false

g_acces[id] = 0
}

public DeathMsgEvent()
{
new id = read_data(2)

if(get_user_flags(id) && is_user_vip(id))
{
if(g_inviziblity_vip[id])
{
g_inviziblity_vip[id] = false

remove_task(id+TASK_INVIZIBILITY_VIP)
}
else if(HasSpeed_vip[id])
{
HasSpeed_vip[id] = false

remove_task(id+TASK_SPEED_VIP)
}
}
else
{
if(g_inviziblity[id])
{
g_inviziblity[id] = false

remove_task(id+TASK_INVIZIBILITY)
}
else if(HasSpeed[id])
{
HasSpeed[id] = false

remove_task(id+TASK_SPEED)
}
}
}

public HAM_Spawn_Post(id)
{
if(get_user_flags(id) && is_user_vip(id))
{
if(g_inviziblity_vip[id])
{
g_inviziblity_vip[id] = false

remove_task(id+TASK_INVIZIBILITY_VIP)
}
else if(HasSpeed_vip[id])
{
HasSpeed_vip[id] = false

remove_task(id+TASK_SPEED_VIP)
}
}
else
{
if(g_inviziblity[id])
{
g_inviziblity[id] = false

remove_task(id+TASK_INVIZIBILITY)
}
else if(HasSpeed[id])
{
HasSpeed[id] = false

remove_task(id+TASK_SPEED)
}
}

g_acces[id] = 0
}

public PreFrame_Post(id)
{
if(HasSpeed[id])
{
set_user_maxspeed(id,get_pcvar_float(cvar_speed_va lue))
}
else if(HasSpeed_vip[id])
{
set_user_maxspeed(id,get_pcvar_float(cvar_speed_va lue_vip))
}
}

public cmd_shop(id)
{
if(get_pcvar_num(cvar_plugin_activat) != 1)
return PLUGIN_HANDLED


if(is_user_alive(id))
{
new csTEAMS:team = cs_get_user_team(id)

if(get_user_flags(id) && is_user_vip(id))
{
if(g_acces[id] == 1)
{
ColorChat(id,"%s Poti folosi !VIP Shop-ul!g doar o data pe runda!",tag_shop_vip)
return PLUGIN_HANDLED
}

switch(team)
{
case CS_TEAM_T:
{
shop_vip_tero(id)
g_acces[id] = 1
}
case CS_TEAM_CT:
{
shop_vip_cts(id)
g_acces[id] = 1
}
case CS_TEAM_SPECTATOR:
{
ColorChat(id,"%s Nu poti folosi !VIP Shop-ul!g la spectator!",tag_shop_vip)
return PLUGIN_HANDLED
}
}
}
else
{
if(g_acces[id] == 1)
{
ColorChat(id,"%s Poti folosi !Shop-ul!g doar o data pe runda!",tag_shop)
return PLUGIN_HANDLED
}

switch(team)
{
case CS_TEAM_T:
{
shop_normal_tero(id)
g_acces[id] = 1
}
case CS_TEAM_CT:
{
shop_normal_cts(id)
g_acces[id] = 1
}
case CS_TEAM_SPECTATOR:
{
ColorChat(id,"%s Nu poti folosi !Shop-ul!g la spectator!",tag_shop)
return PLUGIN_HANDLED
}
}
}
}
else
{
if(get_user_flags(id) && is_user_vip(id))
{
ColorChat(id,"%s Nu poti folosi !vVIP Shop-ul!g cand esti mort!",tag_shop_vip)
return PLUGIN_HANDLED
}
else
{
ColorChat(id,"%s Nu poti folosi !vShop-ul!g cand esti mort!",tag_shop)
return PLUGIN_HANDLED
}
}

return PLUGIN_CONTINUE
}

public shop_vip_tero(id)
{
if(is_user_alive(id))
{
static Title[150],Item1[150],Item2[150],Item3[150],Item4[150],Item5[150],Item6[150]

new iMoney = cs_get_user_money(id)

formatex(Title, sizeof(Title) - 1, "\y%s^n\w Money:[\r%s\w]\r",g_sz_tero,iMoney)

if(iMoney >= get_pcvar_num(cvar_glock_money_vip))
{
formatex(Item1, sizeof(Item1) - 1, "\wGlock \R\r%i$",get_pcvar_num(cvar_glock_money_vip))
}
else
{
formatex(Item1, sizeof(Item1) - 1, "\dGlock \R\r%i$",get_pcvar_num(cvar_glock_money_vip))
}
if(iMoney >= get_pcvar_num(cvar_health_money_vip))
{
formatex(Item2, sizeof(Item2) - 1, "\wHealth +%i \R\r%i$",get_pcvar_num(cvar_health_ammount_vip),get_pcvar_ num(cvar_health_money_vip))
}
else
{
formatex(Item2, sizeof(Item2) - 1, "\dHealth +%i \R\r%i$",get_pcvar_num(cvar_health_ammount_vip),get_pcvar_ num(cvar_health_money_vip))
}
if(iMoney >= get_pcvar_num(cvar_armor_money_vip))
{
formatex(Item3, sizeof(Item3) - 1, "\wArmor +%i \R\r%i$",get_pcvar_num(cvar_armor_ammount_vip),get_pcvar_n um(cvar_armor_money_vip))
}
else
{
formatex(Item3, sizeof(Item3) - 1, "\dArmor +%i \R\r%i$",get_pcvar_num(cvar_armor_ammount_vip),get_pcvar_n um(cvar_armor_money_vip))
}
if(iMoney >= get_pcvar_num(cvar_invizibility_money_vip))
{
formatex(Item4, sizeof(Item4) - 1, "\wInvizibility \R\r%i$",get_pcvar_num(cvar_invizibility_money_vip))
}
else
{
formatex(Item4, sizeof(Item4) - 1, "\dInvizibility \R\r%i$",get_pcvar_num(cvar_invizibility_money_vip))
}
if(iMoney >= get_pcvar_num(cvar_speed_money_vip))
{
formatex(Item5, sizeof(Item5) - 1, "\wSpeed \R\r%i$",get_pcvar_num(cvar_speed_money_vip))
}
else
{
formatex(Item5, sizeof(Item5) - 1, "\dSpeed \R\r%i$",get_pcvar_num(cvar_speed_money_vip))
}
if(iMoney >= get_pcvar_num(cvar_grenade_money_vip))
{
formatex(Item6, sizeof(Item6) - 1, "\wHE Grenade +%i \R\r%i$",get_pcvar_num(cvar_grenade_ammo_vip),get_pcvar_nu m(cvar_grenade_money_vip))
}
else
{
formatex(Item6, sizeof(Item6) - 1, "\dHE Grenade +%i \R\r%i$",get_pcvar_num(cvar_grenade_ammo_vip),get_pcvar_nu m(cvar_grenade_money_vip))
}

new tero_vip_shop = menu_create(Title, "sub_tero_vip_shop", 0)

menu_additem(tero_vip_shop, Item1, "1", 0, -1)
menu_additem(tero_vip_shop, Item2, "2", 0, -1)
menu_additem(tero_vip_shop, Item3, "3", 0, -1)
menu_additem(tero_vip_shop, Item4, "4", 0, -1)
menu_additem(tero_vip_shop, Item5, "5", 0, -1)
menu_additem(tero_vip_shop, Item6, "6", 0, -1)

menu_setprop(tero_vip_shop, MPROP_EXIT, MEXIT_ALL)
menu_display(id,tero_vip_shop , 0)
}
}

public shop_vip_cts(id)
{
if(is_user_alive(id))
{
static Title[150],Item1[150],Item2[150],Item3[150]

new iMoney = cs_get_user_money(id)

formatex(Title, sizeof(Title) - 1, "\y%s^n\w Money:[\r%i\w]\r",g_sz_cts,iMoney)

if(iMoney >= get_pcvar_num(cvar_deagle_money_vip))
{
formatex(Item1, sizeof(Item1) - 1, "\wDeagle \R\r%i$",get_pcvar_num(cvar_deagle_money_vip))
}
else
{
formatex(Item1, sizeof(Item1) - 1, "\dDeagle \R\r%i$",get_pcvar_num(cvar_deagle_money_vip))
}
if(iMoney >= get_pcvar_num(cvar_m4a1_money_vip))
{
formatex(Item2, sizeof(Item2) - 1, "\wM4A1 \R\r%i$",get_pcvar_num(cvar_m4a1_money_vip))
}
else
{
formatex(Item2, sizeof(Item2) - 1, "\dM4A1 \R\r%i$",get_pcvar_num(cvar_m4a1_money_vip))
}
if(iMoney >= get_pcvar_num(cvar_ak47_money_vip))
{
formatex(Item3, sizeof(Item3) - 1, "\wAK47 \R\r%i$",get_pcvar_num(cvar_ak47_money_vip))
}
else
{
formatex(Item3, sizeof(Item3) - 1, "\dAK47 \R\r%i$",get_pcvar_num(cvar_ak47_money_vip))
}

new cts_vip_shop = menu_create(Title, "sub_cts_vip_shop")

menu_additem(cts_vip_shop, Item1, "1", 0, -1)
menu_additem(cts_vip_shop, Item2, "2", 0, -1)
menu_additem(cts_vip_shop, Item3, "3", 0, -1)

menu_setprop(cts_vip_shop, MPROP_EXIT, MEXIT_ALL)
menu_display(id,cts_vip_shop , 0)
}
}

public shop_normal_tero(id)
{
if(is_user_alive(id))
{
static Title[150],Item[150],Item2[150],Item3[150],Item4[150],Item5[150],Item6[150]

new iMoney = cs_get_user_money(id)

formatex(Title, sizeof(Title) - 1, "\y%s^n\w Money:[\r%i\w]\r",g_tero,iMoney)

if(iMoney >= get_pcvar_num(cvar_glock_money))
{
formatex(Item, sizeof(Item) - 1, "\wGlock \R\r%i$",get_pcvar_num(cvar_glock_money))
}
else
{
formatex(Item, sizeof(Item) - 1, "\dGlock \R\r%i$",get_pcvar_num(cvar_glock_money))
}
if(iMoney >= get_pcvar_num(cvar_health_money))
{
formatex(Item2, sizeof(Item2) - 1, "\wHealth +%i \R\r%i$",get_pcvar_num(cvar_health_ammount),get_pcvar_num( cvar_health_money))
}
else
{
formatex(Item2, sizeof(Item2) - 1, "\dHealth +%i \R\r%i$",get_pcvar_num(cvar_health_ammount),get_pcvar_num( cvar_health_money))
}
if(iMoney >= get_pcvar_num(cvar_armor_money))
{
formatex(Item3, sizeof(Item3) - 1, "\wArmor +%i \R\r%i$",get_pcvar_num(cvar_armor_ammount),get_pcvar_num(c var_armor_money))
}
else
{
formatex(Item3, sizeof(Item3) - 1, "\dArmor +%i \R\r%i$",get_pcvar_num(cvar_armor_ammount),get_pcvar_num(c var_armor_money))
}
if(iMoney >= get_pcvar_num(cvar_invizibility_money))
{
formatex(Item4, sizeof(Item4) - 1, "\wInvizibility \R\r%i$",get_pcvar_num(cvar_invizibility_money))
}
else
{
formatex(Item4, sizeof(Item4) - 1, "\dInvizibility \R\r%i$",get_pcvar_num(cvar_invizibility_money))
}
if(iMoney >= get_pcvar_num(cvar_speed_money))
{
formatex(Item5, sizeof(Item5) - 1, "\wSpeed \R\r%i$",get_pcvar_num(cvar_speed_money))
}
else
{
formatex(Item5, sizeof(Item5) - 1, "\dSpeed \R\r%i$",get_pcvar_num(cvar_speed_money))
}
if(iMoney >= get_pcvar_num(cvar_grenade_money))
{
formatex(Item6, sizeof(Item6) - 1, "\wHE Grenade +%i \R\r%i$",get_pcvar_num(cvar_grenade_ammo),get_pcvar_num(cv ar_grenade_money))
}
else
{
formatex(Item6, sizeof(Item6) - 1, "\dHE Grenade +%i \R\r%i$",get_pcvar_num(cvar_grenade_ammo),get_pcvar_num(cv ar_grenade_money))
}

new tero_shop = menu_create(Title, "sub_tero_shop", 0)

menu_additem(tero_shop, Item, "1", 0, -1)
menu_additem(tero_shop, Item2, "2", 0, -1)
menu_additem(tero_shop, Item3, "3", 0, -1)
menu_additem(tero_shop, Item4, "4", 0, -1)
menu_additem(tero_shop, Item5, "5", 0, -1)
menu_additem(tero_shop, Item6, "6", 0, -1)

menu_setprop(tero_shop, MPROP_EXIT, MEXIT_ALL)
menu_display(id,tero_shop , 0)
}
}


public shop_normal_cts(id)
{
if(is_user_alive(id))
{
static Title[150],Item[150],Item2[150],Item3[150]

new iMoney = cs_get_user_money(id)

formatex(Title, sizeof(Title) - 1, "\y%s^n\w Money:[\r%i\w]\r",g_cts,cs_get_user_money(id))

if(iMoney >= get_pcvar_num(cvar_deagle_money))
{
formatex(Item, sizeof(Item) - 1, "\wDeagle \R\r%i$",get_pcvar_num(cvar_deagle_money))
}
else
{
formatex(Item, sizeof(Item) - 1, "\dDeagle \R\r%i$",get_pcvar_num(cvar_deagle_money))
}
if(iMoney >= get_pcvar_num(cvar_m4a1_money))
{
formatex(Item2, sizeof(Item2) - 1, "\wM4A1 \R\r%i$",get_pcvar_num(cvar_m4a1_money))
}
else
{
formatex(Item2, sizeof(Item2) - 1, "\dM4A1 \R\r%i$",get_pcvar_num(cvar_m4a1_money))
}
if(iMoney >= get_pcvar_num(cvar_ak47_money))
{
formatex(Item3, sizeof(Item3) - 1, "\wAK47 \R\r%i$",get_pcvar_num(cvar_ak47_money))
}
else
{
formatex(Item3, sizeof(Item3) - 1, "\dAK47 \R\r%i$",get_pcvar_num(cvar_ak47_money))
}

new cts_shop = menu_create(Title, "sub_cts_shop")

menu_additem(cts_shop, Item, "1", 0, -1)
menu_additem(cts_shop, Item2, "2", 0, -1)
menu_additem(cts_shop, Item3, "3", 0, -1)

menu_setprop(cts_shop, MPROP_EXIT, MEXIT_ALL);
menu_display(id,cts_shop , 0)
}
}

public sub_cts_vip_shop(id, cts_vip_shop, item)
{
if (item == MENU_EXIT)
{
menu_destroy(cts_vip_shop)
remove_task(id)
return PLUGIN_HANDLED
}
new Data[7], Name[64]
new Access, Callback
menu_item_getinfo(cts_vip_shop, item, Access, Data,5, Name, 63, Callback)

new Key = str_to_num(Data)

switch (Key)
{
case 1:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_deagle_money_vip)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop_vip)
return 1
}
else
{
give_item(id,"weapon_deagle")

cs_set_user_bpammo(id,CSW_DEAGLE, get_pcvar_num(cvar_deagle_ammo_vip))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_deagle_money_vip))

ColorChat(id,"%s Ai cumparat !vDeagle!g!",tag_shop_vip)
}
}
case 2:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_m4a1_money_vip)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop_vip)
return 1
}
else
{
give_item(id,"weapon_m4a1")

cs_set_user_bpammo(id,CSW_M4A1, get_pcvar_num(cvar_m4a1_ammo_vip))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_m4a1_money_vip))

ColorChat(id,"%s Ai cumparat !vM4A1!g!",tag_shop_vip)
}
}
case 3:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_ak47_money_vip)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop_vip)
return 1
}
else
{
give_item(id,"weapon_ak47")

cs_set_user_bpammo(id,CSW_AK47, get_pcvar_num(cvar_ak47_ammo_vip))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_ak47_money_vip))

ColorChat(id,"%s Ai cumparat !vAK47!g!",tag_shop_vip)
}
}
}
menu_destroy(cts_vip_shop)
return PLUGIN_HANDLED
}


public sub_tero_vip_shop(id, tero_vip_shop, item)
{
if (item == MENU_EXIT)
{
menu_destroy(tero_vip_shop)
remove_task(id)
return PLUGIN_HANDLED
}
new Data[7], Name[64]
new Access, Callback
menu_item_getinfo(tero_vip_shop, item, Access, Data,5, Name, 63, Callback)

new Key = str_to_num(Data)

switch (Key)
{
case 1:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_glock_money_vip)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop_vip)
return 1
}
else
{
give_item(id,"weapon_glock18")
cs_set_user_bpammo(id,CSW_GLOCK18,get_pcvar_num(cv ar_glock_ammo_vip))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_glock_money_vip))

ColorChat(id,"%s Ai cumparat !vGlock!g!",tag_shop_vip)
}
}
case 2:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_health_money_vip)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop_vip)
return 1
}
else
{
set_user_health(id,get_user_health(id) + get_pcvar_num(cvar_health_ammount_vip))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_health_money_vip))

ColorChat(id,"%s Ai cumparat !vViata!g!",tag_shop_vip)
}
}
case 3:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_armor_money_vip)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop_vip)
return 1
}
else
{
set_user_armor(id,get_user_armor(id) + get_pcvar_num(cvar_armor_ammount_vip))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_armor_money_vip))

ColorChat(id,"%s Ai cumparat !vArmura!g!",tag_shop_vip)
}
}
case 4:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_invizibility_money_vip)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop_vip)
return 1
}
else
{
g_inviziblity_vip[id] = true

set_entity_visibility(id, 0)

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_invizibility_money_vip))

ColorChat(id,"%s Ai cumparat !vInvizibilitate!g!",tag_shop_vip)

set_task(get_pcvar_float(cvar_invizibility_time_vi p),"remove_invizibility_vip",id+TASK_INVIZIBILITY_VIP)
}
}
case 5:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_speed_money_vip)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop_vip)
return 1
}
else
{
HasSpeed_vip[id] = true

set_user_maxspeed(id,get_pcvar_float(cvar_speed_va lue_vip))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_speed_money_vip))

ColorChat(id,"%s Ai cumparat !vViteza!g!",tag_shop_vip)

set_task(get_pcvar_float(cvar_speed_time_vip),"remove_speed_vip",id+TASK_SPEED_VIP)
}
}
case 6:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_grenade_money_vip)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop_vip)
return 1
}
else
{
give_item(id,"weapon_hegrenade")
cs_set_user_bpammo(id,CSW_HEGRENADE,get_pcvar_num( cvar_grenade_ammo_vip))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_grenade_money_vip))

ColorChat(id,"%s Ai cumparat !vHeGrenade!g!",tag_shop_vip)
}
}

}
menu_destroy(tero_vip_shop)
return PLUGIN_HANDLED
}


public sub_cts_shop(id,cts_shop, item)
{
if (item == MENU_EXIT)
{
menu_destroy(cts_shop)
remove_task(id)
return PLUGIN_HANDLED
}
new Data[7], Name[64]
new Access, Callback
menu_item_getinfo(cts_shop, item, Access, Data,5, Name, 63, Callback)

new Key = str_to_num(Data)

switch (Key)
{
case 1:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_deagle_money)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop)
return 1
}
else
{
give_item(id,"weapon_deagle")

cs_set_user_bpammo(id,CSW_DEAGLE, get_pcvar_num(cvar_deagle_ammo))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_deagle_money))

ColorChat(id,"%s Ai cumparat !vDeagle!g!",tag_shop)
}
}
case 2:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_m4a1_money)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop)
return 1
}
else
{
give_item(id,"weapon_m4a1")

cs_set_user_bpammo(id,CSW_M4A1, get_pcvar_num(cvar_m4a1_ammo))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_m4a1_money))

ColorChat(id,"%s Ai cumparat !vM4A1!g!",tag_shop)
}
}
case 3:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_ak47_money)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop)
return 1
}
else
{
give_item(id,"weapon_ak47")

cs_set_user_bpammo(id,CSW_AK47, get_pcvar_num(cvar_ak47_ammo))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_ak47_money))

ColorChat(id,"%s Ai cumparat !vAK47!g!",tag_shop)
}
}
}
menu_destroy(cts_shop)
return PLUGIN_HANDLED
}



public sub_tero_shop(id,tero_shop,item)
{
if (item == MENU_EXIT)
{
menu_destroy(tero_shop)
remove_task(id)
return PLUGIN_HANDLED
}
new Data[7], Name[64]
new Access, Callback
menu_item_getinfo(tero_shop, item, Access, Data,5, Name, 63, Callback)

new Key = str_to_num(Data)

switch (Key)
{
case 1:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_glock_money)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop)
return 1
}
else
{
give_item(id,"weapon_glock18")
cs_set_user_bpammo(id,CSW_GLOCK18,get_pcvar_num(cv ar_glock_ammo))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_glock_money))

ColorChat(id,"%s Ai cumparat !vGlock!g!",tag_shop)
}
}
case 2:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_health_money)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop)
return 1
}
else
{
set_user_health(id,get_user_health(id) + get_pcvar_num(cvar_health_ammount))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_health_money))

ColorChat(id,"%s Ai cumparat !vViata!g!",tag_shop)
}
}
case 3:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_armor_money)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop)
return 1
}
else
{
set_user_armor(id,get_user_armor(id) + get_pcvar_num(cvar_armor_ammount))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_armor_money))

ColorChat(id,"%s Ai cumparat !vArmura!g!",tag_shop)
}
}
case 4:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_invizibility_money)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop)
return 1
}
else
{
g_inviziblity[id] = true

set_entity_visibility(id, 0)

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_invizibility_money))

ColorChat(id,"%s Ai cumparat !vInvizibilitate!g!",tag_shop)

set_task(get_pcvar_float(cvar_invizibility_time),"remove_invizibility",id+TASK_INVIZIBILITY)
}
}
case 5:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_speed_money)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop)
return 1
}
else
{
HasSpeed[id] = true

set_user_maxspeed(id,get_pcvar_float(cvar_speed_va lue))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_speed_money))

ColorChat(id,"%s Ai cumparat !vViteza!g!",tag_shop)

set_task(get_pcvar_float(cvar_speed_time),"remove_speed",id+TASK_SPEED)
}
}
case 6:
{
new iMoney = cs_get_user_money( id ) - get_pcvar_num(cvar_grenade_money)

if(iMoney < 0)
{
ColorChat(id,"%s Fonduri insuficiente!",tag_shop)
return 1
}
else
{
give_item(id,"weapon_hegrenade")
cs_set_user_bpammo(id,CSW_HEGRENADE,get_pcvar_num( cvar_grenade_ammo))

cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_grenade_money))

ColorChat(id,"%s Ai cumparat !vHeGrenade!g!",tag_shop)
}
}

}
menu_destroy(tero_shop)
return PLUGIN_HANDLED
}

public remove_invizibility(id)
{
id -= TASK_INVIZIBILITY

if(!is_user_alive(id))
{
g_inviziblity[id] = false
set_entity_visibility(id, 1)
remove_task(id+TASK_INVIZIBILITY)
}

set_entity_visibility(id, 1)
ColorChat(id,"%s Invizibilitatea a exipirat!",tag_shop)
}

public remove_speed(id)
{
id -= TASK_SPEED

if(!is_user_alive(id))
{
HasSpeed[id] = false
remove_task(id+TASK_SPEED)
}

HasSpeed[id] = false
ColorChat(id,"%s Viteza a exipirat!",tag_shop)
}

public remove_invizibility_vip(id)
{
id -= TASK_INVIZIBILITY_VIP

if(!is_user_alive(id))
{
g_inviziblity_vip[id] = false
set_entity_visibility(id, 1)
remove_task(id+TASK_INVIZIBILITY_VIP)
}

set_entity_visibility(id, 1)
ColorChat(id,"%s Invizibilitatea a exipirat!",tag_shop_vip)
}

public remove_speed_vip(id)
{
id -= TASK_SPEED_VIP

if(!is_user_alive(id))
{
HasSpeed_vip[id] = false
remove_task(id+TASK_SPEED_VIP)
}

HasSpeed_vip[id] = false
ColorChat(id,"%s Viteza a exipirat!",tag_shop_vip)
}

stock ColorChat( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ]

static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!v", "^4" ) //- verde
replace_all( msg, 190, "!g", "^1" ) //- galben
replace_all( msg, 190, "!e", "^3" ) //- echipa
replace_all( msg, 190, "!n", "^0" ) //- normal

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, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] );
write_string( msg );
message_end( );
}
}
}
}

stock is_user_vip(id)
{
if(get_user_flags(id) && read_flags("v"))
return true

return false
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/


Fisierul de configurare pentru shop-ul de Jb

// --------------------------------------- JailBreak Shop Settings ------------------------------------//

cvar_plugin_activat "1" // Default 1, daca nu este pe 1, plugin-ul nu va rula!


// ================= TERORISTS CVARS ================= //

cvar_glock_munitie "20" // Cata munitie doresti sa pun la glock
cvar_glock_pret "2000" // Pretul pentru arma

cvar_viata_Valoare "100" // Ce valoare doresti sa primeasca, cand cumpara viata
cvar_Viata_pret "2500" // Pretul pentru viata

cvar_armura_valoare "100" //Ce valoare doresti sa primeasca, cand cumpara armura
cvar_armura_pret "200" // Pretul pentru armura

cvar_invizibilitate_durata "5.0" //Cat timp sa ramana invizibil, atentie e tip float, adica cu virgula (ex 3.0 , 2.1)
cvar_invizibilitate_pret "7000" //Pretul pentru invizibilitate

cvar_viteza_timp "10.0" //Cat timp sa aibe viteza mare, atentie e tip float, adica cu virgula (ex 3.0 , 2.1)
cvar_viteza_valoare "450.0" //Ce viteza sa aibe, atentie e tip float, adica cu virgula (ex 3.0 , 2.1)
cvar_viteza_pret "1000" //Pretul pentru viteza

// ================= TERORISTS CVARS ================= //


// ================= COUNTER-TERORISTS CVARS ================= //

cvar_grenada_munitie "2" //Cate grenade sa primeasca
cvar_grenada_pret "300" //Pretul pentru grenada

cvar_deagle_munitie "10" //Cata munitie doresti pentru deagle
cvar_deagle_pret "1000" //Pretul armei

cvar_m4a1_munitie "20" //Cata munitie doresti pentru m4a1
cvar_m4a1_pret "2000" //Pretul armei

cvar_ak47_munitie "30" //Cata munitie doresti pentru ak47
cvar_ak47_pret "1500" //Pretul armei


// ================= COUNTER-TERORISTS CVARS ================= //

//-------------------------- VIP ------------------------------//


// ================= TERORISTS CVARS ================= //

cvar_glock_munitie_vip "30"
cvar_glock_pret_vip "2000"

cvar_viata_valoare_vip "100"
cvar_viata_pret_vip "2000"

cvar_armura_valoare_vip "150"
cvar_armura_pret_vip "100"

cvar_invizibilitate_durata_vip "15.0"
cvar_invizibilitate_pret_vip "3000"

cvar_viteza_timp_vip "15.0"
cvar_viteza_valoare_vip "500.0"
cvar_viteza_pret_vip "1500"

cvar_grenada_munitie_vip "3"
cvar_grenada_pret_vip "200"

// ================= TERORISTS CVARS ================= //


// ================= COUNTER-TERORISTS CVARS ================= //

cvar_deagle_munitie_vip "20"
cvar_deagle_pret_vip "200"

cvar_m4a1_munitie_vip "40"
cvar_m4a1_pret_vip "1500"

cvar_ak47_munitie_vip "50"
cvar_ak47_pret_vip "1000"

// ================= COUNTER-TERORISTS CVARS ================= //

//-------------------------- VIP ------------------------------//



echo "-------------------WarGods Community--------------------------"
echo "Fisierul JailBreak_SHOP_Settings.cfg a fost executat cu succes"
echo "--------------------------------------------------------------"

--------------- [i]Added after 7 minutes ---------------

Win Message Models


#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>

new bool:ShowMsgT[33],ShowMsgCT[33]

new ModelsWin[2][]=
{
"models/zombie_win.mdl",
"models/human_win.mdl"
}

public plugin_init()
{
register_event("SendAudio","CtWin","a","2=%!MRAD_ctwin")

register_event("SendAudio","TeroWin","a","2=%!MRAD_terwin")

register_event("CurWeapon","Change","be","1=1")

RegisterHam(Ham_Spawn, "player", "Spawn", 1)
}
public plugin_precache()
{
for(new i = 0;i < sizeof(ModelsWin);i++)
engfunc(EngFunc_PrecacheModel,ModelsWin[i])
}
public Change(id)
{
if(ShowMsgT[id])
{
set_pev(id,pev_viewmodel2,ModelsWin[0])
}

if(ShowMsgCT[id])
{
set_pev(id,pev_viewmodel2,ModelsWin[1])
}
}

public Spawn(id)
{
ShowMsgCT[id] = false
ShowMsgT[id] = false

strip_user_weapons(id)
give_item(id,"weapon_knife")
}

public CtWin()
{
new Players[32],num
get_players(Players,num,"c")

for(new i = 0;i < num;i++)
{
ShowMsgCT[Players[i]] = true

if(ShowMsgCT[Players[i]] && is_user_alive(Players[i]))
{
client_cmd(Players[i],"cl_righthand 0")
//set_pev(Players[i],pev_viewmodel2,ModelsWin[1])
Change(Players[i])
}
message_begin(MSG_ALL,get_user_msgid("ScreenFade"),_,Players[i])
write_short( floatround( 4096.0 * 4, floatround_round ) )
write_short( floatround( 4096.0 * 4, floatround_round ) )
write_short( 0x0000 )
write_byte(0)
write_byte(0)
write_byte(0)
write_byte(random_num(140,150))
message_end()
}
}

public TeroWin()
{
new Players[32],num
get_players(Players,num,"c")

for(new i = 0;i < num;i++)
{
ShowMsgT[Players[i]] = true

if(ShowMsgT[Players[i]] && is_user_alive(Players[i]))
{
client_cmd(Players[i],"cl_righthand 0")
//set_pev(Players[i],pev_viewmodel2,ModelsWin[0])
Change(Players[i])
}
message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _,Players[i])
write_short( floatround( 4096.0 * 4, floatround_round ) )
write_short( floatround( 4096.0 * 4, floatround_round ) )
write_short( 0x0000 )
write_byte(255)
write_byte(0)
write_byte(0)
write_byte(random_num(140,150))
message_end()
}
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1048\\ f0\\ fs16 \n\\ par }
*/

lAsuStarl
15-10-2020, 10:03 PM
O versiune de NPC (Non playable character) , mai slăbuţă, mai de 2015 :))



#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <engine>
#include <hamsandwich>

#define PLUGIN "NPC Zombie"
#define VERSION "2.0"
#define AUTHOR "AsuStar"

#define ZB_CLASSNAME "npc_zombie"
#define TASK_ATTACK 323423

new const zombie_model[] = "models/player/tank_zombi_host/tank_zombi_host.mdl"

new bool:g_deadnpc[256]

new const zombie_hurt[][] =
{
"l4d/zombi_hurt_02.wav",
"l4d/zombi_hurt_01.wav"
}

new const zombie_die[][] =
{
"l4d/zombi_die1.wav",
"l4d/zombi_die2.wav"
}

new const zombie_attack_sound[][] =
{
"l4d/zombi_attack_1.wav",
"l4d/zombi_attack_2.wav",
"l4d/zombi_attack_3.wav"
}

new spr_blood_drop,spr_blood_spray
new pev_victim = pev_enemy

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)

register_clcmd("npc","cmd_npc")

register_think(ZB_CLASSNAME, "fw_zb_think")

RegisterHam(Ham_Killed, "info_target", "fw_zb_killed")

//register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0")
}

public plugin_precache()
{
precache_model(zombie_model)

for(new i = 0;i < sizeof(zombie_die);i++)
precache_sound(zombie_die)

for(new i = 0;i < sizeof(zombie_hurt);i++)
precache_sound(zombie_hurt[i])

for(new i = 0;i < sizeof(zombie_attack_sound);i++)
precache_sound(zombie_attack_sound[i])

spr_blood_drop = precache_model("sprites/blood.spr")
spr_blood_spray = precache_model("sprites/bloodspray.spr")
}


public plugin_cfg()
{
Load_Npc()
}

public cmd_npc(id)
{
if(get_user_flags(id) & ADMIN_IMMUNITY)
{
new menu = menu_create("NPC:Meniul Principal", "Menu_Handler")

menu_additem(menu, "Creaza NPC", "1")
menu_additem(menu, "Sterge NPC", "2")
menu_additem(menu, "Salveaza locatia NPC-urilor", "3")
menu_additem(menu, "Sterge toate NPC-urile", "4")

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

menu_display(id, menu)
}
else
{
client_print(id,print_console,"[Left4dead]:Nu ai acces la aceasta comanda!")
ColorChat(id,"!v[Left4dead]!g:Nu ai acces la aceasta comanda!")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

public Menu_Handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new info[6], szName[64]
new access, callback

menu_item_getinfo(menu, item, access, info, charsmax(info), szName, charsmax(szName), callback);

new key = str_to_num(info)

switch(key)
{
case 1:
{
Create_Npc(id)
}
case 2:
{
new iEnt, body, szClassname[32]
get_user_aiming(id, iEnt, body)

if (is_valid_ent(iEnt))
{
entity_get_string(iEnt, EV_SZ_classname, szClassname, charsmax(szClassname));

if (equal(szClassname,ZB_CLASSNAME))
{
remove_entity(iEnt)
}

}
}
case 3:
{
Save_Npc()

ColorChat(id,"!v[Left4dead NPC]!g:Originile NPC-urilor au fost salvate cu succes!")
}
case 4:
{
remove_entity_name(ZB_CLASSNAME)

ColorChat(id,"!v[Left4dead NPC]!g:Toate NPC-urile au fost sterse!")
}
}
menu_display(id, menu)

return PLUGIN_HANDLED
}

Create_Npc(id, Float:flOrigin[3]= { 0.0, 0.0, 0.0 }, Float:flAngle[3]= { 0.0, 0.0, 0.0 } )
{
//Create an entity using type 'info_target'
new ent = create_entity("info_target")

//Set our entity to have a classname so we can filter it out later
entity_set_string(ent, EV_SZ_classname, ZB_CLASSNAME)

//If a player called this function
if(id)
{
//Retrieve the player's origin
entity_get_vector(id, EV_VEC_origin, flOrigin)
//Set the origin of the NPC to the current players location
entity_set_origin(ent, flOrigin);
//Increase the Z-Axis by 80 and set our player to that location so they won't be stuck
flOrigin[2] += 80.0;
entity_set_origin(id, flOrigin);

//Retrieve the player's angle
entity_get_vector(id, EV_VEC_angles, flAngle)
//Make sure the pitch is zeroed out
flAngle[0] = 0.0
//Set our NPC angle based on the player's angle
entity_set_vector(ent, EV_VEC_angles, flAngle)
}
//If we are reading from a file
else
{
//Set the origin and angle based on the values of the parameters
entity_set_origin(ent, flOrigin)
entity_set_vector(ent, EV_VEC_angles, flAngle)
}

if(!pev_valid(ent))
return HAM_HANDLED

entity_set_float(ent, EV_FL_takedamage, 1.0)

entity_set_float(ent,EV_FL_maxspeed, 250.0)

entity_set_float(ent, EV_FL_health, 100.0)

entity_set_string(ent, EV_SZ_classname, ZB_CLASSNAME)
entity_set_model(ent, zombie_model)
entity_set_int(ent, EV_INT_solid, 2)

entity_set_int(ent, EV_INT_movetype, MOVETYPE_PUSHSTEP)

entity_set_float(ent, EV_FL_animtime, get_gametime())
entity_set_float(ent, EV_FL_framerate, 1.0)
entity_set_float(ent, EV_FL_gravity, 1.0)

set_pev(ent, pev_victim, 0)

entity_set_byte(ent, EV_BYTE_controller1, 125)
entity_set_byte(ent, EV_BYTE_controller2, 125)
entity_set_byte(ent, EV_BYTE_controller3, 125)
entity_set_byte(ent, EV_BYTE_controller4, 125)

new Float:maxs[3] = {16.0, 16.0, 36.0}
new Float:mins[3] = {-16.0, -16.0, -36.0}
entity_set_size(ent, mins, maxs)

Util_PlayAnimation(ent,1, 1.0)

entity_set_float(ent,EV_FL_nextthink, halflife_time() + 0.01)
drop_to_floor(ent)

RegisterHamFromEntity(Ham_TakeDamage, ent, "fw_zb_takedmg")
//RegisterHamFromEntity(Ham_Killed, ent, "fw_zb_killed")
RegisterHamFromEntity(Ham_TraceAttack,ent,"fw_zb_blood")

g_deadnpc[ent] = false

return 1
}

public fw_zb_blood(iEnt, attacker, Float: damage, Float: direction[3], trace, damageBits)
{
new Float: end[3]
get_tr2(trace, TR_vecEndPos, end);

message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_BLOODSPRITE)
engfunc(EngFunc_WriteCoord, end[0])
engfunc(EngFunc_WriteCoord, end[1])
engfunc(EngFunc_WriteCoord, end[2])
write_short(spr_blood_spray)
write_short(spr_blood_drop)
write_byte(247)
write_byte(random_num(1, 5))
message_end()
}

public fw_zb_takedmg(victim, inflictor, attacker, Float:damage, damagebits)
{
emit_sound(victim, CHAN_VOICE, zombie_hurt[random(sizeof zombie_hurt)], VOL_NORM,ATTN_NORM, 0, PITCH_NORM)
}

public fw_zb_killed(ent)
{
new className[32]
entity_get_string(ent, EV_SZ_classname, className, charsmax(className))

if(!equali(className, ZB_CLASSNAME))
return HAM_IGNORED

g_deadnpc[ent] = true

remove_task(ent+TASK_ATTACK)

Util_PlayAnimation(ent, 102, 1.0)

entity_set_int(ent, EV_INT_solid, SOLID_NOT)

entity_set_float(ent, EV_FL_takedamage, 0.0)

set_task(5.0, "remove_temp_zb", ent)

return HAM_SUPERCEDE
}

public remove_temp_zb(ent)
{
remove_entity(ent)
}

public fw_zb_think(ent)
{
if(!is_valid_ent(ent))
return FMRES_IGNORED

new victim = FindClosesEnemy(ent)
new Float:Origin[3], Float:VicOrigin[3], Float:distance

pev(ent, pev_origin, Origin)
pev(victim, pev_origin, VicOrigin)

distance = get_distance_f(Origin, VicOrigin)

if(g_deadnpc[ent] == true)
return PLUGIN_HANDLED

if(distance <= 60.0)
{
zombie_attack(ent, victim)
entity_set_float(ent, EV_FL_nextthink, get_gametime() + 2.5)
} else {

if(pev(ent,pev_sequence) != 4)
Util_PlayAnimation(ent, 4, 1.0)

new Float:Ent_Origin[3], Float:Vic_Origin[3]

pev(ent, pev_origin, Ent_Origin)
pev(victim, pev_origin, Vic_Origin)

npc_turntotarget(ent, Ent_Origin, victim, Vic_Origin)
hook_ent(ent, victim)

entity_set_float(ent, EV_FL_nextthink, get_gametime() + 0.1)
}

return FMRES_HANDLED
}

public zombie_attack(ent, victim)
{
new Float:Ent_Origin[3], Float:Vic_Origin[3]

pev(ent, pev_origin, Ent_Origin)
pev(victim, pev_origin, Vic_Origin)

npc_turntotarget(ent, Ent_Origin, victim, Vic_Origin)

Util_PlayAnimation(ent, 76, 1.0)
ExecuteHam(Ham_TakeDamage, victim, 0, victim, random_float(5.0, 10.0), DMG_BULLET)
emit_sound(ent, CHAN_VOICE,zombie_attack_sound[random(sizeof zombie_attack_sound)], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)

remove_task(ent+TASK_ATTACK)
set_task(1.0, "stop_attack", ent+TASK_ATTACK)
}

public stop_attack(ent)
{
ent -= TASK_ATTACK

Util_PlayAnimation(ent,1,1.0)

remove_task(ent+TASK_ATTACK)
}

Load_Npc()
{
//Get the correct filepath and mapname
new szConfigDir[256], szFile[256], szNpcDir[256];

get_configsdir(szConfigDir, charsmax(szConfigDir));

new szMapName[32];
get_mapname(szMapName, charsmax(szMapName));

formatex(szNpcDir, charsmax(szNpcDir),"%s/Left4dead_Npc", szConfigDir);
formatex(szFile, charsmax(szFile), "%s/%s.cfg", szNpcDir, szMapName);

//If the filepath does not exist then we will make one
if(!dir_exists(szNpcDir))
{
mkdir(szNpcDir);
}

//If the map config file does not exist we will make one
if(!file_exists(szFile))
{
write_file(szFile, "");
}

//Variables to store when reading our file
new szFileOrigin[3][32]
new sOrigin[128], sAngle[128];
new Float:fOrigin[3], Float:fAngles[3];
new iLine, iLength, sBuffer[256];

//When we are reading our file...
while(read_file(szFile, iLine++, sBuffer, charsmax(sBuffer), iLength))
{
//Move to next line if the line is commented
if((sBuffer[0]== ';') || !iLength)
continue;

//Split our line so we have origin and angle. The split is the vertical bar character
strtok(sBuffer, sOrigin, charsmax(sOrigin), sAngle, charsmax(sAngle), '|', 0);

//Store the X, Y and Z axis to our variables made earlier
parse(sOrigin, szFileOrigin[0], charsmax(szFileOrigin[]), szFileOrigin[1], charsmax(szFileOrigin[]), szFileOrigin[2], charsmax(szFileOrigin[]));

fOrigin[0] = str_to_float(szFileOrigin[0]);
fOrigin[1] = str_to_float(szFileOrigin[1]);
fOrigin[2] = str_to_float(szFileOrigin[2]);

//Store the yawn angle
fAngles[1] = str_to_float(sAngle[1]);

//Create our NPC
Create_Npc(0, fOrigin, fAngles)

//Keep reading the file until the end
}
}

public Save_Npc()
{
//Variables
new szConfigsDir[256], szFile[256], szNpcDir[256];

//Get the configs directory.
get_configsdir(szConfigsDir, charsmax(szConfigsDir));

//Get the current map name
new szMapName[32];
get_mapname(szMapName, charsmax(szMapName));

//Format 'szNpcDir' to ../configs/NPC
formatex(szNpcDir, charsmax(szNpcDir),"%s/Left4dead_Npc", szConfigsDir);
//Format 'szFile to ../configs/NPC/mapname.cfg
formatex(szFile, charsmax(szFile), "%s/%s.cfg", szNpcDir, szMapName);

//If there is already a .cfg for the current map. Delete it
if(file_exists(szFile))
delete_file(szFile);

//Variables
new iEnt = -1, Float:fEntOrigin[3], Float:fEntAngles[3];
new sBuffer[256];

//Scan and find all of my custom ents
while( ( iEnt = find_ent_by_class(iEnt, ZB_CLASSNAME) ) )
{
//Get the entities' origin and angle
entity_get_vector(iEnt, EV_VEC_origin, fEntOrigin);
entity_get_vector(iEnt, EV_VEC_angles, fEntAngles);

//Format the line of one custom ent.
formatex(sBuffer, charsmax(sBuffer), "%d %d %d | %d", floatround(fEntOrigin[0]), floatround(fEntOrigin[1]), floatround(fEntOrigin[2]), floatround(fEntAngles[1]));

//Finally write to the mapname.cfg file and move on to the next line
write_file(szFile, sBuffer, -1);

//We are currentlying looping to find all custom ents on the map. If found another ent. Do the above till there is none.
}

}

public npc_turntotarget(ent, Float:Ent_Origin[3], target, Float:Vic_Origin[3])
{
if(target)
{
new Float:newAngle[3]
entity_get_vector(ent, EV_VEC_angles, newAngle)
new Float:x = Vic_Origin[0] - Ent_Origin[0]
new Float:z = Vic_Origin[1] - Ent_Origin[1]

new Float:radians = floatatan(z/x, radian)
newAngle[1] = radians * (180 / 3.14)
if (Vic_Origin[0] < Ent_Origin[0])
newAngle[1] -= 180.0

entity_set_vector(ent, EV_VEC_angles, newAngle)
}
}

public hook_ent(ent, victim)
{
new Float:fl_Velocity[3]
new Float:VicOrigin[3], Float:EntOrigin[3]

pev(ent, pev_origin, EntOrigin)
pev(victim, pev_origin, VicOrigin)

new Float:distance_f = get_distance_f(EntOrigin, VicOrigin)

if (distance_f > 60.0)
{
new Float:fl_Time = distance_f / 100.0

fl_Velocity[0] = (VicOrigin[0] - EntOrigin[0]) / fl_Time
fl_Velocity[1] = (VicOrigin[1] - EntOrigin[1]) / fl_Time
fl_Velocity[2] = (VicOrigin[2] - EntOrigin[2]) / fl_Time
} else
{
fl_Velocity[0] = 0.0
fl_Velocity[1] = 0.0
fl_Velocity[2] = 0.0
}

entity_set_vector(ent, EV_VEC_velocity, fl_Velocity)
}

stock bool:IsValidTarget(iTarget)
{
if (!iTarget || !(1<= iTarget <= get_maxplayers()) || !is_user_connected(iTarget) || !is_user_alive(iTarget))
return false
return true
}

public FindClosesEnemy(entid)
{
new Float:Dist
new Float:maxdistance=4000.0
new indexid=0
for(new i=1;i<=get_maxplayers();i++){
if(is_user_alive(i) && is_valid_ent(i) && can_see_fm(entid, i))
{
Dist = entity_range(entid, i)
if(Dist <= maxdistance)
{
maxdistance=Dist
indexid=i

return indexid
}
}
}
return 0
}

public bool:can_see_fm(entindex1, entindex2)
{
if (!entindex1 || !entindex2)
return false

if (pev_valid(entindex1) && pev_valid(entindex1))
{
new flags = pev(entindex1, pev_flags)
if (flags & EF_NODRAW || flags & FL_NOTARGET)
{
return false
}

new Float:lookerOrig[3]
new Float:targetBaseOrig[3]
new Float:targetOrig[3]
new Float:temp[3]

pev(entindex1, pev_origin, lookerOrig)
pev(entindex1, pev_view_ofs, temp)
lookerOrig[0] += temp[0]
lookerOrig[1] += temp[1]
lookerOrig[2] += temp[2]

pev(entindex2, pev_origin, targetBaseOrig)
pev(entindex2, pev_view_ofs, temp)
targetOrig[0] = targetBaseOrig [0] + temp[0]
targetOrig[1] = targetBaseOrig [1] + temp[1]
targetOrig[2] = targetBaseOrig [2] + temp[2]

engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) // checks the had of seen player
if (get_tr2(0, TraceResult:TR_InOpen) && get_tr2(0, TraceResult:TR_InWater))
{
return false
}
else
{
new Float:flFraction
get_tr2(0, TraceResult:TR_flFraction, flFraction)
if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
{
return true
}
else
{
targetOrig[0] = targetBaseOrig [0]
targetOrig[1] = targetBaseOrig [1]
targetOrig[2] = targetBaseOrig [2]
engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) // checks the body of seen player
get_tr2(0, TraceResult:TR_flFraction, flFraction)
if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
{
return true
}
else
{
targetOrig[0] = targetBaseOrig [0]
targetOrig[1] = targetBaseOrig [1]
targetOrig[2] = targetBaseOrig [2] - 17.0
engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) // checks the legs of seen player
get_tr2(0, TraceResult:TR_flFraction, flFraction)
if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
{
return true
}
}
}
}
}
return false
}

stock Util_PlayAnimation(index, sequence, Float: framerate = 1.0)
{
entity_set_float(index, EV_FL_animtime, get_gametime())
entity_set_float(index, EV_FL_framerate, framerate)
entity_set_float(index, EV_FL_frame, 0.0)
entity_set_int(index, EV_INT_sequence, sequence)
}

stock DirectedVec(Float:start[3],Float:end[3],Float:reOri[3])
{
new Float:v3[3]
v3[0]=start[0]-end[0]
v3[1]=start[1]-end[1]
v3[2]=start[2]-end[2]
new Float:vl = vector_length(v3)
reOri[0] = v3[0] / vl
reOri[1] = v3[1] / vl
reOri[2] = v3[2] / vl
}

stock ColorChat( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ]

static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!v", "^4" ) //- verde
replace_all( msg, 190, "!g", "^1" ) //- galben
replace_all( msg, 190, "!e", "^3" ) //- echipa
replace_all( msg, 190, "!n", "^0" ) //- normal

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, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] );
write_string( msg );
message_end( );
}
}
}
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/


Script pentru arme la începutul rundei în modul Furien


/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <fakemeta_util>

#define PLUGIN "Guns Menu"
#define VERSION "1.2"
#define AUTHOR "AsuStar"

#pragma tabsize 0

new bool:HaveGun[33]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /arme", "cmd_weapons")
register_clcmd("say /guns", "cmd_weapons")
register_clcmd("say /hero", "cmd_weapons")

register_clcmd("say_team /arme","cmd_weapons")
register_clcmd("say_team /guns","cmd_weapons")
register_clcmd("say_team /hero","cmd_weapons")

RegisterHam(Ham_Spawn,"player","shop_menu",1)
}

public client_connect(id)
{
HaveGun[id] = false
}

public client_disconnect(id)
{
HaveGun[id] = false
}

public cmd_weapons(id)
{
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && HaveGun[id] == false)
{
shop_menu(id)
}
}
public shop_menu(id)
{
HaveGun[id] = false

switch(cs_get_user_team(id))
{
case CS_TEAM_T:
{
if(is_user_alive(id))
{
strip_user_weapons(id)
give_item(id,"weapon_knife")
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")
cs_set_user_nvg(id,1)
}
}
case CS_TEAM_CT:
{
if(is_user_alive(id))
{
strip_user_weapons(id)
give_item(id,"weapon_knife")
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")
cs_set_user_nvg(id,1)

if(!HaveGun[id])
{
new shopmenu = menu_create("\r[ AntiFurien Champions ]^n\y Choose your hero: \r","sub_show_shop")
menu_additem(shopmenu, "\wDarius [M3 + Deagle ]\r", "1", 0)
menu_additem(shopmenu, "\wRoach [Famas + Daul-Elite]\r", "2", 0)
menu_additem(shopmenu, "\wVolibear [MP5 Navy + Glock]\r", "3", 0)
menu_additem(shopmenu, "\wWarwick [M4A1 + Deagle]\r", "4", 0)
menu_additem(shopmenu, "\wSoap [AK47 + P228]\r", "5", 0)
menu_additem(shopmenu, "\wPantheon [P90 + FiveSeven]\r", "6", 0)
menu_additem(shopmenu, "\wGhost [SG552 + USP]\r", "7", 0)

menu_setprop(shopmenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, shopmenu, 0)
}
}
}
}
/*
new shopmenu = menu_create("\r[ AntiFurien Champions ]^n\y Choose your hero: \r","sub_show_shop")
menu_additem(shopmenu, "\wDarius [M3 + Deagle ]\r", "1", 0)
menu_additem(shopmenu, "\wRoach [Famas + Daul-Elite]\r", "2", 0)
menu_additem(shopmenu, "\wVolibear [MP5 Navy + Glock]\r", "3", 0)
menu_additem(shopmenu, "\wWarwick [M4A1 + Deagle]\r", "4", 0)
menu_additem(shopmenu, "\wSoap [AK47 + P228]\r", "5", 0)
menu_additem(shopmenu, "\wPantheon [P90 + FiveSeven]\r", "6", 0)
menu_additem(shopmenu, "\wGhost [SG552 + USP]\r", "7", 0)

menu_setprop(shopmenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, shopmenu, 0)
*/
}
public sub_show_shop(id, shopmenu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(shopmenu);
remove_task(id);
return PLUGIN_HANDLED;
}

if(cs_get_user_team(id) == CS_TEAM_T)
{
menu_destroy(shopmenu)
remove_task(id)
return PLUGIN_HANDLED
}

new Data[7], Name[64]
new Access, Callback
menu_item_getinfo(shopmenu, item, Access, Data,5, Name, 63, Callback)

new Key = str_to_num(Data);

switch (Key)
{
case 1:
{
drop_weapons(id,1)
drop_weapons(id,2)
HaveGun[id] = true
give_item(id, "weapon_m3")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_M3, 5000)
cs_set_user_bpammo(id, CSW_DEAGLE, 5000)
cs_set_user_nvg(id,1)
ColorChat(id,"^4[Anti Furien]:^1 Ai ales campionul ^4Darius!^1!")
}
case 2:
{
drop_weapons(id,1)
drop_weapons(id,2)
HaveGun[id] = true
give_item(id, "weapon_famas")
give_item(id, "weapon_elite")
cs_set_user_bpammo(id, CSW_FAMAS, 5000)
cs_set_user_bpammo(id, CSW_ELITE, 5000)
cs_set_user_nvg(id,1);
ColorChat(id,"^4[Anti Furien]:^1 Ai ales campionul ^4Roach^1!")
}
case 3:
{
drop_weapons(id,1)
drop_weapons(id,2)
HaveGun[id] = true
give_item(id, "weapon_mp5navy")
give_item(id, "weapon_glock18")
cs_set_user_bpammo(id, CSW_MP5NAVY, 5000)
cs_set_user_bpammo(id, CSW_GLOCK18, 5000)
cs_set_user_nvg(id,1)
ColorChat(id,"^4[Anti Furien]:^1 Ai ales campionul ^4Volibear^1!")
}
case 4:
{
drop_weapons(id,1)
drop_weapons(id,2)
HaveGun[id] = true
give_item(id, "weapon_m4a1")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_M4A1, 5000)
cs_set_user_bpammo(id, CSW_DEAGLE, 5000)
cs_set_user_nvg(id,1)
ColorChat(id,"^4[Anti Furien]:^1 Ai ales campionul ^4Warwick^1!")
}
case 5:
{
drop_weapons(id,1)
drop_weapons(id,2)
HaveGun[id] = true
give_item(id, "weapon_ak47")
give_item(id, "weapon_p228")
cs_set_user_bpammo(id, CSW_AK47, 5000)
cs_set_user_bpammo(id, CSW_P228, 5000)
cs_set_user_nvg(id,1)
ColorChat(id,"^4[Anti Furien]:^1 Ai ales campionul ^4Soap^1!")
}
case 6:
{
drop_weapons(id,1)
drop_weapons(id,2)
HaveGun[id] = true
give_item(id, "weapon_p90")
give_item(id, "weapon_fiveseven")
cs_set_user_bpammo(id, CSW_P90, 5000)
cs_set_user_bpammo(id, CSW_FIVESEVEN, 5000)
cs_set_user_nvg(id,1)
ColorChat(id,"^4[Anti Furien]:^1 Ai ales campionul ^4Pantheon^1!")
}
case 7:
{
drop_weapons(id,1)
drop_weapons(id,2)
HaveGun[id] = true
give_item(id, "weapon_sg552")
give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_SG552, 5000)
cs_set_user_bpammo(id, CSW_USP, 5000)
cs_set_user_nvg(id,1)
ColorChat(id,"^4[Anti Furien]:^1 Ai ales campionul ^4Ghost^1!")
}
}
return PLUGIN_HANDLED
}

stock drop_weapons(id, dropwhat)
{
// Get user weapons
static weapons[32], num, i, weaponid
num = 0 // reset passed weapons count (bugfix)
get_user_weapons(id, weapons, num)

// Weapon bitsums
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)

// Loop through them and drop primaries or secondaries
for (i = 0; i < num; i++)
{
// Prevent re-indexing the array
weaponid = weapons[i]

if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
// Get weapon entity
static wname[32], weapon_ent
get_weaponname(weaponid, wname, charsmax(wname))
weapon_ent = fm_find_ent_by_owner(-1, wname, id)

// Hack: store weapon bpammo on PEV_ADDITIONAL_AMMO
set_pev(weapon_ent, pev_iuser1, cs_get_user_bpammo(id, weaponid))

// Player drops the weapon and looses his bpammo
engclient_cmd(id, "drop", wname)
cs_set_user_bpammo(id, weaponid, 0)
}
}
}

stock ColorChat( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ]

static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!v", "^4" ) //- verde
replace_all( msg, 190, "!g", "^1" ) //- galben
replace_all( msg, 190, "!e", "^3" ) //- echipa
replace_all( msg, 190, "!n", "^0" ) //- normal

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, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] );
write_string( msg );
message_end( );
}
}
}
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/



O altă variantă al script-ului anterior, dar cu alte tipuri de modele la arme (hardcoded)


#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <fakemeta_util>

#define PLUGIN "Furien-Weapons"
#define VERSION "1.0-Beta"
#define AUTHOR "Asu"

//DulalMp5
new const DualMp5[64] = "models/xxx/v_dualmp5.mdl"

//AK47knife
new const Ak47[64] = "models/xxx/v_ak47knife.mdl"

//M4a1
new const M4a1[64] = "models/xxx/v_416.mdl"

//ShoutGun
new const Gun[64] = "models/xxx/v_gun.mdl"

//M3Gun
new const GunGun[64] = "models/xxx/v_gungun.mdl"

//Deagle
new const Deagle[64] = "models/xxx/v_deagle.mdl"

//Aug
new const Aug[64] = "models/xxx/v_aug.mdl"

//Skull
new const Sniper[64] = "models/xxx/v_headskull.mdl"

new const primit[] = "misc/power"

new Tag[] = "!v[Menu Weapons]:!g"

new iWeapon[33];
new bool:AmFolosit[33];

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
register_clcmd("say /arme","cmd_shop")
register_clcmd("say /weapons","cmd_shop")
register_clcmd("say_team /arme","cmd_shop")
register_clcmd("say_team /weapons","cmd_shop")

//Hamuri
RegisterHam( Ham_Spawn, "player", "shop_menu", 1 )
register_event( "DeathMsg" , "DeathMsgEvent" , "a" )
register_event( "CurWeapon", "Event_CurWeapon", "be", "1=1" )
RegisterHam( Ham_TakeDamage, "player", "fwTakeDamage" )
}
public plugin_precache( )
{
precache_model(DualMp5)
precache_model(Ak47)
precache_model(M4a1)
precache_model(Gun)
precache_model(GunGun)
precache_model(Deagle)
precache_model(Aug)
precache_model(Sniper)
precache_sound(primit)
}
public DeathMsgEvent()
{
new iVictim = read_data( 2 )
iWeapon[iVictim] = 0
}
public cmd_shop(id)
{
if(is_user_alive(id))
{
set_task(0.1,"shop_menu",id)
}
else

ColorChat(id,"%s Esti mort nu poti deschide meniul.",Tag)
}

public shop_menu(id)
{
new WeaponTake = menu_create("\d-| Cose your hero |-\d","sub_shop")
menu_additem(WeaponTake,"\wGhOsT\r [DualMp5]","1",0)
menu_additem(WeaponTake,"\wRiVeRn\r[Ak47]","2",0)
menu_additem(WeaponTake,"\wRiXeRd\r[M4a1]","3",0)
menu_additem(WeaponTake,"\wShOoTeR\r[DublePower]","4",0)
menu_additem(WeaponTake,"\wScRoW\r [SimplePower]","5",0)
menu_additem(WeaponTake,"\wStRiKeR\r[AUG]","6",0)
menu_additem(WeaponTake,"\wAlFa7\r [Sniper]","7",0)

menu_setprop(WeaponTake, MPROP_EXIT, MEXIT_ALL)
menu_display(id, WeaponTake, 0)

return 0;
}
public sub_shop(id,WeaponTake,item)
{
if (item == MENU_EXIT)
{
menu_destroy(WeaponTake)
remove_task(id)
return PLUGIN_HANDLED
}
new Data[7], Name[64]
new Access, Callback
menu_item_getinfo(WeaponTake, item, Access, Data,5, Name, 63, Callback)

new Key = str_to_num(Data)

switch (Key)
{
case 1:
{
strip_user_weapons(id)
client_cmd(id,"spk %s",primit)
give_item(id, "weapon_knife");
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "weapon_mp5navy")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_MP5NAVY, 5000)
cs_set_user_bpammo(id, CSW_DEAGLE, 5000)
set_pev( id, pev_viewmodel2, DualMp5 )
set_pev( id, pev_viewmodel2, Deagle )
iWeapon[id] = 1
}
case 2:
{
strip_user_weapons(id)
client_cmd(id,"spk %s",primit)
give_item(id, "weapon_knife");
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "weapon_ak47")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_AK47, 5000)
cs_set_user_bpammo(id, CSW_DEAGLE, 5000)
set_pev(id, pev_viewmodel2, Ak47 )
set_pev( id, pev_viewmodel2, Deagle )
iWeapon[id] = 1
}
case 3:
{
strip_user_weapons(id)
client_cmd(id,"spk %s",primit)
give_item(id, "weapon_knife");
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "weapon_m4a1")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_M4A1, 5000)
cs_set_user_bpammo(id, CSW_DEAGLE, 5000)
set_pev( id, pev_viewmodel2, M4a1 )
set_pev( id, pev_viewmodel2, Deagle )
iWeapon[id] = 1
}
case 4:
{
strip_user_weapons(id)
client_cmd(id,"spk %s",primit)
give_item(id, "weapon_knife");
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id,"weapon_xm1014")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_XM1014, 4000)
cs_set_user_bpammo(id, CSW_DEAGLE, 5000)
set_pev( id, pev_viewmodel2, Gun)
set_pev( id, pev_viewmodel2, Deagle )
iWeapon[id] = 1

}
case 5:
{
strip_user_weapons(id)
client_cmd(id,"spk %s",primit)
give_item(id, "weapon_knife");
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "weapon_m3")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_M3, 5000)
cs_set_user_bpammo(id, CSW_DEAGLE, 5000)
set_pev( id, pev_viewmodel2, GunGun )
set_pev( id, pev_viewmodel2, Deagle )
iWeapon[id] = 1
}
case 6:
{
strip_user_weapons(id)
client_cmd(id,"spk %s",primit)
give_item(id, "weapon_knife");
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "weapon_aug")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_AUG, 5000)
cs_set_user_bpammo(id, CSW_DEAGLE, 5000)
set_pev(id, pev_viewmodel2, Aug )
set_pev( id, pev_viewmodel2, Deagle )
iWeapon[id] = 1
}
case 7:
{
strip_user_weapons(id)
client_cmd(id,"spk %s",primit)
give_item(id, "weapon_knife");
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "weapon_sg550")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_SG550, 5000)
cs_set_user_bpammo(id, CSW_DEAGLE, 5000)
set_pev(id, pev_viewmodel2, Sniper )
set_pev( id, pev_viewmodel2, Deagle )
iWeapon[id] = 1
}
}
menu_destroy(WeaponTake)
return PLUGIN_HANDLED
}
public Event_CurWeapon(id)
{
new Arma = read_data( 2 )

if( Arma == CSW_AK47) {
set_pev( id, pev_viewmodel2, Ak47 )
}

if( Arma == CSW_M4A1) {
set_pev( id, pev_viewmodel2, M4a1 )
}

if( Arma == CSW_MP5NAVY ) {
set_pev( id, pev_viewmodel2, DualMp5 )
}

if( Arma == CSW_XM1014) {
set_pev( id, pev_viewmodel2, Gun )
}

if( Arma == CSW_M3) {
set_pev( id, pev_viewmodel2, GunGun)
}

if( Arma == CSW_SG550) {
set_pev( id, pev_viewmodel2, Sniper )
}

if( Arma == CSW_AUG) {
set_pev( id, pev_viewmodel2, Aug )
}

if( Arma == CSW_DEAGLE) {
set_pev( id, pev_viewmodel2, Deagle )
}
}
public fwTakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits )
{
if(is_user_alive(iAttacker))
{
switch(iWeapon[iAttacker])
{
case 1:
{
if(iInflictor == iAttacker && get_user_weapon(iAttacker) == CSW_XM1014 && get_user_team(iAttacker) == 2)
SetHamParamFloat( 4, fDamage * 4);
}

case 2:
{
if(iInflictor == iAttacker && get_user_weapon(iAttacker) == CSW_AK47 && get_user_team(iAttacker) == 1)
SetHamParamFloat( 4, fDamage * 3);

}
case 3:
{
if(iInflictor == iAttacker && get_user_weapon(iAttacker) == CSW_M4A1 && get_user_team(iAttacker) == 2)
SetHamParamFloat( 4, fDamage * 3)

}
case 4:
{
if(iInflictor == iAttacker && get_user_weapon(iAttacker) == CSW_MP5NAVY && get_user_team(iAttacker) == 1)
SetHamParamFloat( 4, fDamage * 2)
}
case 5:
{
if(iInflictor == iAttacker && get_user_weapon(iAttacker) == CSW_DEAGLE && get_user_team(iAttacker) == 2)
SetHamParamFloat( 4, fDamage * 1)
}
case 6:
{
if(iInflictor == iAttacker && get_user_weapon(iAttacker) == CSW_SG550 && get_user_team(iAttacker) == 1)
SetHamParamFloat( 4, fDamage * 5)
}
case 7:
{
if(iInflictor == iAttacker && get_user_weapon(iAttacker) == CSW_M3 && get_user_team(iAttacker) == 2)
SetHamParamFloat( 4, fDamage * 4)
}
case 8:
{
if(iInflictor == iAttacker && get_user_weapon(iAttacker) == CSW_AUG && get_user_team(iAttacker) == 1)
SetHamParamFloat( 4, fDamage * 3)
}
}



}
}

stock ColorChat( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ]

static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!v", "^4" ) //- verde
replace_all( msg, 190, "!g", "^1" ) //- galben
replace_all( msg, 190, "!e", "^3" ) //- echipa
replace_all( msg, 190, "!n", "^0" ) //- normal

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, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] );
write_string( msg );
message_end( );
}
}
}
}
/* 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 after 4 minutes ---------------

Un script ce ofera un skin pentru fetele de pe server, bineinteles in functie de numele pe care il au


#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

new GirlsModel[64] = "zm"

new GirlsName[] [] =
{
"Andreea",
"Ramona",
"Corina",
"Alexandra",
"Anca",
"Andrea",
"Diana",
"andreea",
"andrea",
"corina",
"alexandra",
"anca",
"diana",
":*"
}

public plugin_init()
{
register_plugin("Girls Skin","0.1","Asu")

RegisterHam(Ham_Spawn, "player", "Spawn", 1)
}

public plugin_precache()
{
new buffer[128]
formatex(buffer,sizeof(buffer) -1,"models/player/%s/%s.mdl",GirlsModel,GirlsModel)

precache_model(buffer)
}

public Spawn(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
new name[32]
get_user_name(id,name,sizeof(name) -1)

for(new i = 0;i < sizeof(GirlsName);i++)
{
if(containi(name,GirlsName) != -1)
{
cs_set_user_model(id,GirlsModel)
}
else
{
cs_reset_user_model(id)
}
}
}
return PLUGIN_CONTINUE
}


/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1048\\ f0\\ fs16 \n\\ par }
*/



--------------- [i]Added after 2 minutes ---------------

Un status sub forma unui sprite, ce se schimba in functie de grenada pe care o deţii in momentul respectiv


#include <amxmodx>

new StatusIcon

public plugin_init()
{
register_plugin("Grenade StatusIcon","0.3","AsuStar")

register_event ( "CurWeapon", "CurrenWeapon", "be", "1=1" )

StatusIcon = get_user_msgid("StatusIcon")
}

public CurrenWeapon(id)
{
new Arma = read_data(2)

if(Arma == CSW_HEGRENADE)
{
message_begin(MSG_ONE,StatusIcon,{0,0,0},id)
write_byte(1) // status (0=hide, 1=show, 2=flash)
write_string("dmg_heat") // sprite name
write_byte(255) //R
write_byte(0) //G
write_byte(0) //B
message_end()
}
else if(!(Arma == CSW_HEGRENADE))
{
message_begin(MSG_ONE,StatusIcon,{0,0,0},id)
write_byte(0)
write_string("dmg_heat")
write_byte(255)
write_byte(0)
write_byte(0)
message_end()
}


if(Arma == CSW_FLASHBANG)
{
message_begin(MSG_ONE,StatusIcon,{0,0,0},id)
write_byte(1)
write_string("dmg_shock")
write_byte(255)
write_byte(255)
write_byte(255)
message_end()
}
else if(!(Arma == CSW_FLASHBANG))
{
message_begin(MSG_ONE,StatusIcon,{0,0,0},id)
write_byte(0)
write_string("dmg_shock")
write_byte(255)
write_byte(255)
write_byte(255)
message_end()
}


if(Arma == CSW_SMOKEGRENADE)
{
message_begin(MSG_ONE,StatusIcon,{0,0,0},id)
write_byte(1)
write_string("dmg_cold")
write_byte(0)
write_byte(255)
write_byte(255)
message_end()
}
else if(!(Arma == CSW_SMOKEGRENADE))
{
message_begin(MSG_ONE,StatusIcon,{0,0,0},id)
write_byte(0)
write_string("dmg_cold")
write_byte(0)
write_byte(0)
write_byte(255)
message_end()
}

return PLUGIN_CONTINUE
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1048\\ f0\\ fs16 \n\\ par }
*/