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

Project1

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

[已经解决] 請大家幫忙解答狀態的疑惑

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

跳转到指定楼层
1
发表于 2016-3-28 23:52:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如題

當你的角色有了狀態後,都只能看到一個狀態的圖片
但是詳細的狀態名字,這都怎麼看?  這樣玩家需要去記狀態圖案背後的意思很不方便
[神性领域扩张:扩张神性领域]
说了等于没说.

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
20675
在线时间
4885 小时
注册时间
2014-12-22
帖子
1527

开拓者

2
发表于 2016-3-29 06:10:36 | 只看该作者
所以要让图标尽可能的容易辨认、容易联想到效果、容易区分,这正是图标的意义啊
咳,这样的话你也许会喜欢xp?xp是直接用文字表示状态的来着。
不过就算都是麻痹,不同游戏的麻痹效果也是不同,最终还是要去记的。既然都决定玩了,记几个游戏设定也是需要的吧,不算苛刻吧嗯⋯⋯
设定的好记一点,不要太反人类。然后记得在战斗前做好教学,告诉玩家这图标是啥意思,有个什么效果的状态,别让玩家自己在战斗中摸索,我觉得就很ok了。

点评

做成武器或者防具,总之战斗中装备书的话就要舍弃掉部分防御力或者攻击能力……  发表于 2016-3-31 18:35
嗯,个人感觉放技能里从菜单的角度有点奇怪(想查状态一般不会想到去点技能栏?),不过做成书随时供查看是很好的方法~学习了~  发表于 2016-3-31 13:22
装备书的就有技能类别,可以查看所有状态。  发表于 2016-3-31 11:56
可以查看这个角色的技能能够附加的所有状态。然后弄个万法大全之类的书。  发表于 2016-3-31 11:55
图标用状态图,名称用状态名,技能描述可以填状态效果。  发表于 2016-3-31 11:54

评分

参与人数 2星屑 +10 梦石 +1 收起 理由
丿梁丶小柒 + 1 认可答案
duzine + 10 如果能同時擁有圖標跟文字說明就好了,玩家.

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
486 小时
注册时间
2007-5-27
帖子
807
3
发表于 2016-3-29 12:59:24 | 只看该作者
可以添加一个技能类别“状态”,用不能使用的技能写明状态的效果。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
582
在线时间
310 小时
注册时间
2016-2-29
帖子
210
4
发表于 2016-3-31 16:43:36 | 只看该作者
我有这个脚本,可在战斗中查看状态的信息,不过这个信息要你自己填写
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
582
在线时间
310 小时
注册时间
2016-2-29
帖子
210
5
发表于 2016-3-31 16:44:09 | 只看该作者
# ステ―ト詳細確認ウィンドウ
#
# 戦闘時、パーティコマンドに付与されているステートの詳細を確認するためのコマンド
# を追加します。

$imported_yana_scripts ||= {}
$imported_yana_scripts["StateHelpWindow"] = true

module StateHelp
  Buffs = {}
  States = []
  
# 请按照下面的描写进行备注

  Buffs[[0,:up]] = "HP+25%,最高5级\n持续5回合"
  Buffs[[1,:up]] = "MP+25%,最高5级\n持续5回合"
  Buffs[[2,:up]] = "物攻+25%,最高5级\n持续5回合"
  Buffs[[3,:up]] = "物防+25%,最高5级\n持续5回合"
  Buffs[[4,:up]] = "魔攻+25%,最高5级\n持续5回合"
  Buffs[[5,:up]] = "魔防+25%,最高5级\n持续5回合"
  Buffs[[6,:up]] = "敏捷+25%,最高5级\n持续5回合"
  Buffs[[7,:up]] = "幸运+25%,最高5级\n持续5回合"
  
  Buffs[[0,:down]] = "HP-25%,最高5级\n持续5回合"
  Buffs[[1,:down]] = "MP-25%,最高5级\n持续5回合"
  Buffs[[2,:down]] = "物攻-25%,最高5级\n持续5回合"
  Buffs[[3,:down]] = "物防-25%,最高5级\n持续5回合"
  Buffs[[4,:down]] = "魔攻-25%,最高5级\n持续5回合"
  Buffs[[5,:down]] = "魔防-25%,最高5级\n持续5回合"
  Buffs[[6,:down]] = "敏捷-25%,最高5级\n持续5回合"
  Buffs[[7,:down]] = "幸运-25%,最高5级\n持续5回合"

  States[1]  = "无法战斗:死亡。"
  States[2]  = "毒:生命再生-10%\n永续。"
  States[3]  = "致盲:物理命中率-60%\n2~4回合。"
  States[4]  = "沉默:无法使用技能\n2~3回合。"


end

class Game_BattlerBase
  attr_reader :buffs
end

class Window_State < Window_Selectable
  def initialize(help_window)
    super(0,0,32,32)
#~     self.x = [Graphics.width / 2 - self.width / 2,0].max
#~     self.y = [Graphics.height / 2 - self.height / 2,help_window.height].max
    self.openness = 0
    @help_window = help_window
    refresh
  end
  def all_battle_members;($game_party.battle_members + $game_troop.members).select{|m| m.exist? };end
  def row_max;all_battle_members.size;end
  def col_max
    m = all_battle_members.max_by{|a| a.state_icons.size + a.buff_icons.size }
    [m.state_icons.size + m.buff_icons.size,1].max
  end
  def item_max;row_max*col_max;end
  def item_height; line_height + 2 ; end
  def item_width; line_height + 2 ; end
   
  def fitting_window
    self.height = item_height * row_max + standard_padding*2
    self.width = 144+(col_max*item_width) + standard_padding*2
    self.x = [Graphics.width / 2 - self.width / 2,0].max
    self.y = [Graphics.height / 2 - self.height / 2,help_window.height].max
  end
  def refresh
    fitting_window
    make_data
    create_contents
    all_battle_members.each_with_index{|a,i|
      draw_actor_name(a,0,i*item_height+1)
      draw_text(128,i*item_height+1,20,line_height,":")
      draw_icons(a, 144, i*item_height+1, contents.width - 144)
    }
  end
  
  def draw_icons(subject, x, y, width = 96)
    icons = (subject.state_icons + subject.buff_icons)[0, width / item_width]
    icons.each_with_index {|n, i| draw_icon(n, x + item_width * i, y) }
  end
  
  def item_rect(index)
    rect = Rect.new
    rect.width = item_width
    rect.height = item_height
    rect.x = index % col_max * item_width + 143
    rect.y = index / col_max * item_height
    rect
  end
  
  def update_help
    @help_window.set_text(description)
  end
  
  def make_data
    @data = all_battle_members.inject([]){|r,m|
      a = []
      a += m.states.select{|st| st.icon_index != 0 }
      bf = []
      m.buffs.each_with_index{|b,i| bf.push([i,b > 0 ? :up : :down]) if b != 0}
      a += bf
      a += Array.new(col_max - a.size){nil} if col_max > a.size
      r += a
    }
  end
  
  def description
    return "" unless @data[index]
    if @data[index].is_a?(Array)
      return StateHelp::Buffs[@data[index]]
    else
      return StateHelp::States[@data[index].id]
    end
  end
  def cursor_down(wrap = false)
    return if @data.compact.empty?
    loop do
      select((index + col_max) % item_max)
      break if @data[index]
    end
  end
  def cursor_up(wrap = false)
    return if @data.compact.empty?
    loop do
      select((index - col_max + item_max) % item_max)
      break if @data[index]
    end
  end
  def cursor_right(wrap = false)
    return if @data.compact.empty?
    loop do
      select((index + 1) % item_max)
      break if @data[index]
    end
  end
  def cursor_left(wrap = false)
    return if @data.compact.empty?
    loop do
      select((index - 1 + item_max) % item_max)
      break if @data[index]
    end
  end
  def smooth_select
    return select(0) if @data.compact.empty?
    @data.each_with_index{|d,i|
      if d
        select(i)
        return
      end
    }
  end
end

class Window_PartyCommand < Window_Command
  alias _ex_state_make_command_list make_command_list
  def make_command_list
    _ex_state_make_command_list
    add_command("状态信息",  :state)
  end
end

class Scene_Battle < Scene_Base
  alias _ex_state_create_all_windows create_all_windows
  def create_all_windows
    _ex_state_create_all_windows
    create_state_window
  end
  alias _ex_state_create_party_command_window create_party_command_window
  def create_party_command_window
    _ex_state_create_party_command_window
    @party_command_window.set_handler(:state, method(:command_state))
  end

  def create_state_window
    @state_window = Window_State.new(@help_window)
    @state_window.set_handler(:ok,  method(:command_state_cancel))
    @state_window.set_handler(:cancel, method(:command_state_cancel))
    @state_window.unselect
  end
  
  def command_state
    @party_command_window.deactivate
    @state_window.refresh
    @state_window.open.activate.smooth_select
    @help_window.show
  end
  
  def command_state_cancel
    @state_window.deactivate.close.unselect
    @party_command_window.activate
    @help_window.hide
  end
end

点评

感謝提供腳本,不過我是ARPG遊戲,基本上用不到呢OAO  发表于 2016-4-1 00:43
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

6
 楼主| 发表于 2016-3-31 23:30:04 | 只看该作者
如果有隨時查看的腳本就太好了!

点评

更恶心的是三盾石皮,打他反弹元素和负能量伤害……不死生物免疫重击,正好适合这种流派……  发表于 2016-4-3 14:08
一直以来都用谭森变形术来装战士……也是DND里法师近战的套路之一……  发表于 2016-4-3 14:07
主角是个死灵系法术专精的巫妖……  发表于 2016-4-3 14:06
Overlord的背景设定基本上是DND……  发表于 2016-4-3 14:06
P網 = Pixiv  发表于 2016-4-2 22:00
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-28 07:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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