Actually I said in my first post that to reproduce it, you have to "2. Change the map.".
I'm 100% sure the issue is with Ham_Item_GetItemInfo. Using this code, no other third party plugins, latest dev, the issue is 100% reproducible. You don't have to change the map now as we're not using get_weaponname.
Code:
#include <amxmodx>
#include <fun>
#include <hamsandwich>
public plugin_precache()
{
RegisterHam(Ham_Item_GetItemInfo, "weapon_p228", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_scout", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_hegrenade", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_xm1014", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_c4", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_mac10", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_aug", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_smokegrenade", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_elite", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_fiveseven", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_ump45", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_sg550", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_galil", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_famas", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_usp", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_glock18", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_awp", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_mp5navy", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_m249", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_m3", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_m4a1", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_tmp", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_g3sg1", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_flashbang", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_deagle", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_sg552", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_ak47", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_knife", "CBasePlayerItem_GetItemInfo", .Post = true);
RegisterHam(Ham_Item_GetItemInfo, "weapon_p90", "CBasePlayerItem_GetItemInfo", .Post = true);
}
public CBasePlayerItem_GetItemInfo(pItem, iItemInfo)
{
return HAM_IGNORED;
}
public plugin_init()
{
RegisterHam(Ham_Spawn, "player", "OnSpawnPost", .Post = true);
}
public OnSpawnPost(id)
{
if(is_user_alive(id))
{
give_item(id, "weapon_ak47");
give_item(id, "weapon_m4a1");
give_item(id, "weapon_usp");
}
}
@PRoSToTeM@/@HamletEagle/@AnybodyWithaLinuxServer can you run the plugin above and confirm the bug is reproducible so no time is wasted in assuming the issue is from something else?
? It changes stuff that seems to be used in "Hook_Void_ItemInfo".