Plugin Cerut: Team Select Menu / Join Menu Personalizat
Descriere (adica ce face el mai exact): Să modifice meniul de selectare a echipei când se intră pe server. Să spunem că Gigel când se conectează, vede așa meniu de selectare a echipei:
1. Deținuți
2. Gardieni
3. Vizitatori închisoare
RAȚIE: 1 gardian = 3 deținuti
Menționez că, plugin pentru rație am deja, trebuie doar modificat acel meniu de selectare a echipei.
Serverul ruleaza (HLDS/ReHLDS): ReHLDS
Versiune AMX Mod X: -
Modul Serverului: Jailbreak
[Cerere] Team Select Menu Personalizat [Rezolvat]
Categoria cu cereri de pluginuri si nu numai.
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
Forum rules
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
-
- Membru, skill 0
- Posts: 16
- Joined: 04 Jan 2019, 21:25
- Detinator Steam: Da
- Detinator server CS: Jb.ExtreamCs.Com
- SteamID: STEAM_0:1:173782101
- Fond eXtream: 0
- Location: Câmpia Turzii, Cluj
- Contact:
-
- Membru, skill 0
- Posts: 16
- Joined: 04 Jan 2019, 21:25
- Detinator Steam: Da
- Detinator server CS: Jb.ExtreamCs.Com
- SteamID: STEAM_0:1:173782101
- Fond eXtream: 0
- Location: Câmpia Turzii, Cluj
- Contact:
CVAR-uri:
Plugin Sursa:
Aici oricum nu se modifică pluginurile, de aceea am cerut să mi se creeze unul, dar accept și dacă modificați sursa de mai sus, nu se supără nimeni! :)
Code: Select all
tr_terr_percent <procent> (procent setat 75)
- Procentajul deținutilor din tot server-ul (3 deținuti pentru 1 gardian = 3 / ( 3 + 1 ) = 3 / 4 = .75 = 75%)
- Valoarea cvar-urului e procentajul, dar se scrie fără %!
tr_advantage <0|1|2> (valoare implicită: 0)
- Unde merg jucătorii care nu corespund unei rații perfecte?
- 0 = cea mai bună echipă care corespunde rației
- 1 = deținuti
- 2 = gardieni
- | Afiseaza codul
#include < amxmodx > #include < cstrike > #include < hamsandwich > new pCvar_TerrPercent; new pCvar_Advantage; public plugin_init( ) { register_plugin( "Team Ratio", "0.0.1", "Exolent" ); register_event( "HLTV", "EventNewRound", "a", "1=0", "2=0" ); register_event( "TextMsg", "EventRestartRound", "a", "2&#Game_C", "2&#Game_w" ); register_logevent( "EventRoundEnd", 2, "1=Round_End" ); pCvar_TerrPercent = register_cvar( "tr_terr_percent", "75" ); pCvar_Advantage = register_cvar( "tr_advantage", "1" ); } public EventNewRound( ) { set_task( 1.0, "TaskCheckTeams", 1234 ); } public EventRestartRound( ) { remove_task( 1234 ); } public EventRoundEnd( ) { remove_task( 1234 ); } public TaskCheckTeams( ) { new Float:fTerrPercent = get_pcvar_float( pCvar_TerrPercent ); if( fTerrPercent > 100.0 ) { CheckTeams( 10000.0 / fTerrPercent, CS_TEAM_CT ); } else { CheckTeams( fTerrPercent, CS_TEAM_T ); } } CheckTeams( Float:fPercent, CsTeams:iTeam ) { new CsTeams:iOtherTeam = CsTeams:( ( _:iTeam % 2 ) + 1 ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum, "a" ); for( new i = 0; i < iNum; i++ ) { switch( cs_get_user_team( iPlayers[ i ] ) ) { case CS_TEAM_T: { } case CS_TEAM_CT: { } default: { iPlayers[ i-- ] = iPlayers[ --iNum ]; } } } new CsTeams:iTeamAdvantage = CsTeams:get_pcvar_num( pCvar_Advantage ); new floatround_method:iRoundMethod; if( iTeamAdvantage == iTeam ) { iRoundMethod = floatround_ceil; } else if( iTeamAdvantage == iOtherTeam ) { iRoundMethod = floatround_floor; } else { iRoundMethod = floatround_round; } new iReq = floatround( float( iNum ) * fPercent / 100.0, iRoundMethod ); new iReqOther = iNum - iReq; for( new i = 0; i < iNum; i++ ) { if( cs_get_user_team( iPlayers[ i ] ) == iTeam ) { if( iReq > 0 ) { iReq--; iPlayers[ i-- ] = iPlayers[ --iNum ]; } } else { if( iReqOther > 0 ) { iReqOther--; iPlayers[ i-- ] = iPlayers[ --iNum ]; } } } new iRandom, iPlayer; for( new i = 0; i < iReq; i++ ) { iRandom = random( iNum ); iPlayer = iPlayers[ iRandom ]; iPlayers[ iRandom ] = iPlayers[ --iNum ]; if( cs_get_user_team( iPlayer ) == iOtherTeam ) { cs_set_user_team( iPlayer, iTeam ); ExecuteHamB( Ham_Spawn, iPlayer ); } } for( new i = 0; i < iReqOther; i++ ) { iRandom = random( iNum ); iPlayer = iPlayers[ iRandom ]; iPlayers[ iRandom ] = iPlayers[ --iNum ]; if( cs_get_user_team( iPlayer ) == iTeam ) { cs_set_user_team( iPlayer, iOtherTeam ); ExecuteHamB( Ham_Spawn, iPlayer ); } } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par } */
Aici oricum nu se modifică pluginurile, de aceea am cerut să mi se creeze unul, dar accept și dacă modificați sursa de mai sus, nu se supără nimeni! :)
- levin
- Scripter eXtreamCS
- Posts: 3850
- Joined: 24 Aug 2011, 12:24
- Detinator Steam: Da
- CS Status: ♅
- Detinator server CS: ☯∴
- SteamID: 76561198063679589
- Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy - Location: ҳ̸Ҳ̸ҳ
- Discord: devilclass
- Has thanked: 36 times
- Been thanked: 595 times
- Contact:
din câte știu,orice mod de jb are meniul modificat..
- | Afiseaza codul
#include < amxmodx > #include < cstrike > #include < hamsandwich > #pragma tabsize 0 new pCvar_TerrPercent; new pCvar_Advantage; public plugin_init( ) { register_plugin( "Team Ratio", "0.0.1", "Exolent" ); register_event( "HLTV", "EventNewRound", "a", "1=0", "2=0" ); register_event( "TextMsg", "EventRestartRound", "a", "2&#Game_C", "2&#Game_w" ); register_logevent( "EventRoundEnd", 2, "1=Round_End" ); pCvar_TerrPercent = register_cvar( "tr_terr_percent", "75" ); pCvar_Advantage = register_cvar( "tr_advantage", "1" ); register_clcmd("chooseteam","HelpMenu") register_menucmd(-2,MENU_KEY_1|MENU_KEY_2|MENU_KEY_3,"HelpMenu"); register_menucmd(register_menuid("Team_Select",1),MENU_KEY_1|MENU_KEY_2|MENU_KEY_3,"HelpMenu"); /* register_message(get_user_msgid("ShowMenu"), "MenuTeam") register_message(get_user_msgid("VGUIMenu"), "VGUITeam") */ } public client_connect(id) set_user_info(id,"_vgui_menus","0") public client_putinserver(id) if(is_user_connected(id)&&!is_user_bot(id)) HelpMenu(id) public HelpMenu(id) { new gMenu = menu_create( "Tu unde vrei?", "thisContent" ); menu_additem( gMenu, "Detinuti", "1" ); menu_additem( gMenu, "Gardieni", "2" ); menu_additem( gMenu, "Vizitatori inchisoare", "3" ); menu_display( id, gMenu ); return PLUGIN_HANDLED } public thisContent( id, Menu, Item ) { new Key[ 3 ],Access, CallBack; menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack ); new isKey = str_to_num( Key ); switch( isKey ) { case 1: { cs_set_user_team(id,CS_TEAM_T) } case 2: { cs_set_user_team(id,CS_TEAM_CT) } case 3: { cs_set_user_team(id,CS_TEAM_SPECTATOR) } } return 1; } /* public MenuTeam(msg, des, rec) { static const TeamSelect[] = "#Team_Select" //class static sz_Menu[sizeof (TeamSelect)] get_msg_arg_string(4, sz_Menu, charsmax(sz_Menu)) if (!equal(sz_Menu, TeamSelect)) return PLUGIN_CONTINUE set_pdata_int(rec, 205, 0) TeamMenu(rec) return PLUGIN_HANDLED } public VGUITeam(msg, des, rec) { if (get_msg_arg_int(1) != 2) return PLUGIN_CONTINUE TeamMenu(rec) return PLUGIN_HANDLED } public TeamMenu(id) { new menu menu = menu_create("Tu unde vrei?", "HandlerTeam") menu_additem( gMenu, "Detinuti", "1" ); menu_additem( gMenu, "Gardieni", "2" ); menu_additem( gMenu, "Vizitatori inchisoare", "3" ); menu_display(id, menu, 0) } public HandlerTeam(id, menu, item) { new Name[64], Data[6], Access, Callback, Num menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, Callback) Num = str_to_num(Data) switch (Num) { case 1: engclient_cmd(id, "jointeam", "2") case 2: engclient_cmd(id, "jointeam", "1") case 3: engclient_cmd(id, "jointeam", "3") } menu_destroy(menu) return PLUGIN_HANDLED } stock ForceJoin(index, g_MsgId, team [] = "5", class [] = "0") { static MsgBlock static JoinTeam [] = "jointeam" static JoinClass [] = "joinclass" MsgBlock = get_msg_block(g_MsgId) set_msg_block(g_MsgId, BLOCK_SET) engclient_cmd(index, JoinTeam, team) engclient_cmd(index, JoinClass, class) set_msg_block(g_MsgId, MsgBlock) } */ public EventNewRound( ) { set_task( 1.0, "TaskCheckTeams", 1234 ); } public EventRestartRound( ) { remove_task( 1234 ); } public EventRoundEnd( ) { remove_task( 1234 ); } public TaskCheckTeams( ) { new Float:fTerrPercent = get_pcvar_float( pCvar_TerrPercent ); if( fTerrPercent > 100.0 ) { CheckTeams( 10000.0 / fTerrPercent, CS_TEAM_CT ); } else { CheckTeams( fTerrPercent, CS_TEAM_T ); } } CheckTeams( Float:fPercent, CsTeams:iTeam ) { new CsTeams:iOtherTeam = CsTeams:( ( _:iTeam % 2 ) + 1 ); new iPlayers[ 32 ], iNum; get_players( iPlayers, iNum, "a" ); for( new i = 0; i < iNum; i++ ) { switch( cs_get_user_team( iPlayers[ i ] ) ) { case CS_TEAM_T: { } case CS_TEAM_CT: { } default: { iPlayers[ i-- ] = iPlayers[ --iNum ]; } } } new CsTeams:iTeamAdvantage = CsTeams:get_pcvar_num( pCvar_Advantage ); new floatround_method:iRoundMethod; if( iTeamAdvantage == iTeam ) { iRoundMethod = floatround_ceil; } else if( iTeamAdvantage == iOtherTeam ) { iRoundMethod = floatround_floor; } else { iRoundMethod = floatround_round; } new iReq = floatround( float( iNum ) * fPercent / 100.0, iRoundMethod ); new iReqOther = iNum - iReq; for( new i = 0; i < iNum; i++ ) { if( cs_get_user_team( iPlayers[ i ] ) == iTeam ) { if( iReq > 0 ) { iReq--; iPlayers[ i-- ] = iPlayers[ --iNum ]; } } else { if( iReqOther > 0 ) { iReqOther--; iPlayers[ i-- ] = iPlayers[ --iNum ]; } } } new iRandom, iPlayer; for( new i = 0; i < iReq; i++ ) { iRandom = random( iNum ); iPlayer = iPlayers[ iRandom ]; iPlayers[ iRandom ] = iPlayers[ --iNum ]; if( cs_get_user_team( iPlayer ) == iOtherTeam ) { cs_set_user_team( iPlayer, iTeam ); ExecuteHamB( Ham_Spawn, iPlayer ); } } for( new i = 0; i < iReqOther; i++ ) { iRandom = random( iNum ); iPlayer = iPlayers[ iRandom ]; iPlayers[ iRandom ] = iPlayers[ --iNum ]; if( cs_get_user_team( iPlayer ) == iTeam ) { cs_set_user_team( iPlayer, iOtherTeam ); ExecuteHamB( Ham_Spawn, iPlayer ); } } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par } */
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
-
- Membru, skill 0
- Posts: 16
- Joined: 04 Jan 2019, 21:25
- Detinator Steam: Da
- Detinator server CS: Jb.ExtreamCs.Com
- SteamID: STEAM_0:1:173782101
- Fond eXtream: 0
- Location: Câmpia Turzii, Cluj
- Contact:
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <engine> #include <fakemeta> #include <hamsandwich> #include <fun> #include <cstrike> #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] 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_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[_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() { static i precache_model("models/player/jbemodel/jbemodel.mdl") for(i = 0; i < sizeof(_FistModels); i++) precache_model(_FistModels) for(i = 0; i < sizeof(_CrowbarModels); i++) precache_model(_CrowbarModels) for(i = 0; i < sizeof(_FistSounds); i++) precache_sound(_FistSounds) 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)) remove_entity(ent) } } 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, 4, 2.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 = 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 > maxnosimon) { cmd_nomic(i) } } case(CS_TEAM_SPECTATOR,CS_TEAM_UNASSIGNED): { g_PlayerSpect++ if(g_PlayerSpect > 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[_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() 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) } } }
Ai avut dreptate Adryyy, pluginul interferează cu cel de bază de la joropito și-mi crează 2 meniuri, poți te rog să modifici meniul în pluginul lui joro? :D
Am încercat și eu să modific acel vgui dar n-a mers. Trebuie să te uiți după „msg_vguimenu” , „ public team_select” și „public team_join” !
- levin
- Scripter eXtreamCS
- Posts: 3850
- Joined: 24 Aug 2011, 12:24
- Detinator Steam: Da
- CS Status: ♅
- Detinator server CS: ☯∴
- SteamID: 76561198063679589
- Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy - Location: ҳ̸Ҳ̸ҳ
- Discord: devilclass
- Has thanked: 36 times
- Been thanked: 595 times
- Contact:
păi lasă doar 1 din meniuri(cel din plg de bază jb)
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
-
- Membru, skill 0
- Posts: 16
- Joined: 04 Jan 2019, 21:25
- Detinator Steam: Da
- Detinator server CS: Jb.ExtreamCs.Com
- SteamID: STEAM_0:1:173782101
- Fond eXtream: 0
- Location: Câmpia Turzii, Cluj
- Contact:
Așa vreau să las, dar acel meniu trebuie editat, deoarece după cum joropito l-a creat, la intrare apare așa:
Select a team
1. Counter-Terrorists
2. Terrorists
3. Auto-Select
4. Spectators
Voi lăsa plugin-ul de team_ratio de la exolent cu sursa mea, doar să se pună rațiile și trebuie editat meniul (vgui l-a definit joropito) din pluginul de bază de jailbreak, jbextreme.sma (ți-am dat sursa mai sus). Te rog să te uiți tu prin sursă după publicurile "msg_vgui" , "team_join" , "team_select" , acolo e creat meniul de join și să modifici. Ștergi tot și incorporează tu meniul cum vrei iar eu îl editez și adaug variabilă să îți poți schimba echipa doar o singură dată pe rundă. Eu am încercat să înlătur întregul Team Join Menu din pluginul de bază de jailbreak și am reușit, dar nu se încărcau după niciun model și nicio comandă.
Totuși, categoria asta nu este pentru modificările pluginurilor, să fac cerere în categoria corespunzătoare sau vei încerca aici să rezolvi?
Select a team
1. Counter-Terrorists
2. Terrorists
3. Auto-Select
4. Spectators
Voi lăsa plugin-ul de team_ratio de la exolent cu sursa mea, doar să se pună rațiile și trebuie editat meniul (vgui l-a definit joropito) din pluginul de bază de jailbreak, jbextreme.sma (ți-am dat sursa mai sus). Te rog să te uiți tu prin sursă după publicurile "msg_vgui" , "team_join" , "team_select" , acolo e creat meniul de join și să modifici. Ștergi tot și incorporează tu meniul cum vrei iar eu îl editez și adaug variabilă să îți poți schimba echipa doar o singură dată pe rundă. Eu am încercat să înlătur întregul Team Join Menu din pluginul de bază de jailbreak și am reușit, dar nu se încărcau după niciun model și nicio comandă.
Totuși, categoria asta nu este pentru modificările pluginurilor, să fac cerere în categoria corespunzătoare sau vei încerca aici să rezolvi?
- levin
- Scripter eXtreamCS
- Posts: 3850
- Joined: 24 Aug 2011, 12:24
- Detinator Steam: Da
- CS Status: ♅
- Detinator server CS: ☯∴
- SteamID: 76561198063679589
- Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy - Location: ҳ̸Ҳ̸ҳ
- Discord: devilclass
- Has thanked: 36 times
- Been thanked: 595 times
- Contact:
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <engine> #include <fakemeta> #include <hamsandwich> #include <fun> #include <cstrike> #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] 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_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[_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() { static i precache_model("models/player/jbemodel/jbemodel.mdl") for(i = 0; i < sizeof(_FistModels); i++) precache_model(_FistModels) for(i = 0; i < sizeof(_CrowbarModels); i++) precache_model(_CrowbarModels) for(i = 0; i < sizeof(_FistSounds); i++) precache_sound(_FistSounds) 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)) remove_entity(ent) } } 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 client_connect(id) set_user_info(id,"_vgui_menus","0") //public client_putinserver(id) if(is_user_connected(id)&&!is_user_bot(id)) show_emenu(id) 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_emenu(id)//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_emenu(id)//show_menu(id, 51, TEAM_MENU, -1) return PLUGIN_HANDLED } } else { show_emenu(id)//show_menu(id, 51, TEAM_MENU, -1) return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public show_emenu(id) { new gMenu = menu_create( "Tu unde vrei?", "thisContent" ); menu_additem( gMenu, "Detinuti", "1" ); menu_additem( gMenu, "Gardieni", "2" ); menu_additem( gMenu, "Vizitatori inchisoare", "3" ); menu_display( id, gMenu ); return PLUGIN_HANDLED } public thisContent( id, Menu, Item ) { new Key[ 3 ],Access, CallBack; menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack ); new isKey = str_to_num( Key ); switch( isKey ) { case 1: { cs_set_user_team(id,CS_TEAM_T) //engclient_cmd(id, "jointeam", "1") } case 2: { cs_set_user_team(id,CS_TEAM_CT) //engclient_cmd(id, "jointeam", "2") } case 3: { cs_set_user_team(id,CS_TEAM_SPECTATOR) //engclient_cmd(id, "jointeam", "3") } } return 1; } 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, 4, 2.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 = 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 > maxnosimon) { cmd_nomic(i) } } case(CS_TEAM_SPECTATOR,CS_TEAM_UNASSIGNED): { g_PlayerSpect++ if(g_PlayerSpect > 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[_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() 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) } } }
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
-
- Membru, skill 0
- Posts: 16
- Joined: 04 Jan 2019, 21:25
- Detinator Steam: Da
- Detinator server CS: Jb.ExtreamCs.Com
- SteamID: STEAM_0:1:173782101
- Fond eXtream: 0
- Location: Câmpia Turzii, Cluj
- Contact:
Meniul merge, iar jucătorii pot să-și aleagă echipele, merci. Problema e că, prima dată când își aleg echipele pe tab arată că și-au ales echipa, dar când le dau revive de exemplu ei sunt oarecum spectatori și pe tab arată că nu sunt.
- levin
- Scripter eXtreamCS
- Posts: 3850
- Joined: 24 Aug 2011, 12:24
- Detinator Steam: Da
- CS Status: ♅
- Detinator server CS: ☯∴
- SteamID: 76561198063679589
- Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy - Location: ҳ̸Ҳ̸ҳ
- Discord: devilclass
- Has thanked: 36 times
- Been thanked: 595 times
- Contact:
CIUDAT
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <engine> #include <fakemeta> #include <hamsandwich> #include <fun> #include <cstrike> #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] 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_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[_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() { static i precache_model("models/player/jbemodel/jbemodel.mdl") for(i = 0; i < sizeof(_FistModels); i++) precache_model(_FistModels) for(i = 0; i < sizeof(_CrowbarModels); i++) precache_model(_CrowbarModels) for(i = 0; i < sizeof(_FistSounds); i++) precache_sound(_FistSounds) 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)) remove_entity(ent) } } 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 client_connect(id) set_user_info(id,"_vgui_menus","0") //public client_putinserver(id) if(is_user_connected(id)&&!is_user_bot(id)) show_emenu(id) 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_emenu(id)//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_emenu(id)//show_menu(id, 51, TEAM_MENU, -1) return PLUGIN_HANDLED } } else { show_emenu(id)//show_menu(id, 51, TEAM_MENU, -1) return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public show_emenu(id) { new gMenu = menu_create( "Tu unde vrei?", "thisContent" ); menu_additem( gMenu, "Detinuti", "1" ); menu_additem( gMenu, "Gardieni", "2" ); menu_additem( gMenu, "Vizitatori inchisoare", "3" ); menu_display( id, gMenu ); return PLUGIN_HANDLED } public thisContent( id, Menu, Item ) { new Key[ 3 ],Access, CallBack; menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack ); new isKey = str_to_num( Key ); switch( isKey ) { case 1: { //cs_set_user_team(id,CS_TEAM_T) //engclient_cmd(id, "jointeam", "1") team_join(id,CS_TEAM_T) } case 2: { //cs_set_user_team(id,CS_TEAM_CT) //engclient_cmd(id, "jointeam", "2") team_join(id,CS_TEAM_CT) } case 3: { //cs_set_user_team(id,CS_TEAM_SPECTATOR) //engclient_cmd(id, "jointeam", "3") team_join(id,CS_TEAM_SPECTATOR) } } return 1; } 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, 4, 2.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 = 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 > maxnosimon) { cmd_nomic(i) } } case(CS_TEAM_SPECTATOR,CS_TEAM_UNASSIGNED): { g_PlayerSpect++ if(g_PlayerSpect > 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[_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() 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) } } }
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
-
- Membru, skill 0
- Posts: 16
- Joined: 04 Jan 2019, 21:25
- Detinator Steam: Da
- Detinator server CS: Jb.ExtreamCs.Com
- SteamID: STEAM_0:1:173782101
- Fond eXtream: 0
- Location: Câmpia Turzii, Cluj
- Contact:
Frate, habar n-am cum să îți mulțumesc pentru cât m-ai ajutat! Am și făcut cerere să-mi afiliez server-ul cu comunitatea asta bestială! Te aștept pe el! Rog T/C, mulțumesc extrem de mult!
Jump to
- eXtream - Forum
- ↳ Steam
- ↳ Forum
- ↳ WebDesign
- ↳ Incepatori
- ↳ Cos de reciclare
- ↳ Discutii generale
- ↳ Anunturi
- ↳ Security zone
- ↳ Filme si seriale
- ↳ Reclamatii
- ↳ Entertainment
- ↳ Distractie
- ↳ Clubul eXtreamCS - Intra si tu ! [noi oportunitati]
- eXtream - Counter-Strike 2
- ↳ Counter-Strike 2
- eXtream - Counter-Strike 1.6
- ↳ Diverse
- ↳ Filme gaming
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Tutoriale
- ↳ Cereri
- ↳ Discutii generale
- ↳ Probleme la servere dedicate de Counter-Strike
- ↳ Cereri admin / slot
- ↳ Probleme in jocul Counter-Strike
- ↳ Pluginuri
- ↳ Pluginuri eXtream
- ↳ Cereri
- ↳ AdminMod
- ↳ AmxModX
- ↳ Resurse
- ↳ Moduri
- ↳ Addon-uri
- ↳ Kit-uri
- ↳ Harti
- ↳ Diverse
- ↳ Cereri
- ↳ Servere
- ↳ Programarea CS-ului
- ↳ Scripting
- ↳ Modificari pluginuri
- ↳ CStrike
- ↳ Cereri
- eXtream - Echipa
- ↳ Productia eXtream
- ↳ Harti eXtream
- ↳ CS.eXtreamCS.com - Server oficial eXtreamCS
- ↳ Zona administrativă
- ↳ Cereri acces
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Admin zone
- ↳ CS2.eXtreamCS.com - Server official eXtreamCS
- ↳ XMAS.eXtreamCS.com
- ↳ Cereri admin
- ↳ Cereri unban
- ↳ Reclamatii / Sugestii
- ↳ eXtreamCS #PubMasters
- eXtream - Counter Strike Global Offensive
- ↳ Diverse
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Probleme la servere dedicate de Counter-Strike: Global Offensive
- ↳ Probleme in jocul Counter-Strike: Global Offensive
- ↳ Pluginuri
- ↳ Cereri
- ↳ Resurse
- ↳ Addons-uri
- ↳ Hărți
- ↳ Diverse
- ↳ Servere
- eXtream - Counter-Strike Source
- ↳ Tutoriale
- ↳ Pluginuri
- ↳ Servere
- ↳ Resurse
- ↳ Harti
- ↳ Moduri
- ↳ Diverse
- ↳ Classic » CS
- ↳ Anunțuri administrative
- ↳ Cereri admin/slot
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Banlist
- ↳ Admins Only
- ↳ Discord