Страница 3 из 10

Добавлено: Чт июн 05, 2008 1:55 pm
DInvalid
Click писал(а):комминтим?
Код был проверен на 6317, если терны кидает сопартиец то атака не отменялась, если выходил из пати то появлялось стандартное сообщение о КС.
Вроде работает )

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

6317 (знаю, древняя).

Добавлено: Ср июн 11, 2008 9:36 am
Click
судя по misc.mp должен работать, но и если смотреть глубже, то по коду вроде как будет работать, если в конфиге не будет стоять условия на телепорты от дагами, хп и тп...

Добавлено: Ср июн 11, 2008 9:59 am
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)
Вроде бы так быть не должно, нэ?

Добавлено: Ср июн 11, 2008 10:18 am
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 вроде бы за другое отвечает, а не за ту багу которую ты описал

Добавлено: Ср июн 11, 2008 10:21 am
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

Добавлено: Ср июн 11, 2008 10:30 am
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 секунды:

типа мы идём бить моба, но по дороге встречаем кого то ближе, то переключаемся на него.

Добавлено: Ср июн 11, 2008 10:33 am
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 должна действовать если мы идем кого то атаковать и вдруг нас атакует другой моб.

Тогда где трабла?

Добавлено: Ср июн 11, 2008 10:43 am
Click
я тебе про телепорт то написал.... затести

Добавлено: Ср июн 11, 2008 11:03 am
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)
продолжаем игнорировать бьющих нас мобов и атаковать не агрессивных.

Добавлено: Ср июн 11, 2008 11:54 am
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 секунд:

натыкать проверочных сообщений, да посмотреть где затыкается :)

Добавлено: Ср июн 11, 2008 12:41 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 то условие совсем не выполняется?

Добавлено: Ср июн 11, 2008 1:49 pm
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)

оно вообще работает?

Добавлено: Чт июн 19, 2008 11:07 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} нет.
Хрень какая то.

Добавлено: Чт июн 19, 2008 11:19 pm
Click
давай твои идеи DInvalid