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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: fjm
打印 上一主题 下一主题

[胡扯] RPG回合制战斗太疯狂了,非常震撼

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2014-9-7
帖子
5
11
发表于 2017-3-31 10:31:42 | 只看该作者
你这样子,会6到没朋友的
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

12
发表于 2017-4-1 08:40:02 | 只看该作者
完成

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

預設為當擁有複數狀態時每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

点评

fjm
刚才把这问题发到提问区,现在已经解决了,再次感谢蚊子汤帮忙解决了难题  发表于 2017-4-1 20:54
fjm
非常感谢,刚才我把MP这一栏去掉了,腾出了不少空间,状态图标还是按照原先那样显示,就是能显示多个状态图标的那个,该怎么改下呢  发表于 2017-4-1 11:17
2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

13
发表于 2017-4-1 22:27:05 | 只看该作者
之前不是有預覽圖嗎,寫完之後還是決定用回默認
我表示哭暈在廁所
怒吃一口肉包!
@魔法丶小肉包

点评

刚刚看到这个帖子呢=w=  发表于 2017-4-1 22:38
fjm
我发现我做的游戏MP简直就没用,所以把MP去掉了,结果发现空了很多,就想用状态图标填补空缺  发表于 2017-4-1 22:31
2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2150
在线时间
1010 小时
注册时间
2015-10-17
帖子
1283
14
 楼主| 发表于 2017-4-1 22:51:53 | 只看该作者
QQ蚊子湯 发表于 2017-4-1 22:27
之前不是有預覽圖嗎,寫完之後還是決定用回默認
我表示哭暈在廁所
怒吃一口肉包!


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

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

00000.jpg

点评

沒有了,就是其他有顯示MP的地方如法炮製拿掉  发表于 2017-4-2 10:24
fjm
我感觉也能用了,你还有更好的想法吗  发表于 2017-4-2 09:20
還以為全部打掉了,不過MP拿掉的話很多地方也要修改  发表于 2017-4-2 00:19
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-30 23:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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