设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 966|回复: 2
打印 上一主题 下一主题

[已经过期] 請求幫忙修改『多功能限時腳本』

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2011-3-10
帖子
65
跳转到指定楼层
1
发表于 2014-5-11 05:40:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
請求大大幫忙修改讓以下腳本

$game_party.reckon_time(0, 持續秒數, [開關編號])內的[開關編號]可以使用事件的獨立開關A.B.C...等等

  1. module Sword
  2. #=======================================
  3. #★ 魔劍工舖 - 多功能限時效果 1.00
  4. # 轉貼腳本請著名出處:http://blog.yam.com/a870053jjkj/
  5. # 如果採用在遊戲中,看你高興是否顯示腳本出處,但嚴禁說是自己寫的腳本!!
  6. #=======================================
  7. #● 使用者自定設置
  8. =begin
  9. ========================================
  10. ● 設置方法
  11. 設置限時效果:$game_party.reckon_time(效果編號, 持續秒數, 參數)
  12. 判斷限時效果:$game_party.reckon_time?(效果編號)
  13. 解除限時效果:$game_party.relief_reckon_time(效果編號)
  14. ========================================
  15. ● 限時效果列表(效果編號.效果名稱:參數)「*」符號表示可不加
  16. 0.開關變更:[開關編號](不同的開關視為不同的限時效果,所以可重複使用)
  17. 1.經驗加乘:[百分比, 戰鬥以外是否也加乘*](將 * 參數移除表示OFF)
  18. 2.金錢加乘:[百分比, 戰鬥以外是否也加乘*](將 * 參數移除表示OFF)
  19. 3.移動速度:[變更移動速度, 還原移動速度*](將 * 參數移除表示目前移動速度)
  20. 4.遇敵減少:[不遇敵率, 減少遇敵步數*](將 * 參數移除表示恢復該地圖遇敵步數)
  21. 5.遇敵增加:[遇敵率]
  22. ========================================
  23. 詳細設置說明請參考:http://blog.yam.com/a870053jjkj/article/27027561
  24. =end
  25.   $Sword ? $Sword[39] = true : $Sword = {39=>true} # 腳本使用標誌
  26.   $Sword_F12_Error = {39=>false} unless $Sword_F12_Error # F12除錯標誌
  27.   ($Sword_VX = false ; RPG::Weather rescue $Sword_VX = true) if $Sword_VX == nil
  28.   Sword39_Size = 1..5
  29. end
  30. #=======================================
  31. #□ 進行有關全體圖像處理的模塊
  32. class << Graphics
  33.   #-------------------------------------------------------------
  34.   #● 更新畫面
  35.   alias sword39_update update unless $Sword_F12_Error[39]
  36.   def update
  37.     if $game_party
  38.       Sword::Sword39_Size.each{|i| next if $game_party.reckon_times[i][0] == 0
  39.       $game_party.relief_reckon_time(i) if Graphics.frame_count / Graphics.frame_rate >
  40.       $game_party.reckon_times[i][0]}
  41.       $game_party.reckon_times[0].each{|a, b| $game_party.relief_reckon_time(0, a) if
  42.       Graphics.frame_count / Graphics.frame_rate > b}
  43.     end
  44.     sword39_update
  45.   end
  46. end
  47. #=======================================
  48. #■ 處理同伴的類別
  49. class Game_Party
  50.   attr_accessor :reckon_times # 計時秒數與資料
  51.   attr_accessor :steps_record # 步數增加記錄標誌
  52.   #-------------------------------------------------------------
  53.   #● 初始化物件
  54.   alias sword39_initialize initialize
  55.   def initialize
  56.     sword39_initialize ; @reckon_times = {0=>{}}
  57.     Sword::Sword39_Size.each{|i| @reckon_times[i] = [0, []]}
  58.   end
  59.   #-------------------------------------------------------------
  60.   #● 增加金錢 (減少)
  61.   alias sword39_gain_gold gain_gold
  62.   def gain_gold(n)
  63.     #○ 金錢加乘(實際增加的處理)
  64.     a = $Sword_VX ? ((not $game_temp.in_battle) and $game_party.reckon_times[2][2]) :
  65.     ($game_temp.in_battle or $game_party.reckon_times[2][2])
  66.     n = (n / 100.0 * $game_party.reckon_times[2][1]).to_i if reckon_time?(2) and a
  67.     sword39_gain_gold(n)
  68.   end
  69.   #-------------------------------------------------------------
  70.   #● 增加步數
  71.   alias sword39_increase_steps increase_steps
  72.   def increase_steps ; @steps_record = true ; sword39_increase_steps ; end
  73.   #-------------------------------------------------------------
  74.   #● 設置限時效果的方法
  75.   def reckon_time(id, time, v)
  76.     case id # 效果編號分歧(立即觸發效果用)
  77.     when 0 #○ 開關變更(設為ON)
  78.       @reckon_times[0][v[0]] = Graphics.frame_count / Graphics.frame_rate + time
  79.       $game_switches[v[0]] = true ; $game_map.need_refresh = true ; return
  80.     when 3 #○ 移動速度(修改速度)
  81.       v[1] = $game_player.move_speed unless v[1] # 記憶移動速度
  82.       $game_player.move_speed = v[0] # 設置新的移動速度
  83.     end
  84.     @reckon_times[id] = [Graphics.frame_count / Graphics.frame_rate + time] + v
  85.   end
  86.   #-------------------------------------------------------------
  87.   #● 判斷限時效果的方法
  88.   def reckon_time?(id, v = 0)
  89.     return (not $game_party.reckon_times[0][v].nil?) if id == 0 #○ 開關變更(判斷開關)
  90.     return $game_party.reckon_times[id][0] > 0
  91.   end
  92.   #-------------------------------------------------------------
  93.   #● 解除限時效果的方法
  94.   def relief_reckon_time(id, v = 0)
  95.     case id # 效果編號分歧(立即解除效果用)
  96.     when 0 #○ 開關變更(設為OFF)
  97.       @reckon_times[0].delete(v)
  98.       $game_switches[v] = false ; $game_map.need_refresh = true ; return
  99.     when 3 #○ 移動速度(還原速度)
  100.       $game_player.move_speed = $game_party.reckon_times[id][2]
  101.     end
  102.     $game_party.reckon_times[id] = [0, []]
  103.   end
  104. end
  105. #=======================================
  106. #■ 處理角色的類別
  107. class Game_Actor
  108.   if $Sword_VX # 重定義VX的方法
  109.     #-----------------------------------------------------------
  110.     #● 獲取經驗(獲取雙倍經驗值用)〈VX〉
  111.     alias sword39_gain_exp gain_exp
  112.     def gain_exp(exp, show)
  113.       #○ 經驗加乘(實際增加的處理)
  114.       (exp = (exp / 100.0 * $game_party.reckon_times[1][1]).to_i) if
  115.       $game_party.reckon_time?(1) and
  116.       (not $game_temp.in_battle) and $game_party.reckon_times[1][2]
  117.       sword39_gain_exp(exp, show)
  118.     end
  119.   else # 重定義XP的方法
  120.     #-----------------------------------------------------------
  121.     #● 變更 EXP〈XP〉
  122.     alias sword39_exp= exp=
  123.     def exp=(exp)
  124.       #○ 經驗加乘(實際增加的處理)
  125.       (exp = ((exp - @exp) / 100.0 * $game_party.reckon_times[1][1]).to_i) if
  126.       $game_party.reckon_time?(1) and
  127.       ($game_temp.in_battle or $game_party.reckon_times[1][2])
  128.       self.sword39_exp = exp
  129.     end
  130.   end
  131. end
  132. #=======================================
  133. #■ 處理角色的類別
  134. class Game_Character
  135.   attr_accessor :move_speed # 地圖移動速度
  136. end
  137. #=======================================
  138. #■ 處理主角的類別
  139. class Game_Player < Game_Character
  140.   #-------------------------------------------------------------
  141.   #● 獲取遇敵計數
  142.   alias sword39_encounter_count encounter_count
  143.   def encounter_count
  144.     #○ 遇敵減少
  145.     if $game_party.reckon_time?(4) and @encounter_count <= 1 and $game_party.steps_record
  146.     if $game_party.reckon_times[4][1] > rand(100)
  147.       @encounter_count += $game_party.reckon_times[4][2] ?
  148.       $game_party.reckon_times[4][2] : $game_map.encounter_step
  149.       $game_party.steps_record = false ; return @encounter_count
  150.     end ; end
  151.     #○ 遇敵增加
  152.     if $game_party.reckon_time?(5) and $game_party.steps_record
  153.     if $game_party.reckon_times[5][1] > rand(100)
  154.       @encounter_count = 0
  155.       $game_party.steps_record = false ; return @encounter_count
  156.     end ; end
  157.     $game_party.steps_record = false ; sword39_encounter_count
  158.   end
  159. end
  160. #=======================================
  161. #■ 處理敵人隊伍和戰鬥相關資料的類
  162. class Game_Troop
  163.   if $Sword_VX
  164.     #-----------------------------------------------------------
  165.     #● 計算經驗值總數
  166.     alias sword39_exp_total exp_total
  167.     def exp_total
  168.       if $game_party.reckon_time?(1)
  169.         return (sword39_exp_total / 100.0 * $game_party.reckon_times[1][1]).to_i
  170.       else ; return sword39_exp_total
  171.       end
  172.     end
  173.     #-----------------------------------------------------------
  174.     #● 計算金錢總數
  175.     alias sword39_gold_total gold_total
  176.     def gold_total
  177.       if $game_party.reckon_time?(2)
  178.         return (sword39_gold_total / 100.0 * $game_party.reckon_times[2][1]).to_i
  179.       else ; return sword39_gold_total
  180.       end
  181.     end
  182.   end
  183. end
  184. #=======================================
  185. #■ 戰鬥結束時、顯示獲得的 EXP 及金錢、寶物的視窗
  186. class Window_BattleResult < Window_Base
  187.   #-------------------------------------------------------------
  188.   #● 更新內容
  189.   alias sword39_initialize initialize
  190.   def initialize(exp, gold, treasures)
  191.     exp = (exp / 100.0 * $game_party.reckon_times[1][1]).to_i if
  192.     $game_party.reckon_time?(1) #○ 經驗加乘(戰鬥結束顯示數值的處理)
  193.     gold = (gold / 100.0 * $game_party.reckon_times[2][1]).to_i if
  194.     $game_party.reckon_time?(2) #○ 金錢加乘(戰鬥結束顯示數值的處理)
  195.     sword39_initialize(exp, gold, treasures)
  196.   end
  197. end
  198. $Sword_F12_Error[39] = true # F12除錯標誌
复制代码

Lv2.观梦者

永无止境的旅程

梦石
0
星屑
503
在线时间
1552 小时
注册时间
2012-6-19
帖子
1226

开拓者贵宾

2
发表于 2014-5-11 18:29:14 | 只看该作者
没有这个技能,或者是我没听明白。
LZ有那么好用的开关不用一定要用独立开关?
[url=https://rpg.blue/thread-389697-1-1.html]https://rpg.blue/https://rpg.blue/data/attachment/forum/201602/26/220128cfbxxs47xth4xkz4.jpg[/url]
&lt;font size=&quot;5&quot;&gt;[color=Green][url=https://rpg.blue/forum.php?mod=viewthread&amp;tid=396208&amp;extra=page%3D1][color=DeepSkyBlue]全新配套ACT系统,每周末一大更新,尽请期待。[/color][/url][/color]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2011-3-10
帖子
65
3
 楼主| 发表于 2014-5-12 02:51:52 | 只看该作者
丿梁丶小柒 发表于 2014-5-11 18:29
没有这个技能,或者是我没听明白。
LZ有那么好用的开关不用一定要用独立开关?  ...

其實可以多設定幾個開關就好,只是不同事件若能直接使用獨立開關會方便很多

會有這個需求是因為做明雷遇敵的戰鬥,一般事件若是使用並行那麼與角色在不同地圖內的事件就不會執行

所以需要這個腳本的功能,如果能使用獨立開關,就不用建立那麼多的開關囉@@"

不然一個場景,20張地圖每張地圖又有兩個明雷敵人,等於要做上40個開關才行="=

可以的話就希望有能力的人幫幫忙囉 呵呵...因為腳本甚麼的 真的看不懂...- -
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-8 03:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表