游戏乐悠悠网游开发网
标题:
武侠-CareObject
[打印本页]
作者:
tianyalanzi
时间:
2012-2-26 13:31
标题:
武侠-CareObject
武侠-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
;
欢迎光临 游戏乐悠悠网游开发网 (http://bbs.yxlyy.club/)
Powered by Discuz! X3.2