游戏乐悠悠网游开发网

 找回密码
 立即注册
查看: 1275|回复: 0
打印 上一主题 下一主题

武侠-CareObject

[复制链接]
  • TA的每日心情
    无聊
    2014-8-8 12:31
  • 签到天数: 37 天

    [LV.5]常住居民I

    鲜花(0) 鸡蛋(0)
    跳转到指定楼层
    楼主
    发表于 2012-2-26 13:31:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    武侠-CareObject
    一 应用:关心与某逻辑Obj的距离(用于商人或者任务窗口/下拉菜单等,当距离超过一定距离后自动关闭)
    二 实现
    1 首先注册lua接口

    INT CUIWindowItem:UA_CareObject(LuaPlus:uaState* pState)
    {
        LuaStack args(pState);
       
    if(!(args[2].IsInteger()))
        {
            KLThrow(
    "LUA: CUIWindowItem:UA_CareObject[2] Wrong Param1");
        }
       
    if(!(args[3].IsInteger()))
        {
            KLThrow(
    "LUA: CUIWindowItem:UA_CareObject[3] Wrong Param1");
        }
       
    if(!(args[4].IsString()))
        {
            KLThrow(
    "LUA: CUIWindowItem:UA_CareObject[4] Wrong Param1");
        }

       
    // Object的ID
        INT nObjID = args[2].GetInteger();

       
    // 是否关心
        INT    bCare = args[3].GetInteger()==1;

       
    // 谁在关心
        std::string str = args[4].GetString();

        g_pObjectSystem
    ->CareObject(nObjID, bCare, str);

       
    return 0;
    }

    复制代码


    2 保存到map里面

    // 关心某物体的指定事件 id-物体ID,    szSign:关心标志(谁关心)        bCare-关心或者取消关心
    // 修改说明:添加一个“是谁关心”的内容
    VOID CObjectManager::CareObject(INT id, BOOL bCare, std::string szSign)
    {
       
    //AxTrace(0,0,"C++ id =%d,bCare =%d,szSign =%s",id,(INT)bCare,szSign.c_str());
       
    // 搜索物体
        CObject* pObject = (CObject*)FindObject(id);
       
    if(!pObject) return;




    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|Online Game Xingbarking Dev Team  

    GMT+8, 2024-5-11 05:39 , Processed in 0.128371 second(s), 32 queries .

    Powered by Discuz! X3.2 Licensed

    © 2001-2013 Comsenz Inc.

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