- UID
- 4963262
- 主题
- 18
- 阅读权限
- 20
- 帖子
- 194
- 精华
- 0
- 积分
- 107
- 金钱
- 993
- 荣誉
- 1
- 人气
- 0
- 在线时间
- 292 小时
- 评议
- 0
- 帖子
- 194
- 精华
- 0
- 积分
- 107
- 金钱
- 993
- 荣誉
- 1
- 人气
- 0
- 评议
- 0
|
以流星火雨为例,选其中一个兵种,建立技能firerain,attacks=mveattack,fireran
firerain {
class=spell
spell=spell_god_fire_rain<-------------可以自己另外建立技能名称。我加了god是以示区别。
attack_cursor=magicstick
script_attack=spell_god_fire_rain_attack<--------------------如果这里写成spell_fire_rain_attack的话,就是直接用流星火雨,但是技能的威力就不好调整了,只能够用一级的。
script_calccells=
require_skill=destroyer:1<--------这里我加了技能限制,那遇上野外的对方也不能发得出来。
hint=spell_godfirerain_hint<----------这里是魔法的名称,自己建立一套即可
hinthead=spell_godfirerain_head<----------这里是魔法的名称,自己建立一套即可
reload=4<----冷却3回合
picture=ba1_fireball_<--------------------------------因为没有合适的小图片,就套用了小恶魔的火球照片
picture_small=ba1_fireball_small.png
no_hint=1
然后打开spells.txt,搜索fire_rain,然后直接将代码复制,在下面多COPY一段,这样可以避免修改到原来的流星火雨技能
// 毋礤眄 念驿?
spell_god_fire_rain {<-------------------------------------------------------我加上god以示区别
category=s
profit=4
price=10000
hide=1<--------------------------------------------------------------------加上这一段,魔法就会隐藏起来,不会再重复在魔法书里面出现,敌人的英雄也用不了。
image=book_spell_fire_rain.png
button_image=book_scroll_fire_rain.png
label=SN_fire_rain
attack=scripted
school=3
hint=spell_fire_rain_hint
hint_header=spell_fire_rain_header
scripted {
script_attack=spell_god_fire_rain_attack<----------------------------------------------这里要与角色技能的一致。
script_calccells=calccells_mass_all
attack_cursor=magicstick
ad_factor=0 // use attack/defense
nfeatures=magic_immunitet,god
}
params {
duration=0
typedmg=fire
damage=70-80<------------------------------------------------------------这里是魔法的伤害值
lvl_dmg=210
burn=50 //50<-----------------------------------------------------------这里是燃烧的几率
multi=7
}
levels {
// level = mana_cost, crystals_cost to upgrade from previous level
1=7,7
2=12,10
3=22,25
}
}
搜索spells.lua文件,找fire_rain,然后copy代码,再建立一段
-- ***********************************************
-- * Fire Rain
-- ***********************************************
function spell_god_fire_rain_attack()<-------------------------------------------我加了god以示区别
local target = Attack.get_target() -- epicentre
Attack.act_aseq( 0, "cast" )<---------------------------------------------------原来没有的,我加进去就会有CAST这个动作出现,不然就只会忽然的出来流星火雨,而没有施放的动作。
local dmgts = Attack.aseq_time(0, "x")<------------------------------------动作描述就是这两段而已
if (target ~= nil) then
local min_dmg,max_dmg,burn = pwr_god_fire_rain()<---------------------------------这段代码很重要,可以在spells_power.lua里面找到
local dmg_type = Logic.obj_par("spell_god_fire_rain","typedmg")<-----------------记得跟修改的魔法名称一致
local n = 7
for i=0,n-1 do
target = Attack.get_target(i)
if (target ~= nil) then
Attack.atk_set_damage(dmg_type,min_dmg,max_dmg)
local deviation = Game.Random()
local a = Attack.atom_spawn(target, deviation, "hll_firerain", 2.0) -- summon fire rain
local dmgts = Attack.aseq_time(a, "x")
common_cell_apply_damage(target, deviation + dmgts) -- apply damage
burn_rnd=Game.CurLocRand(100)+1
if burn_rnd<=burn then
effect_burn_attack(target,dmgts+2+deviation,3)
end
end
end
end
return true
end
搜索spells_power.lua文件里面的pwr_fire_rain,一样复制多一段在下面
function pwr_god_fire_rain(level)<------------------------------------------加上god以示区别
local min_dmg,max_dmg = text_range_dec(Logic.obj_par("spell_god_fire_rain","damage"))<------名称要跟修改的魔法一致
local burn = Logic.obj_par("spell_god_fire_rain","burn")<-------------------------------------------------名称要跟修改的魔法一致
if tonumber(level)==0 or level==nil then
level=3<----------------------------------------------------------原来的代码是level=Obj.spell_level(),改成3就变成了3级的流星火雨
if level==0 then level=1 end
if Obj.where()==6 and Obj.spell_level()~=0 then level=level+1 end
else
level = tonumber(level)
end
local destroyer_skill=tonumber(skill_power2("destroyer",1))+hero_item_count2("sp_spell_attack","count")+hero_item_count2("sp_spell_fire","count")
local lvl_dmg = tonumber(Logic.obj_par("spell_god_fire_rain","lvl_dmg"))<-----------------------要跟修改的魔法名称一致
local int_dmg = 1+tonumber(Game.Config("spell_power_config/int_power"))*HInt()/100
int_dmg = int_dmg * (1+math.floor(HInt()/7)*(15/100)) --玎 赅驿 7 桧蝈腚尻蜞 +10% 箴铐?
min_dmg = math.floor(min_dmg*(1+(level-1)*lvl_dmg/100)*(1+destroyer_skill/100)*int_dmg)
max_dmg = math.floor(max_dmg*(1+(level-1)*lvl_dmg/100)*(1+destroyer_skill/100)*int_dmg)
burn=burn*level+HInt()
if burn>100 then burn=100 end
min_dmg=dmg_round(min_dmg)
max_dmg=dmg_round(max_dmg)
return min_dmg,max_dmg,burn
end
最后在eng_units_specials.lng(兽人入侵或者是其他版本的自己找吧,我只是用一个最普通的来举例)里面建立技能的描述hint
spell_godfirerain_name=流星火雨
spell_godfirerain_head=^special_tC^[Bad]
spell_godfirerain_hint=^special_t^炽热之雨灼烧7格的区域,对范围内的所有部队造成火伤害并用烈焰灼烧它们.
完工。
最后发两张图
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|