Hilfe bzgl. Lua (stacks von einem debuff auslesen)

birdra

Dungeon-Boss
Registriert
04.04.2008
Beiträge
538
Reaktionspunkte
0
Kommentare
15
Code:
	if (UnitDebuff("target",scor)) then
		for i = 1, 40 do
			local name, count = UnitDebuff("target", i)
			
			if (name == "Verbessertes Versengen") then
				minCrit=85
				print(name)
				print(count)
			end
		end
	end
edit:
der name wird mir ausgegeben, nur die stacks nicht.. da wird einfach nix (leere zeile) ausgegeben, der name bei print(name) aber schon. hilfe?:<
count sollten die stacks sein
 
Zuletzt bearbeitet von einem Moderator:
Code:
local name, _, _, count = UnitDebuff("target", "Verbessertes Versengen");
if ( name ) then
	print(name.." hat "..count.." stapel.");
end
 
Zuletzt bearbeitet von einem Moderator:
danke, schönes beispiel. klappt nun wunderbar
wink.gif
 
Wo wir hier grade so schön dabei sind, kann mir jemand sagen, wie ich per LUA auf das Ereignis "aufmounten" reagieren kann? Sprich: mein LUA-Script soll in dem Moment, wo der Spieler über das Reittier-Fenster aufmountet, das benutzte Mount mitbekommen und speichern. Dabei soll das Script auch direkt ermitteln, ob es sich um ein Reit- oder Flug-Mount handelt.

Update: ich habe bei WoWWiki das Ereignis COMPANION_UPDATE gefunden, dort wird aber nirgends erklärt, wie und wo die Parameter mitgeteilt werden, um welches Mount es sich dabei handelt. Hat da jemand eine Idee?
 
Zuletzt bearbeitet von einem Moderator:
Was hast du denn genau vor? Kann mir nicht wirklich was drunter vorstellen wofür das gut sein soll und dementsprechend auch nicht wirklich helfen.
 
Ich schreibe grade an einem AddOn, welches per KeyBinding auf- bzw. abmountet und dabei automatisch zwischen Flug- und Reit-Mount unterscheidet, je nach Zone. Ich möchte, das das AddOn sich das Mount merkt, welches der Spieler zuletzt benutzt hat, damit es bei der hinterlegten Aufmount-Taste genau dieses Mount wieder nutzt, damit man nicht jedesmal das Reittier-Fenster öffnen muss.

Ich weis, das man das auch per Makro machen kann. Aber wegen Dalaran und Tausendwinter funktioniert das nicht in Flugverbotszonen. Außerdem möchte ich, daß ich z.B. als Druide automatisch in Wassergestalt switche, wenn ich im Wasser bin. Ich weis auch, das es bereits solche AddOns gibt, diese aber immer zufällig irgendein Mount auswählen. Ich will aber, das immer nur ein bestimmtes Mount aufgerufen wird, nämlich das, welches der Spieler zuletzt benutzt hat.
 
Bezüglich 1k und Dalaran geht schon :o
/run local z=GetZoneText(),t; if (IsMounted()) then Dismount() return end; if (not IsFlyableArea() or (z=="Dalaran" and GetSubZoneText()~="Krasus' Landeplatz") or z=="Tausendwinter") then t={REITMOUNT} else t={FLUGMOUNT} end CallCompanion("mount", t)

Alles andere müsste ich mal zuhause gucken.
 
/run local z=GetZoneText(),t; if (IsMounted()) then Dismount() return end; if (not IsFlyableArea() or (z=="Dalaran" and GetSubZoneText()~="Krasus' Landeplatz") or z=="Tausendwinter") then t={REITMOUNT} else t={FLUGMOUNT} end CallCompanion("mount", t)
Das "Makro" kenn ich und es macht auch größtenteils das, was ich will. Aber eben nicht alles =) Es fehlt die Wasser- und Reisegestalt beim Druiden, die man aufgrund von Zeichenplatzmangeln nicht mehr integrieren kann. Ebenso bewirkt Dismount() nicht, daß man die Wasser- oder Reisegestalt verläßt. Außerdem möchte ich die Funktion nur auf eine Taste legen und nicht über einen Makro-Knopf erreichbar machen. Dem kann ich dann zwar eine Taste zuweisen, indem ich das Makro auf die Aktionsleiste ziehe und diesem Aktionsbutton dann eine Taste zuweise, aber ich will keinen Aktionsbutton dafür haben.

Mein AddOn funktioniert bereits wunderbar, jedoch sind Reit- und Flugmount statisch verknüpft. Jetzt möchte ich halt einfach, das dieser Wert in der Konfig landet und sich anhand des zuletzt verwendeten Mounts aktualisiert. Dafür muss ich herausfinden, wann ein Spieler aufmountet und welches Mount er benutzt hat. Das Event COMPANION_UPDATE gibt mir lediglich zurück, ob ein Haustier oder ein Mount beschworen wurde, nicht aber, welches. Darüber hinaus muss ich auch noch differenzieren, ob es sich bei dem beschworenen Mount um eine Flug- oder Reitmount handelt.
 
Zuletzt bearbeitet von einem Moderator:
Einfach die eigentliche Funktion hooken:
Code:
local org_CallCompanion = CallCompanion;
function CallCompanion(...)
	local type, id = ...;
	if ( type == "MOUNT" ) then
		-- Reittier mit "id" beschworen.
	end
	return org_CallCompanion(...);
end
 
Zuletzt bearbeitet von einem Moderator:
Vielen Dank, das werde ich ausprobieren. Eins noch: wie finde ich dann, nachdem ich nun Name bzw. ID habe, heraus, ob es sich um ein Flug- oder Reitmount handelt?

Update: ich glaube, ich habs schon selbst herausgefunden, kann es aber wegen "Wartungsarbeiten" grad nicht testen. Man muss den Tooltip-Text von dem Mount nach bestimmten Schlagwörtern durchkämmen. Etwas umständlich (ToolTip-Frame erstellen, Mount-ID reinladen, jede Zeile vom Text nach Schlagwörten absuchen), aber machbar.
 
Zuletzt bearbeitet von einem Moderator:
Zurück