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

Project1

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

有事请教

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-2-9
帖子
38
跳转到指定楼层
1
发表于 2009-1-27 19:41:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
First:我使用了升级提示的脚本(就是有箭头升的那个),和等级无限升的那个脚本.不过用了等级的那个之后,有箭头的提示就出不到来,请问如何解决.

Second:使用了等级的脚本后,尝试升过了99极后发现int的成长特别高,基本上我的男主角(物理型+半魔法)到9999级后就是精神力大于攻击力5倍以上.女主角(魔法+半物理)更是达到了10倍左右.

Third:vx本身程序的设置数值不能太大(能力max是999,武器防具是500),但是使用了等级脚本后,能力也应该相应增加,请问如何突破?


请知道如何解决的朋友说明白的(关于脚本方面我是个超级大白)

先谢过帮忙的朋友.(其实本人十分喜欢魔界战记的,所以才想仿照9999级之类)

谢谢
此贴于 2009-2-4 11:18:32 被版主木葬枫提醒,请楼主看到后对本贴做出回应。
此贴于 2009-2-10 21:51:58 被版主八云紫提醒,请楼主看到后对本贴做出回应。
本贴由论坛斑竹八云紫结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
我是神圣古兰巴伦帝国皇帝艾零修.V.古兰巴伦.

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-2-9
帖子
38
2
 楼主| 发表于 2009-1-28 03:30:41 | 只看该作者
请问有高手帮忙吗?
我是神圣古兰巴伦帝国皇帝艾零修.V.古兰巴伦.
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-1-20
帖子
46
3
发表于 2009-1-28 03:44:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
帖子
5369

贵宾

4
发表于 2009-1-28 03:50:14 | 只看该作者
1,那个应该是脚本冲突造成 同类型脚本(如等级脚本)尽量使用一个.

2,可以修改角色能力曲线看看.

