查看: 1621|回复: 2

[已经解决] 【伸手就砍掉】如何修改数据库框架?只需告知一个方法

[复制链接]

梦石
0
星屑
239
在线时间
2399 小时
注册时间
2008-4-11
回帖
11727

贵宾第6届短篇游戏比赛季军

发表于 2013-7-9 02:57:54 | 显示全部楼层 |阅读模式

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

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

×
rrr3.png
如图,我们一直使用的数据库界面,但是用了这么久数据库后台,总感觉有些功能不是很爽啦
很早前有幸看到II师兄正在做的那个VX的外挂数据库,他说做好的时候,VX将会比VA还有自由性,
真的很崇拜,所以想问问数据库如何做到修改?

我知道P叔不喜欢太过伸手的人啦,我这贴里面只问问如何修改数据库输入框的位数上限:
主要是那个道具出售价格拉,最多只能设定到99万,根本就不够用嘛,可是数据库都把你设定了上限,
不能超过输入位数的,怎么样才能突破输入上限呢?就和道具介绍那个框一样,输入的文字多了,就会
隐藏前面输入的内容,但是一直都是可以输入进去的,而不会发出那种“咚”的禁止声。


八宝粥的基叔

梦石
0
星屑
4957
在线时间
5234 小时
注册时间
2009-4-29
回帖
14054

贵宾

发表于 2013-7-9 09:13:52 | 显示全部楼层
我介绍两种方法,希望瞬叔能举一反三。
方法一:扩大倍数法。我们以maxmp举例,maxmp在数据库中范围是0-9999,此时我希望敌人的maxmp为35000,怎么修改?
首先提高最大MP的上限,Game_Battler类下找到def maxmp并这样改,这并不是修改数据库的输入上限,而是修改从数据库中获取数据后(此时数据可以扩大)的数据上限:
  1.   def maxmp
  2.     return [[base_maxmp + @maxmp_plus, 0].max, 999999].min
  3.   end
复制代码
然后最重要的在这里,Game_Enemy类下有def base_maxmp,这样改:
  1.   def base_maxmp
  2.     if enemy.maxmp <= 9000
  3.       return enemy.maxmp
  4.     else
  5.       return (enemy.maxmp - 9000) * 100
  6.     end
  7.   end
复制代码
瞬叔你这么聪明应该能看懂吧?如果敌人数据库中的最大MP小于等于9000时,返回数据库中的数据,否则(大于9000时),返回数据库数据减去9000后的100倍。此时我希望敌人的maxmp为35000,那么数据库中就写9350,因为(9350-9000)*100 = 35000。如果我希望敌人的maxmp为9500,请问瞬叔应该怎么写?答案请看白字:9095。(9095-9000)*100 = 9500

方法二:沉影不器的备注栏读取法,直接在备注栏中写maxmp要等于的数值,然后在maxmp的定义处利用沉影不器的脚本来读取备注。要修改的地方和上面是一样的,但要记得插入读取备注脚本。

点评

让mp的数值变成浮点数是不是可以解决都是一百的倍数的问题呢?  发表于 2013-7-9 10:09

评分

参与人数 1梦石 +1 收起 理由
Luciffer + 1 认可答案

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部