查看: 2380|回复: 10

[已经解决] 用腳本指令來判斷是否學過某技能,不過出了點問題

[复制链接]
梦石
0
星屑
2116
在线时间
950 小时
注册时间
2015-7-16
回帖
692

开拓者

发表于 2017-3-14 17:11:38 | 显示全部楼层 |阅读模式

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

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

×
(一點題外話
是這樣的,由於早期不熟悉腳本,所以製作系統都是採用並行公共事件進行製作
直到後來對事件使用有了心得以後,也大幅的改善了系統運行

不過雖然改善了很多,但是某次在一些評論中
我發現到部分遊戲對某些玩家來說還是很卡的,而這部分遊戲對我來講並不是那麼卡
並且我遊戲的幀數比起這些遊戲還要來的低

於是我開始反省,是否該朝著真正的腳本系統路線邁進
凡事有個起頭,不過我很快碰上了麻煩


----------以下正戲開始---------------

我寫了這麼一個腳本指令,用來判斷角色 1 是否學過 第151號技能
沒學過就讓他學會,學過就讓他忘記
不過這段腳本好像只會傳回 false...所以學了技能以後,再次執行並不會忘掉
請問各位大大們,這是怎麼一回事呢?

if $game_actors[1].skill_learn?(151)
$game_actors[1].forget_skill(151)

else
$game_actors[1].learn_skill(151)
end
[神性领域扩张:扩张神性领域]
说了等于没说.
梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-3-14 17:36:11 | 显示全部楼层
本帖最后由 魔法丶小肉包 于 2017-3-14 17:45 编辑

仔细观察一下脚本的话你会发现
QQ图片20170314173755.png
QQ图片20170314173917.png
QQ图片20170314173956.png
[pre lang="ruby"]a = $data_skills[151]
if $game_actors[1].skill_learn?(a)
$game_actors[1].forget_skill(151)
else
$game_actors[1].learn_skill(151)
end [/pre]

点评

右下角有評分  发表于 2017-3-14 23:05
怎么给别人加经验啊  发表于 2017-3-14 22:52
!最後兩個字肉包因為太長被系統吃了=w=!!  发表于 2017-3-14 18:38

评分

参与人数 3星屑 +75 梦石 +1 收起 理由
RaidenInfinity + 1 认可答案
QQ蚊子湯 + 45 精品文章...欸?不講解一下輸入參數嗎!笨蛋.
duzine + 30 感謝解答!

查看全部评分

笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
2116
在线时间
950 小时
注册时间
2015-7-16
回帖
692

开拓者

 楼主| 发表于 2017-3-14 17:58:52 | 显示全部楼层
雖然只是簡單的代碼
但對我來說卻也是一大步

能緩緩感覺到,曾停止不前的時間,再次流動
[神性领域扩张:扩张神性领域]
说了等于没说.
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2017-3-14 19:58:36 | 显示全部楼层
虽然有点废话,不过稍微一提吧,
可以在Game_Actor类里新定义一个方法,用技能数组ID来判定也挺方便的。
  1. class Game_Actor < Game_Battler
  2. def xxx_skill_learn?(skill_id)
  3.   total_list = (@skills | added_skills)
  4.   return total_list.include?(skill_id)
  5. end
  6. end
复制代码
大概就是这样吧,
用这个方法可以直接用技能ID来判定某角色是否学会了某个ID的技能就是了……
(至于为什么官方不这样做,或者说这样做有什么弊端的话,其实我也不是很明白……

点评

阿,今日評分剩餘用光了@@  发表于 2017-3-14 21:21

评分

参与人数 1梦石 +1 收起 理由
RaidenInfinity + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2116
在线时间
950 小时
注册时间
2015-7-16
回帖
692

开拓者

 楼主| 发表于 2017-3-14 21:21:12 | 显示全部楼层
cinderelmini 发表于 2017-3-14 19:58
虽然有点废话,不过稍微一提吧,
可以在Game_Actor类里新定义一个方法,用技能数组ID来判定也挺方便的。
大 ...

感謝提供方法OWO
又可以長姿勢了


目前還在研究這段方法中
(不過我的腳本能力只到入門程度,需要用法上的協助

点评

原來如此! 方便多了XD  发表于 2017-3-14 21:56
用法直接就是你1L那样。。“$game_actors[1].xxx_skill_learn?(151)”就好了。  发表于 2017-3-14 21:37
[神性领域扩张:扩张神性领域]
说了等于没说.
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部