Page 3 of 4

Re: Honor point's farm in dril ground

Posted: Sat Nov 17, 2012 11:26 pm
by kuripot
there is a sequence of sigil appear??
either Divine Protection Reward 1st then follow by Healing Reward then get Drill Reward??

Re: Honor point's farm in dril ground

Posted: Sat Nov 17, 2012 11:32 pm
by lisa
kuripot wrote:there is a sequence of sigil appear??
either Divine Protection Reward 1st then follow by Healing Reward then get Drill Reward??
pretty sure it's random, the Drill Reward adds 5 honor.

Re: Honor point's farm in dril ground

Posted: Sun Nov 18, 2012 5:15 am
by MinMax
Yesterday i played a littlebit.

Play without a equipment. ( damage is percental) For 99% i reached the lvl 10 without to die.
Dont look at the script. It´s bad. Was only for testing but it works perfectly and endless. Always 235-245 Points
trial3reggen.xml
(1.96 KiB) Downloaded 396 times
MinMax ( Minimaler Erfolg maximaler Aufwand oder umgekehrt)

Re: Honor point's farm in dril ground

Posted: Sat Aug 17, 2013 4:01 pm
by AngelDrago
lisa wrote:I had a play in there today, ended up using this.

Code: Select all

	local objectList = CObjectList();
	objectList:update();
	for i = 0,objectList:size() do
		local obj = objectList:getObject(i);
		if( obj ~= nil ) and ( obj.Type == PT_SIGIL ) then
			if obj.Id == 205026 or obj.Id == 205028 or obj.Id == 205027 then
				teleport(obj.X,obj.Z,obj.Y)
				yrest(100)
				keyboardPress(settings.hotkeys.MOVE_FORWARD.key);
				teleport(2047,2461,70)
				return
			end
		end
	end
the spikes do hurt a bit to much though, maybe do the sigil to get immune buff and then while having buff try to get the other sigils?

205026 is Drill Reward
205027 is Divine Protection Reward
205028 is Healing Reward
Hello Lisa how did you end up using this script i tried but was getting error messages like this...
10:59pm - C:/micromacro/scripts/rom/classes/waypointlist.lua:83: Failed to compi
le and run Lua code for waypointlist onLoad event.
thx for the help

Re: Honor point's farm in dril ground

Posted: Sat Aug 17, 2013 10:05 pm
by Vengefulmilk
Hey guys not sure because I dont have a drill ground myself at the moment, but some players in world were talking and said that one of the minigames has you survive or kite mobs. They said that if you kite the mobs for 2 and a half minutes straight you earn something like 15k honor points. I'm not sure what game it is, or if its acutally true but its just an idea if anyone wants to try it out and verify it if they know which game. Best of luck.

Re: Honor point's farm in dril ground

Posted: Sun Sep 01, 2013 9:57 am
by vernberg
thats correct

there is a minigame in drill ground names survival wich spawns mobs every 10 second that you can kite or Fly to avoid just follow the wall edges and dont die

Re: Honor point's farm in dril ground

Posted: Sun Oct 13, 2013 8:15 am
by Bot_romka
My version of WP

Re: Honor point's farm in dril ground

Posted: Fri Jun 13, 2014 4:50 am
by ZZZZZ
Ok, I have been trying to do the Sharp Sight, Quick Hands game in the drill ground, at first I thought hey, lets use event monitoring to hit them, works fine in stages 1-3, but stage 4 they pop up random spots and say a random number. The other issue with this is that they also added in 'friendly' targets, and if you hit 1 you lose 10 points, basically making the event monitoring useless.

So I thought maybe I can use their ID's and their positions to determine what to hit, and this is pretty much where I have been stuck since.

The ID range 102176-102184 seems to be most of the targets that you want to hit, and as for the position, the X and Z values are always the same, so I made 2 tables of those values and made it check the objXZ against the X and Z of each table, but for some reason it would only cast on select targets or not at all.

For now I just want it to hit everything....at least if I can get that to work then I can go from there.
This is what I was using so far... Also need to figure out a way to determine if the target has already been hit or not as you lose 5 points for a miss.

Code: Select all

function Wack_it()
	local XMoleCoord = {3055.7749023438, 3099.330078125, 3143.4460449219, 3054.9389648438, 3099.8291015625, 
		3146.8620605469, 3055.0129394531, 3099.3659667969, 3147.04296875}
	local ZMoleCoord = {4680.6630859375,4680.3110351563,4679.041015625,4722.5961914063,4724.6572265625,
		4719.6767578125,4769.3061523438,4770.5322265625,4767.8090820313}
	-- local XMoleCoord = {3055, 3099, 3143, 3054, 3099, 3146, 3055, 3099, 3147}
	-- local ZMoleCoord = {4680,4680,4679,4722,4724,4719,4769,4770,4767}
	local ignoreMoleTable = {}
	local platypusIDs = {}
	local ignoreHole = 0
	while RoMScript("TimeKeeperFrame:IsVisible()") do
		player:update()
		yrest(1);
		local objectList = CObjectList()
		objectList:update()
		local objSize = objectList:size()
		for i = 0,objSize do
			local obj = objectList:getObject(i)
			obj:update()

			if obj.Name == "Platypus" then --(obj.Id >= 102176 and 102184 >= obj.Id)
				for i=1,9,1 do
					if (obj.X == XMoleCoord[i] and obj.Z == ZMoleCoord[i]) then
						RoMCode('UseExtraAction('..i..')');
						break
					end
				end
			end
		end
	end
end

Re: Honor point's farm in dril ground

Posted: Fri Jun 13, 2014 5:10 am
by rock5
It's probably impossible to match high decimal place floats. You should probably check the distance between points instead. eg.

Code: Select all

if 1 > distance(obj.X, obj.Y, XMoleCoord[i], ZMoleCoord[i]) then
That will match 2 points if they are less than 1 away from each other. You can adjust the accuracy as needed.

Re: Honor point's farm in dril ground

Posted: Fri Jun 13, 2014 6:12 am
by ZZZZZ
I have run an object position check a few times to see, and using a table and table.contains, every value is returned exactly the same, no matter what. The commented out tables -

Code: Select all

   -- local XMoleCoord = {3055, 3099, 3143, 3054, 3099, 3146, 3055, 3099, 3147}
   -- local ZMoleCoord = {4680,4680,4679,4722,4724,4719,4769,4770,4767}
are my other attempt at just trying without the decimals, and that had no effect :/

I'll try the distance check when I get a chance and see if that makes any difference though.

~~ edit, didn't make any difference. I have no idea what to do about this now >.<

Re: Honor point's farm in dril ground

Posted: Sun Jun 15, 2014 11:31 pm
by lisa
This is the one where you have 9 spots and things pop up and u hit numberpad numbers to hit the objects you want yeah?

I think this is with lvl 1 drill ground, I may be able to have a look for you, no idea what I have in my castles anymore lol

Re: Honor point's farm in dril ground

Posted: Mon Jun 16, 2014 1:21 am
by lisa
well I can tell you the firswt thing I did was this add in prints.

Code: Select all

			if obj.Name == "Platypus" then --(obj.Id >= 102176 and 102184 >= obj.Id)
				for i=1,9,1 do
					local disst = distance(obj.X, obj.Y, XMoleCoord[i], ZMoleCoord[i])
					print(disst)
					if 4753 > disst then
					--if (obj.X == XMoleCoord[i] and obj.Z == ZMoleCoord[i]) then
						print("hitting mole at position "..i)
						RoMCode('UseExtraAction('..i..')');
						break
					end
				end
			end
which gave some very interesting results.

Code: Select all

4666.4548862305
hitting mole at position 1
4666.560947928
hitting mole at position 1
4666.4548862305
hitting mole at position 1
4666.4548862305
hitting mole at position 1
4667.1205299538
hitting mole at position 1
4666.4548862305
hitting mole at position 1
4667.1205299538
hitting mole at position 1
4666.4548862305
hitting mole at position 1
4667.1205299538
hitting mole at position 1
4666.4548862305
hitting mole at position 1
4667.1205299538
hitting mole at position 1
4666.4548862305
hitting mole at position 1
4667.1205299538
hitting mole at position 1
4666.4548862305
hitting mole at position 1
4667.1205299538
hitting mole at position 1
So there is an issue right there.

Next I tried just doing some prints like this

Code: Select all

local aa,bb = player:findNearestNameOrId("Platypus") table.print(bb)

Code: Select all

table: 03813EF8
1:      table: 03813F98
        Distance:       128.78521517544
        Name:   Platypus
        Address:        365400320
        Z:      4719.6767578125
        Attackable:     true
        X:      3146.8620605469
        Type:   2
        Y:      14.329277038574
        Id:     102180
2:      table: 03813FC0
        Distance:       176.14539092252
        Name:   Platypus
        Address:        365404160
        Z:      4769.3061523438
        Attackable:     true
        X:      3055.0129394531
        Type:   2
        Y:      14.407148361206
        Id:     102181

table: 03814920
1:      table: 038149C0
        Distance:       128.78521532684
        Name:   Platypus
        Address:        365400320
        Z:      4719.6767578125
        Attackable:     true
        X:      3146.8620605469
        Type:   2
        Y:      14.329298019409
        Id:     102180
2:      table: 03814A88
        Distance:       131.65988312709
        Name:   Platypus
        Address:        743697152
        Z:      4722.5961914063
        Attackable:     true
        X:      3054.9389648438
        Type:   2
        Y:      14.614768981934
        Id:     102178
3:      table: 03814A38
        Distance:       171.24348408116
        Name:   Platypus
        Address:        693959168
        Z:      4770.5322265625
        Attackable:     true
        X:      3099.3659667969
        Type:   2
        Y:      14.28392791748
        Id:     102182

table: 03812B20
1:      table: 03812BE8
        Distance:       93.1410456072
        Name:   Platypus
        Address:        664036352
        Z:      4680.6630859375
        Attackable:     true
        X:      3055.7749023438
        Type:   2
        Y:      14.347370147705
        Id:     102143
2:      table: 03812C10
        Distance:       174.66309086418
        Name:   Platypus
        Address:        664040192
        Z:      4767.8090820313
        Attackable:     true
        X:      3147.04296875
        Type:   2
        Y:      14.435062408447
        Id:     102183
I would need to confirm but it seems the Id matches to position in game.

102176 is position X
102177 is position X
102178 is position X
102179 is position X
102180 is position X
102181 is position X
102182 is position X
102183 is position X
102184 is position X

I noticed another Id, 102143, might be the ones to avoid hitting?

Ok so the usual offset for if clicked doesn't work.

This works for round 1 when they are coming out slowly, scores 14ish round 1.

Code: Select all

function platypus()
	local prevspot, prevaddress = 0,0
	while RoMScript("TimeKeeperFrame:IsVisible()") do
		player:update()
		yrest(1);
		local objectList = CObjectList()
		objectList:update()
		local objSize = objectList:size()
		for i = 0,objSize do
			local obj = objectList:getObject(i)
			obj:update()
			if obj.Name == "Platypus" then
				local spot = obj.Id - 102174
				if spot > 0 and not (spot == prevspot and prevaddress == obj.Address) then
					printf("hitting %X mole at position %s\n", obj.Address, spot)
					RoMCode('UseExtraAction('.. spot..')');
					prevspot = spot
					prevaddress = obj.Address
					break
				end
			end
		end
	end
end
-- getTime()  deltaTime(getTime(), starttime)  -- in seconds

Code: Select all

hitting 312E1E00 mole at position 8
hitting 312E1400 mole at position 5
hitting 312E7800 mole at position 2
hitting 312E5500 mole at position 5
hitting 40A0D200 mole at position 2
hitting 40A03C00 mole at position 7
hitting 40A00A00 mole at position 2
hitting 40A0D200 mole at position 4
hitting 15C7C300 mole at position 4
hitting 36B86E00 mole at position 7
hitting 36B8E600 mole at position 2
hitting 36B8E100 mole at position 5
hitting 36B84600 mole at position 3
hitting 36B85A00 mole at position 6
So in order to keep working in faster rounds a check will need to be done for more than just the last platypus, maybe add in a time on the combination of Id and Address so it ignores that combination for the next 2 seconds.

I added that as a combo because sometimes it would have the same address in a different position on the next platypus.

Code: Select all

hitting 37399B00 mole at position 4
hitting 37399B00 mole at position 7
hitting 37399B00 mole at position 5
hitting 3939C800 mole at position 2
hitting 37399B00 mole at position 7
hitting 29229B00 mole at position 9
hitting 37399B00 mole at position 4
hitting 29229B00 mole at position 8
hitting 37399B00 mole at position 6
hitting 29229B00 mole at position 4
hitting 37399B00 mole at position 5

Re: Honor point's farm in dril ground

Posted: Mon Jun 16, 2014 1:38 am
by ZZZZZ

Code: Select all

101279
	101545
	101546
	101547
	102143
	102176
	102177
	102178
	102179
	102180
	102181
	102182
	102183
	102184
That's the ID of all the Platypus that appear. I believe the first 4 are the ones you are not supposed to hit. I'm not sure if their ID relates to their hole though, I did originally think that but wasn't too sure.

Re: Honor point's farm in dril ground

Posted: Mon Jun 16, 2014 2:33 am
by lisa
ZZZZZ wrote:That's the ID of all the Platypus that appear. I believe the first 4 are the ones you are not supposed to hit. I'm not sure if their ID relates to their hole though, I did originally think that but wasn't too sure.
yeah i confirmed it.

This just scored 55, had 2 misses, maybe 3.

Code: Select all

function platypus()

	clicked = {}
	player.time = getTime()
	player.spot = 0
	player.prevaddress = player.Address
	table.insert(clicked,player)
	
	local function checklist(obj,spot)
		for k,v in pairs(clicked) do
			if 4000 > deltaTime(getTime(), v.time) then -- ignore any records older than 3 seconds
				if (spot == v.prevspot and v.prevaddress == obj.Address) then
					return false
				end
			end
		end
		return true
	end
	
	while RoMScript("TimeKeeperFrame:IsVisible()") do
		player:update()
		yrest(1);
		local objectList = CObjectList()
		objectList:update()
		local objSize = objectList:size()
		for i = 0,objSize do
			local obj = objectList:getObject(i)
			obj:update()
			if obj.Name == "Platypus" then
				local spot = obj.Id - 102174
				if spot > 0 and checklist(obj,spot) then
					printf("hitting %X mole at position %s\n", obj.Address, spot)
					RoMCode('UseExtraAction('.. spot..')');
					obj.prevspot = spot
					obj.prevaddress = obj.Address
					obj.time = getTime()
					table.insert(clicked,obj)
					break
				end
			end
		end
	end
end
enjoy.

Re: Honor point's farm in dril ground

Posted: Mon Jun 16, 2014 5:35 am
by ZZZZZ
Works almost spot on, only issue I found was it doesn't hit hole 1 if its a target, if its a friendly it just prints hitting position 10.

Code: Select all

hitting 499DCD00 mole at position 5
hitting 20599100 mole at position 5
hitting 481A3200 mole at position 10
hitting 20599100 mole at position 4
hitting 481A3200 mole at position 10
Otherwise I still got 57 score, thanks very much :D

Re: Honor point's farm in dril ground

Posted: Mon Jun 16, 2014 5:37 am
by rock5
You know, what I like to do with history lists is remove the expired items as I come across them, eg.

Code: Select all

         if 4000 > deltaTime(getTime(), v.time) then -- ignore any records older than 3 seconds
             ...
         else
             table.remove(clicked,k)
         end
Ok course this causes skipped items because of the removed value. The only way I know to handle it is to go in reverse, eg.

Code: Select all

      for k = #clicked, 1, -1 do
         v = clicked[k]
         if 4000 > deltaTime(getTime(), v.time) then -- ignore any records older than 3 seconds
             ...
         else
             table.remove(clicked,k)
         end
This just avoids the list getting bigger and bigger.

Re: Honor point's farm in dril ground

Posted: Mon Jun 16, 2014 5:48 am
by lisa
rock5 wrote:This just avoids the list getting bigger and bigger.
Sounds good, ZZZZZ should definately impliment it ;)

Code works perfectly just so you know

Code: Select all

Command> local tt = {1,2,3,4,5,6,7,8,9} for k = #tt,1,-1 do v = tt[k] print(v) if v == 1 or v == 4 then table.remove(tt,k) end end table.print(tt)
9
8
7
6
5
4
3
2
1
table: 014C63E8
1:      2
2:      3
3:      5
4:      6
5:      7
6:      8
7:      9
ZZZZZ wrote:Works almost spot on, only issue I found was it doesn't hit hole 1 if its a target, if its a friendly it just prints hitting position 10.
that explains why the math didn't add up for how much I had to subtract from Id, just add in a line.

Code: Select all

				local spot = obj.Id - 102174
				if spot == 10 then spot = 1 end -- add this line
				if spot > 0 and checklist(obj,spot) then
Have a play around with the time, It is set to 4 seconds atm, 4000. I got a few double hits at 2000 and 3000, there may be an optimal number but yeah that is for others to test.

Re: Honor point's farm in dril ground

Posted: Mon Jun 16, 2014 6:26 pm
by ZZZZZ
Changing 10 to 1 didn't work, some reason 10 is a friendly mob, but anyway, I solved it by adding hole 1's ID, which is 102143.

Code: Select all

if obj.Name == "Platypus" then
			local spot
			if obj.Id == 102143 then
				spot = 1
			else
				spot = obj.Id - 102174
			end
            if spot > 0 and checklist(obj,spot) then
               printf("hitting %X mole at position %s\n", obj.Address, spot)
               RoMCode('UseExtraAction('.. spot ..')');
               obj.prevspot = spot
               obj.prevaddress = obj.Address
               obj.time = getTime()
               table.insert(clicked,obj)
               break
            end
         end

Re: Honor point's farm in dril ground

Posted: Mon Jun 16, 2014 11:13 pm
by rock5
The problem with that is it totals 10 spots but there are only 9, if I understand correctly. So what does it mean when it gets a platypus id 102184 which results in a "spot 10"? I think someone should run getid while the game it running and make 100% sure which the correct ids are and their corresponding spots.

Re: Honor point's farm in dril ground

Posted: Tue Jul 15, 2014 8:44 am
by noobbotter
I tried out Bot_romka's script for the one where you fly over the spikes. Works pretty good. I was averaging 350 - 450 Honor Points per run.