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

Project1

 找回密码
 注册会员
搜索

有關異常狀態的排序、指定角色問題

查看数: 1926 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-12-1 23:13

正文摘要:

各位大大們打擾了,我有一堆問題卻不知該怎麼發問,於是先挑這兩個....我可能比較容易理解的問題 問題1. 往常的異常狀態圖(如:中毒、混亂....等等),都是『橫式』擺列,有辦法可以做成『直式』的排列嗎?另外,可以 ...

回复

亂堂和樹 发表于 2014-12-2 19:39:32
謝謝您們,晚一點來去測試看看@@
企鹅达达 发表于 2014-12-2 08:53:23
本帖最后由 企鹅达达 于 2014-12-2 10:53 编辑

  找到下面这段脚本,把红色部分改成 x,y+24*i 其中24可以换成你想要的间距
  #--------------------------------------------------------------------------
  # ● 绘制强化/弱化状态的图标
  #--------------------------------------------------------------------------
  def draw_actor_icons(actor, x, y, width = 96)
    icons = (actor.state_icons + actor.buff_icons)[0, width / 24]
    icons.each_with_index {|n, i| draw_icon(n, x + 24 * i, y) }
  end

至于加上状态剩余回合数,你可以在上面的脚本加上一个把Game_BattlerBase的@state_turns和@buff_turns转化为图标index的数组,然后在描画完状态图标之后再描画一次剩余回合数的图标,具体怎么做你自己考虑吧,因为你这种战斗系统需要改的脚本一定相当多,所以可以顺带当脚本练习 ^^
然后,如果你是指技能里面的附加回合数,这个数据储读取的方式如下:

load_data("Data/Items.rvdata2").effects[j].code
load_data("Data/Items.rvdata2").effects[j].data_id
load_data("Data/Items.rvdata2").effects[j].value1
load_data("Data/Items.rvdata2").effects[j].value2

其中 i 表示物品的id , j 表示 第几个序号的效果 , code 是使用效果的种类,具体参考下面的
  EFFECT_RECOVER_HP     = 11              # 恢复 HP
  EFFECT_RECOVER_MP     = 12              # 恢复 MP
  EFFECT_GAIN_TP        = 13              # 增加 TP
  EFFECT_ADD_STATE      = 21              # 附加状态
  EFFECT_REMOVE_STATE   = 22              # 解除状态
  EFFECT_ADD_BUFF       = 31              # 强化能力
  EFFECT_ADD_DEBUFF     = 32              # 弱化能力
  EFFECT_REMOVE_BUFF    = 33              # 解除能力强化
  EFFECT_REMOVE_DEBUFF  = 34              # 解除能力弱化
  EFFECT_SPECIAL        = 41              # 特殊效果
  EFFECT_GROW           = 42              # 能力提升
  EFFECT_LEARN_SKILL    = 43              # 学会技能
  EFFECT_COMMON_EVENT   = 44              # 公共事件

也就是说当code为31的时候,data_id为属性id,value1就是回合数了

如果是在默认系统里技能成功后“xx上升了”那里加上回合数,可以试试下面的脚本,
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Vocab
  3. #------------------------------------------------------------------------------
  4. #  定义了用语和信息。将部分资料定义为常量。用语部分来自于 $data_system 。
  5. #==============================================================================
  6.  
  7. module Vocab
  8.   # 能力强化/弱化
  9.   BuffAdd         = "%s的%s上升%s回合!"
  10.   DebuffAdd       = "%s的%s下降%s回合!"
  11. end
  12. #==============================================================================
  13. # ■ Window_BattleLog
  14. #------------------------------------------------------------------------------
  15. #  用来显示战斗信息的窗口
  16. #   此类窗口没有边框,归类为窗口只是为了方便。
  17. #==============================================================================
  18.  
  19. class Window_BattleLog < Window_Selectable
  20.   #--------------------------------------------------------------------------
  21.   # ● 显示能力强化/弱化
  22.   #--------------------------------------------------------------------------
  23.   def display_changed_buffs(target)
  24.     display_buffs2(target, target.result.added_buffs,Vocab::BuffAdd)
  25.     display_buffs2(target, target.result.added_debuffs, Vocab::DebuffAdd)
  26.     display_buffs(target, target.result.removed_buffs, Vocab::BuffRemove)
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 显示能力强化/弱化(个別)
  30.   #--------------------------------------------------------------------------
  31.   def display_buffs2(target, buffs, fmt)
  32.     buffs.each do |param_id|
  33.       replace_text(sprintf(fmt, target.name, Vocab::param(param_id), target.buff_turns[param_id].to_i))
  34.       wait
  35.     end
  36.   end
  37. end
  38. #encoding:utf-8
  39. #==============================================================================
  40. # ■ Game_Battler
  41. #------------------------------------------------------------------------------
  42. #  处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
  43. #==============================================================================
  44.  
  45. class Game_Battler < Game_BattlerBase
  46.   def buff_turns
  47.     @buff_turns
  48.   end
  49. end


