![]() |
|
|||||||
| King`s Bounty: Warriors of the North Next game in the award-winning King’s Bounty series |
![]() |
|
|
Thread Tools | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Oh, I see it. Thanks !
|
|
#2
|
|||
|
|||
|
Added at least partial fix for Fear. Let me know if you run across other units that are able to use their special abilities on units they shouldn't while feared.
|
|
#3
|
|||
|
|||
|
I installed this since then I get random crashes anyone else got this issue?
I read somewhere that it might be caused by Skalds but I am not sure if they meant the Skald class or the skald units. I just started playing a skald after finishing up with soothsayer so maybe its skald? |
|
#4
|
|||
|
|||
|
The Skalds used to cause a crash with the Last Hero spell, but that has been fixed in the official patch. The game is a bit unstable, however, and numerous people have reported random crashes. The "random" part making it quite difficult to troubleshoot.
|
|
#5
|
|||
|
|||
|
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 |
|
#6
|
|||
|
|||
|
Quote:
That might be possible if you actually state what your problem is. |
|
#7
|
|||
|
|||
|
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. |
|
#8
|
|||
|
|||
|
Light Knight Spell should apply to all units at level 3 according to its description but it still applies to only one unit.
I tried to read the code for it in spells.lua but I am not a programmer and couldn't find out how to change that. Could you please help me? I guess the same happens to Dark Knight Spell but I don't have it. |
|
#9
|
||||
|
||||
|
Quote:
@trubble they aren't asking us to make any bug fixes or track bugs, we're just doing it so we can help problems get recorded and the fixes are made so we can enjoy the game while we wait for official patches. |
|
#10
|
||||
|
||||
|
Hey there, Bhruic. I discovered the solution to Jarl's not displaying their attack log correctly.
Change: Code:
Attack.log(dmgts+dmgts1, "add_blog_fear_2", "target", blog_side_unit(cell, 0)) Code:
Attack.log(dmgts+dmgts1, "add_blog_fear_2", "targets", blog_side_unit(cell, 0)) |
![]() |
|
|