Project1
标题:
怎么让敌人拥有”呼叫伙伴“的技能。
[打印本页]
作者:
351323331
时间:
2012-7-9 22:41
标题:
怎么让敌人拥有”呼叫伙伴“的技能。
类似勇者斗恶龙那种。呼叫同伴。不一定得是技能,其他的实现方法也行。 dsu_plus_rewardpost_czw
作者:
limaolinghu
时间:
2012-7-10 09:52
用战斗事件不能实现吗?
作者:
怪蜀黍
时间:
2012-7-10 10:22
本帖最后由 protosssonny 于 2012-7-10 20:25 编辑
总思路:让死去或逃跑的敌人回到战场,并让它变身成指定的敌人。
首先,要保证每次战斗的敌人数量为最大,默认是8个。如果需要少于8个,可以在战斗一开始就设置不需要出现的敌人逃跑,用脚本
$game_troop.members[i].hidden
复制代码
来实现,逃跑的实质就是将敌人隐藏起来。
再次,设计一个变量,用于控制敌人呼叫同伴的敌人种类,这里使用10号变量:$game_variables[10]
然后在脚本最后,main之前添加定义:
def call_friends
#如果敌人当前数量等于敌人最大数量,则什么也不做并返回。
return if $game_troop.existing_members.size == $game_troop.members.size
for i in 0...$game_troop.members.size
#计算死去或逃走的敌人,并为此空位增加敌人作准备。
enemy = $game_troop.members[i] unless $game_troop.members[i].exist?
end
enemy.turn_back #让当前空位逃跑的敌人回到战场
enemy.hp = 1 #让当前死去的敌人复活
for state in enemy.states #解除包括死亡在内的任何状态
enemy.remove_state(state.id)
end
if enemy != nil
#下面请你自己设计呼叫同伴的种类,在执行本脚本之前,必须让10号变量变到想呼叫敌人对应的数值。
#呼叫同伴的实质就是变更敌人enemy.transform()。
case $game_variables[10]
when 0 #如果10号变量为0,则敌人呼叫15号敌人为同伴。
enemy.transform(15)
when 1 #如果10号变量为1,则敌人呼叫637号敌人为同伴。
enemy.transform(637)
when 2 #如果10号变量为2,则敌人呼叫120号敌人为同伴。
enemy.transform(120)
end
end
#让被呼叫的敌人满血满蓝
enemy.hp += 999999
enemy.mp += 999999
$game_troop.make_unique_names
end
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ● 重回战场
#--------------------------------------------------------------------------
def turn_back
@hidden = false
end
end
复制代码
最后,设计某号技能调用公共事件1,而公共事件1的内容就是执行脚本:call_friends
在事件脚本中写上call_friends即可,而某某敌人被呼叫等的文字,请LZ自行编写,在此不赘述。
{:2_259:}
附带范例:
Project2.rar
(238.7 KB, 下载次数: 90)
2012-7-10 20:25 上传
点击文件名下载附件
作者:
351323331
时间:
2012-7-10 17:51
protosssonny 发表于 2012-7-10 10:22
总思路:让死去或逃跑的敌人回到战场,并让它变身成指定的敌人。
首先,要保证每次战斗的敌人数量为最大, ...
能不能帮忙做个范例。
这个实在看不太明白。。{:2_280:}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1