3,请贴出脚本
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-2-9
帖子
38
5
 楼主| 发表于 2009-1-28 04:16:05 | 只看该作者
  1. #_/----------------------------------------------------------------------------
  2. #_/ 游戏的变化,在各种属性上限设定
  3. #_/============================================================================
  4. #_/  
  5. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  6. #==============================================================================
  7. # ★ 定制数据 - Customize ★
  8. #==============================================================================

  9. module KGC
  10. module LimitBreak
  11. # ◆ 等级经验值计算方式
  12. #   0..按照数据库那样(系统默认)
  13. #      (100级以后使用 PARAMETER_CALC_EXP 作为计算式)
  14. #
  15. #   1..使用了数据库的2次函数
  16. #       作为a:等级1数值 b:等级2数值 c:等级3数值 x:现实等级
  17. #      
  18. #        ax^2 + bx + c
  19. #        这是用来算出等级数值的公式
  20. #
  21. #   2..使用了数据库的1次函数
  22. #        作为b:等级2数值 c:等级3数值 x:现实等级
  23. #      
  24. #        bx + c
  25. #       这是用来算出等级数值的公式
  26. #      (使用等级 2 和 3 的数值,为了轻松跟2次函数方式的分开使用)
  27. PARAMETER_CALC_METHOD = 0   # 在这里输入能力值计算方式的编号

  28. # ◆ 水平 100以后的等级经验值计算式
  29. #  PARAMETER_CALC_METHOD = 0 的时候使用
  30. #  【 level..现实等级 param[x]..等级 x 的等级经验值 】
  31. #  这个是等级 99 的等级经验值加在一起算的计算结果
  32. PARAMETER_CALC_EXP = "(param[99] - param[94]) * (level - 99)"

  33. # ◆ 角色的等级上限
  34. ACTOR_FINAL_LEVEL = []  # ← 这个保留
  35. # 从这里输入,每个角色的等级上限
  36. # ACTOR_FINAL_LEVEL[角色ーID] = 等级上限
  37. # <例> ↓ 角色ー 1 の等级上限为 9999
  38. ACTOR_FINAL_LEVEL[1] = 9999  # 按上面所说的的进行设定

  39. # ◆ 角色的等级上限(默认)
  40. #  没指定上限的情况,作为最后等级使用这个数值
  41. ACTOR_FINAL_LEVEL_DEFAULT = 9999
  42. # ◆ 角色的经验值上限
  43. ACTOR_EXP_LIMIT = 9999999999999

  44. # ◆ 角色的 MaxHP 上限
  45. ACTOR_MAXHP_LIMIT     = 999999999
  46. # ◆ 角色的 MaxMP 上限
  47. ACTOR_MAXMP_LIMIT     = 999999999
  48. # ◆ 角色的攻击力,防御力,精神力,敏捷性上限
  49. ACTOR_PARAMETER_LIMIT = 999999999

  50. # ◆ 敌人的 MaxHP 上限
  51. ENEMY_MAXHP_LIMIT     = 999999999
  52. # ◆ 敌人的 MaxMP 上限
  53. ENEMY_MAXMP_LIMIT     = 999999999
  54. # ◆ 敌人的攻击力,防御力,精神力,敏捷性上限
  55. ENEMY_PARAMETER_LIMIT = 999999999

  56. # ◆ 敌人的能力值补正
  57. #  把敌人的各种能力值做为数据库的 0%
  58. #  如果要数据库那样请输入 100
  59. ENEMY_MAXHP_RATE = 100  # MaxHP
  60. ENEMY_MAXMP_RATE = 100  # MaxMP
  61. ENEMY_ATK_RATE   = 100  # 攻击力
  62. ENEMY_DEF_RATE   = 100  # 防御力
  63. ENEMY_SPI_RATE   = 100  # 精神力
  64. ENEMY_AGI_RATE   = 100  # 敏捷性

  65. # ◆ 所携带金钱上限
  66. GOLD_LIMIT = 9999999999999

  67. # ◆ 所携带物品数量上限
  68. ITEM_NUMBER_LIMIT = 99

  69. module_function
  70. #--------------------------------------------------------------------------
  71. # ○  敌人能力值直接指定
  72. #     在这里能直接指定敌人的 MaxHP 等数据
  73. #     如果不指定将使用数据库默认的数据使用
  74. #     注意,如果要直接指定,必须去掉$data_enemies前面的#哦
  75. #--------------------------------------------------------------------------
  76. def set_enemy_parameters
  77.    #  <例> ID:10 敌人的 MaxHP 为 2000000 的情况
  78.    # $data_enemies[10].maxhp = 2000000
  79.    #  <例> ID:16 敌人的 攻击力 为 5000 的情况
  80.    # $data_enemies[16].atk = 5000
  81.    #  <例> ID:20 敌人的 防御力为 2 倍 的情况
  82.    # $data_enemies[20].def *= 2
  83. end
  84. end
  85. end

  86. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  87. $imported = {} if $imported == nil
  88. $imported["LimitBreak"] = true

  89. module KGC::LimitBreak
  90. # 定义正则表达式
  91. module Regexp
  92.    # 基本规定
  93.    module BaseItem
  94.      # 所持数上限
  95.      NUMBER_LIMIT = /^<(?:NUMBER_LIMIT|所持数上限)[ ]*(\d+)>/i
  96.    end
  97. end

  98. module_function
  99. #--------------------------------------------------------------------------
  100. # ○ 适用敌人的能力修正
  101. #--------------------------------------------------------------------------
  102. def revise_enemy_parameters
  103.    (1...$data_enemies.size).each { |i|
  104.      enemy = $data_enemies[i]
  105.      enemy.maxhp = enemy.maxhp * ENEMY_MAXHP_RATE / 100
  106.      enemy.maxmp = enemy.maxmp * ENEMY_MAXMP_RATE / 100
  107.      enemy.atk = enemy.atk * ENEMY_ATK_RATE / 100
  108.      enemy.def = enemy.def * ENEMY_DEF_RATE / 100
  109.      enemy.spi = enemy.spi * ENEMY_SPI_RATE / 100
  110.      enemy.agi = enemy.agi * ENEMY_AGI_RATE / 100
  111.    }
  112. end
  113. end

  114. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  115. #==============================================================================
  116. # ■ RPG::BaseItem
  117. #==============================================================================

  118. class RPG::BaseItem
  119. #--------------------------------------------------------------------------
  120. # ○ 所携带金钱上限生成
  121. #--------------------------------------------------------------------------
  122. def create_limit_break_cache
  123.    @__number_limit = KGC::LimitBreak::ITEM_NUMBER_LIMIT

  124.    @note.split(/[\r\n]+/).each { |line|
  125.      if line =~ KGC::LimitBreak::Regexp::BaseItem::NUMBER_LIMIT
  126.        # 所持数上限
  127.        @__number_limit = $1.to_i
  128.      end
  129.    }
  130. end
  131. #--------------------------------------------------------------------------
  132. # ○ 所持数上限获得
  133. #--------------------------------------------------------------------------
  134. def number_limit
  135.    create_limit_break_cache if @__number_limit == nil
  136.    return @__number_limit
  137. end
  138. end

  139. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  140. #==============================================================================
  141. # ■ Game_Battler
  142. #==============================================================================

  143. class Game_Battler
  144. #--------------------------------------------------------------------------
  145. # ● MaxHP 上限获得
  146. #--------------------------------------------------------------------------
  147. def maxhp_limit
  148.    return KGC::LimitBreak::ENEMY_MAXHP_LIMIT
  149. end
  150. #--------------------------------------------------------------------------
  151. # ○ MaxMP 上限获得
  152. #--------------------------------------------------------------------------
  153. def maxmp_limit
  154.    return KGC::LimitBreak::ENEMY_MAXMP_LIMIT
  155. end
  156. #--------------------------------------------------------------------------
  157. # ● MaxMP 上限获得
  158. #--------------------------------------------------------------------------
  159. def maxmp
  160.    return [[base_maxmp + @maxmp_plus, 0].max, maxmp_limit].min
  161. end
  162. #--------------------------------------------------------------------------
  163. # ○ 各种能力值的上限数据获得
  164. #--------------------------------------------------------------------------
  165. def parameter_limit
  166.    return KGC::LimitBreak::ENEMY_PARAMETER_LIMIT
  167. end
  168. #--------------------------------------------------------------------------
  169. # ● 攻击力获得
  170. #--------------------------------------------------------------------------
  171. def atk
  172.    n = [base_atk + @atk_plus, 1].max
  173.    states.each { |state| n *= state.atk_rate / 100.0 }
  174.    n = [[Integer(n), 1].max, parameter_limit].min
  175.    return n
  176. end
  177. #--------------------------------------------------------------------------
  178. # ● 防御力获得
  179. #--------------------------------------------------------------------------
  180. def def
  181.    n = [base_def + @def_plus, 1].max
  182.    states.each { |state| n *= state.def_rate / 100.0 }
  183.    n = [[Integer(n), 1].max, parameter_limit].min
  184.    return n
  185. end
  186. #--------------------------------------------------------------------------
  187. # ● 精神力获得
  188. #--------------------------------------------------------------------------
  189. def spi
  190.    n = [base_spi + @spi_plus, 1].max
  191.    states.each { |state| n *= state.spi_rate / 100.0 }
  192.    n = [[Integer(n), 1].max, parameter_limit].min
  193.    return n
  194. end
  195. #--------------------------------------------------------------------------
  196. # ● 敏捷性获得
  197. #--------------------------------------------------------------------------
  198. def agi
  199.    n = [base_agi + @agi_plus, 1].max
  200.    states.each { |state| n *= state.agi_rate / 100.0 }
  201.    n = [[Integer(n), 1].max, parameter_limit].min
  202.    return n
  203. end
  204. #--------------------------------------------------------------------------
  205. # ● MaxHP 的设定
  206. #     new_maxhp : 新的 MaxHP
  207. #--------------------------------------------------------------------------
  208. def maxhp=(new_maxhp)
  209.    @maxhp_plus += new_maxhp - self.maxhp
  210.    @maxhp_plus = [[@maxhp_plus, -maxhp_limit].max, maxhp_limit].min
  211.    @hp = [@hp, self.maxhp].min
  212. end
  213. #--------------------------------------------------------------------------
  214. # ● MaxMP 的设定
  215. #     new_maxmp : 新的 MaxMP
  216. #--------------------------------------------------------------------------
  217. def maxmp=(new_maxmp)
  218.    @maxmp_plus += new_maxmp - self.maxmp
  219.    @maxmp_plus = [[@maxmp_plus, -maxmp_limit].max, maxmp_limit].min
  220.    @mp = [@mp, self.maxmp].min
  221. end
  222. #--------------------------------------------------------------------------
  223. # ● 攻击力的设定
  224. #     new_atk : 新的攻击力
  225. #--------------------------------------------------------------------------
  226. def atk=(new_atk)
  227.    @atk_plus += new_atk - self.atk
  228.    @atk_plus = [[@atk_plus, -parameter_limit].max, parameter_limit].min
  229. end
  230. #--------------------------------------------------------------------------
  231. # ● 防御力的设定
  232. #     new_def : 新的防御力
  233. #--------------------------------------------------------------------------
  234. def def=(new_def)
  235.    @def_plus += new_def - self.def
  236.    @def_plus = [[@def_plus, -parameter_limit].max, parameter_limit].min
  237. end
  238. #--------------------------------------------------------------------------
  239. # ● 精神力的设定
  240. #     new_spi : 新的精神力
  241. #--------------------------------------------------------------------------
  242. def spi=(new_spi)
  243.    @spi_plus += new_spi - self.spi
  244.    @spi_plus = [[@spi_plus, -parameter_limit].max, parameter_limit].min
  245. end
  246. #--------------------------------------------------------------------------
  247. # ● 敏捷性的设定
  248. #     agi : 新的敏捷性
  249. #--------------------------------------------------------------------------
  250. def agi=(new_agi)
  251.    @agi_plus += new_agi - self.agi
  252.    @agi_plus = [[@agi_plus, -parameter_limit].max, parameter_limit].min
  253. end
  254. end

  255. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  256. #==============================================================================
  257. # ■ Game_Actor
  258. #==============================================================================

  259. class Game_Actor < Game_Battler
  260. #--------------------------------------------------------------------------
  261. # ● 经验值計算
  262. #--------------------------------------------------------------------------
  263. def make_exp_list
  264.    @exp_list = Array.new(final_level + 2)
  265.    @exp_list[1] = @exp_list[final_level + 1] = 0
  266.    m = actor.exp_basis
  267.    n = 0.75 + actor.exp_inflation / 200.0
  268.    (2..final_level).each { |i|
  269.      @exp_list[i] = @exp_list[i-1] + Integer(m)
  270.      m *= 1 + n
  271.      n *= 0.9
  272.    }
  273. end
  274. #--------------------------------------------------------------------------
  275. # ○ 最后等级的获得
  276. #--------------------------------------------------------------------------
  277. def final_level
  278.    n = KGC::LimitBreak::ACTOR_FINAL_LEVEL[self.id]
  279.    return (n != nil ? n : KGC::LimitBreak::ACTOR_FINAL_LEVEL_DEFAULT)
  280. end
  281. #--------------------------------------------------------------------------
  282. # ● MaxHP 的上限获得
  283. #--------------------------------------------------------------------------
  284. def maxhp_limit
  285.    return KGC::LimitBreak::ACTOR_MAXHP_LIMIT
  286. end
  287. #--------------------------------------------------------------------------
  288. # ○ MaxMP 的上限获得
  289. #--------------------------------------------------------------------------
  290. def maxmp_limit
  291.    return KGC::LimitBreak::ACTOR_MAXMP_LIMIT
  292. end
  293. #--------------------------------------------------------------------------
  294. # ○ 各種能力值的上限获得
  295. #--------------------------------------------------------------------------
  296. def parameter_limit
  297.    return KGC::LimitBreak::ACTOR_PARAMETER_LIMIT
  298. end
  299. #--------------------------------------------------------------------------
  300. # ○ 经验值的上限获得
  301. #--------------------------------------------------------------------------
  302. def exp_limit
  303.    return KGC::LimitBreak::ACTOR_EXP_LIMIT
  304. end
  305. #--------------------------------------------------------------------------
  306. # ● 经验值的变更
  307. #     exp  : 新的经验值
  308. #     show : 提高等级表示标志
  309. #--------------------------------------------------------------------------
  310. def change_exp(exp, show)
  311.    last_level = @level
  312.    last_skills = skills
  313.    @exp = [[exp, exp_limit].min, 0].max
  314.    while @exp >= @exp_list[@level+1] && @exp_list[@level+1] > 0
  315.      level_up
  316.    end
  317.    while @exp < @exp_list[@level]
  318.      level_down
  319.    end
  320.    @hp = [@hp, maxhp].min
  321.    @mp = [@mp, maxmp].min
  322.    if show && @level > last_level
  323.      display_level_up(skills - last_skills)
  324.    end
  325. end
  326. #--------------------------------------------------------------------------
  327. # ● 等级的变更
  328. #     level : 新的等级
  329. #     show  : 提高等级表示标志
  330. #--------------------------------------------------------------------------
  331. def change_level(level, show)
  332.    level = [[level, final_level].min, 1].max
  333.    change_exp(@exp_list[level], show)
  334. end
  335. #--------------------------------------------------------------------------
  336. # ○ 基本参数的取得
  337. #--------------------------------------------------------------------------
  338. def base_parameter(type)
  339.    case KGC::LimitBreak::PARAMETER_CALC_METHOD
  340.    when 0  # 数式定义
  341.      if @level >= 100
  342.        calc_text = KGC::LimitBreak::PARAMETER_CALC_EXP.dup
  343.        calc_text.gsub!(/level/i) { "@level" }
  344.        calc_text.gsub!(/param\[(\d+)\]/i) {
  345.          "actor.parameters[type, #{$1.to_i}]"
  346.        }
  347.        return actor.parameters[type, 99] + eval(calc_text)
  348.      end
  349.    when 1  # 二次函数
  350.      a = actor.parameters[type, 1]
  351.      b = actor.parameters[type, 2]
  352.      c = actor.parameters[type, 3]
  353.      return ((a * @level + b) * @level + c)
  354.    when 2  # 一次函数
  355.      b = actor.parameters[type, 2]
  356.      c = actor.parameters[type, 3]
  357.      return (b * @level + c)
  358.    end
  359.    return actor.parameters[type, @level]
  360. end
  361. #--------------------------------------------------------------------------
  362. # ● 基本 MaxHP 的获得
  363. #--------------------------------------------------------------------------
  364. def base_maxhp
  365.    return base_parameter(0)
  366. end
  367. #--------------------------------------------------------------------------
  368. # ● 基本 MaxMP 的获得
  369. #--------------------------------------------------------------------------
  370. def base_maxmp
  371.    return base_parameter(1)
  372. end
  373. #--------------------------------------------------------------------------
  374. # ● 基本攻击力的获得
  375. #--------------------------------------------------------------------------
  376. def base_atk
  377.    n = base_parameter(2)
  378.    equips.compact.each { |item| n += item.atk }
  379.    return n
  380. end
  381. #--------------------------------------------------------------------------
  382. # ● 基本防御力的获得
  383. #--------------------------------------------------------------------------
  384. def base_def
  385.    n = base_parameter(3)
  386.    equips.compact.each { |item| n += item.def }
  387.    return n
  388. end
  389. #--------------------------------------------------------------------------
  390. # ● 基本精神力的获得
  391. #--------------------------------------------------------------------------
  392. def base_spi
  393.    n = base_parameter(4)
  394.    equips.compact.each { |item| n += item.spi }
  395.    return n
  396. end
  397. #--------------------------------------------------------------------------
  398. # ● 基本敏捷性的获得
  399. #--------------------------------------------------------------------------
  400. def base_agi
  401.    n = base_parameter(5)
  402.    equips.compact.each { |item| n += item.agi }
  403.    return n
  404. end
  405. end

  406. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  407. #==============================================================================
  408. # ■ Game_Party
  409. #==============================================================================

  410. class Game_Party < Game_Unit
  411. #--------------------------------------------------------------------------
  412. # ○ 所携带金钱上限值获得
  413. #--------------------------------------------------------------------------
  414. def gold_limit
  415.    return KGC::LimitBreak::GOLD_LIMIT
  416. end
  417. #--------------------------------------------------------------------------
  418. # ● 金钱的增加(减少)
  419. #     n : 金额
  420. #--------------------------------------------------------------------------
  421. def gain_gold(n)
  422.    @gold = [[@gold + n, 0].max, gold_limit].min
  423. end
  424. #--------------------------------------------------------------------------
  425. # ● 物品的増加(減少)
  426. #     item          : 物品
  427. #     n             : 个数
  428. #     include_equip : 包含装备物品
  429. #--------------------------------------------------------------------------
  430. def gain_item(item, n, include_equip = false)
  431.    number = item_number(item)
  432.    case item
  433.    when RPG::Item
  434.      @items[item.id] = [[number + n, 0].max, item.number_limit].min
  435.    when RPG::Weapon
  436.      @weapons[item.id] = [[number + n, 0].max, item.number_limit].min
  437.    when RPG::Armor
  438.      @armors[item.id] = [[number + n, 0].max, item.number_limit].min
  439.    end
  440.    n += number
  441.    if include_equip && n < 0
  442.      members.each { |actor|
  443.        while n < 0 && actor.equips.include?(item)
  444.          actor.discard_equip(item)
  445.          n += 1
  446.        end
  447.      }
  448.    end
  449. end
  450. end

  451. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  452. #==============================================================================
  453. # ■ Window_ShopBuy
  454. #==============================================================================

  455. class Window_ShopBuy < Window_Selectable
  456. #--------------------------------------------------------------------------
  457. # ● 项目的描画
  458. #     index : 项目番号
  459. #--------------------------------------------------------------------------
  460. def draw_item(index)
  461.    item = @data[index]
  462.    number = $game_party.item_number(item)
  463.    enabled = (item.price <= $game_party.gold && number < item.number_limit)
  464.    rect = item_rect(index)
  465.    self.contents.clear_rect(rect)
  466.    draw_item_name(item, rect.x, rect.y, enabled)
  467.    rect.width -= 4
  468.    self.contents.draw_text(rect, item.price, 2)
  469. end
  470. end

  471. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  472. #==============================================================================
  473. # ■ Scene_Title
  474. #==============================================================================

  475. class Scene_Title < Scene_Base
  476. #--------------------------------------------------------------------------
  477. # ● 数据库的路径
  478. #--------------------------------------------------------------------------
  479. alias load_database_KGC_LimitBreak load_database
  480. def load_database
  481.    load_database_KGC_LimitBreak

  482.    set_enemy_parameters
  483. end
  484. #--------------------------------------------------------------------------
  485. # ● 战斗测试的数据库的路径
  486. #--------------------------------------------------------------------------
  487. alias load_bt_database_KGC_LimitBreak load_bt_database
  488. def load_bt_database
  489.    load_bt_database_KGC_LimitBreak

  490.    set_enemy_parameters
  491. end
  492. #--------------------------------------------------------------------------
  493. # ○ 设定敌人的能力值
  494. #--------------------------------------------------------------------------
  495. def set_enemy_parameters
  496.    KGC::LimitBreak.revise_enemy_parameters
  497.    KGC::LimitBreak.set_enemy_parameters
  498. end
  499. end

  500. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  501. #==============================================================================
  502. # ■ Scene_File
  503. #==============================================================================

  504. class Scene_File < Scene_Base
  505. #--------------------------------------------------------------------------
  506. # ● 存档数据读取
  507. #     file : 读取存档文件
  508. #--------------------------------------------------------------------------
  509. alias read_save_data_KGC_LimitBreak read_save_data
  510. def read_save_data(file)
  511.    read_save_data_KGC_LimitBreak(file)

  512.    (1...$data_actors.size).each { |i|
  513.      actor = $game_actors[i]
  514.      actor.make_exp_list
  515.      # 等级上限检查
  516.      if actor.level > actor.final_level
  517.        while actor.level > actor.final_level
  518.          actor.level_down
  519.        end
  520.        # 反映减少了的 HP 等
  521.        actor.change_level(actor.final_level, false)
  522.      end
  523.    }
  524. end
  525. end

  526. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  527. #==============================================================================
  528. # ■ Scene_Shop
  529. #==============================================================================

  530. class Scene_Shop < Scene_Base
  531. #--------------------------------------------------------------------------
  532. # ● 购买物品选择更新
  533. #--------------------------------------------------------------------------
  534. def update_buy_selection
  535.    @status_window.item = @buy_window.item
  536.    if Input.trigger?(Input::B)
  537.      Sound.play_cancel
  538.      @command_window.active = true
  539.      @dummy_window.visible = true
  540.      @buy_window.active = false
  541.      @buy_window.visible = false
  542.      @status_window.visible = false
  543.      @status_window.item = nil
  544.      @help_window.set_text("")
  545.      return
  546.    end
  547.    if Input.trigger?(Input::C)
  548.      @item = @buy_window.item
  549.      number = $game_party.item_number(@item)
  550.      if @item == nil || @item.price > $game_party.gold ||
  551.          number == @item.number_limit
  552.        Sound.play_buzzer
  553.      else
  554.        Sound.play_decision
  555.        max = (@item.price == 0 ?
  556.          @item.number_limit : $game_party.gold / @item.price)
  557.        max = [max, @item.number_limit - number].min
  558.        @buy_window.active = false
  559.        @buy_window.visible = false
  560.        @number_window.set(@item, max, @item.price)
  561.        @number_window.active = true
  562.        @number_window.visible = true
  563.      end
  564.    end
  565. end
  566. end
