このガイドでは、テーブルにモンスターを追加し、テーブルからモンスターの健康を減らす関数が作成されます。
lua スクリプトから次のように 2 つの関数を簡単に使用できます。
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 );
これにより、次のエラーが表示されます。
クラス "std::tr1::shared_ptr" にはメンバー "Hurt" がありません