查看: 64|回复: 0

[转载发布] 【脚本】使用物品习得技能

[复制链接]
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 33 天

    连续签到: 1 天

    [LV.5]常住居民I

    2022

    主题

    32

    回帖

    7144

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5074
    OK点
    16
    积分
    7144
    发表于 同元一千年八月六日(秋) | 显示全部楼层 |阅读模式
    一直在论坛上没找到使用物品习得技能的相关脚本,于是本人就搞出这么一个东东,以前看到的都是状态法学技能,那样的话在角色少技能少的情况下还比较好弄。但是如果角色有几十上百个(比如一些宠物比较多的),技能也有几十上百个的,那样的话写公共事件就会很累,很囧。下面这个东西花了本人大半天时间,再加上写这个教程,一天的时间就过去了~~(技术不过关,所以花那么久时间)。

    该使用物品习得技能脚本的特点:
          1.实现多角色,多特技的学习技能效果。谁使用物品,谁习得技能。即使角色上百,特技上百都没有问题。
          2.如果使用的角色已有将要学习的技能,将不会再习得该技能。
          3.简单,只需要替换一段脚本即可。
          4.由于只是在原脚本基础上添加,无冲突。
    ═══════════════════════════════════════════════════════════════
    方法:

    ★1.脚本的添加:在脚本 Scene_Item 第167行,原句:used = target.item_effect(@item)
                    用下面这段脚本把这句替换掉。(注意格式)

       (下面这段脚本每句都加了注释,以方便新人理解。)


       代码如下:
    1.         #等级为光标选中的角色等级        level = $game_party.actors[@target_window.index].level        #如果所使用的物品id大于50        if @item.id > 50   #★注释【1】          #使用效果为对目标使用物品设置的效果          used = target.item_effect(@item)        #除此之外,如果等级小于60        elsif level < 60   #★注释【2】          #演奏冻结SE          $game_system.se_play($data_system.buzzer_se)        #除此之外,如果目标已领悟特技(特技ID为所使用的物品ID)        elsif target.skill_learn?(@item.id)          #演奏冻结SE          $game_system.se_play($data_system.buzzer_se)        #其它        else          #演奏物品使用时设置的SE          $game_system.se_play(@item.menu_se)          #使用效果为目标领悟特技(特技ID为所使用的物品ID)          used = target.learn_skill(@item.id)          # 使用的物品数减 1          $game_party.lose_item(@item.id, 1)        end 复制代码
    复制代码
    ★注释【1】:使用物品能够习得技能的物品ID限制。这里是50。也就是说,如果所使用的物品ID大于50,那么对使用对象的使用效果就是该物品在数据库里设置的效果,不会习得相对应的特技。反之,如果所使用的物品ID小于等于50,那么使用该物品后就会习得与物品ID相对应的特技。50可以改,如果需要比较多的话,可改成60,70,80,,,甚至几百,都没有问题。如果不想使用该物品习得特技的功能,把50改为0。

      ★注释【2】:使用了角色等级限制,这里是60,当等级小于60,不能习得技能。当等级大于等于60时,才能习得技能。60可以改为20,30,...70.80等,都可以。如果不需要等级限制,把60改为0。

      图例:



    —————————————————————————————————————————————————————————


    ★2.数据库设置:
          物品的ID要与使用该物品习得的特技ID一致。比如:设置1号物品为:技能书【火球】,那么相对应的,1号特  技设置为技能:火球。以此类推,2号物品对应2号技能,3号物品对应3号技能,,,,,。使用1号物品,习得1号技能;使用2号物品,习得2号技能;使用3号物品,习得3号技能,,,,,,。
       设置物品的数量不能超出★注释【1】所设置的数值,超出后的物品使用,不能习得对应特技。如果有需要,   请 把★注释【1】的数值改大。

          物品的设置:效果范围:己方单体
          可能使用时:菜单中
          消耗:不消耗
          其它的随意。

    ————————————————————————————————————————————————————————


    ◆注意:如果脚本修改后无效果,1.查看添加的脚本的格式,可参照图例。
                                  2.查看数据库设置是否正确。
                                  3.查看自己工程的外挂脚本,有无 Scene_Item 的场景。如果有,同样把外挂脚本 Scene_Item 场景里也改掉。

    ═══════════════════════════════════════════════════════════════════
         以上的一些说明,方法,注意事项已非常详细,相信大家都看得懂吧!如果还有疑问,请留言。

         此为精简版的物品习得技能,其实还可以添加很多东西。比如在 Scene_Item 场景里再加入 Window_Message 。当学习技能失败,弹出对话框,显示“60级以后才能学习技能”。或者“学习失败,已有该技能。”来提示玩家。而不是只出现错误提示音。
    ═══════════════════════════════════════════════════════════════════


          刚刚加进去一个简单的对话框提示功能,加入后的代码如下:
    1.         level = $game_party.actors[@target_window.index].level        if @item.id > 50             used = target.item_effect(@item)        elsif level < 60             $game_system.se_play($data_system.buzzer_se)          $game_temp.common_event_id = 1          $scene = Scene_Map.new        elsif target.skill_learn?(@item.id)          $game_system.se_play($data_system.buzzer_se)          $game_temp.common_event_id = 2          $scene = Scene_Map.new        else          $game_system.se_play(@item.menu_se)          used = target.learn_skill(@item.id)          $game_party.lose_item(@item.id, 1)          $game_temp.common_event_id = 3          $scene = Scene_Map.new        end 复制代码
    复制代码
    —————————————————————————————————————————————————————————
      在学习特技失败或成功后,加入激活公共事件,上面脚本里的1,2,3就是关联的公共事件ID,公共事件ID可改。
    对应的公共事件里面只设置显示文章。比如等级小于60级的情况下,激活公共事件1,公共事件1显示文章“60
    级以后才能学习技能!”。已有要学习的技能情况下,激活公共事件2,公共事件2显示文章“学习失败,已
    有该技能!”。学会了特技的情况下,激活公共事件3,公共事件3显示文章“习得了新技能!”。
      由于 Scene_Item 里没有对话框,并且不能激活事件。所以激活公共事件后,切换到地图画面。

    另:如果有同学需要VA的,请回复。其实可依照上面的思路在VA里改,VA有很多术语和XP不一样,但大部分还是差不多的。
    ════════════════════════════════════════════════════════════════════
                 本帖来自P1论坛作者芯☆淡茹水,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=276673  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-3 03:03 , Processed in 0.079355 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表