![]() |
#151
|
|||
|
|||
![]()
to install this update i just do decompressed these files in my folder
\steam\SteamApps\common\King's Bounty - Warriors of the North\sessions\addon please help me |
#152
|
|||
|
|||
![]() Quote:
That might be possible if you actually state what your problem is. |
#153
|
|||
|
|||
![]()
This is (hopefully) a fix for the Highterant egg-laying issue. As it's a rather large piece of code (I wrote a specific AI routine to handle it - go me!
![]() In arena.lua, line 2718: Code:
local maxc, maxtarget if mover.name == "highterrant" then local maxdist = 0 for i = 0, ecells.n do local c = ecells[i] if c == nil then -- проверяем также клетку, где мы стоим - вдруг идти никуда и не нужно - и здесь хорошо c = mover c.distance = 0 end if c.distance < mover.ap then local near_enemy = false for dir = 0, 5 do local c2 = Attack.cell_adjacent(c, dir) if Attack.act_enemy(c2) then near_enemy = true break end end if not near_enemy then local dist = 0 for k = 0, ecells.n do local c2 = ecells[k] if c2 == nil then -- проверяем также клетку где стоим, т.к. с нее можем уйти c2 = mover end if Attack.cell_dist(c, c2) == 1 then local mindist = 1e8 for j, act in ipairs(actors) do if Attack.act_enemy(act) then dist = Attack.cell_dist(c2, act) if dist < mindist then mindist = dist end end end if mindist > maxdist then maxdist = mindist maxc = c maxtarget = c2 end end end end end end else if offence and not mover.thrower and (mover.par('dismove') == 0) and (mover.ap > 1) then -- при наступательной тактике не-стрелки способные перемещаться бегут к вражеским лучникам -- здесь могут оказаться : demon, dryad, highterrant, thorn_warrior local mindist = 1e8 local nneed_corpse = true if mover.name == "thorn" or mover.name == "thorn_warrior" then -- тернии призывают на гексы с трупами nneed_corpse = false end for i = 0, ecells.n do local c = ecells[i] if c == nil then -- проверяем также клетку, где мы стоим - вдруг идти никуда и не нужно - и здесь хорошо c = mover c.distance = 0 end if c.distance < mover.ap then local dist = 0 for j, act in ipairs(actors) do if Attack.act_enemy(act) then if act.thrower then dist = dist + Attack.cell_dist(c, act)*0.5 else dist = dist + Attack.cell_dist(c, act) end end end if dist < mindist then for j = 0, ecells.n do local c2 = ecells[j] if c2 == nil then -- проверяем также клетку где стоим, т.к. с нее можем уйти c2 = mover end if Attack.cell_dist(c, c2) == 1 then if nneed_corpse or Attack.cell_has_ally_corpse(c2) or Attack.cell_has_enemy_corpse(c2) then mindist = dist maxc = c break end end end end end end if maxc ~= nil then local mindist2 = 1e8 for i = 0, ecells.n do local c2 = ecells[i] if c2 == nil then -- проверяем также клетку где стоим, т.к. с нее можем уйти c2 = mover end if Attack.cell_dist(maxc, c2) == 1 then if nneed_corpse or Attack.cell_has_ally_corpse(c2) or Attack.cell_has_enemy_corpse(c2) then local dist2 = 0 for j, act in ipairs(enemies) do -- как далеко до врагов if act.thrower then dist2 = dist2 + Attack.cell_dist(c2, act)*0.5 else dist2 = dist2 + Attack.cell_dist(c2, act) end end if dist2 < mindist2 then mindist2 = dist2 maxtarget = c2 end end end end end end if maxc == nil then -- здесь гарантированно окажутся : chosha, demonologist, druid, ingeneer, kingthorn, thorn local mindist2 = 1e8 for i = 1, atk.cells.n do local c2 = atk.cells[i] local dist2 = 0 for j, act in ipairs(enemies) do -- как далеко до врагов if act.thrower then dist2 = dist2 + Attack.cell_dist(c2, act)*0.5 else dist2 = dist2 + Attack.cell_dist(c2, act) end end if dist2 < mindist2 then mindist2 = dist2 maxtarget = c2 end end end end Last edited by Bhruic; 11-07-2012 at 05:09 PM. |
#154
|
|||
|
|||
![]()
Added fixes for warning popups occurring under AI control (yours or the enemies).
|
#155
|
||||
|
||||
![]()
That's neat. Would it for example fix the popup on the skald trying to use an ability with no target?
|
#156
|
|||
|
|||
![]()
Yup, and same with the Royal Griffins summoning (or more precisely not being able to summon) the Heavenly Guard.
|
#157
|
||||
|
||||
![]()
Okay, nice, I will update that part of the bug thread once I'm done editing my own file.
n00b question - sometimes that line is commented out. That means it's not actually doing the popup so I don't need to put in the code to block it, right? |
#158
|
|||
|
|||
![]()
If it's commented out, no, you don't have to bother with it (it's not being used anyway).
|
#159
|
|||
|
|||
![]()
Added fix for the Blizzard spell.
|
#160
|
||||
|
||||
![]()
Cool, I will add the bug - and the fix - to the thread. I am not sure if fireball and/or fire rain are supposed to inflict burning, but if they do they might be worth a look. I don't have them yet so I can't read the descriptions.
|
![]() |
|
|