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

Project1

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

[已经解决] 请教技能获得的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-8-13
帖子
53
跳转到指定楼层
1
发表于 2013-12-26 17:09:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我的主角有几十位,我想用类似于买技能书、技能符神马的来使使用者获得相应技能,请注意,主角有几十位,技能几十种,请问怎么做?

评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-8-13
帖子
53
8
 楼主| 发表于 2013-12-26 20:31:20 | 只看该作者
天地有正气 发表于 2013-12-26 19:42
4楼分明就是在误导啊。
3楼的点评也是误导啊!
首先,这种东西最好用脚本,因为楼主的角色太多了,即使不用 ...

感谢您的回答,您的脚本我先收着了{:2_287:}
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

7
发表于 2013-12-26 19:42:06 | 只看该作者
本帖最后由 天地有正气 于 2013-12-26 19:53 编辑

4楼分明就是在误导啊。
3楼的点评也是误导啊!
首先,这种东西最好用脚本,因为楼主的角色太多了,即使不用脚本,也应该用“状态法”!而不是什么条件分歧某某角色是否在队伍中!而且,这种对话框也不应该用print,而应该用普通的显示文章!
既然楼主的游戏角色很多,不方便用事件制作,我给出一个脚本:
  1. #技能书 by 天地有正气
  2. class Interpreter
  3.   def skill_book(book_id,skill_id,skill_state)
  4.     for i in 0..$game_party.actors.size
  5.       if $game_party.actors[i].states[0] == skill_state
  6.         i += 1
  7.         if $game_actors[i].skills.include?(skill_id)
  8.           $game_system.se_play($data_system.buzzer_se)
  9.           $game_actors[i].remove_state(skill_state)
  10.           $game_party.gain_item(book_id,1)
  11.           $scene = Scene_Menu.new(0)
  12.         end  
  13.         $game_actors[i].learn_skill(skill_id)
  14.         $game_actors[i].remove_state(skill_state)
  15.         break
  16.       end  
  17.     end  
  18.   end
  19. end
复制代码
这个脚本就是我刚弄的技能书脚本。LZ可以在技能书那里带入公共事件,然后在
公共事件里用事件脚本skill_book(技能书物品编号,习得技能编号,附带状态编号),
然后我来解释一下,第一个编号是你在数据库中设置的技能书物品编号,第二个编
号是你要习得的技能编号,而第三个编号则是要你在数据库状态里设置一个定量为
10,不能抵抗的无名称状态,然后把编号输进去。最后你要做的就是在技能书那里
把刚才那个状态给勾上,然后就可以达成你要的技能书效果啦!!!
希望能够满足楼主的需求!!!
(p.s. 我以后会在技术发布区发布该脚本,并且注上一些优化策略,希望楼主能够来捧场!毕竟我写脚本也不容易的嘛~)

点评

感谢您的费心O(∩_∩)O~  发表于 2013-12-26 20:38
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-8-13
帖子
53
6
 楼主| 发表于 2013-12-26 19:01:34 | 只看该作者
fux2 发表于 2013-12-26 18:41
刚刚才有人问呢,你把技能书做成友方单体道具,不消耗,给目标附加一个状态
然后这个道具再附带公共事件 ...

谢谢,范例已看,就是要这种效果,我正在捣鼓。感谢所有人的解答{:2_287:}
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42426
在线时间
7603 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

5
发表于 2013-12-26 18:41:18 | 只看该作者
本帖最后由 fux2 于 2013-12-26 18:42 编辑
流光飞雪 发表于 2013-12-26 18:17
这种方法只能指定一位角色……


刚刚才有人问呢,你把技能书做成友方单体道具,不消耗,给目标附加一个状态
然后这个道具再附带公共事件,判断谁身上有状态即可。然后清除这个状态。
但考虑到你人物太多,你用这个事件脚本好了。
RUBY 代码复制
  1. sid = 17 #状态编号
  2. skid = 80 #技能编号
  3. itid = 11 #道具编号
  4. a=$game_party.actors.find{|i|i.state?(sid)}
  5. return unless a
  6. a.remove_state(sid)
  7. if a.skill_learn?(skid)
  8. $game_temp.message_text="目标已经有这个技能"
  9. else
  10. a.learn_skill(skid)
  11. $game_party.gain_item(itid,-1)
  12. end

算了发个范例给你吧。
流光飞雪.rar (187.18 KB, 下载次数: 30)

点评

精简的好脚本!  发表于 2013-12-26 20:35
....我也弄了个类似效果的,思路竟然基本一样....只是我编辑时间太长了......  发表于 2013-12-26 19:52

评分

参与人数 1星屑 +80 收起 理由
︶ㄣ牛排ぶ + 80 认可答案

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

【欧皇】

梦石
3
星屑
2066
在线时间
1004 小时
注册时间
2013-8-19
帖子
3486

开拓者

4
发表于 2013-12-26 18:23:31 | 只看该作者
本帖最后由 欧买歌 于 2013-12-26 18:30 编辑
流光飞雪 发表于 2013-12-26 18:17
这种方法只能指定一位角色……


条件分支:阿尔西斯在队伍中
  ·增减特技:阿尔西斯+xxxx
    ·脚本:print “阿尔西斯习得xxxx。”
  除此以外的场合
  ·脚本:print “阿尔西斯不在队伍中。”
得到答案后请把帖子类改为“已经解决”。
QQ:2223942063
Q群:365819625
贪吃方1.4
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-8-13
帖子
53
3
 楼主| 发表于 2013-12-26 18:17:47 | 只看该作者
欧买歌 发表于 2013-12-26 18:12
在物品上使用公共事件001,然后在公共事件001上的事件插入获得技能xxxx。
最后,万恶的验证码。 ...

这种方法只能指定一位角色……

点评

加个条件上去~! 如果角色是某某某那么就可以学习什么技能~!  发表于 2013-12-26 18:20
回复 支持 反对

使用道具 举报

Lv4.逐梦者

【欧皇】

梦石
3
星屑
2066
在线时间
1004 小时
注册时间
2013-8-19
帖子
3486

开拓者

2
发表于 2013-12-26 18:12:52 | 只看该作者
在物品上使用公共事件001,然后在公共事件001上的事件插入获得技能xxxx。
最后,万恶的验证码。
QQ:2223942063
Q群:365819625
贪吃方1.4
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 22:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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