Shaiya bot
-
- Posts: 148
- Joined: Fri Mar 21, 2008 9:10 pm
Re: Shaiya bot
I figured it out...the bot works fine its something i didnt do. I miss read the shaiya.lua file and put the wrong numbers in for HP poistions. I saw the % sign but never actually notice it. Well after looking at the script over and over and over while doing the address i notice it. I put 50 and the bot heals at 50 percent. lol sorry every but thanks for your help. Well i learned from my mistake..lol
- Administrator
- Site Admin
- Posts: 5307
- Joined: Sat Jan 05, 2008 4:21 pm
Re: Shaiya bot
No problem. At least you learned something
If you notice anything out of sorts, feel free to report it to me and I'll be glad to look into it with you.
![Smile :)](./images/smilies/icon_e_smile.gif)
-
- Posts: 1
- Joined: Mon Mar 24, 2008 8:21 pm
- Contact:
Re: Shaiya bot
oki... there has to be something i'm doing wrong. i downloaded Shaiya.. installed it to my comp and let the game run normally so it would upgrade to the latest version of Shaiya. I then downloaded the no game guard patch and after unzipping it i replaced the game.exe file with the new one. i then created a loader on my desktop and ran it but i still got the "game hack has been found". i tried everything to get this working and don-t know what to do anymore. i tried uninstalling/reinstalling, running it without the upgrade, creating a shortcut loader and also a text loader but nothing works.. i even tried shutting down almost ALL processes and it still didin-t work and keeps saying that it found a hack.
if anyone knows how to help me i'd appreciate it soooo much.
=val
if anyone knows how to help me i'd appreciate it soooo much.
=val
- Administrator
- Site Admin
- Posts: 5307
- Joined: Sat Jan 05, 2008 4:21 pm
Re: Shaiya bot
When you open the launcher that you made, does it bring up the Shaiya patcher, or does it directly launch the game? As long as you've extracted game.exe from the ZIP, and overwrote, I don't understand how it's possible that GameGuard is opening. Delete the game.exe you have in C:/AeriaGames/Shaiya/ (or whatever the folder is), and then put the patch in there. This might help to work around any sort of strange issues that could be coming into play (such as hash checks).
It is most likely a hidden system driver. Have you ever installed Cheat Engine on your computer (even if you have since uninstalled it)? If so, Cheat Engine might've installed a system driver that it uses, depending on your settings. It could also be a rootkit. There's also a plethora of keyboard drivers that are detected as "hacks" by GameGuard.i even tried shutting down almost ALL processes and it still didin-t work and keeps saying that it found a hack.
-
- Posts: 148
- Joined: Fri Mar 21, 2008 9:10 pm
Re: Shaiya bot
A friend of mine has windows vista. Her husband has windows vista also. He is able to get the bot to work with the script but when she trys to use the script she gets
Tue Mar 25 21:18:02 2008 : ...Users\Stpdliku\Desktop\micromacro\scripts\shaiya.lua:202: Invalid data was supplied to memoryReadShort().
Tue Mar 25 21:18:02 2008 : ...Users\Stpdliku\Desktop\micromacro\scripts\shaiya.lua:202: Invalid data was supplied to memoryReadShort().
- Administrator
- Site Admin
- Posts: 5307
- Joined: Sat Jan 05, 2008 4:21 pm
Re: Shaiya bot
Does she have UAC enabled or disabled? Is she running it as administrator? Running as compatibility mode for XP? Did she delete the micromacro.exe.manifest?
Re: Shaiya bot
Hi ![Smile :)](./images/smilies/icon_e_smile.gif)
First of all: Thanks for this nice bot!
I tried it and on my archer it works really nice...
For my priest I tried some changes.... The most important thing for mage and priest is to to get the attack button off, thats what I did... and for finding monsters I wanted to trie the '^' (german keyboard) or '~' (englich keyboard) button, but didnt work :O
'^' doesnt exist in the keymap.lua and the '~' didnt work...I have no idea why![Smile :)](./images/smilies/icon_e_smile.gif)
Maybe someone has an idea how to select monsters without the attack skill? Cause then mages can easily use this bot, too.
Thanks for help!
MrsBlubb
![Smile :)](./images/smilies/icon_e_smile.gif)
First of all: Thanks for this nice bot!
I tried it and on my archer it works really nice...
For my priest I tried some changes.... The most important thing for mage and priest is to to get the attack button off, thats what I did... and for finding monsters I wanted to trie the '^' (german keyboard) or '~' (englich keyboard) button, but didnt work :O
'^' doesnt exist in the keymap.lua and the '~' didnt work...I have no idea why
![Smile :)](./images/smilies/icon_e_smile.gif)
Maybe someone has an idea how to select monsters without the attack skill? Cause then mages can easily use this bot, too.
Thanks for help!
MrsBlubb
- Administrator
- Site Admin
- Posts: 5307
- Joined: Sat Jan 05, 2008 4:21 pm
Re: Shaiya bot
Were you using key.VK_TILDE? ^ is the same as 6 on the numerical row for English keyboards, so it hasn't been specifically mapped. You should be able to use key.VK_TILDE to invoke a ^ as it's in the same place (but it depends entirely upon hardware scancodes...so who knows).the '~' didnt work...I have no idea why
Re: Shaiya bot
i tried key.VK_TILDE , but it didn't work for me. i also tried english keyboard layout in windows settings, but: no reaction. i think its because hardware scancodes as u wrote. anyone gots an idea how i can emulate english keyboard or other ways to get the target. mage attacking with stick, then use skill and attack with stick again looks, uhm, eye-catching and u easily can get mobbed.
another way to go would be to target the mob with normal attack, then stop running to it (press 'w' for example) and use skill to prevent getting mobbed and loose the range advantage of mages/priests, but i don't really know how to do it ^^ any suggestions? your help would be appreciated, and perhaps get the bot also suitable for mages![Smile :)](./images/smilies/icon_e_smile.gif)
Edit: Tried some things and added one line in the find target function and now it works for me ^^
also i deleted the lines:
in the fight function and now all's fine ![Smile :)](./images/smilies/icon_e_smile.gif)
Not the best way I think... but my priest can fight now :p
Thanks!
Next thing to do: Enable Auto-Aura-Of-Peacing ^^
another way to go would be to target the mob with normal attack, then stop running to it (press 'w' for example) and use skill to prevent getting mobbed and loose the range advantage of mages/priests, but i don't really know how to do it ^^ any suggestions? your help would be appreciated, and perhaps get the bot also suitable for mages
![Smile :)](./images/smilies/icon_e_smile.gif)
Edit: Tried some things and added one line in the find target function and now it works for me ^^
Code: Select all
function find_target()
keyboardPress(key_attack);
keyboardPress(key.VK_W);
end
Code: Select all
if( attack_ready ) then
keyboardPress(key_attack); attack_ready = false; yrest(1000); end;
![Smile :)](./images/smilies/icon_e_smile.gif)
Not the best way I think... but my priest can fight now :p
Thanks!
Next thing to do: Enable Auto-Aura-Of-Peacing ^^
- Administrator
- Site Admin
- Posts: 5307
- Joined: Sat Jan 05, 2008 4:21 pm
Re: Shaiya bot
It appears that the virtual key code for the ^ button on German keyboards is 220. You can edit the keymap.lua to set key.VK_TILDE to 220 if you wish, or simply use the constant 220 like so:
You could even pass 220 directly into keyboardPress(), but this is undesirable as it may be hard to remember what 220 is supposed to stand for.
Code: Select all
key_target =220;
keyboardPress(key_target);
-
- Posts: 1
- Joined: Sat Apr 05, 2008 2:28 pm
Re: Shaiya bot
I have tried this and when I go to log in shaiya it says wrong client or somthing like that when Im trying to log in.
- Administrator
- Site Admin
- Posts: 5307
- Joined: Sat Jan 05, 2008 4:21 pm
Re: Shaiya bot
After installing Shaiya, have you allowed it to update? If not, try letting it do so. If you already have, redownload the client, reinstall, and then apply the no-GG patch and launcher bypass right away.
If you know a thing or two about Olly and hexediting, you can use Olly to locate the call to CreateProcessA() that opens GameGuard. Set the InheritHandle to false (change the 6A 01 | PUSH 1 to 6A 00 | PUSH 0). That's basically it.
If you know a thing or two about Olly and hexediting, you can use Olly to locate the call to CreateProcessA() that opens GameGuard. Set the InheritHandle to false (change the 6A 01 | PUSH 1 to 6A 00 | PUSH 0). That's basically it.
Re: Shaiya bot
I am HUGE into this game Leveling has turned me off. I'd Like to run a bot Only when Im at work.
However.. I can't get it to work. I've read ALL 10 pages and nothing.
It works ONCE. Doesn't pick up items.. Doesn't Auto target enemies..
Help?
However.. I can't get it to work. I've read ALL 10 pages and nothing.
It works ONCE. Doesn't pick up items.. Doesn't Auto target enemies..
Help?
- Administrator
- Site Admin
- Posts: 5307
- Joined: Sat Jan 05, 2008 4:21 pm
Re: Shaiya bot
More information is needed. Have you installed the GameGuard patch, and used the loader? What is the output from MicroMacro? Post your log.txt.
-
- Posts: 148
- Joined: Fri Mar 21, 2008 9:10 pm
Re: Shaiya bot
Hey i made changes the the shaiya.lua script and gave it three changes to give Hp pots. The script worked and everything and i had to close downt he micro and the game so i can get things done for school. When i can back on shaiya and run the script again i get this message.
shaiya.lua:265 attemp to compare number with nil
stopping excution. It did 11,33,44,55 then it stops.
I check the log and this it what it tells me
Fri Apr 18 21:31:08 2008 : Executing script "shaiya.lua".
==================================================
Fri Apr 18 21:31:18 2008 : ...ner\Desktop\micromacro\micromacro\scripts\shaiya.lua:265: attempt to compare number with nil
stack traceback:
...ings\Owner\Desktop\micromacro\micromacro\lib\lib.lua:190: in function <...ings\Owner\Desktop\micromacro\micromacro\lib\lib.lua:126>
[C]: in function 'pcall'
...ings\Owner\Desktop\micromacro\micromacro\lib\lib.lua:236: in function 'startMacro'
...ner\Desktop\micromacro\micromacro\scripts\shaiya.lua:327: in main chunk
----------TRACEBACK END----------
Fri Apr 18 21:31:18 2008 : Execution of shaiya.lua complete.
Fri Apr 18 21:31:18 2008 : Execution success.
Fri Apr 18 21:31:18 2008 : Collecting garbage...
Fri Apr 18 21:31:18 2008 : GC closed process handle 0x58.
Fri Apr 18 21:31:18 2008 : 31KB freed.
This is the script its using
im new to the codeing and stuff but im learning....i dont get why this worked befor and not now.
shaiya.lua:265 attemp to compare number with nil
stopping excution. It did 11,33,44,55 then it stops.
I check the log and this it what it tells me
Fri Apr 18 21:31:08 2008 : Executing script "shaiya.lua".
==================================================
Fri Apr 18 21:31:18 2008 : ...ner\Desktop\micromacro\micromacro\scripts\shaiya.lua:265: attempt to compare number with nil
stack traceback:
...ings\Owner\Desktop\micromacro\micromacro\lib\lib.lua:190: in function <...ings\Owner\Desktop\micromacro\micromacro\lib\lib.lua:126>
[C]: in function 'pcall'
...ings\Owner\Desktop\micromacro\micromacro\lib\lib.lua:236: in function 'startMacro'
...ner\Desktop\micromacro\micromacro\scripts\shaiya.lua:327: in main chunk
----------TRACEBACK END----------
Fri Apr 18 21:31:18 2008 : Execution of shaiya.lua complete.
Fri Apr 18 21:31:18 2008 : Execution success.
Fri Apr 18 21:31:18 2008 : Collecting garbage...
Fri Apr 18 21:31:18 2008 : GC closed process handle 0x58.
Fri Apr 18 21:31:18 2008 : 31KB freed.
This is the script its using
Code: Select all
------------------------------------------------
-- HOTKEYS
------------------------------------------------
startKey = key.VK_INSERT;
stopKey = key.VK_DELETE;
key_attack = key.VK_1;
key_pickup = key.VK_2;
key_skill1 = key.VK_3;
key_skill2 = key.VK_4;
key_skill3 = key.VK_5;
key_buff1 = key.VK_6;
key_buff2 = key.VK_7;
key_hp_potion = key.VK_8;
key_hp1_potion = key.VK_9;
key_hp2_potion = key.VK_0;
key_sit = key.VK_C;
------------------------------------------------
-- SKILLS
------------------------------------------------
-- Set to 0 if you don't want to use a skill
skill1_time = secondsToTimer(30);
skill2_time = secondsToTimer(30);
skill3_time = secondsToTimer(35);
------------------------------------------------
-- BUFFS
------------------------------------------------
-- Set a buff to 0 if you don't want to use it
buff1_time = minutesToTimer(5);
buff2_time = minutesToTimer(10);
------------------------------------------------
-- POTIONS
------------------------------------------------
-- All potion use values are specified in %
-- Set the values to 0 to not use that potion
HP_potion_use = 50;
HP1_potion_use = 40;
HP2_potion_use = 30;
------------------------------------------------
-- SITTING
------------------------------------------------
-- All sitting values are specified in %
-- We will only sit while out of battle
-- Set the values to 0 to not use sitting
HP_sit = 0;
MP_sit = 0;
SP_sit = 0;
--[[*********************************************************************
**************************************************************************
DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING
**************************************************************************
************************************************************************]]
------------------------------------------------
-- Memory addresses
------------------------------------------------
playerptr_addr = 0x02110AC8;
HP_offset = 296;
MaxHP_offset = 300;
MP_offset = 304;
MaxMP_offset = 308;
SP_offset = 312;
MaxSP_offset = 316;
targetid_addr = 0x00619B1C; -- short, 65535 if none selected
targettype_addr = 0x00619B1F; -- byte, 0 = player/NPC, 7 = monster
sitcheck_addr = 0x01FCFEE4; -- byte, 0 = standing, 7 = sitting
------------------------------------------------
-- Variable setup
------------------------------------------------
HP = 10000;
MaxHP = HP;
MP = 10000;
MaxMP = MP;
SP = 10000;
MaxSP = SP;
skill1_ready = true;
skill2_ready = true;
skill3_ready = true;
buff1_ready = true;
buff2_ready = true;
------------------------------------------------
-- Functions
------------------------------------------------
skill1_toggle = function () skill1_ready = true; end;
skill2_toggle = function () skill2_ready = true; end;
skill3_toggle = function () skill3_ready = true; end;
buff1_toggle = function () buff1_ready = true; end;
buff2_toggle = function () buff2_ready = true; end;
function use_hp_potion()
keyboardPress(key_hp_potion);
printf("Using HP potion\n");
end
function use_hp1_potion()
keyboardPress(key_hp1_potion);
printf("Using HP1 potion\n");
end
function use_hp2_potion()
keyboardPress(key_hp2_potion);
printf("Using HP2 potion\n");
end
function use_mp_potion()
keyboardPress(key_mp_potion);
printf("Using MP potion\n");
end
function use_sp_potion()
keyboardPress(key_sp_potion);
printf("Using SP potion\n");
end
function sit()
if( HP_sit == 0 ) then
return; end
printf("Sitting.\n");
local sitting = false;
while( sitting == false ) do
keyboardPress(key_sit);
yrest(1000);
sitting = memoryReadByte(proc, sitcheck_addr) ~= 0;
end
local lasthp = HP;
while( true ) do
if( HP == MaxHP and MP == MaxMP and SP == MaxSP ) then
break;
end
if( HP < (lasthp - 10) ) then
printf("Exiting rest...under attack\n");
break;
else
lasthp = HP;
end
yrest(100);
end
sitting = true;
while( sitting ) do
keyboardPress(key_sit);
yrest(1000);
sitting = memoryReadByte(proc, sitcheck_addr) ~= 0;
end
printf("Standing... Resuming bot\n");
yrest(1000);
end
function pickup()
if( key_pickup == 0 ) then return; end
local i;
for i = 0, 5 do
keyboardPress(key_pickup);
yrest(200);
end
yrest(1000);
end
function update_vars()
HP = memoryReadIntPtr(proc, playerptr_addr, HP_offset);
MaxHP = memoryReadIntPtr(proc, playerptr_addr, MaxHP_offset);
HP1 = memoryReadIntPtr(proc, playerptr_addr, HP_offset);
MaxHP = memoryReadIntPtr(proc, playerptr_addr, MaxHP_offset);
HP2 = memoryReadIntPtr(proc, playerptr_addr, HP_offset);
MaxHP = memoryReadIntPtr(proc, playerptr_addr, MaxHP_offset);
MP = memoryReadIntPtr(proc, playerptr_addr, MP_offset);
MaxMP = memoryReadIntPtr(proc, playerptr_addr, MaxMP_offset);
SP = memoryReadIntPtr(proc, playerptr_addr, SP_offset);
MaxSP = memoryReadIntPtr(proc, playerptr_addr, MaxSP_offset);
end
function have_target()
local readid = memoryReadShort(proc, targetid_addr);
local readtype = memoryReadByte(proc, targettype_addr);
return ( readid ~= 0xFFFF and readtype ~= 0 );
end
function find_target()
keyboardPress(key_attack);
end
------------------------------------------------
-- FIGHT
------------------------------------------------
function fight()
local attack_ready = true;
local attack_toggle = function () attack_ready = true; end;
registerTimer("attack_timer", secondsToTimer(3), attack_toggle);
local targetid = memoryReadByte(proc, targettype_addr);
while( have_target() ) do
if( targetid ~= memoryReadByte(proc, targettype_addr) ) then break; end;
if( skill1_ready and skill1_time > 0 ) then
keyboardPress(key_skill1); skill1_ready = false; yrest(1000);
registerTimer("skill1_toggle", skill1_time, skill1_toggle);
end;
if( skill2_ready and skill2_time > 0) then
keyboardPress(key_skill2); skill2_ready = false; yrest(1000);
registerTimer("skill2_toggle", skill2_time, skill2_toggle);
end;
if( skill3_ready and skill3_time > 0) then
keyboardPress(key_skill3); skill3_ready = false; yrest(1000);
registerTimer("skill3_toggle", skill3_time, skill3_toggle);
end;
if( attack_ready ) then
keyboardPress(key_attack); attack_ready = false; yrest(1000); end;
if( (HP/MaxHP*100) < HP_potion_use and HP_potion_use > 0 ) then use_hp_potion(); end
if( (HP/MaxHP*100) < HP1_potion_use and HP1_potion_use > 0 ) then use_hp1_potion(); end
if( (HP/MaxHP*100) < HP2_potion_use and HP2_potion_use > 0 ) then use_hp2_potion(); end
if( (MP/MaxMP*100) < MP_potion_use and MP_potion_use > 0 ) then use_mp_potion(); end
if( (SP/MaxSP*100) < SP_potion_use and SP_potion_use > 0 ) then use_sp_potion(); end
if( buff1_ready and buff1_time > 0 ) then
keyboardPress(key_buff1); buff1_ready = false; yrest(2000); end;
if( buff2_ready and buff2_time > 0 ) then
keyboardPress(key_buff2); buff2_ready = false; yrest(2000); end;
yrest(100);
end
unregisterTimer("attack_timer");
pickup()
end
------------------------------------------------
-- MAIN
------------------------------------------------
function main()
proc = openProcess(findProcessByExe("game.exe"));
win = findWindow("Shaiya");
attach(win);
setPriority(PRIORITY_HIGH);
registerTimer("update_vars", 100, update_vars);
if( skill1_time ) then registerTimer("skill1_toggle", skill1_time, skill1_toggle); end
if( skill2_time ) then registerTimer("skill2_toggle", skill2_time, skill2_toggle); end
if( skill3_time ) then registerTimer("skill3_toggle", skill3_time, skill3_toggle); end
if( buff1_time ) then registerTimer("buff1_toggle", buff1_time, buff1_toggle); end;
if( buff2_time ) then registerTimer("buff2_toggle", buff2_time, buff2_toggle); end;
while( true ) do
find_target();
yrest(200);
if( have_target() ) then
fight();
end
if( buff1_ready and buff1_time > 0 ) then
keyboardPress(key_buff1); buff1_ready = false; yrest(2000); end;
if( buff2_ready and buff2_time > 0 ) then
keyboardPress(key_buff2); buff2_ready = false; yrest(2000); end;
if( (HP/MaxHP*100) < HP_potion_use and HP_potion_use > 0 ) then use_hp_potion(); end
if( (HP/MaxHP*100) < HP1_potion_use and HP1_potion_use > 0 ) then use_hp1_potion(); end
if( (HP/MaxHP*100) < HP2_potion_use and HP2_potion_use > 0 ) then use_hp2_potion(); end
if( (MP/MaxMP*100) < MP_potion_use and MP_potion_use > 0 ) then use_mp_potion(); end
if( (SP/MaxSP*100) < SP_potion_use and SP_potion_use > 0 ) then use_sp_potion(); end
if( (HP/MaxHP*100) < HP_sit and (HP_sit > 0) ) then sit(); end
if( (MP/MaxMP*100) < MP_sit and (MP_sit > 0) ) then sit(); end
if( (SP/MaxSP*100) < SP_sit and (SP_sit > 0) ) then sit(); end
end
end
startMacro(main);
im new to the codeing and stuff but im learning....i dont get why this worked befor and not now.
Re: Shaiya bot
hi all..
im having a difficulty fixing my configeration..i cant get my other skills to work but my first attack skill(key 3) works fine ( actually it works too fine..trying to activate every 3 seconds or so ) but my other ones dont wanna activate (key 4 and 5)
heres my configiration..what did i do wrong?
im preety sure i messed it up completely
im having a difficulty fixing my configeration..i cant get my other skills to work but my first attack skill(key 3) works fine ( actually it works too fine..trying to activate every 3 seconds or so ) but my other ones dont wanna activate (key 4 and 5)
heres my configiration..what did i do wrong?
![Crying or Very Sad :cry:](./images/smilies/icon_cry.gif)
------------------------------------------------
-- HOTKEYS
------------------------------------------------
printf("Shaiya bot v2\nPress INSERT key to start botting.\nYou may press DELETE to stop/pause.\n");
startKey = key.VK_INSERT;
stopKey = key.VK_DELETE;
key_attack = key.VK_1;
key_pickup = key.VK_2;
key_skill1 = key.VK_3;
key_skill2 = key.VK_4;
key_skill3 = key.VK_5;
key_buff1 = key.VK_6;
key_buff2 = key.VK_7;
key_hp_potion = key.VK_8;
key_mp_potion = key.VK_9;
key_sp_potion = key.VK_0;
key_sit = key.VK_C;
------------------------------------------------
-- SKILLS
------------------------------------------------
-- Set to 0 if you don't want to use a skill
skill1_time = secondsToTimer(3);
skill2_time = 1;
skill3_time = 1;
------------------------------------------------
-- BUFFS
------------------------------------------------
-- Set a buff to 0 if you don't want to use it
buff1_time = minutesToTimer(5);
buff2_time = minutesToTimer(10);
------------------------------------------------
-- POTIONS
------------------------------------------------
-- All potion use values are specified in %
-- Set the values to 0 to not use that potion
HP_potion_use = 40;
MP_potion_use = 40;
SP_potion_use = 35;
------------------------------------------------
-- SITTING
------------------------------------------------
-- All sitting values are specified in %
-- We will only sit while out of battle
-- Set the values to 0 to not use sitting
HP_sit = 30;
MP_sit = 20;
SP_sit = 10;
------------------------------------------------
-- Memory addresses
------------------------------------------------
playerptr_addr = 0x02110AC8;
HP_offset = 296;
MaxHP_offset = 300;
MP_offset = 304;
MaxMP_offset = 308;
SP_offset = 312;
MaxSP_offset = 316;
targetid_addr = 0x00619B1C; -- short, 65535 if none selected
targettype_addr = 0x00619B1F; -- byte, 0 = player/NPC, 7 = monster
sitcheck_addr = 0x01FCFEE4; -- byte, 0 = standing, 7 = sitting
--[[*********************************************************************
**************************************************************************
DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING
**************************************************************************
************************************************************************]]
------------------------------------------------
-- Variable setup
------------------------------------------------
HP = 10000;
MaxHP = HP;
MP = 10000;
MaxMP = MP;
SP = 10000;
MaxSP = SP;
skill1_ready = true;
skill2_ready = true;
skill3_ready = true;
buff1_ready = true;
buff2_ready = true;
------------------------------------------------
-- Functions
------------------------------------------------
skill1_toggle = function () skill1_ready = true; end;
skill2_toggle = function () skill2_ready = true; end;
skill3_toggle = function () skill3_ready = true; end;
buff1_toggle = function () buff1_ready = true; end;
buff2_toggle = function () buff2_ready = true; end;
function use_hp_potion()
keyboardPress(key_hp_potion);
HP = HP + 100;
printf("Using HP potion\n");
end
function use_mp_potion()
keyboardPress(key_mp_potion);
MP = MP + 100;
printf("Using MP potion\n");
end
function use_sp_potion()
keyboardPress(key_sp_potion);
SP = SP + 100;
printf("Using SP potion\n");
end
function sit()
if( HP_sit == 0 ) then
return; end
printf("Sitting.\n");
keyboardPress(key_sit);
yrest(500);
local lasthp = HP;
while( HP < MaxHP and MP < MaxMP and SP < MaxSP ) do
if( HP < lasthp ) then
printf("Exiting rest...under attack\n");
return;
else
lasthp = HP;
end
yrest(100);
end
local sitting = true;
while( sitting ) do
keyboardPress(key_sit);
yrest(500);
sitting = memoryReadByte(proc, sitcheck_addr) ~= 0;
end
yrest(1000);
end
function pickup()
if( key_pickup == 0 ) then return; end
local i;
for i = 0, 5 do
keyboardPress(key_pickup);
yrest(200);
end
yrest(1000);
end
function update_vars()
HP = memoryReadIntPtr(proc, playerptr_addr, HP_offset);
MaxHP = memoryReadIntPtr(proc, playerptr_addr, MaxHP_offset);
MP = memoryReadIntPtr(proc, playerptr_addr, MP_offset);
MaxMP = memoryReadIntPtr(proc, playerptr_addr, MaxMP_offset);
SP = memoryReadIntPtr(proc, playerptr_addr, SP_offset);
MaxSP = memoryReadIntPtr(proc, playerptr_addr, MaxSP_offset);
end
function have_target()
local readid = memoryReadShort(proc, targetid_addr);
local readtype = memoryReadByte(proc, targettype_addr);
return ( readid ~= 0xFFFF and readtype ~= 0 );
end
function find_target()
keyboardPress(key_attack);
end
------------------------------------------------
-- FIGHT
------------------------------------------------
function fight()
local attack_ready = true;
local attack_toggle = function () attack_ready = true; end;
registerTimer("attack_timer", secondsToTimer(3), attack_toggle);
local targetid = memoryReadByte(proc, targettype_addr);
while( have_target() ) do
if( targetid ~= memoryReadByte(proc, targettype_addr) ) then break; end;
if( skill1_ready and skill1_time > 0 ) then
keyboardPress(key_skill1); skill1_ready = false; yrest(1000); end;
if( skill2_ready and skill2_time > 6) then
keyboardPress(key_skill2); skill2_ready = false; yrest(1000); end;
if( skill3_ready and skill3_time > 13) then
keyboardPress(key_skill3); skill3_ready = false; yrest(1000); end;
if( attack_ready ) then
keyboardPress(key_attack); attack_ready = false; yrest(1000); end;
if( (HP/MaxHP*100) < HP_potion_use and HP_potion_use > 0 ) then use_hp_potion(); end
if( (MP/MaxMP*100) < MP_potion_use and MP_potion_use > 0 ) then use_mp_potion(); end
if( (SP/MaxSP*100) < SP_potion_use and SP_potion_use > 0 ) then use_sp_potion(); end
if( buff1_ready and buff1_time > 0 ) then
keyboardPress(key_buff1); buff1_ready = false; yrest(2000); end;
if( buff2_ready and buff2_time > 0 ) then
keyboardPress(key_buff2); buff2_ready = false; yrest(2000); end;
yrest(100);
end
unregisterTimer("attack_timer");
pickup()
end
------------------------------------------------
-- MAIN
------------------------------------------------
function main()
proc = openProcess(findProcessByExe("game.exe"));
win = findWindow("Shaiya");
attach(win);
setPriority(PRIORITY_HIGH);
registerTimer("update_vars", 100, update_vars);
if( skill1_time ) then registerTimer("skill1_toggle", skill1_time, skill1_toggle); end
if( skill2_time ) then registerTimer("skill2_toggle", skill2_time, skill2_toggle); end
if( skill3_time ) then registerTimer("skill3_toggle", skill3_time, skill3_toggle); end
if( buff1_time ) then registerTimer("buff1_toggle", buff1_time, buff1_toggle); end;
if( buff2_time ) then registerTimer("buff2_toggle", buff2_time, buff2_toggle); end;
while( true ) do
find_target();
if( have_target() ) then
fight();
end
if( buff1_ready and buff1_time > 0 ) then
keyboardPress(key_buff1); buff1_ready = false; yrest(2000); end;
if( buff2_ready and buff2_time > 0 ) then
keyboardPress(key_buff2); buff2_ready = false; yrest(2000); end;
if( (HP/MaxHP*100) < HP_potion_use and HP_potion_use > 0 ) then use_hp_potion(); end
if( (MP/MaxMP*100) < MP_potion_use and MP_potion_use > 0 ) then use_mp_potion(); end
if( (SP/MaxSP*100) < SP_potion_use and SP_potion_use > 0 ) then use_sp_potion(); end
if( (HP/MaxHP*100) < HP_sit and (HP_sit > 0) ) then sit(); end
if( (MP/MaxMP*100) < MP_sit and (MP_sit > 0) ) then sit(); end
if( (SP/MaxSP*100) < SP_sit and (SP_sit > 0) ) then sit(); end
end
end
startMacro(main);
-
- Posts: 148
- Joined: Fri Mar 21, 2008 9:10 pm
Re: Shaiya bot
centik your problem is Really simple.
Look at your script and find where it says..
------------------------------------------------
-- SKILLS
------------------------------------------------
-- Set to 0 if you don't want to use a skill
skill1_time = secondsToTimer(3);
skill2_time = 1;
skill3_time = 1;
You see the first skill is set to go off every 3 secs.
secondsToTimer: How many secs you want befor it press the key
(3); Is actually how long you want it to wait.
------------------------------------------------
-- SKILLS
------------------------------------------------
-- Set to 0 if you don't want to use a skill
skill1_time = secondsToTimer(10);
skill2_time = secondsToTimer(15);
skill3_time = secondsToTimer(30);
So skill 1 will go off every 10 secs,
Skill 2 will go off everyone 15 secs.
Skill 3 will go off everyone 30 secs.
Hope that helped
Look at your script and find where it says..
------------------------------------------------
-- SKILLS
------------------------------------------------
-- Set to 0 if you don't want to use a skill
skill1_time = secondsToTimer(3);
skill2_time = 1;
skill3_time = 1;
You see the first skill is set to go off every 3 secs.
secondsToTimer: How many secs you want befor it press the key
(3); Is actually how long you want it to wait.
------------------------------------------------
-- SKILLS
------------------------------------------------
-- Set to 0 if you don't want to use a skill
skill1_time = secondsToTimer(10);
skill2_time = secondsToTimer(15);
skill3_time = secondsToTimer(30);
So skill 1 will go off every 10 secs,
Skill 2 will go off everyone 15 secs.
Skill 3 will go off everyone 30 secs.
Hope that helped
Re: Shaiya bot
tnak u very much sir..it works but i notice when the 3rd skill attack get activated it wont pick up nad the auto buffs dont work 5 and 10 minutes..dunno y..im just gonna use the 1st and 2nd skill attack..i think my sin can live with only 2 skill attack..tnx againvvayinsane wrote:centik your problem is Really simple.
Look at your script and find where it says..
------------------------------------------------
-- SKILLS
------------------------------------------------
-- Set to 0 if you don't want to use a skill
skill1_time = secondsToTimer(3);
skill2_time = 1;
skill3_time = 1;
You see the first skill is set to go off every 3 secs.
secondsToTimer: How many secs you want befor it press the key
(3); Is actually how long you want it to wait.
------------------------------------------------
-- SKILLS
------------------------------------------------
-- Set to 0 if you don't want to use a skill
skill1_time = secondsToTimer(10);
skill2_time = secondsToTimer(15);
skill3_time = secondsToTimer(30);
So skill 1 will go off every 10 secs,
Skill 2 will go off everyone 15 secs.
Skill 3 will go off everyone 30 secs.
Hope that helped
![Smile :)](./images/smilies/icon_e_smile.gif)
Who is online
Users browsing this forum: No registered users and 4 guests