|
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1 45.144.155.113:27015 |
de_dust2 Играчи: 30/32 |
|
Cs-PlovdiV.com - Aim Attack | 93.123.16.4:27022 | aim_aztec | Играчи: 0/16 |
Проблем - Host errorbad server message
-
jumby1990
Извън линия - Потребител
- Мнения: 128
- Регистриран на: 10 Фев 2019, 18:02
- Местоположение: varna
- Се отблагодари: 8 пъти
- Получена благодарност: 4 пъти
- Обратна връзка:
Проблем - Host errorbad server message
Здравейте от известно време почна да ми прави тоя проблем когато играем в сървъра не веднага след известно време изхвърля всички от сървъра изписва това - Host_Error: CL_ParseServerMessage: Bad server message.
Сминих платформата с най-новата HLDS 7561 , сложих последния amx mod x 1.10.0 , прегледах подробно всеки 1 плугин който съм добавял.
Ако някой има решение на проблема моля да сподели благодаря !
Сминих платформата с най-новата HLDS 7561 , сложих последния amx mod x 1.10.0 , прегледах подробно всеки 1 плугин който съм добавял.
Ако някой има решение на проблема моля да сподели благодаря !
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1296 пъти
- Обратна връзка:
Проблем - Host errorbad server message
Чети описанията на разделите и гледай къде си пускаш темите!
Как точно си "прегледал" плъгините? Ако не вземеш да ги спираш 1 по 1 докато проблемът не спре, надали ще разбереш от къде идва проблемът. Вероятно е от някой плъгин който ползва message_begin.
Как точно си "прегледал" плъгините? Ако не вземеш да ги спираш 1 по 1 докато проблемът не спре, надали ще разбереш от къде идва проблемът. Вероятно е от някой плъгин който ползва message_begin.
-
jumby1990
Извън линия - Потребител
- Мнения: 128
- Регистриран на: 10 Фев 2019, 18:02
- Местоположение: varna
- Се отблагодари: 8 пъти
- Получена благодарност: 4 пъти
- Обратна връзка:
Проблем - Host errorbad server message
съжелявам ако съм объркал раздела , добре ще прегледам по обстойно благодаря.
-
jumby1990
Извън линия - Потребител
- Мнения: 128
- Регистриран на: 10 Фев 2019, 18:02
- Местоположение: varna
- Се отблагодари: 8 пъти
- Получена благодарност: 4 пъти
- Обратна връзка:
Проблем - Host errorbad server message
проблема идва от самия hns плугин дето ползвам според мене понеже махнах всички други плугини оставих само него , влязохме да поиграем малко с приятел и има няма , 5-10 минути пак изхвърля всички от сървъра на веднъж имали начин тая команда където си я посочил да се замени със друга или някакъв плугин да препоръчаш да сложа да не прави така че не е приятно, благодаря.
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1296 пъти
- Обратна връзка:
Проблем - Host errorbad server message
Качи .sma файла да видим какъв е проблемът. Няма как да се оправи с друг плъгин.
-
jumby1990
Извън линия - Потребител
- Мнения: 128
- Регистриран на: 10 Фев 2019, 18:02
- Местоположение: varna
- Се отблагодари: 8 пъти
- Получена благодарност: 4 пъти
- Обратна връзка:
hns help - Host errorbad server message
това плугина който използвам, където изхвърля играчите от сървъра
Последно промяна от OciXCrom на 15 Дек 2019, 17:02, променено общо 2 пъти.
Причина: Защо аджеба нова тема?...
Причина: Защо аджеба нова тема?...
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1296 пъти
- Обратна връзка:
Проблем - Host errorbad server message
Добавих логове преди всяка message_begin функция. Погледни в логовете какво точно ще изпише в момента когато изхвърля играчите, за да знаем къде точно да търсим проблема.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#endif
#include <colorchat>
#include <hamsandwich>
#include <fakemeta_util>
#include <fakemeta>
#include <fun>
#include <engine>
#include <sockets>
#include <player_settings_saver>
#include <csx>
#include <xs>
#define PLUGIN "hns"
#define VERSION "1.0"
#define AUTHOR "jumby"
#define TASK_ROUNDTIME 8888
#define SAFETRANSFERTASK 7832
#define MAX_PLAYERS 32
#define hns_ACESS ADMIN_LEVEL_H // flag "t"
#define m_bJustConnected 480
#define SETTING_KNIFES "KNIFE"
#define SETTING_EMITSOUND "EMITSOUND"
#define SECURE_NAME_LEN 31 * 2 + 1 // Twice as long as name (31 * 2 + zero terminator) in case all 31 characters are insecure
#define AUTO_TEAM_JOIN_DELAY 0.1
#define TEAM_SELECT_VGUI_MENU_ID 2
#define TIME 15
#define TASK_MENUCLOSE 9001
#define TASK_PLAYERSLIST 9002
#define ROUNDENDTASK 10003
#define cs_get_user_team(%1) get_pdata_int(%1, 114)
#define CS_TEAM_T 1
static const knifemodel[] = "models/v_knife.mdl"
new const snd_denyselect[] = "common/wpn_denyselect.wav";
new const g_szUseSound[] = "buttons/blip1.wav";
new const hns_tag[7] = "HNS"
new alloc_KnifeModel;
new plrTeam[MAX_PLAYERS+1]
new iCurrentSW
new Float:g_flRoundTime
new Float:flSidesTime[2];
new Float:PlayNoPlay[33];
new Float:gCheckpoints[MAX_PLAYERS+1][2][3];
new g_Captime;
new g_pRoundTime;
new g_bShowSpeed[33 char];
new g_CurrentMode
new g_iScore[2]
new g_iSecondHalf
new g_iMaxPlayers
new g_hnsostageEnt, g_iRegisterSpawn
new g_msgScreenFade;
new g_msg_showtimer
new g_msg_roundtime
new CaptainSide;
new Captain1;
new Captain2;
new CaptainWinner;
new current_mode;
new gmsgMoney;
new hookorigin[32][3]
new Sbeam = 0
new SyncHud[2]
new CsTeams:hTeam[MAX_PLAYERS+1];
new cvarTeam[2]
new cvarMaxRounds
new cvarFlashNum
new cvarSmokeNum
new cvarSemiclip
new cvarDefaultMode
new HandleThrowType[33]
new hDeath[MAX_PLAYERS+1];
new Frags[33], Deaths[33], RestartGame
new Float:RestartTime
new HamHook:PlayerSpawn
new msgcvar_method
new Text_Msg, WinningTeam
new Trie: tc
new g_pcvarHealth
new amx_gamename;
new iFwd_MixFinished
new const g_szDefaultEntities[][] = {
"func_hostage_rescue",
"info_hostage_rescue",
"func_bomb_target",
"info_bomb_target",
"hostage_entity",
"info_vip_start",
"func_vip_safetyzone",
"func_escapezone",
"armoury_entity",
"monster_scentist"
}
new const GrenadeClassNames[][] =
{
"weapon_flashbang",
"weapon_hegrenade",
"weapon_smokegrenade"
}
new const Float:VelocityMultiplier[] =
{
1.0,
0.5,
0.7
}
new bool:hns_hooked[32]
new bool:SoundFx;
new bool:Survival
new bool:GameStarted;
new bool:plrSolid[MAX_PLAYERS+1]
new bool:plrRestore[MAX_PLAYERS+1]
new bool:gOnOff[33];
new bool:g_bFreezePeriod
new bool:g_bCheckpointAlternate[MAX_PLAYERS+1];
new bool:ishooked[MAX_PLAYERS+1];
new bool:plr_noplay[MAX_PLAYERS+1];
new bool:g_Spec[MAX_PLAYERS+1];
new bool:g_bSurvived[33];
new g_iMsgId_StatusText;
new g_iMsgId_StatusValue;
new bool:g_bShowPlayerNames[33];
const m_flReleaseThrow = 31;
const m_flTimeWeaponIdle = 48;
const m_rgAmmoFlashBang = 387;
const FLASHBANG_DRAW = 3;
const EXTRAOFFSET_WEAPONS = 4;
const m_pPlayer = 41;
const m_flNextPrimaryAttack = 46;
const m_flNextSecondaryAttack = 47;
const m_pActiveItem = 373;
const m_pPlayer = 41;
const XoCGrenade = 4;
enum // StatusValue flags for first argument
{
SV_FLAG_TEAMMATE = 1,
SV_FLAG_PLAYERID,
SV_FLAG_PLAYERHP
};
enum // StatusValue values for the SV_FLAG_TEAMMATE flag
{
SV_TEAMVALUE_FRIEND = 1,
SV_TEAMVALUE_ENEMY,
SV_TEAMVALUE_HOSTAGE
};
enum
{
e_gTraining = 0,
e_gPaused,
e_gKnife,
e_gCaptain,
e_gMix,
e_gPub
}
enum
{
regular,
slower,
medium
}
enum
{
mode_mr,
mode_timebased
}
public native_get_mode(param)
{
return g_CurrentMode;
}
public plugin_precache()
{
engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_buyzone"));
g_iRegisterSpawn = register_forward(FM_Spawn, "fwdSpawn", 1)
precache_sound( g_szUseSound );
Sbeam = precache_model("sprites/laserbeam.spr");
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
g_pRoundTime = get_cvar_pointer( "mp_roundtime" );
iFwd_MixFinished = CreateMultiForward("MixFinished_Fwd", ET_IGNORE);
amx_gamename = register_cvar( "amx_gamename", "Skill - Boost" );
register_forward( FM_GetGameDescription, "GameDesc" );
g_pcvarHealth = register_cvar("hns_starthp", "100")
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
g_Captime = register_cvar( "hns_wintime", "15");
register_concmd("say /pub", "hns_pub", hns_ACESS)
register_concmd("say /def", "hns_pub_off", hns_ACESS)
register_concmd("say /skill", "hns_skill", hns_ACESS )
register_concmd("say /boost", "hns_boost", hns_ACESS )
register_concmd("say /mr5", "hns_mr5", hns_ACESS )
register_concmd("say /mr7", "hns_mr7", hns_ACESS )
register_concmd("say /mr9", "hns_mr9", hns_ACESS )
register_clcmd( "say /rr", "CmdRestartRound", hns_ACESS )
register_clcmd( "say /swap", "hns_swap_teams", hns_ACESS)
register_clcmd("+hook","hns_hook_on")
register_clcmd("-hook","hns_hook_off")
register_clcmd ( "say /knife", "cmdShowKnife");
register_clcmd ( "say /showknife", "cmdShowKnife");
register_clcmd ( "say /hideknife", "cmdShowKnife");
register_clcmd( "say /pause", "hns_startpause", hns_ACESS );
register_clcmd( "say /live", "hns_unpause", hns_ACESS );
register_clcmd( "chooseteam", "BlockCmd" ); /* block cmd case team completed */
register_clcmd( "jointeam", "BlockCmd" );
register_clcmd( "joinclass", "BlockCmd" );
fnRegisterSayCmd("timer", "timermod", "hns_timer", hns_ACESS, "Timer mode");
fnRegisterSayCmd("normal", "normalmod", "hns_normal", hns_ACESS, "Normal mode");
fnRegisterSayCmd("sp", "specall", "hns_transfer_spec", hns_ACESS, "Spec Transfer")
fnRegisterSayCmd("tt", "ttall", "hns_transfer_tt", hns_ACESS, "TT Transfer")
fnRegisterSayCmd("ct", "ctall", "hns_transfer_ct", hns_ACESS, "CT Transfer")
fnRegisterSayCmd("score", "s", "Score", 0, "Starts Round")
fnRegisterSayCmd("startmix", "start", "cmdStartRound", hns_ACESS, "Starts Round");
fnRegisterSayCmd("kr", "kf", "cmdKnifeRound", hns_ACESS, "Knife Round");
fnRegisterSayCmd("captain", "cap", "CaptainCmd", hns_ACESS, "Captain Mode");
fnRegisterSayCmd("stopcaptain", "stopcap", "StopCaptainCmd", hns_ACESS, "Captain Mode");
fnRegisterSayCmd("stop", "stop", "cmdStop", hns_ACESS, "Stop Current Mode");
fnRegisterSayCmd("live", "unpause", "hns_unpause", hns_ACESS, "UnPause");
fnRegisterSayCmd("checkpoint", "cp", "cmdCheckpoint", 0, "Save checkpoint");
fnRegisterSayCmd("gocheck", "gc", "cmdGoCheck", 0, "Go to checkpoint");
fnRegisterSayCmd("teleport", "tp", "cmdGoCheck", 0, "Go to checkpoint");
fnRegisterSayCmd("pick", "pick", "captain_menu", 0, "Pick player");
fnRegisterSayCmd("np", "noplay", "CmdNoPlay", 0, "No play")
fnRegisterSayCmd("ip", "play", "CmdPlay", 0, "Play play")
fnRegisterSayCmd( "back", "spec", "team_spec", 0, "Spec/Back player");
alloc_KnifeModel = engfunc(EngFunc_AllocString, knifemodel)
cvarTeam[0] = register_cvar("hns_team1", "CT", FCVAR_ARCHIVE|FCVAR_SERVER)
cvarTeam[1] = register_cvar("hns_team2", "TT", FCVAR_ARCHIVE|FCVAR_SERVER)
cvarFlashNum = register_cvar("hns_flash", "2", FCVAR_ARCHIVE|FCVAR_SERVER)
cvarSmokeNum = register_cvar("hns_smoke", "1", FCVAR_ARCHIVE|FCVAR_SERVER)
cvarMaxRounds = register_cvar("hns_rounds", "6", FCVAR_ARCHIVE|FCVAR_SERVER)
cvarSemiclip = register_cvar("hns_semiclip", "0", FCVAR_ARCHIVE|FCVAR_SERVER)
cvarDefaultMode = register_cvar("hns_defaultmode", "0", FCVAR_ARCHIVE|FCVAR_SERVER)
register_event("CurWeapon", "eCurWeapon", "be", "1!0")
register_event("SendAudio","eEndRound","a","2=%!MRAD_terwin","2=%!MRAD_ctwin")
register_event("HLTV", "ePreFT", "a", "1=0", "2=0")
register_event("ResetHUD","EventResetHUD","b")
register_event("TextMsg", "RoundRestart", "a", "2&#Game_w")
register_event("HLTV", "NewRound", "a", "1=0", "2=0")
register_event("DeathMsg", "event_DeathMsg", "a");
register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
PlayerSpawn = RegisterHam(Ham_Spawn, "player", "FwPlayerSpawn", 1)
register_logevent("ePostFT", 2, "0=World triggered", "1=Round_Start")
RegisterHam( Ham_Weapon_RetireWeapon, "weapon_flashbang", "fwd_FlashBangRetireWeapon_Pre", 0 );
RegisterHam( Ham_Spawn, "player", "CBasePlayer_Spawn_Post", true)
RegisterHam( Ham_Item_Deploy, "weapon_knife", "FwdDeployKnife", 1 )
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_knife", "FwdKnifePrim" );
register_forward( FM_EmitSound, "fwd_EmitSound_Pre", 0 );
register_clcmd( "say /name", "ShowPlayerNames" );
register_clcmd( "say /names", "ShowPlayerNames" );
g_iMsgId_StatusText = get_user_msgid( "StatusText" );
g_iMsgId_StatusValue = get_user_msgid( "StatusValue" );
set_msg_block( g_iMsgId_StatusValue, BLOCK_SET );
server_cmd("mp_playerid 2");
unregister_forward(FM_Spawn, g_iRegisterSpawn, 1)
register_forward(FM_PlayerPreThink, "preThink")
register_forward(FM_PlayerPostThink, "postThink")
register_forward(FM_AddToFullPack, "addToFullPack", 1)
msgcvar_method = register_cvar("msg_method", "0") // 0 = Print_Center | 1 = HUD
tc = TrieCreate()
TrieSetCell(tc, "%!MRAD_terwin" , register_cvar("msg_t_win" , "Hiders Own!"))
TrieSetCell(tc, "%!MRAD_ctwin" , register_cvar("msg_ct_win" , "Seekers Win!"))
TrieSetCell(tc, "%!MRAD_rounddraw" , register_cvar("msg_rounddraw" , "No One Owned This Round!"))
register_message(get_user_msgid("SendAudio"), "Messages_Audio")
Text_Msg = get_user_msgid("TextMsg")
g_msg_showtimer = get_user_msgid("ShowTimer")
g_msg_roundtime = get_user_msgid("RoundTime")
g_iMaxPlayers = get_maxplayers()
SyncHud[0] = CreateHudSyncObj()
SyncHud[1] = CreateHudSyncObj()
register_message( get_user_msgid( "ShowMenu" ), "message_show_menu" );
register_message( get_user_msgid( "VGUIMenu" ), "message_vgui_menu" );
g_msgScreenFade = get_user_msgid("ScreenFade");
register_message( g_msgScreenFade, "msg_ScreenFade" );
register_message( get_user_msgid( "TextMsg" ), "msgTextMsg" );
set_msg_block(get_user_msgid("HudTextArgs"),BLOCK_SET);
register_mode();
ePreFT();
PrepareMode(e_gPub);
set_msg_block(gmsgMoney = get_user_msgid("Money"), BLOCK_SET);
set_task(0.1, "ShowSpeedAsMoney", 15671983, .flags="b");
for(new i; i < sizeof GrenadeClassNames; i++)
{
RegisterHam(Ham_Weapon_SecondaryAttack, GrenadeClassNames[i], "CBasePlayerWpn_SecondaryAttack", false)
}
if(!(get_pcvar_num(cvarDefaultMode)))
{
current_mode = mode_timebased
}
else
{
current_mode = mode_mr
}
}
public ClCmd_Speed(id)
{
g_bShowSpeed{id} = !g_bShowSpeed{id};
}
public ShowSpeedAsMoney()
{
if(Survival)
{
static players[32], num, id
get_players(players, num, "a");
for(--num; num>=0; num--)
{
id = players[num];
if( g_bShowSpeed{id} )
{
log_amx("[CRXLOG] gmsgMoney @ 361")
message_begin(MSG_ONE, gmsgMoney, .player=id);
write_long( floatround((get_pcvar_float(g_Captime)*60.0)-flSidesTime[iCurrentSW], floatround_floor) );
write_byte(0);
message_end();
}
}
}
}
public BlockCmd(id)
{
if ( g_CurrentMode != e_gTraining )
{
return(PLUGIN_HANDLED);
}
return(PLUGIN_CONTINUE);
}
public hns_timer(id)
{
if(!(get_user_flags(id) & hns_ACESS))
return PLUGIN_HANDLED;
if(g_CurrentMode == e_gTraining)
{
new sz_name[64]; get_user_name(id, sz_name, 63);
ColorChat(0, RED, "^1[^4%s^1] ^3%s^1 Changed Mode To ^4Timer Mode^1.", hns_tag, sz_name)
current_mode = mode_timebased
set_pcvar_num(cvarDefaultMode, 0);
}
else
{
ColorChat(id, RED, "^1[^4%s^1] ^3Mode ^1Cannot Be Changed ^4During Game^1.", hns_tag);
}
return PLUGIN_CONTINUE;
}
public hns_normal(id)
{
if(!(get_user_flags(id) & hns_ACESS))
return PLUGIN_HANDLED;
if(g_CurrentMode == e_gTraining)
{
new sz_name[64]; get_user_name(id, sz_name, 63);
ColorChat(0, RED, "^1[^4%s^1] ^3%s^1 Changed Mode To ^4Rounds ^1(^3MR^1).", hns_tag, sz_name)
current_mode = mode_mr
set_pcvar_num(cvarDefaultMode, 1);
}
else
{
ColorChat(id, RED, "^1[^4%s^1] ^3Mode ^1Cannot Be Changed ^4During Game^1.", hns_tag);
}
return PLUGIN_CONTINUE;
}
public CmdNoPlay(id)
{
if(get_gametime() > PlayNoPlay[id])
if(!plr_noplay[id])
{
PlayNoPlay[id] = get_gametime()+60.0;
plr_noplay[id] = true;
new sz_name[64]; get_user_name(id, sz_name, 63);
ColorChat(0, RED, "^1[^4%s^1] ^3%s^1 Will ^3Not Play^1. (^3/np^1)", hns_tag, sz_name)
}
}
public CmdPlay(id)
{
if(get_gametime() > PlayNoPlay[id])
if(plr_noplay[id])
{
PlayNoPlay[id] = get_gametime()+60.0;
plr_noplay[id] = false;
new sz_name[64]; get_user_name(id, sz_name, 63);
ColorChat(0, RED, "^1[^4%s^1] ^3%s^1 Will ^4Play^1.", hns_tag, sz_name);
}
}
public msg_ScreenFade( iMsgId, iMsgDest, id )
{
if(is_user_connected(id))
{
if( get_msg_arg_int( 4 ) == 255 && get_msg_arg_int( 5 ) == 255 && get_msg_arg_int( 6 ) == 255)
{
if((cs_get_user_team(id) == CS_TEAM_T) || (cs_get_user_team(id) == CS_TEAM_SPECTATOR))
{
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_CONTINUE;
}
public msgTextMsg( const MsgId, const MsgDest, const MsgEntity )
{
static szMessage[ 9 ];
get_msg_arg_string( 2, szMessage, 8 );
if( szMessage[ 1 ] == 'C' ) // #CTs_Win
{
for( new i = 1; i <= 32; i++ )
{
if( g_Spec[i] )
{
if( hTeam[i] == CS_TEAM_CT ) hTeam[i] = CS_TEAM_T;
else hTeam[i] = CS_TEAM_CT;
}
}
}
}
public fwdSpawn(entid) {
static szClassName[32];
if(pev_valid(entid))
{
pev(entid, pev_classname, szClassName, 31);
if(equal(szClassName, "func_buyzone")) engfunc(EngFunc_RemoveEntity, entid);
for(new i = 0; i < sizeof g_szDefaultEntities; i++)
{
if(equal(szClassName, g_szDefaultEntities[i]))
{
engfunc(EngFunc_RemoveEntity, entid);
break;
}
}
}
}
public register_mode()
{
g_hnsostageEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "hostage_entity"));
set_pev(g_hnsostageEnt, pev_origin, Float:{ 0.0, 0.0, -55000.0 });
set_pev(g_hnsostageEnt, pev_size, Float:{ -1.0, -1.0, -1.0 }, Float:{ 1.0, 1.0, 1.0 });
dllfunc(DLLFunc_Spawn, g_hnsostageEnt);
}
public hns_hud_paused()
{
if(g_CurrentMode == e_gPaused)
{
Task_Hud(0, 1.0, 1, 0, 64, 39, 0.4, "GAME PAUSED");
}
}
public hns_startpause(id, level, cid)
{
if(cmd_access(id, level, cid, 1) && g_CurrentMode == e_gMix && g_CurrentMode != e_gPaused)
{
g_CurrentMode = e_gPaused
if(current_mode != mode_mr)
{
if(GameStarted)
{
flSidesTime[iCurrentSW] -= g_flRoundTime;
new szName[64]
get_user_name(id, szName, 63)
server_cmd("amxx unpause uq_jumpstats_v2.51.amxx")
server_cmd("amxx unpause uq_jumpstats_tops.amxx")
server_cmd("sv_restart 1")
Survival = false;
GameStarted = false;
}
else
{
client_print(id, print_chat, "[%s] Game Not Started Or Already Paused (use /unpause)", hns_tag);
}
}
set_task(0.5, "hns_hud_paused", _, _, _, "b")
server_cmd("sv_restart 1")
}
return PLUGIN_HANDLED
}
public hns_unpause(id, level, cid)
{
if(cmd_access(id, level, cid, 1) && g_CurrentMode == e_gPaused)
{
g_CurrentMode = e_gMix
if(current_mode != mode_mr)
GameStarted = true;
Task_Hud(0, 2.0, 1, 255, 153, 0, 3.0, "GAME UNPAUSED");
server_cmd("amxx pause uq_jumpstats_v2.51.amxx")
server_cmd("amxx pause uq_jumpstats_tops.amxx")
server_cmd("sv_restart 3")
remove_hook(id)
}
return PLUGIN_HANDLED
}
public hns_swap_teams(id,level,cid) {
if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
SwitchTeams()
server_cmd("sv_restart 1")
return PLUGIN_HANDLED
}
public CmdRestartRound(id, level, cid) {
if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
RestartRound();
return PLUGIN_HANDLED
}
public hns_pub(id, level, cid) {
if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id, hns_name, 31)
if(g_CurrentMode != e_gPub)
{
if(g_CurrentMode != e_gMix && g_CurrentMode != e_gKnife)
{
PrepareMode(e_gPub);
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Activated ^4Public^1.", hns_tag, hns_name)
}
} else
ColorChat(id, RED, "^1[^4%s^1] ^3%s ^1Public HNS Mode Is ^4On^1.", hns_tag, hns_name)
remove_hook(id)
return PLUGIN_HANDLED
}
public hns_pub_off(id, level, cid) {
if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id, hns_name, 31)
if(g_CurrentMode == e_gPub)
{
if(g_CurrentMode != e_gMix && g_CurrentMode != e_gKnife)
{
PrepareMode(e_gTraining);
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Activated ^4Training^1.", hns_tag, hns_name)
}
} else
ColorChat(id, RED, "^1[^4%s^1] ^3%s ^1Training Is ^4Running^1.", hns_tag, hns_name)
remove_hook(id)
return PLUGIN_HANDLED
}
public hns_transfer_spec(id)
{
if(!(get_user_flags(id) & hns_ACESS))
return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id, hns_name, 31)
ColorChat( 0, RED,"^1[^4%s^1] ^3%s ^1Transfered All Players To ^4SPEC", hns_tag, hns_name )
safe_transfer( CS_TEAM_SPECTATOR );
return PLUGIN_HANDLED
}
public hns_transfer_tt(id)
{
if(!(get_user_flags(id) & hns_ACESS))
return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id, hns_name, 31)
ColorChat( 0, RED,"^1[^4%s^1] ^3%s ^1Transfered All Players To ^4TT's", hns_tag, hns_name )
new Players[32], Num; get_players(Players, Num, "h")
safe_transfer( CS_TEAM_T );
return PLUGIN_HANDLED
}
public hns_transfer_ct(id)
{
if(!(get_user_flags(id) & hns_ACESS))
return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id, hns_name, 31)
ColorChat( 0, RED,"^1[^4%s^1] ^3%s ^1Transfered All Players To ^4CT's", hns_tag, hns_name )
new Players[32], Num; get_players(Players, Num, "h")
safe_transfer( CS_TEAM_CT );
return PLUGIN_HANDLED
}
public hns_skill(id,level,cid) {
if(!cmd_access(id, level, cid, 1 )) return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id,hns_name, 31)
server_cmd("hns_semiclip 0")
server_cmd("hns_flash 2")
server_cmd("mp_freezetime 6")
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Activated ^4Skill", hns_tag, hns_name)
return PLUGIN_HANDLED
}
public hns_boost(id,level,cid) {
if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id,hns_name, 31)
LoadMapCFG();
server_cmd("hns_semiclip 1")
server_cmd("hns_flash 2")
server_cmd("mp_freezetime 16")
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Activated ^4Boost", hns_tag, hns_name)
return PLUGIN_HANDLED
}
public hns_mr5(id,level,cid) {
if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id,hns_name, 31)
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Activated [^4Win Round ^1-^3 5^1]", hns_tag, hns_name)
set_pcvar_num(cvarMaxRounds, 4);
return PLUGIN_HANDLED;
}
public hns_mr7(id,level,cid) {
if(!cmd_access(id, level, cid, 1 ) ) return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id,hns_name, 31)
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1^1Activated [^4Win Round ^1-^3 7^1]", hns_tag, hns_name)
set_pcvar_num(cvarMaxRounds, 6);
return PLUGIN_HANDLED
}
public hns_mr9(id,level,cid)
{
if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id,hns_name, 31)
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1^1Activated [^4Win Round ^1-^3 9^1]", hns_tag, hns_name)
set_pcvar_num(cvarMaxRounds, 8);
return PLUGIN_HANDLED
}
public change_setting_value ( id, const setting[], const value[] )
{
if ( !strcmp ( setting, SETTING_KNIFES ) )
gOnOff[id] = bool:str_to_num ( value )
}
public cmdShowKnife(id)
{
gOnOff[id] = gOnOff[id] ? false : true
set_setting_bool ( id, SETTING_KNIFES, gOnOff[id] )
ColorChat(id, RED, "^1[^4%s^1] Knife Is Now Set %sVisible", hns_tag, gOnOff[id] ? "^3In" : "^4" );
if( !is_user_alive( id ) )
return PLUGIN_HANDLED;
if( get_user_weapon( id ) == CSW_KNIFE )
{
if( gOnOff[id] )
set_pev( id, pev_viewmodel, 0 );
else
{
new weapon = get_pdata_cbase( id, m_pActiveItem, 5 );
if( weapon != -1 )
ExecuteHamB( Ham_Item_Deploy, weapon );
}
}
return PLUGIN_CONTINUE;
}
public ShowTimers(id)
{
if(GameStarted)
{
new TimeToWin[2][24]
new szTeam[2][64]
fnConvertTime( (get_pcvar_float(g_Captime)*60.0)-flSidesTime[iCurrentSW], TimeToWin[0], 23 );
get_pcvar_string(cvarTeam[iCurrentSW], szTeam[0], 63)
fnConvertTime( (get_pcvar_float(g_Captime)*60.0)-flSidesTime[!iCurrentSW], TimeToWin[1], 23 );
get_pcvar_string(cvarTeam[!iCurrentSW], szTeam[1], 63)
if(!iCurrentSW)
ColorChat(0, RED, "^1[^4%s^1] ^3TT ^1[^4%s^1] ^3vs ^1[^4%s^1] ^3CT ",hns_tag, TimeToWin[iCurrentSW], TimeToWin[!iCurrentSW])
else
ColorChat(0, RED, "^1[^4%s^1] ^3TT ^1[^4%s^1] ^3vs ^1[^4%s^1] ^3CT ",hns_tag, TimeToWin[!iCurrentSW], TimeToWin[iCurrentSW])
}
else
{
ColorChat(id, RED, "^1[^4%s^1] ^3Game ^1Is Not Started ^4Atm.", hns_tag)
}
}
public client_putinserver(id)
{
gOnOff[id] = get_setting_bool ( id, SETTING_KNIFES, false )
return PLUGIN_HANDLED;
}
public hns_hook_on(id)
{
if ( g_CurrentMode > e_gPaused )
return PLUGIN_HANDLED
if( !is_user_alive(id) )
return PLUGIN_HANDLED
get_user_origin(id,hookorigin[id],3)
hns_hooked[id] = true
set_task(0.1,"hns_hook_task",id+9999,"",0,"ab")
hns_hook_task(id+9999)
return PLUGIN_HANDLED
}
public is_hooked(id)
{
return hns_hooked[id]
}
public hns_hook_off(id)
{
remove_hook(id)
return PLUGIN_HANDLED
}
public hns_hook_task(id)
{
id -= 9999;
if(!is_user_connected(id) || !is_user_alive(id) || g_CurrentMode > e_gPaused)
remove_hook(id)
remove_beam(id)
draw_hook(id)
new origin[3], Float:velocity[3]
get_user_origin(id,origin)
new distance = get_distance(hookorigin[id],origin)
if(distance > 60)
{
velocity[0] = (hookorigin[id][0] - origin[0]) * (2.0 * 300 / distance)
velocity[1] = (hookorigin[id][1] - origin[1]) * (2.0 * 300 / distance)
velocity[2] = (hookorigin[id][2] - origin[2]) * (2.0 * 300 / distance)
entity_set_vector(id,EV_VEC_velocity,velocity)
}
else
{
entity_set_vector(id,EV_VEC_velocity,Float:{0.0,0.0,0.0})
entity_set_float(id, EV_FL_gravity, 0.00000001);
}
entity_set_int(id, EV_INT_sequence, 55);
entity_set_float(id,EV_FL_frame, 0.0);
}
public draw_hook(id)
{
log_amx("[CRXLOG] MSG_BROADCAST @ 832")
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(1) // TE_BEAMENTPOINT
write_short(id) // entid
write_coord(hookorigin[id][0]) // origin
write_coord(hookorigin[id][1]) // origin
write_coord(hookorigin[id][2]) // origin
write_short(Sbeam) // sprite index
write_byte(0) // start frame
write_byte(0) // framerate
write_byte(100) // life
write_byte(10) // width
write_byte(0) // noise
write_byte(0) // r
write_byte(64) // g
write_byte(39) // b
write_byte(250) // brightness
write_byte(0) // speed
message_end()
}
public remove_hook(id)
{
if(task_exists(id+9999))
remove_task(id+9999)
remove_beam(id)
entity_set_float(id, EV_FL_gravity, 1.0);
ishooked[id] = false
}
public remove_beam(id)
{
log_amx("[CRXLOG] MSG_BROADCAST @ 865")
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(99) // TE_KILLBEAM
write_short(id)
message_end()
}
public cmdCheckpoint(plr)
{
if( g_CurrentMode > e_gPaused )
{
client_print(plr, print_chat, "Checkpoints Are Disabled.");
return PLUGIN_HANDLED;
}
else if( !is_user_alive(plr) )
{
client_print(plr, print_chat, "You Can't Do That While Dead.");
return PLUGIN_HANDLED;
}
pev(plr, pev_origin, gCheckpoints[plr][g_bCheckpointAlternate[plr] ? 1 : 0]);
g_bCheckpointAlternate[plr] = !g_bCheckpointAlternate[plr];
return PLUGIN_HANDLED;
}
public cmdGoCheck(plr)
{
if( g_CurrentMode > e_gPaused )
{
client_print(plr, print_chat, "Checkpoints Are Disabled.");
return PLUGIN_HANDLED;
}
else if( !is_user_alive(plr) )
{
client_print(plr, print_chat, "You Can't Do That While Dead.");
return PLUGIN_HANDLED;
}
else if( !gCheckpoints[plr][0][0] )
{
client_print(plr, print_chat, "You Don't Have Any Checkpoints.");
return PLUGIN_HANDLED;
}
set_pev(plr, pev_velocity, Float:{0.0, 0.0, 0.0});
set_pev(plr, pev_flags, pev(plr, pev_flags) | FL_DUCKING)
engfunc(EngFunc_SetOrigin, plr, gCheckpoints[plr][!g_bCheckpointAlternate[plr]]);
return PLUGIN_HANDLED;
}
public cmdStartRound(id)
{
if(get_user_flags(id) & hns_ACESS)
{
if(g_CurrentMode > e_gKnife)
{
ColorChat(id, RED, "^1[^4%s^1] Write ^4/stop^1 Before Start The Mix.", hns_tag);
}
else
{
if(current_mode == mode_mr)
pf_Scrim(id)
else
StartSMCmd(id);
}
}
}
public StartSMCmd(id) {
if(!GameStarted)
{
set_dhudmessage(229, 228, 226, -1.0, 0.60, 2, 0.0, 5.0, 0.01, 0.01)
show_dhudmessage(0, "GAME START IN 5 SECONDS")
set_task(5.0, "StartSM");
}
else
{
client_print(id, print_chat, "[%s] Timer Mode Is Already Started, To Stop It Say /stop", hns_tag);
}
return PLUGIN_HANDLED
}
public StopSMCmd(id) {
if(GameStarted)
{
GameStarted = false
Survival = false;
new szName[64]
get_user_name(id, szName, 63)
}
return PLUGIN_HANDLED
}
public StartSM()
{
PrepareMode(e_gMix);
flSidesTime[0] = 0.0
flSidesTime[1] = 0.0
iCurrentSW = 1;
GameStarted = true;
Task_Hud(0, 2.0, 1, 255, 153, 0, 3.0, "LIVE LIVE LIVE");
}
public cmdStop(id)
{
if(get_user_flags(id) & hns_ACESS)
{
switch(g_CurrentMode)
{
case e_gPaused:
{
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Stopped ^4Match^1!", hns_tag, GetName(id))
}
case e_gKnife:
{
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Stopped ^4Knife Round^1!", hns_tag, GetName(id))
}
case e_gMix:
{
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Stopped ^4Match^1!", hns_tag, GetName(id))
}
case e_gPub:
{
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Stopped ^4Public^1!", hns_tag, GetName(id))
}
}
server_cmd("amxx unpause uq_jumpstats_v2.51.amxx")
server_cmd("amxx unpause uq_jumpstats_tops.amxx")
StopSMCmd(id);
if(g_CurrentMode)
{
PrepareMode(e_gTraining);
}
}
}
public cmdKnifeRound(id)
{
if(get_user_flags(id) & hns_ACESS)
{
if(g_CurrentMode > e_gKnife)
{
ColorChat(id, RED, "^1[^4%s^1] Write ^4/stop^1 Before Start The Mix.", hns_tag);
}
else
{
pf_KnifeRound(id)
remove_hook(id)
}
}
}
public pf_Scrim(id)
{
set_task(4.5, "PrepareMode", e_gMix);
set_task(5.0, "RestartRound");
Task_Hud(0, 0.0, 1, 65, 105, 225, 3.0, "Normal Mode In 5 Seconds")
Task_Hud(0, 7.0, 1, 255, 153, 0, 5.0, "Live Live Live^nGood Luck & Have Fun")
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Started The ^4Game^1!", hns_tag, GetName(id));
}
public pf_KnifeRound(id)
{
new szMapName[64]
get_mapname(szMapName, 63);
PrepareMode(e_gKnife);
Task_Hud(0, 2.0, 1, 65, 105, 225, 3.0, "Knife Round Started!");
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Started ^4Knife Round^1!", hns_tag, GetName(id));
return PLUGIN_HANDLED
}
public Score(id)
{
if(current_mode == mode_timebased)
{
ShowTimers(id)
return PLUGIN_CONTINUE
}
new teamname[2][32]
teamname[0] = "FCT";
teamname[1] = "FTT";
if(!g_iSecondHalf)
ColorChat(id, BLUE,"^1[^4%s^1] Score: ^4%s ^3%d^1:^3%d ^4%s ^1(^3MR%d^1)", hns_tag, teamname[0], g_iScore[0], g_iScore[1], teamname[1], get_pcvar_num(cvarMaxRounds))
else
ColorChat(id, BLUE,"^1[^4%s^1] Score: ^4%s ^3%d^1:^3%d ^4%s ^1(^3MR%d^1)", hns_tag, teamname[0], g_iScore[0], g_iScore[1], teamname[1], get_pcvar_num(cvarMaxRounds))
return PLUGIN_CONTINUE
}
public eCurWeapon(id)
{
if(g_CurrentMode == e_gKnife)
{
engclient_cmd(id, "weapon_knife")
}
if(!g_bFreezePeriod)
return
if (cs_get_user_team(id) == CS_TEAM_T)
cs_reset_user_maxspeed(id)
}
public cs_reset_user_maxspeed(id) {
engfunc(EngFunc_SetClientMaxspeed, id, 250.0);
set_pev(id, pev_maxspeed, 250.0)
return PLUGIN_HANDLED
}
public ePreFT() {
if(task_exists(ROUNDENDTASK))
remove_task(ROUNDENDTASK);
if(task_exists(TASK_ROUNDTIME))
remove_task(TASK_ROUNDTIME);
if(GameStarted)
{
ShowTimers(0);
}
g_flRoundTime = 0.0;
g_bFreezePeriod = true;
set_task(0.1, "TaskDestroyBreakables");
}
public ePostFT() {
g_bFreezePeriod = false;
if(current_mode == mode_timebased)
{
if(GameStarted)
Survival = true
set_task(0.25, "RoundEnd", TASK_ROUNDTIME,. flags = "b");
}
}
public RoundEnd()
{
g_flRoundTime+= 0.25;
if(Survival)
{
flSidesTime[iCurrentSW]+=0.25;
if(flSidesTime[iCurrentSW] >= get_pcvar_float(g_Captime)*60.0)
{
SoundFx = false;
GameStarted = false;
Survival = false;
new szTeam[64]
new Float:TimeDiff
get_pcvar_string(cvarTeam[iCurrentSW], szTeam, 63)
if(iCurrentSW)
TimeDiff = flSidesTime[iCurrentSW]-flSidesTime[0]
else
TimeDiff = flSidesTime[iCurrentSW]-flSidesTime[1]
new sTime[24];
fnConvertTime( TimeDiff, sTime, 23 );
PrepareMode(e_gTraining);
ColorChat(0,RED,"^1[^4%s^1] ^3%s^1 Won The Game! (^4%s^1 Difference)",hns_tag, szTeam, sTime)
MixFinished(1);
server_cmd("sv_restart 1")
}
else if(flSidesTime[iCurrentSW] >= get_pcvar_float(g_Captime)*60.0-1.5 && !SoundFx)
{
EndSoundFx(1);
SoundFx = true;
}
}
if((g_flRoundTime/60.0) >= get_pcvar_float( g_pRoundTime ))
{
if(GameStarted)
Survival = false;
//RoundTerminating(0.5)
remove_task(TASK_ROUNDTIME)
}
}
public EndSoundFx( toggle )
{
if(toggle)
client_cmd ( 0 , "spk ambience/endgame.wav" )
else
for( new i = 1; i <= g_iMaxPlayers; i++ )
{
if(is_user_connected(i))
client_cmd(i, "stopsound");
}
}
public TerroristWin()
{
new winner = 2;
if(g_CurrentMode == e_gMix)
{
if(!g_iSecondHalf)
{
if(winner == 1)
{
g_iScore[0]++
}
if(winner == 2)
{
g_iScore[1]++
}
}
else
{
if(winner == 1)
{
g_iScore[1]++
}
if(winner == 2)
{
g_iScore[0]++
}
}
CheckScore();
}
server_cmd("sv_restart 1");
}
public eEndRound()
{
if(task_exists(ROUNDENDTASK))
remove_task(ROUNDENDTASK);
new msg[32], winner;
read_data(2,msg,32)
if(containi(msg,"ct") != -1)
{
winner = 1
}
else if(contain(msg,"ter") != -1)
{
winner = 2;
}
if(g_CurrentMode == e_gPub || (g_CurrentMode == e_gMix && current_mode == mode_timebased))
{
Survival = false;
if(winner == 1)
{
iCurrentSW = !iCurrentSW;
SwitchTeams();
}
}
else if(g_CurrentMode == e_gMix && current_mode == mode_mr)
{
if(!g_iSecondHalf)
{
if(winner == 1)
{
g_iScore[0]++
}
if(winner == 2)
{
g_iScore[1]++
}
}
else
{
if(winner == 1)
{
g_iScore[1]++
}
if(winner == 2)
{
g_iScore[0]++
}
}
CheckScore();
}
else if(g_CurrentMode == e_gKnife)
{
if(winner == 1)
{
Task_Hud(0, 2.0, 1, 65, 105, 225, 3.0, "KNIFE ROUND WIN SEEKERS");
}
if(winner == 2)
{
Task_Hud(0, 2.0, 1, 65, 105, 225, 3.0, "KNIFE ROUND WIN HIDERS");
}
if(CaptainWinner == 3)
{
if(winner == 1)
CaptainSide = Captain1;
else
CaptainSide = Captain2;
set_task(1.5, "captain_menu", CaptainSide);
set_task(0.2, "PlayersList", TASK_PLAYERSLIST, _, _, "b");
CaptainWinner = 0;
PrepareMode(e_gCaptain);
}
else
PrepareMode(e_gTraining);
SavePlayers();
}
}
public respawn_player( id )
{
if ( is_user_connected( id ) )
{
/* Make the engine think he is spawning */
set_pev( id, pev_deadflag, DEAD_RESPAWNABLE );
set_pev( id, pev_iuser1, 0 );
dllfunc( DLLFunc_Think, id );
/* Move his body so if corpse is created it is not in map */
engfunc( EngFunc_SetOrigin, id, Float:{ -4800.0, -4800.0, -4800.0 } );
/* Actual Spawn */
set_task(0.1, "spawnagain", id);
}
}
public spawnagain( id )
{
/* Make sure he didn't disconnect in the 0.5 seconds that have passed. */
if ( is_user_connected( id ) )
{
new bool:SortTeams = false;
/* Spawn player */
if(g_CurrentMode != e_gPub)
{
spawn( id );
dllfunc( DLLFunc_Spawn, id );
}
if((file_exists("addons/amxmodx/data/playerslist.ini")))
{
new szMap[64]
get_mapname(szMap, 63);
if(containi(szMap, "arena") != -1)
{
SortTeams = false;
}
else
{
SortTeams = true;
if(task_exists(92271))
remove_task(92271)
set_task(5.0, "remove_file", 92271);
}
}
if(( g_CurrentMode != e_gTraining && g_CurrentMode != e_gPub ) || SortTeams)
{
if(!CheckPlayer(id))
{
user_silentkill( id );
cs_set_user_team( id, CS_TEAM_SPECTATOR );
}
else
{
spawn( id );
dllfunc( DLLFunc_Spawn, id );
}
}
/*
* After 1.0 the player will be spawned fully and you can mess with the ent (give weapons etc)
* set_task(1.0,"player_fully_spawned",id)
*/
}
}
enum _:SaveData
{
save_team,
SteamID[32]
}
public CheckScore()
{
new Rounds = get_pcvar_num(cvarMaxRounds)
Score(0);
if(!g_iSecondHalf)
{
if(g_iScore[0]+g_iScore[1] == Rounds)
{
g_iSecondHalf = true;
SwitchTeams();
Task_Hud(0, 2.0, 1, 65, 105, 225, 6.0, "1ST HALF %d:%d^nSWITCHING SIDES...^n2ND HALF IN 5 SECONDS", g_iScore[0], g_iScore[1])
Task_Hud(0, 9.0, 1, 255, 153, 0, 4.0, "LIVE LIVE LIVE");
set_task(7.0, "RestartRound");
}
}
else
{
new teamname[32]
if(g_iScore[0] > Rounds)
{
MixFinished(1)
get_pcvar_string(cvarTeam[0], teamname, 31)
Task_Hud(0, 2.0, 1, 65, 105, 225, 3.0, "GAME FINISHED^nWINNER: %s",teamname[0]);
PrepareMode(e_gTraining);
}
else if(g_iScore[1] > Rounds)
{
MixFinished(2)
get_pcvar_string(cvarTeam[1], teamname, 31)
Task_Hud(0, 2.0, 1, 65, 105, 225, 3.0, "GAME FINISHED^nWINNER: %s",teamname[1]);
PrepareMode(e_gTraining);
}
else if((g_iScore[0]+g_iScore[1]) == (Rounds*2))
{
Task_Hud(0, 2.0, 1, 65, 105, 225, 3.0, "GAME FINISHED^nDRAW DRAW DRAW");
MixFinished(0)
PrepareMode(e_gTraining);
}
}
}
public SwitchTeams()
{
for( new i = 1; i <= g_iMaxPlayers; i++ ) {
if( is_user_connected( i ) )
{
switch( cs_get_user_team( i ) )
{
case CS_TEAM_T: cs_set_user_team( i, CS_TEAM_CT )
case CS_TEAM_CT: cs_set_user_team( i, CS_TEAM_T )
}
}
}
}
public CBasePlayer_Spawn_Post(id) {
if (!is_user_alive(id))
return;
//set_pdata_bool(id, m_bJustConnected, false);
if(g_CurrentMode <= e_gPaused)
set_user_godmode(id, 1)
SetRole(id)
}
public EventResetHUD(id)
{
if(is_user_alive(id))
{
set_user_footsteps(id, cs_get_user_team(id) == CS_TEAM_T ? 1 : 0)
}
}
public SetRole(id) {
new CsTeams:team = cs_get_user_team(id)
strip_user_weapons(id)
set_user_freeze(id, 0);
if(g_CurrentMode > e_gKnife )
{
switch (team)
{
case CS_TEAM_T:
{
cs_reset_user_maxspeed(id);
give_item(id, "weapon_knife")
if( get_pcvar_num( cvarFlashNum ) >= 1 )
{
give_item( id, "weapon_flashbang" );
cs_set_user_bpammo( id, CSW_FLASHBANG, get_pcvar_num( cvarFlashNum ) );
}
if( get_pcvar_num( cvarSmokeNum ) >= 1 )
{
give_item( id, "weapon_smokegrenade" );
cs_set_user_bpammo( id, CSW_SMOKEGRENADE, get_pcvar_num( cvarSmokeNum ) );
}
}
case CS_TEAM_CT:
{
give_item(id, "weapon_knife")
}
}
}
else
{
give_item(id, "weapon_knife")
}
}
public GetName(id)
{
new szName[128]
get_user_name(id, szName, charsmax(szName))
return szName
}
public PrepareMode(mode)
{
switch(mode)
{
case e_gTraining:
{
server_cmd("amxx unpause uq_jumpstats_v2.51.amxx")
server_cmd("amxx unpause uq_jumpstats_tops.amxx")
server_cmd("sv_alltalk 1")
server_cmd("mp_roundtime 9")
server_cmd("mp_timelimit 60")
server_cmd("mp_freezetime 0")
server_cmd("mp_autoteambalance 0")
server_cmd("kill_message 0")
server_cmd("hns_flash 0")
g_CurrentMode = e_gTraining;
}
case e_gKnife:
{
server_cmd("amxx pause uq_jumpstats_v2.51.amxx")
server_cmd("amxx pause uq_jumpstats_tops.amxx")
server_cmd("sv_alltalk 1")
server_cmd("mp_freezetime 0")
server_cmd("hns_semiclip 1")
server_cmd("kill_message 0")
server_cmd("hns_flash 0")
g_CurrentMode = e_gKnife;
}
case e_gMix:
{
LoadMapCFG();
g_iScore[0] = 0;
g_iScore[1] = 0;
g_iSecondHalf = false;
server_cmd("amxx pause uq_jumpstats_v2.51.amxx")
server_cmd("amxx pause uq_jumpstats_tops.amxx")
server_cmd("sv_alltalk 1")
server_cmd("mp_timelimit 0")
server_cmd("mp_roundtime 2.50")
server_cmd("mp_freezetime 3")
server_cmd("mp_autoteambalance 2")
server_cmd("mp_forcechasecam 0")
server_cmd("mp_forcecamera 0")
server_cmd("mp_footsteps 1")
server_cmd("kill_message 0")
server_cmd("hns_flash 2")
server_cmd("hns_smoke 1")
g_CurrentMode = e_gMix;
}
case e_gPub:
{
server_cmd("amxx unpause uq_jumpstats_v2.51.amxx")
server_cmd("amxx unpause uq_jumpstats_tops.amxx")
server_cmd("sv_alltalk 1")
server_cmd("mp_autoteambalance 2")
server_cmd("mp_forcechasecam 0")
server_cmd("mp_forcecamera 0")
server_cmd("mp_footsteps 1")
server_cmd("mp_freezetime 3")
server_cmd("mp_roundtime 2.50")
server_cmd("mp_timelimit 20")
server_cmd("kill_message 1")
server_cmd("hns_flash 2")
server_cmd("hns_smoke 1")
g_CurrentMode = e_gPub;
}
case e_gCaptain:
{
server_cmd("amxx pause uq_jumpstats_v2.51.amxx")
server_cmd("amxx pause uq_jumpstats_tops.amxx")
server_cmd("sv_alltalk 1")
server_cmd("hns_flash 0")
server_cmd("kill_message 0")
g_CurrentMode = e_gCaptain;
}
}
RestartRound();
}
public RestartRound()
{
Survival = false;
flSidesTime[iCurrentSW] -= g_flRoundTime;
server_cmd("sv_restart 1");
}
public FwdKnifePrim( const iPlayer )
{
if( g_CurrentMode )
{
ExecuteHamB( Ham_Weapon_SecondaryAttack, iPlayer );
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public FwdDeployKnife( const iEntity )
{
new iClient = get_pdata_cbase( iEntity, m_pPlayer, EXTRAOFFSET_WEAPONS );
if(gOnOff[iClient] )
{
set_pev(iClient, pev_viewmodel, 0)
}
else
{
set_pev(iClient, pev_viewmodel, alloc_KnifeModel)
}
if(get_user_team(iClient) == 1 && g_CurrentMode != e_gKnife)
{
set_pdata_float( iEntity, m_flNextPrimaryAttack, 9999.0, EXTRAOFFSET_WEAPONS );
set_pdata_float( iEntity, m_flNextSecondaryAttack, 9999.0, EXTRAOFFSET_WEAPONS );
}
return HAM_IGNORED;
}
public Task_Hud(id, Float:Time ,hud, Red, Green, Blue, Float:HoldTime, const Text[], any: ... )
{
new message[128]; vformat( message, charsmax( message ), Text, 9 );
new Args[7];
Args[0] = id;
Args[1] = EncodeText(message);
Args[2] = Red
Args[3] = Green
Args[4] = Blue
Args[5] = hud
Args[6] = _:HoldTime
if(Time > 0.0)
set_task(Time, "Hud_Message", 89000, Args, 7)
else
Hud_Message(Args)
}
public Hud_Message(Params[])
{
new id, Text[128], RRR, GGG, BBB, hud, Float:HoldTime
id = Params[0]
DecodeText(Params[1], Text, charsmax(Text))
RRR = Params[2]
GGG = Params[3]
BBB = Params[4]
hud = Params[5]
HoldTime = Float:Params[6]
if(!id || is_user_connected(id))
{
if(hud)
{
set_dhudmessage(229, 228, 226, -1.0, 0.60, 0, 0.0, HoldTime, 0.1, 0.1)
show_dhudmessage(id, Text)
}
else
{
set_dhudmessage(229, 228, 226, -1.0, 0.60, 0, 0.0, HoldTime, 0.1, 0.1, -1);
show_dhudmessage(id, Text)
}
}
}
public addToFullPack(es, e, ent, host, hostflags, player, pSet)
{
if(player)
{
if(g_bFreezePeriod)
{
if(get_user_team(host) == 2 && get_user_team(ent) == 1)
{
set_es( es, ES_Origin, { 999999999.0, 999999999.0, 999999999.0 } );
set_es( es, ES_RenderMode, kRenderTransAlpha );
set_es( es, ES_RenderAmt, 0 );
return FMRES_SUPERCEDE;
}
}
}
if(get_pcvar_num(cvarSemiclip))
return FMRES_IGNORED;
if(player && is_user_connected(host) && is_user_connected(ent))
{
static Float:flDistance
flDistance = entity_range(host, ent)
if(plrSolid[host] && plrSolid[ent] && plrTeam[host] == plrTeam[ent] && get_user_team(host) != 3 && flDistance < 512.0)
{
set_es(es, ES_Solid, SOLID_NOT)
set_es(es, ES_RenderMode, kRenderTransAlpha)
set_es(es, ES_RenderAmt, floatround(flDistance)/1)
}
}
return FMRES_IGNORED;
}
FirstThink()
{
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(!is_user_alive(i))
{
plrSolid[i] = false
continue
}
plrTeam[i] = get_user_team(i)
plrSolid[i] = pev(i, pev_solid) == SOLID_SLIDEBOX ? true : false
}
}
public preThink(id)
{
if(get_pcvar_num(cvarSemiclip))
return FMRES_IGNORED;
static i, LastThink
if(LastThink > id)
{
FirstThink()
}
LastThink = id
if(!plrSolid[id]) return FMRES_IGNORED
for(i = 1; i <= g_iMaxPlayers; i++)
{
if(!plrSolid[i] || id == i) continue
if(plrTeam[i] == plrTeam[id])
{
set_pev(i, pev_solid, SOLID_NOT)
plrRestore[i] = true
}
}
return FMRES_IGNORED;
}
public postThink(id)
{
if(get_pcvar_num(cvarSemiclip))
return FMRES_IGNORED;
static i
for(i = 1; i <= g_iMaxPlayers; i++)
{
if(plrRestore[i])
{
set_pev(i, pev_solid, SOLID_SLIDEBOX)
plrRestore[i] = false
}
}
return FMRES_IGNORED;
}
public CaptainCmd(id,level,cid) {
if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
if(g_CurrentMode != e_gTraining)
return PLUGIN_HANDLED
g_CurrentMode = e_gCaptain;
new hns_name[32]
get_user_name(id, hns_name, charsmax(hns_name))
new iPlayers[32], iNum;
get_players(iPlayers, iNum);
Captain1 = Captain2 = 0;
for(new i; i < iNum; i++)
{
user_silentkill(iPlayers[i]);
cs_set_user_team(iPlayers[i], 3);
}
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Choosing ^4Captains^1...", hns_tag, hns_name);
CaptainMenu(id);
return PLUGIN_HANDLED;
}
public StopCaptainCmd(id,level,cid) {
if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED
if(g_CurrentMode == e_gMix || g_CurrentMode == e_gPaused)
return PLUGIN_HANDLED
new hns_name[32]
get_user_name(id, hns_name, charsmax(hns_name))
CaptainWinner = CaptainSide = 0;
Captain1 = Captain2 = 0;
if(task_exists(TASK_MENUCLOSE))
remove_task(TASK_MENUCLOSE)
if(task_exists(TASK_PLAYERSLIST))
remove_task(TASK_PLAYERSLIST)
PrepareMode(e_gTraining);
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Stopped ^4Captain Mode^1...", hns_tag, hns_name);
SavePlayers();
return PLUGIN_HANDLED;
}
public CaptainMenu( id )
{
new menu = menu_create( "\rPick Captains:", "menu_handler" );
new players[32], pnum, tempid;
new szName[32], szUserId[32];
new callback = menu_makecallback("playermenu_callback");
get_players(players, pnum);
new items = 1;
for ( new i; i<pnum; i++ )
{
tempid = players[i];
if(tempid == Captain1)
continue;
get_user_name( tempid, szName, charsmax( szName ) );
formatex( szUserId, charsmax( szUserId ), "%d", get_user_userid( tempid ) );
if(items && items%7 == 0)
{
items++
menu_additem( menu, "Refresh", "*", 0 );
}
if(plr_noplay[tempid] || tempid == Captain1)
{
if(plr_noplay[tempid])
add(szName, charsmax(szName), " [noplay]");
menu_additem( menu, szName, szUserId, 0, callback );
}
else menu_additem( menu, szName, szUserId, 0);
items++
}
items = menu_items(menu)+1;
if(items%7 != 0)
{
while(items%7 != 0)
{
items++;
//menu_addblank(menu);
//menu_addblank2(menu);
}
}
menu_additem( menu, "Refresh", "*", 0 );
menu_display( id, menu, 0 );
}
public playermenu_callback( id, menu, item )
{
return ITEM_DISABLED;
}
public menu_handler( id, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new szData[6], szName[64];
new _access, item_callback;
menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
if(szData[0] == '*')
{
CaptainMenu(id);
return PLUGIN_HANDLED;
}
new userid = str_to_num( szData );
new player = find_player( "k", userid );
if ( player )
{
new szName[64];
get_user_name( player, szName, charsmax( szName ) );
if(!Captain1)
{
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Chosed As ^4First Captain.", hns_tag, szName);
Captain1 = player;
CaptainMenu(id);
}
else
{
ColorChat(0, RED, "^1[^4%s^1] ^3%s ^1Chosed As ^4Second Captain^1.", hns_tag, szName);
Captain2 = player;
cs_set_user_team(Captain1, CS_TEAM_CT);
cs_set_user_team(Captain2, CS_TEAM_T);
CaptainWinner = 3;
set_task(1.5, "pf_KnifeRound", id);
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public captain_menu(id)
{
if(id != Captain1 && id != Captain2)
return PLUGIN_HANDLED;
if(id != CaptainSide)
return PLUGIN_HANDLED
new menu = menu_create("Pick:", "captainmenu_handler")
new callback = menu_makecallback("playermenu_callback");
//set_task(11.5, "menu_task", id + TASK_MENUCLOSE);
// Lets try? OK
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
if(pnum == 0)
{
remove_task(id+TASK_MENUCLOSE)
if(task_exists(TASK_PLAYERSLIST))
remove_task(TASK_PLAYERSLIST);
return PLUGIN_HANDLED;
}
new totalnum = 0;
new items = 1;
for(new i; i<pnum; i++)
{
tempid = players[i];
if(cs_get_user_team(tempid) != CS_TEAM_SPECTATOR)
{
totalnum++;
continue;
}
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
if(items && items%7 == 0)
{
items++
menu_additem( menu, "Refresh", "*", 0 );
}
items++
if(plr_noplay[tempid])
{
add(szName, charsmax(szName), " [noplay]");
menu_additem( menu, szName, szTempid, 0, callback );
}
else
menu_additem( menu, szName, szTempid, 0 );
}
items = menu_items(menu)+1;
if(items%7 != 0)
{
while(items%7 != 0)
{
items++;
}
}
menu_additem( menu, "Refresh", "*", 0 );
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public captainmenu_handler(id,menu,item)
{
if(id != Captain1 && id != Captain2)
return PLUGIN_HANDLED
if(id != CaptainSide)
return PLUGIN_HANDLED
if(item == MENU_EXIT)
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
if(data[0] == '*')
{
captain_menu(id)
return PLUGIN_HANDLED
}
new tempid = str_to_num(data)
new name[35], namec[35];
get_user_name(tempid, name, charsmax(name));
get_user_name(id, namec, charsmax(namec));
cs_set_user_team(tempid, cs_get_user_team(id));
ColorChat(0, RED, "^1[^4%s^1] ^3%s^1 Pick -> ^4%s^1.", hns_tag, namec, name);
set_cvar_num("sv_restart",1)
remove_task(id+TASK_MENUCLOSE)
new iPlayers[32],pnum
get_players(iPlayers,pnum,"h")
new bool:has_spec
new totalplayers;
for(new i; i < pnum; i++)
{
if(cs_get_user_team(iPlayers[i]) == CS_TEAM_SPECTATOR)
{
has_spec = true
}
else
{
totalplayers++;
}
}
if(!has_spec || totalplayers == 10)
{
if(task_exists(TASK_PLAYERSLIST))
remove_task(TASK_PLAYERSLIST);
CaptainWinner = CaptainSide = 0;
Captain1 = Captain2 = 0;
PrepareMode(e_gTraining);
return PLUGIN_HANDLED;
}
if(is_user_connected(Captain1) && is_user_connected(Captain2))
{
if(id == Captain1)
CaptainSide = Captain2
else
CaptainSide = Captain1
set_task(1.5,"captain_menu", CaptainSide)
}
else
{
set_task(5.0,"CheckCaptainJoin",id == Captain1 ? Captain1 : Captain2)
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public menu_task(id)
{
id -= TASK_MENUCLOSE
new players[32], pnum;
get_players(players, pnum, "h");
new randomnum = random(pnum)
new bool:has_spec
new totalplayers;
for(new i; i < pnum; i++)
{
if(cs_get_user_team(players[i]) == CS_TEAM_SPECTATOR)
{
has_spec = true
}
else
{
totalplayers++;
}
}
if(!has_spec || totalplayers == 10)
{
if(task_exists(TASK_PLAYERSLIST))
remove_task(TASK_PLAYERSLIST);
PrepareMode(e_gTraining);
return;
}
while(cs_get_user_team(players[randomnum]) != CS_TEAM_SPECTATOR)
{
randomnum = random(pnum)
}
if(is_user_connected(id))
{
set_cvar_num("sv_restart",1)
cs_set_user_team(players[randomnum],cs_get_user_team(id))
set_task(1.5, "captain_menu", id == Captain1 ? Captain2 : Captain1);
}
else
{
set_task(5.0, "CheckCaptainJoin", id == Captain1 ? Captain2 : Captain1);
client_print(0, print_chat, "%s Awaiting The Arrival Of A New Captain.", hns_tag);
}
//show_menu(id, 0, "^n", 1);
}
public LoadMapCFG()
{
new szMap[64]
get_mapname(szMap, 63);
new szPath[128]
get_configsdir(szPath, 127);
format(szPath, 127, "%s/hns", szPath);
if(!dir_exists(szPath))
mkdir(szPath);
format(szPath, 127, "%s/mapcfg", szPath);
if(!dir_exists(szPath))
mkdir(szPath);
format(szPath, 127, "%s/%s.cfg", szPath, szMap);
if(file_exists(szPath))
{
server_cmd("exec %s", szPath);
}
}
public TaskDestroyBreakables( )
{
new iEntity = -1;
while ((iEntity = find_ent_by_class(iEntity, "func_breakable" )))
{
if(entity_get_float(iEntity , EV_FL_takedamage))
{
entity_set_vector(iEntity, EV_VEC_origin, Float:{10000.0, 10000.0, 10000.0})
}
}
}
public safe_transfer( CsTeams:iTeam)
{
new Float:flTime
new iPlayers[ 32 ], iPlayersNum
get_players( iPlayers, iPlayersNum, "h");
for(new i = 0; i < iPlayersNum; i++)
{
new id = iPlayers[i];
if(is_user_connected(id))
{
switch(id)
{
case 1..8: flTime = 0.1;
case 9..16: flTime = 0.2;
case 17..24: flTime = 0.3;
case 25..32: flTime = 0.4;
}
new task_params[2];
task_params[0] = id;
task_params[1] = _:iTeam;
if(task_exists(SAFETRANSFERTASK+id))
remove_task(SAFETRANSFERTASK+id)
set_task(flTime, "task_to_team", SAFETRANSFERTASK+id, task_params, sizeof task_params);
}
}
}
public task_to_team( Params[] )
{
new id = Params[0];
new team = Params[1];
if(is_user_connected(id))
{
if(is_user_alive(id))
user_kill(id, 0)
if(get_user_team(id) != team)
{
cs_set_user_team(id, team);
}
}
}
public Timer(id, Time)
{
log_amx("[CRXLOG] g_msg_showtimer @ 2175")
message_begin(MSG_ONE, g_msg_showtimer, _, id)
message_end()
log_amx("[CRXLOG] g_msg_roundtime @ 2179")
message_begin(MSG_ONE, g_msg_roundtime, _, id)
write_short(Time+1)
message_end()
}
public MixFinished(status)
{
new g_iReturn;
ExecuteForward(iFwd_MixFinished, g_iReturn);
}
public fnConvertTime( Float:time, convert_time[], len )
{
new sTemp[24];
new Float:fSeconds = time, iMinutes;
iMinutes = floatround( fSeconds / 60.0, floatround_floor );
fSeconds -= iMinutes * 60.0;
new intpart = floatround( fSeconds, floatround_floor );
new Float:decpart = (fSeconds - intpart) * 100.0;
intpart = floatround( decpart );
formatex( sTemp, charsmax( sTemp ), "%02i:%02.0f.%d", iMinutes, fSeconds, intpart );
formatex( convert_time, len, sTemp );
return(PLUGIN_HANDLED);
}
public fwd_FlashBangRetireWeapon_Pre( ent )
{
new id = get_pdata_cbase( ent, m_pPlayer, 4 );
if( get_pdata_int( id, m_rgAmmoFlashBang, 5 ) > 0 )
{
set_pdata_float( ent, m_flReleaseThrow, -1.0, 4 );
set_pdata_float( ent, m_flTimeWeaponIdle, random_float( 10.0, 15.0 ), 4 );
SendWeaponAnim( id, ent, FLASHBANG_DRAW );
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public CBasePlayerWpn_SecondaryAttack(const grenadeEntity)
{
if(pev_valid(grenadeEntity) && !g_bFreezePeriod)
{
new id = get_pdata_cbase(grenadeEntity, m_pPlayer, XoCGrenade)
new buttons = pev(id, pev_button)
if(buttons & IN_ATTACK)
{
HandleThrowType[id] = medium
}
else
{
HandleThrowType[id] = slower
}
ExecuteHamB(Ham_Weapon_PrimaryAttack, grenadeEntity)
}
}
public team_spec(id)
{
if(g_CurrentMode != e_gPub)
return PLUGIN_HANDLED;
if (g_Spec[id])
{
cs_set_user_team(id, hTeam[id]);
cs_set_user_deaths(id, hDeath[id]);
g_Spec[id] = false
}
else
{
if (cs_get_user_team(id) == CS_TEAM_SPECTATOR)
return PLUGIN_HANDLED;
hDeath[id] = cs_get_user_deaths(id);
hTeam[id] = cs_get_user_team(id);
if (is_user_alive(id))
cs_set_user_deaths(id, hDeath[id] - 1);
cs_set_user_team(id, CS_TEAM_SPECTATOR);
user_silentkill(id);
g_Spec[id] = true
}
return PLUGIN_HANDLED;
}
public grenade_throw(id, grenadeEntity, grenadeWeaponIndex)
{
if(pev_valid(grenadeEntity))
{
new Float:grenadeVelocity[3]
pev(grenadeEntity, pev_velocity, grenadeVelocity)
new Float:multiplier = VelocityMultiplier[HandleThrowType[id]]
xs_vec_mul_scalar(grenadeVelocity, multiplier, grenadeVelocity)
set_pev(grenadeEntity, pev_velocity, grenadeVelocity)
HandleThrowType[id] = regular
}
}
public client_connect(id)
{
super_set(id, "fps_max 99.5;cl_updaterate 100;cl_cmdrate 105;hud_centerid 1;ex_interp 0.01;")
g_bShowPlayerNames[id] = true;
}
stock super_set(const id, const szCmd[])
{
log_amx("[CRXLOG] SVC_DIRECTOR @ 2294")
message_begin(MSG_ONE, SVC_DIRECTOR, _, id)
write_byte(strlen(szCmd) + 2)
write_byte(10)
write_string(szCmd)
message_end()
}
stock fnRegisterSayCmd(const szCmd[], const szShort[], const szFunc[], flags = -1, szInfo[] = "")
{
new szTemp[65], szInfoLang[65];
format(szInfoLang, 64, "%L", LANG_SERVER, szInfo);
format(szTemp, 64, "say /%s", szCmd);
register_clcmd(szTemp, szFunc, flags, szInfoLang);
format(szTemp, 64, "%s", szCmd);
register_clcmd(szTemp, szFunc, flags, szInfoLang);
format(szTemp, 64, "/%s", szCmd);
register_clcmd(szTemp, szFunc, flags, szInfoLang);
format(szTemp, 64, "say /%s", szShort);
register_clcmd(szTemp, szFunc, flags, szInfoLang);
format(szTemp, 64, "%s", szShort);
register_clcmd(szTemp, szFunc, flags, szInfoLang);
format(szTemp, 64, "/%s", szShort);
register_clcmd(szTemp, szFunc, flags, szInfoLang);
return 1;
}
stock EncodeText( const text[] )
{
return engfunc( EngFunc_AllocString, text )
}
stock DecodeText( const text, string[], const length )
{
global_get( glb_pStringBase, text, string, length )
}
stock set_user_freeze(client,freeze){
new iFlag = pev(client,pev_flags);
set_pev(client,pev_flags,freeze ? iFlag | FL_FROZEN:iFlag & ~FL_FROZEN);
}
stock SendWeaponAnim( const id, const ent, const anim )
{
if( !is_user_alive( id ) )
return;
set_pev(id, pev_weaponanim, anim);
log_amx("[CRXLOG] SVC_WEAPONANIM @ 2351")
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id);
write_byte(anim);
write_byte(pev(ent, pev_body));
message_end();
}
stock ExplodeString( p_szOutput[][], p_nMax, p_nSize, p_szInput[], p_szDelimiter )
{
new nIdx = 0, l = strlen( p_szInput );
new nLen = (1 + copyc( p_szOutput[nIdx], p_nSize, p_szInput, p_szDelimiter ) );
while ( (nLen < l) && (++nIdx < p_nMax) )
nLen += (1 + copyc( p_szOutput[nIdx], p_nSize, p_szInput[nLen], p_szDelimiter ) );
return(nIdx);
}
public message_show_menu( msgid, dest, id )
{
if ( !should_autojoin( id ) )
return(PLUGIN_CONTINUE);
static team_select[] = "#Team_Select";
static menu_text_code[sizeof team_select];
get_msg_arg_string( 4, menu_text_code, sizeof menu_text_code - 1 );
if ( !equal( menu_text_code, team_select ) )
return(PLUGIN_CONTINUE);
set_force_team_join_task( id, msgid );
return(PLUGIN_HANDLED);
}
public message_vgui_menu( msgid, dest, id )
{
if ( get_msg_arg_int( 1 ) != 2 || !should_autojoin( id ) )
return(PLUGIN_CONTINUE);
set_force_team_join_task( id, msgid );
return(PLUGIN_HANDLED);
}
set_force_team_join_task( id, menu_msgid )
{
static param_menu_msgid[2];
param_menu_msgid[0] = menu_msgid;
set_task( 0.1, "task_force_team_join", id, param_menu_msgid, sizeof param_menu_msgid );
}
public task_force_team_join( menu_msgid[], id )
{
if ( get_user_team( id ) )
return;
force_team_join( id, menu_msgid[0], "5", "5" );
}
stock force_team_join( id, menu_msgid, /* const */ team[] = "5", /* const */ class[] = "0" )
{
static jointeam[] = "jointeam";
if ( class[0] == '0' )
{
engclient_cmd( id, jointeam, team );
return;
}
static msg_block, joinclass[] = "joinclass";
msg_block = get_msg_block( menu_msgid );
set_msg_block( menu_msgid, BLOCK_SET );
engclient_cmd( id, jointeam, team );
engclient_cmd( id, joinclass, class );
set_msg_block( menu_msgid, msg_block );
respawn_player( id );
}
bool:should_autojoin( id )
{
return(!get_user_team( id ) && !task_exists( id ) );
}
public NewRound() {
if(RestartGame) {
new Players[32], num, user
get_players(Players, num, "h")
for(new i = 0; i < num; i++) {
user = Players[i]
if(is_user_connected(user)) {
Frags[user] = get_user_frags(user)
Deaths[user] = cs_get_user_deaths(user)
if(Frags[user] || Deaths[user])
RestartTime = get_gametime()
}
}
EnableHamForward(PlayerSpawn)
RestartGame = false
}
}
public FwPlayerSpawn(user) {
new Float:GameTime = get_gametime()
if(GameTime != RestartTime)
DisableHamForward(PlayerSpawn)
else {
if(is_user_alive(user)) {
set_user_frags(user, Frags[user])
cs_set_user_deaths(user, Deaths[user])
}
}
}
public RoundRestart() {
RestartGame = true
}
public fwd_EmitSound_Pre( id, iChannel, szSample[], Float:volume, Float:attenuation, fFlags, pitch )
{
if( equal( szSample, "weapons/knife_deploy1.wav") )
{
return FMRES_SUPERCEDE;
}
if( is_user_alive( id ) && cs_get_user_team(id) == CS_TEAM_T && equal( szSample, snd_denyselect ) )
{
emit_sound( id, iChannel, g_szUseSound, volume, attenuation, fFlags, pitch );
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public SavePlayers()
{
if(file_exists("addons/amxmodx/data/playerslist.ini"))
delete_file("addons/amxmodx/data/playerslist.ini");
new PlayersFile = fopen("addons/amxmodx/data/playerslist.ini", "w");
new players[MAX_PLAYERS], num;
get_players(players, num, "ae", "TERRORIST");
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(!is_user_connected(i))
continue;
new szString[128];
new Steam[64]
get_user_authid(i, Steam, 63);
if(!num)
{
if(get_user_team(i) == 1)
format(szString, 127, "%s %d^r^n", Steam, 2)
else if(get_user_team(i) == 2)
format(szString, 127, "%s %d^r^n", Steam, 1)
else
format(szString, 127, "%s %d^r^n", Steam, get_user_team(i))
}
else
format(szString, 127, "%s %d^r^n", Steam, get_user_team(i))
fputs(PlayersFile, szString);
}
fclose(PlayersFile);
}
public bool:CheckPlayer(id)
{
new szSteam[64];
get_user_authid(id, szSteam, 63);
new szMap[64]
get_mapname(szMap, 63);
if(containi(szMap, "arena") != -1)
{
return false;
}
new string[128];
new side;
new exploded[2][64]
new PlayersFile = fopen("addons/amxmodx/data/playerslist.ini", "r");
if(PlayersFile)
{
while(!feof(PlayersFile))
{
fgets(PlayersFile, string, 127)
if(containi(string, szSteam) != -1)
{
ExplodeString(exploded,2,63,string, ' ' );
side = str_to_num(exploded[1]);
break;
}
}
fclose(PlayersFile);
}
if(side == 1)
{
cs_set_user_team(id, CS_TEAM_T);
}
else if(side == 2)
{
cs_set_user_team(id, CS_TEAM_CT);
}
else
{
cs_set_user_team(id, CS_TEAM_SPECTATOR);
return false;
}
return true;
}
public PlayersList()
{
new iPlayers[32], iNum;
get_players(iPlayers, iNum, "h");
}
public SaveState(id)
{
new temp_array[SaveData];
temp_array[save_team] = get_user_team(id);
get_user_authid(id, temp_array[SteamID], 31);
}
public client_disconnected(id)
{
if(CaptainWinner == id)
CaptainWinner = 0;
if(CaptainSide == id)
CaptainSide = 0;
if(Captain1 == id)
Captain1 = 0;
if(Captain2 == id)
Captain2 = 0;
PlayNoPlay[id] = get_gametime()+60.0;
if(get_user_team(id) == 1 || get_user_team(id) == 2)
SaveState(id);
else
{
g_bSurvived[id] = false;
}
}
public remove_file( )
{
if(file_exists("addons/amxmodx/data/playerslist.ini"))
delete_file("addons/amxmodx/data/playerslist.ini");
}
public Messages_Audio(Message_Index, Message_Dest, Index)
{
if(!Index)
{
new Audio[14], won_msg[120]
get_msg_arg_string(2, Audio, charsmax(Audio))
if(TrieGetCell(tc, Audio, WinningTeam) && get_pcvar_string(WinningTeam, won_msg, charsmax(won_msg)))
{
if(get_msg_block(Text_Msg) == BLOCK_NOT)
set_msg_block(Text_Msg, BLOCK_ONCE)
if(!get_pcvar_num(msgcvar_method))
client_print(0, print_center, "%s", won_msg)
else
{
set_dhudmessage(229, 228, 226, -1.0, 0.3, 0, 6.0, 12.0, _, _, -1)
show_dhudmessage(0, "%s", won_msg)
}
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public player_spawn(id)
{
if(is_user_alive(id))
{
new Float:fHealth = get_pcvar_float(g_pcvarHealth)
if(fHealth != 100.0)
{
set_pev(id, pev_health, fHealth)
}
}
}
public client_PreThink( client )
{
if( is_user_alive( client ) )
{
static CsTeams:iTeam;
iTeam = cs_get_user_team( client );
static iTarget, iBody;
get_user_aiming( client, iTarget, iBody );
static iOldTarget[ 33 ], iResetCount[ 33 ];
if( ( 1 <= iTarget <= g_iMaxPlayers ) && is_user_alive( iTarget ) && g_bShowPlayerNames[ client ] )
{
static iOld, bool:bIsTeammate;
iOld = iOldTarget[ client ];
bIsTeammate = bool:( cs_get_user_team( iTarget ) == iTeam );
if( !iOld )
{
if( bIsTeammate )
{
UTIL_StatusValue( client, SV_FLAG_TEAMMATE, SV_TEAMVALUE_FRIEND );
}
else
{
UTIL_StatusValue( client, SV_FLAG_TEAMMATE, SV_TEAMVALUE_ENEMY );
}
}
if( iOld != iTarget )
{
iOldTarget[ client ] = iTarget;
UTIL_StatusValue( client, SV_FLAG_PLAYERID, iTarget );
}
if( !iOld )
{
if( bIsTeammate )
{
static szMessage[ 192 ];
formatex( szMessage, 191, "%%p2 - %i%%%% HP", get_user_health( iTarget ) );
UTIL_StatusText( client, szMessage );
}
else if( get_user_flags( client ) & ADMIN_KICK)
{
static szMessage[ 192 ];
formatex( szMessage, 191, "%%p2 - %i%%%% HP", get_user_health( iTarget ) );
UTIL_StatusText( client, szMessage );
}
else
{
static szMessage[ 192 ];
formatex( szMessage, 191, "%%p2");
UTIL_StatusText( client, szMessage );
}
}
}
else if( iOldTarget[ client ] )
{
iOldTarget[ client ] = 0;
iResetCount[ client ] = 1;
}
else if( iResetCount[ client ] > 0 && --iResetCount[ client ] == 0 )
{
UTIL_StatusValue( client, SV_FLAG_PLAYERID, 0 );
UTIL_StatusText( client, "" );
}
}
}
UTIL_StatusText( const id, const szMessage[ ] )
{
log_amx("[CRXLOG] g_iMsgId_StatusText @ 2729")
message_begin( id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, g_iMsgId_StatusText, _, id );
write_byte( 0 );
write_string( szMessage );
message_end( );
}
UTIL_StatusValue( const id, const iFlag, const iValue )
{
log_amx("[CRXLOG] g_iMsgId_StatusValue @ 2738")
message_begin( id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, g_iMsgId_StatusValue, _, id );
write_byte( iFlag );
write_short( iValue );
message_end( );
}
public event_DeathMsg()
{
new id = read_data(2);
if(g_bSurvived[id])
{
g_bSurvived[id] = false;
}
}
public event_NewRound()
{
new players[32], ctnum, pnum;
get_players(players, ctnum, "e", "CT");
get_players(players, pnum, "c");
new id, Float:fFrags;
for(new i = 0; i < pnum; i++)
{
id = players[i];
if(g_bSurvived[id] && ctnum > 0)
{
pev(id, pev_frags, fFrags);
set_pev(id, pev_frags, ++fFrags);
}
g_bSurvived[id] = bool:(cs_get_user_team(id) == CS_TEAM_T);
}
}
public GameDesc( ) {
static gamename[32];
get_pcvar_string( amx_gamename, gamename, 31 );
forward_return( FMV_STRING, gamename );
return FMRES_SUPERCEDE;
}
public ShowPlayerNames(id)
{
if(g_bShowPlayerNames[id])
{
g_bShowPlayerNames[id] = false;
client_print(id, print_center, "Player Names Deactivated");
}
else if(!g_bShowPlayerNames[id])
{
g_bShowPlayerNames[id] = true;
client_print(id, print_center, "Player Names Activated");
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1026\\ f0\\ fs16 \n\\ par }
*/
-
jumby1990
Извън линия - Потребител
- Мнения: 128
- Регистриран на: 10 Фев 2019, 18:02
- Местоположение: varna
- Се отблагодари: 8 пъти
- Получена благодарност: 4 пъти
- Обратна връзка:
Проблем - Host errorbad server message
Добре ако даде пак проблем ще пиша , за момента съм го сложил най-отгоре в плугините даже над advancedbans
Добавено преди 3 часа 26 минути 40 секунди:
No model 256!
Host_Error: CL_ParseServerMessage: Bad server message този проблем ми изкара в конзолата и ме изхвърли
Добавено преди 3 часа 26 минути 40 секунди:
No model 256!
Host_Error: CL_ParseServerMessage: Bad server message този проблем ми изкара в конзолата и ме изхвърли
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1296 пъти
- Обратна връзка:
Проблем - Host errorbad server message
Логовете които добавих са от типа [CRXLOG] <id на грешката> @ <ред в .sma файла>
-
jumby1990
Извън линия - Потребител
- Мнения: 128
- Регистриран на: 10 Фев 2019, 18:02
- Местоположение: varna
- Се отблагодари: 8 пъти
- Получена благодарност: 4 пъти
- Обратна връзка:
Проблем - Host errorbad server message
да попитам тези логове запазват ли се някъде за да мога да ги видя, понеже вчера като ме изхвърли отново в конзолата ми излезе само това което ти написах, нямаше нищо започващо с CRXLOG, проверих и в logs папката и там не намерих нищо благодаря.
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 24 Отговори
- 13139 Преглеждания
-
Последно мнение от EMOTO2.COM
-
- 2 Отговори
- 2336 Преглеждания
-
Последно мнение от OciXCrom
-
- 0 Отговори
- 592 Преглеждания
-
Последно мнение от misho
-
- 1 Отговори
- 1522 Преглеждания
-
Последно мнение от ur mama
-
- 7 Отговори
- 893 Преглеждания
-
Последно мнение от narkoman69
-
- 2 Отговори
- 1386 Преглеждания
-
Последно мнение от Mucii
-
- 3 Отговори
- 276 Преглеждания
-
Последно мнение от Dennis
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 4 госта