SSB - Shaiya Script Bot

05/09/2009 11:35 Beastygirl#1
Hallo Zusammen,

da es hier keinen Bot mehr für Shaiya gibt habe ich mir gedacht ich stelle meinen zur Verfügung :)

Der SSB ist ein reiner Script-Bot ( Pixel-Bot ), es werden keine Speicheradressen oder sonstige Daten ausgelesen.
Der Bot läuft bei mir auf WinXP, Bildschirm 1280*1024, Farbauflösung 32Bit; Shaiya-window-mode.

Ich spiele auf Shaiya.de, habe darum keine Ahnung ob der Bot auf anderen Servern läuft. Naja, vielleicht probierts ja mal wer aus ;P
( Wenn ein GameGuard oder Sonstiges läuft braucht ihr auf alle Fälle einen GG-Disabler oder ein Workaround da ansonsten die Keystrokes aus dem Script geblockt werden ).

Ich wüsste keinen Grund warum der Bot nicht auch auf Vista laufen sollte, habs aber nicht ausprobiert.


Das GUI ist eigentlich nur für mich gedacht gewesen, darum wirds für das Interface wohl keinen Schönheitspreis geben.

Der SSB ist im Grunde genommen ein robuster Bot, hab ihn schon mehrere Stunden am Stück laufen gehabt. Mein Ziel war bei der Entwicklung nicht unbedingt die Schnelligkeit sondern die Robustheit ( obwohl ich den Bot im Vergleich zu meiner ersten Version um Lichtjahre schneller machen konnte ^^ ).

Stichworte zur Beschreibung :

Beschreibung vom Initialisierungsvorgang der Balken:
* Drücke "Init Player HP Bar".
* Fahre mit der Maus in den oberen Bereich der HP Bar.
* Drücke die Druck-Taste.
* Der Mauszeiger fährt nun nach links an den Anfang des Balkens und dann ganz nach rechts zum Ende des Balkens.
* Ist der Mauszeiger bei einer Zahl hängen geblieben dann einfach ein Stückchen höher fahren und die Druck-Taste erneut drücken.
* Wurde der ganze Balken automatisch abgefahren dann kann der Button "Acknowledge Init" gedrückt werden.

Damit ist der HP-Balken im SSB initialisiert und die HP kann vom Bot ausgelesen werden.
Anzeige ist jetzt 99,99. Erst während dem Kampf werden die Statusdaten ausgelesen und angezeigt.
Das gleiche kann jetzt mit der MP, SP und Mob-HP gemacht werden (der "Acknowledge Init" Button muß nach jedem einzelnen Init-Vorgang gedrückt werden ).
Achtung: Beim "Mob Name Field" muss der Mauszeiger mitten im Namensfeld stehen
( hier werden die Balken nicht ganz gescannt sondern nur der Bereich in der Mitte, um den Text zu erkennen ).
Nochmals Achtung : Beim Initialisieren des Mob-HP-Balkens muss ein Mob angewählt sein!

ACHTUNG : Mob-HP-Balken nur mehr auf der rechten Seite initialisieren ( rechts von der Mob %-Anzeige [links von der Mob %-Anzeige wird nicht mehr gebraucht] )

Dieser Vorgang braucht nur einmal gemacht werden, die entsprechenden Daten werden dann im Ini-File abgelegt und bleiben für die Zukunft dort gespeichert.

Dann konfiguriert man die entsprechenden Slots, speichert die Daten wieder ins Ini-File und der Spaß kann dann gestartet werden.

Zur Info : Ich habe 3 Slots fürs healen verwendet und keinen für MP oder SP.
Da ich der Meinung bin, daß ein Bot möglichst lange laufen sollte, soll sich der Char auch länger heilen können und dafür lieber mal ein paar Sekunden hinsetzen und seine MP und SP wieder aufladen.
Ebenso habe ich nur einen Slot für einen Buff gemacht, somit komme ich mit einer Slot-Reihe aus und muss nicht die Slot-Reihen hin und her schalten.


