Project1

标题: 求让某角色遗忘所有技能的脚本 [打印本页]

作者: muyumuyulnny    时间: 2012-1-19 21:06
标题: 求让某角色遗忘所有技能的脚本
本帖最后由 muyumuyulnny 于 2012-1-20 21:08 编辑

脚本$game_actors[角色ID].forget_skill(技能ID)可以让某角色遗忘某个技能,可是如果想让角色遗忘他的全部技能,难道就只能
def forget_all_skill
  $game_actors[1].forget_skill(1)
  $game_actors[1].forget_skill(2)
  $game_actors[1].forget_skill(3)
  $game_actors[1].forget_skill(4)
  ... ...
$game_actors[1].forget_skill(99)
  end
这样把这句话写上几十次吗?要遗忘另一个角色的技能时又要把这个写一遍?
有没有什么脚本可以简单一点,达到遗忘某角色所有技能的效果?????
另外,本人对脚本基本是一窍不通,请各位高手回答时写详细一点。
非常感谢~~~~~~~~~谢~~~~~~~~~~~dsu_plus_rewardpost_czw
作者: zeroorez    时间: 2012-1-22 00:03
本帖最后由 zeroorez 于 2012-1-22 00:12 编辑

复制好像挺快的。。。或者可以自己在数据库复制一个没技能的同名角色。。。
作者: Sonic1997    时间: 2012-1-22 08:26
我觉得在这种情况下把其他资料写进一个数组里面然后初始化在读取数组里的资料会更好{:nm_7:}
作者: feizhaodan    时间: 2012-1-22 10:53
本帖最后由 feizhaodan 于 2012-1-22 10:54 编辑
  1. (1..$data_skills.size).each{|i|
  2. $game_actors[角色ID].forget_skill(i)
  3. }
复制代码
直接执行即可。
作者: TheRebirth    时间: 2012-1-22 14:15
4楼地面正解.
或者说...可以用这个:
for i in 1..(技能数量)
$game_actors[角色ID].forget_skill(i)
end

应该可以在公共事件里直接调用.
作者: 零の使魔    时间: 2012-1-22 14:27
本帖最后由 零の使魔 于 2012-1-22 14:33 编辑

事件里调用下面这条脚本
第一行的id就是你想让某角色遗忘技能的角色id
  1. id = 1
  2. class<<$game_actors[id]
  3. attr_accessor :skills
  4. end
  5. $bak = {} if $beifeng == nil
  6. $bak[id] = $game_actors[1].skills
  7. $game_actors[id].skills = []
复制代码
,使用$bak[角色的id] 可以获得角色遗忘的技能(备份用),你可以使用

  1. id = 某角色的id自己改
  2. $game_actors[id].skills = $bak[id]
复制代码
来还原技能���




脚本Game_Actor 里追加定义
  1.   def 遗忘全部技能
  2.     @bak = @skill
  3.     @skills = []
  4.   end
  5.   def 遗忘的技能还原
  6.     @skills = @bak if @bak != nil
  7.   end
复制代码
直接调用也可以���




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