Important: Please register to test the 20 minutes trial version or buy the bot!
Ready for WoW 5.3 Build 17128
Wow Bot: CrawlerBot Last version: click here State: EU: working US: working

Author Topic: [Guide][DE] Wie erstelle ich eine Custom Class  (Read 3886 times)

January 11, 2013, 16:04:28 PM
Reply #15

telcy

  • *
  • *
  • Posts: 1509
  • Reputation: 164
    • View Profile
Ich habe zwar nicht dein ganzes Script gesehen.
Aber performancehalber würde ich IsSpellReady(spellID) Checks mit einbauen.

Damit umgehst vermeintliche Castversuche.

January 11, 2013, 16:11:15 PM
Reply #16

Athermal

  • *
  • *
  • Posts: 657
  • Reputation: 115
  • German Noob
    • View Profile
Code: [Select]
if  HasBuff(Player,117667) == false and IsSpellKnown(115921) and IsSpellReady(115921) then
      _Log("Cast Legacy of the Emperor");
      CastSpellByID(115921, Player, true);
      NextAction();
   end

extra für telcy der Form halber ;) damit sollten alle Möglichkeiten abgedeckt sein.
You like it then give +rep for it

January 11, 2013, 16:46:03 PM
Reply #17

KlausHansen

  • *
  • Posts: 9
  • Reputation: 0
    • View Profile
Habs genauso gecopy/pastet, bufft trotzdem jedes mal neu.

Hatte in meinem ursprünglichen Script eine andere Buff ID benutzt, habe es aber auch nochmal mit der Spell ID probiert, bufft trotzdem jedes mal neu.

Ich schätze mal irgendwas ist mit HasBuff nicht in Ordnung, entweder brauchst du eine andere ID für den Buff als für den Spell oder die Negation (hatte es ja erst mit not) funktioniert nicht richtig.

January 11, 2013, 16:51:40 PM
Reply #18

Athermal

  • *
  • *
  • Posts: 657
  • Reputation: 115
  • German Noob
    • View Profile
also die buff id ist anders als die spell id. kannst du evtl mal das ganze script hochladen? weil in meinem rogue script mach ich das genau so. allerdings könnte es auch am monk liegen, da ist iwie eine disharmonie mit dem crawlerbot.
You like it then give +rep for it

January 11, 2013, 16:55:28 PM
Reply #19

KlausHansen

  • *
  • Posts: 9
  • Reputation: 0
    • View Profile
