Project1

标题: 关于菜单状态栏和当敌人处于某种状态的问题 [打印本页]

作者: kuragemafuyu    时间: 2016-2-29 16:29
标题: 关于菜单状态栏和当敌人处于某种状态的问题
有两个问题想请教一下
1,菜单中,点击状态不是可以查看队伍中角色的能力,简介之类的吗?我想问问这个地方能不能把人物的小头像改成立绘图
2.我想设置一些技能的效果是“当敌人处于某种异常状态时技能伤害增加",但是点开分支条件后发现只能设置固定敌人,而不能设置为所有敌人,而且固定敌人只有1-8的数字,也不知道究竟是对应哪一个固定敌人

请懂的指教,谢谢
作者: david_ng223    时间: 2016-2-29 17:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 紫苍焰    时间: 2016-2-29 17:16
……
b.state?(29)?a.atk*20:a.atk*10
以上。
公式里这么填即可。
这个的意思是目标身上有29号状态的话攻击力翻倍。
自己要啥效果在?后面自己改就行了。
作者: kuragemafuyu    时间: 2016-2-29 17:46
紫苍焰 发表于 2016-2-29 17:16
……
b.state?(29)?a.atk*20:a.atk*10
以上。

谢谢,但是我设定的技能的伤害都是和攻击,防御等数值无关的,就是固定伤害,比如固定伤害是50,和敌人的防御也没有关系。如果是这种情况,公式还能改吗?就是直接改成处于X状态时固定伤害+10,+20这样
作者: 午睡的风铃    时间: 2016-2-29 19:04
塞Main上面或直接在Game_Battler里改
  1. #==============================================================================
  2. # ■ Game_Battler
  3. #==============================================================================
  4. class Game_Battler < Game_BattlerBase
  5.   #--------------------------------------------------------------------------
  6.   # ● 计算伤害
  7.   #--------------------------------------------------------------------------
  8.   def make_damage_value(user, item)
  9.     value = item.damage.eval(user, self, $game_variables)
  10.     # --------------------
  11.     if item.is_a?(RPG::Skill)
  12.        case item.id
  13.        when 131,132,133..139  # 受影响的技能ID

  14.          # 造成影响的状态ID    伤害值
  15.          if self.state?(31);  value *= 2.25;   end  # 2.25倍
  16.          if self.state?(32);  value += 100;   end   # +100

  17.        end
  18.     end
  19.     # --------------------
  20.     value *= item_element_rate(user, item)
  21.     value *= pdr if item.physical?
  22.     value *= mdr if item.magical?
  23.     value *= rec if item.damage.recover?
  24.     value = apply_critical(value) if @result.critical
  25.     value = apply_variance(value, item.damage.variance)
  26.     value = apply_guard(value)
  27.     @result.make_damage(value.to_i, item)
  28.   end
  29. end
复制代码

作者: kuragemafuyu    时间: 2016-2-29 19:46
午睡的风铃 发表于 2016-2-29 19:04
塞Main上面或直接在Game_Battler里改

谢谢,问题解决了。

继续求问第一个问题
作者: kuragemafuyu    时间: 2016-2-29 21:01
午睡的风铃 发表于 2016-2-29 19:04
塞Main上面或直接在Game_Battler里改

“换成立绘貌似要重新规划状态界面,说来你打算咋规划你的状态界面?”


比较想要版面的右边是人物的立绘,左边是游戏默认的那些数据。攻击防御这些数值可以不要,但要留着简介,名字之类的基本信息,主要呈现出角色的感觉。
作者: shencao    时间: 2016-2-29 21:24
第一个问题这里有脚本,但是原网站禁止转载所以我只贴网站地址好了:
Code Crush  http://codecrush.iza-yoi.net/

在菜单找到  VXAce-RGSS3 → メニュー系 → 立ち絵ステータス

PS,利用请注意看一下规约哟~
作者: 午睡的风铃    时间: 2016-2-29 21:47
本帖最后由 午睡的风铃 于 2016-2-29 21:51 编辑

回復时没看见楼上已经回过了,并且我打不开那个网站(大概我没翻墙或没vpn?)......

只是单纯的在状态界面里加了个透明的窗口放立绘,规划什么的就靠你了(拍肩膀) = =
需要立绘窗口的优先级低于原本的状态窗口时建议把状态窗口的宽度改成不是全屏宽
  1. #==============================================================================
  2. # 状态画面中显示角色立绘的窗口
  3. #==============================================================================
  4. # *立绘放在 Pictures 文件夹内
  5. # *每个队伍中的角色都要有对应的立绘,不然在查看无立绘角色的状态时会报错。
  6. # *立绘命名格式 ActorPortrait + 角色ID
  7. #  例:ActorPortrait1  是1号角色
  8. #    ActorPortrait22 是22号角色
  9. # *默认立绘窗口优先级高于状态窗口,即立绘会把状态遮住。
  10. module ACPO
  11.   APX = 400   # 调整立绘X坐标
  12.   APY = 0     # 调整立绘Y坐标
  13.   STWZ = 0    # 状态窗口优先级,需要高于立绘窗口时设为200即可。
  14. end
  15. #==============================================================================
  16. # ■ Window_ActorPortrait
  17. #==============================================================================
  18. class Window_ActorPortrait < Window_Base
  19.   #--------------------------------------------------------------------------
  20.   # ● 初始化
  21.   #--------------------------------------------------------------------------
  22.   def initialize(dx, dy, command_window)
  23.     super(-20, -12, Graphics.width + 40, Graphics.height + 24)
  24.     self.opacity = 0
  25.     refresh
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 角色
  29.   #--------------------------------------------------------------------------
  30.   def actor=(actor)
  31.     return if @actor == actor
  32.     @actor = actor
  33.     refresh
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 刷新
  37.   #--------------------------------------------------------------------------
  38.   def refresh
  39.     contents.clear
  40.     return unless @actor
  41.     draw_portrait
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 绘制角色肖像画
  45.   #--------------------------------------------------------------------------
  46.   def draw_portrait
  47.     bitmap = Cache.picture("ActorPortrait" + @actor.id.to_s)
  48.     rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  49.     contents.blt(ACPO::APX - bitmap.width / 2,
  50.                  ACPO::APY + contents_height - bitmap.height, bitmap, rect)
  51.     bitmap.dispose
  52.   end
  53. end
  54. #==============================================================================
  55. # ■ Window_Status
  56. #==============================================================================
  57. class Window_Status < Window_Selectable
  58.   #--------------------------------------------------------------------------
  59.   # ● 绘制区域 2
  60.   #--------------------------------------------------------------------------
  61.   def draw_block2(y)
  62.     draw_basic_info(136, y)
  63.     draw_exp_info(304, y)
  64.   end
  65. end
  66. #==============================================================================
  67. # ■ Scene_Status
  68. #==============================================================================
  69. class Scene_Status < Scene_MenuBase
  70.   #--------------------------------------------------------------------------
  71.   # ● 开始处理
  72.   #--------------------------------------------------------------------------
  73.   def start
  74.     super
  75.     create_status_window
  76.     create_portrait_window
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 生成状态窗口
  80.   #--------------------------------------------------------------------------
  81.   def create_status_window
  82.     @status_window = Window_Status.new(@actor)
  83.     @status_window.set_handler(:cancel,   method(:return_scene))
  84.     @status_window.set_handler(:pagedown, method(:next_actor))
  85.     @status_window.set_handler(:pageup,   method(:prev_actor))
  86.     @status_window.z = ACPO::STWZ
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● 生成肖像画窗口
  90.   #--------------------------------------------------------------------------
  91.   def create_portrait_window
  92.     @actorportrait_window = Window_ActorPortrait.new(0, 0, @command_window)
  93.     @actorportrait_window.viewport = @viewport
  94.     @actorportrait_window.actor = @actor
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 切换角色
  98.   #--------------------------------------------------------------------------
  99.   def on_actor_change
  100.     @status_window.actor = @actor
  101.     @actorportrait_window.actor = @actor
  102.     @status_window.activate
  103.   end
  104. end
复制代码





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