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

Project1

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

[已经过期] 再次求助脚本问题……

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2101
在线时间
782 小时
注册时间
2009-1-4
帖子
172
跳转到指定楼层
1
发表于 2016-1-18 20:13:16 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我找人帮我写了个经验惩罚脚本
具体效果为:当某个角色超过指定等级 就无法获得经验
RUBY 代码复制
  1. # 获得 EXP
  2.     for i in 0...$game_party.actors.size
  3.       actor = $game_party.actors[i]
  4.       if actor.cant_get_exp? == false
  5.         last_level = actor.level
  6.         actor.exp += exp if actor.level<=$game_variables[35]
  7.         if actor.level > last_level
  8.           @status_window.level_up(i)
  9.         end
  10.       end
  11.     end

脚本如上 但是没有效果 求助原因

Lv3.寻梦者

梦石
0
星屑
1358
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
4
发表于 2016-1-20 17:02:30 | 只看该作者
本帖最后由 夜狠简单 于 2016-1-21 00:37 编辑

应该是这个意思




Project1.rar (193.13 KB, 下载次数: 46)

没有特意设置角色等级限制后,就只能升级到限制的等级,允许本次获得经验后可以超过限制的等级,但下次就不在获取经验。
如二号角色 击败敌人后可以 从 5级升到20级,但是他等级限制是 15级
。 那么这次战斗后,其他伙伴和二号角色一同升级到20级左右。下次战斗胜利后,其他伙伴可以继续升级,但他不能升级。
如果需要他可以再次升级,则修改限制的等级就行


RUBY 代码复制
  1. # 插在Main前面使用
  2. class Scene_Battle
  3.   #用数组给角色指定等级上限,只是一个预设定。
  4.   if  $actorlevel ==nil
  5.   $actorlevel=[]
  6.   end
  7.  
  8. if $data_actors !=nil
  9.   for i in 1...$data_actors.size
  10.   #$actorlevel[1] = 10一号角色等级超过10不增加经验
  11.   #$actorlevel[2] = 20二号角色等级超过20不增加经验
  12.   #$actorlevel[7] = 30七号角色等级超过30不增加经验
  13.   $actorlevel[i] =99 #默认所有角色等级超过99级不增加经验
  14.   end
  15. end
  16.  
  17.  
  18. #比如给五号角色增加等级限制50级 就写  $actorlevel[5]=50
  19. #如果要更改二号角色等级超过30级就不增加经验,也可以直接通过
  20. #事件指令-脚本 $actorlevel[2] = 30
  21.  
  22.    def start_phase5
  23.     # 转移到回合 5
  24.     @phase = 5
  25.     # 演奏战斗结束 ME
  26.     $game_system.me_play($game_system.battle_end_me)
  27.     # 还原为战斗开始前的 BGM
  28.     $game_system.bgm_play($game_temp.map_bgm)
  29.     # 初始化 EXP、金钱、宝物
  30.     exp = 0
  31.     gold = 0
  32.     treasures = []
  33.     # 循环
  34.     for enemy in $game_troop.enemies
  35.       # 敌人不是隐藏状态的情况下
  36.       unless enemy.hidden
  37.         # 获得 EXP、增加金钱
  38.         exp += enemy.exp
  39.         gold += enemy.gold
  40.         # 出现宝物判定
  41.         if rand(100) < enemy.treasure_prob
  42.           if enemy.item_id > 0
  43.             treasures.push($data_items[enemy.item_id])
  44.           end
  45.           if enemy.weapon_id > 0
  46.             treasures.push($data_weapons[enemy.weapon_id])
  47.           end
  48.           if enemy.armor_id > 0
  49.             treasures.push($data_armors[enemy.armor_id])
  50.           end
  51.         end
  52.       end
  53.     end
  54.     # 限制宝物数为 6 个
  55.     treasures = treasures[0..5]
  56.     # 获得 EXP
  57.     for i in 0...$game_party.actors.size
  58.       actor = $game_party.actors[i]
  59.       if actor.cant_get_exp? == false
  60.          last_level = actor.level
  61.          #先判断角色是否存在等级限定
  62.       if $actorlevel[actor.id]!=nil
  63.         #执行有等级限定的步骤,不超过限定等级则加经验,超过限定等级就不加
  64.        actor.exp += exp   if actor.level<=$actorlevel[actor.id]  
  65.      else #执行角色没有设置等级限定的步骤
  66.           actor.exp += exp
  67.        end
  68.        if actor.level > last_level
  69.           @status_window.level_up(i)
  70.         end
  71.       end
  72.     end
  73.     # 获得金钱
  74.     $game_party.gain_gold(gold)
  75.     # 获得宝物
  76.     for item in treasures
  77.       case item
  78.       when RPG::Item
  79.         $game_party.gain_item(item.id, 1)
  80.       when RPG::Weapon
  81.         $game_party.gain_weapon(item.id, 1)
  82.       when RPG::Armor
  83.         $game_party.gain_armor(item.id, 1)
  84.       end
  85.     end
  86.     # 生成战斗结果窗口
  87.     @result_window = Window_BattleResult.new(exp, gold, treasures)
  88.     # 设置等待计数
  89.     @phase5_wait_count = 100
  90.   end
  91. end


点评

(⊙o⊙)哦,那我一会回去弄一个范例你  发表于 2016-1-20 23:20
我想实现的是这个等级限制是可以变化的……用的就是你的第一个脚本 但是没用  发表于 2016-1-20 23:03
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3293
在线时间
1463 小时
注册时间
2014-8-9
帖子
337
3
发表于 2016-1-19 15:45:06 | 只看该作者
我看你还是发工程吧
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1120
在线时间
381 小时
注册时间
2010-10-9
帖子
386

开拓者

2
发表于 2016-1-19 10:43:23 | 只看该作者
在Game_Actor 类的458行下面插入下面的脚本试试看
  1.     if exp > @exp
  2.       if @actor_id ==  $game_variables[34]  and @level >= $game_variables[35]
  3.         return
  4.       end
  5.     end
复制代码
34号变量表示某位角色的ID 35号表示限定等级

点评

还是无效,不过谢谢您提供的脚本  发表于 2016-1-19 15:21
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-12 00:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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