Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <cstrike>
- #include <colorchat>
- #include <fun>
- #include <fakemeta>
- #include <hamsandwich>
- //#define USE_SQL
- #if defined USE_SQL
- #include <sqlx>
- #include <geoip>
- #endif
- #define KZ_LEVEL ADMIN_KICK
- #define MSG MSG_ONE_UNRELIABLE
- #define MAX_ENTITYS 900+15*32
- #define IsOnLadder(%1) (pev(%1, pev_movetype) == MOVETYPE_FLY)
- #define VERSION "2.31"
- #define SCOREATTRIB_NONE 0
- #define SCOREATTRIB_DEAD ( 1 << 0 )
- #define SCOREATTRIB_BOMB ( 1 << 1 )
- #define SCOREATTRIB_VIP ( 1 << 2 )
- new g_iPlayers[32], g_iNum, g_iPlayer
- new const g_szAliveFlags[] = "a"
- #define RefreshPlayersList() get_players(g_iPlayers, g_iNum, g_szAliveFlags)
- 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 const KZ_STOPFILE[] = "stop.ini"
- new const KZ_STOPFILE_TEMP[] = "temp_stop.ini"
- #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: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:SavedStop[33][3]
- new hookorigin[33][3]
- new Float:DefaultStartPos[3]
- new Float:DefaultStopPos[3]
- new Float:SavedTime[33]
- new SavedChecks[33]
- new SavedGoChecks[33]
- new SavedScout[33]
- new SavedOrigins[33][3]
- new bool:g_bCpAlternate[33]
- new bool:timer_started[33]
- new bool:IsPaused[33]
- new bool:WasPaused[33]
- new bool:firstspawn[33]
- new bool:canusehook[33]
- new bool:ishooked[33]
- new bool:user_has_scout[33]
- new bool:NightVisionUse[33]
- new bool:HealsOnMap
- new bool:gViewInvisible[33]
- new bool:gMarkedInvisible[33] = { true, ...};
- new bool:gWaterInvisible[33]
- new bool:gWaterEntity[MAX_ENTITYS]
- new bool:gWaterFound
- new bool:DefaultStart
- new bool:DefaultStop
- new bool:AutoStart[33]
- new bool:AutoStop[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]
- new prefix[33]
- #if !defined USE_SQL
- new Topdir[128]
- #endif
- new kz_checkpoints
- new kz_cheatdetect
- new kz_spawn_mainmenu
- new kz_show_timer
- new kz_chatorhud
- new kz_hud_color
- new kz_chat_prefix
- 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_hook_prize
- new kz_hook_sound
- new kz_hook_speed
- new kz_pause
- new kz_noclip_pause
- new kz_nvg
- new kz_nvg_colors
- new kz_vip
- new kz_respawn_ct
- new kz_save_pos
- new kz_save_pos_gochecks
- new kz_semiclip
- new kz_semiclip_transparency
- new kz_spec_saves
- new kz_save_autostart
- new kz_save_autostop
- new kz_top15_authid
- new Sbeam = 0
- new const other_weapons[8] =
- {
- CSW_SCOUT, CSW_P90, CSW_FAMAS, CSW_SG552,
- CSW_M4A1, CSW_M249, CSW_AK47, CSW_AWP
- }
- new const other_weapons_name[8][] =
- {
- "weapon_scout", "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"
- }
- #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, "nucLeaR & p4ddY")
- kz_checkpoints = register_cvar("kz_checkpoints","1")
- kz_cheatdetect = register_cvar("kz_cheatdetect","1")
- kz_spawn_mainmenu = register_cvar("kz_spawn_mainmenu", "1")
- kz_show_timer = register_cvar("kz_show_timer", "1")
- kz_chatorhud = register_cvar("kz_chatorhud", "2")
- kz_chat_prefix = register_cvar("kz_chat_prefix", "[KZ]")
- kz_hud_color = register_cvar("kz_hud_color", "12 122 221")
- kz_other_weapons = register_cvar("kz_other_weapons","1")
- kz_drop_weapons = register_cvar("kz_drop_weapons", "0")
- kz_remove_drops = register_cvar("kz_remove_drops", "1")
- kz_pick_weapons = register_cvar("kz_pick_weapons", "0")
- kz_reload_weapons = register_cvar("kz_reload_weapons", "0")
- kz_maxspeedmsg = register_cvar("kz_maxspeedmsg","1")
- kz_hook_prize = register_cvar("kz_hook_prize","1")
- kz_hook_sound = register_cvar("kz_hook_sound","1")
- kz_hook_speed = register_cvar("kz_hook_speed", "300.0")
- 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_nvg = register_cvar("kz_nvg","1")
- kz_nvg_colors = register_cvar("kz_nvg_colors","5 0 255")
- kz_vip = register_cvar("kz_vip","1")
- kz_respawn_ct = register_cvar("kz_respawn_ct", "1")
- kz_semiclip = register_cvar("kz_semiclip", "1")
- kz_semiclip_transparency = register_cvar ("kz_semiclip_transparency", "85")
- kz_spec_saves = register_cvar("kz_spec_saves", "1")
- kz_save_autostart = register_cvar("kz_save_autostart", "1")
- kz_save_autostop = register_cvar("kz_save_autostop", "1")
- 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")
- #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_clcmd("/cp","CheckPoint")
- register_clcmd("drop", "BlockDrop")
- register_clcmd("/gc", "GoCheck")
- register_clcmd("+hook","hook_on",KZ_LEVEL)
- register_clcmd("-hook","hook_off",KZ_LEVEL)
- register_concmd("kz_hook","give_hook", KZ_LEVEL, "<name|#userid|steamid|@ALL> <on/off>")
- register_concmd("nightvision","ToggleNVG")
- register_clcmd("radio1", "BlockRadio")
- register_clcmd("radio2", "BlockRadio")
- register_clcmd("radio3", "BlockRadio")
- register_clcmd("/tp","GoCheck")
- register_clcmd("chooseteam","ct");
- kz_register_saycmd("cp","CheckPoint",0)
- kz_register_saycmd("chatorhud", "ChatHud", 0)
- kz_register_saycmd("ct","ct",0)
- kz_register_saycmd("gc", "GoCheck",0)
- kz_register_saycmd("gocheck", "GoCheck",0)
- kz_register_saycmd("god", "GodMode",0)
- kz_register_saycmd("godmode", "GodMode", 0)
- kz_register_saycmd("invis", "InvisMenu", 0)
- kz_register_saycmd("kz", "kz_menu", 0)
- kz_register_saycmd("menu","kz_menu", 0)
- kz_register_saycmd("nc", "noclip", 0)
- kz_register_saycmd("noclip", "noclip", 0)
- 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("pause", "Pause", 0)
- kz_register_saycmd("pinvis", "cmdInvisible", 0)
- kz_register_saycmd("pro10", "ProTop_show", 0)
- kz_register_saycmd("pro15", "ProTop_show", 0)
- kz_register_saycmd("reset", "reset_checkpoints", 0)
- kz_register_saycmd("respawn", "goStart", 0)
- kz_register_saycmd("savepos", "SavePos", 0)
- //kz_register_saycmd("scout", "cmdScout", 0)
- kz_register_saycmd("setstart", "setStart", KZ_LEVEL)
- kz_register_saycmd("setstop", "setStop", KZ_LEVEL)
- kz_register_saycmd("showtimer", "ShowTimer_Menu", 0)
- kz_register_saycmd("spec", "ct", 0)
- kz_register_saycmd("start", "goStart", 0)
- kz_register_saycmd("stop", "goStop", 0)
- kz_register_saycmd("stuck", "Stuck", 0)
- kz_register_saycmd("teleport", "GoCheck", 0)
- kz_register_saycmd("timer", "ShowTimer_Menu", 0)
- kz_register_saycmd("top15", "top15menu",0)
- kz_register_saycmd("top10", "top15menu",0)
- kz_register_saycmd("tp", "GoCheck",0)
- kz_register_saycmd("usp", "cmdUsp", 0)
- kz_register_saycmd("weapons", "weapons", 0)
- kz_register_saycmd("guns", "weapons", 0)
- kz_register_saycmd("winvis", "cmdWaterInvisible", 0)
- kz_register_saycmd("hsduaf", "MaeCareca", 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( "StatusValue", "EventStatusValue", "b", "1>0", "2>0" );
- register_forward(FM_AddToFullPack, "FM_client_AddToFullPack_Post", 1)
- RegisterHam( Ham_Player_PreThink, "player", "Ham_CBasePlayer_PreThink_Post", 1)
- 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_Touch, "weaponbox", "GroundWeapon_Touch")
- register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" )
- register_dictionary("prokreedz.txt")
- get_pcvar_string(kz_chat_prefix, prefix, 31)
- get_mapname(MapName, 63)
- set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET)
- set_task(0.5,"timer_task",2000,"",0,"ab")
- #if defined USE_SQL
- set_task(0.2, "plugin_sql")
- #endif
- 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("[KZ] TOP15 SQL: Could not connect to SQL database.!")
- log_amx("[KZ] 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("[KZ] TOP15 SQL: SQL Error #%d - %s", iErrnum, szError)
- ColorChat(0, GREEN, "[KZ]^x01: Warning the SQL Tops can not be saved.")
- }
- server_print("[KZ] 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/looping_radio_mix.wav")
- Sbeam = precache_model("sprites/laserbeam.spr")
- }
- 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];
- 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)
- if( equali( map, MapName ) )
- {
- DefaultStartPos[0] = str_to_float(x)
- DefaultStartPos[1] = str_to_float(y)
- DefaultStartPos[2] = str_to_float(z)
- DefaultStart = true
- break;
- }
- }
- fclose(f)
- new stopcheck[100], stopdata[256], stopmap[64], stopx[13], stopy[13], stopz[13];
- formatex(stopcheck, 99, "%s/%s", Kzdir, KZ_STOPFILE)
- new stopf = fopen(stopcheck, "rt" )
- while( !feof( stopf ) )
- {
- fgets( stopf, stopdata, sizeof stopdata - 1 )
- parse( stopdata, stopmap, 63, stopx, 12, stopy, 12, stopz, 12)
- if( equali( stopmap, MapName ) )
- {
- DefaultStopPos[0] = str_to_float(x)
- DefaultStopPos[1] = str_to_float(y)
- DefaultStopPos[2] = str_to_float(z)
- DefaultStop = true
- break;
- }
- }
- fclose(stopf)
- 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 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;
- }
- // =================================================================================================
- // Global Functions
- // =================================================================================================
- public Pause(id)
- {
- if (get_pcvar_num(kz_pause) == 0)
- {
- kz_chat(id, "%L", id, "KZ_PAUSE_DISABLED")
- return PLUGIN_HANDLED
- }
- if(! is_user_alive(id) )
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- return PLUGIN_HANDLED
- }
- if(!IsPaused[id])
- {
- if(! timer_started[id])
- {
- kz_chat(id, "%L", id, "KZ_TIMER_NOT_STARTED")
- return PLUGIN_HANDLED
- }
- g_pausetime[id] = get_gametime() - timer_time[id]
- timer_time[id] = 0.0
- IsPaused[id] = true
- kz_chat(id, "%L", id, "KZ_PAUSE_ON")
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN)
- pev(id, pev_origin, PauseOrigin[id])
- }
- else
- {
- if(timer_started[id])
- {
- kz_chat(id, "%L", id, "KZ_PAUSE_OFF")
- 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)
- }
- return PLUGIN_HANDLED
- }
- public timer_task()
- {
- 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 = 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];
- new imin = floatround(kreedztime / 60.0,floatround_floor)
- new isec = floatround(kreedztime - imin * 60.0,floatround_floor)
- 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.870, 0, 0.0, 1.0, 0.0, 0.0, 1)
- show_hudmessage(Alive[i], "Tempo: %02d:%02d",imin, isec, IsPaused[Alive[i]] ? "| *pausado*" : "")
- }
- else
- if( ShowTime[Alive[i]] == 2 )
- {
- kz_showtime_roundtime(Alive[i], floatround(kreedztime))
- }
- }
- }
- for(new i=0;i<deadPlayers;i++)
- {
- 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)
- new Float:kreedztime = get_gametime() - (IsPaused[target] ? get_gametime() - g_pausetime[target] : timer_time[target])
- new imin = floatround(kreedztime / 60.0,floatround_floor)
- new isec = floatround(kreedztime - imin * 60.0,floatround_floor)
- 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.835, 0, 0.0, 1.0, 0.0, 0.0, 1)
- show_hudmessage(Dead[i], "Tempo: %02d:%02d | CPs: %d | GCs: %d %s ",imin, isec, checknumbers[target], gochecknumbers[target], IsPaused[target] ? "| *pausado*" : "")
- }
- }
- }
- }
- }
- // ============================ Block Commands ================================
- public BlockRadio(id)
- {
- if (get_pcvar_num(kz_use_radio) == 1)
- return PLUGIN_CONTINUE
- return PLUGIN_HANDLED
- }
- public BlockDrop(id)
- {
- if (get_pcvar_num(kz_drop_weapons) == 1)
- return PLUGIN_CONTINUE
- return PLUGIN_HANDLED
- }
- public BlockBuy(id)
- {
- return PLUGIN_HANDLED
- }
- 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, "%s^x01 %L", id, "KZ_CHECKPOINT_OFF", prefix)
- 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)
- {
- 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
- }
- g_pausetime[id] = get_gametime() - timer_time[id]
- timer_time[id] = 0.0
- kz_chat(id, "%L", id, "KZ_PAUSE_ON")
- }
- }
- if(gViewInvisible[id])
- gViewInvisible[id] = false
- 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)
- }
- else
- {
- 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")
- give_item(id,"weapon_usp")
- 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
- }
- }
- }
- return PLUGIN_HANDLED
- }
- //=================== Weapons ==============
- 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(!is_user_alive(id))
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- return PLUGIN_HANDLED
- }
- if(get_pcvar_num(kz_other_weapons) == 0)
- {
- kz_chat(id, "%L", id, "KZ_OTHER_WEAPONS_ZERO")
- return PLUGIN_HANDLED
- }
- if (timer_started[id])
- {
- kz_chat(id, "%L", id, "KZ_WEAPONS_IN_RUN")
- return PLUGIN_HANDLED
- }
- for(new i = 0; i < 8; 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);
- }
- if( !user_has_weapon(id, CSW_USP) )
- cmdUsp(id)
- return PLUGIN_HANDLED
- }
- // ========================= Scout =======================
- /*public cmdScout(id)
- {
- if (timer_started[id])
- user_has_scout[id] = true
- strip_user_weapons(id)
- give_item(id,"weapon_usp")
- give_item(id,"weapon_knife")
- if( !user_has_weapon(id, CSW_SCOUT))
- give_item(id,"weapon_scout")
- return PLUGIN_HANDLED
- }*/
- public cmdUsp(id)
- {
- give_item(id,"weapon_usp")
- give_item(id,"weapon_knife")
- return PLUGIN_HANDLED
- }
- // ========================== Start location =================
- public goStart(id)
- {
- if( !is_user_alive( id ) )
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- return PLUGIN_HANDLED
- }
- if (IsPaused[id])
- {
- kz_chat(id, "%L", id, "KZ_TELEPORT_PAUSE")
- return PLUGIN_HANDLED
- }
- if(get_pcvar_num(kz_save_autostart) == 1 && AutoStart [id] )
- {
- hook_off(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 ( DefaultStart )
- {
- hook_off(id)
- set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0})
- set_pev(id, pev_origin, DefaultStartPos)
- kz_chat(id, "%L", id, "KZ_START")
- }
- else
- {
- hook_off(id)
- kz_chat(id, "%L", id, "KZ_NO_START")
- CmdRespawn(id)
- }
- return PLUGIN_HANDLED
- }
- public setStart(id)
- {
- if (! (get_user_flags( id ) & KZ_LEVEL ))
- {
- kz_chat(id, "%L", id, "KZ_NO_ACCESS")
- return PLUGIN_HANDLED
- }
- new Float:origin[3]
- pev(id, pev_origin, origin)
- kz_set_start(MapName, origin)
- AutoStart[id] = false;
- ColorChat(id, GREEN, "%s^x01 %L.", prefix, id, "KZ_SET_START")
- return PLUGIN_HANDLED
- }
- // RAYANNE
- // ========================== Stop location =================
- public goStop(id)
- {
- if( !is_user_alive( id ) )
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- return PLUGIN_HANDLED
- }
- if (IsPaused[id])
- {
- kz_chat(id, "%L", id, "KZ_TELEPORT_PAUSE")
- return PLUGIN_HANDLED
- }
- if(get_pcvar_num(kz_save_autostop) == 1 && AutoStop [id] )
- {
- hook_off(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, SavedStop [id] )
- kz_chat(id, "%L", id, "KZ_STOP")
- }
- else if ( DefaultStop )
- {
- hook_off(id)
- set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0})
- set_pev(id, pev_origin, DefaultStopPos)
- kz_chat(id, "%L", id, "KZ_STOP")
- }
- else
- {
- hook_off(id)
- kz_chat(id, "%L", id, "KZ_NO_STOP")
- CmdRespawn(id)
- }
- return PLUGIN_HANDLED
- }
- public setStop(id)
- {
- if (! (get_user_flags( id ) & KZ_LEVEL ))
- {
- kz_chat(id, "%L", id, "KZ_NO_ACCESS")
- return PLUGIN_HANDLED
- }
- new Float:origin[3]
- pev(id, pev_origin, origin)
- kz_set_stop(MapName, origin)
- AutoStop[id] = false;
- ColorChat(id, GREEN, "%s^x01 %L.", prefix, id, "KZ_SET_STOP")
- 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)
- }
- }
- }
- // ============================= NightVision ================================================
- public ToggleNVG(id)
- {
- if( get_pcvar_num(kz_nvg) == 0 || !is_user_alive(id))
- return PLUGIN_CONTINUE;
- if ( NightVisionUse[id] )
- StopNVG(id)
- else
- StartNVG(id)
- return PLUGIN_HANDLED
- }
- public StartNVG(id)
- {
- emit_sound(id,CHAN_ITEM,"items/nvg_on.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- set_task(0.1,"RunNVG",id+111111,_,_,"b")
- NightVisionUse[id] = true;
- return PLUGIN_HANDLED
- }
- public StopNVG(id)
- {
- emit_sound(id,CHAN_ITEM,"items/nvg_off.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- remove_task(id+111111)
- NightVisionUse[id] = false;
- return PLUGIN_HANDLED
- }
- public RunNVG(taskid)
- {
- new id = taskid - 111111
- if (!is_user_alive(id)) return
- new origin[3]
- get_user_origin(id,origin,3)
- new color[17];
- get_pcvar_string(kz_nvg_colors,color,16);
- new iRed[5], iGreen[7], iBlue[5]
- parse(color,iRed,4,iGreen ,6,iBlue,4)
- message_begin(MSG, SVC_TEMPENTITY, _, id)
- write_byte(TE_DLIGHT)
- write_coord(origin[0])
- write_coord(origin[1])
- write_coord(origin[2])
- write_byte(80)
- write_byte(str_to_num(iRed))
- write_byte(str_to_num(iGreen))
- write_byte(str_to_num(iBlue))
- write_byte(2)
- write_byte(0)
- message_end()
- }
- // ============================ Hook ==============================================================
- public give_hook(id)
- {
- if (!( get_user_flags( id ) & KZ_LEVEL ))
- return PLUGIN_HANDLED
- new szarg1[32], szarg2[8], bool:mode
- read_argv(1,szarg1,32)
- read_argv(2,szarg2,32)
- if(equal(szarg2,"on"))
- mode = true
- if(equal(szarg1,"@ALL"))
- {
- new Alive[32], alivePlayers
- get_players(Alive, alivePlayers, "ach")
- for(new i;i<alivePlayers;i++)
- {
- canusehook[i] = mode
- if(mode)
- ColorChat(i, GREEN, "%s^x01, %L.", prefix, i, "KZ_HOOK")
- }
- }
- else
- {
- new pid = find_player("bl",szarg1);
- if(pid > 0)
- {
- canusehook[pid] = mode
- if(mode)
- {
- ColorChat(pid, GREEN, "%s^x01 %L.", prefix, pid, "KZ_HOOK")
- }
- }
- }
- return PLUGIN_HANDLED
- }
- public hook_on(id)
- {
- // if( !canusehook[id] && !( get_user_flags( id ) & KZ_LEVEL ) || !is_user_alive(id) )
- // return PLUGIN_HANDLED
- if( !is_user_alive(id) )
- return PLUGIN_HANDLED
- if (IsPaused[id])
- {
- kz_chat(id, "%L", id, "KZ_HOOK_PAUSE")
- return PLUGIN_HANDLED
- }
- detect_cheat(id,"Hook")
- get_user_origin(id,hookorigin[id],3)
- ishooked[id] = true
- antihookcheat[id] = get_gametime()
- if (get_pcvar_num(kz_hook_sound) == 1)
- emit_sound(id,CHAN_STATIC,"weapons/xbow_hit2.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- set_task(0.1,"hook_task",id,"",0,"ab")
- hook_task(id)
- return PLUGIN_HANDLED
- }
- public hook_off(id)
- {
- remove_hook(id)
- return PLUGIN_HANDLED
- }
- public hook_task(id)
- {
- if(!is_user_connected(id) || !is_user_alive(id))
- remove_hook(id)
- remove_beam(id)
- draw_hook(id)
- new origin[3], Float:velocity[3]
- get_user_origin(id,origin)
- new distance = get_distance(hookorigin[id],origin)
- velocity[0] = (hookorigin[id][0] - origin[0]) * (2.0 * get_pcvar_num(kz_hook_speed) / distance)
- velocity[1] = (hookorigin[id][1] - origin[1]) * (2.0 * get_pcvar_num(kz_hook_speed) / distance)
- velocity[2] = (hookorigin[id][2] - origin[2]) * (2.0 * get_pcvar_num(kz_hook_speed) / distance)
- set_pev(id,pev_velocity,velocity)
- }
- public draw_hook(id)
- {
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
- write_byte(1) // TE_BEAMENTPOINT
- write_short(id) // entid
- write_coord(hookorigin[id][0]) // origin
- write_coord(hookorigin[id][1]) // origin
- write_coord(hookorigin[id][2]) // origin
- write_short(Sbeam) // sprite index
- write_byte(0) // start frame
- write_byte(0) // framerate
- write_byte(random_num(1,100)) // life
- write_byte(random_num(1,20)) // width
- write_byte(random_num(1,0)) // noise
- write_byte(random_num(1,255)) // r
- write_byte(random_num(1,255)) // g
- write_byte(random_num(1,255)) // b
- write_byte(random_num(1,500)) // brightness
- write_byte(random_num(1,200)) // speed
- message_end()
- }
- public remove_hook(id)
- {
- if(task_exists(id))
- remove_task(id)
- remove_beam(id)
- ishooked[id] = false
- }
- public remove_beam(id)
- {
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
- write_byte(99) // TE_KILLBEAM
- write_short(id)
- message_end()
- }
- //============================ 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 EventStatusValue( const id )
- {
- new szMessage[ 34 ], Target, aux
- get_user_aiming(id, Target, aux)
- if (is_user_alive(Target))
- {
- formatex( szMessage, 33, "1 %s: %%p2", get_user_flags( Target ) & KZ_LEVEL ? "POC" : "Lixo" )
- message_begin( MSG, get_user_msgid( "StatusText" ) , _, id )
- write_byte( 0 )
- write_string( szMessage )
- message_end( )
- }
- }
- public detect_cheat(id,reason[])
- {
- if(timer_started[id] && get_pcvar_num(kz_cheatdetect) == 1)
- {
- timer_started[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 && ShowTime[id] == 2)
- kz_showtime_roundtime(id, 0)
- ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "KZ_CHEAT_DETECT", reason)
- }
- }
- // =================================================================================================
- // Cmds
- // =================================================================================================
- public CheckPoint(id)
- {
- if( !is_user_alive( id ) )
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- return PLUGIN_HANDLED
- }
- if(get_pcvar_num(kz_checkpoints) == 0)
- {
- kz_chat(id, "%L", id, "KZ_CHECKPOINT_OFF")
- return PLUGIN_HANDLED
- }
- if( !( pev( id, pev_flags ) & FL_ONGROUND2 ) && timer_started[id])
- {
- if ( pev(id, pev_movetype) != MOVETYPE_FLY )
- {
- kz_chat(id, "%L", id, "KZ_CHECKPOINT_AIR")
- return PLUGIN_HANDLED
- }
- }
- if( IsPaused[id] )
- {
- kz_chat(id, "%L", id, "KZ_CHECKPOINT_PAUSE")
- return PLUGIN_HANDLED
- }
- 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", checknumbers[id])
- return PLUGIN_HANDLED
- }
- public GoCheck(id)
- {
- if( !is_user_alive( id ) )
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- return PLUGIN_HANDLED
- }
- if( checknumbers[id] == 0 )
- {
- kz_chat(id, "%L", id, "KZ_NOT_ENOUGH_CHECKPOINTS")
- return PLUGIN_HANDLED
- }
- if( IsPaused[id] )
- {
- kz_chat(id, "%L", id, "KZ_TELEPORT_PAUSE")
- 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] ] )
- gochecknumbers[id]++
- kz_chat(id, "%L", id, "KZ_GOCHECK", gochecknumbers[id])
- return PLUGIN_HANDLED
- }
- public Stuck(id)
- {
- if( !is_user_alive( id ) )
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- return PLUGIN_HANDLED
- }
- if( checknumbers[id] < 2 )
- {
- kz_chat(id, "%L", id, "KZ_NOT_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
- 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 && ShowTime[id] == 2)
- kz_showtime_roundtime(id, 0)
- return PLUGIN_HANDLED
- }
- //===== Invis =======
- public cmdInvisible(id)
- {
- gViewInvisible[id] = !gViewInvisible[id]
- if(gViewInvisible[id])
- kz_chat(id, "%L", id, "KZ_INVISIBLE_PLAYERS_ON")
- else
- kz_chat(id, "%L", id, "KZ_INVISIBLE_PLAYERS_OFF")
- return PLUGIN_HANDLED
- }
- public cmdWaterInvisible(id)
- {
- if( !gWaterFound )
- {
- kz_chat(id, "%L", id, "KZ_INVISIBLE_NOWATER")
- return PLUGIN_HANDLED
- }
- gWaterInvisible[id] = !gWaterInvisible[id]
- if(gWaterInvisible[id])
- kz_chat(id, "%L", id, "KZ_INVISIBLE_WATER_ON")
- else
- kz_chat(id, "%L", id, "KZ_INVISIBLE_WATER_OFF")
- return PLUGIN_HANDLED
- }
- //======================Semiclip / Invis==========================
- public FM_client_AddToFullPack_Post(es, e, ent, host, hostflags, player, pSet)
- {
- if( player )
- {
- if (get_pcvar_num(kz_semiclip) == 1)
- {
- if ( host != ent && get_orig_retval() && is_user_alive(host) )
- {
- set_es(es, ES_Solid, SOLID_NOT)
- set_es(es, ES_RenderMode, kRenderTransAlpha)
- set_es(es, ES_RenderAmt, get_pcvar_num(kz_semiclip_transparency))
- }
- }
- if(gMarkedInvisible[ent] && gViewInvisible[host])
- {
- set_es(es, ES_RenderMode, kRenderTransTexture)
- set_es(es, ES_RenderAmt, 0)
- set_es(es, ES_Origin, { 999999999.0, 999999999.0, 999999999.0 } )
- }
- }
- else if( gWaterInvisible[host] && gWaterEntity[ent] )
- {
- set_es(es, ES_Effects, get_es( es, ES_Effects ) | EF_NODRAW )
- }
- return FMRES_IGNORED
- }
- public Ham_CBasePlayer_PreThink_Post(id)
- {
- if( !is_user_alive(id) )
- {
- return
- }
- RefreshPlayersList()
- if (get_pcvar_num(kz_semiclip) == 1)
- {
- for(new i = 0; i<g_iNum; i++)
- {
- g_iPlayer = g_iPlayers[i]
- if( id != g_iPlayer )
- {
- set_pev(g_iPlayer, pev_solid, SOLID_NOT)
- }
- }
- }
- }
- public client_PostThink(id)
- {
- if( !is_user_alive(id) )
- return
- RefreshPlayersList()
- if (get_pcvar_num(kz_semiclip) == 1)
- for(new i = 0; i<g_iNum; i++)
- {
- g_iPlayer = g_iPlayers[i]
- if( g_iPlayer != id )
- set_pev(g_iPlayer, pev_solid, SOLID_SLIDEBOX)
- }
- }
- public noclip(id)
- {
- if(!is_user_alive(id))
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- 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")
- kz_chat(id, "%L", id, "KZ_NOCLIP" , noclip ? "ON" : "OFF")
- return PLUGIN_HANDLED
- }
- public GodMode(id)
- {
- if(!is_user_alive(id))
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- 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])
- {
- 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, 49, "%f %f %f", origin[0], origin[1], origin[2])
- 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) ) {}
- }
- //RAYANNE
- stock kz_set_stop(const map[], Float:origin[3])
- {
- new realfile[128], tempfile[128], formatorigin[50]
- formatex(realfile, 127, "%s/%s", Kzdir, KZ_STOPFILE)
- formatex(tempfile, 127, "%s/%s", Kzdir, KZ_STOPFILE_TEMP)
- formatex(formatorigin, 49, "%f %f %f", origin[0], origin[1], origin[2])
- DefaultStopPos = origin
- DefaultStop = 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, "%s^x01 %s", prefix, 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)
- }
- stock get_configsdir(name[],len)
- {
- return get_localinfo("amxx_configsdir",name,len);
- }
- #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") || strlen(authid) > 18)
- 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 FwdHamPlayerSpawn( id )
- {
- if( !is_user_alive( id ) )
- return;
- if(firstspawn[id])
- {
- ColorChat(id, GREEN, "%s^x01 Bem vindo ao ^x03KZ-POC ^x01", prefix)
- if(get_pcvar_num(kz_checkpoints) == 0)
- ColorChat(id, GREEN, "%s^x01 %L", id, "KZ_CHECKPOINT_OFF", prefix)
- 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)
- }
- firstspawn[id] = false
- if( !user_has_weapon(id,CSW_KNIFE) )
- give_item( id,"weapon_knife" )
- 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
- }
- // ==================================Save positions=================================================
- public SavePos(id)
- {
- if(! is_user_alive(id) )
- {
- kz_chat(id, "%L", id, "KZ_NOT_ALIVE")
- return PLUGIN_HANDLED
- }
- new authid[33];
- get_user_authid(id, authid, 32)
- if(get_pcvar_num(kz_save_pos) == 0)
- {
- kz_chat(id, "%L", id, "KZ_SAVEPOS_DISABLED")
- return PLUGIN_HANDLED
- }
- if(equal(authid, "VALVE_ID_LAN") || equal(authid, "STEAM_ID_LAN") || strlen(authid) > 18)
- {
- ColorChat (id, GREEN, "%s^x01 %L", prefix, id, "KZ_NO_STEAM")
- return PLUGIN_HANDLED
- }
- if( !( pev( id, pev_flags ) & FL_ONGROUND2 ) )
- {
- kz_chat(id, "%L", id, "KZ_NOT_ON_GROUND")
- return PLUGIN_HANDLED
- }
- if(!timer_started[id])
- {
- kz_chat(id, "%L", id, "KZ_TIMER_NOT_STARTED")
- return PLUGIN_HANDLED
- }
- if(Verif(id,1))
- {
- ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "KZ_SAVEPOS_ALREADY")
- savepos_menu(id)
- return PLUGIN_HANDLED
- }
- if(get_user_noclip(id))
- {
- ColorChat(id, GREEN, "%s^x01 %L", prefix, 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, "%s^x01 %L", prefix, 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)
- {
- remove_hook(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)
- CheckPoint(id)
- CheckPoint(id)
- strip_user_weapons(id)
- give_item(id,"weapon_usp")
- 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
- NightVisionUse[id] = false
- IsPaused[id] = false
- WasPaused[id] = false
- user_has_scout[id] = false
- remove_hook(id)
- }
- public client_putinserver(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
- NightVisionUse[id] = false
- IsPaused[id] = false
- WasPaused[id] = false
- user_has_scout[id] = false
- remove_hook(id)
- }
- // =================================================================================================
- // Menu
- // =================================================================================================
- public kz_menu(id)
- {
- new title[64];
- formatex(title, 63, "\yKZ-POC Menu\w", VERSION)
- new menu = menu_create(title, "MenuHandler")
- new msgcheck[64], msggocheck[64], msgpause[64]
- formatex(msgcheck, 63, "Checkpoint - \y#%i", checknumbers[id])
- formatex(msggocheck, 63, "Gocheck - \y#%i", gochecknumbers[id])
- formatex(msgpause, 63, "Pause - %s^n", IsPaused[id] ? "\yON" : "OFF" )
- menu_additem( menu, msgcheck, "1" )
- menu_additem( menu, msggocheck, "2" )
- menu_additem( menu, "Top 15^n", "3")
- menu_additem( menu, "Start", "4")
- menu_additem( menu, "Timer Menu", "5" )
- menu_additem( menu, msgpause, "6" )
- menu_additem( menu, "Invisible Menu", "7" )
- menu_additem( menu, "Spectator/CT", "8" )
- menu_additem( menu, "Reset Time^n", "9")
- menu_additem( menu, "Exit", "MENU_EXIT" )
- menu_setprop(menu, MPROP_PERPAGE, 0)
- menu_display(id, menu, 0)
- return PLUGIN_HANDLED
- }
- public 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:{
- top15menu(id)
- }
- case 3:{
- goStart(id)
- kz_menu(id)
- }
- case 4:{
- ShowTimer_Menu(id)
- }
- case 5:{
- Pause(id)
- kz_menu(id)
- }
- case 6:{
- InvisMenu(id)
- }
- case 7:{
- ct(id)
- }
- case 8:{
- reset_checkpoints(id)
- kz_menu(id)
- }
- }
- return PLUGIN_HANDLED
- }
- public InvisMenu(id)
- {
- new menu = menu_create("\yInvis Menu\w", "InvisMenuHandler")
- new msginvis[64], msgwaterinvis[64]
- formatex(msginvis, 63, "Players - %s", gViewInvisible[id] ? "\yON" : "OFF" )
- formatex(msgwaterinvis, 63, "Water - %s^n^n", gWaterInvisible[id] ? "\yON" : "OFF" )
- menu_additem( menu, msginvis, "1" )
- menu_additem( menu, msgwaterinvis, "2" )
- menu_additem( menu, "Main Menu", "3" )
- menu_display(id, menu, 0)
- return PLUGIN_HANDLED
- }
- public InvisMenuHandler (id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- switch(item)
- {
- case 0:
- {
- cmdInvisible(id)
- InvisMenu(id)
- }
- case 1:
- {
- cmdWaterInvisible(id)
- InvisMenu(id)
- }
- case 2:
- {
- kz_menu(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 roundtimer[64], hudtimer[64], notimer[64];
- formatex(roundtimer, 63, "Round Timer %s", ShowTime[id] == 2 ? "\y x" : "" )
- 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, roundtimer, "1" )
- menu_additem( menu, hudtimer, "2" )
- menu_additem( menu, notimer, "3" )
- menu_additem( menu, "Main Menu", "4" )
- 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]= 2
- ShowTimer_Menu(id)
- }
- case 1:
- {
- ShowTime[id]= 1
- ShowTimer_Menu(id)
- if (timer_started[id])
- kz_showtime_roundtime(id, 0)
- }
- case 2:
- {
- ShowTime[id]= 0
- ShowTimer_Menu(id)
- if (timer_started[id])
- kz_showtime_roundtime(id, 0)
- }
- case 3:
- {
- 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("ProKreedz \yTop15 \w", "top15handler")
- menu_additem(menu, "\wPro 15", "1", 0)
- menu_additem(menu, "\wNoob 15^n^n", "2", 0)
- #if defined USE_SQL
- menu_additem(menu, "Pro Records","3")
- menu_additem(menu, "Players Rankings^n","4")
- menu_additem(menu, "Last 10 Pro Entries", "5")
- menu_additem(menu, "Maps Statistic","6")
- menu_additem(menu, "Main Menu", "7")
- #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)
- }
- case 1:
- {
- NoobTop_show(id)
- }
- case 2:
- {
- kz_showhtml_motd(id, PRO_RECORDS, "")
- }
- case 3:
- {
- kz_showhtml_motd(id, PLAYERS_RANKING, "")
- }
- case 4:
- {
- kz_showhtml_motd(id, LAST_PRO10, "")
- }
- case 5:
- {
- kz_showhtml_motd(id, MAPS_STATISTIC, "")
- }
- case 6:
- {
- kz_menu(id)
- }
- }
- #else
- switch(item)
- {
- case 0:
- {
- ProTop_show(id)
- }
- case 1:
- {
- NoobTop_show(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) )
- {
- 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 )
- {
- kz_hud_message( id, "%L", id, "KZ_HOOK_PROTECTION" );
- return PLUGIN_HANDLED
- }
- if(Verif(id,1))
- {
- ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "KZ_SAVEPOS_SAVED")
- savepos_menu(id)
- return HAM_IGNORED
- }
- if ( reset_checkpoints(id) && !timer_started[id] )
- {
- start_climb(id)
- new wpn=get_user_weapon(id)
- for(new i = 0; i < 8; i++)
- if( user_has_weapon(id, other_weapons[i]) )
- {
- strip_user_weapons(id)
- give_item(id,"weapon_knife")
- give_item(id,"weapon_usp")
- set_pdata_int(id, 382, 24, 5)
- if(wpn==CSW_SCOUT)
- {
- user_has_scout[id]=true
- give_item(id,"weapon_scout")
- }
- else
- user_has_scout[id]=false
- }
- 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 )
- {
- kz_set_start(MapName, SavedStart[id])
- ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "KZ_SET_START")
- }
- remove_hook(id)
- }
- }
- if( TrieKeyExists( g_tStops, szTarget ) )
- {
- if( timer_started[id] )
- {
- if(get_user_noclip(id))
- return PLUGIN_HANDLED
- finish_climb(id)
- if(get_pcvar_num(kz_hook_prize) == 1 && !canusehook[id])
- {
- canusehook[id] = true
- ColorChat(id, GREEN, "%s^x01 %L.", prefix, id, "KZ_HOOK")
- }
- }
- else
- kz_hud_message(id, "%L", id, "KZ_TIMER_NOT_STARTED")
- }
- return HAM_IGNORED
- }
- public start_climb(id)
- {
- if( get_user_noclip(id))
- {
- kz_chat(id, "%L", id, "KZ_NOCLIP_ON")
- return PLUGIN_HANDLED
- }
- if (get_pcvar_num(kz_reload_weapons) == 1)
- {
- strip_user_weapons(id)
- give_item(id,"weapon_knife")
- give_item(id,"weapon_usp")
- kz_chat(id, "%L", id, "KZ_START_CLIMB")
- }
- 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()
- return;
- }
- public finish_climb(id)
- {
- if (!is_user_alive (id))
- {
- return;
- }
- if ( (get_pcvar_num(kz_top15_authid) > 1) || (get_pcvar_num(kz_top15_authid) < 0) )
- {
- ColorChat(id, GREEN, "%s^x01 %L.", prefix, 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 && ShowTime[id] == 2)
- kz_showtime_roundtime(id, 0)
- new checkpoints=checknumbers[id]
- new gocheck=gochecknumbers[id]
- if(user_has_scout[id])
- 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 )
- client_cmd(0, "spk buttons/bell1")
- 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") || strlen(steam) > 18)
- {
- if (gochecknumbers[id] == 0 && !user_has_scout[id] )
- {
- 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)
- }
- if (gochecknumbers[id] > 0 || user_has_scout[id] )
- {
- 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_scout[id] )
- {
- 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)
- }
- if (gochecknumbers[id] > 0 || user_has_scout[id] )
- {
- 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 && ShowTime[id] == 2)
- 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
- }
- public show_finish_message(id, Float:kreedztime)
- {
- new name[32]
- new imin,isec,ims, wpn
- if(user_has_scout[id])
- 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 )
- ColorChat(0, GREEN, "%s^x01^x03 %s^x01 %L^x04 %02i:%02i.%02i ^x03(^x01 CPs: ^x04%d^x03 | ^x01 GCs: ^x04%d^x03 | ^x01 %L: ^x04%s^x03) ^x01 !", prefix, name, LANG_PLAYER, "KZ_FINISH_MSG", imin, isec, ims, checknumbers[id], gochecknumbers[id], LANG_PLAYER, "KZ_WEAPON", 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("[KZ] TOP15 SQL: SQL Error #%d - %s", iErrnum, szError)
- ColorChat(0, GREEN, "%s^x01 %F", prefix, LANG_PLAYER, "KZ_TOP15_SQL_ERROR")
- }
- server_print("[KZ] 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, "[KZ]^x01 %L^x03 %02i:%02i.%02i^x01 em ^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") || strlen(steam) > 18)
- 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, "[KZ]^x01 %L^x03 %02i:%02i.%02i ^x01em ^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") || strlen(steam) > 18)
- {
- SQL_ReadResult(hQuery, 0, name, 31)
- if( equal(name, namez) )
- {
- ColorChat(0, GREEN, "%s^x03 %s^x01 %L ^x03%d^x01 do^x03 %s^x01",prefix, namez, LANG_PLAYER, "KZ_PLACE", i, cData[1] == PRO_TOP ? "Pro 15" : "Noob 15");
- break;
- }
- }
- else
- {
- SQL_ReadResult(hQuery, 0, authid, 31)
- if( equal(authid, steam) )
- {
- ColorChat(0, GREEN, "%s^x03 %s^x01 %L ^x03%d^x01 do^x03 %s^x01",prefix, namez, LANG_PLAYER, "KZ_PLACE", i, cData[1] == PRO_TOP ? "Pro 15" : "Noob 15");
- break;
- }
- }
- SQL_NextRow(hQuery)
- }
- return PLUGIN_CONTINUE
- }
- 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") || strlen(authid) > 18)
- {
- ColorChat (id, GREEN, "%s^x01 %L", prefix, 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/pro15.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/nub15.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/player.php?authid=%s^"></head><body><p>LOADING...</p></body></html>", filepath, authid)
- }
- case PLAYERS_RANKING:
- {
- formatex(namebuffer, 63, "Players Ranking")
- formatex(buffer, 1000, "<html><head><meta http-equiv=^"Refresh^" content=^"0;url=http://%s/players.php^"></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/map.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, "%s^x01 %L ^x03%02d:%s%.2f^x01", prefix, id, "KZ_IMPROVE", min, sec < 10 ? "0" : "", sec);
- if( (i + 1) == 1)
- {
- client_cmd(0, "spk woop");
- ColorChat(0, GREEN, "%s^x01^x03 %s^x01 %L^x03 1^x01 do ^x04Pro 15^x01", prefix, name, LANG_PLAYER, "KZ_PLACE");
- }
- else
- {
- client_cmd(0, "spk buttons/bell1");
- ColorChat(0, GREEN, "%s^x01^x03 %s^x01 %L^x03 %d^x01 do ^x04Pro 15^x01", prefix, name, LANG_PLAYER, "KZ_PLACE", (i+1));
- }
- }
- }
- else
- {
- if( (i + 1) == 1)
- {
- client_cmd(0, "spk woop");
- ColorChat(0, GREEN, "%s^x01^x03 %s^x01 %L^x03 1^x01 do ^x04Pro 15^x01", prefix, name, LANG_PLAYER, "KZ_PLACE");
- }
- else
- {
- client_cmd(0, "spk buttons/bell1");
- ColorChat(0, GREEN, "%s^x01^x03 %s^x01 %L^x03 %d^x01 do ^x04Pro 15^x01", prefix, name, LANG_PLAYER, "KZ_PLACE", (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, "%s^x01 %L ^x03%02d:%s%.2f^x01", prefix, 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 MaeCareca(id) {
- ColorChat(0, GREEN, "ALOPRA MAE CARECA", prefix)
- emit_sound(id,CHAN_ITEM,"items/looping_radio_mix.wav",1.0,ATTN_NORM,0,PITCH_NORM)
- return PLUGIN_HANDLED
- }
- //==================================================================================================
- 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_scout[id])
- 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, "%s^x01 %L ^x03%02d:%s%.2f^x01", prefix, id, "KZ_IMPROVE", min, sec < 10 ? "0" : "", sec);
- if( (i + 1) == 1)
- {
- client_cmd(0, "spk woop");
- ColorChat(0, GREEN, "%s^x01^x03 %s^x01 %L^x03 1^x01 do ^x04Noob 15^x01", prefix, name, LANG_PLAYER, "KZ_PLACE");
- }
- else
- {
- client_cmd(0, "spk buttons/bell1");
- ColorChat(0, GREEN, "%s^x01^x03 %s^x01 %L^x03 %d^x01 do ^x04Noob 15^x01", prefix, name, LANG_PLAYER, "KZ_PLACE", (i+1));
- }
- }
- }
- else
- {
- if( (i + 1) == 1)
- {
- client_cmd(0, "spk woop");
- ColorChat(0, GREEN, "%s^x01^x03 %s^x01 %L^x03 1^x01 do ^x04Noob 15^x01", prefix, name, LANG_PLAYER, "KZ_PLACE");
- }
- else
- {
- client_cmd(0, "spk buttons/bell1");
- ColorChat(0, GREEN, "%s^x01^x03 %s^x01 %L^x03 %d^x01 do ^x04Noob 15^x01", prefix, name, LANG_PLAYER, "KZ_PLACE", (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, "%s^x01 %L ^x03%02d:%s%.2f^x01", prefix, 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=#f1bac4><table width=100%% cellpadding=2 cellspacing=0 border=0>")
- len += formatex(buffer[len], 2047-len, "<tr align=center bgcolor=#f24363><th width=5%%> # <th width=45%% align=center> POCs <th width=30%%> Tempo <th width=20%%> Data ")
- 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=#e58294" : " bgcolor=#f1bac4", (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=#e58294" : " bgcolor=#f1bac4", (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, "<tr><Center><b><BR>Plugin created by POC SUPREMA")
- 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=#f1bac4><table width=100%% cellpadding=2 cellspacing=0 border=0>")
- len += formatex(buffer[len], 2047-len, "<tr align=center bgcolor=#f24363><th width=5%%> # <th width=35%% align=center> POCs <th width=20%%> Tempo <th width=10%%> CPs <th width=10%%> TPs <th width=10%%> Data")
- 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=#e58294" : " bgcolor=#f1bac4", (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=#e58294" : " bgcolor=#f1bac4", (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, "<tr><Center><b><BR>Plugin editado por POC SUPREMA")
- show_motd(id, buffer, "Noob10 Climbers")
- return PLUGIN_HANDLED
- }
- #endif
- // You reached the end of file
- // The original plugin was made by p4ddY
- // This plugin was edited by POC SUPREMA
- // Version 2.31
- /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
- *{\ rtf1\ ansi\ deff0{\ fonttbl{\ f0\ fnil Tahoma;}}
- \ viewkind4\ uc1\ pard\ lang1033\ f0\ fs16
- \ par }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement