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

Project1

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

[已经解决] 有關異常狀態的排序、指定角色問題

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
326 小时
注册时间
2010-5-4
帖子
173
跳转到指定楼层
1
发表于 2014-12-1 23:13:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
各位大大們打擾了,我有一堆問題卻不知該怎麼發問,於是先挑這兩個....我可能比較容易理解的問題

問題1.
往常的異常狀態圖(如:中毒、混亂....等等),都是『橫式』擺列,有辦法可以做成『直式』的排列嗎?另外,可以問問作成直式後...
狀態圖與狀態圖的『間距』,以及...如何顯示『使用效果』中的『能力強化的回合數字』?


問題2.
由於我是用『ひきも記的RGSS3_SRPG Ver0.15a』,雖然作者有添加『魔法詠唱(前コモン)<技能前執行公用事件>』
但也由於...角色與敵人的資料很像又『再定義』,因此幾乎$game_party.members[X]...之類的指定角色方式都無法用再公用事件的『分歧條件的腳本』中


關於問題2,我個人覺得會比較複雜...畢竟選擇角色攻擊時,無法判別該事件是角色ID?啊...
有想過最簡單的做法就是...把攻擊換成該角色所學的技能,可問題來了...

『有哪個腳本可以給敵人ID,並且可以設定該技能或角色...攻擊某敵人ID時,啟動公用事件?』
如果能啟動分歧條件中的腳本就更好了QAQ...

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2014-12-2 01:06:40 | 只看该作者
本帖最后由 三途亚梦 于 2014-12-2 01:07 编辑

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

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

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

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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
326 小时
注册时间
2010-5-4
帖子
173
3
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
116 小时
注册时间
2009-7-17
帖子
139
4
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
5
发表于 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 认可答案

查看全部评分

新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
326 小时
注册时间
2010-5-4
帖子
173
6
 楼主| 发表于 2014-12-2 19:39:32 | 只看该作者
謝謝您們,晚一點來去測試看看@@
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-31 08:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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