Aufgrund meiner Erfahrung ist noch zu sagen dass man dem Char ein bißchen Defense geben sollte, somit nimmt er nicht soviel Schaden und muss sich nicht so oft heilen. Das heißt er kann länger grinden und mehr Erfahrungspunkte sammeln.
Ebenso macht es wenig Sinn einen Verteidiger mit einem Bot zu leveln, da das Killen zu lange dauert und in keinem Verhältnis zur Zeitdauer steht ( ich habe auch eine Funktion im Bot die nach 70 Sekunden den Mob wechselt, denn es könnte ja sein das der Char mal an einem Felsen oder ähnlichem hängen bleibt und somit ewig stocken würde ).
Der SSB hat auch eine Bot-Trap-Detektierung inkludiert. Ich habe festgestellt das Shaiya ein ausgeklügeltes Bot-Trap-System hat. Für die SSB Bot-Trap-Detektierung habe ich unzählige Stunden aufgewendet. Die BTD ist aber mit dieser Version ganz gut ausgereift und funktioniert sehr gut.
Als kleines Gimmick habe ich noch eine Don't-Kill-Steal-Funktion in den SSB eingebaut. Funktioniert im nahen Umfeld sehr gut, nur bei weit entfernten Mobs ist es leider nicht möglich das KS zu verhindern.




Wünsche Euch noch viele EP's mit euren Chars :)






And now in english :)

Hello together,

since there is no more Bot for Shaiya, I thought I put my personal Bot at disposal.

The SSB is a pure Script-Bot ( Pixel-Bot ), there are no memory addresses or other data read out.
The bot is running on my WinXP, the screen is 1280 * 1024 and 32bit color; Shaiya-window-mode.

I play on Shaiya.de, have therefore no idea whether the bot is running on other servers or not. Well, maybe there is someone who will test it ;P
(If a game runs Game-Guard or other equal things you need a GG-disabler or workaround, otherwise the Keystrokes from the script will be blocked ).

I know of no reason why the Bot should not even run on Vista, but I have not tested it.


The GUI was only thought and programmed for my personal use, so the interface will probably not win a beauty prize.

The SSB is essentially a robust Bot, it run already several hours without problems. My goal in development was not necessarily the speed but the robustness (although I have made the Bot, in comparison to my first version, light-years faster ^^ ).


Keywords to describe:

Description of the status-bar initializing process:
* Press "Init Player HP Bar".
* Place the mouse-pointer near the upper edge of the HP-bar.
* Press the Print-Screen button.
* The mouse-Pointer drives automatically to the left edge of the bar and after that to the right edge of the bar.
* If the mouse-pointer stopped at a number than move it a little upward and press the print-screen button again.
* If the mouse-pointer reached the left and the right edge than you can press the "Acknowledge Init" button.

The HP bar is now in the SSB initialized and the Bot knows the actual HP of the char.
Now you can see 99.99 in the SSB status. But only in a fight you will see the actual status of the char's HP.
After that you should do the same with the MP, SP and the Mob-HP bar ( the "Acknowledge Init" button have to be pressed after every initialization ).
Attention: At "Mob Name Field" you have to put the mouse-pointer in the middle of the field
( only a little part of the name field will be scanned, its used to read the mob's name ).
Another Attention: At the Mob-HP-bar initialization a mob have to be selected.

ATTENTION : only initiate the Mob-HP-bar at the right side ( right of the mobs %-indication [left of the mobs %-indication is not needed anymore] )

This process needs only be made once, the relevant data are stored in the ini-file and remain there for future use.

Then configure the appropriate slots, save the data back to the ini-file and the fun can begin.


Info: The Bot uses three slots for healing and no slot for MP- or SP-pots.
I believe that a bot should be able to run as long as possible, in mob-fights a big amount of fast healing's should be preferred, therefore its better to let the Char sit down and regenerate his MP and SP and use more slots for HP-pots.
Likewise I made only one slot for the Buff. With this configuration its possible to use only one slot-row and the Bot doesn't need to switch between the slot-bars.

Because of my experience it is to say that you should give the Char some Defense, therefore the mobs don't do so much damage and the Bot mustn't heal the Char that often. With more Char-defense the Bot is able to grind a longer time and gain more experience points.

Likewise it makes little sense to use the SSB with a Defender-Char, because the leveling takes much too long (I also included a function which will alter the mob after 70 seconds, because there might be times that the Char stuck on a rock or similar things and without that function the Char will stuck there forever ).
The SSB also included a bot-trap-detection. I've found out that Shaiya has a sophisticated bot-trap-system. I have spent countless hours to improve the SSB Bot-trap-detection. The BTD in this version works very well and quite mature.
As a little gimmick I have a “Do not Kill Steal” function included into the SSB. In the nearby environment it works very good, but unfortunately with distant mobs it is not possible to prevent the Char from KSing.





Wish you a lot of EP's with your Chars. :)





SSB V1.0 ( 2009.05.09 )
.......... Original version

SSB V2.0 ( 2009.05.26 )
.......... Smaller GUI - its now usable at LapTops with a small resolution ( like 800*600 )
.......... Minor improvement of the BotTrap-Handling

SSB V2.1 ( 2009.05.27 )
.......... Same like SSB V2.0 + Sit-Function is now visible

SSB V3.0 ( 2009.05.29 )
.......... Attack sequence renewed

SSB V3.1 ( 2009.05.29 )
.......... Minor improvement in attack sequence for fighters/Kämpfer

Under Construction : SSB AZERTY Testversion The implementation of the French-AZERTY-Keyboard functions.
The core of the SSB AZERTY Testversion.zip is the same like SSB V3.1.zip. Only change is the implementation of the French-AZERTY-Keyboard ( At the moment its only a test-version ).

SSB V4.0 ( 2009.10.17 )
.......... new version for Episode 4



.
05/09/2009 14:00 nurzumdownloaden#2
funzt perfekt auf vista/winserver 2008

ps: sticky wäre gut =)
05/09/2009 21:23 °Remus°#3
dann mach ich den mal sticky,
es wär gut wenn soch jmd finden würde der das per hand in englsich übersetzt da pixelbots auf allen servern ohne gg laufen dürfte
05/10/2009 03:51 MC Flip#4
Ich schaffe es nicht den Bot so einzustellen das er richtig läuft.
05/10/2009 09:13 Beastygirl#5
Wow....Danke fürs Sticky :)


