Project1

标题: RPG回合制战斗太疯狂了,非常震撼 [打印本页]

作者: fjm    时间: 2017-3-29 21:08
标题: RPG回合制战斗太疯狂了,非常震撼
本帖最后由 fjm 于 2017-3-29 21:23 编辑

用了内存优化脚本,这么多人同时回合制战斗非常流畅,感觉同时这么多人战斗,非常刺激,这是BOSS战,每个小兵都有2万的血量,不是一下子就能干掉的那种,战斗完心跳加速,等我全部测试完,发出了一起分享

1111111.jpg (54.95 KB, 下载次数: 28)

1111111.jpg

2222.jpg (62.58 KB, 下载次数: 30)

2222.jpg

333333.jpg (66.84 KB, 下载次数: 25)

333333.jpg

444444.jpg (62.67 KB, 下载次数: 26)

444444.jpg

作者: 89444640    时间: 2017-3-29 21:57
三国群英传 rm版XD
作者: QQ蚊子湯    时间: 2017-3-30 08:51
本帖最后由 QQ蚊子湯 于 2017-3-30 08:55 编辑

阿 感覺不錯!
可以吐槽隊伍裡面有美國總統嗎!

PS:看起來這個面板好像沒有顯示到所有隊友的狀態,能再改改
作者: yang1zhi    时间: 2017-3-30 09:45
能多个人物同时攻击吗,这样可以节省很多时间,毕竟这么多人
作者: 长弓巡洋集团    时间: 2017-3-30 10:19
骑砍千人战场的节奏...
作者: 芯☆淡茹水    时间: 2017-3-30 10:56
本帖最后由 芯☆淡茹水 于 2017-3-30 10:57 编辑

如果人太多的话,只是战斗过程持续的时间就非常长。
我记得有个回合战斗系统,比如 A,B,C 都是比 D 先行动,并且都是攻击 D 。如果是现行的回合制,
流程就是: A → D 结束后 B → D 结束后  C → D  。
而我所说的那种攻击模式是: A,B,C → D ,如果还有更多的,比如:E,F → G  ,这些都可以同时进行,
这样可以大大缩短战斗过程时间,并且看起来更壮观。
作者: dqy661    时间: 2017-3-30 12:16
你着啊杨人物太多会卡吗?
作者: 寂静的夜里    时间: 2017-3-30 12:22
用半即时的系统更刺激

作者: QQ蚊子湯    时间: 2017-3-31 00:10

狀態icon可以用輪播式只佔一格
作者: woshiying8    时间: 2017-3-31 00:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: homya    时间: 2017-3-31 10:31
你这样子,会6到没朋友的
作者: QQ蚊子湯    时间: 2017-4-1 08:40
完成

因為一時找不到輪流播放狀態圖標的插件,所以簡單的寫了一個

預設為當擁有複數狀態時每2秒改變一次狀態圖標,如果需要調整的話可以改一下17行的數字

因為空間有限,所以名字有四個字的話會超出來,不過除了金環三節之外想不到其他人有四個字了,我只有玩過三國O雙不是很理解!



RUBY 代码复制
  1. class Scene_Battle < Scene_Base
  2.     def start
  3.     super
  4.     create_spriteset
  5.     create_all_windows
  6.     BattleManager.method_wait_for_message = method(:wait_for_message)
  7.     @icon_rotate = 0
  8.   end
  9.     def update_basic
  10.     super
  11.     $game_timer.update
  12.     $game_troop.update
  13.     @spriteset.update
  14.     update_info_viewport
  15.     update_message_open
  16.     @icon_rotate += 1
  17.     if @icon_rotate > 120
  18.       $game_party.alive_members.each{|i| i.sort_states}
  19.       @status_window.refresh
  20.       @icon_rotate = 0
  21.     end
  22.   end
  23.     def update_info_viewport
  24.     move_info_viewport(0)   if @party_command_window.active
  25.     move_info_viewport(0) if @actor_command_window.active
  26.     move_info_viewport(0)  if BattleManager.in_turn?
  27.   end
  28.   def create_party_command_window
  29.     @party_command_window = Window_PartyCommand.new
  30.     @party_command_window.y = @info_viewport.rect.y - @party_command_window.height
  31.     @party_command_window.set_handler(:fight,  method(:command_fight))
  32.     @party_command_window.set_handler(:escape, method(:command_escape))
  33.     @party_command_window.unselect
  34.   end
  35.     def create_status_window
  36.     @status_window = Window_BattleStatus.new
  37.   end
  38.     def create_actor_command_window
  39.     @actor_command_window = Window_ActorCommand.new
  40.     @actor_command_window.y = @info_viewport.rect.y - @actor_command_window.height
  41.     @actor_command_window.x = Graphics.width - @actor_command_window.width
  42.     @actor_command_window.set_handler(:attack, method(:command_attack))
  43.     @actor_command_window.set_handler(:skill,  method(:command_skill))
  44.     @actor_command_window.set_handler(:guard,  method(:command_guard))
  45.     @actor_command_window.set_handler(:item,   method(:command_item))
  46.     @actor_command_window.set_handler(:cancel, method(:prior_command))
  47.   end
  48. end
  49. class Window_BattleEnemy < Window_Selectable
  50.     def initialize(info_viewport)
  51.     super(0, info_viewport.rect.y, window_width, fitting_height(6))
  52.     refresh
  53.     self.visible = false
  54.     @info_viewport = info_viewport
  55.   end
  56.   def window_width
  57.     Graphics.width
  58.   end
  59. end
  60. class Window_PartyCommand < Window_Command
  61.   def window_width
  62.     return 100
  63.   end
  64.     def visible_line_number
  65.     return 3
  66.   end
  67.     def alignment
  68.     return 1
  69.   end
  70. end
  71. class Window_BattleStatus < Window_Selectable
  72.   def window_width
  73.     Graphics.width
  74.   end
  75.     def col_max
  76.     return 2
  77.   end
  78.     def draw_actor_icons(actor, x, y, width = 96)
  79.     icons = (actor.state_icons + actor.buff_icons)[0, width / 24]
  80.     icons.each_with_index {|n, i| draw_icon(n, x + 24 * i, y) }
  81.   end
  82.     def draw_basic_area(rect, actor)
  83.     draw_actor_name(actor, rect.x - 7, rect.y, 100)
  84.     draw_actor_icons(actor, rect.x + 59 , rect.y, 24)
  85.   end
  86.   def spacing
  87.     return 4
  88.   end
  89.   def draw_actor_hp(actor, x, y, width = 124)
  90.     draw_gauge(x+60, y, width-15, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
  91.     change_color(system_color)
  92.     draw_text(x+55, y, 30, line_height, Vocab::hp_a)
  93.     draw_current_and_max_values(x+45, y, width, actor.hp, actor.mhp,
  94.       hp_color(actor), normal_color)
  95.   end
  96.   def draw_actor_mp(actor, x, y, width = 124)
  97.     draw_gauge(x+42, y, width-15, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
  98.     change_color(system_color)
  99.     draw_text(x+38, y, 30, line_height, Vocab::mp_a)
  100.     draw_current_and_max_values(x+25, y, width, actor.mp, actor.mmp,
  101.       mp_color(actor), normal_color)
  102.   end
  103.   def draw_actor_tp(actor, x, y, width = 124)
  104.     draw_gauge(x+25, y, width-20, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
  105.     change_color(system_color)
  106.     draw_text(x+20, y, 30, line_height, Vocab::tp_a)
  107.     change_color(tp_color(actor))
  108.     draw_text(x + width - 37, y, 42, line_height, actor.tp.to_i, 2)
  109.   end
  110. end
  111. class Game_Actor < Game_Battler
  112.     def sort_states
  113.     @states = @states.rotate!(1)
  114.   end
  115. end

作者: QQ蚊子湯    时间: 2017-4-1 22:27
之前不是有預覽圖嗎,寫完之後還是決定用回默認
我表示哭暈在廁所
怒吃一口肉包!
@魔法丶小肉包
作者: fjm    时间: 2017-4-1 22:51
QQ蚊子湯 发表于 2017-4-1 22:27
之前不是有預覽圖嗎,寫完之後還是決定用回默認
我表示哭暈在廁所
怒吃一口肉包!


你设计的方案很好用,我正为了看不到其他角色的状态发愁,真是雪中送炭啊,多谢了,MP删了空了很多,放3个图标正好填满

00000.jpg (63.18 KB, 下载次数: 25)

00000.jpg





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