Code: Lua
  1.         ------------
  2.         -- Windwalker
  3.         ------------
  4.  
  5.        
  6. function Settings()
  7.         FightDist = 5;
  8.         PullDist = 39;
  9. end
  10.  
  11. function PullMob(MobAddr)
  12.         StartAutoAttack();
  13.         if IsSpellKnown(115546) and IsSpellReady(115546) then
  14.                 _Log("Cast Provoke");
  15.                 CastSpellByID(115546 , MobAddr , true);
  16.                 NextAction();
  17.         end
  18.  
  19. end
  20.  
  21. function NextAction()
  22.         if true then return end
  23. end
  24.  
  25. function Fight()
  26.         Target = GetAttacker(1);
  27.         StartAutoAttack();
  28.  
  29.         -- healing
  30.        
  31.         if PlayerHpPercent() <= 40 and IsSpellReady(115072) then
  32.                 _Log("Hp lower then 40% Cast Expel Harm");
  33.                 CastSpellByID(115072, Player, true);
  34.         end
  35.        
  36.         if PlayerHpPercent() <= 40 and IsSpellReady(123986) then
  37.                 _Log("Hp lower then 40% Cast Chi Burst");
  38.                 CastSpellByID(123986, Player, true);
  39.         end
  40.  
  41.        
  42.         -- spells
  43.        
  44.         if  HasBuff(Player,115921) == false and IsSpellKnown(115921) and IsSpellReady(115921) then
  45.       _Log("Cast Legacy of the Emperor");
  46.       CastSpellByID(115921, Player, true);
  47.       NextAction();
  48.    end
  49.        
  50.         if IsSpellKnown(100780) and IsSpellReady(100780) then
  51.                 _Log("Cast Jab");
  52.                 CastSpellByID(100780 , Target , true);
  53.                 NextAction();
  54.         end
  55.        
  56.         --if IsSpellKnown(107428) and IsSpellReady(107428) then
  57.         --      _Log("Cast Rising Sun Kick");
  58.         --      CastSpellByID(107428 , Target , true);
  59.         --      NextAction();
  60.         --end
  61.  
  62.         if IsSpellKnown(100787) and IsSpellReady(100787) then
  63.                 _Log("Cast Tiger Palm");
  64.                 CastSpellByID(100787 , Target , true);
  65.                 NextAction();
  66.         end
  67.        
  68.         if IsSpellKnown(100780) and IsSpellReady(100780) then
  69.                 _Log("Cast Jab");
  70.                 CastSpellByID(100780 , Target , true);
  71.                 NextAction();
  72.         end
  73.        
  74.         if IsSpellKnown(113656) and IsSpellReady(113656) then
  75.                 _Log("Cast Fists of Fury");
  76.                 CastSpellByID(113656 , Target , true);
  77.                 NextAction();
  78.         end
  79.        
  80.  
  81.         if IsSpellKnown(100780) and IsSpellReady(100780) then
  82.                 _Log("Cast Jab");
  83.                 CastSpellByID(100780 , Target , true);
  84.                 NextAction();
  85.         end
  86.  
  87.         if PlayerHpPercent() <= 80 and IsSpellReady(115072) then
  88.                 _Log("Hp lower then 80% Cast Expel Harm");
  89.                 CastSpellByID(115072, Player, true);
  90.         end
  91.  
  92.         if IsSpellKnown(115080) and IsSpellReady(115080) then
  93.                 _Log("Cast Touch of Death");
  94.                 CastSpellByID(115080 , Target , true);
  95.         end
  96.  
  97.         if IsSpellKnown(100784) and IsSpellReady(100784) then
  98.                 _Log("Cast Blackout Kick");
  99.                 CastSpellByID(100784 , Target , true);
  100.                 NextAction();
  101.         end
  102.  
  103.         if IsSpellKnown(100780) and IsSpellReady(100780) then
  104.                 _Log("Cast Jab");
  105.                 CastSpellByID(100780 , Target , true);
  106.                 NextAction();
  107.         end
  108.  
  109.  
  110.         if IsSpellKnown(115288) and IsSpellReady(115288) then
  111.                 _Log("Cast Energizing Brew");
  112.                 CastSpellByID(115288 , Target , true);
  113.                 NextAction();
  114.         end
  115.  
  116.  
  117.         if IsSpellKnown(100784) and IsSpellReady(100784) then
  118.                 _Log("Cast Blackout Kick");
  119.                 CastSpellByID(100784 , Target , true);
  120.                 NextAction();
  121.         end
  122.  
  123.         if IsSpellKnown(100780) and IsSpellReady(100780) then
  124.                 _Log("Cast Jab");
  125.                 CastSpellByID(100780 , Target , true);
  126.                 NextAction();
  127.         end
  128.  
  129.         if IsSpellKnown(100784) and IsSpellReady(100784) then
  130.                 _Log("Cast Blackout Kick");
  131.                 CastSpellByID(100784 , Target , true);
  132.                 NextAction();  
  133.         end
  134.        
  135.         if PlayerHpPercent() <= 80 and IsSpellReady(115072) then
  136.                 _Log("Hp lower then 80% Cast Expel Harm");
  137.                 CastSpellByID(115072, Player, true);
  138.         end
  139.  
  140.        
  141.         if IsSpellKnown(115080) and IsSpellReady(115080) then
  142.                 _Log("Cast Touch of Death");
  143.                 CastSpellByID(115080 , Target , true);
  144.                 NextAction();
  145.         end
  146.        
  147.         if PlayerHpPercent() <= 40 and IsSpellReady(115072) then
  148.                 _Log("Hp lower then 40% Cast Expel Harm");
  149.                 CastSpellByID(132463, Player, true);
  150.         end
  151.        
  152.         if PlayerHpPercent() <= 40 and IsSpellReady(123986) then
  153.                 _Log("Hp lower then 40% Cast Chi Burst");
  154.                 CastSpellByID(123986, Player, true);
  155.         end
  156. end
  157.  

Bittesehr. Rising Sun Kick ist rauskommentiert, da ich den Spell noch nicht kann. (:

January 11, 2013, 16:59:43 PM
Reply #20

Athermal

  • *
  • *
  • Posts: 657
  • Reputation: 115
  • German Noob
    • View Profile
dachte zwar an datei hochladen, aber so gehts auch ;)
Code: [Select]
        -- spells

       

        if  HasBuff(Player,115921) == false and IsSpellKnown(115921) and IsSpellReady(115921) then

      _Log("Cast Legacy of the Emperor");

      CastSpellByID(115921, Player, true);

      NextAction();

   end
lässt immer neu buffen da es keinen buff mit id115921 gibt. zeile 42 ff bedeutet hatkeinenbuff115921 und das stimmt ja jedes mal, auch wenn du buffst^^

ps: muss nichts was du nicht kannst raus löschen so lange du die abfragen nach isspellknown drin hast, dann wird das übergangen bis du es kannst. lieber ein profil was ab lvl10 bis lvl90 nutzbar ist.
« Last Edit: January 11, 2013, 17:02:46 PM by Athermal »
You like it then give +rep for it

January 11, 2013, 17:07:03 PM
Reply #21

KlausHansen

  • *
  • Posts: 9
  • Reputation: 0
    • View Profile
Ja, ich hatte auch schon früher (und probiere es auch jetzt) mit der ID für http://www. wowhead.com/spell=115921/legacy-of-the-emperor also 117667 probiert, ändert aber auch nichts an der ganzen Geschichte. Siehe auch 2 Posts vorher von mir. (;

January 11, 2013, 17:13:50 PM
Reply #22

