bugtraq:about - если вы нашли ошибку в OpenKore, то...

BugTraq: обнаруженные ошибки и обсуждение их устранения.

Модератор: 4epT

DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Click писал(а):комминтим?
Код был проверен на 6317, если терны кидает сопартиец то атака не отменялась, если выходил из пати то появлялось стандартное сообщение о КС.
Вроде работает )
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Вопрос: attackChangeTarget у нас работает?
а то в описании на на openkore.com его нет (или я плохо искал?),
бот при атаке игнорирует нападающих на него и атакует мобов, собирая в результате толпу.

6317 (знаю, древняя).
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

судя по misc.mp должен работать, но и если смотреть глубже, то по коду вроде как будет работать, если в конфиге не будет стоять условия на телепорты от дагами, хп и тп...
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Сильно урезанный кусок лога (лог во вложении) из которого видно что
мы атакуем Condor (1), Condor (0) атакует нас (ассист), и еще агрессивный Fabre (2) атакует. Но после того как умер Condor (1), мы не атакуем атакующих нас??? Condor (0) и Fabre (2), а почему то ломимся бить пенька.
mon_control.txt - стандартный.

Код: Выделить всё

attackAuto 2
attackAuto_party 1
attackAuto_onlyWhenSafe 0
attackAuto_followTarget 1
attackAuto_inLockOnly 1
attackDistance 1.5
attackDistanceAuto 0
attackMaxDistance 2.5
attackMaxRouteDistance 100
attackMaxRouteTime 4
attackMinPlayerDistance 2
attackMinPortalDistance 4
attackUseWeapon 1
attackNoGiveup 0
attackCanSnipe 0
attackCheckLOS 0
attackLooters 0
attackChangeTarget 1
aggressiveAntiKS 0

Код: Выделить всё

 Attacking: Monster Condor (1)
 [ 86/100] You attack Monster Condor (1) - Dmg: 37 (delay 61.6)
 [ 86/100] Monster Condor (1) attacks you - Dmg: 3 (delay 64.8)
 [ 86/100] Monster Condor (0) attacks you - Dmg: 5 (delay 64.8)
 Target died
 Attacking: Monster Willow (3)
 [ 72/100] Monster Fabre (2) attacks you - Dmg: 1 (delay 67.2)
 [ 72/100] Monster Condor (0) attacks you - Dmg: 5 (delay 45.4)
 [ 86/100] You attack Monster Willow (3) - Dmg: 22 (delay 61.6)
 Target died
 [ 71/100] Monster Condor (0) attacks you - Dmg: 5 (delay 45.4)
 [ 64/100] Monster Fabre (2) attacks you - Dmg: Miss! (delay 67.2)
 Attacking: Monster Roda frog (5)
 [ 64/100] Monster Condor (0) attacks you - Dmg: Miss!! (delay 45.4)
 [ 88/100] Monster Fabre (2) attacks you - Dmg: Miss! (delay 67.2)
 [ 84/100] You attack Monster Roda frog (5) - Dmg: 38 (delay 61.6)
 [ 79/100] Monster Roda frog (5) attacks you - Dmg: 4 (delay 81.6)
 Target died
 [ 76/100] Monster Condor (0) attacks you - Dmg: Miss! (delay 45.4)
 [ 75/100] Monster Fabre (2) attacks you - Dmg: 1 (delay 67.2)
 Calculating random route to: Training Ground(new_3-3): 118, 51
 Attacking: Monster Super Picky (6)
 [ 71/100] Monster Condor (0) attacks you - Dmg: 4 (delay 45.4)
 [ 66/100] Monster Fabre (2) attacks you - Dmg: 1 (delay 67.2)
 [ 77/100] You attack Monster Super Picky (6) - Dmg: 21 (delay 61.6)
 [ 73/100] Monster Super Picky (6) attacks you - Dmg: 1 (delay 28.8)
Вроде бы так быть не должно, нэ?
Вложения
atata.txt
(6.08 КБ) 159 скачиваний
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

Код: Выделить всё

teleportAuto {
	hp 0
	sp 0
	idle 0
	portal 0
	search 0
	minAggressives 0
	minAggressivesInLock 0
	onlyWhenSafe 0
	maxDmg 0
	maxDmgInLock 0
	deadly 0
	useSkill 3
	useChatCommand
	allPlayers 0
	atkCount 0
	atkMiss 0
	unstuck 0
	dropTarget 0
	dropTargetKS 0
	attackedWhenSitting 0
	totalDmg 0
	totalDmgInLock 0
	equip_leftAccessory
	equip_rightAccessory
	lostHomunculus
	lostTarget
	useItemForRespawn
}
тут то нули везде у тебя?

Добавлено спустя 3 минуты 38 секунд:

и attackChangeTarget вроде бы за другое отвечает, а не за ту багу которую ты описал
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Опа-на... а за что отвечает attackChangeTarget ?
Я ее что то в описании не могу найти.
Нет, не нули... но каким боком телепорты мешают выбирать моба, который нас атакует?
И давно это так стало?

Код: Выделить всё

teleportAuto_hp 1
teleportAuto_sp 0
teleportAuto_idle 0
teleportAuto_portal 0
teleportAuto_search 0
teleportAuto_minAggressives 5
teleportAuto_minAggressivesInLock 0
teleportAuto_onlyWhenSafe 0
teleportAuto_maxDmg 500
teleportAuto_maxDmgInLock 0
teleportAuto_deadly 1
teleportAuto_useSkill 3
teleportAuto_useChatCommand
teleportAuto_allPlayers 0
teleportAuto_atkCount 0
teleportAuto_atkMiss 10
teleportAuto_unstuck 0
teleportAuto_dropTarget 0
teleportAuto_dropTargetKS 0
teleportAuto_attackedWhenSitting 0
teleportAuto_totalDmg 0
teleportAuto_totalDmgInLock 0
teleportAuto_equip_leftAccessory
teleportAuto_equip_rightAccessory
teleportAuto_lostHomunculus
teleportAuto_lostTarget
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

Click писал(а):судя по misc.mp должен работать, но и если смотреть глубже, то по коду вроде как будет работать, если в конфиге не будет стоять условия на телепорты от дагами, хп и тп...
:evil:

