游戏精英
 
- 贡献度
- 651
- 金元
- 39069
- 积分
- 6511
- 精华
- 0
- 注册时间
- 2008-11-12
|
本帖最后由 silasa 于 2012-12-4 20:28 编辑
如果觉得有用的话,请感谢贴吧的Daemonnia大大吧,我只是传播一下。
汗一个,忘了说,以下这些文件都在\sessions\addon\ses.kfs里,这个ses.kfs是个压缩包,可以用winrar打开,下面说的这些文件都在里面,把需要修改的文件拉出来,修改完了再拉进去就可以了。
以下内容均引自Daemonnia(虚拟光驱)大大的帖子《小小的bug修正,有需要可以看一下》,自己加了一些兵种技能等的翻译,方便大家对照中文版
1.witch hunter(巫师猎人)自己加buff的技能错误
错误文件:unit_special_attacks.lua
tab_spells.prob = math.min(0, math.ceil(tab_spells.prob))--居然直接取0,汗
改
tab_spells.prob = math.max(0, math.ceil(tab_spells.prob))
2.Diplomacy技能"外交"
错误文件:skills.lua
local can_join = math.floor(hero_lead/Logic.cp_leadship(atom)) -count
--这里count是部队数目,又是一个手误
改
local can_join = math.floor(hero_lead/Logic.cp_leadship(atom)) - hero[atom]
--加入数量=该兵种可以雇佣的最大数量-该兵种英雄目前拥有的数量
3.魔法last hero(最后的英雄)
错误文件:magic_last_hero_sign.atom和magic_last_hero_damage.atom两个动画文件
file=magic_last_hero_sign
file=magic_last_hero_damage
--无语了,制作者竟然忘了把这两个动画的音效加进去,文件引用了不存在的音效
改
直接删掉或修改引用的音效
4.大法师的魔法盾Magic Shield
错误文件:unit_special_attacks.lua
if Attack.act_is_spell(attacker, "special_magic_shield") then
Attack.act_posthitmaster(attacker, "post_spell_slave_magic_shield", 0)
--文本编写人员的低级错误,重写技能竟然把之前正确的写错了
改
if Attack.act_is_spell(receiver, "special_magic_shield") then
Attack.act_posthitmaster(receiver, "post_spell_slave_magic_shield", 0)
5.邪恶之书Book of Evil
错误文件:spells_power.lua
local bonus = math.floor(100*(creator_power + int_bonus)*int_bonus)
--又是手误,居然把道具加成写成知识加成了,难道编写者眼花看错了?
改
local bonus = math.floor(100*(creator_power + item_bonus)*int_bonus)
PS:这就是邪恶之书无敌的原因,我个人觉得还是不要改了吧,留个逆天的存在好翻盘
6.两首歌的错误
Song of Alfheim(拉塞尔法赫姆之歌)
游戏描述为:给友军加buff,给敌军加debuff
实际效果为:给随机队伍加随机状态,不分敌我和正负状态
个人感觉是翻译者翻译错,不然要改一大片文字,那样的话也错太多了吧
不过我还是按描述的改过来了,跟那网站改的稍微有点不同
后面的帖子里Daemonnia大大把修改好的代码发上来了,我贴在这里吧:(注:--后面都是说明文字,乱码无需理会)
Song of Alfheim文件addon_arena.lua
函数名
visa_alfheim_wild_magic_attack
原文
local tab_spell_select = {
-- õîðîøèå çàêëû
{s = "spell_dispell", nf = "magic_immunitet,pawn,boss"},
{s = "spell_haste", nf = "magic_immunitet,pawn,boss"},
{s = "spell_bless", nf = "undead,magic_immunitet,pawn,boss"},
{s = "spell_divine_armor", nf = "undead,magic_immunitet,pawn,boss"},
{s = "spell_reaction", nf = "magic_immunitet,pawn,boss"},
{s = "spell_gifts", nf = "magic_immunitet,pawn,boss"},
-- ïëîõèå çàêëû
{s = "spell_defenseless", nf = "magic_immunitet,pawn,boss"},
{s = "spell_slow", nf = "magic_immunitet,pawn,boss"},
{s = "spell_magic_bondage", nf = "mind_immunitet,magic_immunitet,pawn,boss"},
{s = "spell_pygmy", nf = "magic_immunitet,pawn,boss"},
{s = "spell_scare", nf = "magic_immunitet,mind_immunitet,undead,pawn,boss"},
{s = "spell_weakness", nf = "undead,golem,plant,magic_immunitet,pawn,boss"},
{s = "spell_crue_fate", nf = "magic_immunitet,pawn,boss"}--[[,
{s = "spell_ram", nf = "magic_immunitet,pawn,boss,mech"}]]
}
local cast = {} local spell_count = table.getn(tab_spell_select)
local acnt = Attack.act_count()
local total_prob = 0
for i = 1, spell_count do
local spell = (tab_spell_select).s
local nfeatures = (tab_spell_select).nf
local tab_spell_targets = {}
for j = 0, acnt-1 do
if not Attack.act_feature(j, nfeatures) and Attack.act_takesdmg(j) then
table.insert(tab_spell_targets, j) -- âûáîð áàçîâûõ öåëåé
end
end
if table.getn(tab_spell_targets) > 0 then -- åñòü áàçîâûå öåëè
local spell_lvl = Game.Random (1, 3) -- óðîâåíü çàêëà, êîòîðûé áóäåì þçàòü
local applicable = Attack.build_spellattack(spell, spell_lvl).applicable
for i, t in ipairs (tab_spell_targets) do
if applicable(t) then -- çàêë ïðèìåíèì íà ýòó öåëü
local prob = 10 total_prob = total_prob + prob
table.insert(cast, {spell = spell, level = spell_lvl, target = t, prob = prob})
end
end
end
end
改成
local tab_spell_positive_select = {
{s = "spellangel_avenger", nf = "magic_immunitet,pawn,boss"},
{s = "spell_fire_breath", nf = "undead,magic_immunitet,pawn,boss"},
{s = "spell_dispell", nf = "magic_immunitet,pawn,boss"},
{s = "spell_bless", nf = "undead,magic_immunitet,pawn,boss"},
{s = "spell_divine_armor", nf = "undead,magic_immunitet,pawn,boss"},
{s = "spell_reaction", nf = "magic_immunitet,pawn,boss"},
{s = "spell_gifts", nf = "magic_immunitet,pawn,boss"}
} --分为正面魔法表
local tab_spell_negative_select = {
{s = "spell_defenseless", nf = "magic_immunitet,pawn,boss"},
{s = "spell_slow", nf = "magic_immunitet,pawn,boss"},
{s = "spell_magic_bondage", nf = "mind_immunitet,magic_immunitet,pawn,boss"},
{s = "spell_pygmy", nf = "magic_immunitet,pawn,boss"},
{s = "spell_scare", nf = "magic_immunitet,mind_immunitet,undead,pawn,boss"},
{s = "spell_weakness", nf = "undead,golem,plant,magic_immunitet,pawn,boss"},
{s = "spell_crue_fate", nf = "magic_immunitet,pawn,boss"},
{s = "spell_haste", nf = "magic_immunitet,pawn,boss"}--[[, PS:我估计这里是Daemonnia大大弄错了,haste是正面魔法,应该放到上面去,若有人象我一样自己动手改的话,就不要动这段原本的位置吧
{s = "spell_ram", nf = "magic_immunitet,pawn,boss,mech"}]]
} --负面魔法表
local cast = {}
local acnt = Attack.act_count()
local total_prob = 0
local buff_count = table.getn(tab_spell_positive_select)
local debuff_count = table.getn(tab_spell_negative_select)
for i = 1, buff_count do
local spell = (tab_spell_positive_select).s
local nfeatures = (tab_spell_positive_select).nf
local tab_spell_targets = {}
for j = 0, acnt-1 do
if not Attack.act_feature(j, nfeatures) and Attack.act_takesdmg(j) and (Attack.act_belligerent(j)==1 or Attack.act_belligerent(j)==2) then
table.insert(tab_spell_targets, j)
end
end --正面魔法作用目标的表中只有友军
if table.getn(tab_spell_targets) > 0 then
local spell_lvl = Game.Random (1, 3)
local applicable = Attack.build_spellattack(spell, spell_lvl).applicable
for i, t in ipairs (tab_spell_targets) do
if applicable(t) then
local prob = 10
total_prob = total_prob + prob
table.insert(cast, {spell = spell, level = spell_lvl, target = t, prob = prob})
end
end
end
end
for i = 1, debuff_count do
local spell = (tab_spell_negative_select).s
local nfeatures = (tab_spell_negative_select).nf
local tab_spell_targets = {}
for j = 0, acnt-1 do
if not Attack.act_feature(j, nfeatures) and Attack.act_takesdmg(j) and Attack.act_belligerent(j)>2 then
table.insert(tab_spell_targets, j)
end
end --负面魔法作用目标的表中只有敌军
if table.getn(tab_spell_targets) > 0 then
local spell_lvl = Game.Random (1, 3)
local applicable = Attack.build_spellattack(spell, spell_lvl).applicable
for i, t in ipairs (tab_spell_targets) do
if applicable(t) then
local prob = 10
total_prob = total_prob + prob
table.insert(cast, {spell = spell, level = spell_lvl, target = t, prob = prob})
end
end
end
end
Song of Svartalfaheim(瓦特阿尔海姆之歌)
错误文件:visa.lua
local bonus, penalty = pwr_visa_svartalfheim()
--粗心大意导致的错误,pwr_visa_svartalfheim这个函数返回3个值,这里只赋2个值,变成了bonus=gold,penalty=bonus的错误
改
local gold, bonus, penalty = pwr_visa_svartalfheim()
7.冰龙ice dragon
错误文件:unit_features_ondamage.lua
Attack.log(dmgts+dmgts1, "add_blog_ice_dragon_death_1", "name"," "..blog_side_unit(0), "special", mana_count)
Attack.log(dmgts+dmgts1, "add_blog_ice_dragon_death_2", "name"," "..blog_side_unit(0), "special", mana_count)
--额,函数里根本没有mana_count这个代码,估计又手误了,难道他们写完不会检查一下的么
改
Attack.log(dmgts+dmgts1, "add_blog_ice_dragon_death_1", "name"," "..blog_side_unit(0), "special", manaval)
Attack.log(dmgts+dmgts1, "add_blog_ice_dragon_death_2", "name"," "..blog_side_unit(0), "special", manaval)
8.意志系技能sense weakness(感知弱点)
错误文件:arena.lua
if kritProbRnd < kritProb then
--这个我也觉察到了,这个技能即使不开启也有效果,手误么
改
if kritProbRnd >= kritProb then
还有
if krit ~= 0 then
【if receiver_human then
kritProb = kritProb - skill_power("weakness_lore", 2)
end】
local kritProbRnd = Game.CurLocRand(100)
把【】删了
9.魔法狂怒技的暴击问题
错误文件:arena.lua
end
【else
if iskrit then
sdmg = -sdmg * krit
if receiver_human then
item_bonus_on_krit(attacker)
end
end】
end
-- 屿屙? 锑痤溴疣
if attacker_human and killed>0 and 1000==10 then
插入【】
10.力量系技能Shield of Rage(狂怒之盾)
错误文件:addon_arena.lua
if (rage_shield_i < Game.Random(1, 100)) then
--这个错的真不科学,本来是随机数在技能起效范围内,竟然变成大于范围,估计是手误写反了
if (rage_shield_i >= Game.Random(1, 100)) then
11.几个冰系魔法
占卜者的冰风暴:冰冻几率30%,伤害倍数为1,但对周围目标没有效果
文件unit_special_attack.lua(special_ice_storm_attack)
for i = 0, ccnt-1 do
local cell = Attack.cell_get(i)
if (Attack.cell_dist(target, cell) == 1) then
Attack.atk_set_damage(typedmg, dmg_min, dmg_max)
common_cell_apply_damage(cell, dmgts+dmgts1)
if (freeze >= Game.CurLocRand(1, 100)) then
effect_freeze_attack(target, dmgts+dmgts1+1, duration, 0)
end
end
end
改为
for i = 0, ccnt-1 do
local cell = Attack.cell_get(i)
if (Attack.cell_dist(target, cell) == 1) then
Attack.atk_set_damage(typedmg, dmg_min, dmg_max)
common_cell_apply_damage(cell, dmgts+dmgts1)
if (freeze >= Game.CurLocRand(1, 100)) then
effect_freeze_attack(cell, dmgts+dmgts1+1, duration, 0)
end
end
end
几个冰系魔法
热能焦点: 冰冻概率为(15%×魔法等级+英雄知识)÷2,伤害倍数为1,只对周围目标有效,没问题
冰蟒: 冰冻概率为20%×魔法等级+英雄知识%,伤害倍数为1,只对中心目标有效,有bug,编写者手误把中心冰冻和周围流血的概率参数搞混
文件spell_power.lua(pwr_ice_serpent)
if par ~= nil and string.find(par, "peri") then
min_dmg, max_dmg = text_range_dec(Logic.obj_par("spell_ice_serpent", "peri_damage"))
power = Logic.obj_par("spell_ice_serpent", "freeze")
item_bonus = (hero_item_count2("sp_spell_attack", "count")+hero_item_count2("sp_spell_glacial", "count"))/100
else
min_dmg, max_dmg = text_range_dec(Logic.obj_par("spell_ice_serpent", "damage"))
power = Logic.obj_par("spell_ice_serpent", "bleed")
item_bonus = (hero_item_count2("sp_spell_attack", "count"))/100
end
改为
if par ~= nil and string.find(par, "peri") then
min_dmg, max_dmg = text_range_dec(Logic.obj_par("spell_ice_serpent", "peri_damage"))
power = Logic.obj_par("spell_ice_serpent", "bleed")
item_bonus = (hero_item_count2("sp_spell_attack", "count"))/100
else
min_dmg, max_dmg = text_range_dec(Logic.obj_par("spell_ice_serpent", "damage"))
power = Logic.obj_par("spell_ice_serpent", "freeze")
item_bonus = (hero_item_count2("sp_spell_attack", "count")+hero_item_count2("sp_spell_glacial", "count"))/100
end
把红字换成亮蓝字
暴风雪: 冰冻概率为20%×魔法等级+英雄知识%,伤害倍数为1,只对中心目标有效,有bug,编写者手误写错代码了
文件spell.lua(spell_blizzard_attack)
if (freeze >= Game.CurLocRand(1, 100)) then
effect_freeze_attack(cell_found, t_shift, 3, nil, 1)
end
改为
if (freeze >= Game.CurLocRand(1, 100)) then
effect_freeze_attack(cell, dmgts, 3, nil, 1)
end
Icy Rage技能其实只有小部分怒气技能能附加冰冻,看了一下应该没多大问题(我玩英文版的时候回旋斩,冰球,北地之王等也没问题),但是怒气技能比较复杂还不能排除
(12月2日更新)
12.热能聚焦(Heat Focus):
错误文件:ses.kfs→magic_temper_diff.atom,引用不存在音效,删掉或换掉
1 {
sound {
animation=default
frame=0.01/2.00999999
restart=true
file=magic_temper_diff
fadetime=60
}
}
改
1 {
sound {
animation=default
frame=0.01/2.00999999
restart=true
file=fxm_pet_ghost_frenzy_drop_idle
fadetime=60
}
}
随便改了个音效就行了
|
评分
-
7
查看全部评分
-
|