Project1

标题: 關於戰棋設定的問題 [打印本页]

作者: showpei    时间: 2010-8-8 16:26
标题: 關於戰棋設定的問題
目前研究GTBS的戰棋腳本,發現一點問題
我先PO上作者的一段Q&A

# Can I have events on the map that will effect the battle without being battlers?
#----------------------------------------------------------------------
#     Yes.  To do this simply create a event on the map named "battle_event"(without the quotes)
#     Then set it up just like you always would, you can make checks against the number
#     enemies/actors/neutral or practically anything you want, keep in mind, that
#     the changes and checking/etc must be done via script.  Also, events set to
#     trigger by player/event touch or Action Button, will trigger when you 'wait'
#     on their tile.
#       Here are a couple of useful script commands -
#          $scene.actors - this returns the array of actors in battle
#          $scene.enemies - this returns the array of enemies in battle
#          $scene.neutral - this returns the array of netruals in battle
#          $game_temp.battle_turn - returns the current turn # for battle

使用判斷式
IF $game_temp.battle_turn<2
表示戰鬥回合小於二則執行
這個成功
但是...
其他的$scene.actors、$scene.enemies、$scene.neutral,
卻沒辦法這樣設置

是不是我誤會他的意思了?
array是數列的意思嗎?
那要怎麼設置,才會執行?
譬如: IF 敵人數<2,這要怎麼設置呢?

另外,不曉得有沒有人知道,
如何設定指定的actor或enemy死亡時則執行事件?

嗯...自己研究了一陣子但都沒有確切的辦法><
希望大哥大姐可以幫幫忙
萬分感謝!!
作者: 小幽的马甲    时间: 2010-8-8 17:13
array是数组
数组不能直接用来判断,如果要取数组大小的话用size参数
作者: showpei    时间: 2010-8-8 17:20
感謝樓上回答!
但具體來說該如取數組大小呢?
size[$scene.actors]?

或是要使用到腳本呢?
作者: 小幽的马甲    时间: 2010-8-8 17:25
size是参数不是方法
if $scene.enemies.size < 2
作者: showpei    时间: 2010-8-8 17:30
感謝小幽的马甲大大!!
測試成功!

我來去多讀一下ruby的東西
再次謝謝你!
作者: showpei    时间: 2010-8-8 18:22
我又遭遇問題了
這次是取array中特定的數字
我用 if !$scene.enemies[0],可以取array中第一個不存在就執行
但是當我使用到if !$scene.enemies[1]的時候,
array中不論0或1不存在,都會執行,
不知道為什麼會這樣...
作者: 小幽的马甲    时间: 2010-8-8 18:34
什么叫特定的数字?你想实现什么效果?
作者: showpei    时间: 2010-8-8 18:41
譬如說a=[enemy2,enemy1]
如上所說取 if !a[0]則表示enemy2消失才執行

我的問題是當我用 if !a[1]的時候
不管是enemy1或enemy2消失,
它都會執行
但我要的就只是當enemy1消失時才執行
作者: 小幽的马甲    时间: 2010-8-8 18:44
= =为何要用!
"!"是对布尔值取反,!false = true、!true = false
你是不是要判断数组里有enemy1这个对象?
作者: showpei    时间: 2010-8-8 18:46
是!
我要判斷沒有它才執行!
作者: 小幽的马甲    时间: 2010-8-8 18:56
判断数组a是否存在某元素b的语句是if a.include?(b)
$scene.enemies里的对象是Game_Battler的对象,我对GTBS的研究也不精所以也不知道如何直接用怪物id定位对象……
能想到的办法在战斗开始时就是先用
$temp = $scene.enemies
把它备份一下,然后要判断时
unless $scene.enemies.include?($temp[1])【unless X就是if !X】
这样的话每次战斗之前都要执行那句,否则就会出问题
作者: showpei    时间: 2010-8-8 19:23
好的,感謝大大耐心回答T.T
我再來繼續嘗試

再次感謝大大!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1