Код: Выделить всё

} elsif ($config{attackChangeTarget} && ((AI::action eq "route" && AI::action(1) eq "attack") || (AI::action eq "move" && AI::action(2) eq "attack"))
				   && AI::args->{attackID} && AI::args()->{attackID} ne $ID1) {
					my $attackTarget = Actor::get(AI::args->{attackID});
					my $attackSeq = (AI::action eq "route") ? AI::args(1) : AI::args(2);
					if (!$attackTarget->{dmgToYou} && !$attackTarget->{dmgFromYou} && distance($monster->{pos_to}, calcPosition($char)) <= $attackSeq->{attackMethod}{distance}) {
						my $ignore = 0;
						# Don't attack ignored monsters
						if ((my $control = mon_control($monster->{name},$monster->{nameID}))) {
							$ignore = 1 if ( ($control->{attack_auto} == -1)
								|| ($control->{attack_lvl} ne "" && $control->{attack_lvl} > $char->{lv})
								|| ($control->{attack_jlvl} ne "" && $control->{attack_jlvl} > $char->{lv_job})
								|| ($control->{attack_hp}  ne "" && $control->{attack_hp} > $char->{hp})
								|| ($control->{attack_sp}  ne "" && $control->{attack_sp} > $char->{sp})
								|| ($control->{attack_auto} == 3 && ($monster->{dmgToYou} || $monster->{missedYou} || $monster->{dmgFromYou}))
								);
						}
						if (!$ignore) {
							# Change target to closer aggressive monster
							message TF("Change target to aggressive : %s (%s)\n", $monster->name, $monster->{binID});
							stopAttack();
							AI::dequeue;
							AI::dequeue if (AI::action eq "route");
							AI::dequeue;
							attack($ID1);
						}
					}
особо не понял, но как то вроде за смену цели

Добавлено спустя 54 секунды:

с каких пор не знаю, просто судя по коду, сам не проверял

Добавлено спустя 3 минуты 53 секунды:

типа мы идём бить моба, но по дороге встречаем кого то ближе, то переключаемся на него.
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Во, нашел описание http://www.openkore.com/wiki/index.php/News
New config options

* attackChangeTarget <boolean flag>

Automatically change target to an aggressive monster if the target monster is not yet reached or damaged.
Ну да, смена цели на моба который нас бьет.
Если нас кто то бьет, мы должны ответить, а не искать новую цель.
Тем более если нас бьет моб он заведомо ближе чем другой.
В общем хз что получается - смена цели не работает, он не атакует агрессивного моба бьющего нас а ищет более другого...

ПС
Хотя да, он вообще не должен был начинать атаковать левого моба а сначала убить тех кто его атакует.

attackChangeTarget должна действовать если мы идем кого то атаковать и вдруг нас атакует другой моб.

Тогда где трабла?
Последний раз редактировалось DInvalid Ср июн 11, 2008 10:44 am, всего редактировалось 1 раз.
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

я тебе про телепорт то написал.... затести
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Код: Выделить всё

teleportAuto_hp 0
teleportAuto_sp 0
teleportAuto_idle 0
teleportAuto_portal 0
teleportAuto_search 0
teleportAuto_minAggressives 0
teleportAuto_minAggressivesInLock 0
teleportAuto_onlyWhenSafe 0
teleportAuto_maxDmg 0
teleportAuto_maxDmgInLock 0
teleportAuto_deadly 0
teleportAuto_useSkill 3
teleportAuto_useChatCommand
teleportAuto_allPlayers 0
teleportAuto_atkCount 0
teleportAuto_atkMiss 0
teleportAuto_unstuck 0
teleportAuto_dropTarget 0
teleportAuto_dropTargetKS 0
teleportAuto_attackedWhenSitting 0
teleportAuto_totalDmg 0
teleportAuto_totalDmgInLock 0
teleportAuto_equip_leftAccessory
teleportAuto_equip_rightAccessory
teleportAuto_lostHomunculus
teleportAuto_lostTarget
С таким блоком поведение не изменилось:

Код: Выделить всё

[Jun 11 11:58:39 2008.64] Attacking: Monster Fabre (13)
[Jun 11 11:58:40 2008.13] [ 57/100] Monster Condor (4) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:40 2008.19] Monster Condor (6) is casting Wind Attack on you (time 500ms)
[Jun 11 11:58:40 2008.57] [ 57/100] Monster Condor (3) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:40 2008.63] [ 57/100] Monster Condor (5) attacks you - Dmg: 6 (delay 64.8)
[Jun 11 11:58:40 2008.69] [ 57/100] Monster Condor (6) uses Wind Attack (lvl 3) on you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:40 2008.94] [ 57/100] Monster Condor (6) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:41 2008.26] [ 57/100] Monster Condor (4) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:41 2008.76] [ 55/100] Monster Condor (3) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:41 2008.82] [ 55/100] Monster Condor (5) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:42 2008.13] [ 55/100] Monster Condor (6) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:42 2008.38] [ 55/100] Monster Condor (4) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:42 2008.88] [ 55/100] Monster Condor (3) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:42 2008.95] [ 55/100] Monster Condor (5) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:43 2008.13] [ 55/100] You attack Monster Fabre (13) - Dmg: 32 (delay 33)
[Jun 11 11:58:43 2008.32] [ 55/100] Monster Condor (6) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:43 2008.45] [ 55/100] Monster Fabre (13) attacks you - Dmg: Miss! (delay 67.2)
[Jun 11 11:58:43 2008.57] Monster Condor (4) is casting Adrenaline Rush on itself (time 1500ms)
[Jun 11 11:58:43 2008.82] [ 55/100] You attack Monster Fabre (13) - Dmg: 28 (delay 33)
[Jun 11 11:58:44 2008.12] [ 55/100] Monster Fabre (1) attacks you - Dmg: Miss! (delay 67.2)
[Jun 11 11:58:44 2008.72] [ 55/100] Monster Condor (3) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:44 2008.13] [ 55/100] Monster Condor (5) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:44 2008.38] [ 55/100] Monster Condor (6) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:44 2008.44] [ 55/100] You attack Monster Fabre (13) - Dmg: 39 (delay 33)
[Jun 11 11:58:44 2008.76] Exp gained: 3/2 (0.16%/0.38%)
[Jun 11 11:58:44 2008.77] Target died
[Jun 11 11:58:45 2008.74] Monster Condor (4) uses Adrenaline Rush on itself : Lv 1
[Jun 11 11:58:45 2008.19] [ 56/100] Monster Condor (3) attacks you - Dmg: Miss! (delay 64.8)
[Jun 11 11:58:45 2008.20] Monster Condor (5) is casting Wind Attack on you (time 500ms)
[Jun 11 11:58:45 2008.27] Attacking: Monster Lunatic (8)
[Jun 11 11:58:45 2008.50] [ 56/100] Monster Condor (4) attacks you - Dmg: Miss! (delay 45.3)
[Jun 11 11:58:45 2008.57] [ 56/100] Monster Condor (6) attacks you - Dmg: 6 (delay 64.8)
[Jun 11 11:58:45 2008.69] [ 56/100] Monster Fabre (1) attacks you - Dmg: Miss! (delay 67.2)
[Jun 11 11:58:45 2008.70] [ 56/100] Monster Condor (5) uses Wind Attack (lvl 3) on you - Dmg: Miss! (delay 64.8)
продолжаем игнорировать бьющих нас мобов и атаковать не агрессивных.
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

эммм... а вот в этом месте ничего не напутано

Код: Выделить всё

if ((my $control = mon_control($monster->{name},$monster->{nameID}))) {
							$ignore = 1 if ( ($control->{attack_auto} == -1)
								|| ($control->{attack_lvl} ne "" && $control->{attack_lvl} > $char->{lv})
								|| ($control->{attack_jlvl} ne "" && $control->{attack_jlvl} > $char->{lv_job})
								|| ($control->{attack_hp}  ne "" && $control->{attack_hp} > $char->{hp})
								|| ($control->{attack_sp}  ne "" && $control->{attack_sp} > $char->{sp})
								|| ($control->{attack_auto} == 3 && ($monster->{dmgToYou} || $monster->{missedYou} || $monster->{dmgFromYou}))
								);
						}