顺带一提,默认的va系统貌似
角色原来有1层5回合攻击强化,再附加一次3回合攻击强化的时候,会变成5回合2层攻击强化;
角色原来有1层3回合攻击强化,再附加一次5回合攻击强化的时候,会变成5回合2层攻击强化;
角色原来有1层3回合攻击弱化,再附加一次5回合攻击强化的时候,会彻底变成无强化,但是会显示攻击强化了5回合;
角色原来有1层5回合攻击弱化,再附加一个3回合攻击强化的时候,会彻底变成无强化,但是会显示攻击强化了5回合;
总的来说,也就是层数加1,回合数重置为较长的一个。这种系统加上回合数说明简直就是在玩弄玩家的智商

至于第二个问题,完全没看懂啊~复杂的战斗系统最讨厌了~~~~

点评

原文是红色字,改成上面写的,x不变,y依次增加。改了之后扔到你需要竖排显示的窗口脚本里就好。  发表于 2014-12-2 14:33
那~第一個問題~有直式嗎XD? 看了一下,改X應該還是橫的說0.0...  发表于 2014-12-2 11:49

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

morningboo 发表于 2014-12-2 07:38:51
$game_troop.members[i].id
表示敌群第i号人物的ID
被攻击时执行事件可以在Game_Battler中想办法,user表示技能发动者,self表示技能承受者,其实就是伤害公式的妙用,你可以搜索看看

点评

没记错的话是 enemy_id  发表于 2014-12-2 12:37
找不到相關...大多都是戰鬥腳本居多QAQ..  发表于 2014-12-2 11:47
亂堂和樹 发表于 2014-12-2 03:07:27
三途亚梦 发表于 2014-12-2 01:06
少年不要一贴多问哦~ 以后请注意~

1. 需要改脚本,你可以先搜索看看。

好的...真是非常抱歉~"~..

關於第一個,我從發帖後就找了很久..沒有找到~"~
抱歉Orz...只能來問了

至於$game_actors[1].cha...就不用在意囉,是我在做嘗試...用腳本去給角色新ID,但是無法用

第二個問題簡單的問...其實就是
『如何給敵人固定ID,接著...角色的技能對應此ID而引發公用事件』

由於是SRPG腳本,普通的事件是無法做到的...(因為我方人員出擊後..ID排序會浮動)

点评

变量1的公共事件可以是无数个啊,有什么问题嘞? 你仔细阅读阅读“图书馆 - 伤害公式的妙用”可以学会很多东西。  发表于 2014-12-2 11:54
但是需要很多公用事件的話呢...我努力試試>"<  发表于 2014-12-2 11:47
啊,对了。人物的ID是只能读,不能写的。你想给角色新ID这个做法本身就容易造成系统的逻辑错误啦  发表于 2014-12-2 10:56
敌人的id是固定的呀。技能公式写 “v[1] = b.enemy_id;伤害值”,然后去make_damage_value的方法里写一句执行id为变量1的公共事件就可以了。  发表于 2014-12-2 10:32
三途亚梦 发表于 2014-12-2 01:06:40
本帖最后由 三途亚梦 于 2014-12-2 01:07 编辑

少年不要一贴多问哦~ 以后请注意~

1. 需要改脚本,你可以先搜索看看。

2. 抱歉……没太完整的看懂意思……
首先没看懂$game_actors[1].char是什么……

你先说你想要的效果,先别急着说自己的思路,也先别发表感想……

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

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

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

GMT+8, 2024-9-23 23:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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