AlliedModders Donor
Join Date: Aug 2019
Location: Romania
|
03-03-2020
, 14:05
Index out of bounds
|
#1
|
Hello,
I have a crosshair menu plugin, sometimes it causes Segmentation Fault on my Cs 1.6 dedicated server.
Error Log:
PHP Code:
03/03/2020 - 20:55:20: [AMXX] Displaying debug trace (plugin "tinta.amxx", version "1.1")
03/03/2020 - 20:55:20: [AMXX] Run time error 4: index out of bounds
03/03/2020 - 20:55:20: [AMXX] [0] tinta.sma::Event_CurWeapon (line 229)
FATA ERROR (shutting down): PF_MessageBegin_I: New message started when msg '78' has not been sent yet
Segmentation fault (core dumped)
Code:
PHP Code:
#include <amxmodx>
#include <engine>
#include <cstrike>
#include <fakemeta>
new const SilahBilgi[25][3] = {
{9,52,1},
{12,1,4},
{5,32,5},
{14,1,6},
{6,100,7},
{4,90,8},
{13,1,9},
{10,120,10},
{7,100,11},
{6,100,12},
{4,90,14},
{4,90,15},
{6,100,16},
{10,120,17},
{10,120,19},
{3,200,20},
{5,32,21},
{4,90,22},
{10,120,23},
{11,2,25},
{8,35,26},
{4,90,27},
{2,90,28},
{-1,-1,29},
{7,100,30}
}
new scope[33];
new const sprites[6][4][64] = {
{"Tinta Normala","Txt Yolu","Sprite Yolu","Txt Adi"},
{"Tinta CS:GO","sprites/custom_cross2_fix.txt","sprites/csgo_crosshair_32.spr","custom_cross2_fix"},
{"Tinta Fixa","sprites/custom_cross_fix_yeni3.txt","sprites/csgo_nisan_yeni3.spr","custom_cross_fix_yeni3"},
{"Tinta Flusha ","sprites/custom_cross3_fix.txt","sprites/artinisan.spr","custom_cross3_fix"},
{"Tinta KennyS ","sprites/custom_cross5_fix4.txt","sprites/dahakucuk4.spr","custom_cross5_fix4"},
{"Tinta S1mple ","sprites/custom_cross_baslangic.txt","sprites/csgo_baslangic.spr","custom_cross_baslangic"}
}
new cross[33];
public plugin_init()
{
register_plugin("CS:GO Crosshair","1.1","KriTo");
register_event("CurWeapon","Event_CurWeapon","be","1=1");
register_clcmd("buyammo1","guncelle1");
register_clcmd("buyammo2","guncelle1");
register_clcmd("custom_cross2_fix","FakeSwitch");
register_clcmd("say /crosshair","crossmenu");
register_clcmd("say /tinta","crossmenu");
}
public client_disconnected(id){
cross[id] = 1;
}
public client_putinserver(id){
cross[id] = 1;
}
public client_PreThink(id)
{
new button = pev(id, pev_oldbuttons);
new oldbutton = pev(id, pev_button);
if(oldbutton & IN_ATTACK2)
{
if(button & IN_ATTACK2)
return PLUGIN_CONTINUE;
new weapon = get_user_weapon(id);
if(weapon == CSW_AUG || weapon == CSW_SG552)
{
if(scope[id]==0)
scope[id]=1;
else
scope[id]=0;
Guncelle(id);
} else if(weapon != CSW_AUG || weapon != CSW_SG552)
{
scope[id]=0;
}
}
return PLUGIN_CONTINUE;
}
public crossmenu(id)
{
new Menu=menu_create("\yGO.LEAGUECS.RO -> \rCS:GO^n","crossdevam");
menu_additem(Menu,"Tinta Normala","1");
for(new i=1;i<sizeof(sprites);i++)
{
new Item[128],text[12];
formatex(Item,127,"%s",sprites[i][0]);
num_to_str(i+1,text,11);
menu_additem(Menu,Item,text);
}
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id,Menu,0);
}
public crossdevam(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
cross[id] = key-1;
if(cross[id] == 0)
{
message_begin(MSG_ONE, get_user_msgid("HideWeapon"), .player=id);
write_byte(1<<7);
message_end();
}
client_print_color(id, id, "^3Ai ales ^4%s ",sprites[cross[id]][0])
Guncelle(id);
return PLUGIN_HANDLED;
}
public guncelle1(id)
{
set_task(0.1,"Guncelle",id);
return PLUGIN_CONTINUE;
}
public Guncelle(id)
{
if(!is_user_alive(id) || cross[id] == 0)
return PLUGIN_HANDLED;
new weapon = get_user_weapon(id);
if( weapon == CSW_AWP || weapon == CSW_SCOUT || weapon == CSW_SG550 || weapon == CSW_G3SG1)
return PLUGIN_CONTINUE
new i;
for(i=0;i<sizeof(SilahBilgi);i++)
{
new yeniweap = SilahBilgi[i][2];
if(weapon == yeniweap)
{
break;
} else if(i==sizeof(SilahBilgi)-1)
{
return PLUGIN_CONTINUE;
}
}
message_begin(MSG_ONE, get_user_msgid("HideWeapon"), .player=id);
write_byte(1<<6);
message_end();
message_begin(MSG_ONE,get_user_msgid("WeaponList"), .player=id);
write_string(sprites[cross[id]][3]);
write_byte(SilahBilgi[i-1][0]);
write_byte(SilahBilgi[i-1][1]);
write_byte(-1);
write_byte(-1);
write_byte(6);
write_byte(0);
write_byte(2);
write_byte(0);
message_end();
message_begin(MSG_ONE,get_user_msgid("SetFOV"), .player=id);
if(scope[id] == 1)
write_byte(55);
else
write_byte(89);
message_end();
new ammo,bpammo;
get_user_ammo(id,weapon,ammo,bpammo);
message_begin(MSG_ONE,get_user_msgid("CurWeapon"), .player=id);
write_byte(1);
write_byte(2);
write_byte(ammo);
message_end();
if(weapon != CSW_KNIFE) {
message_begin(MSG_ONE,get_user_msgid("AmmoX"), .player=id);
write_byte(SilahBilgi[i-1][0]);
write_byte(bpammo);
message_end();
}
if(scope[id] == 0) {
message_begin(MSG_ONE,get_user_msgid("SetFOV"), .player=id);
write_byte(90);
message_end();
}
return PLUGIN_HANDLED;
}
public FakeSwitch(const client)engclient_cmd(client,"weapon_shield");
public plugin_precache()
{
for(new i=1;i<sizeof(sprites);i++)
{
precache_generic(sprites[i][1]);
precache_generic(sprites[i][2]);
}
}
public Event_CurWeapon(id)
{
if(!is_user_alive(id) || cross[id] == 0)
return PLUGIN_HANDLED;
new weapon = read_data(2);
if( weapon == CSW_AWP || weapon == CSW_SCOUT || weapon == CSW_SG550 || weapon == CSW_G3SG1)
return PLUGIN_CONTINUE
new i;
for(i=0;i<sizeof(SilahBilgi);i++)
{
new yeniweap = SilahBilgi[i][2];
if(weapon == yeniweap)
{
break;
} else if(i==sizeof(SilahBilgi)-1)
{
message_begin(MSG_ONE,get_user_msgid("SetFOV"), .player=id);
write_byte(90);
message_end();
return PLUGIN_CONTINUE;
}
}
message_begin(MSG_ONE, get_user_msgid("HideWeapon"), .player=id);
write_byte(1<<6);
message_end();
message_begin(MSG_ONE,get_user_msgid("WeaponList"), .player=id);
write_string(sprites[cross[id]][3]);
write_byte(SilahBilgi[i-1][0]);
write_byte(SilahBilgi[i-1][1]);
write_byte(-1);
write_byte(-1);
write_byte(6);
write_byte(0);
write_byte(2);
write_byte(0);
message_end();
message_begin(MSG_ONE,get_user_msgid("SetFOV"), .player=id);
if(scope[id] == 1)
write_byte(55);
else
write_byte(89);
message_end();
new ammo,bpammo;
get_user_ammo(id,weapon,ammo,bpammo);
message_begin(MSG_ONE,get_user_msgid("CurWeapon"), .player=id);
write_byte(1);
write_byte(2);
write_byte(ammo);
message_end();
if(weapon != CSW_KNIFE) {
message_begin(MSG_ONE,get_user_msgid("AmmoX"), .player=id);
write_byte(SilahBilgi[i-1][0]);
write_byte(bpammo);
message_end();
}
if(scope[id] == 0) {
message_begin(MSG_ONE,get_user_msgid("SetFOV"), .player=id);
write_byte(90);
message_end();
}
return PLUGIN_HANDLED;
}
__________________
|
|