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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

跳转到指定楼层
1
发表于 2017-3-14 17:11:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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

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


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

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

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

else
$game_actors[1].learn_skill(151)
end
[神性领域扩张:扩张神性领域]
说了等于没说.

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 2017-3-14 17:36:11 | 只看该作者
本帖最后由 魔法丶小肉包 于 2017-3-14 17:45 编辑

仔细观察一下脚本的话你会发现



RUBY 代码复制
  1. a = $data_skills[151]
  2. if $game_actors[1].skill_learn?(a)
  3. $game_actors[1].forget_skill(151)
  4. else
  5. $game_actors[1].learn_skill(151)
  6. end

点评

右下角有評分  发表于 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 感謝解答!

查看全部评分

笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

3
 楼主| 发表于 2017-3-14 17:58:52 | 只看该作者
雖然只是簡單的代碼
但對我來說卻也是一大步

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

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

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

4
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

5
 楼主| 发表于 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
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 05:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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