Project1

标题: 怎样做到人物在某级之后打某个地方的怪物就没经验了? [打印本页]

作者: 露丝莱斯    时间: 2008-1-14 01:38
标题: 怎样做到人物在某级之后打某个地方的怪物就没经验了?
已经使用了队里的成员平分经验的脚本..,
现在想模仿网游那样子..,
比如说队里4个人在某个地图练级..,
1号队员30级了.,所以得不到经验.,
其他3个人只有20级..,所以还能继续拿到经验..,

貌似找遍了66所有原创游戏里都没有这样的设置..,

有没有高手能够帮我解决..,

也不用说一定要从地图上来设置到某级就拿不到经验..,
也可以说是..,到了某级打某只怪物就没经验了.,

PS..,我的系统是多角色+人物仓库的.,
队伍里的成员都不是固定的., [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 露丝莱斯    时间: 2008-1-14 01:38
标题: 怎样做到人物在某级之后打某个地方的怪物就没经验了?
已经使用了队里的成员平分经验的脚本..,
现在想模仿网游那样子..,
比如说队里4个人在某个地图练级..,
1号队员30级了.,所以得不到经验.,
其他3个人只有20级..,所以还能继续拿到经验..,

貌似找遍了66所有原创游戏里都没有这样的设置..,

有没有高手能够帮我解决..,

也不用说一定要从地图上来设置到某级就拿不到经验..,
也可以说是..,到了某级打某只怪物就没经验了.,

PS..,我的系统是多角色+人物仓库的.,
队伍里的成员都不是固定的., [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 做游戏的新手    时间: 2008-1-14 02:02
条件分歧
作者: 0飘絮0    时间: 2008-1-14 02:23
for enemy in $game_troop.enemies
      # 敌人不是隐藏状态的情况下
      unless enemy.hidden
        # 获得 EXP、增加金钱
        exp += enemy.exp
        gold += enemy.gold
      end
    end
       # 获得 EXP
    for i in 0...$game_party.actors.size
      actor = $game_party.actors
      if actor.cant_get_exp? == false
        last_level = actor.level
        actor.exp += exp
        if actor.level > last_level
          @status_window.level_up(i)
        end
      end
    end
##########上面是Scene_Battle 2里计算经验,与角色获得经验的写法
你可以自己设置,把每个怪物的经验逐个加给各个角色.这个是修改脚本的,要怎么判断哪个
怪物对哪种等级的角色计算要自己想,自己写.你要是不懂我在说什么就忽视吧.
#######
在地图里设置,我感觉很不好想.

作者: 露丝莱斯    时间: 2008-1-14 03:29
1..,这样改跟那个"队员平分经验"会不会冲突?!
2..,能不能写两句例子给我看?!
就1号怪物..,当角色10级以上.,经验为0..,
2号怪物..,当角色20级以上.,经验为0..,

我是脚本盲..,OTZ.,
作者: 英俊de狗    时间: 2008-1-14 04:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: deathci    时间: 2008-1-14 04:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: 0飘絮0    时间: 2008-1-14 04:48
以下引用露丝莱斯于2008-1-13 19:29:18的发言:
1..,这样改跟那个"队员平分经验"会不会冲突?!
2..,能不能写两句例子给我看?!
就1号怪物..,当角色10级以上.,经验为0..,
2号怪物..,当角色20级以上.,经验为0..,
我是脚本盲..,OTZ.,

晕,之前没认真看你的帖子,那个平分经验的脚本我没看过。你要是对上面的脚本都不理解的话,
就忽视我的帖吧。(我回复的帖好象都是不能直接就使用的,非得自己想过改过之后才可能使用)
for enemy in $game_troop.enemies
    unless enemy.hidden # 敌人不是隐藏状态的情况下
       for i in 0...$game_party.actors.size   
           actor = $game_party.actors
           exp = enemy.exp
           ###等级与怪物判断
           if enemy.id == 1 and actor.level >= 10 #如果敌人ID == 1 某角色等级10以上
              exp = 0                             #设(将要增加的)经验为零
           end
           if enemy.id == 2 and actor.level >= 20
              exp = 0
           end
###(上面使用exp = 0 ,是因为我不知道用return可不可以……)
           if actor.cant_get_exp? == false              
              last_level = actor.level
              actor.exp += enemy.exp
              if actor.level > last_level
                 @status_window.level_up(i)
              end
            end
        end
     end
end
#######没测试过,上面写的和那个平分经验的肯定不能用,因为不知道将有多少人要分经验
想要知道,要在之前先作个计算,再在加经验的时候 把经验除以人数吧
if enemy.id == 1 and actor.level >= 10 #如果敌人ID == 1 某角色等级10以上
              exp = 0                             #设(将要增加的)经验为零
end   
可以有更多的写法,自己想吧
###看到这里,你要是不知道我在说什么。那忽视吧
[LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: deathci    时间: 2008-1-14 04:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 六芒幽狐    时间: 2008-1-14 05:09
我来提供一个简单的办法~

打个比方,地图会遇到的敌人有[烧鸡]~ (你问为什么是烧鸡? 没听说过狐狸爱吃鸡么~ ^_6)
而且杀一只10000经验.

按F9,在[队伍]中的[战斗事件]设置~

条件-敌人[烧鸡]-HP在0%时,
变量操作-角色等级-代入[变量一].
条件分歧-当[变量一]>30时(30就是等级嘛)-EXP减少10000


缺点是占用变量,不过省事很多.

===================

其实个人建议,不用这么麻烦~

你只要把等级间的差距拉大,区域间的等级拉大,就OK了~

比如开始只需要10点经验就可以升级,一个怪2点~
后面要10000经验才能升级,一只高级怪1000点~
这样,就不会有人去打低级怪了
作者: 露丝莱斯    时间: 2008-1-14 05:18
以下引用deathci于2008-1-13 20:42:30的发言:

如果这样做。  你的事件量应该很大   不过我还是可以教你。

如果你觉得有必要的话。  我应该能做个纯事件+一点小脚本的方式帮你解决这问题。

教我教我~~~~~~```
作者: 露丝莱斯    时间: 2008-1-14 05:19
以下引用0飘絮0于2008-1-13 20:48:04的发言:


以下引用露丝莱斯于2008-1-13 19:29:18的发言:
1..,这样改跟那个"队员平分经验"会不会冲突?!
2..,能不能写两句例子给我看?!
就1号怪物..,当角色10级以上.,经验为0..,
2号怪物..,当角色20级以上.,经验为0..,
我是脚本盲..,OTZ.,


晕,之前没认真看你的帖子,那个平分经验的脚本我没看过。你要是对上面的脚本都不理解的话,
就忽视我的帖吧。(我回复的帖好象都是不能直接就使用的,非得自己想过改过之后才可能使用)
for enemy in $game_troop.enemies
   unless enemy.hidden # 敌人不是隐藏状态的情况下
      for i in 0...$game_party.actors.size   
          actor = $game_party.actors
          exp = enemy.exp
          ###等级与怪物判断
          if enemy.id == 1 and actor.level >= 10 #如果敌人ID == 1 某角色等级10以上
             exp = 0                             #设(将要增加的)经验为零
          end
          if enemy.id == 2 and actor.level >= 20
             exp = 0
          end
###(上面使用exp = 0 ,是因为我不知道用return可不可以……)
          if actor.cant_get_exp? == false              
             last_level = actor.level
             actor.exp += enemy.exp
             if actor.level > last_level
                @status_window.level_up(i)
             end
           end
       end
    end
end
#######没测试过,上面写的和那个平分经验的肯定不能用,因为不知道将有多少人要分经验
想要知道,要在之前先作个计算,再在加经验的时候 把经验除以人数吧
if enemy.id == 1 and actor.level >= 10 #如果敌人ID == 1 某角色等级10以上
             exp = 0                             #设(将要增加的)经验为零
end   
可以有更多的写法,自己想吧
###看到这里,你要是不知道我在说什么。那忽视吧

基本看懂了..,
但..,
试了一下.,
果然跟那个平分经验的脚本华丽丽的冲突了.,
趴倒..,
作者: 露丝莱斯    时间: 2008-1-14 05:22
以下引用六芒幽狐于2008-1-13 21:09:24的发言:

我来提供一个简单的办法~

打个比方,地图会遇到的敌人有[烧鸡]~ (你问为什么是烧鸡? 没听说过狐狸爱吃鸡么~ ^_6)
而且杀一只10000经验.

按F9,在[队伍]中的[战斗事件]设置~

条件-敌人[烧鸡]-HP在0%时,
变量操作-角色等级-代入[变量一].
条件分歧-当[变量一]>30时(30就是等级嘛)-EXP减少10000


缺点是占用变量,不过省事很多.

===================

其实个人建议,不用这么麻烦~

你只要把等级间的差距拉大,区域间的等级拉大,就OK了~

比如开始只需要10点经验就可以升级,一个怪2点~
后面要10000经验才能升级,一只高级怪1000点~
这样,就不会有人去打低级怪了


[本贴由作者于 2008-1-13 21:12:57 最后编辑]


角色等级代入..,OTZ..,几十个角色耶...,那样代入会死人的..,

其实这样设置也是为了后续工作.,
就是为了防止越级打怪.,
防止高级的角色带低级的快速升级...,
而并不是为了高级角色打低级怪..,

作者: 0飘絮0    时间: 2008-1-14 05:28
不郁闷了。把字和谐一下……
if enemy.id == 1 and actor.level >= 10 #如果敌人ID == 1 某角色等级10以上
   exp = 0                             #设(将要增加的)经验为零
end
######
if enemy.id <= 10 and actor.level >= 10
   exp = 0                             
end
if enemy.id > 10 and enemy.id <= 20 and actor.level >= 20
   exp = 0                             #设(将要增加的)经验为零
end
####想使用这方法就自己看着办吧。觉得不适合的就放弃。连我自己都觉得应该放弃了。
作者: 露丝莱斯    时间: 2008-1-14 06:01
以下引用0飘絮0于2008-1-13 21:28:13的发言:

有点无语。有点郁闷。
if enemy.id == 1 and actor.level >= 10 #如果敌人ID == 1 某角色等级10以上
  exp = 0                             #设(将要增加的)经验为零
end
如果每个怪都象上面那么设计,我绝对会在这个冬天里躲在被窝里,绝不出来见人。丢脸那!哎!
if enemy.id <= 10 and actor.level >= 10
  exp = 0                             
end
if enemy.id > 10 and enemy.id <= 20 and actor.level >= 20
  exp = 0                             #设(将要增加的)经验为零
end
如果是我设置,我更可能把怪物设置得有一点规律,那我可能就不会用上面的句子了。


因为用了怪物图鉴..,为了怪物图鉴排列起来更好看点.,
所以也就没办法在怪物库里把怪物按等级排列了..,
作者: 最後一滴淚    时间: 2008-1-14 06:27
http://rpg.blue/web/htm/news586.htm
http://rpg.blue/web/htm/news736.htm
可以参考这两个脚本来做.这个脚本两差不多....把怪带入状态脚本改一下脚本就行的..就可以的...试试
作者: 光郎    时间: 2008-1-14 16:19
…你要做网游吗。防止越级打怪…还高级带低级…
每个角色一个变量是必须的,然后判定,既然怪有等级的话,
如果角色变量大于怪物等级,不参与经验分配…就好拉。
作者: 六芒幽狐    时间: 2008-1-14 17:18

  1.     以下引用六芒幽狐于2008-1-13 21:09:24的发言:

  2.     我来提供一个简单的办法~

  3.     打个比方,地图会遇到的敌人有[烧鸡]~ (你问为什么是烧鸡? 没听说过狐狸爱吃鸡么~ ^_6)
  4.     而且杀一只10000经验.

  5.     按F9,在[队伍]中的[战斗事件]设置~

  6.     条件-敌人[烧鸡]-HP在0%时,
  7.     变量操作-角色等级-代入[变量一].
  8.     条件分歧-当[变量一]>30时(30就是等级嘛)-EXP减少10000


  9.     缺点是占用变量,不过省事很多.

  10.     ===================

  11.     其实个人建议,不用这么麻烦~

  12.     你只要把等级间的差距拉大,区域间的等级拉大,就OK了~

  13.     比如开始只需要10点经验就可以升级,一个怪2点~
  14.     后面要10000经验才能升级,一只高级怪1000点~
  15.     这样,就不会有人去打低级怪了
  16. ********************************************************

  17. 角色等级代入..,OTZ..,几十个角色耶...,那样代入会死人的..,

  18. 其实这样设置也是为了后续工作.,
  19. 就是为了防止越级打怪.,
  20. 防止高级的角色带低级的快速升级...,
  21. 而并不是为了高级角色打低级怪..,
复制代码


呵呵,我在文章末有指出哈~

如果只是为了防止玩家屠杀低级怪,直接拉开等级距离就OK了~


  1. 你只要把等级间的差距拉大,区域间的等级拉大,就OK了~

  2. 比如开始只需要10点经验就可以升级,一个怪2点~
  3. 后面要10000经验才能升级,一只高级怪1000点~
  4. 这样,就不会有人去打低级怪了
复制代码

作者: 精灵使者    时间: 2008-1-14 17:57
以下引用光郎于2008-1-14 8:19:27的发言:

…你要做网游吗。防止越级打怪…还高级带低级…
每个角色一个变量是必须的,然后判定,既然怪有等级的话,
如果角色变量大于怪物等级,不参与经验分配…就好拉。

我建议,好好的利用状态里的“不能获得exp”的功能,你会收获颇丰的。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 露丝莱斯    时间: 2008-1-14 20:44
以下引用精灵使者于2008-1-14 9:57:45的发言:


以下引用光郎于2008-1-14 8:19:27的发言:

…你要做网游吗。防止越级打怪…还高级带低级…
每个角色一个变量是必须的,然后判定,既然怪有等级的话,
如果角色变量大于怪物等级,不参与经验分配…就好拉。


我建议,好好的利用状态里的“不能获得exp”的功能,你会收获颇丰的。


果然...,我自己研究出来了..,就是用了这个..,嘿嘿..,结贴能不能给天才般的自己呢?




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