PDA

Просмотр полной версии : выбираем уровень скила в зависимости от хп моба


CaptainPetrov
09.02.2008, 02:27
Подскажите как сделать чтобы виз делал файр болт 10 лвл на моба и если нанесено повреждений меньше 6500, то делал файр болт 1 лвл на этого же моба. Я как понял это можно и без макроса сделать. Вот мой конфиг, в чём ошибка?
attackSkillSlot Fire Bolt {
lvl 10
dist 10
sp
maxCastTime 0.1
minCastTime 0
stopWhenHit 0
inLockOnly 0
notInTown 1
monsters Леший
}

attackSkillSlot Fire Bolt {
lvl 1
dist 10
sp
maxCastTime 0.1
minCastTime 0
stopWhenHit 0
inLockOnly 0
notInTown 1
target_deltaHp 1..6500
monsters Леший
}

4epT
09.02.2008, 13:47
Пропиши скил 1-го левела выше чем 10-го, чтоб он обрадатывался раньше.
target_deltaHp -6500..-1
величина всегда отрицательная!

CaptainPetrov
09.02.2008, 14:50
всё равно не добивает((
величину ставил отрицательную (вашу строку скопировал)

4epT
09.02.2008, 14:56
тогда нужно вообще удалить атаку 10-м левелом и мучить параметр target_deltaHp, пока не заработает..хотя говорят что она глючит :(

4epT
09.02.2008, 15:09
может попробовать:
target_deltaHp < -4000

CaptainPetrov, а ты вообще что пытаешься сделать? опиши по подробнее, может действительно, проще использовать maxUses?

CaptainPetrov
09.02.2008, 15:32
maxuses это я так понимаю делать тот же файр болт 10 лвл на того же моба несколько раз, верно? Но вот монстр Леший - не агрессивный и когда на него первый раз кастуешь он не атакует, а если с первого раза не убиваешь, то виз же не успевает скастовать файр болт 10 лвл леший бьет и заклинание прерывается, поэтому я хочу чтобы он виз делал хотя бы 1-2 лвл. Я пробовал также ставить Fire Ball вместо Fire Bolt 1лвл, потому что думал, что одинаковые скилы нельзя ставить - всё равно не помогло. Скорее всего ты прав target_deltaHp просто не работает

4epT
09.02.2008, 15:48
1 способ: попробуй то что написано в 25 сообщении
2 способ: в 10-й левл добавь условие "maxUses 1", и убери "target_deltaHp". У тебя получится что на 1 лешего он будет кастить 10-й левл 1 раз. потом будет колбасить первым левелом.

CaptainPetrov
09.02.2008, 16:31
Спасибо, черт! оказалось всё так просто(((( пипец

attackSkillSlot Fire Bolt {
lvl 10
dist 10
sp
maxCastTime 0.1
minCastTime 0
stopWhenHit 0
inLockOnly 0
notInTown 1
monsters Леший
maxUses 1
}

attackSkillSlot Fire Bolt {
lvl 2
dist 10
sp
maxCastTime 0.1
minCastTime 0
stopWhenHit 0
inLockOnly 0
notInTown 1
monsters Леший
}

4epT
09.02.2008, 17:53
ну это всё таки не то что мы хотели :(

4epT
09.02.2008, 20:39
а вот как осуществить то что мы хотим

нус, открываем файл Utils.pm и добавляем "-?", т.е. либо есть у нас минус, либо нету:

sub getRange {
my $param = shift;
return if (!defined $param);
# remove % from the first number here (i.e. hp 50%..60%) because it's easiest
if ($param =~ /(-?\d+(?:\.\d+)?)\%?\s*(?:-|\.\.)\s*(-?\d+(?:\.\d+)?)/) {
return ($1, $2, 1);
} elsif ($param =~ />\s*(-?\d+(?:\.\d+)?)/) {
return ($1, undef, 0);
} elsif ($param =~ />=\s*(-?\d+(?:\.\d+)?)/) {
return ($1, undef, 1);
} elsif ($param =~ /<\s*(-?\d+(?:\.\d+)?)/) {
return (undef, $1, 0);
} elsif ($param =~ /<=\s*(-?\d+(?:\.\d+)?)/) {
return (undef, $1, 1);
} elsif ($param =~/^(-?\d+(?:\.\d+)?)/) {
return ($1, $1, 1);
}
}

regexp мать его..

теперь у нас точно работают условия:

target_deltaHp -X
target_deltaHp -X..-Y
target_deltaHp -X--Y (тожесамое, что и предыдущее) кстате нафига 2 одинаковых?
target_deltaHp >-X
target_deltaHp >=-X
target_deltaHp <-X
target_deltaHp <=-X

в конфиге:
attackSkillSlot Double Strafe {
lvl 10
dist 15
target_deltaHp < -1000
}

получаем:
Attacking: Monster Geographer (0)
[100/ 92] You attack Monster Geographer (0) - Dmg: 68 (delay 54.5)
[100/ 92] You attack Monster Geographer (0) - Dmg: 86 (delay 54.5)
[100/ 92] You attack Monster Geographer (0) - Dmg: 36 (delay 54.5)
[100/ 92] You attack Monster Geographer (0) - Dmg: 108 (delay 54.5)
[100/ 92] You attack Monster Geographer (0) - Dmg: 108 (delay 54.5)
[100/ 92] You attack Monster Geographer (0) - Dmg: 94 (delay 54.5)
[100/ 92] You attack Monster Geographer (0) - Dmg: 50 (delay 54.5)
[100/ 93] You attack Monster Geographer (0) - Dmg: 114 (delay 54.5)
[100/ 93] You attack Monster Geographer (0) - Dmg: 54 (delay 54.5)
[100/ 93] You attack Monster Geographer (0) - Dmg: 52 (delay 54.5)
[100/ 93] You attack Monster Geographer (0) - Dmg: 124 (delay 54.5)
[100/ 93] You attack Monster Geographer (0) - Dmg: 74 (delay 54.5)
[100/ 93] You attack Monster Geographer (0) - Dmg: 54 (delay 54.5)
[100/ 92] You use Double Strafe (lvl 10) on monster Geographer (0) - Dmg: 638 (delay 54.5)
[100/ 92] You use Double Strafe (lvl 10) on monster Geographer (0) - Dmg: 638 (delay 54.5)
и т.д.

т.е. мы мочим гео простыми ударами, пока не отнимем у него 1000 ХП, а потом даблим

ЗЫ: урверен, что скоро это поправят в коре

Gans
09.02.2008, 20:49
4epT, большое спасибо!

AndreyLun
11.02.2008, 10:07
оооо клас, щас исправлю тоже.

spectre
21.03.2008, 11:19
У меня это сделано вот так:

attackSkillSlot Fire Bolt {
lvl 3
sp > 30
dist 10
target_deltaHp -8000..-5000
monsters Wood Goblin
}
attackSkillSlot Fire Bolt {
lvl 10
sp > 30
dist 10
monsters Wood Goblin
}

всё нормально работает