じ☆ve冰风 发表于 2024-4-19 21:07:27

小脚本:转职后自动更换技能

脚本功能
用RMXP事件页“更改角色职业”,可以自动遗忘和学会技能。

使用方法
自动功能:复制全部脚本内容,在Main脚本之前按insert,插入此脚本全部内容。

还可单独使用在事件页-脚本中:
$game_actors[角色id].delnowskills#删除 当前职业 当前等级 的所有技能
$game_actors[角色id].nowskills   # 添加 当前职业 当前等级 的所有技能

———————————————————————————
废话:
学脚本之后第一次写的脚本,很简单很初级。
我搜了论坛和主站,没见到这个,于是就不害臊的发上来了。
希望以此帮助比我还新的新手、懒人、伸手党。

和本版牛掰的高水品脚本比起来,不知是否有资格发这里,还是应该发在别处呢,还请管理调教。
新人刚来诸事不懂,做得不对的还请各位多指点。
——————————————————————————


RUBY 代码
#==============================================================================
#■转职自动学技能
#==============================================================================
#功能:转职后,自动更换当前职业、当前等级技能
#
#用法:脚本插入Main之前。在事件页使用“更改角色职业”后,自动实现更换技能。
#脚本思路:
#1、删除角色 当前职业 当前等级 可学会 的所有技能。
#2、添加角色 当前职业 当前等级 可学会 的所有技能。
#3、覆盖重写事业页命令“更改角色职业”,添加上面2种命令。
#
#★仅限于用事件更换职业,如果用脚本更换职业,则必须手动添加脚本。
#$game_actors[角色id].delnowskills#先删除上一个职业的所有技能。
#更改职业的脚本
#$game_actors[角色id].nowskills   #再添加现在职业的所有技能。
#★如果不想改变事件页默认功能,请删除 #第二部分 #以下内容。
#★如果一个技能没有和转职职业关联,则不会影响到它。
#==============================================================================
#追加方法到Game_Actor
#==============================================================================
class Game_Actor < Game_Battler

#学会当前职业当前等级所有技能
def nowskills
a = @actor_id
aa = $game_actors.level   
b = $game_actors.class_id
for i in1..aa
      for j in$data_classes.learnings
      if j.level == i      
            if j.skill_id > 0andnot skill_learn?(j.skill_id)
            @skills.push(j.skill_id)
            @skills.sort!
            end
      end
      end
end
end#def nowskills

#遗忘当前职业所有技能 注意,因为是遗忘当前职业的技能,所以必须用在转职命令前!
def delnowskills
a = @actor_id
aa = $game_actors.level   
b = $game_actors.class_id
for i in1..aa
      for j in$data_classes.learnings
      if j.level == i      
          forget_skill(j.skill_id)
      end
      end
end
end#def delnowskills

end#class
#————————————————————————————
#            第二部分
#覆盖重写事件页的命令“更改角色职业”。(不想改可以删除以下内容。)
#————————————————————————————
class Interpreter

def command_321 #更改角色职业的事件页命令。
    # 获取角色
    actor = $game_actors[@parameters]
    # 更改职业
    if actor != nil
      $game_actors[@parameters].delnowskills#追加遗忘技能
      actor.class_id = @parameters
      $game_actors[@parameters].nowskills#追加学习技能
    end
    # 继续
    returntrue
end

end#class




真的好短呀。

             本帖来自P1论坛作者小商贩,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=250688若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页: [1]
查看完整版本: 小脚本:转职后自动更换技能