Derzeit versuche ich - 'ne Questfunc zu schreiben, welche die X/Y-Koordinate eines Dungeon-Unique-Monsters ausgibt, für... diversen übergeilen Stuff. Momentan sieht das ganze so aus:
Code:
int dungeon_unique_get_x_pos(lua_State* L)
{
if (!lua_isstring(L,1))
{
lua_pushnumber(L,0);
return 1;
}
CQuestManager& q = CQuestManager::instance();
LPDUNGEON pDungeon = q.GetCurrentDungeon();
LPSECTREE_MAP pMap = SECTREE_MANAGER::instance().GetMap(pDungeon->GetMapIndex());
if (pDungeon)
{
if (pMap)
lua_pushnumber(L, (pDungeon->GetX() - pMap->m_setting.iBaseX) /100);
else
lua_pushnumber(L, pDungeon->GetX() / 100);
return 1;
}
}
int dungeon_unique_get_y_pos(lua_State* L)
{
if (!lua_isstring(L,1))
{
lua_pushnumber(L,0);
return 1;
}
CQuestManager& q = CQuestManager::instance();
LPDUNGEON pDungeon = q.GetCurrentDungeon();
LPSECTREE_MAP pMap = SECTREE_MANAGER::instance().GetMap(pDungeon->GetMapIndex());
if (pDungeon)
{
if (pMap)
lua_pushnumber(L, (pDungeon->GetY() - pMap->m_setting.iBaseX) /100);
else
lua_pushnumber(L, pDungeon->GetY() / 100);
return 1;
}
}
Die Idee war's, die Funktionen an CDungeon zu vererben, CDungeon ist allerdings eine Abstrakte Klasse, anders wie bei CHARACTER, wo der Funktionsaufruf ohne Probleme Funktioniert.
Bisher hab' ichs also nur hinbekommen, die Koordinaten eines NPCs auszugeben, jedoch nicht die eines Monsters, ich wäre 100x Dankbar, wenn mich da wer ein wenig Guiden könnte
Mfg Dyshaxo =)






