1
In this guide創建函數可將怪物添加到表格並降低表格中怪物的運行狀況。LuaPlus從C++操縱表格
您可以方便地使用兩個functons這樣從LUA腳本:
monster = objectMgr:CreateObject("HotMamma",5);
monster:Hurt(1) --decrease health by 1
--or
objectMgr:CreateObject("HotMamma",5);
monster = objectMgr:GetObject(0)
monster:Hurt(1)
但我怎麼能調用從C++側這些功能呢?
我指的是原有的:ObjectMgr::CreateObejct()
,ObjectMgr::GetObjectByIndex()
和Monster::Hurt()
我花費超過8小時試圖弄清楚這一點!但沒有任何工作。 :/
我最好的嘗試很可能是這樣的:
// CreateObject modified to return pMonster and accept normal arguments
MonsterPtr monster = objectMgr.CreateObject(pState, "HotMamma", 5);
monster.Hurt(1);
這給了我下面的錯誤:
class "std::tr1::shared_ptr" has no member "Hurt"
謝謝噓! – Forivin
@Forivin如果遇到從C++調用它的問題,我已經添加了一些關於'objectMgr.CreateObject'的更多信息。 – greatwolf
嗯,我修改了CreateObject來接受普通的參數。所以怪物 - >赫特(1);實際上做了這項工作。 :p我不能再從Lua那邊叫它,但是..所以我一定要檢查一下!謝謝謝謝。 :) – Forivin