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

Project1

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

[已经解决] 如何修改开关数量上限

[复制链接]

Lv1.梦旅人

梦石
0
星屑
108
在线时间
11 小时
注册时间
2019-1-22
帖子
4
跳转到指定楼层
1
发表于 2019-1-22 16:52:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 RyanBern 于 2019-1-29 10:13 编辑

求助各位大佬,rpg maker xp脚本里的开关上限怎么改啊,初始上限最多只能有5000,我在脚本game_switches里把5000改成了9999发现并没有用,求教各位大佬是什么原因啊……

Lv4.逐梦者

梦石
2
星屑
6634
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

2
发表于 2019-1-22 17:55:22 | 只看该作者
本帖最后由 MCCF 于 2019-1-22 23:35 编辑

注意题目,“求助”、“请教”等题目格式是不正确的,请将问题概括在题目中,以方便其他人搜索等。

关于问题。
所有设定数量都是有限制的。这是与系统有关的,目前貌似没有看到过开关数量破限脚本,
YEA的破限脚本可以对能力值而非设定数量进行破限。

设定数量的话,这个脚本XP、VX、VA通用,现在贴上来。
RUBY 代码复制
  1. #===============================================================
  2. # ● [XP/VX/VXA] ◦ Database Limit Breaker III ◦ □
  3. # * Break limit of data number in database files *
  4. #--------------------------------------------------------------
  5. # ◦ by Woratana [[email][email protected][/email]]
  6. # ◦ Thaiware RPG Maker Community
  7. # ◦ Originally released on: 22/02/2008
  8. # ◦ Ported to VXAce by Mr. Bubble on: 30/12/2011
  9. #--------------------------------------------------------------
  10.  
  11. #==========================================
  12. # ** 如何使用
  13. #------------------------------------------
  14. # 0. 打开你的工程 (建议先备份数据库文件,以防上限过低丢失数据)
  15. # 1. 将这个脚本插入到 Main 之上
  16. # 2. 设定 DLB_USE_IT = true
  17. # 3. 设定你要破限的数据
  18. # 4. 保存,调试运行你的游戏
  19. # 5. 如果破限完成,游戏将立即关闭
  20. # 6. 关闭你的工程(不要保存!)
  21. # 7. 重新打开你的工程
  22. # 8. 设定 DLB_USE_IT = false
  23. # 10. 对于 XP 或 VX ,建议保留这个脚本。如果你使用 VX Ace ,你无需将这个脚本保留在脚本编辑器中。
  24. #==========================================
  25.  
  26.   #===========================================================================
  27.   # [ENG] 使用结束后的处理(将DLB_USE_IT设为false,并且之后不要更改设定)
  28.   #+==========================================================================
  29.   DLB_USE_IT = true # (true / false)
  30.  
  31.   if DLB_USE_IT # 不要删除这一行
  32.     DLB_DATA = {
  33.     #======================================================
  34.     # 普通数据库文件的限制为999
  35.     # 变量和开关限值为5000
  36.     # 此脚本将允许您更改超过其限制的号码~
  37.     #===============================
  38.     # ** 如何设置 **
  39.     #-------------------------------
  40.     # 让某个项目的可设置数量突破上限。
  41.     # 格式: 'Database_File' => (number),
  42.     # 例如 'switch' => 5500,
  43.     # (* 不要忘记在每行后面写“,”!)
  44.  
  45.     #==============================================
  46.     # ** [List] 设定部分 **
  47.     #----------------------------------------------
  48.     # 'switch' 表示游戏开关数量破限
  49.     # 'variable' 表示游戏变量数量破限
  50.     # 'actor' 表示角色数量破限
  51.     # 'class' 表示职业数量破限
  52.     # 'skill' 表示技能数量破限
  53.     # 'item' 表示物品数量破限
  54.     # 'weapon' 表示武器数量破限
  55.     # 'armor' 表示护甲数量破限
  56.     # 'enemy' 表示敌人数量破限
  57.     # 'troop' 表示敌群数量破限
  58.     # 'state' 表示状态数量破限
  59.     # 'tileset' 表示图块组数量破限 (只有 RMXP/RMVXA 可用)
  60.     # 'animation' 表示动画数量破限
  61.     # 'commonev' 表示公共事件数量破限
  62.     #======================================================
  63.     # * 开始设定破限内容
  64.     #======================================================
  65.  
  66.     # 敌群数量上限变为2000
  67.     'troop' => 2000,
  68.  
  69.     #========================================================
  70.     # * [END] 设定结束
  71.     #========================================================
  72.     'end' => nil # Close hash
  73.     }
  74.  
  75.     if defined?(Audio.setup_midi) # VXA
  76.       dformat = '.rvdata2'
  77.     elsif defined?(Graphics.wait) # VX
  78.       dformat = '.rvdata'
  79.     else # XP
  80.       dformat = '.rxdata'
  81.     end
  82.     start_time = Time.now
  83.     DLB_DATA.each do |k,v|
  84.       dvar = nil
  85.       case k
  86.       when 'switch'; dname = 'System'; dvar = 'switches'; dnewdata = ''
  87.       when 'variable'; dname = 'System'; dvar = 'variables'; dnewdata = ''
  88.       when 'actor'; dname = 'Actors'; dnewdata = 'RPG::Actor.new'
  89.       when 'class'; dname = 'Classes'; dnewdata = 'RPG::Class.new'
  90.       when 'skill'; dname = 'Skills'; dnewdata = 'RPG::Skill.new'
  91.       when 'item'; dname = 'Items'; dnewdata = 'RPG::Item.new'
  92.       when 'weapon'; dname = 'Weapons'; dnewdata = 'RPG::Weapon.new'
  93.       when 'armor'; dname = 'Armors'; dnewdata = 'RPG::Armor.new'
  94.       when 'enemy'; dname = 'Enemies'; dnewdata = 'RPG::Enemy.new'
  95.       when 'troop'; dname = 'Troops'; dnewdata = 'RPG::Troop.new'
  96.       when 'state'; dname = 'States'; dnewdata = 'RPG::State.new'
  97.       when 'animation'; dname = 'Animations'; dnewdata = 'RPG::Animation.new'
  98.       when 'tileset'; dname = 'Tilesets'; dnewdata = 'RPG::Tileset.new'
  99.       when 'commonev'; dname = 'CommonEvents'; dnewdata = 'RPG::CommonEvent.new'
  100.       when 'end'; next
  101.       else; p 'unknown DLB_DATA!', 'Check carefully what you typed in DLB_DATA'
  102.       end
  103.       base_data = load_data('Data/' + dname + dformat)
  104.       data = dvar.nil? ? base_data : eval('base_data.' + dvar.to_s)
  105.       unless data.size > v and v - (data.size - 1) <= 0
  106.         add_data = Array.new(v - (data.size - 1)) { eval(dnewdata) }
  107.         data.push *add_data
  108.         save_data(base_data, 'Data/' + dname + dformat)
  109.       end
  110.     end
  111.     p 'Finished in ' + (Time.now - start_time).to_s + ' sec'
  112.     exit
  113.   end
  114.  
  115.  
  116. # checks for VXAce since these methods do not need to be overwritten
  117. # in RGSS3.
  118. unless defined?(Audio.setup_midi)
  119.  
  120. class Game_Switches
  121.   #--------------------------------------------------------------------------
  122.   # * Set Switch
  123.   #     Make the system be able to set switch ID more than 5000
  124.   #--------------------------------------------------------------------------
  125.   def []=(switch_id, value)
  126.     @data[switch_id] = value
  127.   end
  128. end
  129.  
  130. class Game_Variables
  131.   #--------------------------------------------------------------------------
  132.   # * Set Variable
  133.   #     Make the system be able to set switch ID more than 5000
  134.   #--------------------------------------------------------------------------
  135.   def []=(variable_id, value)
  136.     @data[variable_id] = value
  137.   end
  138. end
  139.  
  140. end # unless defined?(Audio.setup_midi)

自己汉化了一下,测试完全可用。

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

祝好。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

3
发表于 2019-1-23 02:34:26 | 只看该作者
话说,5000个开关还不够用的吗……是不是再考虑一下游戏的设计?你大概想做什么可以说出来大家讨论下
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37754
在线时间
5385 小时
注册时间
2006-11-10
帖子
6545
4
发表于 2019-1-23 17:06:43 | 只看该作者
其实很多时候, 一个变量就可以代替N个开关的,  

而一个数组可以代替N个变量.......
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33143
在线时间
10485 小时
注册时间
2009-3-15
帖子
4756
5
发表于 2019-1-23 17:25:05 | 只看该作者
灯笼菜刀王 发表于 2019-1-23 17:06
其实很多时候, 一个变量就可以代替N个开关的,  

而一个数组可以代替N个变量....... ...

然后一个变量可以代替N个数组233
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 14:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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