Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

Additional botting resources. Addons may be either for the game itself or for the RoM bot.
Forum rules
Only post additional bot resources here. Please do not ask unrelated questions.
Post Reply
Message
Author
User avatar
beanybabe
Posts: 647
Joined: Wed Mar 06, 2013 1:27 am

Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#1 Post by beanybabe » Sun Oct 04, 2015 12:06 pm

Here is a daily to use tickets. It will run till you are out of tickets!!. It works till someone posts a better way point.
It does not do class swapping.
Attachments
sc dly clean wounds heal faster.xml
(2.04 KiB) Downloaded 178 times

User avatar
ThulsaDoom
Posts: 99
Joined: Mon Oct 19, 2015 2:46 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#2 Post by ThulsaDoom » Tue Sep 22, 2020 5:50 am

Now it is used:

Code: Select all

player:target_Object(123623) -- Wounded Guard
five times to complete the mission
If the guard is sit down, works, but if he is stand up you can't heal him.

Is there any way to know if he is available or sit / stand up?

Many thanks

User avatar
Administrator
Site Admin
Posts: 5083
Joined: Sat Jan 05, 2008 4:21 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#3 Post by Administrator » Thu Sep 24, 2020 9:12 pm

ThulsaDoom wrote: Tue Sep 22, 2020 5:50 am Now it is used:

Code: Select all

player:target_Object(123623) -- Wounded Guard
five times to complete the mission
If the guard is sit down, works, but if he is stand up you can't heal him.

Is there any way to know if he is available or sit / stand up?

Many thanks
Hmm, you might be able to check the stance or attackable flags. It's just a guess though.

Code: Select all

local stance = memoryReadByte(getProc(), player.TargetPtr + addresses.game_root.pawn.stance);
local attackableFlags = memoryReadInt(getProc(), player.TargetPtr + addresses.game_root.pawn.attackable_flags)

printf("Stance: 0x%X\n", stance);
printf("Attackable Flags: 0x%X\n", attackableFlag );
Try sampling both while he's standing and sitting; are they different? Is it reliable?

User avatar
ThulsaDoom
Posts: 99
Joined: Mon Oct 19, 2015 2:46 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#4 Post by ThulsaDoom » Fri Sep 25, 2020 1:07 pm

Administrator wrote: Thu Sep 24, 2020 9:12 pm
ThulsaDoom wrote: Tue Sep 22, 2020 5:50 am Now it is used:

Code: Select all

player:target_Object(123623) -- Wounded Guard
five times to complete the mission
If the guard is sit down, works, but if he is stand up you can't heal him.

Is there any way to know if he is available or sit / stand up?

Many thanks
Hmm, you might be able to check the stance or attackable flags. It's just a guess though.

Code: Select all

local stance = memoryReadByte(getProc(), player.TargetPtr + addresses.game_root.pawn.stance);
local attackableFlags = memoryReadInt(getProc(), player.TargetPtr + addresses.game_root.pawn.attackable_flags)

printf("Stance: 0x%X\n", stance);
printf("Attackable Flags: 0x%X\n", attackableFlag );
Try sampling both while he's standing and sitting; are they different? Is it reliable?
I added the code poposed to Rbassist.xml main loop:

Code: Select all

-- Main loop
	while (true) do
		yrest(250)
		
			local stance = memoryReadByte(getProc(), player.TargetPtr + addresses.game_root.pawn.stance);
			local attackableFlags = memoryReadInt(getProc(), player.TargetPtr + addresses.game_root.pawn.attackable_flags)

			printf("Stance: 0x%X\n", stance);
			printf("Attackable Flags: 0x%X\n", attackableFlag );
		..
When the bot tries to wound the "wounded guard", nothing happens. You cannot select the wounded guardian, it is healed only by placing the course on the guard and clicking the mouse.
When I click on the quest giver "Julius Mimet", the following error appears:

Code: Select all

2020-09-25 19:57:07 - [string "..."]:38: bad argument #1 to 'printf' (got nil)
Thanks for your help

User avatar
Administrator
Site Admin
Posts: 5083
Joined: Sat Jan 05, 2008 4:21 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#5 Post by Administrator » Fri Sep 25, 2020 3:45 pm

Ah. I see. Maybe this?

Code: Select all

