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:
Posts (Atom)