Athermal

  • *
  • *
  • Posts: 657
  • Reputation: 115
  • German Noob
    • View Profile
dann liegst am mönch selber. da mit richtiger id kein problem bei anderen klassen entsteht.
demnach muss da mal die dev abteilung drüber schauen woran es liegen könnte.
You like it then give +rep for it

January 11, 2013, 17:23:36 PM
Reply #23

KlausHansen

  • *
  • Posts: 9
  • Reputation: 0
    • View Profile
Idee: Könnte man so eine Abfrage basteln?

if PlayerStats < (Base-Stats + EQ-Stats)*1.05 then cast Legacy of the Emperor


Das würde zwar procs außer Acht lassen, daber da man sich ja selten infight bufft, dürfte das egal sein.
« Last Edit: January 11, 2013, 17:27:13 PM by KlausHansen »

January 11, 2013, 17:43:28 PM
Reply #24

Athermal

  • *
  • *
  • Posts: 657
  • Reputation: 115
  • German Noob
    • View Profile
könnte man sicher, aber eigentlich braucht man keinen solchen weg zu gehen da hasbuff die abfrage direkt erledigen sollte. zudem würde ich auch in der pull funktion den buffcheck mit rein nehmen. auch wenns nur ein gcd ist ;)
You like it then give +rep for it

July 25, 2013, 22:02:20 PM
Reply #25

made88

  • *
  • Posts: 7
  • Reputation: 0
    • View Profile
Hallo. ich würde gerne ein ganz billiges profil für meinen hexer schreiben. er soll nur ein ziel anvisieren und "leben ernten" durchkanalisieren. sobald abgelaufen soll er das wiederholen. habe einfach deine "erste customclass" genommen und die spell ids ersetzt. muss ich noch was beachten?
Es ist zu beachten, dass ich davon selber keine Ahnung habe ^^

function Settings()
   FightDist = 15
   PullDist = 35
end

function NextAction()
   if true then return end
end


function Fight()
   Target = GetAttacker(1)
   Me = 0

   if IsSpellKnown(108371) and IsSpellKnown(133) then
      _Log("Cast Leben ernten");
      CastSpellByID(108371 , Target , true);
      NextAction();
   end

   
end


Fehlermeldung im Bot:
[21:56:47] - NavigateShort Started
[21:56:48] - error running function 'Pullmob': attempt to call a nil value
[21:57:03] - Blacklist Mob: o
[21:57:03] - [Reg]: Reading "Reg.ini".
[21:57:03] - [Reg]: HP limit: 70
[21:57:03] - [Reg]: Mana limit: 70
[21:57:05] - [Reg]: Using heals: YES
[21:57:05] - [Reg]: Automatic heal selection: YES
[21:57:05] - [Reg]: Could not determine a viable heal spell, disabling heal spell use.
[21:57:05] - [Reg]: Using food/drink: YES
[21:57:05] - [Reg]: Automatic food selection: YES
[21:57:05] - [Reg]: Using food: 81406

vielen dank für eure hilfe im voraus

July 25, 2013, 22:35:42 PM
Reply #26

Athermal

  • *
  • *
  • Posts: 657
  • Reputation: 115
  • German Noob
    • View Profile
wenn ich davon ausgehe dass du damit auch pullen magst ändere den inhalt zu:

Code: [Select]
function Settings()
    FightDist = 35
    PullDist = 30
end
function PullMob(MobAddr)
 if IsSpellKnown(108371) and IsSpellReady(108371) then
      _Log("Cast Leben ernten");
      CastSpellByID(108371 , MobAddr , true);
end
end
function Fight()
Target = GetAttacker(1)
 if IsSpellKnown(108371) and IsSpellReady(108371) then
      _Log("Cast Leben ernten");
      CastSpellByID(108371 , Target , true);
 end
end
You like it then give +rep for it

July 25, 2013, 23:49:26 PM
Reply #27

made88

  • *
  • Posts: 7
  • Reputation: 0
    • View Profile
danke für die hilfe. leider nimmt er nur das zeil ins target und macht dann nichts.

[23:48:37] - Moving to Object!
[23:48:37] - NavigateShort to Mob Started
[23:48:37] - Target: 1987.188232 -554.127991 245.835678
[23:48:37] - Path Generated!
[23:48:37] - Underwater check done!
[23:48:42] - Call Fight()

July 26, 2013, 00:54:17 AM
Reply #28

Athermal

  • *
  • *
  • Posts: 657
  • Reputation: 115
  • German Noob
    • View Profile
oh, ok. habs gerad bei mir getestet. isspellknown gibt false aus, auch wenn man den spell kann.
tausch mal die 108371 gegen 689 aus, das ist blutsager, wird aber durch den skill ersetzt aber löst trotzdem aus.
You like it then give +rep for it

July 26, 2013, 03:08:52 AM
Reply #29

made88

  • *
  • Posts: 7
  • Reputation: 0
    • View Profile
ah sauber jetzt klappts. danke dir

 

* Useful Links

WoW Bot - CrawlerBot
* Download
* Guides
* Info & Clip

* Useful Stuff