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个,可以在战斗一开始就设置不需要出现的敌人逃跑,用脚本
  1. $game_troop.members[i].hidden
复制代码
来实现,逃跑的实质就是将敌人隐藏起来。
再次,设计一个变量,用于控制敌人呼叫同伴的敌人种类,这里使用10号变量:$game_variables[10]
然后在脚本最后,main之前添加定义:
  1. def call_friends
  2.   #如果敌人当前数量等于敌人最大数量,则什么也不做并返回。
  3.   return if $game_troop.existing_members.size == $game_troop.members.size
  4.   for i in 0...$game_troop.members.size
  5.     #计算死去或逃走的敌人,并为此空位增加敌人作准备。
  6.     enemy = $game_troop.members[i] unless $game_troop.members[i].exist?
  7.   end
  8.   enemy.turn_back  #让当前空位逃跑的敌人回到战场
  9.   enemy.hp = 1     #让当前死去的敌人复活
  10.   for state in enemy.states #解除包括死亡在内的任何状态
  11.     enemy.remove_state(state.id)
  12.   end
  13.   if enemy != nil
  14.     #下面请你自己设计呼叫同伴的种类,在执行本脚本之前,必须让10号变量变到想呼叫敌人对应的数值。
  15.     #呼叫同伴的实质就是变更敌人enemy.transform()。
  16.     case $game_variables[10]
  17.     when 0 #如果10号变量为0,则敌人呼叫15号敌人为同伴。
  18.       enemy.transform(15)
  19.     when 1 #如果10号变量为1,则敌人呼叫637号敌人为同伴。
  20.       enemy.transform(637)
  21.     when 2 #如果10号变量为2,则敌人呼叫120号敌人为同伴。
  22.       enemy.transform(120)
  23.     end
  24.   end
  25.   #让被呼叫的敌人满血满蓝
  26.   enemy.hp += 999999
  27.   enemy.mp += 999999
  28.   $game_troop.make_unique_names
  29. end


  30. class Game_Enemy < Game_Battler
  31.   #--------------------------------------------------------------------------
  32.   # ● 重回战场
  33.   #--------------------------------------------------------------------------
  34.   def turn_back
  35.     @hidden = false
  36.   end  
  37. end
复制代码
最后,设计某号技能调用公共事件1,而公共事件1的内容就是执行脚本:call_friends
在事件脚本中写上call_friends即可,而某某敌人被呼叫等的文字,请LZ自行编写,在此不赘述。
{:2_259:}

附带范例:
Project2.rar (238.7 KB, 下载次数: 90)
作者: 351323331    时间: 2012-7-10 17:51
protosssonny 发表于 2012-7-10 10:22
总思路:让死去或逃跑的敌人回到战场,并让它变身成指定的敌人。
首先,要保证每次战斗的敌人数量为最大, ...

能不能帮忙做个范例。
这个实在看不太明白。。{:2_280:}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1