может так?

Код: Выделить всё

- 							$ignore = 1 if ( ($control->{attack_auto} == -1)
+ 							if ( ($control->{attack_auto} == -1)
......
- );
+ ){$ignore = 1};
или я туплю?

Добавлено спустя 31 минуту 36 секунд:

натыкать проверочных сообщений, да посмотреть где затыкается :)
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Код: Выделить всё

				} elsif ($config{attackChangeTarget}) {
					warning TF("Check change Target %s %s %s\n",AI::action,AI::action(1),AI::action(2));

				   if ($config{attackChangeTarget} && ((AI::action eq "route" && AI::action(1) eq "attack") || (AI::action eq "move" && AI::action(2) eq "attack"))) {
					warning TF("Check change Target %d %d \n",AI::args->{attackID},$ID1);					 
				   if (AI::args->{attackID} && AI::args()->{attackID} ne $ID1) {
Затыкается после if (AI::args->{attackID} && AI::args()->{attackID} ne $ID1) {

При этом в выводе видно:

Код: Выделить всё

[Jun 11 13:34:41 2008.74] [attacked] [100/100] Monster Wolf (2) attacks you - Dmg: 1 (delay 50.4)
[Jun 11 13:34:42 2008.30] [console] Attacking: Monster Roda frog (4)
[Jun 11 13:34:42 2008.80] [console] Check change Target route attack 
[Jun 11 13:34:42 2008.81] [console] Check change Target 0 0 
Что за AI::args->{attackID} и если оно равно 0 то условие совсем не выполняется?
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

ну у каждого моба вокруг нас есть свой порядковый номер, эти номера и так в консоле видно (0)
тоесть моб с номером 0 это тот которого мы увидили первым.
а вот чем отличается AI::args->{attackID} от этого AI::args()->{attackID}
?
и что истинно $ID1 ))

AI::args->{attackID} - это я понимаю проверка на то что вообще есть кого бить
AI::args()->{attackID} - это кого идём бить, но не факт что я тут прав

поэтому что-то из AI::args->{attackID}, AI::args()->{attackID}, $ID1 должно принимать значения 2 и 4 из Wolf (2) и Roda frog (4)

оно вообще работает?
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Click писал(а):оно вообще работает?
Мне очень смешно. этого ключа в хэше args вообше нет. ну никогда нет )
$args->{attackID} == undef всегда.


Код: Выделить всё

[Jun 19 23:21:34 2008.92] Attacking: Monster Lunatic (0)
[Jun 19 23:21:35 2008.41] ------ AI Sequence ---------------------
[Jun 19 23:21:35 2008.42] 0: route 

[Jun 19 23:21:35 2008.42] 1: attack {monsterPos=>{y=>'141',x=>'59'},ID=>'В_В+В_.',missedFromYou_last=>'',dmgFromYou_last=>'',
move_start=>'1213903294.98192',pos_to=>{y=>'141',x=>'59'},unstuck=>{timeout=>'2.75'},lastSkillTime=>'',
dmgToYou_last=>'',attackMethod=>{maxDistance=>'2.5',distance=>'1.5',type=>'weapon'},pos=>{y=>'143',x=>'70'},
missedYou_last=>'',ai_attack_giveup=>{timeout=>'12',time=>'1213903294'}}

[Jun 19 23:21:35 2008.42] 2: route 

[Jun 19 23:21:35 2008.42] ------ AI Sequences --------------------
[Jun 19 23:21:39 2008.64] [100/100] You attack Monster Lunatic (0) - Dmg: 14 (delay 26.2)
[Jun 19 23:21:39 2008.95] ------ AI Sequence ---------------------
[Jun 19 23:21:39 2008.95] 0: attack {monsterPos=>{y=>'132',x=>'65'},ID=>'В_В+В_.',missedFromYou_last=>'',dmgFromYou_last=>'14',move_start=>'',
pos_to=>{y=>'141',x=>'59'},unstuck=>{time=>'1213903299.57577',timeout=>'2.75'},lastSkillTime=>'',dmgToYou_last=>'',
attackMethod=>{maxDistance=>'2.5',distance=>'1.5',type=>'weapon'},pos=>{y=>'143',x=>'70'},missedYou_last=>'',firstAttack=>'1',
ai_attack_giveup=>{timeout=>'12',time=>'1213903299.64364'}}

[Jun 19 23:21:39 2008.95] 1: route 

[Jun 19 23:21:39 2008.95] ------ AI Sequences --------------------
{ID} есть а {attackID} нет.
Хрень какая то.
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

давай твои идеи DInvalid
Ответить