How to Avoid Dragon's Breath Attack
Now, i'll teach you on how to defend or to protect your character from Dragon's Breath Attack. We know that Dragon's Breath is a Fire Element, and you need to defend that Fire Element using a Fire Element Armors.
This are the List of Armors that I recommend:
Headgears:
Aries Crown - 5% Fire Prop.
Aries Diadem - 5% Fire Prop.
Ears of Ifrit - 5% Fire Prop.
Hairband Of Reginleif - 5% Fire Prop. and More.
Mask of Ifrit - 10% Fire Prop.
Torch Cap - 20% Fire Prop.
Welding Mask - 10% Fire Prop.
Armors:
Crimson Robe - Full fire Armor
Accesory:
Crimson Orb - 15% Fire Prop.
Ring of Flame Lord - 10% Fire Prop.
Guard:
Neo Valkyrie Shield - 20% Fire Prop. and More.
Shell Of Resistance - 20% all Elements
Valkyrie Shield - 20% Fire Prop.
Garments:
Asprika - 30% all Elements including Neutral Property
Neo Muffler - 5% Fire Prop. and More.
Proxy Skin - 7% all Elements.
Shoes:
Crimson Shoes - 15% Fire Prop.
I recommend those items for you to protect your character against Dragon's Breath Skill. Any comment might accepted and posted...
This are the List of Armors that I recommend:
Headgears:
Aries Crown - 5% Fire Prop.
Aries Diadem - 5% Fire Prop.
Ears of Ifrit - 5% Fire Prop.
Hairband Of Reginleif - 5% Fire Prop. and More.
Mask of Ifrit - 10% Fire Prop.
Torch Cap - 20% Fire Prop.
Welding Mask - 10% Fire Prop.
Armors:
Crimson Robe - Full fire Armor
Accesory:
Crimson Orb - 15% Fire Prop.
Ring of Flame Lord - 10% Fire Prop.
Guard:
Neo Valkyrie Shield - 20% Fire Prop. and More.
Shell Of Resistance - 20% all Elements
Valkyrie Shield - 20% Fire Prop.
Garments:
Asprika - 30% all Elements including Neutral Property
Neo Muffler - 5% Fire Prop. and More.
Proxy Skin - 7% all Elements.
Shoes:
Crimson Shoes - 15% Fire Prop.
I recommend those items for you to protect your character against Dragon's Breath Skill. Any comment might accepted and posted...
My Old KVM[Working]
I thought that KVM was the end of the Game of pRO, but there are several Server of ragnarok that uses KVM...
so my KVM download link:
I appreciate some replies comes to you!... thank you...
Nested Macro + Automacro
I will teach you on how to create a 1pc of automacro and a multiple macro body
how about planning to move in a map if we reach our BaseLevel Condition to our Automacro?
The code is now done!, if the automacro detect that your baselvl is already >= 10 then it will call the macro recon, however the recon macro will also detect if your level was pass thru to his if statement...
how about planning to move in a map if we reach our BaseLevel Condition to our Automacro?
automacro MoveMap {base >= 10timeout 60call recon}
macro recon {if( $.lvl >= 10 ) call PoringAtk;if( $.lvl >= 20 ) call PoporingAtk;if( $.lvl >= 30 ) call PlanktonAtk;}
macro PoringAtk {do move prt_fld08}
macro PoporingAtk {do move pay_fild04}
macro PlanktonAtk {do move iz_dun00}
The code is now done!, if the automacro detect that your baselvl is already >= 10 then it will call the macro recon, however the recon macro will also detect if your level was pass thru to his if statement...
BattleGround Philippines Revision-09 By Me
This is my Final for now, BattleGround Tierra of Ragnarok Online Philippines
###########################################
# Created By: Daison For Renewal BG Rev:09#
###########################################
automacro ImInGeffen {
location geffen
timeout 10
call {
do move geffen 110 65
pause 3
do talknpc 109 66 c c r0 n
}
}
automacro ImInPayon {
location payon
timeout 10
call {
do move payon 186 102
pause 3
do talknpc 189 105 c c r0 n
}
}
automacro BattleRoom {
location bat_room 150 153 154 149
location not bat_room 118 181 121 173
location not bat_room 118 128 121 118
location not bat_room 57 223
location not bat_room 57 207
timeout 300
call {
do conf route_randomWalk 0
do conf bg_Location @random("1","2")
do stand
do chat leave
do conf route_randomWalk 0
$bgLoc = @eval($::config{bg_Location})
if ($bgLoc == 1) goto Guillaume
if ($bgLoc == 2) goto Croix
:Guillaume
$xG = @random("118","119","120","121")
$yG = @random("173","174","175","176","177","178","179","180","181")
do move $xG $yG
stop
:Croix
$xC = @random("118","119","120","121")
$yC = @random("118","119","120","121","122","123","124","125","126","127","128")
do move $xC $yC
stop
}
}
automacro AutoPub {
location bat_room
areaSpell Warp Portal, Warp Portal Opening
timeout 10
call {
do chat create @eval($::config{bg_Chat}) 2 0 @eval($::config{bg_pass})
}
}
automacro TalkToGuillNPC {
location bat_room 118 181 121 173
timeout 5
call {
do talknpc 124 178 c r0 n
}
}
automacro TalkToCroixNPC {
location bat_room 118 128 121 118
timeout 5
call {
do talknpc 125 121 c r0 n
}
}
#############################
############################
#Starting TO Join Chat Rooms
############################
#############################
automacro ChatTalkRoomNPCG {
location bat_room 57 223
timeout 3
call JoinChat
}
automacro ChatTalkRoomNPCC {
location bat_room 57 207
timeout 3
call JoinChat
}
###############
##############
#Badge COllect
##############
###############
automacro BadgeCollectG {
location bat_a01 50 374
exclusive 1
run-once 0
timeout 5
call GetBadges
}
automacro BadgeCollectC {
location bat_a01 43 17
exclusive 1
run-once 0
timeout 5
call GetBadges
}
#########
########
#CLASSES
########
#########
automacro HPMedicG {
location bat_a01 342 352 362 332
console /\[dist=(.*)\] (.*) \((\d+)\): \*Flag (1|2|3)\*$/i
class Priest
class High Priest
class Monk
class Champion
class Sura
class Arch Bishop
timeout 5
call AgiBuff
}
automacro HPMedicC {
location bat_a01 350 60 360 50
console /\[dist=(.*)\] (.*) \((\d+)\): \*Flag (1|2|3)\*$/i
class Priest
class High Priest
class Monk
class Champion
class Sura
class Arch Bishop
timeout 5
call AgiBuff
}
automacro MountedPlayers {
location bat_a01
status not Increase AGI
class Royal Guard
class Rune Knight
class Ranger
class Knight
class Lord Knight
class Paladin
class Crusader
timeout 30
call {
do e flg3
}
}
automacro GeneticFastWalkG {
location bat_a01 342 352 362 332
class Genetic
sp > 5%
status not Cart Boost
timeout 5
call CartBoost
}
automacro GeneticFastWalkC {
location bat_a01 350 60 360 50
class Genetic
sp > 5%
status not Cart Boost
timeout 5
call CartBoost
}
automacro GXCloakExceedG {
location bat_a01 342 352 362 332
class Glt. Cross
sp > 10%
status not Cloaking Exceed
timeout 20
call GXCloacking
}
automacro GXCloakExceedC {
location bat_a01 350 60 360 50
class Glt. Cross
sp > 10%
status not Cloaking Exceed
timeout 20
call GXCloacking
}
automacro SCDefenderG {
location bat_a01 342 352 362 332
class Shadow Chaser
call {
$y = 161 48","161 49","161 50","162 48","162 49","162 50","163 48","163 49","163 50"
while ($y != $.loc) as loop
do move 162 49
pause 5
end loop
$i = 0
while ($i < 50) as loop
do sl 2299 161 49 10
$i = $i + 1
end loop
}
}
automacro SCDefenderC {
location bat_a01 350 60 360 50
class Shadow Chaser
call {
$y = 170 344","170 345","170 346","171 344","171 345","171 346","172 344","172 345","172 346"
while ($y != $.loc) as loop
do move 171 345
pause 5
end loop
$i = 0
while ($i < 50) as loop
do sl 2299 169 345 10
$i = $i + 1
end loop
}
}
#################
################
#Starting Battle
################
#################
automacro AntiBarricadeG {
location bat_a01 342 352 362 332
timeout 5
call MiddleMapOfBG
}
automacro AntiBarricadeC {
location bat_a01 350 60 360 50
timeout 5
call MiddleMapOfBG
}
automacro GoStone {
location bat_a01 271 205 275 201
timeout 10
priority 1
call {
$K = "Knight"
$GC = "Glt. Cross"
$LK = "Lord Knight"
$P = "Paladin"
$RK = "Rune Knight"
$RG = "Royal Guard"
$R = "Ranger"
$G = "Genetic"
if (@eval(checkClasss($K)) == 0) goto GC
:GC
if (@eval(checkClasss($GC)) == 0) goto LK
:LK
if (@eval(checkClasss($LK)) == 0) goto P
:P
if (@eval(checkClasss($P)) == 0) goto RK
:RK
if (@eval(checkClasss($RK)) == 0) goto RG
:RG
if (@eval(checkClasss($RG)) == 0) goto R
:R
if (@eval(checkClasss($R)) == 0) goto G
:G
if (@eval(checkClasss($R)) == 0) goto OneFinal
:OneFinal
if (@eval(checkClasss($K)) == 1) goto NotatkFlag
if (@eval(checkClasss($GC)) == 1) goto NotatkFlag
if (@eval(checkClasss($LK)) == 1) goto NotatkFlag
if (@eval(checkClasss($P)) == 1) goto NotatkFlag
if (@eval(checkClasss($RK)) == 1) goto NotatkFlag
if (@eval(checkClasss($RG)) == 1) goto NotatkFlag
if (@eval(checkClasss($R)) == 1) goto NotatkFlag
:atkFlag
do a 0
stop
:NotatkFlag
if ($bgLoc == 1) goto Guillaume
if ($bgLoc == 2) goto Croix
:Guillaume
do move 162 49
stop
:Croix
do move 171 345
stop
stop
}
}
automacro tierraAtkStone1 {
location bat_a01 170 349 175 343
exclusive 1
run-once 0
call AttackStone
}
automacro tierraAtkStone2 {
location bat_a01 161 55 166 44
exclusive 1
run-once 0
call AttackStone
}
########
#######
#MACROS
#######
########
macro CartBoost {
do ss 2478 5
}
macro GXCloacking {
do ss 2033 5
}
macro AttackStone {
do a 0
stop
}
sub checkClasss {
return 0 unless defined $char->{jobID};
my $class = $_[0];
if ($class =~ /^\s*\$/) {
my ($var) = $class =~ /^\$([a-zA-Z][a-zA-Z\d]*)\s*$/;
return 0 unless defined $var;
if (exists $varStack{$var}) {$class = $varStack{$var}}
else {return 0}
}
return lc($class) eq lc($::jobs_lut{$char->{jobID}})?1:0
}
macro MiddleMapOfBG {
do move 273 203
stop
}
macro GetBadges {
do talk 2
stop
}
macro AgiBuff {
do sp 29 @player($.lastMatch2) 10
}
macro JoinChat {
do chat join 0
pause 1
do chat join 0
}Learn the Automacro
As what i've said to my previous page, that you can use automacro for you to make it easy to run into your system
let's attack a monster using automacro
the code was like this, if my character is in the prt_fld08 and if there's a Poring or Fabre or Lunatic and we must run this program in every 10seconds
then the program will call the Statements
the program will do a $.lastMonster
a means attack the $.lastMonster,
$.lastMonster means the monster that was detected in the CONDITION, either Poring/Fabre or Lunatic
The code will automatically run if you're in the prt_fld08 according to it's CONDITION
let's attack a monster using automacro
automacro AttackMob {
location prt_fld08
monster Poring, Fabre,Lunatic
timeout 10
}call {
do a $.lastMonster
}
the code was like this, if my character is in the prt_fld08 and if there's a Poring or Fabre or Lunatic and we must run this program in every 10seconds
then the program will call the Statements
the program will do a $.lastMonster
a means attack the $.lastMonster,
$.lastMonster means the monster that was detected in the CONDITION, either Poring/Fabre or Lunatic
The code will automatically run if you're in the prt_fld08 according to it's CONDITION
Operators and Variables
Macro:
macro can only hold the Body of Artificial Movements, without a condition, you are calling it via console, or making an automacro to call the macro
macro <name...> {
<statement...>
}
Automacro:
automacro Method is the automatically run, everytime you ran your Openkore, automacro will generate by the conditions and making it an automatic call to make an Artificial Movements to your Character
automacro <name> {
<conditions>
call <macro-name>
}
#By creating a full set of Automatic automacro
automacro <name...> {
<conditions>
}call {
<statements>
}
Variables:
To declare a Variable in Openkore Macro, you just need to use the $ and combine the Word that you wan't ,for example:
$var
$name
Any variable can hold an Integer, String or Double, it also depends on how you will use it in Openkore Macro
Operators:
+ ----- it is mostly used in @eval() in Openkore Macro
- ----- it also used in @eval()
= ----- Equal
== ----- Equally Equal
!= ----- Not Equal
< ----- Lesser Than
> ----- Greater Than
<= ----- Lesser than Equal
>= ----- Greater than Equal
Special Variables to your Statements
- This are the important built-in Variables for you to determine your character info/location etc.
- $.map - the map you're on ("prontera")
- $.pos - your current position ("123 234")
- $.time - current time as unix timestamp ("1131116304")
- $.datetime - current date and time ("Fri Nov 4 15:59:36 2005")
- $.hour - current hour time in 24h format
- $.minute - current minute time
- $.second - current second time
- $.hp - current hp
- $.sp - current sp
- $.lvl - current base level
- $.joblvl - current job level
- $.spirits - current number of spirit spheres
- $.zeny - current amount of zeny
- $.status - current statuses in a comma-separated list
- $.caller - name of the last triggered automacro
- $.weight - returns the current weight of the character
- $.maxweight - returns the maximum weight of the character
Special KeyWords to your Statements
- @npc (<x> <y> | /regexp/i | "<name>")
- Return NPC's ID which location is <x> <y> or NPC's name match regexp or NPC's name is equal to <name> . Returns -1 if no NPC was found.
- @inventory (<item>)
- Returns Inventory Item ID of <item>. If <item> doesn't exist, it returns -1.
- @Inventory (<item>)
- Same as @inventory but returns all matching IDs as a comma-separated list or -1 if the item was not found.
- @invamount (<item>)
- Returns the amount of the given <item> in inventory.
- @cart (<item>)
- Returns cart item ID of <item>. If <item> doesn't exist, it returns -1.
- @Cart (<item>)
- Same as @cart but returns all matching IDs as a comma-separated list or -1 if the item was not found.
- @cartamount (<item>)
- Returns the amount of the given <item> in cart.
- @storage (<item>)
- Returns storage item ID of <item>. If <item> doesn't exist, it returns -1.
- @Storage (<item>)
- Same as @storage but returns all matching IDs as a comma-separated list or -1 if the item was not found.
- @storamount (<item>)
- Returns the amount of the given <item> in storage.
- @player (<name>)
- Returns player ID of player <name>. If player <name> is not found, it returns -1.
- @vender (<name>)
- Returns vender ID of vender <name>. If vender <name> is not found, it returns -1.
- @store (<name>)
- Looks for an item in a store and returns ID or -1 if the item was not found.
- @shopamount (<item>)
- Returns the amount of the given <item> in shop.
- @random ("<argument1>", "<argument2>", ...)
- Returns randomly one of the given arguments .
- @rand (<n>, <m>)
- Returns a random number between (and including) <n> and <m>.
- @eval (<argument>)
- Evaluates the given <argument>. Contents of @eval is Perl and does NOT have macro plugin syntax, except for variables and @() substitution.
- @arg ("<argument>", <n>)
- Returns the <n>th word of <argument> or an empty string if the word index is out of range.
- Note: <n> could also be a variable that contains a round number/s greater than zero.
- @config (<variable>)
- Returns the value of <variable> specified in config.txt.
- @venderitem (<name>)
- Looks for an item in a player's shop and returns ID or -1 if the item was not found.
- @venderprice (<indexID>)
- Looks for an item in a player's shop and returns its price.
- @nick (<word>)
- Escapes all the regexp metacharacters and some of the perl special characters with \ (a backslash). Especially for player's name.
How to use Macro
Well, we want to create a movement to your Ragnarok Character...Openkore Console supports a chat command or a auto command to your Character, which means you are assigning your Character to what you wan'ts to do.
so here's our simple program, we can say that we want to move your character...
so now we created a program that the character will walk
macro MoveMyChar {
-I rename my macro to MoveMyChar and you can also rename it by yourself
do
-do means, we are using the Console Command of Openkore Built in Method
move 100 10
-we use the Console command move with 'x' and 'y' Location
-we are moving your character to your current map e.g(payon)
move prontera 120 120
-we are now moving your character to prontera 120 120, for the instance, you're at the payon, and then
- the map prontera, will detect and your character will move there.
Run your Openkore bot, and type-in "macros MoveMyChar" without the quotes
so here's our simple program, we can say that we want to move your character...
macro MoveMyChar {do move 100 10do move prontera 120 120}
so now we created a program that the character will walk
macro MoveMyChar {
-I rename my macro to MoveMyChar and you can also rename it by yourself
do
-do means, we are using the Console Command of Openkore Built in Method
move 100 10
-we use the Console command move with 'x' and 'y' Location
-we are moving your character to your current map e.g(payon)
move prontera 120 120
-we are now moving your character to prontera 120 120, for the instance, you're at the payon, and then
- the map prontera, will detect and your character will move there.
Run your Openkore bot, and type-in "macros MoveMyChar" without the quotes
How to go to Traning Ground Willow new_2-3 map
Well, this is my Macro code for training groud Willow Monsters,
Hope you like it!
automacro new13 {
location new_1-3
location not new_1-3 97 52 105 48
run-once 0
timeout 20
call {
do move 101 50
}
}
automacro new33 {
location new_3-3
location not new_3-3 98 53 106 48
run-once 0
timeout 20
call {
do move 102 49
}
}
#TalktoNPC's
automacro TalkNPC13 {
location new_1-3 97 52 105 48
run-once 0
timeout 10
call {
do talknpc 103 50 c c c r0 c
}
}
automacro TalkNPC33 {
location new_3-3 97 52 105 48
run-once 0
timeout 10
call {
do talknpc 103 50 c c c r0 c
}
}
Hope you like it!
Subscribe to:
Comments (Atom)





