幻想森林

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

[求助]脚本中载入公共事件

[复制链接]

2

主题

3

帖子

35

积分

②入门

积分
35
发表于 2007-6-1 21:56:40 | 显示全部楼层 |阅读模式
本来想在通常攻击产生会心一击效果后给目标增加一个状态
于是在检测会心一击那个语句后加上以下
$game_temp.common_event_id = XX
但是实际执行的时候被无视了T T。。完全不理会公共事件
是不是类别搞错了。。。。望大人们指点。。
回复

使用道具 举报

5

主题

129

帖子

7万

积分

⑧专业

积分
77908
发表于 2007-6-2 00:18:52 | 显示全部楼层
你具体是怎么弄的?
&火メ神&
回复 支持 反对

使用道具 举报

550

主题

9117

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2007-6-2 01:18:27 | 显示全部楼层
LZ写得详细一些吧………… [s:5]
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

30

主题

477

帖子

5219

积分

⑦老手

积分
5219
发表于 2007-6-2 05:45:17 | 显示全部楼层
你可以加个开关来管理

if $game_switches[开关编号] == true
   $game_switches[开关编号] = false
   $game_temp.common_event_id = 公共事件编号
end
回复 支持 反对

使用道具 举报

2

主题

3

帖子

35

积分

②入门

积分
35
 楼主| 发表于 2007-6-2 20:32:52 | 显示全部楼层
Game_battler 3里
#--------------------------------------------------------------------------
  # ● 应用通常攻击效果
  #     attacker : 攻击者 (battler)
  #--------------------------------------------------------------------------
  def attack_effect(attacker)
    # 清除会心一击标志
    self.critical = false
    # 第一命中判定
    hit_result = (rand(100) < attacker.hit)
    # 命中的情况下
    if hit_result == true
      # 计算基本伤害
      self.damage = [attacker.atk + attacker.str - self.pdef , 0].max
      
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      # 伤害符号正确的情况下
      if self.damage > 0
        # 会心一击修正
        if rand(1000) < 0.5 * attacker.dex + 50 and self.damage != 0
          self.damage *= 2
          self.critical = true
          $game_temp.common_event_id = 11
        end
        # 防御修正
        if self.guarding?
          self.damage /= 2
        end
      end
      # 分散
      if self.damage.abs > 0
        amp = [self.damage.abs * 15 / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      # 第二命中判定
      eva = 8 * self.agi / attacker.dex + self.eva
      hit = self.damage < 0 ? 100 : 100 - eva
      hit = self.cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)
    end
    # 命中的情况下
    if hit_result == true
      # 状态冲击解除
      remove_states_shock
      # HP 的伤害计算
      self.hp -= self.damage
      # 状态变化
      @state_changed = false
      states_plus(attacker.plus_state_set)
      states_minus(attacker.minus_state_set)
    # Miss 的情况下
    else
      # 伤害设置为 "Miss"
      self.damage = "Miss"
      # 清除会心一击标志
      self.critical = false
    end
    # 过程结束
    return true
  end


加了红字后。。crit以后没有执行公共事件。
回复 支持 反对

使用道具 举报

3

主题

23

帖子

255

积分

③业余

积分
255
发表于 2007-9-1 22:43:13 | 显示全部楼层
饿~
我是菜鸟 我是菜鸟
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-20 18:38 , Processed in 0.011349 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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