C++ Neue Questfunction -> Unique Get_X/Get_Y

01/28/2015 17:16 Dyshaxo#1
Hi there, bin mich grade etwas an C++ Rantasten, wenn man ein wenig googelt, wie Vererbung und Assoziationen und der ganze Stuff aussieht funktioniert's sogar einigermaßen, leider ist der Sourcecode ziemlich Umfangreich und Teilweise ist auch Stuff dabei, den ich nie verstanden hab', wie z.B. Abstrakte Klassen.

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;
		}
	}
Problem hierbei -> die Funktionen "GetX()" und "GetY()" sind innerhalb der Klasse "CEntity".

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 :D

Mfg Dyshaxo =)
01/28/2015 17:48 xGr33n#2
€: edited -> //EDITED
Untested:
01/28/2015 18:05 Dyshaxo#3
Am Testen =)

Oh Junge wenn das Funktioniert errichte ich 'nen Altar um dich herum :D

#Edt: Ehmehgerd, es läuft!! =)

Derzeit erfolgt die Ausgabe noch durch Globale Koordinaten, aber das bekomm' ich hin =)

Danke dir vielmals ^_^