всем привет))
в краце: в общем ребят такая проблема плагин по консоле проверял работает как, а в логах ошибка
12/25/2019 - 21:42:50: [AMXX] Run time error 4 (plugin "jbe_ghost.amxx") - debug not enabled!
L 12/25/2019 - 21:42:50: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 12/25/2019 - 21:42:50: [AMXX] Run time error 4 (plugin "jbe_core.amxx") - debug not enabled!
L 12/25/2019 - 21:42:50: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 12/25/2019 - 21:42:50: [AMXX] Run time error 4 (plugin "jbe_ghost.amxx") - debug not enabled!
а вот сам sma
#include <amxmodx>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <jbe_core>
new g_iMaxPlayers;
new bool:g_iUserGhost[33];
new bool:g_iUserSpeed[33];
new bool:g_iUserGravity[33];
public plugin_init()
{
register_plugin("[JBE] Addons: Deathmenu", "1.2", "OverGame");
register_menucmd(register_menuid("Show_GhostMenu"), (1<<0|1<<1|1<<2|1<<3|1<<9), "Handle_GhostMenu");
g_iMaxPlayers = get_maxplayers();
RegisterHam(Ham_Item_PreFrame, "player", "Ham_ItemPreFrame_Pre", 0);
RegisterHam(Ham_TakeDamage,"player", "TakeDamage",0)
RegisterHam(Ham_Spawn,"player", "player_respawn",1)
register_event("HLTV", "roundStart", "a", "1=0", "2=0")
RegisterHam(Ham_Use, "func_button", "HamHook_UseButtons", 0);
RegisterHam(Ham_Touch, "weaponbox", "HamHook_TouchWeapon", 0);
RegisterHam(Ham_Touch, "armoury_entity", "HamHook_TouchWeapon", 0);
RegisterHam(Ham_Touch, "weapon_hegrenade", "HamHook_TouchWeapon", 0);
register_forward(FM_EmitSound,"TRIGGER_EmitSound");
register_forward(FM_EmitSound,"Sound_Hook");
register_dictionary("jbe_core.txt");
register_clcmd("kill", "ClCmd_Kill");
}
public HamHook_UseButtons(ent, id, iCallerId, iUseType, Float:flValue)
{
if(g_iUserGhost[id])
{
if(pev(ent, pev_frame) > 0.0) return HAM_IGNORED;
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public HamHook_TouchWeapon(ent, id)
{
if(is_user_connected(id) && g_iUserGhost[id])
{
if(!is_valid_ent(ent)) return HAM_IGNORED;
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
enum _:STRSCORE
{
SC_KILL,
SC_DEATH
}
new gPlScore[33][STRSCORE];
public Sound_Hook(id, channel, sample[])
{
if(0 < id <= 32)
{
if(g_iUserGhost[id])
{
return FMRES_SUPERCEDE;
}
}
return FMRES_IGNORED;
}
public player_respawn(id)
{
if(!is_user_alive(id))
return;
if(g_iUserGhost[id])
{
if(gPlScore[id][SC_KILL] == -1)
gPlScore[id][SC_KILL] = get_user_frags(id);
if(gPlScore[id][SC_DEATH] == -1)
gPlScore[id][SC_DEATH] = cs_get_user_deaths(id);
set_task(0.1,"taskSpawn",id );
set_entity_visibility(id,0);
}
else
{
if(gPlScore[id][SC_KILL] != -1)
{
set_user_frags(id, gPlScore[id][SC_KILL]);
}
if(gPlScore[id][SC_DEATH] != -1)
{
cs_set_user_deaths(id, gPlScore[id][SC_DEATH]);
}
set_entity_visibility(id,1);
if(is_user_alive(id))
set_user_footsteps(id,0);
}
}
public taskSpawn(id)
{
if(!is_user_alive(id)) return;
set_pev(id,pev_health,100.0);
set_pev(id, pev_deadflag, DEAD_RESPAWNABLE)
set_user_footsteps(id,1);
set_pev(id, pev_solid, SOLID_NOT)
set_entity_visibility( id, 0 );
strip_user_weapons(id);
set_user_godmode(id,0)
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte((1<<0))
message_end()
}
public roundStart()
{
for(new id = 1; id <= g_iMaxPlayers; id++)
{
if(!is_user_connected(id))
continue;
if(g_iUserGhost[id])
{
g_iUserGhost[id] = false;
}
if(gPlScore[id][SC_KILL] != -1)
{
set_user_frags(id,gPlScore[id][SC_KILL]);
}
if(gPlScore[id][SC_DEATH] != -1)
{
cs_set_user_deaths(id,gPlScore[id][SC_DEATH]);
}
}
}
public client_putinserver(id)
{
g_iUserGhost[id] = false;
g_iUserSpeed[id] = false;
g_iUserGravity[id] = false;
gPlScore[id][SC_KILL] = -1;
gPlScore[id][SC_DEATH] = -1;
}
public TakeDamage(victim, inflicator, attacker)
{
if(g_iUserGhost[victim] || g_iUserGhost[attacker])
{
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public Ham_ItemPreFrame_Pre(id)
{
if(is_user_connected(id) && is_user_alive(id))
{
if(g_iUserGhost[id] && g_iUserSpeed[id])
{
set_pev(id, pev_maxspeed, 500.0);
return HAM_SUPERCEDE;
}
}
return HAM_IGNORED;
}
public Show_GhostMenu(id)
{
if(is_user_alive(id) || jbe_get_day_mode() == 3) return PLUGIN_HANDLED;
new szMenu[512], iKeys = (1<<9), iLen = formatex(szMenu, charsmax(szMenu), "\w%L^n^n", id, "JBE_MENU_GHOST_TITLE");
if(!g_iUserGhost[id])
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L^n", id, "JBE_KEY", 1, id, "JBE_MENU_GHOST_SET");
iKeys |= (1<<0);
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L^n^n", id, "JBE_KEY", 1, id, "JBE_MENU_GHOST_BACK");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L %L^n", id, "JBE_KEY", 2, id, "JBE_MENU_GHOST_NOCLIP", id, get_user_noclip(id) ? "JBE_MENU_ENABLE" : "JBE_MENU_DISABLE");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L %L^n", id, "JBE_KEY", 3, id, "JBE_MENU_GHOST_SPEED", id, g_iUserSpeed[id] ? "JBE_MENU_ENABLE" : "JBE_MENU_DISABLE");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L \w%L %L^n", id, "JBE_KEY", 4, id, "JBE_MENU_GHOST_GRAVITY", id, g_iUserGravity[id] ? "JBE_MENU_ENABLE" : "JBE_MENU_DISABLE");
iKeys |= (1<<0|1<<1|1<<2|1<<3);
}
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n%L \w%L", id, "JBE_KEY", 0, id, "JBE_MENU_EXIT");
return show_menu(id, iKeys, szMenu, -1, "Show_GhostMenu");
}
public Handle_GhostMenu(id, iKey)
{
if(is_user_alive(id) || jbe_get_day_mode() == 3) return PLUGIN_HANDLED;
switch(iKey)
{
case 0:
{
if(!g_iUserGhost[id])
{
g_iUserGhost[id] = true;
ExecuteHam(Ham_CS_RoundRespawn, id);
Show_GhostMenu(id);
}
else
{
g_iUserGhost[id] = false;
set_pev(id, pev_deadflag, DEAD_NO)
user_silentkill(id);
return PLUGIN_HANDLED;
}
}
case 1: set_user_noclip(id, get_user_noclip(id) ? 0:1);
case 2:
{
if(g_iUserSpeed[id])
{
set_pev(id, pev_maxspeed, 250.0);
g_iUserSpeed[id] = false;
}
else
{
set_pev(id, pev_maxspeed, 500.0);
g_iUserSpeed[id] = true;
}
}
case 3:
{
if(g_iUserGravity[id])
{
set_pev(id, pev_gravity, 1.0);
g_iUserGravity[id] = false;
}
else
{
set_pev(id, pev_gravity, 0.5);
g_iUserGravity[id] = true;
}
}
case 9: return PLUGIN_HANDLED;
}
return Show_GhostMenu(id);
}
public TRIGGER_EmitSound(idUser, Channel, const sName[], Float:Volume, Float:attn, flags, pitch)
{
if(equal(sName, "player/die1.wav") || equal(sName, "player/die2.wav") || equal(sName, "player/die3.wav")|| equal(sName, "player/death6.wav"))
return FMRES_SUPERCEDE;
return PLUGIN_CONTINUE;
}
public plugin_natives()
{
register_native("is_user_ghost", "is_user_ghost", 1);
register_native("open_user_ghostmenu", "open_user_ghostmenu", 1);
}
public is_user_ghost(id) return g_iUserGhost[id];
public open_user_ghostmenu(id) Show_GhostMenu(id);
public ClCmd_Kill(id)
{
if(g_iUserGhost[id]) return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
stock ChatColor(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, "!y", "^1") // Стандартный
replace_all(msg, 190, "!t", "^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();
}
}
}
}