Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <cstrike>
- #include <colorchat>
- #include <engine>
- #include <fakemeta>
- #include <fun>
- #include <hamsandwich>
- #include <playermodel>
- #define USE_SQL
- #if defined USE_SQL
- #include <sqlx>
- #include <geoip>
- #endif
- //Timer icon
- new iconstatus
- #define KZ_LEVEL ADMIN_LEVEL_C
- #define MSG MSG_ONE_UNRELIABLE
- #define MAX_ENTITYS 900+15*32
- #define IsOnLadder(%1) (pev(%1, pev_movetype) == MOVETYPE_FLY)
- #define VERSION ""
- #define MIN_AFK_TIME 30 // I use this incase stupid admins accidentally set mp_afktime to something silly.
- #define WARNING_TIME 10 // Start warning the user this many seconds before they are about to be kicked.
- #define CHECK_FREQ 5 // This is also the warning message frequency.
- #define SCOREATTRIB_NONE 0
- #define SCOREATTRIB_DEAD (1 << 0)
- #define SCOREATTRIB_BOMB (1 << 1)
- #define SCOREATTRIB_VIP (1 << 2)
- new const FL_ONGROUND2 = (FL_ONGROUND | FL_PARTIALGROUND | FL_INWATER | FL_CONVEYOR | FL_FLOAT)
- new const KZ_STARTFILE[] = "start.ini"
- new const KZ_STARTFILE_TEMP[] = "temp_start.ini"
- new g_roundtime
- new g_msgDeathMsg
- new g_oldangles[33][3]
- new g_afktime[33]
- new g_soundlist[] =
- {
- "doors/doorstop1.wav", "doors/doorstop2.wav", "doors/doorstop3.wav",
- "player/pl_pain2.wav", "player/pl_pain3.wav","player/pl_pain4.wav",
- "player/pl_pain5.wav", "player/pl_pain6.wav", "player/pl_pain7.wav",
- "player/bhit_kevlar-1.wav", "player/bhit_flesh-1.wav", "player/bhit_flesh-2.wav",
- "player/bhit_flesh-3.wav","player/pl_swim1.wav", "player/pl_swim2.wav",
- "player/pl_swim3.wav", "player/pl_swim4.wav", "player/waterrun.wav",
- "weapons/knife_hit1.wav", "weapons/knife_hit2.wav", "weapons/knife_hit3.wav",
- "weapons/knife_hit4.wav", "weapons/knife_stab.wav", "weapons/knife_deploy1.wav",
- "items/gunpickup2.wav", "items/9mmclip1.wav", "common/bodysplat.wav", "items/nvg_on.wav",
- "items/nvg_off.wav"
- }
- new const g_RemoveEntities[][] =
- {
- "func_bomb_target", "info_bomb_target", "hostage_entity", /*"func_breakable",*/
- "monster_scientist", "func_hostage_rescue", "info_hostage_rescue",
- "info_vip_start", "func_vip_safetyzone", "func_escapezone",
- "armoury_entity", "game_player_equip", "player_weaponstrip",
- "info_deathmatch_start" // TT Spawn :D
- };
- //Used for Hook
- new bool:hook[33]
- new bool:usedhook[33]
- new hook_to[33][3]
- new hook_speed_cvar
- new bool:has_hook[33]
- #if defined USE_SQL
- new Handle:g_SqlTuple
- new Handle:SqlConnection
- new g_Error[512]
- new kz_sql_host
- new kz_sql_user
- new kz_sql_pass
- new kz_sql_db
- new kz_sql_name
- new kz_sql_files
- #else
- new Float:Pro_Times[24]
- new Pro_AuthIDS[24][32]
- new Pro_Names[24][32]
- new Pro_Date[24][32]
- new Float:Noob_Tiempos[24]
- new Noob_AuthIDS[24][32]
- new Noob_Names[24][32]
- new Noob_Date[24][32]
- new Noob_CheckPoints[24]
- new Noob_GoChecks[24]
- new Noob_Weapon[24][32]
- #endif
- new Float:g_flRoundStartGameTime
- new gmsgSendAudio, g_iMsgSendAudio
- new Trie:g_tStartRoundSounds
- new Float:angles[3]
- new Float:CPangles[33][2][3]
- new Float:Checkpoints[33][2][3]
- new Float:timer_time[33]
- new Float:g_pausetime[33]
- new Float:antihookcheat[33]
- new Float:SpecLoc[33][3]
- new Float:NoclipPos[33][3]
- new Float:PauseOrigin[33][3]
- new Float:SavedStart[33][3]
- new Float:DefaultStartPos[3]
- new Float:DefaultStartPosAng[3]
- new Float:CustomStartPos[33][2][3]
- new Float:SavedTime[33]
- new SavedChecks[33]
- new SavedGoChecks[33]
- new SavedScout[33]
- new SavedOrigins[33][3]
- new bool:g_spawned[33] = {true, ...}
- new bool:g_bCpAlternate[33]
- new bool:timer_started[33]
- new bool:IsPaused[33]
- new bool:WasPaused[33]
- new bool:firstspawn[33]
- new bool:user_has_scout[33]
- new bool:HealsOnMap
- new bool:KeysOn[33]
- new bool:gWaterEntity[MAX_ENTITYS]
- new bool:gWaterFound
- new bool:CustomStart[33]
- new bool:DefaultStart
- new bool:AutoStart[33]
- new Trie:g_tStarts
- new Trie:g_tStops;
- new checknumbers[33]
- new gochecknumbers[33]
- new chatorhud[33]
- new ShowTime[33]
- new MapName[64]
- new Kzdir[128]
- new SavePosDir[128]
- #if !defined USE_SQL
- new Topdir[128]
- #endif
- new tempid
- new kz_cheats
- new kz_godmode
- new kz_teleport_notification
- new kz_teleport_height
- new kz_cp_angles
- new kz_block_ct
- new kz_checkpoints
- new kz_cheatdetect
- new kz_spawn_mainmenu
- new kz_show_timer
- new kz_chatorhud
- new kz_hud_color
- new hud_message
- new kz_other_weapons
- new kz_maxspeedmsg
- new kz_drop_weapons
- new kz_remove_drops
- new kz_pick_weapons
- new kz_reload_weapons
- new kz_use_radio
- new kz_pause
- new kz_noclip_pause
- new kz_vip
- new kz_respawn_ct
- new kz_save_pos
- new kz_save_pos_gochecks
- new kz_spec_saves
- new kz_save_autostart
- new kz_top15_authid
- new const other_weapons[7] =
- {
- CSW_P90, CSW_FAMAS, CSW_SG552,
- CSW_M4A1, CSW_M249, CSW_AK47, CSW_AWP
- }
- new const other_weapons_name[7][] =
- {
- "weapon_p90", "weapon_famas", "weapon_sg552",
- "weapon_m4a1", "weapon_m249", "weapon_ak47", "weapon_awp"
- }
- new const g_weaponsnames[][] =
- {
- "", // NULL
- "p228", "shield", "scout", "hegrenade", "xm1014", "c4",
- "mac10", "aug", "smokegrenade", "elite", "fiveseven",
- "ump45", "sg550", "galil", "famas", "usp", "glock18",
- "awp", "mp5navy", "m249", "m3", "m4a1", "tmp", "g3sg1",
- "flashbang", "deagle", "sg552", "ak47", "knife", "p90",
- "glock", "elites", "fn57", "mp5", "vest", "vesthelm",
- "flash", "hegren", "sgren", "defuser", "nvgs", "primammo",
- "secammo", "km45", "9x19mm", "nighthawk", "228compact",
- "12gauge", "autoshotgun", "mp", "c90", "cv47", "defender",
- "clarion", "krieg552", "bullpup", "magnum", "d3au1",
- "krieg550"
- }
- new const g_block_commands[][]=
- {
- "buy", "buyammo1", "buyammo2", "buyequip",
- "cl_autobuy", "cl_rebuy", "cl_setautobuy", "cl_setrebuy"
- }
- enum
- {
- TASK_ID_CHECKENT
- };
- #if defined USE_SQL
- enum
- {
- TOP_NULL,
- PRO_TOP,
- NUB_TOP,
- LAST_PRO10,
- PRO_RECORDS,
- PLAYERS_RANKING,
- MAPS_STATISTIC
- }
- #endif
- // =================================================================================================
- public plugin_init()
- {
- register_plugin("ProKreedz", VERSION, "")
- //Timer icon
- iconstatus = get_user_msgid("StatusIcon")
- kz_cp_angles = register_cvar("kz_cp_angles","0")
- kz_block_ct = register_cvar("kz_block_ct","0")
- kz_checkpoints = register_cvar("kz_checkpoints","1")
- kz_cheats = register_cvar("kz_cheats","1")
- kz_godmode = register_cvar("kz_godmode","1")
- kz_cheatdetect = register_cvar("kz_cheatdetect","1")
- kz_spawn_mainmenu = register_cvar("kz_spawn_mainmenu", "0")
- kz_show_timer = register_cvar("kz_show_timer", "1")
- kz_chatorhud = register_cvar("kz_chatorhud", "2")
- kz_hud_color = register_cvar("kz_hud_color", "255 255 255")
- kz_other_weapons = register_cvar("kz_other_weapons","1")
- kz_drop_weapons = register_cvar("kz_drop_weapons", "1")
- kz_remove_drops = register_cvar("kz_remove_drops", "0")
- kz_pick_weapons = register_cvar("kz_pick_weapons", "1")
- kz_reload_weapons = register_cvar("kz_reload_weapons", "0")
- kz_maxspeedmsg = register_cvar("kz_maxspeedmsg","1")
- kz_use_radio = register_cvar("kz_use_radio", "0")
- kz_pause = register_cvar("kz_pause", "1")
- kz_noclip_pause = register_cvar("kz_noclip_pause", "1")
- kz_vip = register_cvar("kz_vip","1")
- kz_respawn_ct = register_cvar("kz_respawn_ct", "1")
- kz_spec_saves = register_cvar("kz_spec_saves", "1")
- kz_save_autostart = register_cvar("kz_save_autostart", "1")
- kz_teleport_notification = register_cvar("kz_teleport_notification", "1")
- kz_teleport_height = register_cvar("kz_teleport_height", "75")
- kz_top15_authid = register_cvar("kz_top15_authid", "1")
- kz_save_pos = register_cvar("kz_save_pos", "1")
- kz_save_pos_gochecks = register_cvar("kz_save_pos_gochecks", "1")
- register_cvar("mp_afktime", "0") // Kick people AFK longer than this time
- register_cvar("mp_afkminplayers", "0") // Only kick AFKs when there is atleast this many players on the server
- #if defined USE_SQL
- kz_sql_host = register_cvar("kz_sql_host", "") // Host of DB
- kz_sql_user = register_cvar("kz_sql_user", "") // Username of DB
- kz_sql_pass = register_cvar("kz_sql_pass", "", FCVAR_PROTECTED) // Password for DB user
- kz_sql_db = register_cvar("kz_sql_db", "") // DB Name for the top 15
- kz_sql_name = register_cvar("kz_sql_server", "") // Name of server
- kz_sql_files = register_cvar("kz_sql_files", "") // Path of the PHP files
- #endif
- register_touch("weaponbox", "player", "BlockPickup");
- register_touch("armoury_entity", "player", "BlockPickup");
- register_touch("weapon_shield", "player", "BlockPickup");
- register_clcmd("say /tele", "kz_tele_menu")
- register_clcmd("/cp","CheckPoint")
- register_clcmd("/gc", "GoCheck")
- register_clcmd("/tp","GoCheck")
- register_clcmd("start", "goStart", 0)
- register_clcmd("drop", "BlockDrop")
- register_concmd("+hook","hook_on")
- register_concmd("-hook","hook_off")
- register_concmd("hook_toggle","hook_toggle",ADMIN_KICK,"Toggles your hook on and off")
- hook_speed_cvar = register_cvar("hook_speed","5")
- register_concmd("amx_give_hook","cmd_givetake",ADMIN_KICK,"Give a player the ability to hook <nick>")
- register_concmd("amx_take_hook","cmd_givetake",ADMIN_KICK,"Take a player's ability to hook <nick>")
- register_clcmd("chooseteam", "ct")
- register_clcmd("radio1", "BlockRadio")
- register_clcmd("radio2", "BlockRadio")
- register_clcmd("radio3", "BlockRadio")
- kz_register_saycmd("clap", "Clap", ADMIN_BAN)
- kz_register_saycmd("chatorhud", "ChatHud", 0)
- kz_register_saycmd("cp","CheckPoint",0)
- kz_register_saycmd("gc", "GoCheck",0)
- kz_register_saycmd("tp", "GoCheck",0)
- kz_register_saycmd("teleport", "GoCheck", 0)
- kz_register_saycmd("gocheck", "GoCheck",0)
- kz_register_saycmd("stuck", "Stuck", 0)
- kz_register_saycmd("reset", "reset_checkpoints", 0)
- kz_register_saycmd("customstart", "Custom", 0)
- kz_register_saycmd("cs", "Custom", 0)
- //kz_register_saycmd("savepos", "SavePos", 0)
- kz_register_saycmd("setstart", "setStart", ADMIN_BAN)
- kz_register_saycmd("ss", "setStart", ADMIN_BAN)
- kz_register_saycmd("start", "goStart", 0)
- kz_register_saycmd("respawn", "goStart", 0)
- kz_register_saycmd("pause", "Pause", 0)
- //kz_register_saycmd("god", "GodMode",0)
- //kz_register_saycmd("godmode", "GodMode", 0)
- kz_register_saycmd("blockct", "BlockCT", ADMIN_BAN)
- kz_register_saycmd("kz", "kz_menu", 0)
- kz_register_saycmd("menu","kz_menu", 0)
- kz_register_saycmd("training","kz_menu", 0)
- kz_register_saycmd("model", "model_menu", 0)
- kz_register_saycmd("models", "model_menu", 0)
- kz_register_saycmd("nc", "noclip", KZ_LEVEL)
- kz_register_saycmd("noclip", "noclip", KZ_LEVEL)
- //kz_register_saycmd("noob10", "NoobTop_show", 0)
- //kz_register_saycmd("noob15", "NoobTop_show", 0)
- //kz_register_saycmd("nub10", "NoobTop_show", 0)
- //kz_register_saycmd("nub15", "NoobTop_show", 0)
- kz_register_saycmd("pro10", "ProTop_show", 0)
- kz_register_saycmd("pro15", "ProTop_show", 0)
- kz_register_saycmd("wr", "ProTop_show", 0)
- kz_register_saycmd("rank", "Players_Ranking", 0)
- kz_register_saycmd("top15", "top15menu",0)
- kz_register_saycmd("top10", "top15menu",0)
- //kz_register_saycmd("showtimer", "ShowTimer_Menu", 0)
- //kz_register_saycmd("timer", "ShowTimer_Menu", 0)
- kz_register_saycmd("uptime", "CmdUpTime", ADMIN_BAN);
- kz_register_saycmd("up", "CmdUpTime", ADMIN_BAN);
- kz_register_saycmd("ct","ct",0)
- kz_register_saycmd("spec", "ct", 0)
- //kz_register_saycmd("scout", "cmdScout", 0)
- kz_register_saycmd("weapons", "weapons", 0)
- kz_register_saycmd("guns", "weapons", 0)
- #if defined USE_SQL
- kz_register_saycmd("prorecords", "ProRecs_show", 0)
- kz_register_saycmd("prorecs", "ProRecs_show", 0)
- #endif
- register_event("CurWeapon", "curweapon", "be", "1=1")
- register_event("ResetHUD", "round_start", "be")
- new iEnt
- iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString , "info_target"))
- set_pev(iEnt, pev_classname, "kz_time_think")
- set_pev(iEnt, pev_nextthink, get_gametime() + 1.0)
- register_forward(FM_Think,"fw_ThinkEntity")
- register_forward(FM_EmitSound, "block_sound")
- RegisterHam(Ham_Use, "func_button", "fwdUse", 0)
- RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", 1)
- RegisterHam(Ham_Touch, "weaponbox", "FwdSpawnWeaponbox")
- RegisterHam(Ham_Spawn, "player", "FwdHamPlayerSpawn", 1)
- RegisterHam(Ham_Killed, "player", "Ham_PlayerKilled_P", true);
- RegisterHam(Ham_Touch, "weaponbox", "GroundWeapon_Touch")
- RegisterHam( Ham_TakeDamage, "player", "hamTakeDamage" );
- register_message(get_user_msgid("StatusIcon"), "MessageStatusIcon")
- register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib")
- register_dictionary("prokreedz.txt")
- register_logevent("LogEvent_Round_Start", 2, "1=Round_Start")
- gmsgSendAudio = get_user_msgid("SendAudio")
- new szStartRoundSounds[][] = {
- "%!MRAD_LOCKNLOAD",
- "%!MRAD_MOVEOUT",
- "%!MRAD_LETSGO",
- "%!MRAD_GO",
- "%!MRAD_ELIM",
- "%!MRAD_GETOUT",
- "%!MRAD_VIP"
- }
- g_tStartRoundSounds = TrieCreate()
- for(new i; i<sizeof(szStartRoundSounds); i++)
- {
- TrieSetCell(g_tStartRoundSounds, szStartRoundSounds[i], 1)
- }
- get_mapname(MapName, 63)
- g_roundtime = get_user_msgid("RoundTime")
- g_msgDeathMsg = get_user_msgid("DeathMsg")
- set_msg_block(g_msgDeathMsg,BLOCK_ONCE)
- set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET)
- #if defined USE_SQL
- set_task(0.2, "plugin_sql")
- #endif
- set_task(float(CHECK_FREQ),"checkPlayers",_,_,_,"b")
- new kreedz_cfg[128], ConfigDir[64]
- get_configsdir(ConfigDir, 64)
- formatex(Kzdir,128, "%s/kz", ConfigDir)
- if(!dir_exists(Kzdir))
- mkdir(Kzdir)
- #if !defined USE_SQL
- formatex(Topdir,128, "%s/top15", Kzdir)
- if(!dir_exists(Topdir))
- mkdir(Topdir)
- #endif
- formatex(SavePosDir, 128, "%s/savepos", Kzdir)
- if(!dir_exists(SavePosDir))
- mkdir(SavePosDir)
- formatex(kreedz_cfg,128,"%s/kreedz.cfg", Kzdir)
- if(file_exists(kreedz_cfg))
- {
- server_exec()
- server_cmd("exec %s",kreedz_cfg)
- }
- for(new i = 0; i < sizeof(g_block_commands) ; i++)
- register_clcmd(g_block_commands[i], "BlockBuy")
- g_tStarts = TrieCreate()
- g_tStops = TrieCreate()
- new const szStarts[ ][ ] =
- {
- "counter_start", "clockstartbutton", "firsttimerelay", "but_start", "counter_start_button",
- "multi_start", "timer_startbutton", "start_timer_emi", "gogogo"
- }
- new const szStops[ ][ ] =
- {
- "counter_off", "clockstopbutton", "clockstop", "but_stop", "counter_stop_button",
- "multi_stop", "stop_counter", "m_counter_end_emi"
- }
- for(new i = 0; i < sizeof szStarts; i++)
- TrieSetCell(g_tStarts, szStarts[ i ], 1)
- for(new i = 0; i < sizeof szStops; i++)
- TrieSetCell(g_tStops, szStops[ i ], 1)
- }
- #if defined USE_SQL
- public plugin_sql()
- {
- new host[64], user[64], pass[64], db[64]
- get_pcvar_string(kz_sql_host, host, 63)
- get_pcvar_string(kz_sql_user, user, 63)
- get_pcvar_string(kz_sql_pass, pass, 63)
- get_pcvar_string(kz_sql_db, db, 63)
- g_SqlTuple = SQL_MakeDbTuple(host, user, pass, db)
- new ErrorCode
- SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
- if(!SqlConnection)
- {
- server_print("[XJ] TOP15 SQL: Could not connect to SQL database.!")
- log_amx("[XJ] TOP15 SQL: Could not connect to SQL database.")
- return pause("a")
- }
- new createinto[1001]
- formatex(createinto, 1000, "CREATE TABLE IF NOT EXISTS `kz_pro15` (`mapname` varchar(64) NOT NULL, `authid` varchar(64) NOT NULL, `country` varchar(6) NOT NULL, `name` varchar(64) NOT NULL, `time` decimal(65,2) NOT NULL, `date` datetime NOT NULL, `weapon` varchar(64) NOT NULL, `server` varchar(64) NOT NULL)")
- SQL_ThreadQuery(g_SqlTuple,"QueryHandle", createinto)
- formatex(createinto, 1000, "CREATE TABLE IF NOT EXISTS `kz_nub15` (`mapname` varchar(64) NOT NULL, `authid` varchar(64) NOT NULL, `country` varchar(6) NOT NULL, `name` varchar(64) NOT NULL, `time`decimal(65,2) NOT NULL, `date` datetime NOT NULL, `weapon` varchar(64) NOT NULL, `server` varchar(64) NOT NULL, `checkpoints` real NOT NULL, `gocheck` real NOT NULL)")
- SQL_ThreadQuery(g_SqlTuple,"QueryHandle", createinto)
- return PLUGIN_CONTINUE
- }
- public QueryHandle(iFailState, Handle:hQuery, szError[], iErrnum, cData[], iSize, Float:fQueueTime)
- {
- if(iFailState != TQUERY_SUCCESS)
- {
- log_amx("[XJ] TOP15 SQL: SQL Error #%d - %s", iErrnum, szError)
- ColorChat(0, GREEN, "[XJ]^x01: Warning the SQL Tops can not be saved.")
- }
- server_print("[XJ] Server Sending Info to SQL Server")
- return PLUGIN_CONTINUE
- }
- #endif
- public plugin_precache()
- {
- hud_message = CreateHudSyncObj()
- RegisterHam(Ham_Spawn, "func_door", "FwdHamDoorSpawn", 1)
- precache_sound("weapons/xbow_hit2.wav")
- //precache_sound("items/tr_kevlar.wav");
- precache_model("models/player/clone/clone.mdl");
- precache_model("models/player/droid/droid.mdl");
- precache_sound("vox/woop.wav");
- precache_sound("buttons/bell1.wav");
- precache_sound("fun/clap.wav");
- register_forward(FM_Spawn, "FwdSpawn", 0);
- }
- public plugin_cfg()
- {
- #if !defined USE_SQL
- for (new i = 0 ; i < 15; ++i)
- {
- Pro_Times[i] = 999999999.00000;
- Noob_Tiempos[i] = 999999999.00000;
- }
- read_pro15()
- read_Noob15()
- #endif
- new startcheck[100], data[256], map[64], x[13], y[13], z[13], alpha[13], beta[13], gamma[13];
- formatex(startcheck, 99, "%s/%s", Kzdir, KZ_STARTFILE)
- new f = fopen(startcheck, "rt")
- while(!feof(f))
- {
- fgets(f, data, sizeof data - 1)
- parse(data, map, 63, x, 12, y, 12, z, 12, alpha, 12, beta, 12, gamma, 12)
- if(equali(map, MapName))
- {
- DefaultStartPos[0] = str_to_float(x)
- DefaultStartPos[1] = str_to_float(y)
- DefaultStartPos[2] = str_to_float(z)
- DefaultStartPosAng[0] = str_to_float(alpha)
- DefaultStartPosAng[1] = str_to_float(beta)
- DefaultStartPosAng[2] = str_to_float(gamma)
- DefaultStart = true
- break;
- }
- }
- fclose(f)
- new ent = -1;
- while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "func_water")) != 0)
- {
- if(!gWaterFound)
- {
- gWaterFound = true;
- }
- gWaterEntity[ent] = true;
- }
- ent = -1;
- while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "func_illusionary")) != 0)
- {
- if(pev(ent, pev_skin) == CONTENTS_WATER)
- {
- if(!gWaterFound)
- {
- gWaterFound = true;
- }
- gWaterEntity[ent] = true;
- }
- }
- ent = -1;
- while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "func_conveyor")) != 0)
- {
- if(pev(ent, pev_spawnflags) == 3)
- {
- if(!gWaterFound)
- {
- gWaterFound = true;
- }
- gWaterEntity[ent] = true;
- }
- }
- }
- public checkPlayers() {
- for (new i = 1; i <= get_maxplayers(); i++) {
- if (is_user_alive(i) && !(cs_get_user_team(i) == CS_TEAM_SPECTATOR) && !(get_user_flags(i)&ADMIN_LEVEL_C) && is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && g_spawned[i]) {
- new newangle[3]
- get_user_origin(i, newangle)
- if ( newangle[0] == g_oldangles[i][0] && newangle[1] == g_oldangles[i][1] && newangle[2] == g_oldangles[i][2] ) {
- g_afktime[i] += CHECK_FREQ
- //check_afktime(i)
- } else {
- g_oldangles[i][0] = newangle[0]
- g_oldangles[i][1] = newangle[1]
- g_oldangles[i][2] = newangle[2]
- g_afktime[i] = 0
- }
- }
- }
- return PLUGIN_HANDLED
- }
- //check_afktime(id) {
- // new numplayers = get_playersnum()
- // new minplayers = get_cvar_num("mp_afkminplayers")
- //
- // if (!IsPaused[id])
- // {
- // if (numplayers >= minplayers) {
- // new maxafktime = get_cvar_num("mp_afktime")
- // if (maxafktime < MIN_AFK_TIME) {
- // log_amx("cvar mp_afktime %i is too low. Minimum value is %i.", maxafktime, MIN_AFK_TIME)
- // maxafktime = MIN_AFK_TIME
- // set_cvar_num("mp_afktime", MIN_AFK_TIME)
- // }
- //
- // if ( maxafktime-WARNING_TIME <= g_afktime[id] < maxafktime) {
- // new timeleft = maxafktime - g_afktime[id]
- // client_print(id, print_chat, "[AFK Kicker] You have %i seconds to move or you will be kicked for being AFK.", timeleft)
- // } else if (g_afktime[id] > maxafktime) {
- // //new name[32]
- // //get_user_name(id, name, 31)
- // //client_print(0, print_chat, "[AFK Kicker] %s was kicked for being AFK longer than %i seconds.", name, maxafktime)
- // //log_amx("%s was kicked for being AFK longer than %i seconds.", name, maxafktime)
- // server_cmd("kick #%d ^"You were kicked for being AFK longer than %i seconds.^"", get_user_userid(id), maxafktime)
- // }
- // }
- // }
- //}
- public round_start(id)
- {
- g_spawned[id] = false
- new sid[1]
- sid[0] = id
- set_task(0.75, "delayedSpawn",_, sid, 1) // Give the player time to drop to the floor when spawning
- kz_reset_data(id)
- }
- public delayedSpawn(sid[]) {
- get_user_origin(sid[0], g_oldangles[sid[0]])
- g_spawned[sid[0]] = true
- return PLUGIN_HANDLED
- }
- public LogEvent_Round_Start()
- {
- g_flRoundStartGameTime = get_gametime()
- if( !g_iMsgSendAudio )
- {
- g_iMsgSendAudio = register_message(gmsgSendAudio, "Message_SendAudio")
- }
- }
- public Message_SendAudio()
- {
- if(get_gametime() != g_flRoundStartGameTime)
- {
- unregister_message(gmsgSendAudio, g_iMsgSendAudio)
- g_iMsgSendAudio = 0
- return PLUGIN_CONTINUE
- }
- new szArg2[18]
- get_msg_arg_string(2, szArg2, charsmax(szArg2))
- if( TrieKeyExists(g_tStartRoundSounds, szArg2) )
- {
- if( get_msg_block(SVC_TEMPENTITY) == BLOCK_NOT )
- {
- set_msg_block(SVC_TEMPENTITY, BLOCK_ONCE)
- }
- return PLUGIN_HANDLED
- }
- return PLUGIN_CONTINUE
- }
- /*================================================================================================*/
- /************************************** [Remove Entitys] ******************************************/
- /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
- public FwdSpawn(ent)
- {
- if( pev_valid(ent) )
- {
- set_task(0.1, "TaskDelayedCheck", ent + TASK_ID_CHECKENT, "", 0, "", 0);
- return FMRES_HANDLED;
- }
- return FMRES_IGNORED;
- }
- public TaskDelayedCheck(ent)
- {
- ent -= TASK_ID_CHECKENT;
- if( !pev_valid(ent) )
- {
- return PLUGIN_CONTINUE;
- }
- new class[32]
- pev(ent, pev_classname, class, 32);
- for( new i; i < sizeof(g_RemoveEntities); i++ )
- {
- if( equal(class, g_RemoveEntities[i], 0) )
- {
- engfunc(EngFunc_RemoveEntity, ent);
- break;
- }
- }
- return PLUGIN_CONTINUE;
- }
- /*================================================================================================*/
- public client_command(id)
- {
- new sArg[13];
- if(read_argv(0, sArg, 12) > 11)
- {
- return PLUGIN_CONTINUE;
- }
- for(new i = 0; i < sizeof(g_weaponsnames); i++)
- {
- if(equali(g_weaponsnames[i], sArg, 0))
- {
- return PLUGIN_HANDLED;
- }
- }
- return PLUGIN_CONTINUE;
- }
- // =================================================================================================
- // Fun Sounds
- // =================================================================================================
- public Clap(id)
- {
- if(!(get_user_flags(id) & ADMIN_BAN))
- return PLUGIN_HANDLED
- client_cmd(0, "spk fun/clap.wav")
- return PLUGIN_HANDLED
- }
- // =================================================================================================
- // Global Functions
- // =================================================================================================
- public Pause(id)
- {
- if (get_pcvar_num(kz_pause) == 0)
- {
- client_print(id, print_center, "Pause is currently disabled");
- return PLUGIN_HANDLED
- }
- if(! is_user_alive(id))
- {
- client_print(id, print_center, "You must be alive to use this command");
- return PLUGIN_HANDLED
- }
- if(!IsPaused[id])
- {
- if(! timer_started[id])
- {
- client_print(id, print_center, "Timer is not started");
- return PLUGIN_HANDLED
- }
- g_pausetime[id] = get_gametime() - timer_time[id]
- timer_time[id] = 0.0
- IsPaused[id] = true
- client_print(id, print_center, "Your timer has been paused");
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN)
- pev(id, pev_origin, PauseOrigin[id])
- //set timer icon to red
- showtime2(id)
- }
- else
- {
- if(timer_started[id])
- {
- client_print(id, print_center, "Your timer has been unpaused");
- if(get_user_noclip(id))
- noclip(id)
- timer_time[id] = get_gametime() - g_pausetime[id]
- }
- IsPaused[id] = false
- set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN)
- showtime(id)
- }
- return PLUGIN_HANDLED
- }
- public fw_ThinkEntity(iEnt)
- {
- if(pev_valid(iEnt))
- {
- static ClassName[32]
- pev(iEnt, pev_classname, ClassName, 31)
- if(equal(ClassName, "kz_time_think"))
- {
- fw_TimeThink()
- set_pev(iEnt, pev_nextthink, get_gametime() + 0.02)
- }
- }
- }
- public fw_TimeThink()
- {
- if (get_pcvar_num(kz_show_timer) > 0)
- {
- new Alive[32], Dead[32], alivePlayers, deadPlayers;
- get_players(Alive, alivePlayers, "ach")
- get_players(Dead, deadPlayers, "bch")
- for(new i=0;i<alivePlayers;i++)
- {
- if(timer_started[Alive[i]])
- {
- new Float:kreedztime, imin, Float:isec
- kreedztime = get_gametime() - (IsPaused[Alive[i]] ? get_gametime() - g_pausetime[Alive[i]] : timer_time[Alive[i]])
- if(ShowTime[Alive[i]] == 1)
- {
- new colors[12], r[4], g[4], b[4];
- imin = floatround(kreedztime , floatround_floor)/60
- isec = kreedztime - (60*imin) + 0.02
- get_pcvar_string(kz_hud_color, colors, 11)
- parse(colors, r, 100, g, 100, b, 100)
- set_hudmessage(str_to_num(r), str_to_num(g), str_to_num(b), 0.0265, 0.4764, 0, 0.0, 0.2, 0.0, 0.0, 2)
- if( checknumbers[Alive[i]] > 0 )
- {
- show_hudmessage(Alive[i], "%02d:%s%.2f (%d|%d) %s",imin,isec < 10 ? "0" : "",isec,checknumbers[Alive[i]],gochecknumbers[Alive[i]], IsPaused[Alive[i]] ? "| *Paused*" : "")
- }
- else
- {
- show_hudmessage(Alive[i], "%02d:%s%.2f %s",imin,isec < 10 ? "0" : "",isec, IsPaused[Alive[i]] ? "| *Paused*" : "")
- }
- }
- else
- if(ShowTime[Alive[i]] == 2)
- {
- kz_showtime_roundtime(Alive[i], floatround(kreedztime))
- }
- }
- }
- for(new i=0;i<deadPlayers;i++)
- {
- new Float:kreedztime, imin, Float:isec
- new specmode = pev(Dead[i], pev_iuser1)
- if(specmode == 2 || specmode == 4)
- {
- new target = pev(Dead[i], pev_iuser2)
- if(target != Dead[i])
- if(is_user_alive(target) && timer_started[target])
- {
- new name[32], colors[12], r[4], g[4], b[4];
- get_user_name (target, name, 31)
- kreedztime = get_gametime() - (IsPaused[target] ? get_gametime() - g_pausetime[target] : timer_time[target])
- imin = floatround(kreedztime , floatround_floor)/60
- isec = kreedztime - (60*imin) + 0.02
- if(checknumbers[target] > 0)
- {
- client_print(Dead[i], print_center,"[ %02d:%s%.2f ] (%d|%d) %s",imin,isec < 10 ? "0" : "",isec,checknumbers[target], gochecknumbers[target], IsPaused[target] ? "| *Paused*" : "")
- }
- else
- {
- client_print(Dead[i], print_center, "[ %02d:%s%.2f ] %s",imin,isec < 10 ? "0" : "",isec,IsPaused[target] ? "| *Paused*" : "")
- }
- }
- else if(!timer_started[target])
- client_print(Dead[i], print_center, "")
- }
- }
- }
- }
- // ============================ Block Commands ================================
- public block_sound(entity, channel, const sound[]) {
- new g_listsize = sizeof g_soundlist
- for(new i; i<g_listsize; i++)
- {
- if( equali(sound, g_soundlist[i]) )
- return FMRES_SUPERCEDE
- }
- return FMRES_IGNORED
- }
- public BlockRadio(id)
- {
- if (get_pcvar_num(kz_use_radio) == 1)
- return PLUGIN_CONTINUE
- else
- {
- client_print(id, print_center, "You have no access to that command");
- return PLUGIN_HANDLED
- }
- return PLUGIN_HANDLED
- }
- public BlockDrop(id)
- {
- if (get_pcvar_num(kz_drop_weapons) == 1 && !timer_started[id])
- return PLUGIN_CONTINUE
- else
- {
- client_print(id, print_center, "You are not allowed to drop weapons during a run");
- return PLUGIN_HANDLED
- }
- return PLUGIN_HANDLED
- }
- public BlockBuy(id)
- {
- return PLUGIN_HANDLED
- }
- public Ham_PlayerKilled_P(id) {
- set_task(1.0, "CmdRespawn", id)
- return HAM_IGNORED;
- }
- public CmdRespawn(id)
- {
- if (get_user_team(id) == 3)
- return PLUGIN_HANDLED
- else
- ExecuteHamB(Ham_CS_RoundRespawn, id)
- return PLUGIN_HANDLED
- }
- public ChatHud(id)
- {
- if(get_pcvar_num(kz_chatorhud) == 0)
- {
- ColorChat(id, GREEN, "^x01 %L", id, "KZ_CHECKPOINT_OFF")
- return PLUGIN_HANDLED
- }
- if(chatorhud[id] == -1)
- ++chatorhud[id];
- ++chatorhud[id];
- if(chatorhud[id] == 3)
- chatorhud[id] = 0;
- else
- kz_chat(id, "%L", id, "KZ_CHATORHUD", chatorhud[id] == 1 ? "Chat" : "HUD")
- return PLUGIN_HANDLED
- }
- public ct(id) {
- if(get_pcvar_num(kz_block_ct)) {
- client_print(id, print_center, "This command is not available to you at this point");
- return PLUGIN_HANDLED
- }
- new CsTeams:team = cs_get_user_team(id)
- if (team == CS_TEAM_CT)
- {
- if(!(pev(id, pev_flags) & FL_ONGROUND2) && timer_started[id])
- return PLUGIN_HANDLED
- if (get_pcvar_num(kz_spec_saves) == 1)
- {
- pev(id, pev_origin, SpecLoc[id])
- if (timer_started[id])
- {
- if (IsPaused[id])
- {
- Pause(id)
- WasPaused[id]=true
- hidetime(id)
- }
- g_pausetime[id] = get_gametime() - timer_time[id]
- timer_time[id] = 0.0
- client_print(id, print_center, "Your timer has been paused");
- }
- }
- hidetime(id)
- //client_cmd(id, "show_keys 1")
- cs_set_user_team(id,CS_TEAM_SPECTATOR)
- set_pev(id, pev_solid, SOLID_NOT)
- set_pev(id, pev_movetype, MOVETYPE_FLY)
- set_pev(id, pev_effects, EF_NODRAW)
- set_pev(id, pev_deadflag, DEAD_DEAD)
- client_cmd(id, "cup_remove");
- }
- else
- {
- //emit_sound(id, CHAN_BODY, "items/tr_kevlar.wav", 0.8, ATTN_NORM, 0, PITCH_NORM);
- //client_cmd(id, "show_keys 0")
- cs_set_user_team(id,CS_TEAM_CT)
- set_pev(id, pev_effects, 0)
- set_pev(id, pev_movetype, MOVETYPE_WALK)
- set_pev(id, pev_deadflag, DEAD_NO)
- set_pev(id, pev_takedamage, DAMAGE_AIM)
- CmdRespawn(id)
- give_item(id,"weapon_knife")
- if(user_has_scout[id])
- give_item(id,"weapon_scout")
- if(get_user_flags(id) & ADMIN_LEVEL_C)
- {
- cs_set_user_bpammo(id, CSW_USP, 36)
- }
- if (get_pcvar_num(kz_spec_saves) == 1)
- {
- set_pev(id, pev_origin, SpecLoc[id])
- if (timer_started [id])
- timer_time[id] = get_gametime() - g_pausetime[id] + timer_time[id]
- if(WasPaused[id])
- {
- Pause(id)
- WasPaused[id]=false
- showtime2(id)
- }
- }
- }
- return PLUGIN_HANDLED
- }
- //=================== Teleport to Player ==============
- public kz_tele_menu(id)
- {
- if(!(get_user_flags(id) & ADMIN_LEVEL_C))
- {
- ColorChat(id, RED, "^x04[XJ] ^x03You have to be VIP to use this command!");
- kz_menu(id)
- return PLUGIN_HANDLED
- }
- new menu = menu_create("\rChoose a player:", "tele_menuhandler")
- new players[32], pnum
- new szName[32], szTempid[10]
- get_players(players, pnum)
- for(new i; i<pnum;i++)
- {
- tempid = players[i]
- if(is_user_alive(tempid) && id != tempid)
- {
- get_user_name(tempid, szName, 31)
- num_to_str(tempid, szTempid, 9)
- menu_additem(menu, szName, szTempid, 0)
- }
- if(!is_user_alive(id))
- ct(id)
- }
- menu_display(id, menu, 0)
- return PLUGIN_HANDLED
- }
- public tele_menuhandler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- new data[6], iName[64]
- new access, callback
- menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
- tempid = str_to_num(data)
- if(!get_pcvar_num(kz_cheats))
- {
- ColorChat(id, RED, "^4[XJ] ^3Cheats are currently disabled!")
- return PLUGIN_HANDLED;
- }
- if(timer_started[id] == true)
- {
- ColorChat(id, RED, "^x04[XJ]^x03 You cannot teleport during a run!");
- kz_tele_menu(id)
- return PLUGIN_HANDLED;
- }
- if(is_user_alive(id) && is_user_alive(tempid))
- {
- new name[32]
- get_user_name(id, name, 31)
- new name1[32]
- get_user_name(tempid, name1, 31)
- new origin[3]
- get_user_origin(tempid, origin)
- origin[2] = origin[2] + get_pcvar_num(kz_teleport_height)
- set_user_origin(id, origin)
- if(get_pcvar_num(kz_teleport_notification))
- {
- ColorChat(id, BLUE, "^x04[XJ]^x03 You have been teleported to^x04 %s.", name1)
- ColorChat(tempid, BLUE, "^x04[XJ]^x03 ^x04%s^x03 has been teleported to you.", name)
- }
- }
- menu_destroy(menu)
- kz_tele_menu(id)
- return PLUGIN_HANDLED
- }
- //=================== Weapons ==============
- public BlockPickup( iEntity, iPlayer )
- {
- if ( cs_get_user_team ( iPlayer ) == CS_TEAM_CT )
- return PLUGIN_HANDLED
- return PLUGIN_CONTINUE
- }
- public curweapon(id)
- {
- /*
- if(get_pcvar_num(kz_maxspeedmsg) == 1 && is_user_alive(id))
- {
- new clip, ammo, speed,
- switch(get_user_weapon(id,clip,ammo))
- {
- case CSW_SCOUT: speed = 260
- case CSW_C4, CSW_P228, CSW_MAC10, CSW_MP5NAVY, CSW_USP, CSW_TMP, CSW_FLASHBANG, CSW_DEAGLE, CSW_GLOCK18, CSW_SMOKEGRENADE, CSW_ELITE, CSW_FIVESEVEN, CSW_UMP45, CSW_HEGRENADE, CSW_KNIFE: speed = 250
- case CSW_P90: speed = 245
- case CSW_XM1014, CSW_AUG, CSW_GALIL, CSW_FAMAS: speed = 240
- case CSW_SG552: speed = 235
- case CSW_M3, CSW_M4A1: speed= 230
- case CSW_AK47: speed = 221
- case CSW_M249: speed = 220
- case CSW_G3SG1, CSW_SG550, CSW_AWP: speed = 210
- }
- kz_hud_message(id,"%L",id, "KZ_WEAPONS_SPEED",speed)
- }
- */
- static last_weapon[33];
- static weapon_active, weapon_num
- weapon_active = read_data(1)
- weapon_num = read_data(2)
- if((weapon_num != last_weapon[id]) && weapon_active && get_pcvar_num(kz_maxspeedmsg) == 1)
- {
- last_weapon[id] = weapon_num;
- static Float:maxspeed;
- pev(id, pev_maxspeed, maxspeed);
- if(maxspeed < 0.0)
- maxspeed = 250.0;
- kz_hud_message(id,"%L",id, "KZ_WEAPONS_SPEED",floatround(maxspeed, floatround_floor));
- }
- return PLUGIN_HANDLED
- }
- public weapons(id)
- {
- if(!get_user_flags(id) & ADMIN_BAN)
- return PLUGIN_HANDLED
- if(!is_user_alive(id))
- {
- client_print(id, print_center, "You must be alive to use this command");
- return PLUGIN_HANDLED
- }
- if(get_pcvar_num(kz_other_weapons) == 0)
- {
- client_print(id, print_center, "Different weapons are disabled");
- return PLUGIN_HANDLED
- }
- if(timer_started[id])
- {
- client_print(id, print_center, "You cannot get different weapons during a run");
- return PLUGIN_HANDLED
- }
- for(new i = 0; i < 7; i++)
- if(!user_has_weapon(id, other_weapons[i]))
- {
- new item;
- item = give_item(id, other_weapons_name[i]);
- cs_set_weapon_ammo(item, 0);
- }
- return PLUGIN_HANDLED
- }
- // ========================= Scout =======================
- public cmdScout(id)
- {
- if(!get_user_flags(id) & ADMIN_BAN)
- return PLUGIN_HANDLED
- if (timer_started[id])
- {
- client_cmd(id, "spk fvox/blip")
- showtime2(id)
- }
- user_has_scout[id] = true
- strip_user_weapons(id)
- give_item(id,"weapon_knife")
- if(!user_has_weapon(id, CSW_SCOUT))
- give_item(id,"weapon_scout")
- return PLUGIN_HANDLED
- }
- // ========================== Start location =================
- public Custom(id)
- {
- if(!(pev(id, pev_flags) & FL_ONGROUND2) && !IsOnLadder(id))
- {
- client_print(id, print_center, "You can't set a Start Position in air");
- return PLUGIN_HANDLED
- }
- entity_get_vector(id, EV_VEC_origin, CustomStartPos[id][0]);
- entity_get_vector(id, EV_VEC_v_angle, CustomStartPos[id][1]);
- client_print(id, print_center, "Custom Start position set");
- CustomStart[id] = true
- return PLUGIN_HANDLED
- }
- public goStart(id)
- {
- if(!is_user_alive(id))
- {
- client_print(id, print_center, "You must be alive to use this command");
- return PLUGIN_HANDLED
- }
- if(IsPaused[id])
- {
- client_print(id, print_center, "You cannot teleport while paused");
- return PLUGIN_HANDLED
- }
- if(get_pcvar_num(kz_save_autostart) == 1 && AutoStart [id])
- {
- set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0})
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_DUCKING)
- set_pev(id, pev_origin, SavedStart [id])
- //kz_chat(id, "%L", id, "KZ_START")
- }
- else if(CustomStart[id])
- {
- set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0})
- set_pev(id, pev_origin, DefaultStartPos)
- set_pev(id, pev_view_ofs, Float:{ 0.0, 0.0, 12.0 });
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_DUCKING);
- set_pev(id, pev_fuser2, 0.0);
- entity_set_vector(id, EV_VEC_origin, CustomStartPos[id][0]);
- entity_set_vector(id, EV_VEC_angles, CustomStartPos[id][1]);
- set_pev(id, pev_fixangle, 1);
- }
- else if(DefaultStart)
- {
- set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0})
- set_pev(id, pev_origin, DefaultStartPos)
- set_pev(id, pev_view_ofs, Float:{ 0.0, 0.0, 12.0 });
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_DUCKING);
- set_pev(id, pev_fuser2, 0.0);
- engfunc(EngFunc_SetSize, id,{-16.0, -16.0, -18.0 }, { 16.0, 16.0, 32.0 });
- entity_set_vector(id, EV_VEC_angles, DefaultStartPosAng);
- set_pev(id, pev_fixangle , 1);
- //kz_chat(id, "%L", id, "KZ_START")
- }
- else
- {
- client_print(id, print_center, "No start position is set for this map");
- CmdRespawn(id)
- }
- timer_started[id] = false
- hidetime(id)
- return PLUGIN_HANDLED
- }
- public setStart(id)
- {
- if(!(pev(id, pev_flags) & FL_ONGROUND2) && !IsOnLadder(id))
- {
- client_print(id, print_center, "You can't set a Start Position in air");
- return PLUGIN_HANDLED
- }
- if (!(get_user_flags(id) & ADMIN_BAN))
- {
- client_print(id, print_center, "You have no access to that command");
- ColorChat(id, GREEN, "^x04[XJ] ^x01Try /customstart or /cs to set your personal start position.");
- return PLUGIN_HANDLED
- }
- new Float:origin[3]
- entity_get_vector(id, EV_VEC_origin , origin);
- entity_get_vector(id, EV_VEC_v_angle, angles);
- kz_set_start(MapName, origin, angles)
- AutoStart[id] = false;
- client_print(id, print_center, "Start position set");
- return PLUGIN_HANDLED
- }
- // ========= Respawn CT if dies ========
- public Ham_CBasePlayer_Killed_Post(id)
- {
- if(get_pcvar_num(kz_respawn_ct) == 1)
- {
- if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- set_pev(id, pev_deadflag, DEAD_RESPAWNABLE)
- cs_set_user_deaths(id, 0)
- set_user_frags(id, 0)
- }
- }
- }
- public cmd_givetake(id,level,cid)
- {
- if(!cmd_access(id,level,cid,2))
- {
- return PLUGIN_HANDLED
- }
- new arg1[32]
- read_argv(1,arg1,31)
- new target = cmd_target(id,arg1,9)
- if(!target)
- {
- return PLUGIN_HANDLED
- }
- new name[32]
- get_user_name(target,name,31)
- if(get_user_flags(target) & ADMIN_IMMUNITY)
- {
- console_print(id,"[AMXX] Cannot give/take hook from admin %s.",name)
- return PLUGIN_HANDLED
- }
- new arg0[32]
- read_argv(0,arg0,31)
- if(containi(arg0,"give")!=-1)
- {
- if(containi(arg0,"hook")!=-1)
- {
- if(has_hook[target])
- {
- console_print(id,"[AMXX] %s already has hook",name)
- }
- else
- {
- has_hook[target]=true
- console_print(id,"[AMXX] %s has been given hook",name)
- client_print(target,print_chat,"[AMXX] An admin has given you hook. Use: bind key +hook")
- }
- }
- }
- if(containi(arg0,"take")!=-1)
- {
- if(containi(arg0,"hook")!=-1)
- {
- if(!has_hook[target])
- {
- console_print(id,"[AMXX] %s doesn't have hook",name)
- }
- else
- {
- has_hook[target]=false
- console_print(id,"[AMXX] %s's hook has been taken away.",name)
- client_print(target,print_chat,"[AMXX] An admin has taken your hook away.")
- }
- }
- }
- return PLUGIN_HANDLED
- }
- // ============================= Hook ================================================
- public hook_toggle(id)
- {
- if(get_user_flags(id) & ADMIN_BAN || has_hook[id])
- {
- if(hook[id]) hook_off(id)
- else hook_on(id)
- }
- return PLUGIN_HANDLED
- }
- public hook_on(id)
- {
- if(!get_pcvar_num(kz_cheats))
- {
- ColorChat(id, RED, "^4[XJ] ^3Cheats are currently disabled!")
- return PLUGIN_HANDLED;
- }
- if(get_user_flags(id) & ADMIN_BAN || has_hook[id])
- {
- if(hook[id])
- {
- return PLUGIN_HANDLED
- }
- set_user_gravity(id,0.0)
- set_task(0.1,"hook_prethink",id+10000,"",0,"b")
- hook[id]=true
- usedhook[id]=true
- hook_to[id][0]=999999
- hook_prethink(id+10000)
- detect_cheat(id,"Hook")
- antihookcheat[id] = get_gametime()
- }
- return PLUGIN_HANDLED
- }
- public hook_off(id)
- {
- if(is_user_alive(id)) set_user_gravity(id)
- if(hook[id] == true)
- timer_started[id] = false
- hook[id]=false
- return PLUGIN_HANDLED
- }
- public hook_prethink(id)
- {
- id -= 10000
- if(!is_user_alive(id))
- {
- hook[id]=false
- }
- if(!hook[id])
- {
- remove_task(id+10000)
- return PLUGIN_HANDLED
- }
- //Get Id's origin
- static origin1[3]
- get_user_origin(id,origin1)
- if(hook_to[id][0]==999999)
- {
- static origin2[3]
- get_user_origin(id,origin2,3)
- hook_to[id][0]=origin2[0]
- hook_to[id][1]=origin2[1]
- hook_to[id][2]=origin2[2]
- }
- //Calculate Velocity
- static Float:velocity[3]
- velocity[0] = (float(hook_to[id][0]) - float(origin1[0])) * 3.0
- velocity[1] = (float(hook_to[id][1]) - float(origin1[1])) * 3.0
- velocity[2] = (float(hook_to[id][2]) - float(origin1[2])) * 3.0
- static Float:y
- y = velocity[0]*velocity[0] + velocity[1]*velocity[1] + velocity[2]*velocity[2]
- static Float:x
- x = (get_pcvar_float(hook_speed_cvar) * 120.0) / floatsqroot(y)
- velocity[0] *= x
- velocity[1] *= x
- velocity[2] *= x
- set_velo(id,velocity)
- return PLUGIN_CONTINUE
- }
- public get_origin(ent,Float:origin[3])
- {
- #if defined engine
- return entity_get_vector(id,EV_VEC_origin,origin)
- #else
- return pev(ent,pev_origin,origin)
- #endif
- }
- public set_velo(id,Float:velocity[3])
- {
- #if defined engine
- return set_user_velocity(id,velocity)
- #else
- return set_pev(id,pev_velocity,velocity)
- #endif
- }
- public get_velo(id,Float:velocity[3])
- {
- #if defined engine
- return get_user_velocity(id,velocity)
- #else
- return pev(id,pev_velocity,velocity)
- #endif
- }
- public is_valid_ent2(ent)
- {
- #if defined engine
- return is_valid_ent(ent)
- #else
- return pev_valid(ent)
- #endif
- }
- public get_solidity(ent)
- {
- #if defined engine
- return entity_get_int(ent,EV_INT_solid)
- #else
- return pev(ent,pev_solid)
- #endif
- }
- stock set_rendering2(index, fx=kRenderFxNone, r=255, g=255, b=255, render=kRenderNormal, amount=16)
- {
- #if defined engine
- return set_rendering(index,fx,r,g,b,render,amount)
- #else
- set_pev(index, pev_renderfx, fx);
- new Float:RenderColor[3];
- RenderColor[0] = float(r);
- RenderColor[1] = float(g);
- RenderColor[2] = float(b);
- set_pev(index, pev_rendercolor, RenderColor);
- set_pev(index, pev_rendermode, render);
- set_pev(index, pev_renderamt, float(amount));
- return 1;
- #endif
- }
- //============================ VIP In ScoreBoard =================================================
- public MessageScoreAttrib(iMsgID, iDest, iReceiver)
- {
- if(get_pcvar_num(kz_vip))
- {
- new iPlayer = get_msg_arg_int(1)
- if(is_user_alive(iPlayer) && (get_user_flags(iPlayer) & KZ_LEVEL))
- {
- set_msg_arg_int(2, ARG_BYTE, SCOREATTRIB_VIP);
- }
- }
- }
- public detect_cheat(id,reason[])
- {
- if(timer_started[id] && get_pcvar_num(kz_cheatdetect) == 1)
- {
- hidetime(id)
- timer_started[id] = false
- client_cmd(id, "spk fvox/blip")
- if(IsPaused[id])
- {
- set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN)
- IsPaused[id] = false
- }
- if (get_pcvar_num(kz_show_timer) > 0)
- kz_showtime_roundtime(id, 0)
- client_print(id, print_center, "%s detected", reason)
- }
- }
- // =================================================================================================
- // Cmds
- // =================================================================================================
- public CheckPoint(id)
- {
- if(!get_pcvar_num(kz_cheats))
- {
- ColorChat(id, RED, "^4[XJ] ^3Cheats are currently disabled!")
- return PLUGIN_HANDLED;
- }
- if(! is_user_alive(id))
- {
- client_print(id, print_center, "You must be alive to use this command");
- return PLUGIN_HANDLED
- }
- if(get_pcvar_num(kz_checkpoints) == 0)
- {
- client_print(id, print_center, "Checkpoints are currently disabled");
- return PLUGIN_HANDLED
- }
- if(!(pev(id, pev_flags) & FL_ONGROUND2) && !IsOnLadder(id))
- {
- client_print(id, print_center, "You can't make a checkpoint in air");
- return PLUGIN_HANDLED
- }
- if(IsPaused[id])
- {
- client_print(id, print_center, "You can't make a checkpoint in pause");
- return PLUGIN_HANDLED
- }
- entity_get_vector(id, EV_VEC_origin, CPangles[id][0]);
- entity_get_vector(id, EV_VEC_v_angle, CPangles[id][1]);
- pev(id, pev_origin, Checkpoints[id][g_bCpAlternate[id] ? 1 : 0])
- g_bCpAlternate[id] = !g_bCpAlternate[id]
- checknumbers[id]++
- //kz_chat(id, "%L", id, "KZ_CHECKPOINT")
- return PLUGIN_HANDLED
- }
- public GoCheck(id)
- {
- if(!is_user_alive(id))
- {
- client_print(id, print_center, "You must be alive to use this command");
- return PLUGIN_HANDLED
- }
- if(checknumbers[id] == 0)
- {
- client_print(id, print_center, "You don't have enough checkpoints");
- return PLUGIN_HANDLED
- }
- if(timer_started[id] && gochecknumbers[id] == 0)
- {
- showtime2(id)
- client_cmd(id, "spk fvox/blip")
- }
- if(IsPaused[id])
- {
- client_print(id, print_center, "You cannot teleport while pause is on");
- return PLUGIN_HANDLED
- }
- if(get_pcvar_num(kz_cp_angles) == 1)
- {
- entity_set_vector(id, EV_VEC_angles, CPangles[id][1]);
- set_pev(id, pev_fixangle, 1);
- }
- set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0});
- set_pev(id, pev_view_ofs, Float:{ 0.0, 0.0, 12.0 });
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_DUCKING);
- set_pev(id, pev_fuser2, 0.0);
- set_pev(id, pev_origin, Checkpoints[ id ][ !g_bCpAlternate[id] ])
- gochecknumbers[id]++
- kz_chat(id, "%L", id, "KZ_GOCHECK", gochecknumbers[id])
- return PLUGIN_HANDLED
- }
- public Stuck(id)
- {
- if(!is_user_alive(id))
- {
- client_print(id, print_center, "You must be alive to use this command");
- return PLUGIN_HANDLED
- }
- if(checknumbers[id] < 2)
- {
- client_print(id, print_center, "You don't have enough checkpoints");
- return PLUGIN_HANDLED
- }
- set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0})
- set_pev(id, pev_view_ofs, Float:{ 0.0, 0.0, 12.0 })
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_DUCKING)
- set_pev(id, pev_fuser2, 0.0)
- engfunc(EngFunc_SetSize, id, {-16.0, -16.0, -18.0 }, { 16.0, 16.0, 32.0 })
- set_pev(id, pev_origin, Checkpoints[id][g_bCpAlternate[id]])
- g_bCpAlternate[id] = !g_bCpAlternate[id];
- gochecknumbers[id]++
- kz_chat(id, "%L", id, "KZ_GOCHECK", gochecknumbers[id])
- return PLUGIN_HANDLED;
- }
- // =================================================================================================
- public reset_checkpoints(id)
- {
- checknumbers[id] = 0
- gochecknumbers[id] = 0
- timer_started[id] = false
- timer_time[id] = 0.0
- if (user_has_weapon(id, CSW_SCOUT))
- {
- user_has_scout[id] = true
- }
- else
- {
- user_has_scout[id] = false
- }
- if(IsPaused[id])
- {
- set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN)
- IsPaused[id] = false
- }
- if (get_pcvar_num(kz_show_timer) > 0)
- kz_showtime_roundtime(id, 0)
- //hide timer icon
- hidetime(id)
- return PLUGIN_HANDLED
- }
- public noclip(id)
- {
- if(!get_pcvar_num(kz_cheats))
- {
- ColorChat(id, RED, "^4[XJ] ^3Cheats are currently disabled!")
- return PLUGIN_HANDLED;
- }
- if(! is_user_alive(id))
- {
- client_print(id, print_center, "You must be alive to use this command");
- return PLUGIN_HANDLED
- }
- new noclip = !get_user_noclip(id)
- set_user_noclip(id, noclip)
- if(IsPaused[id] && (get_pcvar_num(kz_noclip_pause) == 1))
- {
- if(noclip)
- {
- pev(id, pev_origin, NoclipPos[id])
- set_pev(id, pev_flags, pev(id, pev_flags) & ~FL_FROZEN)
- }
- else
- {
- set_pev(id, pev_origin, NoclipPos[id])
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN)
- }
- }
- else if(noclip)
- detect_cheat(id,"Noclip")
- return PLUGIN_HANDLED
- }
- public GodMode(id)
- {
- if(! is_user_alive(id))
- {
- client_print(id, print_center, "You must be alive to use this command");
- return PLUGIN_HANDLED
- }
- new godmode = !get_user_godmode(id)
- set_user_godmode(id, godmode)
- if(godmode)
- detect_cheat(id,"God Mode")
- kz_chat(id, "%L", id, "KZ_GODMODE" , godmode ? "ON" : "OFF")
- return PLUGIN_HANDLED
- }
- // =================================================================================================
- stock kz_set_start(const map[], Float:origin[3], Float:ViewAngles[3])
- {
- new realfile[128], tempfile[128], formatorigin[50]
- formatex(realfile, 127, "%s/%s", Kzdir, KZ_STARTFILE)
- formatex(tempfile, 127, "%s/%s", Kzdir, KZ_STARTFILE_TEMP)
- formatex(formatorigin, 99, "%f %f %f %f %f %f", origin[0], origin[1], origin[2], ViewAngles[0], ViewAngles[1], ViewAngles[2])
- DefaultStartPosAng = ViewAngles
- DefaultStartPos = origin
- DefaultStart = true
- new file = fopen(tempfile, "wt")
- new vault = fopen(realfile, "rt")
- new data[128], key[64]
- new bool:replaced = false
- while(!feof(vault))
- {
- fgets(vault, data, 127)
- parse(data, key, 63)
- if(equal(key, map) && !replaced)
- {
- fprintf(file, "%s %s^n", map, formatorigin)
- replaced = true
- }
- else
- {
- fputs(file, data)
- }
- }
- if(!replaced)
- {
- fprintf(file, "%s %s^n", map, formatorigin)
- }
- fclose(file)
- fclose(vault)
- delete_file(realfile)
- while(!rename_file(tempfile, realfile, 1)) {}
- }
- stock kz_showtime_roundtime(id, time)
- {
- if(is_user_connected(id))
- {
- message_begin(MSG, get_user_msgid("RoundTime"), _, id);
- write_short(time + 1);
- message_end();
- }
- }
- stock kz_chat(id, const message[], {Float,Sql,Result,_}:...)
- {
- new cvar = get_pcvar_num(kz_chatorhud)
- if(cvar == 0)
- return PLUGIN_HANDLED
- new msg[180], final[192]
- if (cvar == 1 && chatorhud[id] == -1 || chatorhud[id] == 1)
- {
- vformat(msg, 179, message, 3)
- formatex(final, 191, "^x01 %s", msg)
- kz_remplace_colors(final, 191)
- ColorChat(id, GREEN, "%s", final)
- }
- else if(cvar == 2 && chatorhud[id] == -1 || chatorhud[id] == 2)
- {
- vformat(msg, 179, message, 3)
- replace_all(msg, 191, "^x01", "")
- replace_all(msg, 191, "^x03", "")
- replace_all(msg, 191, "^x04", "")
- replace_all(msg, 191, ".", "")
- kz_hud_message(id, "%s", msg)
- }
- return 1
- }
- stock kz_print_config(id, const msg[])
- {
- message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, id);
- write_byte(id);
- write_string(msg);
- message_end();
- }
- stock kz_remplace_colors(message[], len)
- {
- replace_all(message, len, "!g", "^x04")
- replace_all(message, len, "!t", "^x03")
- replace_all(message, len, "!y", "^x01")
- }
- stock kz_hud_message(id, const message[], {Float,Sql,Result,_}:...)
- {
- static msg[192], colors[12], r[4], g[4], b[4];
- vformat(msg, 191, message, 3);
- get_pcvar_string(kz_hud_color, colors, 11)
- parse(colors, r, 3, g, 3, b, 4)
- set_hudmessage(str_to_num(r), str_to_num(g), str_to_num(b), -1.0, 0.90, 0, 0.0, 2.0, 0.0, 1.0, -1);
- ShowSyncHudMsg(id, hud_message, msg);
- }
- stock kz_register_saycmd(const saycommand[], const function[], flags)
- {
- new temp[64]
- formatex(temp, 63, "say /%s", saycommand)
- register_clcmd(temp, function, flags)
- formatex(temp, 63, "say .%s", saycommand)
- register_clcmd(temp, function, flags)
- formatex(temp, 63, "say_team /%s", saycommand)
- register_clcmd(temp, function, flags)
- formatex(temp, 63, "say_team .%s", saycommand)
- register_clcmd(temp, function, flags)
- }
- #if defined USE_SQL
- stock GetNewRank(id, type)
- {
- new createinto[1001]
- new cData[2]
- cData[0] = id
- cData[1] = type
- formatex(createinto, 1000, "SELECT authid FROM `%s` WHERE mapname='%s' ORDER BY time LIMIT 15", type == PRO_TOP ? "kz_pro15" : "kz_nub15", MapName)
- SQL_ThreadQuery(g_SqlTuple, "GetNewRank_QueryHandler", createinto, cData, 2)
- }
- stock kz_update_plrname(id)
- {
- new createinto[1001], authid[32], name[32]
- get_user_authid(id, authid, 31)
- get_user_name(id, name, 31)
- replace_all(name, 31, "\", "")
- replace_all(name, 31, "`", "")
- replace_all(name, 31, "'", "")
- if(equal(authid, "VALVE_ID_LAN") || equal(authid, "STEAM_ID_LAN"))
- return 0;
- else
- {
- formatex(createinto, 1000, "UPDATE `kz_pro15` SET name='%s' WHERE authid='%s'", name, authid)
- SQL_ThreadQuery(g_SqlTuple, "QueryHandle", createinto)
- formatex(createinto, 1000, "UPDATE `kz_nub15` SET name='%s' WHERE authid='%s'", name, authid)
- SQL_ThreadQuery(g_SqlTuple, "QueryHandle", createinto)
- }
- return 1
- }
- #endif
- public FwdSpawnWeaponbox(iEntity)
- {
- if(get_pcvar_num(kz_remove_drops) == 1)
- {
- set_pev(iEntity, pev_flags, FL_KILLME)
- dllfunc(DLLFunc_Think, iEntity)
- }
- return HAM_IGNORED
- }
- public FwdHamDoorSpawn(iEntity)
- {
- static const szNull[ ] = "common/null.wav";
- new Float:flDamage;
- pev(iEntity, pev_dmg, flDamage);
- if(flDamage < -999.0) {
- set_pev(iEntity, pev_noise1, szNull);
- set_pev(iEntity, pev_noise2, szNull);
- set_pev(iEntity, pev_noise3, szNull);
- if(!HealsOnMap)
- HealsOnMap = true
- }
- }
- public TaskSpectator(id)
- {
- cs_set_user_team(id, CS_TEAM_SPECTATOR)
- }
- public model_menu(id) {
- new title[64];
- formatex(title, 63, "\r[PLAYER]\d Menu")
- new menu = menu_create(title, "model_menuhandler")
- menu_additem(menu, "Terrorists", "1")
- menu_additem(menu, "Counter-Terrorists", "2")
- menu_additem(menu, "Custom \y[VIP]", "3")
- menu_display(id, menu, 0)
- return PLUGIN_HANDLED
- }
- public model_menuhandler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- switch(item)
- {
- case 0: terror_menu(id)
- case 1: ct_menu(id)
- case 2: custom_menu(id)
- }
- return PLUGIN_CONTINUE
- }
- cmdURBAN(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "urban")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen URBAN model.", name)
- }
- }
- cmdGSG9(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "gsg9")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen GSG9 model.", name)
- }
- }
- cmdSAS(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "sas")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen SAS model.", name)
- }
- }
- cmdGIGN(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "gign")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen GIGN model.", name)
- }
- }
- cmdTERROR(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "terror")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen TERROR model.", name)
- }
- }
- cmdLEET(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "leet")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen LEET model.", name)
- }
- }
- cmdARCTIC(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "arctic")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen ARCTIC model.", name)
- }
- }
- cmdGUERILLA(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "guerilla")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen GUERILLA model.", name)
- }
- }
- cmdVIP(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "vip")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen VIP model.", name)
- }
- }
- cmdCLONE(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "clone")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen CLONE model.", name)
- }
- }
- cmdDROID(id)
- {
- new name[32]
- get_user_name(id, name, 31)
- if(cs_get_user_team(id) == CS_TEAM_T)
- {
- ColorChat(id, RED, "^x04[XJ] ^x03This model is only available for Counter-Terrorists.")
- }
- else if(cs_get_user_team(id) == CS_TEAM_CT)
- {
- fm_set_user_model(id, "droid")
- ColorChat(0, BLUE, "^x04[XJ] ^x03%s has chosen DROID model.", name)
- }
- }
- public BlockCT(id) {
- if(!(get_user_flags(id) & ADMIN_BAN))
- {
- client_print(id, print_center, "You have no access to that command");
- return PLUGIN_HANDLED
- }
- if(get_pcvar_num(kz_block_ct) == 1)
- {
- set_pcvar_num(kz_block_ct, 0);
- ColorChat(0, RED, "^x04[XJ]^x03 Block CT has been disabled!");
- }
- else
- {
- cmdForceSpec();
- set_pcvar_num(kz_block_ct, 1);
- ColorChat(0, BLUE, "^x04[XJ]^x03 Block CT has been enabled!");
- }
- return PLUGIN_HANDLED;
- }
- public cmdForceSpec()
- {
- new aPlayers[32], iPlayersNum;
- get_players(aPlayers, iPlayersNum, "ae", "CT");
- for(new i = 0; i < iPlayersNum; i++)
- {
- if(!is_user_admin(aPlayers[i]))
- {
- ct(aPlayers[i]);
- }
- }
- }
- public kz_reset_data(id)
- {
- kz_roundtime(id, 0)
- return 1
- }
- public FwdHamPlayerSpawn(id)
- {
- if(firstspawn[id] && get_pcvar_num(kz_block_ct) == 0)
- {
- //emit_sound(id, CHAN_BODY, "items/tr_kevlar.wav", 0.8, ATTN_NORM, 0, PITCH_NORM);
- }
- if(!is_user_alive(id))
- return;
- if(firstspawn[id])
- {
- if(get_pcvar_num(kz_block_ct))
- {
- set_pev(id, pev_solid, SOLID_NOT)
- set_pev(id, pev_movetype, MOVETYPE_FLY)
- set_pev(id, pev_effects, EF_NODRAW)
- set_pev(id, pev_deadflag, DEAD_DEAD)
- cs_set_user_team(id, CS_TEAM_SPECTATOR)
- }
- else
- {
- model_menu(id)
- }
- if(!(get_user_flags(id) & ADMIN_LEVEL_C))
- strip_user_weapons(id)
- if(get_pcvar_num(kz_checkpoints) == 0)
- ColorChat(id, GREEN, "^x01 %L", id, "KZ_CHECKPOINT_OFF")
- if(Verif(id,1) && get_pcvar_num(kz_save_pos) == 1)
- savepos_menu(id)
- else if(get_pcvar_num(kz_spawn_mainmenu) == 1)
- kz_menu(id)
- cs_set_user_nvg( id, 1 );
- }
- firstspawn[id] = false
- //client_cmd(id, "say /reset")
- kz_reset_data(id)
- client_print(id, print_center, "")
- if(!user_has_weapon(id,CSW_KNIFE))
- give_item(id,"weapon_knife")
- if(get_user_flags(id) & ADMIN_BAN && !user_has_weapon(id,CSW_USP))
- give_item(id,"weapon_usp")
- if(HealsOnMap)
- set_user_health(id, 50175)
- if(IsPaused[id])
- {
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN)
- set_pev(id, pev_origin, PauseOrigin[id])
- }
- if(get_pcvar_num(kz_use_radio) == 0)
- {
- #define XO_PLAYER 5
- #define m_iRadiosLeft 192
- set_pdata_int(id, m_iRadiosLeft, 0, XO_PLAYER)
- }
- }
- public GroundWeapon_Touch(iWeapon, id)
- {
- if(is_user_alive(id) && timer_started[id] && get_pcvar_num(kz_pick_weapons) == 0)
- return HAM_SUPERCEDE
- return HAM_IGNORED
- }
- // ==================================Godmode=================================================
- public hamTakeDamage( )
- {
- if(get_pcvar_num(kz_godmode))
- return HAM_SUPERCEDE;
- return HAM_IGNORED
- }
- // ==================================Save positions=================================================
- public SavePos(id)
- {
- if(is_user_alive(id))
- return PLUGIN_HANDLED
- new authid[33];
- get_user_authid(id, authid, 32)
- if(get_pcvar_num(kz_save_pos) == 0)
- {
- client_print(id, print_center, "Save Pos function is currently disabled");
- return PLUGIN_HANDLED
- }
- if(equal(authid, "VALVE_ID_LAN") || equal(authid, "STEAM_ID_LAN"))
- {
- client_print(id, print_center, "You require Steam to use this function");
- return PLUGIN_HANDLED
- }
- if(!(pev(id, pev_flags) & FL_ONGROUND2 ))
- {
- client_print(id, print_center, "You must be on ground to use this command");
- return PLUGIN_HANDLED
- }
- if(!timer_started[id])
- {
- client_print(id, print_center, "Timer is currently disbaled");
- return PLUGIN_HANDLED
- }
- if(Verif(id,1))
- {
- ColorChat(id, GREEN, "^x01 %L", id, "KZ_SAVEPOS_ALREADY")
- savepos_menu(id)
- return PLUGIN_HANDLED
- }
- if(get_user_noclip(id))
- {
- ColorChat(id, GREEN, "^x01 %L", id, "KZ_SAVEPOS_NOCLIP")
- return PLUGIN_HANDLED
- }
- new Float:origin[3], scout
- pev(id, pev_origin, origin)
- new Float:Time,check,gocheck
- if(IsPaused[id])
- {
- Time = g_pausetime[id]
- Pause(id)
- }
- else
- Time=get_gametime() - timer_time[id]
- check=checknumbers[id]
- gocheck=gochecknumbers[id]
- ColorChat(id, GREEN, "^x01 %L", id, "KZ_SAVEPOS")
- if (user_has_scout[id])
- scout=1
- else
- scout=0
- kz_savepos(id, Time, check, gocheck, origin, scout)
- //reset_checkpoints(id)
- return PLUGIN_HANDLED
- }
- public GoPos(id)
- {
- set_user_godmode(id, 0)
- set_user_noclip(id, 0)
- if(Verif(id,0))
- {
- set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0})
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_DUCKING)
- set_pev(id, pev_origin, SavedOrigins[id])
- }
- //checknumbers[id]=SavedChecks[id]
- //gochecknumbers[id]=SavedGoChecks[id]+((get_pcvar_num(kz_save_pos_gochecks)>0) ? 1 : 0)
- strip_user_weapons(id)
- give_item(id,"weapon_knife")
- if(SavedScout[id])
- {
- give_item(id, "weapon_scout")
- user_has_scout[id] = true
- }
- timer_time[id]=get_gametime()-SavedTime[id]
- timer_started[id]=true
- Pause(id)
- }
- public Verif(id, action)
- {
- new realfile[128], tempfile[128], authid[32], map[64]
- new bool:exist = false
- get_mapname(map, 63)
- get_user_authid(id, authid, 31)
- formatex(realfile, 127, "%s/%s.ini", SavePosDir, map)
- formatex(tempfile, 127, "%s/temp.ini", SavePosDir)
- if(!file_exists(realfile))
- return 0
- new file = fopen(tempfile, "wt")
- new vault = fopen(realfile, "rt")
- new data[150], sid[32], time[25], checks[5], gochecks[5], x[25], y[25], z[25], scout[5]
- while(!feof(vault))
- {
- fgets(vault, data, 149)
- parse(data, sid, 31, time, 24, checks, 4, gochecks, 4, x, 24, y, 24, z, 24, scout, 4)
- if(equal(sid, authid) && !exist) // ma aflu in fisier?
- {
- if(action == 1)
- fputs(file, data)
- exist= true
- SavedChecks[id] = str_to_num(checks)
- SavedGoChecks[id] = str_to_num(gochecks)
- SavedTime[id] = str_to_float(time)
- SavedOrigins[id][0]=str_to_num(x)
- SavedOrigins[id][1]=str_to_num(y)
- SavedOrigins[id][2]=str_to_num(z)
- SavedScout[id] = str_to_num(scout)
- }
- else
- {
- fputs(file, data)
- }
- }
- fclose(file)
- fclose(vault)
- delete_file(realfile)
- if(file_size(tempfile) == 0)
- delete_file(tempfile)
- else
- while(!rename_file(tempfile, realfile, 1)) {}
- if(!exist)
- return 0
- return 1
- }
- public kz_savepos (id, Float:time, checkpoints, gochecks, Float:origin[3], scout)
- {
- new realfile[128], formatorigin[128], map[64], authid[32]
- get_mapname(map, 63)
- get_user_authid(id, authid, 31)
- formatex(realfile, 127, "%s/%s.ini", SavePosDir, map)
- formatex(formatorigin, 127, "%s %f %d %d %d %d %d %d", authid, time, checkpoints, gochecks, origin[0], origin[1], origin[2], scout)
- new vault = fopen(realfile, "rt+")
- write_file(realfile, formatorigin) // La sfarsit adaug datele mele
- fclose(vault)
- }
- // =================================================================================================
- // Events / Forwards
- // =================================================================================================
- //=================================================================================================
- public client_disconnect(id)
- {
- checknumbers[id] = 0
- gochecknumbers[id] = 0
- antihookcheat[id] = 0.0
- chatorhud[id] = -1
- timer_started[id] = false
- ShowTime[id] = get_pcvar_num(kz_show_timer)
- firstspawn[id] = true
- IsPaused[id] = false
- WasPaused[id] = false
- user_has_scout[id] = false
- CustomStart[id] = false
- }
- public client_putinserver(id)
- {
- g_afktime[id] = 0
- checknumbers[id] = 0
- gochecknumbers[id] = 0
- antihookcheat[id] = 0.0
- chatorhud[id] = -1
- timer_started[id] = false
- has_hook[id]= false
- ShowTime[id] = get_pcvar_num(kz_show_timer)
- firstspawn[id] = true
- IsPaused[id] = false
- WasPaused[id] = false
- user_has_scout[id] = false
- CustomStart[id] = false
- }
- // =================================================================================================
- // Menu
- // =================================================================================================
- //new const FILE[] = "help.txt"
- public kz_menu(id)
- {
- new mapname[32];
- get_mapname(mapname,31);
- new title[64];
- formatex(title, 63, "\r[KREEDZ] \dMain Menu^n\dCurrent Map: \y%s\d", mapname)
- new menu = menu_create(title, "kz_menuhandler")
- new msgcheck[64], msggocheck[64], msgpause[64]
- formatex(msgcheck, 63, "Checkpoint")
- formatex(msggocheck, 63, "Gocheck")
- formatex(msgpause, 63, "Pause - %s^n", IsPaused[id] ? "\yON" : "\rOFF")
- menu_additem(menu, msgcheck, "1")
- menu_additem(menu, msggocheck, "2")
- menu_additem(menu, "Start", "3")
- menu_additem(menu, msgpause, "4")
- menu_additem(menu, "Show Keys", "5")
- menu_additem(menu, "Spectator/CT", "6")
- menu_additem(menu, "KZ-Tops", "7")
- menu_additem(menu, "LJ-Tops", "8")
- menu_additem(menu, "Teleport Menu", "9")
- menu_additem(menu, "Timing Menu", "10")
- menu_additem(menu, "FPS Viewer", "11")
- menu_setprop( menu, MPROP_PERPAGE, 7 );
- menu_display( id, menu, 0 );
- return PLUGIN_HANDLED
- }
- public kz_menuhandler(id, menu, item)
- {
- if(item == MENU_EXIT) {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- switch(item) {
- case 0:
- {
- CheckPoint(id)
- kz_menu(id)
- }
- case 1:
- {
- GoCheck(id)
- kz_menu(id)
- }
- case 2:
- {
- goStart(id)
- kz_menu(id)
- }
- case 3:
- {
- Pause(id)
- kz_menu(id)
- }
- case 4:
- {
- cmdGetKeys(id)
- kz_menu(id)
- }
- case 5:
- {
- ct(id)
- kz_menu(id)
- }
- case 6: top15menu(id)
- case 7: ljtop(id)
- case 8: kz_tele_menu(id)
- case 9: timing(id)
- case 10: fpsview(id)
- }
- return PLUGIN_HANDLED
- }
- public fpsview(id)
- {
- client_cmd(id, "say /fps")
- }
- public ljtop(id)
- {
- client_cmd(id, "say /ljtop")
- }
- public timing(id)
- {
- client_cmd(id, "say /timing")
- }
- public cmdGetKeys(id)
- {
- if (KeysOn[id])
- {
- client_cmd(id, "show_keys 0")
- KeysOn[id] = false
- return PLUGIN_HANDLED
- }
- else
- {
- client_cmd(id, "show_keys 1")
- KeysOn[id] = true
- return PLUGIN_HANDLED
- }
- return PLUGIN_HANDLED;
- }
- public ct_menu(id)
- {
- new title[64];
- formatex(title, 63, "\r[PLAYER]\d Menu")
- new menu = menu_create(title, "ct_menuhandler")
- menu_additem(menu, "URBAN", "1")
- menu_additem(menu, "GSG9", "2")
- menu_additem(menu, "SAS", "3")
- menu_additem(menu, "GIGN^n", "4")
- menu_setprop(menu, MPROP_PERPAGE, 7)
- menu_display(id, menu, 0)
- return PLUGIN_HANDLED
- }
- public ct_menuhandler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- model_menu(id)
- return PLUGIN_HANDLED
- }
- switch(item)
- {
- case 0: cmdURBAN(id)
- case 1: cmdGSG9(id)
- case 2: cmdSAS(id)
- case 3: cmdGIGN(id)
- }
- return PLUGIN_HANDLED
- }
- public terror_menu(id)
- {
- new title[64];
- formatex(title, 63, "\r[PLAYER]\d Menu")
- new menu = menu_create(title, "terror_menuhandler")
- menu_additem(menu, "TERROR", "1")
- menu_additem(menu, "LEET", "2")
- menu_additem(menu, "ARCTIC", "3")
- menu_additem(menu, "GUERILLA", "4")
- menu_setprop(menu, MPROP_PERPAGE, 7)
- menu_display(id, menu, 0)
- return PLUGIN_HANDLED
- }
- public terror_menuhandler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- model_menu(id)
- return PLUGIN_HANDLED
- }
- switch(item)
- {
- case 0: cmdTERROR(id)
- case 1: cmdLEET(id)
- case 2: cmdARCTIC(id)
- case 3: cmdGUERILLA(id)
- }
- return PLUGIN_HANDLED
- }
- public custom_menu(id)
- {
- if(!(get_user_flags(id) & ADMIN_LEVEL_C))
- {
- ColorChat(id, RED, "^x04[XJ] ^x03You have to be VIP to choose a custom model!");
- model_menu(id)
- return PLUGIN_HANDLED
- }
- new title[64];
- formatex(title, 63, "\r[PLAYER]\d Menu")
- new menu = menu_create(title, "custom_menuhandler")
- menu_additem(menu, "VIP", "1")
- menu_additem(menu, "CLONE", "2")
- menu_additem(menu, "DROID", "3")
- menu_setprop(menu, MPROP_PERPAGE, 7)
- menu_display(id, menu, 0)
- return PLUGIN_HANDLED
- }
- public custom_menuhandler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- model_menu(id)
- return PLUGIN_HANDLED
- }
- switch(item)
- {
- case 0: cmdVIP(id)
- case 1: cmdCLONE(id)
- case 2: cmdDROID(id)
- }
- return PLUGIN_HANDLED
- }
- public ShowTimer_Menu(id)
- {
- if (get_pcvar_num(kz_show_timer) == 0)
- {
- kz_chat(id, "%L", id, "KZ_TIMER_DISABLED")
- return PLUGIN_HANDLED
- }
- else
- {
- new menu = menu_create("\yTimer Menu\w", "TimerHandler")
- new hudtimer[64], notimer[64];
- formatex(hudtimer, 63, "HUD Timer %s", ShowTime[id] == 1 ? "\y x" : "")
- formatex(notimer, 63, "No Timer %s^n", ShowTime[id] == 0 ? "\y x" : "")
- menu_additem(menu, hudtimer, "1")
- menu_additem(menu, notimer, "2")
- menu_additem(menu, "Main Menu", "3")
- menu_display(id, menu, 0)
- return PLUGIN_HANDLED
- }
- return PLUGIN_HANDLED
- }
- public TimerHandler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- switch(item)
- {
- case 0:
- {
- ShowTime[id]= 1
- ShowTimer_Menu(id)
- if (timer_started[id])
- kz_showtime_roundtime(id, 0)
- }
- case 1:
- {
- ShowTime[id]= 0
- ShowTimer_Menu(id)
- if (timer_started[id])
- kz_showtime_roundtime(id, 0)
- }
- case 2:
- {
- kz_menu(id)
- }
- }
- return PLUGIN_HANDLED
- }
- public savepos_menu(id)
- {
- new menu = menu_create("SavePos Menu", "SavePosHandler")
- menu_additem(menu, "Reload previous run", "1")
- menu_additem(menu, "Start a new run", "2")
- menu_display(id, menu, 0)
- return PLUGIN_HANDLED
- }
- public SavePosHandler(id, menu, item)
- {
- switch(item)
- {
- case 0:
- {
- GoPos(id)
- }
- case 1:
- {
- Verif(id,0)
- }
- }
- return PLUGIN_HANDLED
- }
- public top15menu(id)
- {
- new menu = menu_create("\yTop15 \w", "top15handler")
- menu_additem(menu, "\wPro/Nub 15", "1", 0)
- menu_additem(menu, "\wSearch Function^n", "2", 0)
- #if defined USE_SQL
- menu_additem(menu, "Pro Records","3")
- menu_additem(menu, "Last Pro Entries", "4")
- menu_additem(menu, "Maps Statistic^n","5")
- menu_additem(menu, "Main Menu", "6")
- #else
- menu_additem(menu, "\wMain Menu", "3", 0)
- #endif
- menu_display(id, menu, 0);
- return PLUGIN_HANDLED;
- }
- public top15handler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- #if defined USE_SQL
- switch(item)
- {
- case 0:
- {
- ProTop_show(id)
- top15menu(id)
- }
- case 1:
- {
- NoobTop_show(id)
- top15menu(id)
- }
- case 2:
- {
- kz_showhtml_motd(id, PRO_RECORDS, "")
- top15menu(id)
- }
- case 3:
- {
- kz_showhtml_motd(id, LAST_PRO10, "")
- top15menu(id)
- }
- case 4:
- {
- kz_showhtml_motd(id, MAPS_STATISTIC, "")
- top15menu(id)
- }
- case 5:
- {
- kz_menu(id)
- }
- }
- #else
- switch(item)
- {
- case 0:
- {
- ProTop_show(id)
- top15menu(id)
- }
- case 1:
- {
- NoobTop_show(id)
- top15menu(id)
- }
- case 2:
- {
- kz_menu(id)
- }
- }
- #endif
- return PLUGIN_HANDLED;
- }
- // =================================================================================================
- //
- // Timersystem
- // =================================================================================================
- public fwdUse(ent, id)
- {
- if(!ent || id > 32)
- {
- return HAM_IGNORED;
- }
- if(!is_user_alive(id) || is_user_bot(id))
- {
- return HAM_IGNORED;
- }
- new name[32]
- get_user_name(id, name, 31)
- new szTarget[ 32 ];
- pev(ent, pev_target, szTarget, 31);
- if(TrieKeyExists(g_tStarts, szTarget))
- {
- if (get_gametime() - antihookcheat[id] < 3.0)
- {
- client_print(id, print_center, "Wait 3 seconds after using Hook")
- return PLUGIN_HANDLED
- }
- if(Verif(id,1))
- {
- ColorChat(id, GREEN, "^x01 %L", id, "KZ_SAVEPOS_SAVED")
- savepos_menu(id)
- return HAM_IGNORED
- }
- new entclassname[33];
- pev(pev(id, pev_groundentity), pev_classname, entclassname, 32);
- if(equal(entclassname, "func_door"))
- {
- return PLUGIN_HANDLED
- }
- if (reset_checkpoints(id) && !timer_started[id] )
- {
- start_climb(id)
- if(IsOnGround(id))
- {
- usedhook[id] = false
- }
- for(new i = 0; i < 8; i++)
- if(get_user_health(id) < 100)
- set_user_health(id, 100)
- pev(id, pev_origin, SavedStart[id])
- if(get_pcvar_num(kz_save_autostart) == 1)
- AutoStart[id] = true;
- if(!DefaultStart)
- {
- entity_get_vector(id, EV_VEC_v_angle, angles);
- kz_set_start(MapName, SavedStart[id], angles);
- client_print(id, print_center, "Start position set");
- }
- }
- }
- if(TrieKeyExists(g_tStops, szTarget))
- {
- if(timer_started[id])
- {
- if(get_user_noclip(id))
- return PLUGIN_HANDLED
- if(hook[id] == false)
- finish_climb(id)
- has_hook[id] = true
- }
- else
- client_print(id, print_center, "Timer is not started")
- }
- return HAM_IGNORED
- }
- public start_climb(id)
- {
- if(usedhook[id])
- return PLUGIN_HANDLED
- if(hook[id] == true)
- return PLUGIN_HANDLED
- //kz_chat(id, "%L", id, "KZ_START_CLIMB")
- if(get_user_noclip(id))
- {
- client_cmd(id, "say /start")
- }
- if (get_pcvar_num(kz_reload_weapons) == 1)
- {
- strip_user_weapons(id)
- give_item(id,"weapon_knife")
- }
- if (ShowTime[id] == 2)
- kz_showtime_roundtime(id, 0)
- set_pev(id, pev_gravity, 1.0);
- set_pev(id, pev_movetype, MOVETYPE_WALK)
- set_user_godmode(id, 0)
- reset_checkpoints(id)
- IsPaused[id] = false
- timer_started[id] = true
- timer_time[id] = get_gametime()
- //show timer icon
- showtime(id)
- if (user_has_weapon(id, CSW_SCOUT))
- {
- client_cmd(id, "spk fvox/blip")
- }
- return PLUGIN_CONTINUE
- }
- public finish_climb(id)
- {
- if (!is_user_alive(id) || is_user_bot(id))
- {
- timer_started[id] = false
- return;
- }
- if ((get_pcvar_num(kz_top15_authid) > 1) || (get_pcvar_num(kz_top15_authid) < 0))
- {
- ColorChat(id, GREEN, "^x01 %L.", id, "KZ_TOP15_DISABLED")
- return;
- }
- #if defined USE_SQL
- new Float: time, wpn
- time = get_gametime() - timer_time[id]
- show_finish_message(id, time)
- timer_started[id] = false
- if (get_pcvar_num(kz_show_timer) > 0)
- kz_showtime_roundtime(id, 0)
- new checkpoints=checknumbers[id]
- new gocheck=gochecknumbers[id]
- if(user_has_weapon(id, CSW_SCOUT))
- wpn=CSW_SCOUT
- else
- wpn=get_user_weapon(id)
- new steam[32], name[32]
- get_user_name(id, name, 31)
- get_user_authid(id, steam, 31)
- new createinto[1001]
- new cData[192]
- cData[0] = id
- formatex(cData[2], charsmax(cData)-2, "^"%f^" ^"%d^" ^"%d^" ^"%d^"", time, wpn, checkpoints ,gocheck)
- if(equal(steam, "VALVE_ID_LAN") || equal(steam, "STEAM_ID_LAN"))
- {
- if(gochecknumbers[id] == 0 && !user_has_weapon(id, CSW_SCOUT))
- {
- cData[1] = PRO_TOP
- formatex(createinto, sizeof createinto - 1, "SELECT time FROM `kz_pro15` WHERE mapname='%s' AND name='%s'", MapName, name)
- SQL_ThreadQuery(g_SqlTuple, "Set_QueryHandler", createinto, cData, strlen(cData[2])+1)
- }
- else if(gochecknumbers[id] > 0 || user_has_weapon(id, CSW_SCOUT))
- {
- cData[1] = NUB_TOP
- formatex(createinto, sizeof createinto - 1, "SELECT time FROM `kz_nub15` WHERE mapname='%s' AND name='%s'", MapName, name)
- SQL_ThreadQuery(g_SqlTuple, "Set_QueryHandler", createinto, cData, strlen(cData[2])+1)
- }
- } else
- {
- if(gochecknumbers[id] == 0 && !user_has_weapon(id, CSW_SCOUT))
- {
- cData[1] = PRO_TOP
- formatex(createinto, sizeof createinto - 1, "SELECT time FROM `kz_pro15` WHERE mapname='%s' AND authid='%s'", MapName, steam)
- SQL_ThreadQuery(g_SqlTuple, "Set_QueryHandler", createinto, cData, strlen(cData[2])+1)
- }
- else if(gochecknumbers[id] > 0 || user_has_weapon(id, CSW_SCOUT))
- {
- cData[1] = NUB_TOP
- formatex(createinto, sizeof createinto - 1, "SELECT time FROM `kz_nub15` WHERE mapname='%s' AND authid='%s'", MapName, steam)
- SQL_ThreadQuery(g_SqlTuple, "Set_QueryHandler", createinto, cData, strlen(cData[2])+1)
- }
- }
- #else
- new Float: time, authid[32]
- time = get_gametime() - timer_time[id]
- get_user_authid(id, authid, 31)
- show_finish_message(id, time)
- timer_started[id] = false
- if (get_pcvar_num(kz_show_timer) > 0)
- kz_showtime_roundtime(id, 0)
- if (gochecknumbers[id] == 0 && !user_has_scout[id])
- ProTop_update(id, time)
- if (gochecknumbers[id] > 0 || user_has_scout[id])
- NoobTop_update(id, time, checknumbers[id], gochecknumbers[id])
- #endif
- user_has_scout[id] = false
- //hide timer icon
- hidetime(id)
- }
- public show_finish_message(id, Float:kreedztime)
- {
- new name[32]
- new imin,isec,ims, wpn
- if(user_has_weapon(id, CSW_SCOUT))
- wpn=CSW_SCOUT
- else
- wpn=get_user_weapon(id)
- get_user_name(id, name, 31)
- imin = floatround(kreedztime / 60.0, floatround_floor)
- isec = floatround(kreedztime - imin * 60.0,floatround_floor)
- ims = floatround((kreedztime - (imin * 60.0 + isec)) * 100.0, floatround_floor)
- if (gochecknumbers[id] == 0 && !user_has_scout[id])
- {
- ColorChat(0, BLUE, "^x03 %s^x01 %L^x03 %02i:%02i.%02i^x01 ! ^x04[%s]", name, LANG_PLAYER, "KZ_FINISH_MSG", imin, isec, ims, g_weaponsnames[wpn])
- }
- else if (gochecknumbers[id] > 0 || user_has_scout[id])
- {
- ColorChat(0, RED, "^x03 %s^x01 %L^x03 %02i:%02i.%02i^x01 ! (^x01using ^x03%d^x01 cps & ^x03%d^x01 gcs) ^x04[%s] ^x01", name, LANG_PLAYER, "KZ_FINISH_MSG", imin, isec, ims, checknumbers[id], gochecknumbers[id], g_weaponsnames[wpn])
- }
- }
- //==========================================================
- #if defined USE_SQL
- public Set_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, cData[], iSize, Float:fQueueTime)
- {
- new id = cData[0]
- new style = cData[1]
- if(iFailState != TQUERY_SUCCESS)
- {
- log_amx("[XJ] TOP15 SQL: SQL Error #%d - %s", iErrnum, szError)
- ColorChat(0, GREEN, "^x01 %F", LANG_PLAYER, "KZ_TOP15_SQL_ERROR")
- }
- server_print("[XJ] Server Geting Info of SQL Server")
- new createinto[1001]
- new x1[16], x2[4], x3[5], x4[5]
- parse(cData[2], x1, 15, x2, 3, x3, 4, x4, 4)
- new dia[64], steam[32], name[32], ip[15], country[3], checkpoints[32], gochecks[32]
- new Float:newtime = str_to_float(x1)
- new iMin, iSec, iMs, server[64]
- get_pcvar_string(kz_sql_name, server, 63)
- get_time("%Y%m%d%H%M%S", dia, sizeof dia - 1)
- get_user_authid(id, steam, 31)
- get_user_name(id, name, sizeof name - 1)
- get_user_ip (id, ip, sizeof ip - 1, 1)
- geoip_code2_ex(ip, country)
- replace_all(name, 31, "\", "")
- replace_all(name, 31, "`", "")
- replace_all(name, 31, "'", "")
- if(SQL_NumResults(hQuery) == 0)
- {
- formatex(checkpoints, 31, ", '%d'", str_to_num(x3))
- formatex(gochecks, 31, ", '%d'", str_to_num(x4))
- formatex(createinto, sizeof createinto - 1, "INSERT INTO `%s` VALUES('%s', '%s','%s','%s','%f','%s','%s','%s'%s%s)", style == PRO_TOP ? "kz_pro15" : "kz_nub15", MapName, steam, country, name, newtime, dia, g_weaponsnames[str_to_num(x2)], server, style == PRO_TOP ? "" : checkpoints, style == PRO_TOP ? "" : gochecks)
- SQL_ThreadQuery(g_SqlTuple, "QueryHandle", createinto)
- GetNewRank(id, style)
- }
- else
- {
- new Float:oldtime, Float:thetime
- SQL_ReadResult(hQuery, 0, oldtime)
- if(newtime < oldtime)
- {
- thetime = oldtime - newtime
- iMin = floatround(thetime / 60.0, floatround_floor)
- iSec = floatround(thetime - iMin * 60.0,floatround_floor)
- iMs = floatround((thetime - (iMin * 60.0 + iSec)) * 100.0, floatround_floor)
- //ColorChat(id, GREEN, "[XJ]^x01 %L^x03 %02i:%02i.%02i^x01 in ^x03%s", id, "KZ_IMPROVE", iMin, iSec, iMs, style == PRO_TOP ? "Pro 15" : "Noob 15")
- formatex(checkpoints, 31, ", checkpoints='%d'", str_to_num(x3))
- formatex(gochecks, 31, ", gocheck='%d'", str_to_num(x4))
- if(equal(steam, "VALVE_ID_LAN") || equal(steam, "STEAM_ID_LAN"))
- formatex(createinto, sizeof createinto - 1, "UPDATE `%s` SET time='%f', weapon='%s', date='%s', server='%s'%s%s WHERE name='%s' AND mapname='%s'", style == PRO_TOP ? "kz_pro15" : "kz_nub15", newtime, g_weaponsnames[str_to_num(x2)], dia, server, style == PRO_TOP ? "" : gochecks, style == PRO_TOP ? "" : checkpoints, name, MapName)
- else
- formatex(createinto, sizeof createinto - 1, "UPDATE `%s` SET time='%f', weapon='%s', date='%s', server='%s'%s%s WHERE authid='%s' AND mapname='%s'", style == PRO_TOP ? "kz_pro15" : "kz_nub15", newtime, g_weaponsnames[str_to_num(x2)], dia, server, style == PRO_TOP ? "" : gochecks, style == PRO_TOP ? "" : checkpoints, steam, MapName)
- SQL_ThreadQuery(g_SqlTuple, "QueryHandle", createinto)
- GetNewRank(id, style)
- }
- else
- {
- thetime = newtime - oldtime
- iMin = floatround(thetime / 60.0, floatround_floor)
- iSec = floatround(thetime - iMin * 60.0,floatround_floor)
- iMs = floatround((thetime - (iMin * 60.0 + iSec)) * 100.0, floatround_floor)
- //ColorChat(id, GREEN, "[XJ]^x01 %L^x03 %02i:%02i.%02i ^x01in ^x03%s", id, "KZ_SLOWER", iMin, iSec, iMs, style == PRO_TOP ? "Pro 15" : "Noob 15")
- }
- }
- return PLUGIN_CONTINUE
- }
- public GetNewRank_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, cData[], iSize, Float:fQueueTime)
- {
- new id = cData[0]
- if(iFailState != TQUERY_SUCCESS)
- {
- return log_amx("TOP15 SQL: SQL Error #%d - %s", iErrnum, szError)
- }
- new steam[32], authid[32], namez[32], name[32], i = 0
- get_user_authid(id, steam, 31)
- get_user_name(id, namez, 31)
- while(SQL_MoreResults(hQuery))
- {
- i++
- if(equal(steam, "VALVE_ID_LAN") || equal(steam, "STEAM_ID_LAN"))
- {
- SQL_ReadResult(hQuery, 0, name, 31)
- if(equal(name, namez))
- {
- if(cData[1] != NUB_TOP)
- ColorChat(0, BLUE, "^x03 %s^x01 is now^x03 #%d^x01 on^x03 Pro-15^x01 !",namez, i);
- else
- ColorChat(0, RED, "^x03 %s^x01 is now^x03 #%d^x01 on^x03 Noob-15^x01 !",namez, i);
- if((i < 2) && cData[1] != NUB_TOP)
- emit_sound(0, CHAN_ITEM, "vox/woop.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- else if(cData[1] != NUB_TOP)
- emit_sound(0, CHAN_ITEM, "buttons/bell1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- break;
- }
- }
- else
- {
- SQL_ReadResult(hQuery, 0, authid, 31)
- if(equal(authid, steam))
- {
- if(cData[1] != NUB_TOP)
- ColorChat(0, BLUE, "^x03 %s^x01 is now^x03 #%d^x01 on^x03 Pro-15^x01 !",namez, i);
- else
- ColorChat(0, RED, "^x03 %s^x01 is now^x03 #%d^x01 on^x03 Noob-15^x01 !",namez, i);
- if((i < 2) && cData[1] != NUB_TOP)
- emit_sound(0, CHAN_ITEM, "vox/woop.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- else if(cData[1] != NUB_TOP)
- emit_sound(0, CHAN_ITEM, "buttons/bell1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- break;
- }
- }
- SQL_NextRow(hQuery)
- }
- return PLUGIN_CONTINUE
- }
- public Players_Ranking(id)
- {
- kz_showhtml_motd(id, PRO_RECORDS, "")
- return PLUGIN_HANDLED
- }
- public ProTop_show(id)
- {
- kz_showhtml_motd(id, PRO_TOP, MapName)
- return PLUGIN_HANDLED
- }
- public NoobTop_show(id)
- {
- kz_showhtml_motd(id, NUB_TOP, MapName)
- return PLUGIN_HANDLED
- }
- public ProRecs_show(id)
- {
- new authid[32]
- get_user_authid(id, authid, 31)
- if(equal(authid, "VALVE_ID_LAN") || equal(authid, "STEAM_ID_LAN"))
- {
- ColorChat (id, GREEN, "^x01 %L", id, "KZ_NO_STEAM")
- return PLUGIN_HANDLED
- }
- kz_showhtml_motd(id, PRO_RECORDS, MapName)
- return PLUGIN_HANDLED
- }
- stock kz_showhtml_motd(id, type, const map[])
- {
- new buffer[1001], namebuffer[64], filepath[96]
- get_pcvar_string(kz_sql_files, filepath, 95)
- new authid[32]
- get_user_authid(id, authid, 31)
- switch(type)
- {
- case PRO_TOP:
- {
- formatex(namebuffer, 63, "Pro 15 of %s", equal(map, "") ? "All Maps" : map)
- formatex(buffer, 1000, "<html><head><meta http-equiv=^"Refresh^" content=^"0;url=http://%s/stats15.php?map=%s^"></head><body><p>LOADING...</p></body></html>", filepath, map)
- }
- case NUB_TOP:
- {
- formatex(namebuffer, 63, "Noob 15 of %s", equal(map, "") ? "All Maps" : map)
- formatex(buffer, 1000, "<html><head><meta http-equiv=^"Refresh^" content=^"0;url=http://%s/search.php?map=%s^"></head><body><p>LOADING...</p></body></html>", filepath, map)
- }
- case PRO_RECORDS:
- {
- formatex(namebuffer, 63, "ProRecords and Rank")
- formatex(buffer, 1000, "<html><head><meta http-equiv=^"Refresh^" content=^"0;url=http://%s/top15.php?authid=%s^"></head><body><p>LOADING...</p></body></html>", filepath, authid)
- }
- case LAST_PRO10:
- {
- formatex(namebuffer, 63, "Last 10 Pro Entries")
- formatex(buffer, 1000, "<html><head><meta http-equiv=^"Refresh^" content=^"0;url=http://%s/lastpro.php^"></head><body><p>LOADING...</p></body></html>", filepath)
- }
- case MAPS_STATISTIC:
- {
- formatex(namebuffer, 63, "Maps Statistic")
- formatex(buffer, 1000, "<html><head><meta http-equiv=^"Refresh^" content=^"0;url=http://%s/maps.php^"></head><body><p>LOADING...</p></body></html>", filepath)
- }
- }
- show_motd(id, buffer, namebuffer)
- }
- #else
- public ProTop_update(id, Float:time)
- {
- new authid[32], name[32], thetime[32], Float: slower, Float: faster, Float:protiempo
- get_user_name(id, name, 31);
- get_user_authid(id, authid, 31);
- get_time(" %d/%m/%Y ", thetime, 31);
- new bool:Is_in_pro15
- Is_in_pro15 = false
- for(new i = 0; i < 15; i++)
- {
- if((equali(Pro_Names[i], name) && (get_pcvar_num(kz_top15_authid) == 0)) || (equali(Pro_AuthIDS[i], authid) && (get_pcvar_num(kz_top15_authid) == 1)))
- {
- Is_in_pro15 = true
- slower = time - Pro_Times[i]
- faster = Pro_Times[i] - time
- protiempo = Pro_Times[i]
- }
- }
- for (new i = 0; i < 15; i++)
- {
- if(time < Pro_Times[i])
- {
- new pos = i
- if (get_pcvar_num(kz_top15_authid) == 0)
- while(!equal(Pro_Names[pos], name) && pos < 15)
- {
- pos++;
- }
- else if (get_pcvar_num(kz_top15_authid) == 1)
- while(!equal(Pro_AuthIDS[pos], authid) && pos < 15)
- {
- pos++;
- }
- for (new j = pos; j > i; j--)
- {
- formatex(Pro_AuthIDS[j], 31, Pro_AuthIDS[j-1]);
- formatex(Pro_Names[j], 31, Pro_Names[j-1]);
- formatex(Pro_Date[j], 31, Pro_Date[j-1])
- Pro_Times[j] = Pro_Times[j-1];
- }
- formatex(Pro_AuthIDS[i], 31, authid);
- formatex(Pro_Names[i], 31, name);
- formatex(Pro_Date[i], 31, thetime)
- Pro_Times[i] = time
- save_pro15()
- if(Is_in_pro15)
- {
- if(time < protiempo)
- {
- new min, Float:sec;
- min = floatround(faster, floatround_floor)/60;
- sec = faster - (60*min);
- //ColorChat(id, GREEN, "^x01 %L ^x03%02d:%s%.2f^x01", id, "KZ_IMPROVE", min, sec < 10 ? "0" : "", sec);
- if((i + 1) == 1)
- {
- emit_sound(0, CHAN_ITEM, "vox/woop.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- ColorChat(0, GREEN, "^x01^x03 %s^x01 is now^x03 #1^x01 on ^x03Pro-15^x01", name);
- }
- else
- {
- emit_sound(0, CHAN_ITEM, "buttons/bell1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- ColorChat(0, GREEN, "^x01^x03 %s^x01 is now^x03 #%d^x01 on ^x03Pro-15^x01", name, (i+1));
- }
- }
- }
- else
- {
- if((i + 1) == 1)
- {
- emit_sound(0, CHAN_ITEM, "vox/woop.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- ColorChat(0, GREEN, "^x01^x03 %s^x01 is now^x03 #1^x01 on ^x03Pro-15^x01", name);
- }
- else
- {
- emit_sound(0, CHAN_ITEM, "buttons/bell1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- ColorChat(0, GREEN, "^x01^x03 %s^x01 is now^x03 #%d^x01 on ^x03Pro-15^x01", name, (i+1));
- }
- }
- return;
- }
- if((equali(Pro_Names[i], name) && (get_pcvar_num(kz_top15_authid) == 0)) || (equali(Pro_AuthIDS[i], authid) && (get_pcvar_num(kz_top15_authid) == 1)))
- {
- if(time > protiempo)
- {
- new min, Float:sec;
- min = floatround(slower, floatround_floor)/60;
- sec = slower - (60*min);
- //ColorChat(id, GREEN, "^x01 %L ^x03%02d:%s%.2f^x01", id, "KZ_SLOWER", min, sec < 10 ? "0" : "", sec);
- return;
- }
- }
- }
- }
- public save_pro15()
- {
- new profile[128]
- formatex(profile, 127, "%s/pro_%s.cfg", Topdir, MapName)
- if(file_exists(profile))
- {
- delete_file(profile)
- }
- new Data[256];
- new f = fopen(profile, "at")
- for(new i = 0; i < 15; i++)
- {
- formatex(Data, 255, "^"%.2f^" ^"%s^" ^"%s^" ^"%s^"^n", Pro_Times[i], Pro_AuthIDS[i], Pro_Names[i], Pro_Date[i])
- fputs(f, Data)
- }
- fclose(f);
- }
- public read_pro15()
- {
- new profile[128], prodata[256]
- formatex(profile, 127, "%s/pro_%s.cfg", Topdir, MapName)
- new f = fopen(profile, "rt")
- new i = 0
- while(!feof(f) && i < 16)
- {
- fgets(f, prodata, 255)
- new totime[25]
- parse(prodata, totime, 24, Pro_AuthIDS[i], 31, Pro_Names[i], 31, Pro_Date[i], 31)
- Pro_Times[i] = str_to_float(totime)
- i++;
- }
- fclose(f)
- }
- //==================================================================================================
- public NoobTop_update(id, Float:time, checkpoints, gochecks)
- {
- new authid[32], name[32], thetime[32], wpn, Float: slower, Float: faster, Float:noobtiempo
- get_user_name(id, name, 31);
- get_user_authid(id, authid, 31);
- get_time(" %d/%m/%Y ", thetime, 31);
- new bool:Is_in_noob15
- Is_in_noob15 = false
- if(user_has_weapon(id, CSW_SCOUT))
- wpn=CSW_SCOUT
- else
- wpn=get_user_weapon(id)
- for(new i = 0; i < 15; i++)
- {
- if((equali(Noob_Names[i], name) && (get_pcvar_num(kz_top15_authid) == 0)) || (equali(Noob_AuthIDS[i], authid) && (get_pcvar_num(kz_top15_authid) == 1)))
- {
- Is_in_noob15 = true
- slower = time - Noob_Tiempos[i];
- faster = Noob_Tiempos[i] - time;
- noobtiempo = Noob_Tiempos[i]
- }
- }
- for (new i = 0; i < 15; i++)
- {
- if(time < Noob_Tiempos[i])
- {
- new pos = i
- if (get_pcvar_num(kz_top15_authid) == 0)
- while(!equal(Noob_Names[pos], name) && pos < 15)
- {
- pos++;
- }
- else if (get_pcvar_num(kz_top15_authid) == 1)
- while(!equal(Noob_AuthIDS[pos], authid) && pos < 15)
- {
- pos++;
- }
- for (new j = pos; j > i; j--)
- {
- formatex(Noob_AuthIDS[j], 31, Noob_AuthIDS[j-1])
- formatex(Noob_Names[j], 31, Noob_Names[j-1])
- formatex(Noob_Date[j], 31, Noob_Date[j-1])
- formatex(Noob_Weapon[j], 31, Noob_Weapon[j-1])
- Noob_Tiempos[j] = Noob_Tiempos[j-1]
- Noob_CheckPoints[j] = Noob_CheckPoints[j-1]
- Noob_GoChecks[j] = Noob_GoChecks[j-1]
- }
- formatex(Noob_AuthIDS[i], 31, authid);
- formatex(Noob_Names[i], 31, name);
- formatex(Noob_Date[i], 31, thetime)
- formatex(Noob_Weapon[i], 31, g_weaponsnames[wpn])
- Noob_Tiempos[i] = time
- Noob_CheckPoints[i] = checkpoints
- Noob_GoChecks[i] = gochecks
- save_Noob15()
- if(Is_in_noob15)
- {
- if(time < noobtiempo)
- {
- new min, Float:sec;
- min = floatround(faster, floatround_floor)/60;
- sec = faster - (60*min);
- //ColorChat(id, GREEN, "^x01 %L ^x03%02d:%s%.2f^x01", id, "KZ_IMPROVE", min, sec < 10 ? "0" : "", sec);
- if((i + 1) == 1)
- {
- emit_sound(0, CHAN_ITEM, "vox/woop.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- ColorChat(0, GREEN, "^x01^x03 %s^x01 is now^x03 #1^x01 on ^x03Noob-15^x01", name);
- }
- else
- {
- emit_sound(0, CHAN_ITEM, "buttons/bell1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- ColorChat(0, GREEN, "^x01^x03 %s^x01 is now^x03 #%d^x01 on ^x03Noob-15^x01", name, (i+1));
- }
- }
- }
- else
- {
- if((i + 1) == 1)
- {
- emit_sound(0, CHAN_ITEM, "vox/woop.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- ColorChat(0, GREEN, "^x01^x03 %s^x01 is now^x03 #1^x01 on ^x03Noob-15^x01", name);
- }
- else
- {
- emit_sound(0, CHAN_ITEM, "buttons/bell1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
- ColorChat(0, GREEN, "^x01^x03 %s^x01 is now^x03 #%d^x01 on ^x03Noob-15^x01", name, (i+1));
- }
- }
- return;
- }
- if((equali(Noob_Names[i], name) && (get_pcvar_num(kz_top15_authid) == 0)) || (equali(Noob_AuthIDS[i], authid) && (get_pcvar_num(kz_top15_authid) == 1)))
- {
- if(time > noobtiempo)
- {
- new min, Float:sec;
- min = floatround(slower, floatround_floor)/60;
- sec = slower - (60*min);
- //ColorChat(id, GREEN, "^x01 %L ^x03%02d:%s%.2f^x01", id, "KZ_SLOWER", min, sec < 10 ? "0" : "", sec);
- return;
- }
- }
- }
- }
- public save_Noob15()
- {
- new profile[128]
- formatex(profile, 127, "%s/Noob_%s.cfg", Topdir, MapName)
- if(file_exists(profile))
- {
- delete_file(profile)
- }
- new Data[256];
- new f = fopen(profile, "at")
- for(new i = 0; i < 15; i++)
- {
- formatex(Data, 255, "^"%.2f^" ^"%s^" ^"%s^" ^"%i^" ^"%i^" ^"%s^" ^"%s^" ^n", Noob_Tiempos[i], Noob_AuthIDS[i], Noob_Names[i], Noob_CheckPoints[i], Noob_GoChecks[i],Noob_Date[i],Noob_Weapon[i])
- fputs(f, Data)
- }
- fclose(f);
- }
- public read_Noob15()
- {
- new profile[128], prodata[256]
- formatex(profile, 127, "%s/Noob_%s.cfg", Topdir, MapName)
- new f = fopen(profile, "rt")
- new i = 0
- while(!feof(f) && i < 16)
- {
- fgets(f, prodata, 255)
- new totime[25], checks[5], gochecks[5]
- parse(prodata, totime, 24, Noob_AuthIDS[i], 31, Noob_Names[i], 31, checks, 4, gochecks, 4, Noob_Date[i], 31, Noob_Weapon[i], 31)
- Noob_Tiempos[i] = str_to_float(totime)
- Noob_CheckPoints[i] = str_to_num(checks)
- Noob_GoChecks[i] = str_to_num(gochecks)
- i++;
- }
- fclose(f)
- }
- public ProTop_show(id)
- {
- new buffer[2048], len, name[32]
- len = formatex(buffer, 2047, "<body bgcolor=#000000><table width=100%% cellpadding=2 cellspacing=0 border=0>")
- len += formatex(buffer[len], 2047-len, "<tr align=center bgcolor=#000000><th width=5%%> # <th width=45%% align=center> Player <th width=30%%> Time <th width=20%%> Date ")
- for (new i = 0; i < 10; i++)
- {
- name = Pro_Names[i]
- if(Pro_Times[i] > 9999999.0)
- {
- len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d <td align=center> %s <td> %s <td> %s", ((i%2)==0) ? " bgcolor=#003366" : " bgcolor=#336699", (i+1), "", "", "")
- }
- else
- {
- new minutos, Float:segundos
- minutos = floatround(Pro_Times[i], floatround_floor)/60
- segundos = Pro_Times[i] - (60*minutos)
- len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d <td align=center> %s <td> <b>%02d:%s%.2f <td> %s", ((i%2)==0) ? " bgcolor=#003366" : " bgcolor=#336699", (i+1), Pro_Names[i], minutos, segundos < 10 ? "0" : "", segundos, Pro_Date[i])
- }
- }
- len += formatex(buffer[len], 2047-len, "</table></body>")
- len += formatex(buffer[len], 2047-len, "")
- show_motd(id, buffer, "Pro10 Climbers")
- return PLUGIN_HANDLED
- }
- public NoobTop_show(id)
- {
- new buffer[2048], name[32], len
- len = formatex(buffer, 2047, "<body bgcolor=#000000><table width=100%% cellpadding=2 cellspacing=0 border=0>")
- len += formatex(buffer[len], 2047-len, "<tr align=center bgcolor=#000000><th width=5%%> # <th width=35%% align=center> Player <th width=20%%> Time <th width=10%%> CPs <th width=10%%> TPs <th width=10%%> Date")
- for (new i = 0; i < 10; i++)
- {
- if(Noob_Tiempos[i] > 9999999.0)
- {
- len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d <td align=center> %s <td> %s <td> %s <td> %s <td> %s", ((i%2)==0) ? " bgcolor=#003366" : " bgcolor=#336699", (i+1), "", "", "", "", "")
- }
- else
- {
- name = Noob_Names[i]
- new minutos, Float:segundos
- minutos = floatround(Noob_Tiempos[i], floatround_floor)/60
- segundos = Noob_Tiempos[i] - (60*minutos)
- len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d <td align=center> %s%s <td> <b>%02d:%s%.2f <td> %d <td> %d <td> %s", ((i%2)==0) ? " bgcolor=#003366" : " bgcolor=#336699", (i+1), Noob_Names[i], equal(Noob_Weapon[i],"scout") ? "(scout)" : "", minutos, segundos < 10 ? "0" : "", segundos, Noob_CheckPoints[i], Noob_GoChecks[i], Noob_Date[i], Noob_Weapon[i])
- }
- }
- len += formatex(buffer[len], 2047-len, "</table></body>")
- len += formatex(buffer[len], 2047-len, "")
- show_motd(id, buffer, "Noob10 Climbers")
- return PLUGIN_HANDLED
- }
- #endif
- public CmdUpTime(id) {
- if (! (get_user_flags(id) & ADMIN_BAN))
- {
- client_print(id, print_center, "You have no access to that command");
- return PLUGIN_HANDLED
- }
- new gameTime = floatround(get_gametime());
- new mins = gameTime / 60;
- new secs = gameTime % 60;
- GreenPrint(0, "The server has been online for%s %02i:%02i^1.", mins >= 50 ? "^3" : "^4", mins, secs);
- return PLUGIN_CONTINUE;
- }
- stock GreenPrint(id, const message[ ], any:...)
- {
- static szMessage[ 192 ], iLen, iSayText;
- if(!iLen)
- iLen = formatex(szMessage, 191, "^4[XJ]^1 ");
- if(!iSayText)
- iSayText = get_user_msgid("SayText");
- vformat(szMessage[ iLen ], 191 - iLen, message, 3);
- message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, iSayText, _, id);
- write_byte(id ? id : 1);
- write_string(szMessage);
- message_end();
- return 1;
- }
- public MessageStatusIcon(msg_id, msg_dest, msg_entity)
- {
- new icon[9]
- get_msg_arg_string(2, icon, charsmax(icon));
- if(equal(icon, "buyzone"))
- {
- return PLUGIN_HANDLED;
- }
- return PLUGIN_CONTINUE;
- }
- /*================================================================================================*/
- /*************************************** [Timer Icon] *********************************************/
- /*================================================================================================*/
- //timer icon code by sunny#32<kz.tw> please keep this credit text :D
- public showtime(id)
- {
- message_begin(MSG_ONE,iconstatus,{0,0,0},id)
- write_byte(1)
- write_string("stopwatch")
- write_byte(0)
- write_byte(90)
- write_byte(255)
- message_end()
- return PLUGIN_HANDLED
- }
- public showtime2(id)
- {
- message_begin(MSG_ONE,iconstatus,{0,0,0},id)
- write_byte(1)
- write_string("stopwatch")
- write_byte(145)
- write_byte(0)
- write_byte(0)
- message_end()
- return PLUGIN_HANDLED
- }
- public hidetime(id)
- {
- message_begin(MSG_ONE,iconstatus,{0,0,0},id)
- write_byte(0)
- write_string("stopwatch")
- write_byte(0)
- write_byte(90)
- write_byte(255)
- message_end()
- return PLUGIN_HANDLED
- }
- public showtime22(id)
- {
- if(timer_started[id])
- {
- set_task(0.5,"showtime",id);
- }
- }
- stock IsOnGround(id)
- {
- new flags = pev(id, pev_flags);
- if((flags & FL_ONGROUND) || (flags & FL_PARTIALGROUND) ||( flags & FL_INWATER ) ||( flags & FL_CONVEYOR ) ||( flags & FL_FLOAT))
- {
- return true;
- }
- return false;
- }
- stock kz_roundtime(id, tiempo)
- {
- if( is_user_connected(id) )
- {
- message_begin(MSG_ONE_UNRELIABLE, g_roundtime, _, id);
- write_short(tiempo + 1); // +1 :D
- message_end();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement