设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 13303|回复: 21
打印 上一主题 下一主题

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

[复制链接]

Lv5.捕梦者

梦石
0
星屑
33425
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

跳转到指定楼层
发表于 2013-1-11 13:39:57 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 芯☆淡茹水 于 2013-2-13 15:46 编辑

     一直在论坛上没找到使用物品习得技能的相关脚本,于是本人就搞出这么一个东东,以前看到的都是状态法学技能,那样的话在角色少技能少的情况下还比较好弄。但是如果角色有几十上百个(比如一些宠物比较多的),技能也有几十上百个的,那样的话写公共事件就会很累,很囧。下面这个东西花了本人大半天时间,再加上写这个教程,一天的时间就过去了~~(技术不过关,所以花那么久时间)。

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

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

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


   代码如下:
  1.         #等级为光标选中的角色等级
  2.         level = $game_party.actors[@target_window.index].level
  3.         #如果所使用的物品id大于50
  4.         if @item.id > 50   #★注释【1】
  5.           #使用效果为对目标使用物品设置的效果
  6.           used = target.item_effect(@item)
  7.         #除此之外,如果等级小于60
  8.         elsif level < 60   #★注释【2】
  9.           #演奏冻结SE
  10.           $game_system.se_play($data_system.buzzer_se)
  11.         #除此之外,如果目标已领悟特技(特技ID为所使用的物品ID)
  12.         elsif target.skill_learn?(@item.id)
  13.           #演奏冻结SE
  14.           $game_system.se_play($data_system.buzzer_se)
  15.         #其它
  16.         else
  17.           #演奏物品使用时设置的SE
  18.           $game_system.se_play(@item.menu_se)
  19.           #使用效果为目标领悟特技(特技ID为所使用的物品ID)
  20.           used = target.learn_skill(@item.id)
  21.           # 使用的物品数减 1
  22.           $game_party.lose_item(@item.id, 1)
  23.         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
  2.         if @item.id > 50   
  3.           used = target.item_effect(@item)
  4.         elsif level < 60   
  5.           $game_system.se_play($data_system.buzzer_se)
  6.           $game_temp.common_event_id = 1
  7.           $scene = Scene_Map.new
  8.         elsif target.skill_learn?(@item.id)
  9.           $game_system.se_play($data_system.buzzer_se)
  10.           $game_temp.common_event_id = 2
  11.           $scene = Scene_Map.new
  12.         else
  13.           $game_system.se_play(@item.menu_se)
  14.           used = target.learn_skill(@item.id)
  15.           $game_party.lose_item(@item.id, 1)
  16.           $game_temp.common_event_id = 3
  17.           $scene = Scene_Map.new
  18.         end
复制代码
—————————————————————————————————————————————————————————
  在学习特技失败或成功后,加入激活公共事件,上面脚本里的1,2,3就是关联的公共事件ID,公共事件ID可改。
对应的公共事件里面只设置显示文章。比如等级小于60级的情况下,激活公共事件1,公共事件1显示文章“60
级以后才能学习技能!”。已有要学习的技能情况下,激活公共事件2,公共事件2显示文章“学习失败,已
有该技能!”。学会了特技的情况下,激活公共事件3,公共事件3显示文章“习得了新技能!”。
  由于 Scene_Item 里没有对话框,并且不能激活事件。所以激活公共事件后,切换到地图画面。

另:如果有同学需要VA的,请回复。其实可依照上面的思路在VA里改,VA有很多术语和XP不一样,但大部分还是差不多的。
════════════════════════════════════════════════════════════════════
xp vx va mv  va mz 各类型脚本/插件定制

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

21
发表于 2016-1-31 10:24:49 | 只看该作者
缺少个功能。
设置某些技能为某些角色的特定技能,只有那些角色使用后才可学习,其他人使用后没用。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2084
在线时间
664 小时
注册时间
2014-2-15
帖子
81
20
发表于 2016-1-19 16:18:57 | 只看该作者
求改va版本的,谢谢楼主

点评

va本來就有"使用物品習得技能"的功能  发表于 2016-1-19 21:09
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
6821
在线时间
34 小时
注册时间
2015-2-11
帖子
1
19
发表于 2015-2-15 07:37:51 手机端发表。 | 只看该作者
感谢楼主
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
48 小时
注册时间
2014-1-9
帖子
18
18
发表于 2014-2-23 19:41:35 | 只看该作者
太棒了,我找了很久了,梦寐以求啊!
但是求改成VA的呗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2014-2-6
帖子
34
17
发表于 2014-2-19 16:01:05 | 只看该作者
找了这么久,终于找到了……谢过楼主!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2014-1-21
帖子
8
16
发表于 2014-1-23 11:15:46 | 只看该作者
看样子是回合制用的吧,能够在即时战斗中用就好了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
27 小时
注册时间
2010-7-18
帖子
13
15
发表于 2013-3-30 20:17:15 | 只看该作者
唉,习惯了用 状态 + 公共事件来做的 悄悄路过……
世界人由变量操控
IQ、EQ等等
这些值都保存在哪里呢?
保存在细胞里
这世界就是一个多次元空间,每一个点都有大量的变量掌控着
   while 世上多傻逼
     世上再多一个傻逼,然后多一个天才,再多二十个普通人
   end
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
618
在线时间
2166 小时
注册时间
2012-12-5
帖子
4464
14
发表于 2013-3-16 19:33:03 | 只看该作者
嗯,很方便。  先收藏起来
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
815
在线时间
636 小时
注册时间
2011-1-21
帖子
176
13
发表于 2013-3-16 18:29:11 | 只看该作者
新人捧场,另外,请问这是做什么的???
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
211
在线时间
905 小时
注册时间
2010-9-6
帖子
3229
12
发表于 2013-3-16 13:45:52 | 只看该作者
好帅气的脚本,很想收录起来呢……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-11 23:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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