看流星社区

 找回密码
 注册账号
查看: 2789|回复: 0

国际星星(即叹号)相关基址

[复制链接]

该用户从未签到

发表于 2011-3-13 10:58:25 | 显示全部楼层 |阅读模式
//===============星星(叹号)显示相关======================  
#define W2I_MESSAGEHINT_BASEADDR 0x9c4364  //星星基址,查找里也可不用特征码,用星星计数地址减值即可  
#define W2I_MESSAGEHINT_COUNTER            (*(DWORD*)(W2I_MESSAGEHINT_BASEADDR+0x20))                //星星计数,大于表示有星星。具体数字表示
有星星多少条内容,  
#define W2I_MESSAGEHINT_ADDR            (*(DWORD*)(W2I_MESSAGEHINT_BASEADDR+0x14))        //星星列表基址//每项星星内容占x1c字节  

#define W2I_MESSAGEHINT_TEXTEXPLAIN(eachhint)   (char*)(*(DWORD*)(W2I_MESSAGEHINT_ADDR+0x1c*iMessageHintNo+0)) //星星内容文字说明如:Ga
me_InviteGroup表邀请组队;Game_InviteTrade交易,    Game_InviteFriend加好友;Game_InviteDuel决斗;  
#define W2I_MESSAGEHINT_DISPLAY_UNICODE(eachhint)   (WCHAR*)(*(DWORD*)(W2I_MESSAGEHINT_ADDR+0x1c*iMessageHintNo+4)) //星星显示内容uni
code:如“谁谁谁申请与你交易”  
#define W2I_MESSAGEHINT_MASTERID(eachhint)     (*(DWORD*)(W2I_MESSAGEHINT_ADDR+0x1c*iMessageHintNo+0x10))    //星星发起人ID如:入队邀请人  
#define W2I_MESSAGEHINT_GROUPID(eachhint)         (*(DWORD*)(W2I_MESSAGEHINT_ADDR+0x1c*iMessageHintNo+0x14))    //星星其它内容:如队伍ID  

如上:并不是一有星星就是组队提示  

附上一个自动组队发包VC程序:  
    //组队相关  
    if(structpSettingMsg->m_bGroup_AcceptInvite)//是否打开自动接受组队开关  
    {for(int iMessageHintNo=0;iMessageHintNo<W2I_MESSAGEHINT_COUNTER;iMessageHintNo++)//循环所有星星项  
    {CString strTextExplain=W2I_MESSAGEHINT_TEXTEXPLAIN(eachhint);
        if((strTextExplain=="Game_InviteGroup")//是组队邀请  
            &&(dwLastAcceptGroupInviteTime+2*60*1000<::GetTickCount())//如果距上次接受组队的时间已经过去分钟,等待星星过去  
            )
        {CallAboutGroup(W2I_MESSAGEHINT_MASTERID(eachhint),W2I_MESSAGEHINT_GROUPID(eachhint),1);//AfxMessageBox("自动组队");对接受组队进行发
包  
        dwLastAcceptGroupInviteTime=::GetTickCount();
        }//结束是组队邀请if  
    }//结束循环所有星星项  
    }//结束自动组队  
再附上组队发包程序:  
bool bShareCallAboutGroup=false;
void CallAboutGroup(DWORD dwPlayerID,//人物对象ID  
                    DWORD dwGroupID,//队伍ID  
                    int iCallType//要做什么::接受组队;:邀请组队;:离队;:踢出队伍;:转移队长;:协助攻击  
                    )
{if(bShareCallAboutGroup){::Sleep(50);}
bShareCallAboutGroup=true;
byte byteBuf[0xA]={0};
int iSendPackLength=0;
switch(iCallType)
{case 1://接受组队  
byteBuf[0]=0x1C;
byteBuf[1]=0x00;
memcpy(&byteBuf[2],&dwPlayerID,sizeof(DWORD));
memcpy(&byteBuf[6],&dwGroupID,sizeof(DWORD));
iSendPackLength=0xa;
break;
case 2://邀请组队  
    byteBuf[0]=0x1B;
    byteBuf[1]=0x00;
    memcpy(&byteBuf[2],&dwPlayerID,sizeof(DWORD));
    iSendPackLength=0x6;
    break;
case 3://离队;  
    byteBuf[0]=0x1E;
        byteBuf[1]=0x00;
    iSendPackLength=0x2;
    break;
case 4://4:踢出队伍;  
    byteBuf[0]=0x1F;
        byteBuf[1]=0x00;
    memcpy(&byteBuf[2],&dwPlayerID,sizeof(DWORD));
    iSendPackLength=0x6;
    break;
case 5://转移队长  
    byteBuf[0]=0x48;
        byteBuf[1]=0x00;
    memcpy(&byteBuf[2],&dwPlayerID,sizeof(DWORD));
    iSendPackLength=0x6;
    break;
case 6://协助攻击  
    byteBuf[0]=0x32;
        byteBuf[1]=0x00;
    memcpy(&byteBuf[2],&dwPlayerID,sizeof(DWORD));
    iSendPackLength=0x6;
    break;
}
CallSendPack(byteBuf,iSendPackLength);
bShareCallAboutGroup=false;
return;}
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-4 00:34

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表