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

Project1

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

[已经解决] 请问如何设定两个角色之间的等级差距限制?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
739 小时
注册时间
2011-11-24
帖子
341
跳转到指定楼层
1
发表于 2011-11-24 16:47:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kapoleo 于 2011-11-24 16:49 编辑

大家好,我是新手
我想请问一下
假设我有甲,乙两个人物
我想设定甲与乙之间的等级差距不能超过10
例如甲的等级是10时
乙无论如何练到死都不能超过20
直到甲的等级有所提升
乙才能升级
请问该如何设定呢?
谢谢

Lv1.梦旅人

炎发灼眼的讨伐者

梦石
0
星屑
50
在线时间
1707 小时
注册时间
2007-8-4
帖子
904
2
发表于 2011-11-27 21:48:01 | 只看该作者
对于默认脚本
1、在Game_Actor中添加如下脚本:
  #--------------------------------------------------------------------------
  # ● 等级限制表
  #     第一层hash:要限制的角色ID号=>限制列表hash
  #     第二层hash:比较角色ID号=>相差等级
  #
  #       * 要限制的角色ID的最大等级=比较角色的等级+相差等级
  #--------------------------------------------------------------------------  
  LEVEL_LIMIT =
  {
    1=>{2=>10, 3=>15},
    2=>{1=>8, 3=>7}
  }
  
  #--------------------------------------------------------------------------
  # ● 计算限制模式下可升级的最大等级
  #--------------------------------------------------------------------------  
  def calc_max_level_limit
    limit = LEVEL_LIMIT[@actor_id]
    return $data_actors[@actor_id].final_level if limit.nil?
    level_ary = []
    limit.each do |actorid, limit_level|
      actor = $game_party.actors.find{|actor| actor.id == actorid}
      next if actor.nil?
      level_ary << actor.level + limit_level
    end
    return $data_actors[@actor_id].final_level if level_ary.empty?
    return level_ary.sort.first
  end

2、修改Game_Actor中以下函数
  #--------------------------------------------------------------------------
  # ● 更改 EXP
  #     exp : 新的 EXP
  #--------------------------------------------------------------------------
  def exp=(exp)
    @exp = [[exp, 9999999].min, 0].max
   
    max_level = calc_max_level_limit
   
    # 升级
    while @level < max_level and @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
      @level += 1
      # 学会特技
      for j in $data_classes[@class_id].learnings
        if j.level == @level
          learn_skill(j.skill_id)
        end
      end
    end
   
    # 降级
    while @exp < @exp_list[@level]
      @level -= 1
    end
    # 修正当前的 HP 与 SP 超过最大值
    @hp = [@hp, self.maxhp].min
    @sp = [@sp, self.maxsp].min
  end
  #--------------------------------------------------------------------------
  # ● 更改水品
  #     level : 新的等级
  #--------------------------------------------------------------------------
  def level=(level)
    # 检查上下限
    level = [[level, calc_max_level_limit].min, 1].max
    # 更改 EXP
    self.exp = @exp_list[level]
  end

红色的是修改过的(:

其他脚本默认的兼容请参考以上(:未测试 仅供参考:
RMXP&amp;RMVX通用Web化完成- -|||
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2011-11-28
帖子
10
3
发表于 2011-11-28 11:00:57 | 只看该作者
这不只用脚本 事件也是可以的 !
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
739 小时
注册时间
2011-11-24
帖子
341
4
 楼主| 发表于 2011-12-3 12:13:39 | 只看该作者
本帖最后由 kapoleo 于 2011-12-3 12:17 编辑
灼眼的夏娜 发表于 2011-11-27 21:48
对于默认脚本
1、在Game_Actor中添加如下脚本:
  #---------------------------------------------------- ...


谢谢大大的答覆
不过我在脚本输入后
还需要做什么步骤才能具体设置限制?
抱歉,我是个新手
谢谢



kapoleo于2011-12-3 12:17补充以下内容:
啊....对我来说事件应该比较简单
那么请问应该在事件中怎么设置?
变数吗?还是强制乙无法获得exp?
【长期招募制作成员】
原创科幻RPG - PURIFICATION (内涵‧严肃‧认真)
https://rpg.blue/thread-371063-1-1.html
回复

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
739
在线时间
911 小时
注册时间
2010-11-13
帖子
1023
5
发表于 2011-12-3 12:47:46 手机端发表。 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-3 01:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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