course of terror WP

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.
Message
Author
Kansaki
Posts: 14
Joined: Mon Apr 28, 2014 2:08 am

Re: course of terror WP

#421 Post by Kansaki » Thu May 21, 2015 10:27 pm

Hi Guys

Is there a way to script an attack to the tiles when the tiles are not targeteable? I can attack them executing the skill and then click on the tile, but I cant target them and then cast a skill.

Thanks in advance.
Operae pretium est exprimendum sucus

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: course of terror WP

#422 Post by rock5 » Fri May 22, 2015 5:53 am

When you say "but I cant target them and then cast a skill" are you talking about manually or with a script? Because there are a lot of thing in game that can't be targeted with a mouse but the bot is still able to target them.

If it's a requirement of the skill, that you have to click the target after actioning the skill, then it's a bit more complex. You could try something like

Code: Select all

player:aimAt(tileObj)
player:clickToCast()
Where tileObj is the tile object you want to target and use the skill on. That might work. The first function aims the camera at the target, essentially putting it in the middle of the screen. The second function clicks the middle of the screen. Actually it doesn't 'click' but uses a function instead that has the same effect.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Kansaki
Posts: 14
Joined: Mon Apr 28, 2014 2:08 am

Re: course of terror WP

#423 Post by Kansaki » Fri May 22, 2015 1:01 pm

I ask you that because I was thinking using the graph short route that is used on travelTo userfuction and adapt it to CoT. Right now, most of the seals can be taken care in matter of seconds without doing strat. So, the issue here is to determine the shortest route to the key seal, then calculate again to another key or at the end the exit.

I made up a NodeList of all the tiles, plus five as initial points for the character and I'm working right now to adapt the Dijkstra function to work with CoT and give the tiles some weight as a distance factor. The weight will detemine the complexity in destroy that tile. Key, Cannon and SUmmoning tiles are easy to deal, so I give them a lower weight. In case of the barricade, transport portal and vine I give them a higher weight do to the time needed to kill them. Adding a given route weight will be calculated and return the lowest cost.

The issue in the killing is that if you are using a mage is quite easy to cast thunderstorm using AimAt(target) and clickToCast(). The issue is if you are using a class that doesnt have an AoE skill like thunderstorm but have another spameable skill. I found that is possible to spam a skill using RoMScript("UseSkill(2,1); SpellTargetUnit('mouseover')") while keeping the cursor over the target. But I was having issues dealing with the mouse. If AimAt() solve that situation, it's possible to do it.

This modification is useful to deal in case you cannot use model due to GM watching CoT, and deal with the death when using flyhack.
Operae pretium est exprimendum sucus

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: course of terror WP

#424 Post by rock5 » Fri May 22, 2015 9:41 pm

Yes you should definitely be able to use Dijkstras algorithm using appropriate weights.

ClickToCast uses SpellTargetUnit(), although with no argument, which works with skills that don't require a target such as Thunderstorm. For skills that require a target you would still need "mouseover". Ah, so for regular skills ClickToCast wont work but then you don't really need it do you? Why can't you just target first then cast the skill?
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Kansaki
Posts: 14
Joined: Mon Apr 28, 2014 2:08 am

Re: course of terror WP

#425 Post by Kansaki » Fri May 22, 2015 10:54 pm

Yes you should definitely be able to use Dijkstras algorithm using appropriate weights.
Yes, I was thinking using 1 for key seals, cannon and summoning tiles, cause with a little or no work I can overcome those tiles and 10 for Barricade, Vines and Transport that need more time to deal with them.
ClickToCast uses SpellTargetUnit(), although with no argument, which works with skills that don't require a target such as Thunderstorm. For skills that require a target you would still need "mouseover". Ah, so for regular skills ClickToCast wont work but then you don't really need it do you? Why can't you just target first then cast the skill?
Tiles have a different defense than the summoned mobs. For example, you spend most time hitting a barricade than hitting a tile. The same thing happen with the vine and the teleport. Tiles cannot be target by the client, and I try to target and execute a skill using commandline and nothing happen. When I'm playing with a rogue, if I try to target to use Shadowstab on the tile could happen two things, first, I activate the tile by accident, and second, the tile wont get targeted, except that target is a barricade or a summoning tile.

I'm use this code to attack, maybe I'm doing something wrong.

Code: Select all

target = player:findNearestNameOrId( objTile );
player:target( target )
player:Attack()
That's why I thought about casting a skill, and then attack to the tile directly. That's why I use the UseSkill() function, and then call to SpellTargetUnit("mouseover"). If I can move the mouse and locate the cursor over the tile with AimAt( objTile ) cast a skill and execute the skill with ClickToCast () half of the work is done. The only thing is to keep checking the Tile HP until it's dead.

Right now, I'm working on porting that function to CoT waypoint and trying to figure out the Dijkstras algorithm. Also, I have some data from several pass that I want to test to see the result. If you have any advise I will take it.
Operae pretium est exprimendum sucus

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: course of terror WP

#426 Post by rock5 » Sat May 23, 2015 12:09 am

Kansaki wrote:Yes, I was thinking using 1 for key seals, cannon and summoning tiles, cause with a little or no work I can overcome those tiles and 10 for Barricade, Vines and Transport that need more time to deal with them.
If you want to be really accurate just remember the goal is to get across as quickly as possible so the weights represent the time taken to pass that obstruction. So the ratio of the weight should be the same as the ratio of the time taken. You could even just use the time taken as the weight.
Kansaki wrote: Tiles have a different defense than the summoned mobs.
This is confusing me. You don't attack tiles you just activate them right?
Kansaki wrote:I'm use this code to attack, maybe I'm doing something wrong.
Cot_tele uses the following to activate the tiles

Code: Select all

					player:target(seal)
					yrest(100)
					Attack()
					yrest(1000)
Maybe you need to add yrests.
Kansaki wrote:target = player:findNearestNameOrId( objTile );
if objTile is an 'object', ie. an object class object, then it wont work because findNearestNameOrId only accepts ids or names. If objTile is an object of the tile you want to activate then just use

Code: Select all

player:target(objTile)
Kansaki wrote:If I can move the mouse and locate the cursor over the tile with AimAt( objTile ) cast a skill and execute the skill with ClickToCast () half of the work is done.
Except ClickToCast wont work with all skills. you would need to copy the function and modify it by adding the 'mouseover' argument. Note: aimAt only aims the camera at the target placing it in the middle of the screen, it doesn't do anything with the mouse. Note2: clickToCast deals with the mouse issues. It disables mouse input so the real mouse doesn't interfere then places the mouse in the game in the middle of the screen and execute the SpellTargetUnit function.

I was just thinking about the cannons. I don't know how you are going to incorporate them into it because they can change the time it takes to clear any tiles which will mess up your pathing calculations. Or are you just going to clear the cannons without blowing anything up?

Note: in case you didn't realize, a drawback of using mouse and SpellTargetUnit is there is no guarantee that you will cast to your target if there is an object in the way. For example in Kalin Shrine it's difficult to use Thunderstorm in some sections because there are rays of light in the way and you end up clicking the rays of light which causes it to mis-target.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Kansaki
Posts: 14
Joined: Mon Apr 28, 2014 2:08 am

Re: course of terror WP

#427 Post by Kansaki » Sat May 23, 2015 10:58 pm

If you want to be really accurate just remember the goal is to get across as quickly as possible so the weights represent the time taken to pass that obstruction. So the ratio of the weight should be the same as the ratio of the time taken. You could even just use the time taken as the weight.
This is confusing me. You don't attack tiles you just activate them right?
I dont want to activate all the tiles, only a few. Because in some cases tiles have certain HP which are less than the produce of activating the tiles.

For example, the tile for barricade has ~600k HP but the summoned barricade has like ~900k HP. The same happen with the tile which summons mobs, which has ~600k, but the sommoned tile has much less. Vines is almost the same as barricade. And transport tiles are a mess, because you can pass them, but you take the chance to enter and go back to the begining. Finally, Cannons are the easiest, because you dont have to use them, you just simple activate them and walk thru them.

