Project1

标题: 仿仙剑金蚕王单人加等级——事件才是王道 [打印本页]

作者: 萧萧无痕    时间: 2008-2-15 03:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 心情de对白    时间: 2008-2-15 04:29
这........至少有个范例或者几张截图吧- -|||
作者: 萧萧无痕    时间: 2008-2-15 04:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 禾西    时间: 2008-2-15 20:41
class Game_Battler
  #--------------------------------------------------------------------------
  # ● 附加状态
  #     state_id : 状态 ID
  #     force    : 强制附加标志 (处理自动状态时使用)
  #--------------------------------------------------------------------------
  def add_state(state_id, force = false)
    # 无效状态的情况下
    if $data_states[state_id] == nil
      # 过程结束
      return
    end
    # 无法强制附加的情况下
    unless force
      # 已存在的状态循环
      for i in @states
        # 新的状态和已经存在的状态 (-) 同时包含的情况下、
        # 本状态不包含变化为新状态的状态变化 (-)
        # (ex : 战斗不能与附加中毒同时存在的场合)
        if $data_states.minus_state_set.include?(state_id) and
           not $data_states[state_id].minus_state_set.include?(i)
          # 过程结束
          return
        end
      end
    end
    # 无法附加本状态的情况下
    unless state?(state_id)
      # 状态 ID 追加到 @states 序列中
      @states.push(state_id)
      # 选项 [当作 HP 0 的状态] 有效的情况下
      if $data_states[state_id].zero_hp
        # HP 更改为 0
        @hp = 0
      end
      # 所有状态的循环
      for i in 1...$data_states.size
        # 状态变化 (+) 处理
        if $data_states[state_id].plus_state_set.include?(i)
          add_state(i)
        end
        # 状态变化 (-) 处理
        if $data_states[state_id].minus_state_set.include?(i)
          remove_state(i)
        end
      end
      # 按比例大的排序 (值相等的情况下按照强度排序)
      @states.sort! do |a, b|
        state_a = $data_states[a]
        state_b = $data_states
        if state_a.rating > state_b.rating
          -1
        elsif state_a.rating < state_b.rating
          +1
        elsif state_a.restriction > state_b.restriction
          -1
        elsif state_a.restriction < state_b.restriction
          +1
        else
          a <=> b
        end
      end
    end
    # 强制附加的场合
    if force
      # 设置为自然解除的最低回数 -1 (无效)
      @states_turn[state_id] = -1
    end
    # 不能强制附加的场合
    unless  @states_turn[state_id] == -1
      # 设置为自然解除的最低回数
      @states_turn[state_id] = $data_states[state_id].hold_turn
    end
    # 无法行动的场合
    unless movable?
      # 清除行动
      @current_action.clear
    end
    # 检查 HP 及 SP 的最大值
    @hp = [@hp, self.maxhp].min
    @sp = [@sp, self.maxsp].min
#---------------------------------
      if state_id == (金蚕王狀態id)
        self.level += 1
          unless force
            @states.delete(state_id)
          end
        end
      end
#---------------------------------
  end
這樣不是更加簡單?==
作者: 天圣的马甲    时间: 2008-2-15 20:47
那是在很久很久以前……有一个技术叫做“状态法”(很远很远地远目ing)
作者: doranikofu    时间: 2008-2-16 20:25
我是用属性弄得{/fd}


  1. # 提升等级---------------     
  2.       if item.element_set.include?([属性ID])
  3.         last_level = self.level
  4.         self.level += 1
  5.         effective |= self.level != last_level
  6.       end
复制代码


LZ这个办法不是很方便吧 如果队伍里面有几个人你怎么判定给谁升级?
作者: 天涯    时间: 2008-2-20 03:35
以下引用萧萧无痕于2008-2-14 19:54:05的发言:

很简单
制作一个状态“金蚕王”
先做一个物品叫:金蚕王
增加状态:金蚕王
事件要怎么写看下:
◆假如李云在队伍
◆李云的状态为[战斗不能]
◆无法升级
◆物品增加:金蚕王+1(因为是要消耗物品的,所以为了防止消耗物品只能这样)
◆除外
  ◆李云的等级+1
◆分歧结束
◆分歧结束
注:设置物品时必须设置为我方单体和+状态:[金蚕王]

[本贴由作者于 2008-2-15 13:34:54 最后编辑]

应该怎么做
作者: kaveil    时间: 2008-2-20 05:15
这用事件不难做啊```
作者: 夏云峰    时间: 2008-8-27 01:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 做游戏的新手    时间: 2008-8-27 03:18
以下引用暴動衝鋒于2008-8-26 17:43:20的发言:

按理来说可以绑定CommonEvents的,但是直接指定物品使用者就难了。

切。。公共事件就是公共事件
什么CommonEvents不CommonEvents的
作者: 做游戏的新手    时间: 2008-8-27 03:22
以下引用暴動衝鋒于2008-8-26 19:19:10的发言:


以下引用做游戏的新手于2008-8-26 19:18:13的发言:


以下引用暴動衝鋒于2008-8-26 17:43:20的发言:

按理来说可以绑定CommonEvents的,但是直接指定物品使用者就难了。


切。。公共事件就是公共事件
什么CommonEvents不CommonEvents的


我用英文版RPGXP不行么?
[不习惯莫尼卡的版本]

对喔。你只习惯用『黑客』『修行』的版本吧
作者: 越前リョーマ    时间: 2008-8-27 05:37
知道状态法的都会……
作者: ONEWateR    时间: 2008-8-27 05:42
以下引用天圣的马甲于2008-2-15 12:47:40的发言:

那是在很久很久以前……有一个技术叫做“状态法”(很远很远地远目ing)


我是纯引吧~
作者: 精灵使者    时间: 2008-8-27 06:30
很简单。
做一个状态叫“升级”开关“升级开关”

然后物品里面加公共事件:
升级开关 = on
增加状态:使用者,升级
然后一个公共并行事件,触发开关“升级开关”
条件分歧:阿尔西斯附加“升级状态”
阿尔西斯等级 + 1
减少状态 阿尔西斯,升级
除此以外的场合。。。
(依次写入其他角色的分歧)
分歧结束
升级开关 = off
作者: 灯笼菜刀王    时间: 2008-8-27 12:10
for i in $game_party.actors
  if i.state?(金蚕王状态ID) and i.hp > 0
    i.level += 1
  end
end
搞定收工 -。-...
作者: yehaojie    时间: 2008-8-27 21:11
这样比较简单吧?
条件:角色1状态为 等 时
◆角色1等级+1
◆-状态 等
条件:角色2状态为 等 时
◆角色2等级+1
◆-状态 等
.................
作者: 精灵使者    时间: 2008-8-27 23:47
恩恩,差不多啦。并列的分歧要判断4次,我那种分歧只要判断1次就可以了。我认为我的那种效率比较高。




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