Project1

标题: 請問因地形改變戰鬥背景的腳本如何使用? [打印本页]

作者: a747266    时间: 2007-6-22 15:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: a747266    时间: 2007-6-22 15:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-6-22 18:53
RGSS39 依照地形識別戰鬥背景
根據進入戰鬥的地圖上的位置 (依照地形標志),
改變戰鬥背景。
能指定更加適合地圖的戰鬥背景。
依照地形識別戰鬥背景

↓實際上使用看看的話,就是這種感覺。

↓地形標志 0 ↓

↓地形標志 1 ↓

↓地形標志 2 ↓

以下是腳本的中文譯本:

  1. #==============================================================================
  2. # ■根據地形識別戰鬥背景                 by Claimh
  3. #------------------------------------------------------------------------------
  4. #   根據戰鬥地形發生的地點而改變戰鬥背景。
  5. #==============================================================================

  6. module Map_BattleBack
  7.   MAP_BB = []
  8. #==============================================================================
  9. # □自定義 START
  10. #==============================================================================
  11.   # 讓地形標志決定戰鬥背景有效的開關
  12.   # (這個開關 OFF 的時候改變戰鬥背景)
  13.   BB_SW_ID = 1 #默認爲1號開關

  14.   # 由地圖&當地形標志決定的戰鬥背景指定
  15.   # MAP_BB[地圖 ID]={
  16.   # 當地形標志 => 戰鬥背景的文件夾名 (Graphics/BattleBack 內 )
  17.   # }
  18.   MAP_BB[1] = {
  19.     1 => "002-Woods01",
  20.     2 => "006-Desert01"
  21.   }
  22. #==============================================================================
  23. # □自定義 END
  24. #==============================================================================
  25.   module_function
  26.   #--------------------------------------------------------------------------
  27.   # ●背景取得
  28.   #--------------------------------------------------------------------------
  29.   def get_battle_back(map_id, tag_id)
  30.     # 沒有數據
  31.     return nil if MAP_BB[map_id].nil?
  32.     # 沒有地形標志
  33.     return nil if MAP_BB[map_id][tag_id].nil?
  34.     # 取得成功
  35.     return MAP_BB[map_id][tag_id]
  36.   end
  37. end

  38. #==============================================================================
  39. # ■ Game_Map
  40. #==============================================================================
  41. class Game_Map
  42.   #--------------------------------------------------------------------------
  43.   # ●背景取得
  44.   #--------------------------------------------------------------------------
  45.   alias battleback_name_map_bb battleback_name
  46.   def battleback_name
  47.     # 當地形背景變更處理是無效的場合
  48.     if $game_switches[Map_BattleBack::BB_SW_ID]
  49.       return battleback_name_map_bb
  50.     else
  51.       # 取得地形標志
  52.       tag_id = terrain_tag($game_player.x, $game_player.y)
  53.       # 取得背景文件夾
  54.       map_bb_name = Map_BattleBack.get_battle_back(@map_id, tag_id)
  55.       if map_bb_name.nil?
  56.         return battleback_name_map_bb
  57.       else
  58.         return map_bb_name
  59.       end
  60.     end
  61.   end
  62. end
复制代码


這個腳本很好啊。首先關閉1號開關,然後在自定義裏面定義好每個地圖的ID,地形標志所決定的戰鬥背景。地形標志請在圖塊-地形標志裏設計。
其實這個和66的區域遇敵思路差不多,但更爲簡單明了。
用事件也可以做,就是分歧太多了。

作者: 精灵使者    时间: 2007-6-22 18:54
由于网络发布重帖,此帖已被作者屏蔽!

  

作者: a747266    时间: 2007-6-22 19:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-6-23 00:25
以下引用a747266于2007-6-22 11:05:41的发言:

感謝詳細回答
可是我就是用這樣方法操作數次後,還是無效
即使重建新遊戲測試也一樣,不知道是哪裡出問題

不知您能否測試過後,傳個工程上來


[本贴由作者于 2007-6-22 11:13:16 最后编辑]

肯定是無效的,因爲你沒有按格式修改腳本部分內容。
# 由地圖&當地形標志決定的戰鬥背景指定
  # MAP_BB[地圖 ID]={
  # 當地形標志 => 戰鬥背景的文件夾名 (Graphics/BattleBack 內 )
  # }
  MAP_BB[1] = {
    1 => "002-Woods01",
    2 => "006-Desert01"
  }

在这里按照注释写好所有图块优先级对应的战斗背景……
作者: a747266    时间: 2007-6-23 03:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-6-23 05:21
地形標志請在數據庫-圖塊-地形標志裏設計。
你应该知道的。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: a747266    时间: 2007-6-23 05:56
提示: 作者被禁止或删除 内容自动屏蔽




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