Addon Programmierung - ID auslesen

Crosaider-92

Rare-Mob
Registriert
06.06.2007
Beiträge
171
Reaktionspunkte
0
Kommentare
26
Buffs erhalten
19
Hallo @ all

Ich beschäftige mich gerade mit der Addon Programmierung für WoW. Ich wollte mal fragen ob es eine Funktion in der API gibt, welche mir die getöteten Bosse einer ID zurückliefert. Kennt Ihr ja alle aus dem Spiel. Wenn ihr auf IDs geht wird angezeigt, welcher Boss schon down ist und welcher nicht. Genau das möchte ich gere zurückgeliefert haben. Geht das?

Bin für jede Hilfe dankbar. Viele Grüße
Crosaider-92
 
http://www.wowwiki.com/API_GetInstanceLockTimeRemainingEncounter
 
Das ist schonmal sehr sehr gut

Aber ich verstehe noch nicht genau woran die Instanz festgelegt wird. Als Übergabeparameter kommt ja eine ID, welche aber nur die Nummer des Bosses beinhaltet so wie ich das verstehe. Wie kann ich das z.B: auf die Instanz Todesmiene beziehen?
 
Ich denke, das man diese Informationen per GetInstanceLockTimeRemaining bekommt?

EDIT:
Falls du das Tooltip meinst, wo das drin steht. Das kannst du so nicht wieder geben, das wird automatisch ausgegeben per tooltip:SetInstanceLockEncountersComplete(ID)

Wenn du die Informationen willst, musst du alle gespeicherten Instanzen per GetSavedInstanceInfo(ID) auslesen und schauen, ob es Instanz XY zurück gibt. Gibt es Instanz XY zurück, musst du das Tooltip setzen (ID ist die selbe ID, wie von GetSavedInstanceInfo) und es einlesen.

EDIT2:
Falls dir das zu kompliziert ist, kann ich dir gerne ein kleines Beispiel programmieren.
 
Zuletzt bearbeitet von einem Moderator:
SO vielen dank das habe ich jetzt schonmal hinbekommen und mein erstes Addon (zu Testzwecken - wird nicht veröffentlicht) läuft schonmal wunderbar. Danke nochmal an dieser Stelle

Jetzt suche ich noch eine Möglichkeit, mein Addon als zusätzlichen Tab in den Doungenkompedium zu integrieren. ALso wenn man eine Instanz und einen Boss ausgewählt hat soll unter Loot und Fähigkeiten ein weiterer Tab erscheinen. Mein Problem jetzt: Wie kann ich das Addon so darein integrieren. EIn eigenes Fenster zu erstellen ist gar kein Problem - nur ein vorhandenes Fenster weiter zu nutzen. Kann man so iwie "vererben"?
 
Naja, erstellen/vererben kannst du ihn so:
Code:
local MY_BUTTON = CreateFrame("Button", "EncounterJournalEncounterFrameInfoMYBUTTONTab", EncounterJournalEncounterFrameInfo, "EncounterTabTemplate");
MY_BUTTON:SetPoint("TOP", EncounterJournalEncounterFrameInfoLootTab, "BOTTOM", 0, 2);
Aber ab jetzt musst du alles hooken, da es ja im EncounterJournal programmiert wurde. Hook für Buttonhighlight, Hook für Reaktionen (Anzeigen, verstecken, Klicks, etc. pp.), usw.


Für die Leute, die interessiert sind, wie man so ein Tooltip auslesen kann: Ich habe ein kleines Beispiel für euch:
Die eigentliche Auslese-Funktion:
Code:
local tooltip = CreateFrame("GameTooltip", "ScanTooltipForSavedInstances", UIParent, "GameTooltipTemplate");
local instance_bosses = {};

local function GetInstanceBosses(instance)
	local instance = instance:lower():trim();
	wipe(instance_bosses);
	
	for id=1, GetNumSavedInstances(), 1 do
		local name = GetSavedInstanceInfo(id);
		if ( name:lower() == instance ) then
			tooltip:SetOwner(UIParent, "ANCHOR_NONE");
			tooltip:SetInstanceLockEncountersComplete(id);
			
			for i=2, tooltip:NumLines(), 1 do
				local TEXT_LEFT = _G["ScanTooltipForSavedInstancesTextLeft"..i];
				local TEXT_RIGHT = _G["ScanTooltipForSavedInstancesTextRight"..i];
				
				instance_bosses[TEXT_LEFT:GetText()] = (TEXT_RIGHT:GetText() ~= BOSS_DEAD);
			end
			
			return instance_bosses;
		end
	end
	
	return false;
end
Und das ganze könnte man nun so benutzen:
Code:
local bossData = GetInstanceBosses("Burg Schattenfang");
if ( bossData ) then
	for boss, alive in next, bossData do
		print(boss.." ist "..(alive and "am leben." or "bereits bezwungen worden.")); -- Test, test... :-)
		-- Hier könnte dein Quellcode stehen! ;-D
	end
end
Viel Spass! :-)
 
Zuletzt bearbeitet von einem Moderator:
Zurück