Dann werd ich das ganze mal ins Englische übersetzen und die Beschreibung detaillieren. Gebt mir allerdings dazu ein paar Tage Zeit.

@ MC Flip... was genau fehlt dir denn an Information zum einstellen des SSB ?
05/10/2009 11:38 MC Flip#6
also am anfang muss man ja die hp,mp und sp leisten laden und dafür muss man ja erstmal auf ssb auf den gewünschten button klicken und dan mit der maus auf das gewünschte feld (HP,MP und SP anzeige im spiel) anklicken und danach Print Scr drücken. Das funktioniert bei mir nur bei der HP Anzeige,aber im bot steht immer noch 99.
Ich habe es einmal geschafft den bot zum laufen zu bringen,aber er konnte nicht alleine mobs aussuchen ( dieses Schwert skill habe ich auf platz 1 gemacht). Danach habe ich es noch 3-4 mal probiert,aber es ging nichts mehr.
05/10/2009 16:47 Beastygirl#7
Ich habe den genauen Vorgang für das Initialisieren der Status-Balken etwas präziser beschrieben und in den Start-Thread eingefügt.

Ebenfalls habe ich einen Screenshot gemacht wo du sehen kannst wie die Slot-Leiste belegt sein sollte/kann.


Zur Info : Beim Magus NICHT den ( wie du es genannt hast ) Schwert-Skill nehmen, sondern einen Skill der schnell aufgeladen und einsetzbar ist.
05/11/2009 02:44 YGM#8
Hmm, can you release the source.

I can see many things we could change, for one you could do with having the slots not spesifically listed but make them more customizable would require alot of if's and we could even add some drop downs for each config so Where it says for example: Skill 4 you have a drop down list allowing them to choose Skill or Buff, attack, loot...etc or even a custom one (requires an ini file)
05/11/2009 11:03 bobbyx123#9
hi gibts ne möglichkeit den bot auf andere auflösungen zu transportieren ? spiele zb mit laptop auf 1366x768 ... konnte die sp,mp und hp initialisieren..aber die slots ect musste ich direkt in der config ändern (übers interface wurden die irgendwie nicht gespeichert)

der bot hat zwar mobs angegriffen aber nur wirr und total sinnlos alle möglichen tasten gedrückt

edit: okay funzt nun doch - hatte nicht jedesmal Acknowledge Init sondern nur zum schluss...
allerdings funktioniert das buffen irgendwie nicht ..ka warum

ansonsten wollte ich fragen ob es möglich wäre noch die 2. skillleiste zu nutzen zb numpad... bisher geht das nur wenn ich in die config ini statt den zahlen zugewiesene buchstaben eintrage und diese hotkeys auch im spiel unter optionen 2. aktionsleiste angleiche