Regarding weights, every tile has the same weight except you summon them, but some tiles are better to be summoned than others. And I have to take those in consideration so the bot run faster.

That's why I want to attack the tile, which you cannot target on client. So you have to cast a skill and then click on the tile to perform the attack.
Except ClickToCast wont work with all skills. you would need to copy the function and modify it by adding the 'mouseover' argument. Note: aimAt only aims the camera at the target placing it in the middle of the screen, it doesn't do anything with the mouse. Note2: clickToCast deals with the mouse issues. It disables mouse input so the real mouse doesn't interfere then places the mouse in the game in the middle of the screen and execute the SpellTargetUnit function.
Correct me if I made I mistake on this but, in an essence every skill could use clickToCast, the issue here is not have a target selected, then cast a skill, and with clickToCast perform the execution of that skill on the mob you have the mouse over.

If you dont have a target selected, and you click a skill on the client, the cursor change into a sword if it's a physical attack, or a wand if it's a casting attack. So, what I want to do is to execute an attack without a target selected and click on the tile so I can execute the skill. I read the code regarding the clickToCast function and the only thing I need to do, just as you said it, is to add the mouseover on the RoMScript line. Maybe something like this:

Code: Select all

-- onmouseover: true/false to cast a skill with mouseover on the SpellTargetUnit()
function CPlayer:clickToCast( onmouseover )
	-- Freeze mouse function
	local function nopmouse()
		-- x axis
		local addressX1 = addresses.functionMousePatchAddr
		local addressX2 = addresses.functionMousePatchAddr + addresses.mousePatchX2_offset
		local addressX3 = addresses.functionMousePatchAddr + addresses.mousePatchX3_offset
		memoryWriteString(getProc(), addressX1, string.rep(string.char(0x90),#addresses.functionMouseX1Bytes)); -- left of window
		memoryWriteString(getProc(), addressX2, string.rep(string.char(0x90),#addresses.functionMouseX2Bytes)); -- right of window
		memoryWriteString(getProc(), addressX3, string.rep(string.char(0x90),#addresses.functionMouseX3Bytes)); -- over window

		-- y axis
		local addressY1 = addresses.functionMousePatchAddr + addresses.mousePatchY1_offset
		local addressY2 = addresses.functionMousePatchAddr + addresses.mousePatchY2_offset
		local addressY3 = addresses.functionMousePatchAddr + addresses.mousePatchY3_offset
		memoryWriteString(getProc(), addressY1, string.rep(string.char(0x90),#addresses.functionMouseY1Bytes)); -- above window
		memoryWriteString(getProc(), addressY2, string.rep(string.char(0x90),#addresses.functionMouseY2Bytes)); -- below window
		memoryWriteString(getProc(), addressY3, string.rep(string.char(0x90),#addresses.functionMouseY3Bytes)); -- over window
	end

	-- Unfreeze mouse function
	local function unnopmouse()
		-- x axis
		local addressX1 = addresses.functionMousePatchAddr
		local addressX2 = addresses.functionMousePatchAddr + addresses.mousePatchX2_offset
		local addressX3 = addresses.functionMousePatchAddr + addresses.mousePatchX3_offset
		memoryWriteString(getProc(), addressX1, string.char(unpack(addresses.functionMouseX1Bytes)));
		memoryWriteString(getProc(), addressX2, string.char(unpack(addresses.functionMouseX2Bytes)));
		memoryWriteString(getProc(), addressX3, string.char(unpack(addresses.functionMouseX3Bytes)));

		-- y axis
		local addressY1 = addresses.functionMousePatchAddr + addresses.mousePatchY1_offset
		local addressY2 = addresses.functionMousePatchAddr + addresses.mousePatchY2_offset
		local addressY3 = addresses.functionMousePatchAddr + addresses.mousePatchY3_offset
		memoryWriteString(getProc(), addressY1, string.char(unpack(addresses.functionMouseY1Bytes)));
		memoryWriteString(getProc(), addressY2, string.char(unpack(addresses.functionMouseY2Bytes)));
		memoryWriteString(getProc(), addressY3, string.char(unpack(addresses.functionMouseY3Bytes)));
	end

	local ww = memoryReadIntPtr(getProc(),addresses.staticbase_char,addresses.windowSizeX_offset)
	local wh = memoryReadIntPtr(getProc(),addresses.staticbase_char,addresses.windowSizeY_offset)
	local clickX = math.ceil(ww/2)
	local clickY = math.ceil(wh/2)
	yrest(50)
	nopmouse()
	yrest(50)
	memoryWriteIntPtr(getProc(),addresses.staticbase_char,addresses.mouseX_offset,clickX)
	memoryWriteIntPtr(getProc(),addresses.staticbase_char,addresses.mouseY_offset,clickY)
	yrest(50)
        if onmouseover then
	    RoMCode('SpellTargetUnit("mouseover")')
        else
	    RoMCode("SpellTargetUnit()")
        end
	yrest(50)
	-- unfreeze TargetPtr
	unnopmouse()
end
So, with this I can access to the targetPtr on the object, pass it to the AimAt function, force the execution of a skill with UseSkill(X,X) and then use clickToCast( true ), to finally execute the skill. Is that correct?
Note: in case you didn't realize, a drawback of using mouse and SpellTargetUnit is there is no guarantee that you will cast to your target if there is an object in the way. For example in Kalin Shrine it's difficult to use Thunderstorm in some sections because there are rays of light in the way and you end up clicking the rays of light which causes it to mis-target.
That's true, and as far as I can test on the client using those skills is the unused cannons. I need to see if I move in the cannon position would interfere with the aimAt(). I need to test that, but first, in order to test that, I need to finish with the Dijkstras algorithm and the weight.

EDIT
Could it be possible to modify the model folder to erase the cannon so it doesnt bother with the bot execution?
Operae pretium est exprimendum sucus

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: course of terror WP

#428 Post by rock5 » Tue May 26, 2015 4:45 am

Kansaki wrote:That's why I want to attack the tile, which you cannot target on client. So you have to cast a skill and then click on the tile to perform the attack.
I just didn't know it was possible to destroy a seal without activating it. I've never seen it mentioned anywhere and none of the cot vids I've seen ever use that method. Maybe because it would still take time to destroy a seal like that?

Are you absolutely sure you can't target the seal first then use the skill on it using the bot? Have you tried it? For instance the bot opens mailboxes by targeting them then attacking them even though you can't do it this way yourself because mailboxes aren't normally targetable. If you're able to use a skill on the seals then you should be able to target it first then cast the skill eg.

Code: Select all

player:target(sealObj)
yrest(100)
RoMScript("UseSkill(x,x)")
Kansaki wrote:Correct me if I made I mistake on this but, in an essence every skill could use clickToCast
Well every skill that needs a target and assuming you don't already have something targeted. But of course you wouldn't want to use it for every skill because clicktocast can target the wrong target if it gets in the way.
Kansaki wrote:I read the code regarding the clickToCast function and the only thing I need to do, just as you said it, is to add the mouseover on the RoMScript line. Maybe something like this:
Correct, although you could just add the mouseover argument without adding that extra code to make it backward compatible. The existing clicktocast skills should work with the mouseover argument.

The reason I didn't add it is because, as it is, clicktocast can only trigger the intended skill. If mouseover is added then it's possible that it could accidentally trigger the wrong skill. Although... with an argument like you added it could be used by users in situations like you're doing. So I might add it to the bot after all.

You know what would make it even more versatile? Make it so it can accept other unit types, eg. 'party1', 'raid1', etc. Or maybe not. 'clicktocast' is specifically about clicking the middle of the screen. It doesn't make sense to be able to target other unit types. Which gives me an idea. Maybe you could try.

Code: Select all

UseSkill(x,x)
player:target(seal)
SpellTargetUnit('target')
That way you wouldn't need to use the mouse at all.
Kansaki wrote:So, with this I can access to the targetPtr on the object, pass it to the AimAt function, force the execution of a skill with UseSkill(X,X) and then use clickToCast( true ), to finally execute the skill. Is that correct?
Yes, if you are going to do it that way. Although, as I said before, you have to make sure you don't have something already targeted so you might want to add a player:clearTarget() in there.
Kansaki wrote:EDIT
Could it be possible to modify the model folder to erase the cannon so it doesnt bother with the bot execution?
There was a post about model files for cot. You could try that. Here it is http://www.solarstrike.net/phpBB3/viewt ... 590#p25590. I think the ones for cot are in the mini_game_digging subfolder.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

noobbotter
Posts: 527
Joined: Fri Aug 31, 2012 1:15 pm

Re: course of terror WP

#429 Post by noobbotter » Tue May 26, 2015 8:19 am

Could you change the camera angle to a top-down view to help avoid it from targeting the cannons?

User avatar
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: course of terror WP

#430 Post by Ego95 » Wed May 27, 2015 4:13 pm

In my KS bot I used a long time ago I put a command in the onload to zoom in the camera completely to the character like in shooter games. This helped me to avoid the problem with the rays of light in ks, rock mentioned.

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: course of terror WP

#431 Post by rock5 » Wed May 27, 2015 11:52 pm

Helps, but doesn't solve it completely. If I remember correctly you still had to do something extra such as reducing the combat distance in that section or make it "travel" past the rays before enabling fighting again. But, yes, zooming in does help.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Kansaki
Posts: 14
Joined: Mon Apr 28, 2014 2:08 am

Re: course of terror WP

#432 Post by Kansaki » Thu May 28, 2015 6:59 am

rock5 wrote:I just didn't know it was possible to destroy a seal without activating it. I've never seen it mentioned anywhere and none of the cot vids I've seen ever use that method. Maybe because it would still take time to destroy a seal like that?
It takes time, but it take less. The seal as far as I see has 600k HP, but usually, the barricade has 900k HP, so more HP and a little more defense. Usually when I do CoT with a knight it takes longer to kill a seal activated rather than a non-activated seal. Two to three hits with a knight for ~260k crit, and a barricade I need to hit like six to seven hits. Also, it crit less on barricade.
rock5 wrote:Are you absolutely sure you can't target the seal first then use the skill on it using the bot? Have you tried it? For instance the bot opens mailboxes by targeting them then attacking them even though you can't do it this way yourself because mailboxes aren't normally targetable. If you're able to use a skill on the seals then you should be able to target it first then cast the skill eg.
To be honest with you, when I play with the client, I cannot target the seal. And I tried to do it with the command line, but I couldnt target on the client. I dont know if RoM Bot holds the target in memory or something. Usually when I use target on rombot, it shows on the client too. But on this case you cannot target the seal with the client.
rock5 wrote:Well every skill that needs a target and assuming you don't already have something targeted. But of course you wouldn't want to use it for every skill because clicktocast can target the wrong target if it gets in the way.
That's true, but it depends on if you click on the correct target or not.
rock5 wrote:You know what would make it even more versatile? Make it so it can accept other unit types, eg. 'party1', 'raid1', etc. Or maybe not. 'clicktocast' is specifically about clicking the middle of the screen. It doesn't make sense to be able to target other unit types. Which gives me an idea. Maybe you could try.

Code:
UseSkill(x,x)
player:target(seal)
SpellTargetUnit('target')
I will try this tomorrow on CommandLine and I will post the result later.
rock5 wrote:Yes, if you are going to do it that way. Although, as I said before, you have to make sure you don't have something already targeted so you might want to add a player:clearTarget() in there.
That's true. I will put a clearTarget() on the code just to be sure that the player isnt targeting anything.
rock5 wrote:There was a post about model files for cot. You could try that. Here it is http://www.solarstrike.net/phpBB3/viewt ... 590#p25590. I think the ones for cot are in the mini_game_digging subfolder.
I read this post and I will test a little bit with this. Because if I manage to remove the cannon, it will be really easy to achieve what I want here.

I'm still having difficulties to make it work the Djisktra algorithm. At some point it return me an error when is trying to set up the path result. I will post all the code here for further inspection and I will be grateful if you can check on it.

Thanks in advance.
Operae pretium est exprimendum sucus

turbobay
Posts: 44
Joined: Wed Jul 31, 2013 7:20 pm

Re: course of terror WP

#433 Post by turbobay » Fri Jun 05, 2015 6:13 pm

BlubBlab wrote:you could theoretically teleport above the plates/ just walk in Malatina Survival
and Malatina CoT. Sascilia Minigame is very much undoable with out it, it would be extreme complex like gobo.( I think gobo is easier)

What about the decoration mini-game?
Decoration is working.
CoT with just teleporting (no fly) is hard, always catches some portal and keeps in fight. I need to interact...
Also drill ground is not possible with fly(), kills player aswell.
It#s sad they can so easily kill players with that feature....

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: course of terror WP

#434 Post by lisa » Sun Jun 28, 2015 10:50 pm

Ok went into CoT today and yup seems as soon as you use fly you get instakilled like in SW.

Simple solution for now would be to use the model files that get rid of the majority of seals and you can simply walk around, I tried it today with using teleport but occasionally it would get stuck inside a seal it tried to teleport past, so walking is probably the easiest solution that should be stable.

If anyone wants the model files just do forum search for "lisa model" and you will find a post where I added my model files.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
beanybabe
Posts: 647
Joined: Wed Mar 06, 2013 1:27 am

Re: course of terror WP

#435 Post by beanybabe » Mon Jun 29, 2015 1:54 am

I think this happens if you are on a warden that you die. there were some events also extra items spawn that cause problems in the past.

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: course of terror WP

#436 Post by lisa » Tue Jun 30, 2015 3:31 am

beanybabe wrote:I think this happens if you are on a warden that you die. there were some events also extra items spawn that cause problems in the past.
It is any class, if you use fly hack inside CoT you get instantly killed.

Now then as to the subject at hand and being able to bot CoT.


I have the points and links set up for the grid of seals, looks like this.

Code: Select all

	[1]={ X=4213 , Z=3707, Y=18.7, Links={[1]={Num=7},[2]={Num=8},[3]={Num=33},}},
	[2]={ X=3947 , Z=3707, Y=18.7, Links={[1]={Num=3},[2]={Num=28},[3]={Num=6},}},
	[3]={ X=4013.5 , Z=3707, Y=18.7, Links={[1]={Num=23},[2]={Num=2},[3]={Num=10},[4]={Num=36},}},
	[4]={ X=4079.2 , Z=3975.5, Y=18.7, Links={[1]={Num=25},}},
	[5]={ X=4146.5 , Z=3672.5, Y=18.7, Links={[1]={Num=9},[2]={Num=7},[3]={Num=8},}},
	[6]={ X=3947 , Z=3672.5, Y=18.7, Links={[1]={Num=10},[2]={Num=2},}},
	[7]={ X=4213 , Z=3672.5, Y=18.7, Links={[1]={Num=5},[2]={Num=1},}},
	[8]={ X=4146.5 , Z=3707, Y=18.7, Links={[1]={Num=1},[2]={Num=23},[3]={Num=5},[4]={Num=30},}},
	[9]={ X=4080 , Z=3672.5, Y=18.7, Links={[1]={Num=10},[2]={Num=5},[3]={Num=23},}},
	[10]={ X=4013.5 , Z=3672.5, Y=18.7, Links={[1]={Num=6},[2]={Num=9},[3]={Num=3},}},
	[11]={ X=4213 , Z=3914, Y=18.7, Links={[1]={Num=17},[2]={Num=26},[3]={Num=19},}},
	[12]={ X=4080 , Z=3845, Y=18.7, Links={[1]={Num=20},[2]={Num=13},[3]={Num=14},[4]={Num=39},}},
	[13]={ X=4013.5 , Z=3845, Y=18.7, Links={[1]={Num=12},[2]={Num=44},[3]={Num=45},[4]={Num=22},}},
	[14]={ X=4080 , Z=3879.5, Y=18.7, Links={[1]={Num=22},[2]={Num=12},[4]={Num=18},}},
	[15]={ X=4013.5 , Z=3914, Y=18.7, Links={[1]={Num=18},[2]={Num=31},[3]={Num=22},[4]={Num=27},}},
	[16]={ X=4146.5 , Z=3948.5, Y=18.7, Links={[1]={Num=25},[2]={Num=19},[3]={Num=26},}},
	[17]={ X=4213 , Z=3879.5, Y=18.7, Links={[1]={Num=21},[2]={Num=11},[3]={Num=24},}},
	[18]={ X=4080 , Z=3914, Y=18.7, Links={[1]={Num=26},[2]={Num=15},[3]={Num=25},[4]={Num=14},}},
	[19]={ X=4213 , Z=3948.5, Y=18.7, Links={[1]={Num=16},[2]={Num=11},}},
	[20]={ X=4146.5 , Z=3845, Y=18.7, Links={[1]={Num=24},[2]={Num=12},[3]={Num=40},[4]={Num=21},}},
	[21]={ X=4146.5 , Z=3879.5, Y=18.7, Links={[1]={Num=14},[2]={Num=17},[3]={Num=20},[4]={Num=26},}},
	[22]={ X=4013.5 , Z=3879.5, Y=18.7, Links={[1]={Num=43},[2]={Num=14},[3]={Num=13},[4]={Num=15},}},
	[23]={ X=4080 , Z=3707, Y=18.7, Links={[1]={Num=8},[2]={Num=3},[3]={Num=46},[4]={Num=9},}},
	[24]={ X=4213 , Z=3845, Y=18.7, Links={[1]={Num=37},[2]={Num=20},[3]={Num=17},}},
	[25]={ X=4080 , Z=3948.5, Y=18.7, Links={[1]={Num=27},[2]={Num=16},[3]={Num=4},[4]={Num=18},}},
	[26]={ X=4146.5 , Z=3914, Y=18.7, Links={[1]={Num=11},[2]={Num=18},[3]={Num=21},[4]={Num=16},}},
	[27]={ X=4013.5 , Z=3948.5, Y=18.7, Links={[1]={Num=35},[2]={Num=25},[3]={Num=15},}},
	[28]={ X=3947 , Z=3741.5, Y=18.7, Links={[1]={Num=2},[2]={Num=36},[3]={Num=38},}},
	[29]={ X=4146.5 , Z=3776, Y=18.7, Links={[1]={Num=41},[2]={Num=32},[3]={Num=30},[4]={Num=40},}},
	[30]={ X=4146.5 , Z=3741.5, Y=18.7, Links={[1]={Num=46},[2]={Num=33},[3]={Num=8},[4]={Num=29},}},
	[31]={ X=3947 , Z=3914, Y=18.7, Links={[1]={Num=15},[2]={Num=35},[3]={Num=43},}},
	[32]={ X=4080 , Z=3776, Y=18.7, Links={[1]={Num=29},[2]={Num=42},[3]={Num=39},[4]={Num=46},}},
	[33]={ X=4213 , Z=3741.5, Y=18.7, Links={[1]={Num=30},[2]={Num=41},[3]={Num=1},}},
	[34]={ X=3947 , Z=3810.5, Y=18.7, Links={[1]={Num=38},[2]={Num=45},[3]={Num=44},}},
	[35]={ X=3947 , Z=3948.5, Y=18.7, Links={[1]={Num=31},[2]={Num=27},}},
	[36]={ X=4013.5 , Z=3741.5, Y=18.7, Links={[1]={Num=28},[2]={Num=46},[3]={Num=3},[4]={Num=42},}},
	[37]={ X=4213 , Z=3810.5, Y=18.7, Links={[1]={Num=40},[2]={Num=24},[3]={Num=41},}},
	[38]={ X=3947 , Z=3776, Y=18.7, Links={[1]={Num=42},[2]={Num=34},[3]={Num=28},}},
	[39]={ X=4080 , Z=3810.5, Y=18.7, Links={[1]={Num=45},[2]={Num=40},[3]={Num=12},[4]={Num=32},}},
	[40]={ X=4146.5 , Z=3810.5, Y=18.7, Links={[1]={Num=39},[2]={Num=37},[3]={Num=29},[4]={Num=20},}},
	[41]={ X=4213 , Z=3776, Y=18.7, Links={[1]={Num=33},[2]={Num=29},[3]={Num=37},}},
	[42]={ X=4013.5 , Z=3776, Y=18.7, Links={[1]={Num=32},[2]={Num=38},[3]={Num=36},[4]={Num=45},}},
	[43]={ X=3947 , Z=3879.5, Y=18.7, Links={[1]={Num=44},[2]={Num=22},[3]={Num=31},}},
	[44]={ X=3947 , Z=3845, Y=18.7, Links={[1]={Num=13},[2]={Num=43},[3]={Num=34},}},
	[45]={ X=4013.5 , Z=3810.5, Y=18.7, Links={[1]={Num=34},[2]={Num=39},[3]={Num=42},[4]={Num=13},}},
	[46]={ X=4080 , Z=3741.5, Y=18.7, Links={[1]={Num=36},[2]={Num=30},[3]={Num=32},[4]={Num=23},}},
cotpoints1.png
So I figure with the model files just need to walk around avoiding the "Void Summoning Barrier" if possible, if not possible then we need to kill the barrier and ignore clowns.

Sounds simple enough.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: course of terror WP

#437 Post by lisa » Tue Jun 30, 2015 6:43 pm

I think I have worked out why the bot would get stuck attacking the spawned mobs instead of the summoning barrier, the wrong ID was used in the code.

I simply don't have any chars anymore to test this, well I have 1 and it has already done CoT today, so I need testers to help here.

If anyone has some spare chars that can test CoT, just change the model files that you can get from this topic.
http://www.solarstrike.net/phpBB3/viewt ... del#p30567

Then use this userfunction after you walk in, it won't do the minigame for you but should get the keys.
It will simply teleport to a key seal trying to avoid the summoning seals on it's way, if it needs to go through a summoning seal then it should try to kill it and not the clown, hopefully.
Start bot with path:commandline
So walk into room, on MM type lisa_cot() , then repeat again on next room, using function to get the keys in room.

Code is completely untested and hopefully it won't error.
Attachments
userfunction_lisacot.lua
(11.67 KiB) Downloaded 162 times
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: course of terror WP

#438 Post by lisa » Thu Jul 02, 2015 8:40 pm

(11.68 KiB) Not downloaded yet
I guess no one wants to bot CoT anymore.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
BlubBlab
Posts: 948
Joined: Fri Nov 30, 2012 11:33 pm
Location: My little Pony cafe

Re: course of terror WP

#439 Post by BlubBlab » Thu Jul 02, 2015 9:23 pm

I wouldn't take it personally my userfunction didn't get attention as well.
There aren't many players in this game anymore on the official servers there are less than 100 player peer server and half of the time when I think I should make a post I don't do it for various reasons( the heat, because it obvious, no time and so on...). On top of that RW/GF went through a lot of effort to stop cheats and bots.

Not only does the swim hack not work anymore in some mini-games , also the GMs returns off-line when asked through in-game function so GM detection don't work anymore(Watchdog meat is also binded).

In the end it is ridicules. In will try to add some post around the place now^^
Jack-of-all-trades, but master-of-only of a few :D

My Reps:
https://github.com/BlubBlab/Micromacro-with-OpenCV (My version of MM2 with OpenCV and for MS Visual Studio)
https://github.com/BlubBlab/rom-bot (rombot with no stop WP and advanced human emulation mode and some other extensions)
https://github.com/BlubBlab/Micromacro-2-Bot-Framework ( A work in progress )
My Tools : viewtopic.php?f=10&t=6226

User avatar
beanybabe
Posts: 647
Joined: Wed Mar 06, 2013 1:27 am

Re: course of terror WP

#440 Post by beanybabe » Fri Jul 03, 2015 3:57 am

In survive For some reason a warden will crash before it finishes the first row of sparky towers.
The other classes seem to work ok for me. There are some events that seem to make you crash I think its when the clowns appear from the squares I do not recall the event.


The cot I use is very old but still works for me. here is what it says in the top lines

<!-- Rock5's Course of Terror waypoint file with teleport -->
<!-- version 1.72 . Thanks to lisa for original script -->
Last edited by beanybabe on Thu Jul 23, 2015 11:08 am, edited 1 time in total.

Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests