/*
.-==========================================-.
|~~ Long Jump Stats - eXtreme Modification ~~|
.-==========================================-.
Server cvars:
===-
// Enabled/Disables the plugin
// 0 = disabled
// 1 = enabled
kz_ljs_enabled "1"
// Maximum possible lj (not 4 cj)
kz_max_lj "260.0"
// 1337 lj (prints to all players)
// To disable, set it to -1
kz_leet_lj "250.0"
// Professional lj (prints to all players)
// To disable, set it to -1
kz_pro_lj "245.0"
// Good lj (prints to all players)
// To disable, set it to -1
kz_good_lj "240.0"
// Minimal lj distance
kz_min_lj "215.0"
// Difrence between longjump and countjump for good/pro/leet/max jump
kz_cj_dif "10.0"
// Enables lj sounds
// 0 = disabled
// 1 = ultimate sounds
// 2 = distance in voice
kz_lj_sounds "1"
// How dose plugin works
// 0 = no top and no colorchat
// 1 = prints good/pro/leet jumps
// 2 = enables top10
// 3 = prints good/pro/leet jumps and enables top10
kz_ljs_tops "3"
// Do you want to save ljtop after mapchange?
kz_ljs_topsave "1"
// How ranking will work?
// 0 = names
// 1 = steam ids
// 2 = ips
kz_ljs_rank_by "0"
// Kz jumping color chat:
// 0 = normal
// 1 = red
// 2 = green
// 3 = blue
// 4 = silver
// 5 = team color
kz_leet_lj_clr "1"
kz_pro_lj_clr "2"
kz_good_lj_clr "4"
kz_leet_cj_clr "1"
kz_pro_cj_clr "2"
kz_good_cj_clr "4"
// Colors of /ljstats (rrr ggg bbb)
kz_ljstats_red "0"
kz_ljstats_green "255"
kz_ljstats_blue "159"
// LongJump Stats Laser Beam
// 0 = off
// 1 = normal
// 2 = uber beam
kz_ljs_beam "2"
// Enables protection 4 legal kreedz settings
kz_legal_settings "1"
// Is your server fast?
// 0 = slow
// 1 = normal
// 2 = realy good ( >10mb/s or localhost/lan server )
kz_ljs_fastserver "2"
// Enables auto-setting 4 kz_ljs_fastserver cvar if it is 2
kz_ljs_autoserver "1"
// What is enabled on client when he connects to a server?
// 0 = nothing
// a = colorchat
// b = ljstats
// c = speed
kz_ljs_connectenabler "abc"
// Do you want cmds like /speed to be visible in the chat?
kz_ljs_viscmds "1"
// Speedometer type
// 0 = show real speed and horizontal speed
// 1 = show real speed
// 2 = show horizontal speed
kz_ljs_speedtype "0"
.-==========================================-.
Admin commands:
==-
amx_resetljrec - resets ljrec and ljtop
amx_resetljtop - resets ljrec and ljtop
.-==========================================-.
Client commands:
==-
say /colorchat - enables/disables colorchat
say /lj10 - display tops menu
say /ljrec - display records menu
say /ljsmenu - display ljs menu
say /ljstats - enables/disables longjump stats
say /ljsversion - prints plugin version
say /speed - enables/disables visible speed
.-==========================================-.
Installation:
==-
1. Extract all files and overwrite your cstrike folder
2. Add kz_ljs_xm.amxx in addons/amxmodx/configs/plugins.ini list
3. Restart your server/Change map
!!! WARNING !!!
To get better gocheck and hook protection write kz_ljs_xm.amxx
in plugins.ini BEFORE your checkpoint and hook plugins!
Good e.x. of plugins.ini
-> kz_ljs_xm.amxx
-> ProKreedz.amxx
-> ProKreedz_Hook.amxx
Bad e.x. of plugins.ini
-> ProKreedz.amxx
-> ProKreedz_Hook.amxx
-> kz_ljs_xm.amxx
.-==========================================-.
Credits:
==-
Created by:
Fatalis ( 8.9.22.42:27017 ) ( http://www.KZMonkeys.net )
Numb ( 195.149.21.176:27016 ) ( http://sensation-kreedz.net )
Special thanks to:
Bentski ( cs.bentski.lt:27015 ) ( http://kzlt.bentski.lt )
~Val~ ( cs.groza.ru:27017 ) ( http://www.groza.ru )
Hosted by:
http://www.xtreme-jumps.eu/
http://www.thebishop.fr/
.-==========================================-.
Have fun! =]
P.S. You need legal kreedz settings 4 this to work!!!
*/
#include
#include
#include
#include
#pragma semicolon 1
#define INFO_ONE 1
#define INFO_ZERO 0
// Ints & strings
new server_settings[34][27][16];
new plugin_id;
new plugin_file_name[64];
new pluginstatus;
new gBeam;
new strafes[33];
new goodsync[33];
new badsync[33];
new ljsDir[64];
new pre_type[33][32];
new top_names[10][33];
new top_authid[10][33];
new top_distance[10];
new top_maxspeed[10];
new top_prestrafe[10];
new top_strafes[10];
new top_sync[10];
new top_type[10][5];
new top_pretype[10][32];
new cj_names[10][33];
new cj_authid[10][33];
new cj_distance[10];
new cj_maxspeed[10];
new cj_prestrafe[10];
new cj_strafes[10];
new cj_sync[10];
new cj_pretype[10][32];
new lj_names[10][33];
new lj_authid[10][33];
new lj_distance[10];
new lj_maxspeed[10];
new lj_prestrafe[10];
new lj_strafes[10];
new lj_sync[10];
new lj_pretype[10][32];
new view_names[33][10][33];
new view_distance[33][10];
new view_maxspeed[33][10];
new view_prestrafe[33][10];
new view_strafes[33][10];
new view_sync[33][10];
new view_type[33][10][5];
new view_pretype[33][10][32];
new full_top_stats_selected_type[33];
new full_top_stats_selected_page[33];
// Bools
new bool:possible_lj_script[33][2];
new bool:tops_save;
new bool:gHasColorChat[33];
new bool:gHasSpeed[33];
new bool:gHasLjStats[33];
new bool:gInAir[33];
new bool:cjumped[33];
new bool:doubleducked[33];
new bool:cducked[33];
new bool:induck[33];
new bool:OnGround[33];
new bool:turning_right[33];
new bool:turning_left[33];
new bool:strafing_aw[33];
new bool:strafing_sd[33];
// Floats
new Float:vBeamPos[33][129][3];
new Float:vBeamPosStatus[33][129];
new Float:vBeamTime[33][129];
new Float:old_angle1[33];
new Float:angle[3];
new Float:vFramePos[33][2][3];
new Float:vFrameSpeed[33][2][3];
new Float:vDuckedAt[33][3];
new Float:vJumpedAt[33][3];
new Float:vJumpedAt2[3];
new Float:xDistance;
new Float:yDistance;
new Float:fDistance;
new Float:fDistance1;
new Float:fDistance2;
new Float:rDistance[2];
new Float:rLandPos[3];
new Float:vOrigin[3];
new Float:vOldOrigin[33][3];
new Float:vTraceEnd[3];
new Float:fMaxAirSpeed[33];
new Float:fMaxGroundSpeed[33];
new Float:vVelocity[3];
new Float:fSpeed;
new Float:gSpeed;
new Float:OldSpeed[33];
new Float:frame2time;
new Float:jumptime[33];
new Float:lasttime[33];
new Float:beam_jump_off_time[33];
// Plugin strings
new const gPLUGIN[] = "LjS - eXtreme Mod";
new const gVERSION[] = "2.2b7";
new const gVERSION_NUM[] = "22007";
new const gAUTHOR[] = "Fatalis & Numb";
// Cvars
new kz_ljs_enabled;
new kz_good_lj;
new kz_pro_lj;
new kz_leet_lj;
new kz_min_lj;
new kz_max_lj;
new kz_cj_dif;
new kz_lj_sounds;
new kz_leet_lj_clr;
new kz_pro_lj_clr;
new kz_good_lj_clr;
new kz_leet_cj_clr;
new kz_pro_cj_clr;
new kz_good_cj_clr;
new kz_ljstats_red;
new kz_ljstats_green;
new kz_ljstats_blue;
new kz_ljs_beam;
new kz_legal_settings;
new kz_ljs_fastserver;
new kz_ljs_autoserver;
new kz_ljs_speedtype;
new kz_ljs_connectenabler;
new kz_ljs_viscmds;
new kz_ljs_tops;
new kz_ljs_topsave;
new kz_ljs_rank_by;
new edgefriction;
new mp_footsteps;
new sv_cheats;
new sv_gravity;
new sv_airaccelerate;
new sv_maxspeed;
new sv_stepsize;
new sv_maxvelocity;
new sv_lan;
public plugin_init()
{
if( tops_save )
read_tops();
new s_plugin_id[32], filename[255];
format(s_plugin_id, 31, "%d", plugin_id);
format(filename, 254, "%s/ljs_plugin_info.txt", ljsDir);
if( file_exists(filename) )
delete_file(filename);
write_file(filename, gVERSION_NUM);
write_file(filename, s_plugin_id);
write_file(filename, plugin_file_name);
write_file(filename, gPLUGIN);
write_file(filename, gVERSION);
write_file(filename, gAUTHOR);
}
public plugin_start()
{
plugin_id = register_plugin(gPLUGIN, gVERSION, gAUTHOR);
register_cvar("LongJumpStats", gVERSION, FCVAR_SERVER);
register_dictionary("common.txt");
register_forward(FM_Touch, "fwdTouch", 1);
register_forward(FM_PlayerPreThink, "fwdPlayerPreThink", 0);
register_forward(FM_PlayerPostThink, "fwdPlayerPostThink", 0);
register_forward(FM_StartFrame, "fwdStartFrame", 0);
kz_ljs_enabled = register_cvar("kz_ljs_enabled", "1"); // enables/disables the plugin
kz_good_lj = register_cvar("kz_good_lj", "240.0"); // good longjumps
kz_pro_lj = register_cvar("kz_pro_lj", "245.0"); // professional longjumps
kz_leet_lj = register_cvar("kz_leet_lj", "250.0"); // leet longjump
kz_min_lj = register_cvar("kz_min_lj", "215.0"); // minimal longjump
kz_max_lj = register_cvar("kz_max_lj", "260.0"); // maximal longjump
kz_cj_dif = register_cvar("kz_cj_dif", "10.0"); // difrence between lj and cj
kz_lj_sounds = register_cvar("kz_lj_sounds", "1"); // enables leet/pro/good lj/cj sounds
kz_leet_lj_clr = register_cvar("kz_leet_lj_clr", "1"); // color of leet lj (1=red, 2=green, 3=blue, 4=gray, 5=team, 0=default)
kz_pro_lj_clr = register_cvar("kz_pro_lj_clr", "2"); // color of pro lj
kz_good_lj_clr = register_cvar("kz_good_lj_clr", "4"); // color of good lj
kz_leet_cj_clr = register_cvar("kz_leet_cj_clr", "1"); // color of leet lj
kz_pro_cj_clr = register_cvar("kz_pro_cj_clr", "2"); // color of pro lj
kz_good_cj_clr = register_cvar("kz_good_cj_clr", "4"); // color of good lj
kz_ljstats_red = register_cvar("kz_ljstats_red", "0"); // red color of /ljstats
kz_ljstats_green = register_cvar("kz_ljstats_green", "255"); // green color of /ljstats
kz_ljstats_blue = register_cvar("kz_ljstats_blue", "159"); // blue color of /ljstats
kz_ljs_beam = register_cvar("kz_ljs_beam", "2"); // 0=beam off, 1=normal beam, 2=uber beam
kz_legal_settings = register_cvar("kz_legal_settings", "1"); // enables protection 4 legal kreedz settings
kz_ljs_fastserver = register_cvar("kz_ljs_fastserver", "1"); // Is your server fast? (0=slow, 1=normal, 2=good)
kz_ljs_autoserver = register_cvar("kz_ljs_autoserver", "1"); // Authomaticaly detect what cvar of kz_ljs_fastserver shold be?
kz_ljs_speedtype = register_cvar("kz_ljs_speedtype", "0"); // Speedometer type
kz_ljs_connectenabler = register_cvar("kz_ljs_connectenabler", "abc"); // What is enabled at connect (0=nothing, a=colorchat, b=ljstats, c=speed)
kz_ljs_viscmds = register_cvar("kz_ljs_viscmds", "1"); // Do you want say commands to be apeard on the chat?
kz_ljs_tops = register_cvar("kz_ljs_tops", "3"); // LongJump top (0=Nothing, 1=ColorChat, 2=top, 3=top+ColorChat)
kz_ljs_topsave = register_cvar("kz_ljs_topsave", "1"); // Do you want to save ljtop after mapchange?
kz_ljs_rank_by = register_cvar("kz_ljs_rank_by", "0"); // How ranking will work? 0=name, 1=steam, 2=ip
edgefriction = get_cvar_pointer("edgefriction");
mp_footsteps = get_cvar_pointer("mp_footsteps");
sv_cheats = get_cvar_pointer("sv_cheats");
sv_gravity = get_cvar_pointer("sv_gravity");
sv_airaccelerate = get_cvar_pointer("sv_airaccelerate");
sv_maxspeed = get_cvar_pointer("sv_maxspeed");
sv_stepsize = get_cvar_pointer("sv_stepsize");
sv_maxvelocity = get_cvar_pointer("sv_maxvelocity");
sv_lan = get_cvar_pointer("sv_lan");
server_settings[33][0] = "1";
server_settings[33][1] = "260.0";
server_settings[33][2] = "250.0";
server_settings[33][3] = "245.0";
server_settings[33][4] = "240.0";
server_settings[33][5] = "215.0";
server_settings[33][6] = "5.0";
server_settings[33][7] = "1";
server_settings[33][8] = "3";
server_settings[33][9] = "1";
server_settings[33][10] = "0";
server_settings[33][11] = "1";
server_settings[33][12] = "2";
server_settings[33][13] = "4";
server_settings[33][14] = "1";
server_settings[33][15] = "2";
server_settings[33][16] = "4";
server_settings[33][17] = "0";
server_settings[33][18] = "255";
server_settings[33][19] = "159";
server_settings[33][20] = "2";
server_settings[33][21] = "1";
server_settings[33][22] = "2";
server_settings[33][23] = "1";
server_settings[33][24] = "abc";
server_settings[33][25] = "1";
server_settings[33][26] = "0";
configurate_plugin();
register_menucmd(register_menuid("LongJump Stats Menu"), 1023, "LjsMenu_Select");
register_menucmd(register_menuid("Top 10 Menu"), 1023, "MainTopMenu_Select");
register_menucmd(register_menuid("Full top stats"), 1023, "FullTopMenu_Select");
register_menucmd(register_menuid("Show best longjumper"), 1023, "LeetJumpMenu_Select");
tops_save = true;
new LJS_ADMIN = ADMIN_MAP;
if( get_pcvar_num(kz_ljs_topsave) )
LJS_ADMIN = ADMIN_RCON;
else
tops_save = false;
register_concmd("amx_resetljrec", "topreset", LJS_ADMIN, "- resets ljrec and ljtops");
register_concmd("amx_resetljtops", "topreset", LJS_ADMIN, "- resets ljrec and ljtops");
register_clcmd("say /colorchat", "cmdColorChat", ADMIN_ALL, "- enables/disables colorchat");
register_clcmd("say /ljstats", "cmdLjStats", ADMIN_ALL, "- enables/disables longjump stats");
register_clcmd("say /ljsversion", "cmdVersion", ADMIN_ALL, "- prints plugin version");
register_clcmd("say /speed", "cmdSpeed", ADMIN_ALL, "- enabled/disables visible speed");
register_clcmd("say /ljsmenu", "cmdLjsMenu", ADMIN_ALL, "- display ljs menu");
register_clcmd("say /cj15", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /cjtop15", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /cj10", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /cjtop10", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /cjtop", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /lj15", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /ljtop15", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /lj10", "cmdTopMenu", ADMIN_ALL, "- display tops menu");
register_clcmd("say /ljtop10", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /ljtop", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /ljrec", "show_leet_ljumper", ADMIN_ALL, "- display records menu");
register_clcmd("say /cjrec", "show_leet_ljumper", -1, "- display records menu");
register_clcmd("say /tele", "gocheck", -1, " - teleported");
register_clcmd("say /tp", "gocheck", -1, " - teleported");
register_clcmd("say /gocheck", "gocheck", -1, " - teleported");
register_clcmd("say /gc", "gocheck", -1, " - teleported");
register_clcmd("say .tele", "gocheck", -1, " - teleported");
register_clcmd("say .tp", "gocheck", -1, " - teleported");
register_clcmd("say .gocheck", "gocheck", -1, " - teleported");
register_clcmd("say .gc", "gocheck", -1, " - teleported");
register_clcmd("/tele", "gocheck", -1, " - teleported");
register_clcmd("/tp", "gocheck", -1, " - teleported");
register_clcmd("/gocheck", "gocheck", -1, " - teleported");
register_clcmd("/gc", "gocheck", -1, " - teleported");
register_clcmd(".tele", "gocheck", -1, " - teleported");
register_clcmd(".tp", "gocheck", -1, " - teleported");
register_clcmd(".gocheck", "gocheck", -1, " - teleported");
register_clcmd(".gc", "gocheck", -1, " - teleported");
register_clcmd("say /stuck", "gocheck", -1, " - teleported");
register_clcmd("say /unstuck", "gocheck", -1, " - teleported");
register_clcmd("say .stuck", "gocheck", -1, " - teleported");
register_clcmd("say .unstuck", "gocheck", -1, " - teleported");
register_clcmd("/stuck", "gocheck", -1, " - teleported");
register_clcmd("/unstuck", "gocheck", -1, " - teleported");
register_clcmd(".stuck", "gocheck", -1, " - teleported");
register_clcmd(".unstuck", "gocheck", -1, " - teleported");
register_clcmd("say /start", "gocheck", -1, " - reseted");
register_clcmd("say /reset", "gocheck", -1, " - reseted");
register_clcmd("say /restart", "gocheck", -1, " - reseted");
register_clcmd("say /spawn", "gocheck", -1, " - reseted");
register_clcmd("say .start", "gocheck", -1, " - reseted");
register_clcmd("say .reset", "gocheck", -1, " - reseted");
register_clcmd("say .restart", "gocheck", -1, " - reseted");
register_clcmd("say .spawn", "gocheck", -1, " - reseted");
register_clcmd("/start", "gocheck", -1, " - reseted");
register_clcmd("/reset", "gocheck", -1, " - reseted");
register_clcmd("/restart", "gocheck", -1, " - reseted");
register_clcmd("/spawn", "gocheck", -1, " - reseted");
register_clcmd(".start", "gocheck", -1, " - reseted");
register_clcmd(".reset", "gocheck", -1, " - reseted");
register_clcmd(".restart", "gocheck", -1, " - reseted");
register_clcmd(".spawn", "gocheck", -1, " - reseted");
register_clcmd("+hook", "gocheck", -1, " - used hook");
register_clcmd("-hook", "gocheck", -1, " - used hook");
new dataDir[64];
get_datadir(dataDir, 63);
format(ljsDir, 63, "%s/ljs", dataDir);
if( !dir_exists(ljsDir) )
mkdir(ljsDir);
get_plugin(plugin_id, plugin_file_name, 63, "", 0, "", 0, "", 0, "", 0);
}
public configurate_plugin()
{
if( !get_ljsconfig(0) )
{
for( new i; i < 27; i++ )
format(server_settings[0][i], 15, "%s", server_settings[33][i]);
}
setconfig_now(0);
}
public setconfig_now(player)
{
set_cvar_string("kz_ljs_enabled", server_settings[player][0]);
set_cvar_string("kz_max_lj", server_settings[player][1]);
set_cvar_string("kz_leet_lj", server_settings[player][2]);
set_cvar_string("kz_pro_lj", server_settings[player][3]);
set_cvar_string("kz_good_lj", server_settings[player][4]);
set_cvar_string("kz_min_lj", server_settings[player][5]);
set_cvar_string("kz_cj_dif", server_settings[player][6]);
set_cvar_string("kz_lj_sounds", server_settings[player][7]);
set_cvar_string("kz_lj_top", server_settings[player][8]);
set_cvar_string("kz_ljs_topsave", server_settings[player][9]);
set_cvar_string("kz_ljs_rank_by", server_settings[player][10]);
set_cvar_string("kz_leet_lj_clr", server_settings[player][11]);
set_cvar_string("kz_pro_lj_clr", server_settings[player][12]);
set_cvar_string("kz_good_lj_clr", server_settings[player][13]);
set_cvar_string("kz_leet_cj_clr", server_settings[player][14]);
set_cvar_string("kz_pro_cj_clr", server_settings[player][15]);
set_cvar_string("kz_good_cj_clr", server_settings[player][16]);
set_cvar_string("kz_ljstats_red", server_settings[player][17]);
set_cvar_string("kz_ljstats_green", server_settings[player][18]);
set_cvar_string("kz_ljstats_blue", server_settings[player][19]);
set_cvar_string("kz_ljs_beam", server_settings[player][20]);
set_cvar_string("kz_legal_settings", server_settings[player][21]);
if( str_to_num(server_settings[player][22]) == 2 && str_to_num(server_settings[player][23]) )
{
if( !is_dedicated_server() && get_pcvar_num(sv_lan) != 0 )
set_cvar_string("kz_ljs_fastserver", "2");
else
set_cvar_string("kz_ljs_fastserver", "1");
}
else
set_cvar_string("kz_ljs_fastserver", server_settings[player][22]);
set_pcvar_num(kz_ljs_autoserver, str_to_num(server_settings[player][23]));
set_cvar_string("kz_ljs_connectenabler", server_settings[player][24]);
set_cvar_string("kz_ljs_viscmds", server_settings[player][25]);
set_cvar_string("kz_ljs_speedtype", server_settings[player][26]);
}
stock get_ljsconfig(player)
{
static configsDir[64], filename[128];
get_configsdir(configsDir, 63);
format(filename, 127, "%s/ljstats.ini", configsDir);
if( !dir_exists(configsDir) )
mkdir(configsDir);
if( !file_exists(filename) )
{
log_amx("LjS: Error: Configuration file <^"%s^"> not found!", filename);
log_amx("LjS: Creating file...");
write_file(filename, "; .-==========================================-.");
write_file(filename, "; |~~ Long Jump Stats - eXtreme Modification ~~|");
write_file(filename, "; .-==========================================-.");
write_file(filename, "");
write_file(filename, "");
write_file(filename, "; Enabled/Disables the plugin");
write_file(filename, "; 0 = disabled");
write_file(filename, "; 1 = enabled");
write_file(filename, "; Cvar kz_ljs_enabled (default ^"1^")");
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; Maximum possible lj (not 4 cj)");
write_file(filename, "; Cvar kz_max_lj (default ^"260.0^")");
write_file(filename, "260.0");
write_file(filename, "");
write_file(filename, "; 1337 lj (prints to all players)");
write_file(filename, "; To disable, set it to -1");
write_file(filename, "; Cvar kz_leet_lj (default ^"250.0^")");
write_file(filename, "250.0");
write_file(filename, "");
write_file(filename, "; Professional lj (prints to all players)");
write_file(filename, "; To disable, set it to -1");
write_file(filename, "; Cvar kz_pro_lj (default ^"245.0^")");
write_file(filename, "245.0");
write_file(filename, "");
write_file(filename, "; Good lj (prints to all players)");
write_file(filename, "; To disable, set it to -1");
write_file(filename, "; Cvar kz_good_lj (default ^"240.0^")");
write_file(filename, "240.0");
write_file(filename, "");
write_file(filename, "; Minimal lj distance");
write_file(filename, "; Cvar kz_min_lj (default ^"215.0^")");
write_file(filename, "215.0");
write_file(filename, "");
write_file(filename, "; Difrence between longjump and countjump for good/pro/leet/max jump");
write_file(filename, "; Cvar kz_cj_dif (default ^"10.0^")");
write_file(filename, "10.0");
write_file(filename, "");
write_file(filename, "; Enables lj sounds");
write_file(filename, "; 0 = disabled");
write_file(filename, "; 1 = ultimate sounds");
write_file(filename, "; 2 = distance in voice");
write_file(filename, "; Cvar kz_lj_sounds (default ^"1^")");
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; How dose plugin works");
write_file(filename, "; 0 = no top and no colorchat");
write_file(filename, "; 1 = prints good/pro/leet jumps");
write_file(filename, "; 2 = enables top10");
write_file(filename, "; 3 = prints good/pro/leet jumps and enables top10");
write_file(filename, "; Cvar kz_lj_top (default ^"3^")");
write_file(filename, "3");
write_file(filename, "");
write_file(filename, "; Do you want to save ljtop after mapchange?");
write_file(filename, "; Cvar kz_ljs_topsave (default ^"1^")");
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; How ranking will work?");
write_file(filename, "; 0 = names");
write_file(filename, "; 1 = steam ids");
write_file(filename, "; 2 = ips");
write_file(filename, "; Cvar kz_ljs_rank_by (default ^"0^")");
write_file(filename, "0");
write_file(filename, "");
write_file(filename, "; Kz jumping color chat:");
write_file(filename, "; 0 = normal");
write_file(filename, "; 1 = red");
write_file(filename, "; 2 = green");
write_file(filename, "; 3 = blue");
write_file(filename, "; 4 = silver");
write_file(filename, "; 5 = team color");
write_file(filename, "");
write_file(filename, "; Cvar kz_leet_lj_clr (default ^"1^")");
write_file(filename, "1");
write_file(filename, "; Cvar kz_pro_lj_clr (default ^"2^")");
write_file(filename, "2");
write_file(filename, "; Cvar kz_good_lj_clr (default ^"4^")");
write_file(filename, "4");
write_file(filename, "");
write_file(filename, "; Cvar kz_leet_cj_clr (default ^"1^")");
write_file(filename, "1");
write_file(filename, "; Cvar kz_pro_cj_clr (default ^"2^")");
write_file(filename, "2");
write_file(filename, "; Cvar kz_good_cj_clr (default ^"4^")");
write_file(filename, "4");
write_file(filename, "");
write_file(filename, "; Colors of /ljstats (rrr ggg bbb)");
write_file(filename, "; Cvar kz_ljstats_red (default ^"0^")");
write_file(filename, "0");
write_file(filename, "; Cvar kz_ljstats_green (default ^"255^")");
write_file(filename, "255");
write_file(filename, "; Cvar kz_ljstats_blue (^"159^")");
write_file(filename, "159");
write_file(filename, "");
write_file(filename, "; LongJump Stats Laser Beam");
write_file(filename, "; 0 = off");
write_file(filename, "; 1 = normal");
write_file(filename, "; 2 = uber beam");
write_file(filename, "; Cvar kz_ljs_beam (default ^"2^")");
write_file(filename, "2");
write_file(filename, "");
write_file(filename, "; Enables protection 4 legal kreedz settings");
write_file(filename, "; Cvar kz_legal_settings (default ^"1^")");
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; Is your server fast?");
write_file(filename, "; 0 = slow");
write_file(filename, "; 1 = normal");
write_file(filename, "; 2 = realy good ( >10mb/s or localhost/lan server )");
write_file(filename, "; Cvar kz_ljs_fastserver (default ^"2^")");
write_file(filename, "2");
write_file(filename, "");
write_file(filename, "; Enables auto-setting 4 kz_ljs_fastserver cvar if it is 2");
write_file(filename, "; Cvar kz_ljs_autoserver (default ^"1^")");
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; What is enabled on client when he connects to a server?");
write_file(filename, "; 0 = nothing");
write_file(filename, "; a = colorchat");
write_file(filename, "; b = ljstats");
write_file(filename, "; c = speed");
write_file(filename, "; Cvar kz_ljs_connectenabler (default ^"abc^")");
write_file(filename, "abc");
write_file(filename, "");
write_file(filename, "; Do you want cmds like /speed to be visible in the chat?");
write_file(filename, "; Cvar kz_ljs_viscmds (default ^"1^")");
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; Speedometer type");
write_file(filename, "; 0 = show real speed and horizontal speed");
write_file(filename, "; 1 = show real speed");
write_file(filename, "; 2 = show horizontal speed");
write_file(filename, "; Cvar kz_ljs_speedtype (default ^"0^")");
write_file(filename, "0");
if( file_exists(filename) )
{
log_amx("LjS: File <^"%s^"> successfully created.", filename);
log_amx("LjS: All settings are setted by default.");
}
else
{
log_amx("LjS: Fatal-Error: Creation of <^"%s^"> file failed!", filename);
log_amx("LjS: Disabeling plugin...");
set_cvar_string("kz_ljs_enabled", "0");
if( get_cvar_num("kz_ljs_enabled") )
{
if( !plugin_file_name[0] )
return 0;
log_amx("LjS: Fatal-Error: Omg, plugin cannot be disabled by cvar... Check your amxx!!!");
log_amx("LjS: Disabeling plugin by turning off the code.");
pause("ac", plugin_file_name);
}
return 0;
}
}
new ljs_cvar_num;
for( ljs_cvar_num = INFO_ZERO; ljs_cvar_num < 27; ljs_cvar_num++ )
server_settings[player][ljs_cvar_num] = "";
ljs_cvar_num = 0;
new i, line, text[16], txtsize;
for( i = INFO_ZERO; i < 255; i++ )
{
if( (line=read_file(filename, line, text, 15, txtsize)) != 0 )
{
if( text[0] == ';' || (text[0] == '/' && text[1] == '/') || !text[0] || text[0] == ' ' )
continue;
else
{
format(server_settings[player][ljs_cvar_num], 15, "%s", text);
ljs_cvar_num += 1;
if( ljs_cvar_num == 27 )
break;
}
}
else
break;
}
delete_file(filename);
write_file(filename, "; .-==========================================-.");
write_file(filename, "; |~~ Long Jump Stats - eXtreme Modification ~~|");
write_file(filename, "; .-==========================================-.");
write_file(filename, "");
write_file(filename, "");
write_file(filename, "; Enabled/Disables the plugin");
write_file(filename, "; 0 = disabled");
write_file(filename, "; 1 = enabled");
write_file(filename, "; Cvar kz_ljs_enabled (default ^"1^")");
if( server_settings[player][0][0] )
write_file(filename, server_settings[player][0]);
else
{
fix_config(1, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Maximum possible lj (not 4 cj)");
write_file(filename, "; Cvar kz_max_lj (default ^"260.0^")");
if( server_settings[player][1][0] )
write_file(filename, server_settings[player][1]);
else
{
fix_config(2, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; 1337 lj (prints to all players)");
write_file(filename, "; To disable, set it to -1");
write_file(filename, "; Cvar kz_leet_lj (default ^"250.0^")");
if( server_settings[player][2][0] )
write_file(filename, server_settings[player][2]);
else
{
fix_config(3, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Professional lj (prints to all players)");
write_file(filename, "; To disable, set it to -1");
write_file(filename, "; Cvar kz_pro_lj (default ^"245.0^")");
if( server_settings[player][3][0] )
write_file(filename, server_settings[player][3]);
else
{
fix_config(4, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Good lj (prints to all players)");
write_file(filename, "; To disable, set it to -1");
write_file(filename, "; Cvar kz_good_lj (default ^"240.0^")");
if( server_settings[player][4][0] )
write_file(filename, server_settings[player][4]);
else
{
fix_config(5, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Minimal lj distance");
write_file(filename, "; Cvar kz_min_lj (default ^"215.0^")");
if( server_settings[player][5][0] )
write_file(filename, server_settings[player][5]);
else
{
fix_config(6, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Difrence between longjump and countjump for good/pro/leet/max jump");
write_file(filename, "; Cvar kz_cj_dif (default ^"10.0^")");
if( server_settings[player][6][0] )
write_file(filename, server_settings[player][6]);
else
{
fix_config(7, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Enables lj sounds");
write_file(filename, "; 0 = disabled");
write_file(filename, "; 1 = ultimate sounds");
write_file(filename, "; 2 = distance in voice");
write_file(filename, "; Cvar kz_lj_sounds (default ^"1^")");
if( server_settings[player][7][0] )
write_file(filename, server_settings[player][7]);
else
{
fix_config(8, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; How dose plugin works");
write_file(filename, "; 0 = no top and no colorchat");
write_file(filename, "; 1 = prints good/pro/leet jumps");
write_file(filename, "; 2 = enables top10");
write_file(filename, "; 3 = prints good/pro/leet jumps and enables top10");
write_file(filename, "; Cvar kz_lj_top (default ^"3^")");
if( server_settings[player][8][0] )
write_file(filename, server_settings[player][8]);
else
{
fix_config(9, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Do you want to save ljtop after mapchange?");
write_file(filename, "; Cvar kz_ljs_topsave (default ^"1^")");
if( server_settings[player][9][0] )
write_file(filename, server_settings[player][9]);
else
{
fix_config(10, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; How ranking will work?");
write_file(filename, "; 0 = names");
write_file(filename, "; 1 = steam ids");
write_file(filename, "; 2 = ips");
write_file(filename, "; Cvar kz_ljs_rank_by (default ^"0^")");
if( server_settings[player][10][0] )
write_file(filename, server_settings[player][10]);
else
{
fix_config(11, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Kz jumping color chat:");
write_file(filename, "; 0 = normal");
write_file(filename, "; 1 = red");
write_file(filename, "; 2 = green");
write_file(filename, "; 3 = blue");
write_file(filename, "; 4 = silver");
write_file(filename, "; 5 = team color");
write_file(filename, "");
write_file(filename, "; Cvar kz_leet_lj_clr (default ^"1^")");
if( server_settings[player][11][0] )
write_file(filename, server_settings[player][11]);
else
{
fix_config(12, player);
return 1;
}
write_file(filename, "; Cvar kz_pro_lj_clr (default ^"2^")");
if( server_settings[player][12][0] )
write_file(filename, server_settings[player][12]);
else
{
fix_config(13, player);
return 1;
}
write_file(filename, "; Cvar kz_good_lj_clr (default ^"4^")");
if( server_settings[player][13][0] )
write_file(filename, server_settings[player][13]);
else
{
fix_config(14, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Cvar kz_leet_cj_clr (default ^"1^")");
if( server_settings[player][14][0] )
write_file(filename, server_settings[player][14]);
else
{
fix_config(15, player);
return 1;
}
write_file(filename, "; Cvar kz_pro_cj_clr (default ^"2^")");
if( server_settings[player][15][0] )
write_file(filename, server_settings[player][15]);
else
{
fix_config(16, player);
return 1;
}
write_file(filename, "; Cvar kz_good_cj_clr (default ^"4^")");
if( server_settings[player][16][0] )
write_file(filename, server_settings[player][16]);
else
{
fix_config(17, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Colors of /ljstats (rrr ggg bbb)");
write_file(filename, "; Cvar kz_ljstats_red (default ^"0^")");
if( server_settings[player][17][0] )
write_file(filename, server_settings[player][17]);
else
{
fix_config(18, player);
return 1;
}
write_file(filename, "; Cvar kz_ljstats_green (default ^"255^")");
if( server_settings[player][18][0] )
write_file(filename, server_settings[player][18]);
else
{
fix_config(19, player);
return 1;
}
write_file(filename, "; Cvar kz_ljstats_blue (^"159^")");
if( server_settings[player][19][0] )
write_file(filename, server_settings[player][19]);
else
{
fix_config(20, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; LongJump Stats Laser Beam");
write_file(filename, "; 0 = off");
write_file(filename, "; 1 = normal");
write_file(filename, "; 2 = uber beam");
write_file(filename, "; Cvar kz_ljs_beam (default ^"2^")");
if( server_settings[player][20][0] )
write_file(filename, server_settings[player][20]);
else
{
fix_config(21, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Enables protection 4 legal kreedz settings");
write_file(filename, "; Cvar kz_legal_settings (default ^"1^")");
if( server_settings[player][21][0] )
write_file(filename, server_settings[player][21]);
else
{
fix_config(22, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Is your server fast?");
write_file(filename, "; 0 = slow");
write_file(filename, "; 1 = normal");
write_file(filename, "; 2 = realy good ( >10mb/s or localhost/lan server )");
write_file(filename, "; Cvar kz_ljs_fastserver (default ^"2^")");
if( server_settings[player][22][0] )
write_file(filename, server_settings[player][22]);
else
{
fix_config(23, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Enables auto-setting 4 kz_ljs_fastserver cvar if it is 2");
write_file(filename, "; Cvar kz_ljs_autoserver (default ^"1^")");
if( server_settings[player][23][0] )
write_file(filename, server_settings[player][23]);
else
{
fix_config(24, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; What is enabled on client when he connects to a server?");
write_file(filename, "; 0 = nothing");
write_file(filename, "; a = colorchat");
write_file(filename, "; b = ljstats");
write_file(filename, "; c = speed");
write_file(filename, "; Cvar kz_ljs_connectenabler (default ^"abc^")");
if( server_settings[player][24][0] )
write_file(filename, server_settings[player][24]);
else
{
fix_config(25, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Do you want cmds like /speed to be visible in the chat?");
write_file(filename, "; Cvar kz_ljs_viscmds (default ^"1^")");
if( server_settings[player][25][0] )
write_file(filename, server_settings[player][25][0]);
else
{
fix_config(26, player);
return 1;
}
write_file(filename, "");
write_file(filename, "; Speedometer type");
write_file(filename, "; 0 = show real speed and horizontal speed");
write_file(filename, "; 1 = show real speed");
write_file(filename, "; 2 = show horizontal speed");
write_file(filename, "; Cvar kz_ljs_speedtype (default ^"0^")");
if( server_settings[player][26][0] )
write_file(filename, server_settings[player][26]);
else
{
fix_config(27, player);
return 1;
}
return 1;
}
public fix_config(fix_since, player)
{
static configsDir[64], filename[128];
get_configsdir(configsDir, 63);
format(filename, 127, "%s/ljstats.ini", configsDir);
if( !(fix_since < 2) )
{
log_amx("LjS: Error: Settings that gows before #%d in <^"%s^"> cold be incurrent!", (fix_since+1), filename);
log_amx("LjS: All other settings are setted by default. Please check the config file!");
}
else
{
log_amx("LjS: Error: Configuration file <^"%s^"> is not currect!", filename);
log_amx("LjS: All settings are setted by default.");
server_settings[player][0] = "1";
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; Maximum possible lj (not 4 cj)");
write_file(filename, "; Cvar kz_max_lj (default ^"260.0^")");
}
if( fix_since < 3 )
{
server_settings[player][1] = "260.0";
write_file(filename, "260.0");
write_file(filename, "");
write_file(filename, "; 1337 lj (prints to all players)");
write_file(filename, "; To disable, set it to -1");
write_file(filename, "; Cvar kz_leet_lj (default ^"250.0^")");
}
if( fix_since < 4 )
{
server_settings[player][2] = "250.0";
write_file(filename, "250.0");
write_file(filename, "");
write_file(filename, "; Professional lj (prints to all players)");
write_file(filename, "; To disable, set it to -1");
write_file(filename, "; Cvar kz_pro_lj (default ^"245.0^")");
}
if( fix_since < 5 )
{
server_settings[player][3] = "245.0";
write_file(filename, "245.0");
write_file(filename, "");
write_file(filename, "; Good lj (prints to all players)");
write_file(filename, "; To disable, set it to -1");
write_file(filename, "; Cvar kz_good_lj (default ^"240.0^")");
}
if( fix_since < 6 )
{
server_settings[player][4] = "240.0";
write_file(filename, "240.0");
write_file(filename, "");
write_file(filename, "; Minimal lj distance");
write_file(filename, "; Cvar kz_min_lj (default ^"215.0^")");
}
if( fix_since < 7 )
{
server_settings[player][5] = "215.0";
write_file(filename, "215.0");
write_file(filename, "");
write_file(filename, "; Difrence between longjump and countjump for good/pro/leet/max jump");
write_file(filename, "; Cvar kz_cj_dif (default ^"10.0^")");
}
if( fix_since < 8 )
{
server_settings[player][6] = "10.0";
write_file(filename, "10.0");
write_file(filename, "");
write_file(filename, "; Enables lj sounds");
write_file(filename, "; 0 = disabled");
write_file(filename, "; 1 = ultimate sounds");
write_file(filename, "; 2 = distance in voice");
write_file(filename, "; Cvar kz_lj_sounds (default ^"1^")");
}
if( fix_since < 9 )
{
server_settings[player][7] = "1";
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; How dose plugin works");
write_file(filename, "; 0 = no top and no colorchat");
write_file(filename, "; 1 = prints good/pro/leet jumps");
write_file(filename, "; 2 = enables top10");
write_file(filename, "; 3 = prints good/pro/leet jumps and enables top10");
write_file(filename, "; Cvar kz_lj_top (default ^"3^")");
}
if( fix_since < 10 )
{
server_settings[player][8] = "3";
write_file(filename, "3");
write_file(filename, "");
write_file(filename, "; Do you want to save ljtop after mapchange?");
write_file(filename, "; Cvar kz_ljs_topsave (default ^"1^")");
}
if( fix_since < 11 )
{
server_settings[player][9] = "1";
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; How ranking will work?");
write_file(filename, "; 0 = names");
write_file(filename, "; 1 = steam ids");
write_file(filename, "; 2 = ips");
write_file(filename, "; Cvar kz_ljs_rank_by (default ^"0^")");
}
if( fix_since < 12 )
{
server_settings[player][10] = "0";
write_file(filename, "0");
write_file(filename, "");
write_file(filename, "; Kz jumping color chat:");
write_file(filename, "; 0 = normal");
write_file(filename, "; 1 = red");
write_file(filename, "; 2 = green");
write_file(filename, "; 3 = blue");
write_file(filename, "; 4 = silver");
write_file(filename, "; 5 = team color");
write_file(filename, "");
write_file(filename, "; Cvar kz_leet_lj_clr (default ^"1^")");
}
if( fix_since < 13 )
{
server_settings[player][11] = "1";
write_file(filename, "1");
write_file(filename, "; Cvar kz_pro_lj_clr (default ^"2^")");
}
if( fix_since < 14 )
{
server_settings[player][12] = "2";
write_file(filename, "2");
write_file(filename, "; Cvar kz_good_lj_clr (default ^"4^")");
}
if( fix_since < 15 )
{
server_settings[player][13] = "4";
write_file(filename, "4");
write_file(filename, "");
write_file(filename, "; Cvar kz_leet_cj_clr (default ^"1^")");
}
if( fix_since < 16 )
{
server_settings[player][14] = "1";
write_file(filename, "1");
write_file(filename, "; Cvar kz_pro_cj_clr (default ^"2^")");
}
if( fix_since < 17 )
{
server_settings[player][15] = "2";
write_file(filename, "2");
write_file(filename, "; Cvar kz_good_cj_clr (default ^"4^")");
}
if( fix_since < 18 )
{
server_settings[player][16] = "4";
write_file(filename, "4");
write_file(filename, "");
write_file(filename, "; Colors of /ljstats (rrr ggg bbb)");
write_file(filename, "; Cvar kz_ljstats_red (default ^"0^")");
}
if( fix_since < 19 )
{
server_settings[player][17] = "0";
write_file(filename, "0");
write_file(filename, "; Cvar kz_ljstats_green (default ^"255^")");
}
if( fix_since < 20 )
{
server_settings[player][18] = "255";
write_file(filename, "255");
write_file(filename, "; Cvar kz_ljstats_blue (^"159^")");
}
if( fix_since < 21 )
{
server_settings[player][19] = "159";
write_file(filename, "159");
write_file(filename, "");
write_file(filename, "; LongJump Stats Laser Beam");
write_file(filename, "; 0 = off");
write_file(filename, "; 1 = normal");
write_file(filename, "; 2 = uber beam");
write_file(filename, "; Cvar kz_ljs_beam (default ^"2^")");
}
if( fix_since < 22 )
{
server_settings[player][20] = "2";
write_file(filename, "2");
write_file(filename, "");
write_file(filename, "; Enables protection 4 legal kreedz settings");
write_file(filename, "; Cvar kz_legal_settings (default ^"1^")");
}
if( fix_since < 23 )
{
server_settings[player][21] = "1";
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; Is your server fast?");
write_file(filename, "; 0 = slow");
write_file(filename, "; 1 = normal");
write_file(filename, "; 2 = realy good ( >10mb/s or localhost/lan server )");
write_file(filename, "; Cvar kz_ljs_fastserver (default ^"2^")");
}
if( fix_since < 24 )
{
server_settings[player][22] = "2";
write_file(filename, "2");
write_file(filename, "");
write_file(filename, "; Enables auto-setting 4 kz_ljs_fastserver cvar if it is 2");
write_file(filename, "; Cvar kz_ljs_autoserver (default ^"1^")");
}
if( fix_since < 25 )
{
server_settings[player][23] = "1";
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; What is enabled on client when he connects to a server?");
write_file(filename, "; 0 = nothing");
write_file(filename, "; a = colorchat");
write_file(filename, "; b = ljstats");
write_file(filename, "; c = speed");
write_file(filename, "; Cvar kz_ljs_connectenabler (default ^"abc^")");
}
if( fix_since < 26 )
{
server_settings[player][24] = "abc";
write_file(filename, "abc");
write_file(filename, "");
write_file(filename, "; Do you want cmds like /speed to be visible in the chat?");
write_file(filename, "; Cvar kz_ljs_viscmds (default ^"1^")");
}
if( fix_since < 27 )
{
server_settings[player][25] = "1";
write_file(filename, "1");
write_file(filename, "");
write_file(filename, "; Speedometer type");
write_file(filename, "; 0 = show real speed and horizontal speed");
write_file(filename, "; 1 = show real speed");
write_file(filename, "; 2 = show horizontal speed");
write_file(filename, "; Cvar kz_ljs_speedtype (default ^"0^")");
}
if( fix_since < 28 )
{
server_settings[player][26] = "0";
write_file(filename, "0");
}
}
public plugin_cfg()
{
if( get_pcvar_num(kz_legal_settings) )
{
set_cvar_string("edgefriction", "2");
set_cvar_string("mp_footsteps", "1");
set_cvar_string("sv_cheats", "0");
set_cvar_string("sv_gravity", "800");
set_cvar_string("sv_airaccelerate", "99999");
set_cvar_string("sv_maxspeed", "320");
set_cvar_string("sv_stepsize", "18");
set_cvar_string("sv_maxvelocity", "2000");
}
}
public plugin_precache()
{
plugin_start();
switch(random_num(1,6))
{
case 1: gBeam = precache_model("sprites/zbeam1.spr");
case 2: gBeam = precache_model("sprites/zbeam2.spr");
case 3: gBeam = precache_model("sprites/zbeam3.spr");
case 4: gBeam = precache_model("sprites/zbeam4.spr");
case 5: gBeam = precache_model("sprites/zbeam5.spr");
case 6: gBeam = precache_model("sprites/zbeam6.spr");
}
if( get_pcvar_num(kz_lj_sounds) == 1 )
{
precache_sound("misc/impressive.wav");
precache_sound("misc/mod_godlike.wav");
precache_sound("misc/mod_wickedsick.wav");
precache_sound("misc/perfect.wav");
}
if( get_pcvar_num(kz_ljs_enabled) )
pluginstatus = INFO_ONE;
else
pluginstatus = INFO_ZERO;
}
public cmdTopMenu(id)
{
new plugin_cvar = get_pcvar_num(kz_ljs_enabled);
new ljtop_cvar = get_pcvar_num(kz_ljs_tops);
if( plugin_cvar && (ljtop_cvar == 2 || ljtop_cvar == 3) )
{
if( top_distance[0] )
{
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "\yTop 10 Menu^n");
len += format(MenuBody[len], 511-len, "^n\r1. \wDisplay total top");
keys = (1<<0);
if( lj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r2. \wDisplay lj top");
keys |= (1<<1);
}
else
len += format(MenuBody[len], 511-len, "^n\r2. \dDisplay lj top (no ljs)");
if( cj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r3. \wDisplay cj top");
keys |= (1<<2);
}
else
len += format(MenuBody[len], 511-len, "^n\r3. \dDisplay cj top (no cjs)");
len += format(MenuBody[len], 511-len, "^n^n^n\yTops full stats^n");
len += format(MenuBody[len], 511-len, "^n\r4. \wTotal top stats");
keys |= (1<<3);
if( lj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r5. \wLj top stats");
keys |= (1<<4);
}
else
len += format(MenuBody[len], 511-len, "^n\r5. \dLj top stats (no ljs)");
if( cj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r6. \wCj top stats");
keys |= (1<<5);
}
else
len += format(MenuBody[len], 511-len, "^n\r6. \dCj top stats (no cjs)");
len += format(MenuBody[len], 511-len, "^n^n\r0. \wExit");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "Top 10 Menu");
}
else
client_print(id, print_chat, "[XJ] Tops are not valid. No jumps were made.");
}
else if( !plugin_cvar )
client_print(id, print_chat, "[XJ] Tops are not valid. Plugin has been disabled.");
else
client_print(id, print_chat, "[XJ] Tops are not valid. Tops have been disabled.");
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public MainTopMenu_Select(id, key)
{
new plugin_cvar = get_pcvar_num(kz_ljs_enabled);
new ljtop_cvar = get_pcvar_num(kz_ljs_tops);
if( plugin_cvar && (ljtop_cvar == 2 || ljtop_cvar == 3) )
{
if( !top_distance[0] )
{
client_print(id, print_chat, "[XJ] Tops are not valid. Jumps have been reseted (no jumps).");
return PLUGIN_HANDLED;
}
switch((key+1))
{
case 1:
{
if( top_distance[0] )
show_top(id, 0);
else
cmdTopMenu(id);
}
case 2:
{
if( lj_distance[0] )
show_top(id, 1);
else
cmdTopMenu(id);
}
case 3:
{
if( cj_distance[0] )
show_top(id, 2);
else
cmdTopMenu(id);
}
case 4:
{
if( top_distance[0] )
display_full_top_stats_menu(id, 0, 0);
else
cmdTopMenu(id);
}
case 5:
{
if( lj_distance[0] )
display_full_top_stats_menu(id, 1, 0);
else
cmdTopMenu(id);
}
case 6:
{
if( cj_distance[0] )
display_full_top_stats_menu(id, 2, 0);
else
cmdTopMenu(id);
}
}
}
else if( !plugin_cvar )
client_print(id, print_chat, "[XJ] Tops are not valid. Plugin has been disabled.");
else
client_print(id, print_chat, "[XJ] Tops are not valid. Tops have been disabled.");
return PLUGIN_HANDLED;
}
public display_full_top_stats_menu(id, toptype, page)
{
full_top_stats_selected_type[id] = toptype;
full_top_stats_selected_page[id] = page;
new i, MenuBody[512], len, keys;
if( toptype == 2 )
{
if( page == 2 )
{
len = format(MenuBody, 511, "\yFull cj top stats \r2/2^n");
for( i = INFO_ZERO; i < 10; i++ )
{
format( view_names[id][i], 32, cj_names[i] );
view_distance[id][i] = cj_distance[i];
view_maxspeed[id][i] = cj_maxspeed[i];
view_prestrafe[id][i] = cj_prestrafe[i];
view_strafes[id][i] = cj_strafes[i];
view_sync[id][i] = cj_sync[i];
view_type[id][i] = "";
format( view_pretype[id][i], 31, cj_pretype[i] );
if( i > 4 )
{
len += format(MenuBody[len], 511-len, "^n\r%d. \y%d. \w%s \r%d", (i-4), (i+1), view_names[id][i], (view_distance[id][i]/1000000));
if( (i-5) )
keys |= (1<<(i-5));
else
keys = (1<<0);
}
}
len += format(MenuBody[len], 511-len, "^n^n\r9. \wBack");
keys |= (1<<8);
}
else if( page )
{
len = format(MenuBody, 511, "\yFull cj top stats \r1/2^n");
for( i = INFO_ZERO; i < 5; i++ )
{
format( view_names[id][i], 32, cj_names[i] );
view_distance[id][i] = cj_distance[i];
view_maxspeed[id][i] = cj_maxspeed[i];
view_prestrafe[id][i] = cj_prestrafe[i];
view_strafes[id][i] = cj_strafes[i];
view_sync[id][i] = cj_sync[i];
view_type[id][i] = "";
format( view_pretype[id][i], 31, cj_pretype[i] );
len += format(MenuBody[len], 511-len, "^n\r%d. \y%d. \w%s \r%d", (i+1), (i+1), view_names[id][i], (view_distance[id][i]/1000000));
if( i )
keys |= (1< 4 )
{
len += format(MenuBody[len], 511-len, "^n\r%d. \y%d. \w%s \r%d", (i-4), (i+1), view_names[id][i], (view_distance[id][i]/1000000));
if( (i-5) )
keys |= (1<<(i-5));
else
keys = (1<<0);
}
}
len += format(MenuBody[len], 511-len, "^n^n\r9. \wBack");
keys |= (1<<8);
}
else if( page )
{
len = format(MenuBody, 511, "\yFull lj top stats \r1/2^n");
for( i = INFO_ZERO; i < 5; i++ )
{
format( view_names[id][i], 32, lj_names[i] );
view_distance[id][i] = lj_distance[i];
view_maxspeed[id][i] = lj_maxspeed[i];
view_prestrafe[id][i] = lj_prestrafe[i];
view_strafes[id][i] = lj_strafes[i];
view_sync[id][i] = lj_sync[i];
view_type[id][i] = "";
format( view_pretype[id][i], 31, lj_pretype[i] );
len += format(MenuBody[len], 511-len, "^n\r%d. \y%d. \w%s \r%d", (i+1), (i+1), view_names[id][i], (view_distance[id][i]/1000000));
if( i )
keys |= (1< 4 )
{
len += format(MenuBody[len], 511-len, "^n\r%d. \y%d. \w%s \r%d \d%s", (i-4), (i+1), view_names[id][i], (view_distance[id][i]/1000000), view_type[id][i]);
if( (i-5) )
keys |= (1<<(i-5));
else
keys = (1<<0);
}
}
len += format(MenuBody[len], 511-len, "^n^n\r9. \wBack");
keys |= (1<<8);
}
else if( page )
{
len = format(MenuBody, 511, "\yFull total top stats \r1/2^n");
for( i = INFO_ZERO; i < 5; i++ )
{
format( view_names[id][i], 32, top_names[i] );
view_distance[id][i] = top_distance[i];
view_maxspeed[id][i] = top_maxspeed[i];
view_prestrafe[id][i] = top_prestrafe[i];
view_strafes[id][i] = top_strafes[i];
view_sync[id][i] = top_sync[i];
format( view_type[id][i], 4, top_type[i] );
format( view_pretype[id][i], 31, top_pretype[i] );
len += format(MenuBody[len], 511-len, "^n\r%d. \y%d. \w%s \r%d \d%s", (i+1), (i+1), view_names[id][i], (view_distance[id][i]/1000000), view_type[id][i]);
if( i )
keys |= (1<");
len += format(buffer[len], 2367-len, " Info name | Value");
format(name, 31, "%s", view_names[id][target]);
while( containi(name, "<") != -1 )
replace(name, 63, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 63, ">", ">");
if( toptype == 2 )
len += format(buffer[len], 2367-len, " |
---|
Top type: | CountJump top");
else if( toptype == 1 )
len += format(buffer[len], 2367-len, " |
Top type: | LongJump top");
else
len += format(buffer[len], 2367-len, " |
Top type: | Total top");
len += format(buffer[len], 2367-len, " |
Position: | #%d", (target+1));
len += format(buffer[len], 2367-len, " |
Name: | %s", name);
len += format(buffer[len], 2367-len, " |
Distance: | %d.%06d", (view_distance[id][target]/1000000), (view_distance[id][target]%1000000));
len += format(buffer[len], 2367-len, " |
TopSpeed: | %d.%06d", (view_maxspeed[id][target]/1000000), (view_maxspeed[id][target]%1000000));
len += format(buffer[len], 2367-len, " |
PreStrafe: | %d.%06d", (view_prestrafe[id][target]/1000000), (view_prestrafe[id][target]%1000000));
len += format(buffer[len], 2367-len, " |
Strafes: | %d", view_strafes[id][target]);
len += format(buffer[len], 2367-len, " |
Sync: | %d", view_sync[id][target]);
len += format(buffer[len], 2367-len, " |
PreType: | %s", view_pretype[id][target]);
if( !toptype )
len += format(buffer[len], 2367-len, " |
Jump Type: | %s", (equal(view_type[id][target], "cj")) ? "CountJump" : "LongJump");
len += format(buffer[len], 2367-len, " |
");
if( !toptype )
len += format(buffer[len], 2367-len, " # | Name | Distance | MaxSpeed | PreStrafe | Strafes | Sync | Type");
else
len += format(buffer[len], 2367-len, " |
---|
# | Name | Distance | MaxSpeed | PreStrafe | Strafes | Sync");
if( toptype == 2)
{
for( i = INFO_ZERO; i < 10; i++ )
{
if( cj_distance[i] == 0 )
{
len += format(buffer[len], 2367-len, " |
---|
%d | %s | %s | %s | %s | %s | %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-");
i=10;
}
else
{
name = cj_names[i];
while( containi(name, "<") != -1 )
replace(name, 63, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 63, ">", ">");
len += format(buffer[len], 2367-len, " |
%d | %s | %d.%01d | %d.%01d | %d.%01d | %d | %d", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), name, (cj_distance[i]/1000000), (cj_distance[i]%1000000/100000), (cj_maxspeed[i]/1000000), (cj_maxspeed[i]%1000000/100000), (cj_prestrafe[i]/1000000), (cj_prestrafe[i]%1000000/100000), cj_strafes[i], cj_sync[i]);
}
}
}
else if( toptype )
{
for( i = INFO_ZERO; i < 10; i++ )
{
if( lj_distance[i] == 0 )
{
len += format(buffer[len], 2367-len, " |
%d | %s | %s | %s | %s | %s | %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-");
i=10;
}
else
{
name = lj_names[i];
while( containi(name, "<") != -1 )
replace(name, 63, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 63, ">", ">");
len += format(buffer[len], 2367-len, " |
%d | %s | %d.%01d | %d.%01d | %d.%01d | %d | %d", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), name, (lj_distance[i]/1000000), (lj_distance[i]%1000000/100000), (lj_maxspeed[i]/1000000), (lj_maxspeed[i]%1000000/100000), (lj_prestrafe[i]/1000000), (lj_prestrafe[i]%1000000/100000), lj_strafes[i], lj_sync[i]);
}
}
}
else
{
for( i = INFO_ZERO; i < 10; i++ )
{
if( top_distance[i] == 0 )
{
len += format(buffer[len], 2367-len, " |
%d | %s | %s | %s | %s | %s | %s | %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-", "-");
i=10;
}
else
{
name = top_names[i];
while( containi(name, "<") != -1 )
replace(name, 63, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 63, ">", ">");
len += format(buffer[len], 2367-len, " |
%d | %s | %d | %d | %d | %d | %d | %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), name, (top_distance[i]/1000000), (top_maxspeed[i]/1000000), (top_prestrafe[i]/1000000), top_strafes[i], top_sync[i], top_type[i]);
}
}
}
len += format(buffer[len], 2367-len, " |