Junior Member
|
05-15-2024
, 14:57
Problem with plugin after installing newest RegameDLL
|
#1
|
Hey there, so I installed newest regamedll 5.26, because my csstatsX doesn't work with older versions.
And I encounter a problem. I have a plugin(support is dead for years there). It's HNS DM, so the problem is, on older regamedll version when Terrorist dies by falling from the height , random CT become a Terrorist.
It does work on regamedll 5.21.0.576 but my csstatsX otherwise.
PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <cstrike>
#include <hamsandwich>
#include <fun>
new const g_Plugin[] = "HNS Deathmatch";
new const g_Version[] = "2.2.1";
new const g_Author[] = "Jon";
#define m_fHasPrimary 116
#define m_iJoinedState 121
#define m_iMenu 205
#define MENU_CHOOSETEAM 1
#define MENU_CHOOSEAPPEARANCE 3
new g_CvarEnable,
g_CvarGameName,
g_CvarStabOnly,
g_CvarRespawnDelay,
g_CvarProtectionTime,
g_CvarNoFlash,
g_CvarHidersFlashbangs,
g_CvarHidersSmokegrenade,
g_CvarHidersHegrenade,
g_CvarSeekersFlashbangs,
g_CvarSeekersSmokegrenade,
g_CvarSeekersHegrenade,
Trie:g_tBuyAliases,
Trie:g_tRemoveEntities
public plugin_init()
{
register_plugin(g_Plugin, g_Version, g_Author);
set_pcvar_string(
register_cvar("hns_deathmatch_version", g_Version, FCVAR_SERVER),
g_Version
)
g_CvarEnable = register_cvar("hnsdm_enable", "1");
if(!get_pcvar_num(g_CvarEnable))
return
new gamename[32];
formatex(gamename, charsmax(gamename), "%s %s", g_Plugin, g_Version);
g_CvarGameName = register_cvar("hnsdm_gamename", gamename);
g_CvarStabOnly = register_cvar("hnsdm_stabonly", "1");
g_CvarRespawnDelay = register_cvar("hnsdm_respawndelay", "1.5");
g_CvarProtectionTime = register_cvar("hnsdm_protectiontime", "5.0");
g_CvarNoFlash = register_cvar("hnsdm_noflash", "1");
g_CvarHidersFlashbangs = register_cvar("hnsdm_hiders_flashbangs", "1")
g_CvarHidersSmokegrenade = register_cvar("hnsdm_hiders_smokegrenade", "1")
g_CvarHidersHegrenade = register_cvar("hnsdm_hiders_hegrenade", "0")
g_CvarSeekersFlashbangs = register_cvar("hnsdm_seekers_flashbangs", "0")
g_CvarSeekersSmokegrenade = register_cvar("hnsdm_seekers_smokegrenade", "0")
g_CvarSeekersHegrenade = register_cvar("hnsdm_seekers_hegrenade", "0")
register_event("DeathMsg", "eventDeathMsg", "a");
register_message(get_user_msgid("ScreenFade"), "msgScreenFade");
register_forward(FM_CmdStart, "fwdCmdStart");
register_forward(FM_GetGameDescription,"fwdGetGameDescription");
RegisterHam(Ham_Spawn, "player", "eventPlayerSpawn", 1);
register_clcmd("buy", "HandleBlock");
register_clcmd("buyammo1", "HandleBlock");
register_clcmd("buyammo2", "HandleBlock");
register_clcmd("buyequip", "HandleBlock");
register_clcmd("cl_autobuy", "HandleBlock");
register_clcmd("cl_rebuy", "HandleBlock");
register_clcmd("cl_setautobuy", "HandleBlock");
register_clcmd("cl_setrebuy", "HandleBlock");
register_clcmd("chooseteam", "HandleBlock");
register_clcmd("say /respawn", "RespawnPlayer");
register_clcmd("jointeam", "ClCmd_jointeam")
register_clcmd("joinclass", "ClCmd_joinclass")
register_clcmd("menuselect", "ClCmd_joinclass")
new BuyCommands[][] =
{
"usp", "glock", "deagle", "p228", "elites",
"fn57", "m3", "xm1014", "mp5", "tmp", "p90",
"mac10", "ump45", "ak47", "galil", "famas",
"sg552", "m4a1", "aug", "scout", "awp", "g3sg1",
"sg550", "m249", "vest", "vesthelm", "flash",
"hegren", "sgren", "defuser", "nvgs", "shield",
"primammo", "secammo", "km45", "9x19mm", "nighthawk",
"228compact", "fiveseven", "12gauge", "autoshotgun",
"mp", "c90", "cv47", "defender", "clarion", "krieg552",
"bullpup", "magnum", "d3au1", "krieg550",
"buy", "buyequip", "buyammo1", "buyammo2"
}
g_tBuyAliases = TrieCreate()
for(new i; i<sizeof( BuyCommands ); i++)
{
strtolower( BuyCommands[i] )
TrieSetCell(g_tBuyAliases, BuyCommands[i], 1)
}
}
public plugin_precache()
{
new EntityClassNames[][] =
{
"func_breakable",
"func_door_rotating",
"func_door",
"func_vip_safetyzone",
"func_escapezone",
"hostage_entity",
"monster_scientist",
"func_bomb_target",
"info_bomb_target"
}
g_tRemoveEntities = TrieCreate()
for(new i; i<sizeof( EntityClassNames ); i++)
{
TrieSetCell(g_tRemoveEntities, EntityClassNames[i], 1)
}
}
public ClCmd_jointeam( id )
{
if( get_pdata_int(id, m_iMenu) != MENU_CHOOSETEAM )
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public ClCmd_joinclass( id )
{
if( get_pdata_int(id, m_iMenu) == MENU_CHOOSEAPPEARANCE )
{
set_task(get_pcvar_float(g_CvarRespawnDelay), "RespawnPlayer", id)
}
return PLUGIN_CONTINUE
}
public eventDeathMsg()
{
new killer = read_data(1)
new victim = read_data(2)
if(killer == 0)
{
if( cs_get_user_team(victim) == CS_TEAM_T )
{
new lucky = GetRandomCT();
if( lucky )
{
cs_set_user_team(lucky, CS_TEAM_T)
client_print(lucky, print_chat, "[HNS] An idiot jumped off and you were lucky and got transfered to Terrorist.")
cs_set_user_team(victim, CS_TEAM_CT);
GiveItems(lucky)
SetStealth(lucky)
}
}
}
else if(killer != victim && cs_get_user_team(killer) == CS_TEAM_CT)
{
cs_set_user_team(killer, CS_TEAM_T);
cs_set_user_team(victim, CS_TEAM_CT);
GiveItems(killer)
SetStealth(killer)
}
set_task(get_pcvar_float(g_CvarRespawnDelay), "RespawnPlayer", victim)
}
public eventPlayerSpawn(id)
{
if(is_user_alive(id)) GiveItems(id);
}
public RespawnPlayer(id)
{
if(!is_user_alive(id)) ExecuteHam(Ham_CS_RoundRespawn, id);
}
public fwdCmdStart(id, handle, seed)
{
if( get_pcvar_num(g_CvarStabOnly)
&& is_user_alive(id)
&& cs_get_user_team(id) == CS_TEAM_CT
&& get_user_weapon(id) == CSW_KNIFE )
{
static button
button = get_uc(handle, UC_Buttons)
if(button & IN_ATTACK)
{
set_uc(handle, UC_Buttons, (button & ~IN_ATTACK) | IN_ATTACK2)
return FMRES_HANDLED
}
}
if( get_pcvar_num(g_CvarStabOnly)
&& is_user_alive(id)
&& cs_get_user_team(id) == CS_TEAM_T
&& get_user_weapon(id) == CSW_KNIFE )
{
static button
button = get_uc(handle, UC_Buttons)
if((button & IN_ATTACK) | (button & IN_ATTACK2))
{
set_uc(handle, UC_Buttons, (button & ~IN_ATTACK) & (button & ~IN_ATTACK2))
return FMRES_HANDLED
}
}
return FMRES_IGNORED
}
public client_kill(id)
{
return PLUGIN_HANDLED
}
public pfn_spawn(ent)
{
if( is_valid_ent( ent ) )
{
new class[32]
pev(ent, pev_classname, class, charsmax(class))
if( TrieKeyExists(g_tRemoveEntities, class) )
{
remove_entity(ent)
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public fwdGetGameDescription()
{
static gamename[32];
if( get_pcvar_string(g_CvarGameName, gamename, charsmax(gamename)) )
{
forward_return(FMV_STRING, gamename)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public msgScreenFade(msgid, dest, id)
{
if( is_user_alive(id)
&& get_pcvar_num(g_CvarNoFlash) & _:cs_get_user_team(id)
&& get_msg_arg_int(4) == 255
&& get_msg_arg_int(5) == 255
&& get_msg_arg_int(6) == 255
&& get_msg_arg_int(7) > 199 )
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public client_command(id)
{
new sArg[13];
if(read_argv(0, sArg, 12) > 11) return PLUGIN_CONTINUE
strtolower(sArg)
if( TrieKeyExists(g_tBuyAliases, sArg) )
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public HandleBlock(id) return PLUGIN_HANDLED
public UnsetStealth(id)
{
set_user_rendering(id, _, 0, 0, 0, _, 0);
}
SetStealth(id)
{
if(get_user_health(id) != 100)
set_user_health(id, 100)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 0);
set_task(get_pcvar_float(g_CvarProtectionTime), "UnsetStealth", id)
}
GiveItems(id)
{
cs_strip_user_weapons(id)
switch( cs_get_user_team(id) )
{
case CS_TEAM_T:
{
give_item(id, "weapon_knife")
if(get_pcvar_num(g_CvarHidersFlashbangs))
{
give_item(id, "weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(g_CvarHidersFlashbangs))
}
if(get_pcvar_num(g_CvarHidersSmokegrenade))
give_item(id, "weapon_smokegrenade")
if(get_pcvar_num(g_CvarHidersHegrenade))
give_item(id, "weapon_hegrenade")
}
case CS_TEAM_CT:
{
give_item(id, "weapon_knife")
if(get_pcvar_num(g_CvarSeekersFlashbangs))
{
give_item(id, "weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(g_CvarSeekersFlashbangs))
}
if(get_pcvar_num(g_CvarSeekersSmokegrenade))
give_item(id, "weapon_smokegrenade")
if(get_pcvar_num(g_CvarSeekersHegrenade))
give_item(id, "weapon_hegrenade")
}
}
}
GetRandomCT()
{
static iPlayers[32], iCT_num
get_players(iPlayers, iCT_num, "ae", "CT");
if(!iCT_num)
return 0
return iCT_num > 1 ? iPlayers[random(iCT_num)] : iPlayers[iCT_num - 1];
}
cs_strip_user_weapons(id)
{
strip_user_weapons(id)
set_pdata_int(id, m_fHasPrimary, 0)
}
I think the problem is here, but I'm not sure
PHP Code:
public eventDeathMsg()
{
new killer = read_data(1)
new victim = read_data(2)
if(killer == 0)
{
if( cs_get_user_team(victim) == CS_TEAM_T )
{
new lucky = GetRandomCT();
if( lucky )
{
cs_set_user_team(lucky, CS_TEAM_T)
client_print(lucky, print_chat, "[HNS] An idiot jumped off and you were lucky and got transfered to Terrorist.")
cs_set_user_team(victim, CS_TEAM_CT);
GiveItems(lucky)
SetStealth(lucky)
}
}
}
Thanks for your attention
Last edited by Gooday; 05-15-2024 at 18:47.
|
|