Project1

标题: 关于XAS的ARPG系统……(VA) [打印本页]

作者: agno32856    时间: 2013-1-23 00:13
标题: 关于XAS的ARPG系统……(VA)
游戏里有一个CT槽 类似体力的系统,做各种动作都会消耗体力,之后会慢慢恢复
那么想设计一个能够锁定体力或者加快恢复速度,亦或者是一定时间内增加CT槽上限的道具,该怎么做……

在脚本页看到这三个指令:
# actor = $game_party.members[X1]
# actor.ct_max = X2
# actor.ct_speed = X3
但是用在事件里却显示错误


系统范例里也没有类似的道具,所以想知道该怎样才能设计出来这样的功能……
作者: 896409879    时间: 2013-1-23 08:18
难道说这个ct_max没法修改吗? 《=不知道,不知道。。。。。很可疑地事。。。。
那么试一试给Game_Actor 设置一个CT的外接读取? 《=是不是Game_Actor啊?不知道,不知道。。。。。。
  1. Game Actor
  2. attr_accessor :ct_max
  3. attr_accessor :ct_speed
  4. end
  5. #本人不知道能否成功。。。。
复制代码
我不保证能行啊。。。。
作者: satgo1546    时间: 2013-1-23 11:38
本帖最后由 satgo1546 于 2013-1-23 11:39 编辑

是不是单独用三条指令呢?
我猜想是这样的:
  1. actor.ct_max→actor(=nil)→nil.ct_max【ERROR
复制代码
为什么呢?
  1. actor=$game_party.members[X1]→X1(=nil)→actor=nil
复制代码
大概是这样吧……
解决方法:
  1. X1=xxx
  2. X2=xxx
  3. X3=xxx
  4. 然后调用LZ的三条语句
复制代码

作者: 896409879    时间: 2013-1-24 05:42
  1. class Game_Actor
  2. attr_accessor :ct_max
  3. attr_accessor :ct_speed
  4. end
复制代码
?¿?¿?¿
作者: agno32856    时间: 2013-1-24 22:32
发一段那部分的代码吧 也许能对问题有所帮助
另外本人用的还是未汉化的那个XAS脚本……

RUBY 代码复制
  1. #===============================================================================
  2. # ■ Game Actor
  3. #===============================================================================
  4. class Game_Actor < Game_Battler
  5.  
  6.   attr_accessor :ct
  7.   attr_accessor :ct_max
  8.   attr_accessor :ct_speed
  9.   attr_accessor :ct_wait
  10.  
  11.   #--------------------------------------------------------------------------
  12.   # ● Iinitialize
  13.   #--------------------------------------------------------------------------      
  14.   alias xas_ct_initialize initialize
  15.   def initialize(actor_id)
  16.       xas_ct_initialize(actor_id)
  17.       @ct_max = 100
  18.       @ct = @ct_max
  19.       @ct_speed = 1
  20.       @ct_wait = false
  21.       setup_initial_ct(actor_id)      
  22.   end  
  23.  
  24.   #--------------------------------------------------------------------------
  25.   # ● Setup Initial CT
  26.   #--------------------------------------------------------------------------        
  27.   def setup_initial_ct(actor_id)
  28.       ct_par = XAS_CT_SYSTEM::ACTOR_INITIAL_CT[actor_id]
  29.       if ct_par != nil
  30.          @ct_max = ct_par[0]
  31.          @ct_speed = ct_par[1]
  32.          @ct = @ct_max
  33.       end  
  34.   end
  35.  
  36.   #--------------------------------------------------------------------------
  37.   # ● CT
  38.   #--------------------------------------------------------------------------        
  39.   def ct
  40.       n = [[@ct, 0].max, @ct_max].min
  41.       return n   
  42.   end  
  43.  
  44.   #--------------------------------------------------------------------------
  45.   # ● CT Max
  46.   #--------------------------------------------------------------------------        
  47.   def ct_max
  48.       n = [[@ct_max, 1].max, 9999].min
  49.       return n   
  50.   end
  51.  
  52.   #--------------------------------------------------------------------------
  53.   # ● CT Speed
  54.   #--------------------------------------------------------------------------        
  55.   def ct_speed
  56.       n_speed = @ct_speed * @ct_max / 100
  57.       n = [[n_speed, 0].max, @ct_max].min
  58.       return n   
  59.   end  
  60.  
  61. end


应该就只有这一段和CT系统有关了 目前已知的是可以在该页上方设置某个角色在游戏开始时的CT槽相关设定,但是无法通过指令对这些设定进行修改……




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