Member
|
01-11-2021
, 02:23
Server crashes on round restart
|
#1
|
I don't have real players, I am testing mod with bodbots, when I am dying and bt kills all bot's, on respawn server fails. I think that's because all players spawn at once, error :
Code:
L 01/11/2021 - 11:17:52: [CSTRIKE] Invalid player 25
L 01/11/2021 - 11:17:52: [AMXX] Displaying debug trace (plugin "csomod_2.amxx")
L 01/11/2021 - 11:17:52: [AMXX] Run time error 10: native error (native "cs_set_user_model")
L 01/11/2021 - 11:17:52: [AMXX] [0] csomod_2.sma::set_player_class (line 233)
L 01/11/2021 - 11:17:52: [AMXX] [1] csomod_2.sma::fwHamPlayerSpawnPost (line 68)
FATAL ERROR (shutting down): SZ_GetSpace: overflow without FSB_ALLOWOVERFLOW set on Server Reliable Datagram
Also, menu is not opening on M button click.
My code:
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
new selected_class[33]
new player_selected[33]
new const class_names[][] = {
"Fernando",
"Blair"
}
new const class_models[][] = {
"models/player/fernando/fernando.mdl",
"models/player/blair/blair.mdl"
}
new const class_model_names[][] = {
"fernando",
"blair"
}
public plugin_init()
{
register_clcmd("chooseteam", "main_menu")
register_clcmd("jointeam", "main_menu")
register_clcmd("say /m", "main_menu")
}
public plugin_precache()
{
for (new i; i < sizeof class_models; i++) {
engfunc(EngFunc_PrecacheModel, class_models[i])
}
}
public client_putinserver(id) {
selected_class[id] = 0
player_selected[id] = 0
}
public client_disconnected(id)
{
cs_reset_user_model(id);
}
public main_menu(id)
{
new menu = menu_create("\rGame Menu", "main_menu_handler")
menu_additem(menu, "\wChange Class", "1", 0)
menu_additem(menu, "\wShop", "2", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}
public main_menu_handler(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)
switch(key)
{
case 1:
{
class_menu(id)
}
case 2:
{
shop_menu(id)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public shop_menu(id)
{
new menu = menu_create("\rShop Menu", "shop_menu_handler")
menu_additem(menu, "\wBuy +50HP", "1", 0)
menu_additem(menu, "\wBuy M4A1", "2", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}
public shop_menu_handler(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)
switch(key)
{
case 1:
{
if(cs_get_user_money(id) >= 5000) {
set_user_health(id, get_user_health(id)+50)
cs_set_user_money(id, cs_get_user_money(id)-5000)
} else {
client_print(id, print_chat, "[CSO] You have don't have enough money.")
}
}
case 2:
{
if(cs_get_user_money(id) >= 3000) {
drop_primary_weapons(id)
give_item(id, "weapon_m4a1")
give_item(id, "ammo_")
cs_set_user_money(id, cs_get_user_money(id)-3000)
} else {
client_print(id, print_chat, "[CSO] You have don't have enough money.")
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public ClCmdSelectModel(id, menuid)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED;
class_menu(id)
return PLUGIN_CONTINUE;
}
public class_menu(id)
{
new menu = menu_create("\rChoose Class:", "class_menu_handler")
for (new i = 0; i < sizeof class_names; i++) {
new name[64];
formatex(name, charsmax(name), "\w%s", class_names[i])
new index[16];
num_to_str((i+1), index, charsmax(index))
menu_additem(menu, name, index, 0)
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}
public class_menu_handler(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)
if(!player_selected[id]) {
player_selected[id] = 1
for(new i = 1; i <= sizeof class_names; i++) {
if(key == i) {
set_player_class(id, key-1)
}
}
}
client_print(id, print_chat,"[CSO] Your new class is: %s", class_names[key-1])
selected_class[id] = key-1
menu_destroy(menu)
return PLUGIN_HANDLED
}
public set_player_class(id, class) {
cs_set_user_model(id, class_model_names[class]);
give_item(id, "item_assaultsuit")
return PLUGIN_HANDLED
}
stock drop_primary_weapons(id)
{
static weapons [ 32 ], num, i, weaponid
num = 0
get_user_weapons (id, weapons, num )
for ( i = 0; i < num; i++ )
{
weaponid = weapons [ i ]
if ( ( (1<<weaponid) & PRIMARY_WEAPONS_BITSUM ) )
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}
P.S. I want to add lvls too, can you how me a good example of lvl system ?
__________________
Last edited by SaBBa; 01-15-2021 at 04:14.
|
|