Project1
标题:
请问现在VA又成熟的SRPG的模板或教程了吗?
[打印本页]
作者:
daidai11
时间:
2015-5-14 21:50
标题:
请问现在VA又成熟的SRPG的模板或教程了吗?
请教,想尝试做SRPG的战斗方式。还请教个问题,怎么取消等级制度,而保留经验值。
作者:
tseyik
时间:
2015-5-14 22:38
http://www.lemon-slice.net
SRPGコンバータNEXT for Ace 正式版公開!
汉化版v1.01下载(页面完全汉化,脚本汉化说明部分,消除RTP数据,添加追加的使用说明):
链接:
http://pan.baidu.com/s/1hq5Zc9I
密码:9xx3
アップデートファイル Ver. 1.06 (2015/5/10)
#==============================================================================
# ■ アップデートセクション Ver. 1.06
#------------------------------------------------------------------------------
# 「SRPGコンバータNEXT for Ace」の修正パッチです。
# このアップデートセクションを最新のものに上書きしていくことで修正できます。
#==============================================================================
#==============================================================================
# ●5/10 Ver. 1.06
# ・戦闘中の装備画面で、行動中のユニット以外で「最強装備」「すべて外す」が
# 動作しないように修正(カスタマイズで設定した場合のみ)
#==============================================================================
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
# アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors)
# の内部で使用され、Game_Party クラス($game_party)からも参照されます。
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 装備変更の可能判定
# slot_id : 装備スロット ID
#--------------------------------------------------------------------------
def equip_change_ok?(slot_id)
return false if equip_type_fixed?(equip_slots[slot_id])
return false if equip_type_sealed?(equip_slots[slot_id])
if $game_temp.battle_menu
if $game_variables[SRPG::TURN_TYPE] < 2
if SRPG.check_srpg(SRPG::BATTLE_TYPE) and SRPG::EQUIP_LIMIT_M
flag = self == $game_party.subject ? true : false
elsif SRPG.check_srpg(SRPG::BATTLE_TYPE) == false and SRPG::EQUIP_LIMIT_S
flag = self == $game_party.subject ? true : false
else
flag = true
end
else
if self.dead?
flag = false
elsif SRPG.check_srpg(SRPG::BATTLE_TYPE) and SRPG::EQUIP_LIMIT_M
flag = self.behaved == false ? true : false
elsif SRPG.check_srpg(SRPG::BATTLE_TYPE) == false and SRPG::EQUIP_LIMIT_S
flag = self.behaved == false ? true : false
else
flag = true
end
end
else
flag = true
end
return flag
end
end
#==============================================================================
# ■ Window_EquipSlot
#------------------------------------------------------------------------------
# 装備画面で、アクターが現在装備しているアイテムを表示するウィンドウです。
#==============================================================================
class Window_EquipSlot < Window_Selectable
#--------------------------------------------------------------------------
# ● 装備スロットを許可状態で表示するかどうか
#--------------------------------------------------------------------------
def enable?(index)
@actor ? @actor.equip_change_ok?(index) : false
end
end
#==============================================================================
# ●5/9 Ver. 1.05
# ・少人数戦闘でロード後に逃走の処理が正常に動作しない問題を修正
#==============================================================================
#==============================================================================
# ■ BattleManager
#------------------------------------------------------------------------------
# 戦闘の進行を管理するモジュールです。
#==============================================================================
module BattleManager
#--------------------------------------------------------------------------
# ● データのセーブ
#--------------------------------------------------------------------------
def self.data_save
array = []
array.push(@phase)
array.push(@can_escape)
array.push(@can_lose)
#array.push(@event_proc)
array.push(@preemptive)
array.push(@surprise)
array.push(@actor_index)
array.push(@action_forced)
array.push(@map_bgm)
array.push(@map_bgs)
array.push(@action_battlers)
array.push(@save_proc)
array.push(@escape_ratio)
return array
end
#--------------------------------------------------------------------------
# ● データのロード
#--------------------------------------------------------------------------
def self.data_load(array)
@phase = array.shift # 戦闘進行フェーズ
@can_escape = array.shift # 逃走可能フラグ
@can_lose = array.shift # 敗北可能フラグ
#@event_proc = array.shift # イベント用コールバック
@preemptive = array.shift # 先制攻撃フラグ
@surprise = array.shift # 不意打ちフラグ
@actor_index = array.shift # コマンド入力中のアクター
@action_forced = array.shift # 戦闘行動の強制
@map_bgm = array.shift # 戦闘前の BGM 記憶用
@map_bgs = array.shift # 戦闘前の BGS 記憶用
@action_battlers = array.shift # 行動順序リスト
@save_proc = array.shift # 戦闘の分岐の保存
@escape_ratio = array.shift # 逃走のための変数
branch = @save_proc[0] ; indent = @save_proc[1]
self.event_proc = Proc.new {|n| branch[indent] = n }
end
end
#==============================================================================
# ●5/8 Ver. 1.04
# ・行動回数が複数回あるキャラクターのターンでセーブ&ロードすると
# ロード時に行動回数がリセットされてしまう問題を修正
# ・少人数戦闘でアクターを加えた時に位置が正常に設定されない問題を修正
# ・少人数戦闘でロード時の処理にあった問題を修正
# ・少人数戦闘でロード後にユニットを出現させる処理が正常に動作しない問題を修正
#==============================================================================
#==============================================================================
# ■ Scene_SRPG
#------------------------------------------------------------------------------
# SRPG方式のバトル画面の処理を行うクラスです。
#==============================================================================
class Scene_SRPG < Scene_Base
#--------------------------------------------------------------------------
# ● ロード時初期化処理
#--------------------------------------------------------------------------
def load_initialize
save_map_data_when_load
BattleManager.data_load($game_temp.battle_manager)
if $game_variables[SRPG::TURN_TYPE] < 2
@subject = BattleManager.next_subject
else
@enemy_turn_flag = false
end
# 編集時のイベント位置初期化に対応
for unit in $game_temp.unit_data
next if unit == nil
character = get_character($game_temp.unit_data.index(unit))
character.moveto(unit.x, unit.y)
character.set_direction(unit.direction)
end
@save_party_members = $game_party.members.clone # パーティーメンバーを保存
event_xy_set
permit_xy_set
target_enemy_xy_set
$game_temp.call_load_manager = false
end
#--------------------------------------------------------------------------
# ● ユニットの入れ替え
#--------------------------------------------------------------------------
def party_reset
@battler_orders_window.refresh(BattleManager.action_battlers)
for unit in $game_temp.unit_data.compact
unit_appear(unit) if unit.appear_flag
end
if SRPG.check_srpg(SRPG::BATTLE_TYPE) == false
return if @save_party_members == $game_party.members
unit_data_new
for actor in $game_party.members
if not @save_party_members.include?(actor)
death_pena(actor)
vector = [8, 8, 8]
vector = vector_change(vector, @player_direction)
start_xy = check_start(@player_base_x, @player_base_y, @player_direction)
x_y = vector_cal(vector, start_xy[0], start_xy[1])
character = get_character($game_party.members.index(actor) + 101)
character.moveto(x_y[0], x_y[1])
actor.set_xy(x_y[0], x_y[1], character.direction)
character.set_direction(@player_direction)
@spriteset.set_new_character
end
end
@battler_orders_window.refresh(BattleManager.action_battlers)
@save_party_members = $game_party.members.clone
end
end
#--------------------------------------------------------------------------
# ● 戦闘終了時のために必要なマップデータを保存
#--------------------------------------------------------------------------
def save_map_data
$game_temp.map_data = $game_map.prebattle_map_data
$game_temp.map_brightness = $game_map.screen.brightness
$game_temp.slg_call_position = [$game_player.x, $game_player.y, $game_map.map_id, $game_player.direction]
if SRPG.check_srpg(SRPG::BATTLE_TYPE) == false
i = SRPG::BATTLEMAP_VARIABLE > 0 ? SRPG::BATTLEMAP_VARIABLE : 1
$game_map.setup($game_variables[i]) if SRPG.check_srpg(SRPG::OTHER_BATTLE_MAP)
$game_map.battle_setup_events
end
$game_map.set_panorama($game_temp.map_data)
$game_map.refresh
end
#--------------------------------------------------------------------------
# ● 戦闘終了時のために必要なマップデータを保存(ロード時用)
#--------------------------------------------------------------------------
def save_map_data_when_load
@player_base_x = $game_temp.slg_call_position[0]
@player_base_y = $game_temp.slg_call_position[1]
@player_direction = $game_temp.slg_call_position[3]
if SRPG.check_srpg(SRPG::BATTLE_TYPE) == false
i = SRPG::BATTLEMAP_VARIABLE > 0 ? SRPG::BATTLEMAP_VARIABLE : 1
$game_map.setup($game_variables[i]) if SRPG.check_srpg(SRPG::OTHER_BATTLE_MAP)
$game_map.battle_setup_events
end
$game_map.set_panorama($game_temp.map_data)
$game_map.refresh
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1