#include <amxmodx> #include <fakemeta> #define VERSION "0.0.1" #define PLUGIN "get_user_team fix" #define TeamInfo_PlayerID 1 #define XO_PLAYER 5 #define m_iTeam 114 #define m_iDeaths 444 new gmsgScoreInfo public plugin_init() { register_plugin(PLUGIN, VERSION, "ConnorMcLeod") register_event("TeamInfo", "Event_TeamInfo_All", "a") gmsgScoreInfo = get_user_msgid("ScoreInfo") } public Event_TeamInfo_All() { new id = read_data( TeamInfo_PlayerID ) if( !is_user_alive(id) && is_user_connected(id) ) { new iTeam = get_pdata_int(id, m_iTeam, XO_PLAYER) if( iTeam != get_user_team(id) ) { emessage_begin(MSG_BROADCAST, gmsgScoreInfo) ewrite_byte( id ) ewrite_short( get_user_frags(id) ) ewrite_short( get_pdata_int(id, m_iDeaths, XO_PLAYER) ) ewrite_short( 0 ) ewrite_short( iTeam ) emessage_end() } } }
修复队伍状态同步
当玩家死亡后切换队伍时,通过Event_TeamInfo_All
事件检测队伍信息变化,并强制广播更新其分数和队伍数据,确保客户端与服务端状态一致。
兼容性
使用fakemeta模块直接CAO作游戏内存数据(如m_iTeam和m_iDeaths偏移量),避免常规API可能存在的延迟或误差。
Powered by HadSky 8.5.2
©2015 - 2025 CND论坛 - 中国梦DOD
您的IP:216.73.216.160,2025-07-01 10:38:17,Processed in 0.0153 second(s).