-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Configuring Characters: Taekwon
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Configuring Characters: Taekwon
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
เตะรัว
Config.txt
useSelf_item Berserk Potion, Awakening Potion, Concentration Potion {
whenStatusInactive Concentration Potion
timeout 10
inLockOnly 1
}
useSelf_skill Seven Wind {
lvl 1
sp > 50
onAction attack
whenStatusInactive Seismic Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 2
sp > 50
onAction attack
whenStatusInactive Lightning Loader
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 3
sp > 50
onAction attack
whenStatusInactive Frost Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 4
sp > 50
onAction attack
whenStatusInactive Flame Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 5
sp > 50
onAction attack
whenStatusInactive Ghost Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 6
sp > 50
onAction attack
whenStatusInactive Dark Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 0
}
useSelf_skill Seven Wind {
lvl 7
sp > 50
onAction attack
whenStatusInactive Aspersio
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Ready Turn {
lvl 1
sp > 1
whenStatusInactive Ready Turn
disabled 0
}
useSelf_skill Ready Down {
lvl 1
sp > 1
whenStatusInactive Ready Down
disabled 0
}
useSelf_skill Ready Storm {
lvl 1
sp > 1
whenStatusInactive Ready Storm
disabled 1
}
useSelf_skill Ready Counter {
lvl 1
sp > 1
whenStatusInactive Ready Counter
disabled 0
}
useSelf_item Berserk Potion, Awakening Potion, Concentration Potion {
whenStatusInactive Concentration Potion
timeout 10
inLockOnly 1
}
useSelf_skill Seven Wind {
lvl 1
sp > 50
onAction attack
whenStatusInactive Seismic Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 2
sp > 50
onAction attack
whenStatusInactive Lightning Loader
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 3
sp > 50
onAction attack
whenStatusInactive Frost Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 4
sp > 50
onAction attack
whenStatusInactive Flame Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 5
sp > 50
onAction attack
whenStatusInactive Ghost Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Seven Wind {
lvl 6
sp > 50
onAction attack
whenStatusInactive Dark Weapon
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 0
}
useSelf_skill Seven Wind {
lvl 7
sp > 50
onAction attack
whenStatusInactive Aspersio
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 10
disabled 1
}
useSelf_skill Ready Turn {
lvl 1
sp > 1
whenStatusInactive Ready Turn
disabled 0
}
useSelf_skill Ready Down {
lvl 1
sp > 1
whenStatusInactive Ready Down
disabled 0
}
useSelf_skill Ready Storm {
lvl 1
sp > 1
whenStatusInactive Ready Storm
disabled 1
}
useSelf_skill Ready Counter {
lvl 1
sp > 1
whenStatusInactive Ready Counter
disabled 0
}
Code:
Macro.txt
The Macros will see the console messages "You use <Kick> on yourself" and execute the following skills accordingly.
automacro kick_Turn {
console /You use Ready Turn on yourself/
call {
do ss 417
}
}
automacro kick_Down {
console /You use Ready Down on yourself/
call {
do ss 415
}
}
automacro kick_Storm {
console /You use Ready Storm on yourself/
call {
do ss 413
}
}
automacro kick_Counter {
console /You use Ready Counter on yourself/
call {
do ss 419
}
}
-------------------------------------
#Lv. 1: Seismic Weapon (Earth)
#Lv. 2: Lightning Loader (Wind)
#Lv. 3: Frost Weapon (Water)
#Lv. 4: Flame Weapon (Fire)
#Lv. 5: Ghost Weapon (Ghost)
#Lv. 6: Dark Weapon (Shadow)
#Lv. 7: Aspersio (Holy)
useSelf_skill Seven Wind {
lvl 7
sp > 50
onAction attack
whenStatusInactive Aspersio
inLockOnly 1
notWhileSitting 1
notInTown 1
}
useSelf_skill Ready Counter {
lvl 1
whenStatusInactive Ready Counter
}
attackComboSlot Counter {
lvl 7
sp > 2
dist 1.5
afterSkill Ready Counter
waitBeforeUse 0.1
}
useSelf_skill Ready Storm {
lvl 1
whenStatusInactive Ready Storm
}
attackComboSlot Storm Kick {
lvl 7
sp > 2
dist 1.5
afterSkill Ready Storm
waitBeforeUse 0.1
notWhileSitting 1
notInTown 1
}
useSelf_skill Run {
lvl 7
sp > 40
whenStatusInactive Spurt
notInTown 1
notWhileSitting 1
timeout 5
inLockOnly 1
notWhileSitting 1
notInTown 1
}
attackComboSlot Run {
lvl 7
afterSkill Run
waitBeforeUse 0.6
isSelfSkill 1
inLockOnly 1
}
-----------------------------------------
Just update your table pack (or remove "TK_JUMPKICK 2" from skillsarea.txt). It'll still spam that message a few times, but the kick will work.
Use something higher than 0.3s for your delay, not even a hockey goalie is that fast. Use one second. Here's my exact config, but with a longer delay:
useSelf_skill Ready Storm {
lvl 1
whenStatusInactive Ready Storm
}
attackComboSlot Storm Kick {
lvl 7
sp > 2
dist 1.5
afterSkill Ready Storm
isSelfSkill 0
waitBeforeUse 1
notWhileSitting 1
notInTown 1
}
Configuring Star Gladiator :
*You can only use the Sun Warm, Moon Warm, Star Warm if you used the skill feeling.
Code:
useSelf_skill Sun Warm {
lvl 3
hp
sp > 10
whenStatusActive
whenStatusInactive Sun Warm
whenFollowing
monsters
notMonsters
stopWhenHit 0
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 0
disabled 0
inInventory
manualAI 0
}
useSelf_skill Sun Comfort {
lvl 4
hp
sp > 10
whenStatusActive
whenStatusInactive Sun Comfort
whenFollowing
monsters
notMonsters
stopWhenHit 0
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 0
disabled 0
inInventory
manualAI 0
}
useSelf_skill Moon Comfort {
lvl 4
hp
sp > 10
whenStatusActive
whenStatusInactive Moon Comfort
whenFollowing
monsters
notMonsters
stopWhenHit 0
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 0
disabled 0
inInventory
manualAI 0
}
useSelf_skill Star Comfort {
lvl 4
hp
sp > 10
whenStatusActive
whenStatusInactive Star Comfort
whenFollowing
monsters
notMonsters
stopWhenHit 0
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 0
disabled 0
inInventory
manualAI 0
}
lvl 3
hp
sp > 10
whenStatusActive
whenStatusInactive Sun Warm
whenFollowing
monsters
notMonsters
stopWhenHit 0
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 0
disabled 0
inInventory
manualAI 0
}
useSelf_skill Sun Comfort {
lvl 4
hp
sp > 10
whenStatusActive
whenStatusInactive Sun Comfort
whenFollowing
monsters
notMonsters
stopWhenHit 0
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 0
disabled 0
inInventory
manualAI 0
}
useSelf_skill Moon Comfort {
lvl 4
hp
sp > 10
whenStatusActive
whenStatusInactive Moon Comfort
whenFollowing
monsters
notMonsters
stopWhenHit 0
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 0
disabled 0
inInventory
manualAI 0
}
useSelf_skill Star Comfort {
lvl 4
hp
sp > 10
whenStatusActive
whenStatusInactive Star Comfort
whenFollowing
monsters
notMonsters
stopWhenHit 0
inLockOnly 1
notWhileSitting 1
notInTown 1
timeout 0
disabled 0
inInventory
manualAI 0
}
doCommand macro Spurt {
disabled 0
sp > 10
inLockOnly 1
notWhileSitting 1
notInTown 1
notOnAction attack
whenStatusInactive Spurt
timeout 5
}
run_path 12
timeout # -> You need to set this high enough to let the bot enough time to walk and change position for checking again. It works perfect for me with 5 seconds.
run_path # -> This is a custom line, so don't ask if it really "exists" because it doesn't. This is only for the macro to know how many squares it needs to check before starting to run. For me, 11 squares are ok, but it depends on the lag in your server so I prefer to add an extra square. If you're lagless maybe it works with less squares.
Code:
macro Spurt {
do eval message T("Evaluating free path for Run\n")
[
$i = 0
$x = @arg ("$.pos", 1)
$y = @arg ("$.pos", 2)
do eval $::Macro::Data::varStack{look} = $::char->{look}{body} - 1;
]
:direction
if ($look = 6) goto northeast
if ($look = 5) goto east
if ($look = 4) goto southeast
if ($look = 3) goto south
if ($look = 2) goto southwest
if ($look = 1) goto west
if ($look = 0) goto northwest
[
$nx = $x
$ny = @eval ($y + $i)
]
goto check
:northwest
[
$nx = @eval ($x - $i)
$ny = @eval ($y + $i)
]
goto check
:west
[
$nx = @eval ($x - $i)
$ny = $y
]
goto check
:southwest
[
$nx = @eval ($x - $i)
$ny = @eval ($y - $i)
]
goto check
:south
[
$nx = $x
$ny = @eval ($y - $i)
]
goto check
:southeast
[
$nx = @eval ($x + $i)
$ny = @eval ($y - $i)
]
goto check
:east
[
$nx = @eval ($x + $i)
$ny = $y
]
goto check
:northeast
[
$nx = @eval ($x + $i)
$ny = @eval ($y + $i)
]
:check
[
do eval $::Macro::Data::varStack{walk} = $::field->isWalkable($nx, $ny) ? 1 : 0
do eval $::Macro::Data::varStack{char} = 0;foreach (@{$::playersList->getItems()}) { next if (($_->{pos_to}{x} != $nx) || ($_->{pos_to}{y} != $ny));$::Macro::Data::varStack{char} = 1; last;}
do eval $::Macro::Data::varStack{mon} = 0;foreach (@{$::monstersList->getItems()}) { next if (($_->{pos_to}{x} != $nx) || ($_->{pos_to}{y} != $ny));$::Macro::Data::varStack{mon} = 1; last;}
]
if (($walk == 0 || $char == 1) || ($mon == 1 || @npc ($nx $ny) > -1)) goto noskill
if ($i == @config (run_path)) goto skill
$i++
goto direction
:noskill
do eval message T("No aviable path for Run\n")
stop
:skill
do ss 411
do ss 411
}
do eval message T("Evaluating free path for Run\n")
[
$i = 0
$x = @arg ("$.pos", 1)
$y = @arg ("$.pos", 2)
do eval $::Macro::Data::varStack{look} = $::char->{look}{body} - 1;
]
:direction
if ($look = 6) goto northeast
if ($look = 5) goto east
if ($look = 4) goto southeast
if ($look = 3) goto south
if ($look = 2) goto southwest
if ($look = 1) goto west
if ($look = 0) goto northwest
[
$nx = $x
$ny = @eval ($y + $i)
]
goto check
:northwest
[
$nx = @eval ($x - $i)
$ny = @eval ($y + $i)
]
goto check
:west
[
$nx = @eval ($x - $i)
$ny = $y
]
goto check
:southwest
[
$nx = @eval ($x - $i)
$ny = @eval ($y - $i)
]
goto check
:south
[
$nx = $x
$ny = @eval ($y - $i)
]
goto check
:southeast
[
$nx = @eval ($x + $i)
$ny = @eval ($y - $i)
]
goto check
:east
[
$nx = @eval ($x + $i)
$ny = $y
]
goto check
:northeast
[
$nx = @eval ($x + $i)
$ny = @eval ($y + $i)
]
:check
[
do eval $::Macro::Data::varStack{walk} = $::field->isWalkable($nx, $ny) ? 1 : 0
do eval $::Macro::Data::varStack{char} = 0;foreach (@{$::playersList->getItems()}) { next if (($_->{pos_to}{x} != $nx) || ($_->{pos_to}{y} != $ny));$::Macro::Data::varStack{char} = 1; last;}
do eval $::Macro::Data::varStack{mon} = 0;foreach (@{$::monstersList->getItems()}) { next if (($_->{pos_to}{x} != $nx) || ($_->{pos_to}{y} != $ny));$::Macro::Data::varStack{mon} = 1; last;}
]
if (($walk == 0 || $char == 1) || ($mon == 1 || @npc ($nx $ny) > -1)) goto noskill
if ($i == @config (run_path)) goto skill
$i++
goto direction
:noskill
do eval message T("No aviable path for Run\n")
stop
:skill
do ss 411
do ss 411
}
This is the checking macro. You don't need to change or tweak anything, just keep the same name in the doCommand and the macro so it can be called correctly. The only problem is that if something triggers another macro, it will fail, but I don't know how to make it "exclusive 1" in macro, it only works for automacros. I could do all as an automacro but I think it's simpler to do with the doCommand, at least to change variables and all the stuff.
When I use this, it sometimes fails to work (but not too often) and I guess it's because it still walks a little or something gets in the way, and it takes too much time to execute. Anyways, if someone has a better way to do, feedback is highly appreciated. I hope this is useful for somebody.
------------------------------
attackSkillSlot Seven Wind {
lvl 7
isSelfSkill 1
monsters munak, bongun, skeleton soldier, archer skeleton
#...et al...
}
http://forums.openkore.com/viewtopic.php?f=6&t=29&start=30
ไม่มีความคิดเห็น:
แสดงความคิดเห็น