赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 8796 |
最后登录 | 2024-11-19 |
在线时间 | 330 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 85
- 在线时间
- 330 小时
- 注册时间
- 2010-5-4
- 帖子
- 173
|
本帖最后由 亂堂和樹 于 2012-11-12 03:44 编辑
請問...要怎麼做才能讓資料庫里的人物~
多了一個種族與個性~兩種不同的辨認法呢?
因為要做戰棋遊戲...想弄一點不同的..
種族是人類.獸人.魔族.精靈...大約有7種
個性是暫時用SD的
超弱氣
弱氣
普通
強氣
超強氣這5種~
但是想要的效果...有點點複雜..
先說種族辨認~
要怎麼做才能讓資料庫角色跟敵方~都能有種族辨認呢?
而且假設...
種族是人類的話
攻擊與移動各+20點
辨認好之後~能力直接附加~但是應該是白色字體(默認)
要如何變成能力附加後變成其他顏色?
像圖這樣顯示~綠色的是已經附加過後的數值
至於個性...SRPG2腳本部分要修改才能做到吧...(我這點認知還是有..
假如說想把個性做成像SD那樣~或是類似怒氣條
隨著怒氣提升~爆擊率也會大幅提升~或是改變行走圖與頭像
請問這樣要怎麼做呢?
我只知道SRPG2腳本中...有一段是這個..這應該是類似獲取經驗的部分..
想說..個性取得之後..想要攻擊敵人後也像獲得經驗那樣增加..也是這邊要作修改吧
另外問個傻問題...要是獲得經驗..想要出現臉圖之類的..像是升級提是那樣..
也是這裡要作修改吧?
#--------------------------------------------------------------------------
# ● 行動の実行
#update1.003
#update1.012
#update1.0121
#--------------------------------------------------------------------------
def execute_action(x, y)
# 攻撃可能セルが選択されていなければ終了
unless @attack_cell.include?([x, y])
Sound.play_buzzer
return
end
# 現在の効果範囲上に生きている誰かがいれば実行
@action_result_exp = 0
@action_result_item.clear
@action_result_gold = 0
targets = [] # ターゲットの配列を作成
@coop_unit_list = []
for pos in @effect_cell
event = $game_srpg.target_xy(x + pos[0], y + pos[1])[0]
targets.push(event) if event != nil
end
obj = @event.unit.action.obj
if obj.is_a?(RPG::BaseItem) and obj.dual? # 連続攻撃なら同じターゲットを追加
targets += targets
end
if targets.empty? # ターゲットがいない
Sound.play_buzzer
@message_mini_window.refresh("ターゲットが見つかりません", 60)
return
end
@event.turn_cell(x, y) # 攻撃する方向を向く
if @event.unit.action.attack? # 通常攻撃
level = execute_action_attack(targets)
elsif @event.unit.action.skill? # スキル
level = execute_action_obj(targets)
elsif @event.unit.action.item? # アイテム
level = execute_action_obj(targets)
end
@event.action_end = true # 行動済みフラグを立てる
unless $game_srpg.enemy_turn? # 味方ターン限定の処理
$game_srpg.scene_state = 0 # ニュートラルへ移行する
@status_window.refresh($game_srpg.alive_unit_xy(x, y)) # ステータスウィンドウの再描画
end
unless @event.enemy_flag # 味方行動時限定の処理
for event in @coop_unit_list # 協力攻撃者も経験値取得
next if event.enemy_flag
exp = @action_result_exp + event.unit.action_exp
exp = [exp + exp * (level - event.unit.level) * 10 / 100, 1].max
event.unit.gain_exp(exp / 2 + 1, true)
event.unit.gain_job_exp(exp, true) if $include_tjex
text = sprintf("EXP+%d", exp / 2 + 1)
$game_srpg.add_popup(event.real_x, event.real_y, text, Color.new(255, 255, 255), 1)
end
exp = @action_result_exp + @event.unit.action_exp
exp = [exp + exp * (level - @event.unit.level) * 10 / 100, 1].max
@event.unit.gain_exp(exp, true)
@event.unit.gain_job_exp(exp, true) if $include_tjex
text = sprintf("EXP+%d", exp)
$game_srpg.add_popup(@event.real_x, @event.real_y, text, Color.new(255, 255, 255), 1)
end
if @action_result_gold > 0 # お金の取得
$game_party.gain_gold(@action_result_gold)
text = sprintf(Vocab::ObtainGold, @action_result_gold, Vocab::gold)
$game_message.texts.push(text)
end
if @action_result_item.size > 0 # アイテムの取得
for item in @action_result_item
$game_party.gain_item(item, 1)
text = sprintf(Vocab::ObtainItem, item.name)
$game_message.texts.push(text)
end
end
wait_for_message
end
|
|