Runtime.gg Esports Nahrung
  • Das Problem ist, dass ich nicht die genaue Bezeichnung, also so wie sie im Kampflog steht, kenne von Druiden und/oder Palas, da ich diese Klassen selbst nicht spiele.


    Es wäre nett, wenn mir hier jemand helfen könnte, damit ich Dagos Wunsch gemäß auch die deutsche Übersetzung komplett fertigstellen könnte. ;)


    Insbesondere geht es um folgende Abschnitte:


    Druide:

    TB_defaultText_g = "- My Growl has been resisted by $tn -"; --Need translation
    TB_growlLine = "Your Growl was resisted by (%w+)"; --Need translation IMPORTANT! MUST be exactly as it says in the combat log!


    Im deutschen Client wohl "Knurren"



    Paladin:

    TB_salvation = "Salvation"; --Need translation. Should be the name of the paladin's salvation buff.
    TB_output_salvation = "Salvation removed"; --Need Translation


    Im deutschen Client wohl "Segen der Rettung", allerdings bin ich da nicht sicher ^^

  • Rechtschaffene Verteidigung = Salvation und nicht Segen der Rettung wie ich fälschlicherweise angenommen hatte. Gibt es in Classic überhaupt Tankpalas? Wenn ja dann bitte hier schreiben wie es im Kampflog heißt bzw. insbesondere natürlich, wenn es widerstanden wird.


    Ich verstehe dann nicht wieso das Addon auf den Segen der Rettung gegangen ist ehrlich gesagt, denn eigentlich sollte es nur die Spotts tracken.



  • bei dem Addon gibt es zumindest die Option "Remove salvation"

    Falls du jetzt mit dem Pala Buff noch nicht genau weist was gemeint ist...
    Als Pala kann man jedem Spieler "Segen der Rettung" buffen und reduziert somit die Aggro um 30%.
    Als Tank ist dieser Buff natürlich nicht unbedingt hilfreich, deswegen entfernen sich die Tanks den Buff (bzw entfernt das Addon ihn)


  • Wenn ich das mal kommentieren darf, das wird nicht funktionieren.


    Im Englischen wird der String TB_salvation = "Salvation" gesetzt,

    du hast im Deutschen TB_salvation = "Ihr bekommt Segen der Rettung" gesetzt.


    Code
    1. 185 elseif (event == "PLAYER_AURAS_CHANGED" or event == "UPDATE_SHAPESHIFT_FORMS") then
    2. 186 if (TB_PlayerBuff(TB_salvation)) then --Look for a buff with "Salvation" in it

    An dieser Stelle wird es schief gehen weil der von dir gesetzte String nicht als Buff vor kommt.

    Die Methode TB_PlayerBuff an Zeile 524 sucht nach dem String als Teil des Buffnamens, dein String muss ein Teil des Buffnamens sein.


    z.B. TB_salvation = "Rettung"

    oder TB_salvation = "Segen der Rettung"


    Wenn die Strings nicht entsprechend deren Verwendung gesetzt werden, kann es vorkommen das z.B. unbeabsichtigt Buffs entfernt werden.


    Note:

    Wenn ich mal raten sollte, dann war dieser String in einer vorherigen Version garnicht gesetzt.

    Das würde erklären warum bei einigen ungewollt Buffs verschwunden sind.

  • Das mit dem kritischen Treffer habe ich behoben und bereits erfolgreich getestet. Auch die Sache mit dem Blocken habe ich hinbekommen und ebenfalls erfolgreich testen können. Bei einem geblocktem Angriff sagt das Addon nun richtigerweise gar nichts, der Effekt vom Spöttischen Schlag kommt ja auf das Ziel, und auch bei einem kritischen Treffer bleibt es stumm. Bei parieren oder verfehlen sagte es in meinen Tests zumindest immer "wurde verfehlt" richtig an.


    Edit: Geht leider doch noch nicht.

  • Du lädst es über den Link runter, also oben rechts bei dem kleinen grünen Feld wo steht "Clone or Download". Dann bekommst du eine ZIP Datei die du entpacken musst. Anschließend musst du bei der entpackten Datei das - Master entfernen und einfach in den Interface Ordner vom Spiel einfügen.

  • thekk :

    Ich brauche nochmal deine Hilfe bzw. hoffe, dass du mir helfen kannst. Nach meiner letzten Änderung musste ich feststellen, dass das Addon jetzt bei jedem normalen Treffer vom spöttischen Schlag ein "hat verfehlt" ausspuckt, was natürlich falsch ist. Ich habe schon mehrmals rumprobiert, aber bislang kein zufriedenstellendes Ergebnis gefunden.


    Das grüne ist im original Addon vorhanden und funktioniert soweit. Das rote habe ich al Änderung mit eingefügt, aber es funktioniert leider nicht.


    TB_mbHitLine = "Sp\195\182ttischer Schlag von Euch trifft (.+) f\195\188r (.+)","Sp\195\182ttischer Schlag trifft (.+) kritisch: (.+)","Ihr greift an. (.+) blockt ab" ;
    TB_mb = "(.*)Sp\195\182ttischer Schlag(.*)";


    Auch wenn ich Elemente wie "or" oder "and" einsetze geht es nicht.

    Zum Beispiel: "Sp\195\182ttischer Schlag von Euch trifft (.+) f\195\188r (.+)" or "Sp\195\182ttischer Schlag trifft (.+) kritisch: (.+)"


    Es kommt dabei immer noch die Meldung bei einem Crit.


    Die Sachen sind original so wie im Kampflog, also daran kann es nicht liegen. Ich hab es auch mit neuen Zeilen versucht, aber da passiert genau das was ich oben bereits beschrieben habe nämlich auch bei normalen Treffern eine "Falschmeldung".

  • Ich bin etwas verwirrt über das was du schreibst.

    Versuchst du weiteren Text in die Variable TB_mbHitLine zu packen?


    Bzw. Schreibst du die folgende Zeile genau so in die localization.lua?

    TB_mbHitLine = "Sp\195\182ttischer Schlag von Euch trifft (.+) f\195\188r (.+)","Sp\195\182ttischer Schlag trifft (.+) kritisch: (.+)","Ihr greift an. (.+) blockt ab";


    Das würde natürlich nicht funktionieren weil eine Variable nur einen String aufnehmen kann.

    Du müsstest ein Array daraus machen. ( variable= { "a","b","c"} )

    Dann müsstest du den Code entsprechend anpassen. ( if (string.find(arg1,variable[1]) )

    Für dein AddOn empfiehlt sich dieses Vorgehen nicht, da es den bisherige Konventionen widerspricht.


    Ich nehme an du willst die Fälle Crit und Hit abdecken.

    Mach dann einfach mehrere Variablen wie bisher auch:

    Code
    1. TB_mbHitLine = "Sp\195\182ttischer Schlag von Euch trifft (.+) f\195\188r (.+)"
    2. TB_mbCrit = "Sp\195\182ttischer Schlag trifft (.+) kritisch: (.+)"


    Im Code müsstest du dann die Überprüfung an Zeile 162 darauf anpassen:

    Löschen:

    Code
    1. 162: local mbHit = string.find(arg1, TB_mbHitLine);

    Ändern:

    Code
    1. 163: if (not mbHit) then
    2. 164: TBAbility = TB_GUI_MB;
    3. 165: end

    Nach:

    Code
    1. 162: if not (string.find(arg1, TB_mbHitLine)
    2. 163: or string.find(arg1, TB_mbCrit)) then
    3. 164: TBAbility = TB_GUI_MB;
    4. 165: end


    Anmerkung zum Blocken:

    "Ihr greift an. (.+) blockt ab" enthält keinen Zeichenkette TB_mb ("Spöttischer Schlag") und würde daher auch nicht

    in Zeile 161: elseif (string.find(arg1, TB_mb)) then erkannt werden.

    Ist das wirklich der korrekte String beim Block einer Fähigkeit?

  • Das ist der Wahnsinn vielen Dank. Genau das hat mir gefehlt. Ich werde es sofort umschreiben und testen.


    Die Sache mit dem Blocken ist leider etwas aufwendiger zu testen ehrlich gesagt, aber es wäre schon mal ein riesen Schritt, wenn das mit dem Crit funktioniert.


    Theoretisch müsste es doch möglich sein so eine Art "Missline" in den Code zu setzen anstelle der Hitline. Dann verbunden mit "Spöttischer Schlag hat (+.) verfehlt" bzw. nur da den Trigger für Spöttischen Schlag einbauen. So müsste doch gewährleistet sein, dass er alles andere wie normale Treffer, Crits und auch zum Teil geblockte Angriffe nicht erkennt und somit keine Meldung rausgibt.


    Ich werde es auch mal so probieren da was im Code zu schreiben.


    Danke thekk :thumbup:

  • Es ist überhaupt nicht kompliziert zu testen.


    Du erweiterst zum Testen deine Funktion TB_OnEvent(event).Am Anfang der Funktion (Zeile 155) schreibst du folgendes rein:

    Code
    1. if (arg1 ~= nil
    2. and string.find(arg1, "blockt")) then
    3. print(event .. ": " .. arg1);
    4. end


    Dann bekommst du bei jedem Block einer deiner Fähigkeiten eine Message mit dem richtigen Event (sollte "CHAT_MSG_SPELL_SELF_DAMAGE" sein) und der korrekten Nachricht. Im Kampflog kannst du anhand des Zeitstempels nachvollziehen was passiert ist und die Meldung einem Ereignis zuordnen.


    https://wow.gamepedia.com/CHAT_MSG_SPELL_SELF_DAMAGE