ansonsten prima arbeit *thumbs up*
05/11/2009 19:37 Beastygirl#10
@ YGM: Sorry, I will not release the source code. I put so many work and thoughts in this script and I dont want that other people use my brainwork.
Im willing to make minor changes in the script if its necessary ( e.g. if bugs are found ), but Im not willing to make major changes.
My goal was a simple Bot which can work hours without interrupt, and with the actual configuration its possible that the bot run many hours without problems ( e.g. overnight ).
The more functionality the more problems can occur, thats why I will keep the bot simple.

@ bobbyx123 : Es wird immer nach der eingegebenen Zeit gebufft, d.h. beim Starten des Bots wird NICHT gebufft; Erst nach dem Ablauf der Zeit ( in der beigegebenen Konfiguration sind 250 Sekunden eingestellt ).
Probier mal die Zeit ( zum Testen ) auf 60 Sekunden zu stellen, da brauchst du nicht so lange auf den Buff zu warten.
Ebenfalls muss es ein Buff sein welcher direkt auf den Char oder auf eine Gruppe wirkt.
Für detailliertere Fragen kannst du mir auch eine pm senden.
05/12/2009 19:49 Rampe#11
Does this only work in 1280x1024

is this working with the ep4 update? Cant get the cursor to move all the way along the bars, especially not the staminabar. What could be wrong ? "end of player Sp initiating"
05/12/2009 21:43 Beastygirl#12
@ Rampe: The SSB works with all window resolutions and with all Shaiya versions because its a full pixel-bot.
If you play other than Shaiya.de ( german shaiya ) you need the GameGuard disabled because it blocks mouse movements and keystrokes [ the german shaiya version doesn't have a GameGuard protection ].
05/13/2009 13:24 Rampe#13
I am using the latest US client version for ep4 sticky on the forum.

I do not get this to work. The mousecursor must move all the way on the bars from left to rigth side before You acknowledge it?

I must have tried 100's if times pressing print screen but the mousecursor only moves alittle, not from side to side =(
05/13/2009 17:38 Beastygirl#14
You have to place the mousepointer in the middle and at the upper edge of the bar. If u press print-screen the mousepointer starts to scan the left side from where he is placed. It looks where the left edge of the bar is. It is doing this by looking at the colour of the bar. E.g. the HP-bar is red and now he starts to move to the left side till it is seeing no more red color. At this point it starts to scan the right side.
That means the mousepointer is seeing another color and thats why it stops.
Please try to move the mousepointer a little upward so it will not scan the numbers in the bars. It need the full range from left to right without interruption of the colour through the white numbers in the bar.

Also you have to press Acknowledge after each bar was initialized. Each bar-initializing is a separate process. That means Init HP--> press Acknowledge, after that Init MP--> press Acknowledge,.......

I hope this will help you.
05/14/2009 12:41 hackfan#15
Ein Freund sagte mir das der Bot sich nicht wehren würde wenn er von anderen Monstern angegeriffen wird.

Stimmt das?

-Ich habe einen Priester, welche Skills müssen dann bei mir in die Leiste?
-Welche Zahlen müssen in die Felder?? (Könnt ihr mir einen Bild von euren ausgefüllten Feldern geben??-möglichst für den Priester??-mit der Skill Leiste??
-Bei mir kann ich nichts in die unteren Kästen schreiben, weil der Balken zu groß ist, wie kann den kleiner machen oder in die jöhe verschieben??
-Bei mir klickt er nur sinnlos auf den Tasten rum und wenn er mal einen gekillt hat dan lässt er alles liegen!! Warum?
-Kann ich auch den Heilzauber und den Schnell-Heilzauber in die Liste nehemen anstelle von Hp-reg.-Sachen?
-Kann ich 2 Buffs da reinmachen anstelle des 3. Heilfeldes?
-In welchem Umfeld greift er Monster an?
-Kann man es auch so einstellen das der Bot alle Monster mit grüner Schrieft im Umkreis von 100 angreift??

Sry für die vielen Fragen aber das ist mein erster Bot^^

Thx im voraus!! und ++++ für den Bot wenn er sogut ist wie alle sagen!! (das letzte + gibts dan auchnoch für die hoffentlich schnelle Beantwortung vieler Fragen eines Idioten^^)