赞 | 0 |
VIP | 0 |
好人卡 | 2 |
积分 | 1 |
经验 | 2993 |
最后登录 | 2016-1-16 |
在线时间 | 130 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 130 小时
- 注册时间
- 2011-3-10
- 帖子
- 65
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
請求大大幫忙修改讓以下腳本
$game_party.reckon_time(0, 持續秒數, [開關編號])內的[開關編號]可以使用事件的獨立開關A.B.C...等等
- module Sword
- #=======================================
- #★ 魔劍工舖 - 多功能限時效果 1.00
- # 轉貼腳本請著名出處:http://blog.yam.com/a870053jjkj/
- # 如果採用在遊戲中,看你高興是否顯示腳本出處,但嚴禁說是自己寫的腳本!!
- #=======================================
- #● 使用者自定設置
- =begin
- ========================================
- ● 設置方法
- 設置限時效果:$game_party.reckon_time(效果編號, 持續秒數, 參數)
- 判斷限時效果:$game_party.reckon_time?(效果編號)
- 解除限時效果:$game_party.relief_reckon_time(效果編號)
- ========================================
- ● 限時效果列表(效果編號.效果名稱:參數)「*」符號表示可不加
- 0.開關變更:[開關編號](不同的開關視為不同的限時效果,所以可重複使用)
- 1.經驗加乘:[百分比, 戰鬥以外是否也加乘*](將 * 參數移除表示OFF)
- 2.金錢加乘:[百分比, 戰鬥以外是否也加乘*](將 * 參數移除表示OFF)
- 3.移動速度:[變更移動速度, 還原移動速度*](將 * 參數移除表示目前移動速度)
- 4.遇敵減少:[不遇敵率, 減少遇敵步數*](將 * 參數移除表示恢復該地圖遇敵步數)
- 5.遇敵增加:[遇敵率]
- ========================================
- 詳細設置說明請參考:http://blog.yam.com/a870053jjkj/article/27027561
- =end
- $Sword ? $Sword[39] = true : $Sword = {39=>true} # 腳本使用標誌
- $Sword_F12_Error = {39=>false} unless $Sword_F12_Error # F12除錯標誌
- ($Sword_VX = false ; RPG::Weather rescue $Sword_VX = true) if $Sword_VX == nil
- Sword39_Size = 1..5
- end
- #=======================================
- #□ 進行有關全體圖像處理的模塊
- class << Graphics
- #-------------------------------------------------------------
- #● 更新畫面
- alias sword39_update update unless $Sword_F12_Error[39]
- def update
- if $game_party
- Sword::Sword39_Size.each{|i| next if $game_party.reckon_times[i][0] == 0
- $game_party.relief_reckon_time(i) if Graphics.frame_count / Graphics.frame_rate >
- $game_party.reckon_times[i][0]}
- $game_party.reckon_times[0].each{|a, b| $game_party.relief_reckon_time(0, a) if
- Graphics.frame_count / Graphics.frame_rate > b}
- end
- sword39_update
- end
- end
- #=======================================
- #■ 處理同伴的類別
- class Game_Party
- attr_accessor :reckon_times # 計時秒數與資料
- attr_accessor :steps_record # 步數增加記錄標誌
- #-------------------------------------------------------------
- #● 初始化物件
- alias sword39_initialize initialize
- def initialize
- sword39_initialize ; @reckon_times = {0=>{}}
- Sword::Sword39_Size.each{|i| @reckon_times[i] = [0, []]}
- end
- #-------------------------------------------------------------
- #● 增加金錢 (減少)
- alias sword39_gain_gold gain_gold
- def gain_gold(n)
- #○ 金錢加乘(實際增加的處理)
- a = $Sword_VX ? ((not $game_temp.in_battle) and $game_party.reckon_times[2][2]) :
- ($game_temp.in_battle or $game_party.reckon_times[2][2])
- n = (n / 100.0 * $game_party.reckon_times[2][1]).to_i if reckon_time?(2) and a
- sword39_gain_gold(n)
- end
- #-------------------------------------------------------------
- #● 增加步數
- alias sword39_increase_steps increase_steps
- def increase_steps ; @steps_record = true ; sword39_increase_steps ; end
- #-------------------------------------------------------------
- #● 設置限時效果的方法
- def reckon_time(id, time, v)
- case id # 效果編號分歧(立即觸發效果用)
- when 0 #○ 開關變更(設為ON)
- @reckon_times[0][v[0]] = Graphics.frame_count / Graphics.frame_rate + time
- $game_switches[v[0]] = true ; $game_map.need_refresh = true ; return
- when 3 #○ 移動速度(修改速度)
- v[1] = $game_player.move_speed unless v[1] # 記憶移動速度
- $game_player.move_speed = v[0] # 設置新的移動速度
- end
- @reckon_times[id] = [Graphics.frame_count / Graphics.frame_rate + time] + v
- end
- #-------------------------------------------------------------
- #● 判斷限時效果的方法
- def reckon_time?(id, v = 0)
- return (not $game_party.reckon_times[0][v].nil?) if id == 0 #○ 開關變更(判斷開關)
- return $game_party.reckon_times[id][0] > 0
- end
- #-------------------------------------------------------------
- #● 解除限時效果的方法
- def relief_reckon_time(id, v = 0)
- case id # 效果編號分歧(立即解除效果用)
- when 0 #○ 開關變更(設為OFF)
- @reckon_times[0].delete(v)
- $game_switches[v] = false ; $game_map.need_refresh = true ; return
- when 3 #○ 移動速度(還原速度)
- $game_player.move_speed = $game_party.reckon_times[id][2]
- end
- $game_party.reckon_times[id] = [0, []]
- end
- end
- #=======================================
- #■ 處理角色的類別
- class Game_Actor
- if $Sword_VX # 重定義VX的方法
- #-----------------------------------------------------------
- #● 獲取經驗(獲取雙倍經驗值用)〈VX〉
- alias sword39_gain_exp gain_exp
- def gain_exp(exp, show)
- #○ 經驗加乘(實際增加的處理)
- (exp = (exp / 100.0 * $game_party.reckon_times[1][1]).to_i) if
- $game_party.reckon_time?(1) and
- (not $game_temp.in_battle) and $game_party.reckon_times[1][2]
- sword39_gain_exp(exp, show)
- end
- else # 重定義XP的方法
- #-----------------------------------------------------------
- #● 變更 EXP〈XP〉
- alias sword39_exp= exp=
- def exp=(exp)
- #○ 經驗加乘(實際增加的處理)
- (exp = ((exp - @exp) / 100.0 * $game_party.reckon_times[1][1]).to_i) if
- $game_party.reckon_time?(1) and
- ($game_temp.in_battle or $game_party.reckon_times[1][2])
- self.sword39_exp = exp
- end
- end
- end
- #=======================================
- #■ 處理角色的類別
- class Game_Character
- attr_accessor :move_speed # 地圖移動速度
- end
- #=======================================
- #■ 處理主角的類別
- class Game_Player < Game_Character
- #-------------------------------------------------------------
- #● 獲取遇敵計數
- alias sword39_encounter_count encounter_count
- def encounter_count
- #○ 遇敵減少
- if $game_party.reckon_time?(4) and @encounter_count <= 1 and $game_party.steps_record
- if $game_party.reckon_times[4][1] > rand(100)
- @encounter_count += $game_party.reckon_times[4][2] ?
- $game_party.reckon_times[4][2] : $game_map.encounter_step
- $game_party.steps_record = false ; return @encounter_count
- end ; end
- #○ 遇敵增加
- if $game_party.reckon_time?(5) and $game_party.steps_record
- if $game_party.reckon_times[5][1] > rand(100)
- @encounter_count = 0
- $game_party.steps_record = false ; return @encounter_count
- end ; end
- $game_party.steps_record = false ; sword39_encounter_count
- end
- end
- #=======================================
- #■ 處理敵人隊伍和戰鬥相關資料的類
- class Game_Troop
- if $Sword_VX
- #-----------------------------------------------------------
- #● 計算經驗值總數
- alias sword39_exp_total exp_total
- def exp_total
- if $game_party.reckon_time?(1)
- return (sword39_exp_total / 100.0 * $game_party.reckon_times[1][1]).to_i
- else ; return sword39_exp_total
- end
- end
- #-----------------------------------------------------------
- #● 計算金錢總數
- alias sword39_gold_total gold_total
- def gold_total
- if $game_party.reckon_time?(2)
- return (sword39_gold_total / 100.0 * $game_party.reckon_times[2][1]).to_i
- else ; return sword39_gold_total
- end
- end
- end
- end
- #=======================================
- #■ 戰鬥結束時、顯示獲得的 EXP 及金錢、寶物的視窗
- class Window_BattleResult < Window_Base
- #-------------------------------------------------------------
- #● 更新內容
- alias sword39_initialize initialize
- def initialize(exp, gold, treasures)
- exp = (exp / 100.0 * $game_party.reckon_times[1][1]).to_i if
- $game_party.reckon_time?(1) #○ 經驗加乘(戰鬥結束顯示數值的處理)
- gold = (gold / 100.0 * $game_party.reckon_times[2][1]).to_i if
- $game_party.reckon_time?(2) #○ 金錢加乘(戰鬥結束顯示數值的處理)
- sword39_initialize(exp, gold, treasures)
- end
- end
- $Sword_F12_Error[39] = true # F12除錯標誌
复制代码 |
|