幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1930|回复: 2

大大啊,拯救一下我吧,帮我改一下RGSS

[复制链接]

4

主题

21

帖子

1678

积分

⑥精研

积分
1678
发表于 2005-5-5 16:26:42 | 显示全部楼层 |阅读模式
我RGSS很多地方不懂,特别是变量啊?我初步写了一部分,伤害计算那点,很多地方不懂,请大家指教啊!这是那个五行系统的招式部分的部分。

http://bbs.rpgchina.com/dispbbs.asp?boardID=21&ID=10499&page=1

def attacker_effedt(attacker)
  $special_string=false #清除受攻击方招式防御效果,不知道该不该用全局变量啊?至今不明白实变量的意义。
  $message_string=false #清除攻击方招式攻击效果
  if attacker.dex/5>rand(100) #暂时不考虑装备
    attacker.zhaoshi_atk=(equip_weapon_element_id+1)/2 #武器的属性的ID,不知道这个变量该怎么表示啊?也不会限制范围,怎么改?
  end
  if self.dex/5>rand(100)
    self.zhaoshi_def=(equip_armor2_element_id+1)/2 #衣服的属性的ID怎么表示啊?
  end
  if attacker.zhaoshi_atk==self.zhaoshi_def #属性中和
    attacker.zhaoshi_atk=false
    self.zhaoshi_def=false
  end
  case attacker.zhaoshi_atk
    when 1
    $message_string="连击"
    when 2
    $message_string="会心一击"
    when 3
    $message_string="击退"
    when 4
    $message_string="致命一击"
    when 5
    $message_string="伤害加深"
  end
  attacker.zhaoshi_atk=false
  case self.zhaoshi_def
    when 1
    $special_string="闪避"
    when 2
    $special_string="会心一闪"
    when 3
    $special_string="档格"
    when 4
    $special_string="反弹伤害"
    when 5
    $special_string="伤害减轻"
  end
  self.zhaoshi_def=false
  until $special_string="闪避"
    until $special_string="档格"
      if $special_string="致命一击"
        attacker.atk*=2
      end
      atk=[attacker.atk-self.pdef,0].max
      if $message_string="会心一击"
        self.damage=atk*(attacker.hit-self.eva/2+100)
      elsif $special_string="会心一闪"
        self.damage=atk*(attacker.hit/2-self.eva+100)
      else
        self.damage=atk*(attacker.hit/2-self.eva/2+rand(attacker.hit/2)-rand(self.eva/2)+100)
      end
      if $message_string="伤害加深"
        attacker.dam_zengjia=100
      end
      if $special_string="伤害减轻"
        self.dam_jianshao=50
      end
      self.damage*=100+attacker.dam_zengjia-self.dam_jianshao #暂时不考虑装备
      self.damage/=10000
      if $message_string="反弹伤害"
        @active_battler.hp-=self.damage*2 #不知道变量怎么用,是不是用这个啊?
        @active_battler.pdef-=$active_battler.pdef_max/20 #
        @active_battler.sp-=$active_battler.sp_max/20 #
        @active_battler.tp-=$active_battler.tp_max/20 #
      end
      if $message_string="击退"
        self.tp=0 #变量?
      end
    self.hp-=self.damage
    end #档格直接到这
    self.pdef-=self.pdef_max/20 #这些变量用这个行吗?
    self.sp-=self.sp_max/20
    self.tp-=self.tp_max/5
    remove_states_shock #这些不知道该不该放这里?
    @state_changed = false
      states_plus(attacker.plus_state_set)
      states_minus(attacker.minus_state_set)
  end #闪避直接到这
  attacker.atk-=attatker.atk_max/20 #攻击减力
end

连击暂时没写,看柳大的DEMO中,似乎比较复杂啊。先帮帮我解决一下,变量的问题吧。

回复

使用道具 举报

carol3 该用户已被删除
发表于 2005-5-5 23:37:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

4

主题

21

帖子

1678

积分

⑥精研

积分
1678
 楼主| 发表于 2005-5-6 11:24:47 | 显示全部楼层
我只是想知道用什么变量。比如:@active_battler这个对象是Scene_Battle中的,在这里Game_Battler中能用吗?还有由于@active_battler是在变化中,这样用全局变量行吗?Scene_Battle和Game_Battler中的变量同步会不会出问题?
还有:怎么得到装备的武器和衣服的属性的ID啊?比如我装备的武器是火属性,而火属性的ID是4,我怎么得到这个4。
相信初学RGSS的人都有变量的表示和意义上的问题。而RGSS自带的说明很简单,根本看不懂啊。
  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-20 10:50 , Processed in 0.011084 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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