复制代码


这个是等级的

关于成长曲线,我修改了,但是效果只是好了一点.
我是神圣古兰巴伦帝国皇帝艾零修.V.古兰巴伦.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-2-9
帖子
38
6
 楼主| 发表于 2009-1-28 04:16:56 | 只看该作者
  1. class Game_Actor < Game_Battler

  2.   attr_accessor :last_level   
  3.    def initialize(actor_id)
  4.     super()
  5.     setup(actor_id)
  6.     @last_level = 0
  7.     @last_skill_id = 0
  8.    end
  9.    def last_atk
  10.     return actor.parameters[2,@last_level]
  11.   end
  12.   def last_def
  13.     return actor.parameters[3,@last_level]
  14.   end
  15.   def last_spi
  16.     return actor.parameters[4,@last_level]
  17.   end
  18.   def last_agi
  19.     return actor.parameters[5,@last_level]
  20.    end
  21.   def now_atk
  22.     return actor.parameters[2,@level]
  23.   end
  24.   def now_def
  25.     return actor.parameters[3,@level]
  26.   end
  27.   def now_spi
  28.     return actor.parameters[4,@level]
  29.   end
  30.   def now_agi
  31.     return actor.parameters[5,@level]
  32.   end  
  33.    def change_exp(exp, show)
  34.     @last_level = @level
  35.     last_skills = skills
  36.    
  37.     @exp = [[exp, 9999999].min, 0].max
  38.    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  39.       level_up
  40.     end
  41.     while @exp < @exp_list[@level]
  42.       level_down
  43.     end
  44.     @hp = [@hp, maxhp].min
  45.     @mp = [@mp, maxmp].min
  46.     if show and @level > last_level
  47.       
  48.       zhonglevelup_push(skills - last_skills)
  49.     end
  50.   end
  51.    #==========================================================================
  52.   #★角色升级显示
  53.   #==========================================================================
  54.   
  55.   def zhonglevelup_push(new_skills)
  56.    
  57.     text = [@actor_id,new_skills]
  58.     $game_temp.levelup_texts.push(text)
  59.   end
  60. end



  61. class Scene_Battle < Scene_Base

  62. def display_level_up
  63.     exp = $game_troop.exp_total
  64.     $game_party.remove_states_battle
  65.     @message_window.contents_opacity = 0
  66.     @message_window.opacity = 0
  67.     @levelup_window = Window_zhonglevelup.new
  68.     for actor in $game_party.existing_members
  69.       last_level = actor.level
  70.       last_skills = actor.skills
  71.       actor.gain_exp(exp, true)
  72.     end
  73.    
  74.     update_zhonglevelup
  75.    
  76.    
  77.   end
  78.   #==========================================================================
  79.   #★等待升级窗口刷新
  80.   #==========================================================================
  81.    def update_zhonglevelup
  82.       @levelup_window.update
  83.      while @levelup_window.visible
  84.        @levelup_window.update
  85.        Graphics.update
  86.        Input.update
  87.      end
  88.    end
  89.    
  90. end   

  91. class Game_Temp
  92.     attr_accessor :levelup_texts
  93.   #--------------------------------------------------------------------------
  94.   # ● オブジェクト初期化
  95.   #--------------------------------------------------------------------------
  96.   alias oldinitialize initialize
  97.   def initialize
  98.     @levelup_texts = []
  99.     oldinitialize
  100.   end  
  101.   
  102. end


  103. class Window_zhonglevelup < Window_Base

  104.   attr_accessor :index
  105.   def initialize
  106.     super(122, 15, 350, 345)
  107.     $game_temp.levelup_texts = []
  108.     @index = 0
  109.     @skill_index = 0
  110.     @skill_window = Window_Base.new(122,23,260,36)
  111.     @skill_window.opacity = 0
  112.     @skill_window.z = self.z - 1
  113.     @main_window = Window_Base.new(122,59,260,290)
  114.     @main_window.opacity = 0
  115.     @main_window.z = self.z - 1
  116.    
  117.     self.opacity = 0
  118.     self.visible = false
  119.    
  120.     #update
  121.    
  122.    end
  123.   
  124.   
  125.   #--------------------------------------------------------------------------
  126.   # ★ $game_temp.levelup_texts = [角色id,新特技]
  127.   #--------------------------------------------------------------------------
  128.   def update
  129.    
  130.    
  131.     zhonginputupdate if @index <= $game_temp.levelup_texts.size-1
  132.      
  133.     if @index <= $game_temp.levelup_texts.size-1      
  134.       
  135.       self.visible = true
  136.       @main_window.opacity = 150
  137.       actor = $game_actors[$game_temp.levelup_texts[@index][0]]
  138.       if @skill_index == 0 and $game_temp.levelup_texts[@index][1].size != 0
  139.         @skill_index = $game_temp.levelup_texts[@index][1].size
  140.       end  
  141.       level = actor.level
  142.       last_level = actor.last_level
  143.       atk = actor.now_atk
  144.       now_def = actor.now_def
  145.       spi = actor.now_spi
  146.       agi = actor.now_agi
  147.       last_atk = actor.last_atk
  148.       last_def = actor.last_def
  149.       last_spi = actor.last_spi
  150.       last_agi = actor.last_agi
  151.       
  152.       
  153.       self.contents.clear
  154.       
  155.       # x = 122
  156.       # y = 58
  157.        @skill_window.opacity = $game_temp.levelup_texts[@index][1].size != 0 ? 150 : 0
  158.        skill_name = $game_temp.levelup_texts[@index][1][@skill_index - 1].name if @skill_index != 0
  159.        level_name = Vocab::level
  160.        atk_name = Vocab::atk
  161.        def_name = Vocab::def
  162.        spi_name = Vocab::spi
  163.        agi_name = Vocab::agi
  164.        font = self.contents.font.size
  165.        x = 5
  166.        y = 165
  167.        self.contents.draw_text(x,y,60,60,atk_name)
  168.        self.contents.draw_text(x,y+30,60,60,def_name)
  169.        self.contents.draw_text(x,y+60,60,60,spi_name)
  170.        self.contents.draw_text(x,y+90,60,60,agi_name)
  171.        self.contents.draw_text(x + 45,y,60,60, last_atk)
  172.        self.contents.draw_text(x + 45,y+30,60,60,last_def)
  173.        self.contents.draw_text(x + 45,y+60,60,60,last_spi)
  174.        self.contents.draw_text(x + 45,y + 90,60,60,last_agi)
  175.        self.contents.draw_text(x,y-30,60,60,level_name)
  176.        self.contents.draw_text(x + 45,y-30,60,60,last_level)
  177.        self.contents.font.color = Color.new(0,255,0,255)
  178.        self.contents.draw_text(x + 105,y-30,60,60,level)
  179.        bitmap_5 = Bitmap.new("Graphics/system/箭头")
  180.        rect_5 = Rect.new(0,0,bitmap_5.width,bitmap_5.height)
  181.        self.contents.blt(x + 70,y - 18,bitmap_5,rect_5)
  182.        if atk > last_atk
  183.          self.contents.draw_text(x+105,y,60,60,atk)
  184.          atk_opacity = 255
  185.        else
  186.          atk_opacity = 0
  187.        end  
  188.        bitmap_1 = Bitmap.new("Graphics/system/箭头")
  189.        rect_1 = Rect.new(0,0,bitmap_1.width,bitmap_1.height)
  190.        self.contents.blt(x+70,y+12,bitmap_1,rect_1,atk_opacity)
  191.       
  192.       
  193.        if now_def > last_def
  194.          self.contents.draw_text(x+105,y+30,60,60,now_def)
  195.          def_opacity = 255
  196.        else
  197.          def_opacity = 0
  198.        end
  199.        bitmap_2 = Bitmap.new("Graphics/system/箭头")
  200.        rect_2 = Rect.new(0,0,bitmap_1.width,bitmap_1.height)
  201.        self.contents.blt(x+70,y+42,bitmap_1,rect_1,def_opacity)
  202.       
  203.        if spi > last_spi
  204.          self.contents.draw_text(x+105,y+60,60,60,spi)
  205.          spi_opacity = 255
  206.        else
  207.          spi_opacity = 0
  208.        end
  209.       
  210.        bitmap_3 = Bitmap.new("Graphics/system/箭头")
  211.        rect_3 = Rect.new(0,0,bitmap_1.width,bitmap_1.height)
  212.        self.contents.blt(x+70,y+72,bitmap_1,rect_1,spi_opacity)
  213.       
  214.        if agi > last_agi
  215.          self.contents.draw_text(x + 105,y + 90,60,60,agi)
  216.          agi_opacity = 255
  217.        else
  218.          agi_opacity = 0
  219.        end
  220.        bitmap_4 = Bitmap.new("Graphics/system/箭头")
  221.        rect_4 = Rect.new(0,0,bitmap_1.width,bitmap_1.height)
  222.        self.contents.blt(x+70,y+102,bitmap_1,rect_1,agi_opacity)
  223.          
  224.       
  225.       
  226.       
  227.        self.contents.font.color = normal_color
  228.        self.contents.font.size = 16
  229.        self.contents.draw_text(60, -19, 120, 60,"学会了 #{skill_name}")if @skill_index != 0
  230.        self.contents.font.color = Color.new(255,255,0,255)
  231.        self.contents.draw_text(61, -19,120,60,"       #{skill_name}")
  232.        self.contents.font.size = font
  233.        draw_face(actor.face_name, actor.face_index,3, 55, size = 80)
  234.        draw_actor_name(actor, 92, 55)
  235.        draw_actor_hp(actor, 95, 85)
  236.        draw_actor_mp(actor, 95, 115)
  237.       
  238.        self.contents.font.color = normal_color
  239.        actor.hp = [actor.maxhp,9999].min
  240.        actor.mp = [actor.maxmp,9999].min
  241.       
  242.       
  243.    
  244.      else
  245.        @main_window.visible = false
  246.        @skill_window.visible =false
  247.        self.visible = false
  248.       
  249.     end   
  250.    
  251.    
  252.      
  253.   end
  254.   #==========================================================================
  255.   #★窗口按键刷新
  256.   #==========================================================================
  257.    def zhonginputupdate
  258.      if Input.trigger?(Input::DOWN)
  259.        if @skill_index != 0
  260.          @skill_index -= 1
  261.          end
  262.          @index += 1 if @skill_index == 0
  263.      end
  264.      if Input.trigger?(Input::UP)
  265.         
  266.         if @skill_index != 0
  267.          @skill_index -= 1
  268.          end
  269.          @index += 1 if @skill_index == 0
  270.       end
  271.       if Input.trigger?(Input::RIGHT)
  272.         
  273.        if @skill_index != 0
  274.          @skill_index -= 1
  275.          end
  276.          @index += 1 if @skill_index == 0
  277.         
  278.       end
  279.       if Input.trigger?(Input::LEFT)
  280.          
  281.          if @skill_index != 0
  282.          @skill_index -= 1
  283.          end
  284.          @index += 1 if @skill_index == 0
  285.          
  286.       end
  287.       if Input.trigger?(Input::B)
  288.          
  289.           if @skill_index != 0
  290.          @skill_index -= 1
  291.          end
  292.          @index += 1 if @skill_index == 0
  293.         
  294.       end
  295.       if Input.trigger?(Input::C)
  296.          if @skill_index != 0
  297.          @skill_index -= 1
  298.          end
  299.          @index += 1 if @skill_index == 0
  300.          
  301.       end
  302.    end
  303.    
  304.   #==========================================================================  
  305.    
  306.   def dispose
  307.     super
  308.     @skill_window.dispose
  309.     @main_window.dispose
  310.   end  
  311.   
  312.   
  313. end

  314. class Scene_Map < Scene_Base
  315.   
  316. def start
  317.     super
  318.     $game_map.refresh
  319.     @spriteset = Spriteset_Map.new
  320.     @message_window = Window_Message.new
  321.     @levelup_window = Window_zhonglevelup.new
  322.     @lus_window = Window_Base.new(122,23,260,36)
  323.     @m_window = Window_Base.new(122,59,260,290)
  324.     @m_window.opacity = 0
  325.     @lus_window.opacity = 0
  326.     @m_window.z = 9998
  327.     @lus_window.z = 9998
  328.     @levelup_window.z = 9999
  329.   end
  330.   
  331. def update
  332.     super
  333.     $game_map.interpreter.update   
  334.     $game_map.update                  
  335.     $game_player.update               
  336.     $game_system.update               
  337.     @spriteset.update                 
  338.     @message_window.update            
  339.    
  340.     unless $game_message.visible      
  341.       update_levelup_window
  342.       update_transfer_player
  343.       update_encounter
  344.       update_call_menu
  345.       update_call_debug
  346.       update_scene_change
  347.     end
  348.   end
  349.   
  350.   def update_levelup_window
  351.       @levelup_window.update
  352.       while @levelup_window.visible
  353.         
  354.         @lus_window.opacity = $game_temp.levelup_texts[@levelup_window.index][1].size != 0 ? 150 : 0
  355.         @m_window.opacity = 150
  356.         @levelup_window.update
  357.         Graphics.update
  358.         Input.update
  359.        end
  360.      @m_window.opacity = 0
  361.     @lus_window.opacity = 0
  362.    
  363.   end   
  364. def terminate
  365.     super
  366.     if $scene.is_a?(Scene_Battle)     # バトル画面に切り替え中の場合
  367.       @spriteset.dispose_characters   # 背景作成のためにキャラを隠す
  368.     end
  369.     snapshot_for_background
  370.     @spriteset.dispose
  371.     @message_window.dispose
  372.     @levelup_window.dispose
  373.     @m_window.dispose
  374.     @lus_window.dispose
  375.     if $scene.is_a?(Scene_Battle)     # バトル画面に切り替え中の場合
  376.       perform_battle_transition       # 戦闘前トランジション実行
  377.     end
  378.   end
  379. end

复制代码



这个是升级提升
我是神圣古兰巴伦帝国皇帝艾零修.V.古兰巴伦.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 17:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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