local guard = player.findNearestNameOrId("Put the guard's name here");
if guard ~= nil then
    local stance = memoryReadByte(getProc(), guard.Address + addresses.game_root.pawn.stance);
    local attackableFlags = memoryReadInt(getProc(), guard.Address + addresses.game_root.pawn.attackable_flags)
    
    printf("Stance: 0x%X\n", stance or -1);
    printf("Attackable Flags: 0x%X\n", attackableFlags -1);
end

User avatar
ThulsaDoom
Posts: 99
Joined: Mon Oct 19, 2015 2:46 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#6 Post by ThulsaDoom » Sat Sep 26, 2020 6:25 am

Administrator wrote: Fri Sep 25, 2020 3:45 pm Ah. I see. Maybe this?

Code: Select all

local guard = player.findNearestNameOrId("Put the guard's name here");
if guard ~= nil then
    local stance = memoryReadByte(getProc(), guard.Address + addresses.game_root.pawn.stance);
    local attackableFlags = memoryReadInt(getProc(), guard.Address + addresses.game_root.pawn.attackable_flags)
    
    printf("Stance: 0x%X\n", stance or -1);
    printf("Attackable Flags: 0x%X\n", attackableFlags -1);
end
I tried it, getting error:

Code: Select all

2020-09-26 13:22:37 - D:/Runes of magic/micromacro/scripts/rom/classes/player.lua:3734: attempt to call method 'updateXYZ' (a nil value)

User avatar
Administrator
Site Admin
Posts: 5083
Joined: Sat Jan 05, 2008 4:21 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#7 Post by Administrator » Sun Sep 27, 2020 12:50 pm

Sorry; my mistake. Instead of

Code: Select all

player.findNearestNameOrId
, it should be

Code: Select all

player:findNearestNameOrId

User avatar
ThulsaDoom
Posts: 99
Joined: Mon Oct 19, 2015 2:46 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#8 Post by ThulsaDoom » Mon Sep 28, 2020 1:06 pm

Administrator wrote: Sun Sep 27, 2020 12:50 pm Sorry; my mistake. Instead of

Code: Select all

player.findNearestNameOrId
, it should be

Code: Select all

player:findNearestNameOrId
I didn't realize about this mistake! Thanks

Test has been done, with result:

Code: Select all

Stance: 0x0
Attackable Flags: 0x10003C7
There is no difference while standing and sitting, always the same value.

User avatar
Administrator
Site Admin
Posts: 5083
Joined: Sat Jan 05, 2008 4:21 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#9 Post by Administrator » Fri Oct 02, 2020 9:53 am

That's unfortunate. I was hoping one of those values would have been different. There might be some other value stored in the pawn struct but I have no idea where or what data type it would be. You could try investigating with Cheat Engine; do you have any experience with that?

User avatar
ThulsaDoom
Posts: 99
Joined: Mon Oct 19, 2015 2:46 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#10 Post by ThulsaDoom » Sun Oct 11, 2020 3:44 am

Administrator wrote: Fri Oct 02, 2020 9:53 am That's unfortunate. I was hoping one of those values would have been different. There might be some other value stored in the pawn struct but I have no idea where or what data type it would be. You could try investigating with Cheat Engine; do you have any experience with that?
I know Cheat Engine, but my knowledge is not so advanced as to find this kind of data.
Anyway, we will continue as before. I don't think it is necessary to spend a lot of time on this matter, there are other priorities.

Thanks!

User avatar
ThulsaDoom
Posts: 99
Joined: Mon Oct 19, 2015 2:46 pm

Re: Splitwater Coast Daily- Clean Wounds Heal Faster/w resets

#11 Post by ThulsaDoom » Sun Oct 18, 2020 2:25 am

Some news after last addresses update. "attackable_flags" is changing the status with the Wounded Guard.

Values with the guard sitting and waiting to be activated:

Code: Select all

Stance: 0x0
Attackable Flags: 0x10003C7
After being activated and standing:

Code: Select all

Stance: 0x0
Attackable Flags: 0x1000387
The funny thing is that the status changes when we activate the guard and he stands up, then the value changes again but the guard remains standing for about six seconds, then he sits down again and it is when it can be activated again.
During the six seconds that the value of the flag has already changed but the guard is not seated, he cannot be activated.
It seems that the action of standing or sitting is linked to the action of activating the guard.

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests