Hugel Troy Macro [easy config, hard to get banned]

Moderator: Moderators

Message
Author
Motivus
Developers
Developers
Posts: 157
Joined: 04 Apr 2008, 13:33
Noob?: Yes

Hugel Troy Macro [easy config, hard to get banned]

#1 Post by Motivus »

Easily configurable
Hard to get caught with
Compensates for whats going on? option and wins every time it is chosen
Picks cancel if you lose 3 in a row
Averages 1100 tickets per hour with default delays, around 950-1000 with ldelay

Had no intention of posting this here considering I made it in the first few days of the event in <1 hr, but there have been some really "awesome" turns of events.

You probably have to type macro ta to start it, because any check based on when you login puts you at risk for being banned. If you plan on multi botting it or afk botting it you should add another auto macro to auto talk to the npc when you login.

the delay macros are for on the fly delay changing

macro bail / macro halt are to stop auto macros from going off which is extremely useful while getting investigated because macro pause/macro stop often doesn't work

the options are in macro setupdawg

the friend request macro at the very bottom assumes you have windows xp installed to C:\, change the sound if it matters to you

if you aren't standing directly south of him uncomment the look lines and set the right direction

Code: Select all

  #RPS

#If you use it manually with $talkAuto 0 you can type:
#	macro ta
#   in console to talk to the npc
macro ta {
   do talk @npc(121, 116)
}

#If you get bot checked or need to stop macroing type:
#	macro halt
#  in console

#I advise testing this multiple times before you rely on it
#it takes a little getting used to
macro halt {
  [
   lock TalkToHer
   lock LetsDoit
   lock loggin
   lock npcbroke
   lock Store
   lock PickAChoice
   lock WinThisOne
   lock ReTalk
   lock PayTheMan
   lock HuhMacro
  ]
}

#to fix halt/bail type
#   reload rps
macro zdelay {
  [
   #Delays, text delay is applied to emoticon using conversations
   $respDelay = 0.55
   $textDelay = 1.1
   $npcTalkDelay = 1.5

   #rand delay applied to emoticon using conversations
   $randDelay = 2
   $randNpcTalk = 5
  ]
}
macro ldelay {
  [
   #Delays, text delay is applied to emoticon using conversations
   $respDelay = 0.55
   $textDelay = 0.8
   $npcTalkDelay = 1.5

   #rand delay applied to emoticon using conversations
   $randDelay = 1
   $randNpcTalk = 2
  ]
}

macro uldelay {
  [
   #Delays, text delay is applied to emoticon using conversations
   $respDelay = 0.55
   $textDelay = 0.55
   $npcTalkDelay = 1.5

   #rand delay applied to emoticon using conversations
   $randDelay = 0
   $randNpcTalk = 0
  ]
}

macro banmedelay {
  [
   #Delays, text delay is applied to emoticon using conversations
   $respDelay = 0
   $textDelay = 0
   $npcTalkDelay = 1

   #rand delay applied to emoticon using conversations
   $randDelay = 0
   $randNpcTalk = 0
  ]
}
   
automacro LetsDoit {
   run-once 1
   call setupdawg
}

macro setupdawg {
  [
   #Auto initiate conversation with npc 0=no 1=yes
   $talkNpc = 1
   
   #Use storage at 50% weight 0=no 1=yes
   $useStorage = 0

   #Delays, text delay is applied to emoticon using conversations
   $respDelay = 0.55
   $textDelay = 0.55
   $npcTalkDelay = 1.5

   #rand delay applied to emoticon using conversations
   $randDelay = 0
   $randNpcTalk = 0
   
   #Look goes CCW from north, look 1 0 = North West Look 7 0 = North East
   #$lookDir = 0

   do conf autoTalkCont 1
   do conf itemsMaxWeight 89
   do conf itemsMaxWeight_sellOrStore 89

   #don't change these most don't even matter in setup block
   $pickShield = 1
   $npcLast = 0
   $npcRepeat = 4
   $counterPick = 4
   $myChoice = 0
   $curLosses = 0
  ]

   release TalkToHer
}

automacro TalkToHer {
   disabled 1
   location hugel
   weight < 50%
   run-once 1
   call beginconversation
}

automacro Store {
  run-once 1
  weight >= 50%
  call dostorage
}

macro dostorage {
   if ($useStorage == 0) goto nostorage
   lock TalkToHer
   lock ReTalk

   do autostorage

   #Afk botting? Set your move coord + look here
   #do move x y
   #do look $lookDir 0 

   release LetsDoit
   release Store
   release ReTalk

  :nostorage

}

macro beginconversation {
  [
   #do look $lookDir 0

   if ($talkNpc == 0) goto notalk
   if ($pickShield == 0) goto justtalk

   $counterPick = 4
   $npcRepeat = 4

   :justtalk
   $curLosses = 0
   do talk @npc(121, 116)

   :notalk
   $curLosses = 0
  ]
   
}

automacro HuhMacro {
   console /Okay, let\'s play/
   call responseone
}

automacro PayTheMan {
   console /.*?0.*?Pay./
   call responsezero
}

macro responsezero {
   pause $respDelay
   do talk resp 0
}

macro responseone {
   pause $respDelay
   do talk resp 1
}

automacro ReTalk {
   console /Done talking/
   call releaseauto
}
 
macro releaseauto {
   pause @eval($textDelay + @rand(0, $randDelay))
   release TalkToHer

}

automacro fixittwo {
   mapchange hugel_in
   call bail
}

automacro FixTele {
   mapchange hugel
   call bail
}

automacro WhereWeAt {
   mapchange any
   call bail
}

automacro loggin {
   console /You are now in the game/
   call fix
}

automacro npcbroke {
   console /The NPC did not respond./
   call fix
}

macro fix {
   lock TalkToHer
   release LetsDoit
}

macro bail {
  [
   lock TalkToHer
   lock LetsDoit
   lock HuhMacro
   lock Store
   lock loggin
   lock npcbroke
   lock PickAChoice
   lock WinThisOne
   lock ReTalk
   lock PayTheMan
  ]
}

automacro NpcPickZero {
   console /Sword!/
   call {
      [
       $npcLast = 0
       call newRound
      ]
   }
}

automacro NpcPickOne {
   console /Shield!/
   call {
      [
       $npcLast = 1
       call newRound
      ]
   }
}

automacro NpcPickTwo {
   console /Bow!/
   call {
      [
       $npcLast = 2
       call newRound
      ]
   }
}

macro newRound { 
      if ($npcRepeat == 4) goto skip

      $npcRepeat = 4
      if ($pickShield == 1) goto skip

      $counterPick = $npcLast

      goto end
      :skip
      $counterPick = 4

      :end
}

automacro WinThisOne {
   console /.*?(\d+).*?(whats going on)/
   call {
     [
      if ($curLosses < 3) goto nocancel
      $curLosses = 0
      do talk resp 4
      goto nopick
      :nocancel
      $npcRepeat = $.lastMatch1
     ]
      pause @eval($textDelay + @rand(0, $randDelay))
      call doPick
     [
      :nopick
     
     ] 
   }
}

automacro PickAChoice {
   console /.*?(3).*?(Cancel Chat)/
   call {
     [
      if ($curLosses < 3) goto nocancie
      $curLosses = 0
      do talk resp 3
      :nocancie
     ]
      pause @eval($textDelay + @rand(0, $randDelay))
      call doPick
     [
      :nopie

     ]
   }
}

automacro SetLosses {
   console /.*?(My wins:).*?(\d+)/
   call {
      $curLosses = $.lastMatch2
   }
}

macro doPick {
  [
   if ($npcRepeat < 4) goto beatHim
   if ($counterPick < 4) goto counterHim

   $myChoice = 1
   goto finish
   
   :counterHim

   $myChoice = $counterPick
   goto finish

   :beatHim

   if ($npcLast == 0) goto bow
   if ($npcLast == 1) goto sword
   
   $myChoice = 1
   goto send
   
   :bow

   $myChoice = 2
   goto send

   :sword

   $myChoice = 0
   goto send

   :send

   if ($myChoice < $npcRepeat) goto finish
   $myChoice = @eval($myChoice +1)

   :finish

   do talk resp $myChoice
  ]
}

automacro WhyCantWeBeFriends {
   console /otherwise type \'friend reject\'/
   call {
      do eval Utils::Win32::playSound('C:\WINDOWS\Media\Windows XP Hardware Insert.wav')
   }
}
Oh no.

ezza
Developers
Developers
Posts: 109
Joined: 04 Apr 2008, 09:50

Re: Hugel Troy Macro [easy config, hard to get banned]

#2 Post by ezza »

@Motivus - what server & episode is that you're playing?


I dont agree if you use console trigger. Ppl might playing the regexp with public chat. Once the regexp match... its a doomday to you. I think use hook syntax is more safe... dont you think so?

Motivus
Developers
Developers
Posts: 157
Joined: 04 Apr 2008, 13:33
Noob?: Yes

Re: Hugel Troy Macro [easy config, hard to get banned]

#3 Post by Motivus »

ezza wrote:@Motivus - what server & episode is that you're playing?


I dont agree if you use console trigger. Ppl might playing the regexp with public chat. Once the regexp match... its a doomday to you. I think use hook syntax is more safe... dont you think so?
I tried to mess it up with public chat and it didn't happen, but I remember thinking what you said. Chat has yet to mess it up, and I tried to mess with people who I knew were using it. At worst you will pick a wrong choice, but kore won't talk to an npc while another npc talk is up and it won't respond with out responses.

If you are worried about it exclude public chat and private messages from the console domain. I don't like macro's syntax at all, but I have to say the plugin code is very easy to modify and neatly done.

It's for iRO's anniversary event.
Oh no.

ezza
Developers
Developers
Posts: 109
Joined: 04 Apr 2008, 09:50

Re: Hugel Troy Macro [easy config, hard to get banned]

#4 Post by ezza »

Well, for the "Done talking" part... you may use

Code: Select all

Plugins::callHook('npc_talk_done', {ID => $ID, name => $name});
Find npc_talk_done call hook in Receive.PM and add the name value there.. leave the ID untouched.

use ..

Code: Select all

hook npc_talk_done
save name
var .hooksave0 The Troy name here

p.s: Got 1 person asking me in PM saying his macro also trigger to chats and pms. I'm so envy for iRO botters.

Kiri
Noob
Noob
Posts: 7
Joined: 10 Jun 2008, 13:56
Noob?: No

Re: Hugel Troy Macro [easy config, hard to get banned]

#5 Post by Kiri »

1000+ an hour. not bad

Tenkai
Noob
Noob
Posts: 7
Joined: 07 Jul 2008, 02:02
Noob?: Yes

Re: Hugel Troy Macro [easy config, hard to get banned]

#6 Post by Tenkai »

in the console your're constantly spammed with hundreds of emocons is there anyway to turn them off? It's hard to watch it with the text moving so fast. I tried deleting the Emotions in the tables file but that just made them go to Emotion #12 ect.

User avatar
help_us
Testers Team
Testers Team
Posts: 106
Joined: 04 Apr 2008, 21:53
Noob?: No
Location: Asia
Contact:

Re: Hugel Troy Macro [easy config, hard to get banned]

#7 Post by help_us »

i think what ezza try to say is:-

Code: Select all

[dist=6.4] Tester (15): Bow!
[macro] automacro NpcPickTwo triggered.
[macro][log] bow!
i use your macros to make that regexp console is same with player chat.

Code: Select all

automacro NpcPickTwo {
   console /Bow!/
   call {
      [
       $npcLast = 2
       log bow!
      ]
   }
}
mayb this hook could be help ;)

Code: Select all

automacro checkNpc {
	hook npc_talk
	timeout 5
	save0 nameID
	save1 name
	save2 msg
	call {
		log nameID = $.hooksave0
		log name = $.hooksave1
		log msg = $.hooksave2
	}
}
Image
Image

Motivus
Developers
Developers
Posts: 157
Joined: 04 Apr 2008, 13:33
Noob?: Yes

Re: Hugel Troy Macro [easy config, hard to get banned]

#8 Post by Motivus »

Tenkai wrote:in the console your're constantly spammed with hundreds of emocons is there anyway to turn them off? It's hard to watch it with the text moving so fast. I tried deleting the Emotions in the tables file but that just made them go to Emotion #12 ect.
squelch the emotion domain in config.txt
Oh no.

Tenkai
Noob
Noob
Posts: 7
Joined: 07 Jul 2008, 02:02
Noob?: Yes

Re: Hugel Troy Macro [easy config, hard to get banned]

#9 Post by Tenkai »

^ thank you this worked perfectly. Another issue is the macro cant find the troy npc because he disapears sometimes due to the sprite lag from so many people. Is there anyway to fix this? I relog a lot and it doenst work

Kiri
Noob
Noob
Posts: 7
Joined: 10 Jun 2008, 13:56
Noob?: No

Re: Hugel Troy Macro [easy config, hard to get banned]

#10 Post by Kiri »

theres 3x more botters now
and gms just watching

Post Reply