Project1

标题: 用公用事件達成按鍵更換領隊為何無效 [打印本页]

作者: 燕征    时间: 2016-4-6 01:34
标题: 用公用事件達成按鍵更換領隊為何無效
本帖最后由 燕征 于 2016-4-6 01:38 编辑

因為先前用腳本解決結果有問題無法解決([有事请教] 此二錯誤訊息的解決方法)
所以改用查到的事件設置方法實作 (參考來源: 关于按键更换领队系统(事件))
我同樣先用新專案做測試,公共事件的方法確實可以使用,然而整合進我的專案中沒有半點反應
想問問要如何解決

裡面有個判斷XX是否在隊伍的條件分歧,這個其實不用,只是我個人因為有角色選擇的問題,所以我自己有加
下面附上的測試中也是可以用的(我有另一個事件是進場景就讓該測試用的角色離隊的事件)

方法
1.公用事件

2.地圖上弄一個事件出來,設為並行處理,指令就是呼叫上面的公用事件
作者: 喵呜喵5    时间: 2016-4-6 09:32
一直在等待 2 那里循环了?
作者: huajinyu123    时间: 2016-4-6 16:44
把条件分歧放到循环里试试?
作者: 燕征    时间: 2016-4-7 02:16
痾,我放進去了。然而我發現了殘酷的事實...
原來我在新傳裡實驗可以運行是因為之前放下去實驗的腳本沒有山,所以換角是依賴於腳本而不是事件
在我刪掉腳本後,這個事件是沒有作用的....
作者: cinderelmini    时间: 2016-4-7 12:21
本帖最后由 cinderelmini 于 2016-4-8 13:23 编辑

如果单纯需要按X键更换领队的话……
也许只需要把下面这段代码放在【Game_Player】下面任意位置……吧…………
【简易的更换领队脚本】

作者: 燕征    时间: 2016-4-8 02:42
cinderelmini 发表于 2016-4-7 12:21
如果单纯需要按X键更换领队的话……
也许只需要把下面这段代码放在【Game_Player】下面任意位置……吧…… ...

謝謝@cinderelmini 大大
確實可以用了!!!
那我還想請問有沒有一個變數能代表當前領隊,以提供條件分歧使用呢?

這個腳本裡面有好多東西看不懂,我先搜索過【Game_Player】看看是否有前面使用過的
但像是
  1.     update_change_leader
  2.     sny46_160407_update
复制代码
都沒有出現過,請問這兩行是在做什麼呢?
作者: 夜狠简单    时间: 2016-4-8 09:18
本帖最后由 夜狠简单 于 2016-4-8 09:22 编辑
燕征 发表于 2016-4-8 02:42
謝謝@cinderelmini 大大
確實可以用了!!!
那我還想請問有沒有一個變數能代表當前領隊,以提供條件分歧使 ...


好像是这样的
class Game_Player < Game_Character
  alias sny46_160407_update update #(原来的函数名update变为 sny46_160407_update)
  def update
    update_change_leader#执行下面红色处的函数
    sny46_160407_update#执行原来update有的
  end

  def  update_change_leader
    unless ($game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing)
      if Input.trigger?(Input::X)
        $game_system.se_play($data_system.cursor_se)
        $game_party.actors.push($game_party.actors.shift)
        refresh
        return
      end
    end
  end
end
作者: 燕征    时间: 2016-4-9 02:26
燕征 发表于 2016-4-8 02:42
謝謝@cinderelmini 大大
確實可以用了!!!
那我還想請問有沒有一個變數能代表當前領隊,以提供條件分歧使 ...

@cinderelmini

再仔細看過解釋對照後就懂那兩行了(汗),謝謝><

那用來儲存領隊人物ID的變量可以直接用到條件分歧去判斷當前領隊是誰嗎?
RUBY 代码复制
  1. $game_variables[233] = $game_party.actors[0].id  # 把领队人物的ID代入233号变量,自己可以更改变量号。

$game_party.actors[0].id裡的[0]是資料庫中的主角ID吧?
所以我想要判斷現在的領隊是不是某個人,我就
腳本判斷

直接把這行放進條件分歧裡當判斷依據完全行不通

然而這樣做卻可以成功....
我換了個方向想,把分期條件設為: 變量[023:XXXX]==5(以我自己真得下去作為例,5是我要判斷的領隊在資料庫的主角裡的ID)
變數判斷


這兩種是差在哪裡勒?為什麼後面可以前面不行?
作者: cinderelmini    时间: 2016-4-9 12:54
本帖最后由 cinderelmini 于 2016-4-10 17:25 编辑
燕征 发表于 2016-4-9 02:26
@cinderelmini

再仔細看過解釋對照後就懂那兩行了(汗),謝謝><


1,那个变量可以直接用在事件里的条件分歧里,
不一定要用脚本,直接在分歧里选【变量】,然后选对应ID的那个变量就可以的。

2,不能用前者做判定,$game_party.actors是个随时会变化的人物队伍数组,
$game_actors才是数据库人物列表数组,
所以,如果要读取数据库5号人物的ID,
应该是$game_actors[5].id而不是$game_party.actors[5].id,






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