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

Project1

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

我发现大众版的升级提示和升级回血脚本有冲突- -

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2009-4-18
帖子
45
跳转到指定楼层
1
发表于 2009-4-24 04:59:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. class Game_Actor
  2. #--------------------------------------------------------------------------
  3. # ● 更改 EXP
  4. #     exp : 新的 EXP
  5. #--------------------------------------------------------------------------
  6. def exp=(exp)
  7.    # 记录旧等级
  8.    last_level = @level
  9.    @exp = [[exp, 9999999].min, 0].max
  10.    # 升级
  11.    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  12.      @level += 1
  13.       ###################################################################
  14.       @hp = maxhp
  15.       @sp = maxsp
  16.       ###################################################################
  17.      # 学会特技
  18.      for j in $data_classes[@class_id].learnings
  19.        if j.level == @level
  20.          learn_skill(j.skill_id)
  21.        end
  22.      end
  23.    end
  24.    # 降级
  25.    while @exp < @exp_list[@level]
  26.      @level -= 1
  27.    end
  28.    # 修正当前的 HP 与 SP 超过最大值
  29.    @hp = [@hp, self.maxhp].min
  30.    @sp = [@sp, self.maxsp].min
  31.    # 升级了的话,升级显示处理
  32.    if @level > last_level and $game_switches[$不显示升级窗口] == false and
  33.      not $BTEST
  34.      show_level_up_result(last_level)
  35.    end
  36. end
  37. #--------------------------------------------------------------------------
  38. # ● 升级显示处理
  39. #--------------------------------------------------------------------------
  40. def show_level_up_result(last_level)
  41.    actor_parameters = self.last_parameters(last_level)
  42.    last_maxhp = actor_parameters[0]
  43.    last_maxsp = actor_parameters[1]
  44.    last_str = actor_parameters[2]
  45.    last_dex = actor_parameters[3]
  46.    last_agi = actor_parameters[4]
  47.    last_int = actor_parameters[5]
  48.    level_up_window = Window_LevelUpWindow_A.new self,last_level,last_maxhp,
  49.    last_maxsp,last_str,last_dex,last_agi,last_int
  50.    level_up_window.visible = true
  51.    skill_learning_window = Window_SkillLearning_A.new(@class_id,
  52.    last_level, @level)
  53.    # 循环
  54.    loop do
  55.      # 刷新游戏画面
  56.      Graphics.update
  57.      # 刷新输入信息
  58.      Input.update
  59.      # 按下C就关闭窗口
  60.      if Input.trigger?(Input::C)
  61.        unless skill_learning_window.refresh
  62.          level_up_window.dispose
  63.          skill_learning_window.dispose
  64.          return true
  65.        end
  66.      end
  67.    end
  68. end
  69. #--------------------------------------------------------------------------
  70. # ● 一次取得全部旧属性
  71. #--------------------------------------------------------------------------
  72. def last_parameters(level)
  73.    #---------------------------
  74.    # maxhp
  75.    #---------------------------
  76.    n = [[$data_actors[@actor_id].parameters[0, level] + @maxhp_plus, 1].max, 9999].min
  77.    for i in @states
  78.      n *= $data_states[i].maxhp_rate / 100.0
  79.    end
  80.    n = [[Integer(n), 1].max, 9999].min
  81.    maxhp = n
  82.    #---------------------------
  83.    # maxsp
  84.    #---------------------------
  85.    n = [[$data_actors[@actor_id].parameters[1, level] + @maxsp_plus, 0].max, 9999].min
  86.    for i in @states
  87.      n *= $data_states[i].maxsp_rate / 100.0
  88.    end
  89.    n = [[Integer(n), 0].max, 9999].min
  90.    maxsp = n
  91.    #---------------------------
  92.    # str
  93.    #---------------------------
  94.    n = $data_actors[@actor_id].parameters[2, level]
  95.    weapon = $data_weapons[@weapon_id]
  96.    armor1 = $data_armors[@armor1_id]
  97.    armor2 = $data_armors[@armor2_id]
  98.    armor3 = $data_armors[@armor3_id]
  99.    armor4 = $data_armors[@armor4_id]
  100.    n += weapon != nil ? weapon.str_plus : 0
  101.    n += armor1 != nil ? armor1.str_plus : 0
  102.    n += armor2 != nil ? armor2.str_plus : 0
  103.    n += armor3 != nil ? armor3.str_plus : 0
  104.    n += armor4 != nil ? armor4.str_plus : 0
  105.    n = [[n + @str_plus, 1].max, 999].min
  106.    for i in @states
  107.      n *= $data_states[i].str_rate / 100.0
  108.    end
  109.    n = [[Integer(n), 1].max, 999].min
  110.    str = n
  111.    #---------------------------
  112.    # dex
  113.    #---------------------------
  114.    n = $data_actors[@actor_id].parameters[3, level]
  115.    weapon = $data_weapons[@weapon_id]
  116.    armor1 = $data_armors[@armor1_id]
  117.    armor2 = $data_armors[@armor2_id]
  118.    armor3 = $data_armors[@armor3_id]
  119.    armor4 = $data_armors[@armor4_id]
  120.    n += weapon != nil ? weapon.dex_plus : 0
  121.    n += armor1 != nil ? armor1.dex_plus : 0
  122.    n += armor2 != nil ? armor2.dex_plus : 0
  123.    n += armor3 != nil ? armor3.dex_plus : 0
  124.    n += armor4 != nil ? armor4.dex_plus : 0
  125.    n = [[n + @dex_plus, 1].max, 999].min
  126.    for i in @states
  127.      n *= $data_states[i].dex_rate / 100.0
  128.    end
  129.    n = [[Integer(n), 1].max, 999].min
  130.    dex = n
  131.    #---------------------------
  132.    # agi
  133.    #---------------------------
  134.    n = $data_actors[@actor_id].parameters[4, level]
  135.    weapon = $data_weapons[@weapon_id]
  136.    armor1 = $data_armors[@armor1_id]
  137.    armor2 = $data_armors[@armor2_id]
  138.    armor3 = $data_armors[@armor3_id]
  139.    armor4 = $data_armors[@armor4_id]
  140.    n += weapon != nil ? weapon.agi_plus : 0
  141.    n += armor1 != nil ? armor1.agi_plus : 0
  142.    n += armor2 != nil ? armor2.agi_plus : 0
  143.    n += armor3 != nil ? armor3.agi_plus : 0
  144.    n += armor4 != nil ? armor4.agi_plus : 0
  145.    n = [[n + @agi_plus, 1].max, 999].min
  146.    for i in @states
  147.      n *= $data_states[i].agi_rate / 100.0
  148.    end
  149.    n = [[Integer(n), 1].max, 999].min
  150.    agi = n
  151.    #---------------------------
  152.    # int
  153.    #---------------------------
  154.    n = $data_actors[@actor_id].parameters[5, level]
  155.    weapon = $data_weapons[@weapon_id]
  156.    armor1 = $data_armors[@armor1_id]
  157.    armor2 = $data_armors[@armor2_id]
  158.    armor3 = $data_armors[@armor3_id]
  159.    armor4 = $data_armors[@armor4_id]
  160.    n += weapon != nil ? weapon.int_plus : 0
  161.    n += armor1 != nil ? armor1.int_plus : 0
  162.    n += armor2 != nil ? armor2.int_plus : 0
  163.    n += armor3 != nil ? armor3.int_plus : 0
  164.    n += armor4 != nil ? armor4.int_plus : 0
  165.    n = [[n + @int_plus, 1].max, 999].min
  166.    for i in @states
  167.      n *= $data_states[i].int_rate / 100.0
  168.    end
  169.    n = [[Integer(n), 1].max, 999].min
  170.    int = n
  171.    return [maxhp, maxsp, str, dex, agi, int]
  172. end
  173. end
  174. # ————————————————————————————————————
  175. #
  176. # ▼▲▼ XRXS_BP10. LEVEL UP!能力上升表示 plus ▼▲▼
  177. # by 樱雅在土
  178. #==============================================================================
  179. # ■ Window_LevelUpWindow
  180. #------------------------------------------------------------------------------
  181. #  战斗结束时,在做了升级的情况时表示的窗口。
  182. #==============================================================================
  183. class Window_LevelUpWindow_A < Window_Base
  184. #--------------------------------------------------------------------------
  185. # ● 窗口初始化
  186. #--------------------------------------------------------------------------
  187. def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  188.    super(120, 44, 384, 222)
  189.    self.contents = Bitmap.new(width - 32, height - 32)
  190.    self.visible = false
  191.    self.back_opacity = 160
  192.    # 防止被对话框遮住
  193.    self.z = 9999
  194.    @actor = actor
  195.    refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  196.    # SEの再生
  197.    if $data_system_level_up_se != ""
  198.      Audio.se_play($data_system_level_up_se)
  199.    end
  200.    # MEの再生
  201.    if $data_system_level_up_me != ""
  202.      Audio.me_stop
  203.      Audio.me_play($data_system_level_up_me)
  204.    end
  205. end
  206. #--------------------------------------------------------------------------
  207. # ● 刷新
  208. #--------------------------------------------------------------------------
  209. def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  210.    self.contents.clear
  211.    lvuppic = @actor.name
  212.    bitmap=Bitmap.new(Gengetu + "#{lvuppic}")
  213.    src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  214.    self.contents.blt(- 32, -44, bitmap, src_rect)  
  215.    self.contents.font.color = text_color(6)
  216.    self.contents.font.size = 20
  217.    self.contents.draw_text(0+180, 0, 160, 24, actor.name.to_s)
  218.    self.contents.font.color = system_color
  219.    self.contents.font.size = 18
  220.    self.contents.draw_text( 0+180, 26, 160, 24, "等级")
  221.    self.contents.font.size = 18
  222.    self.contents.draw_text( 0+180, 48, 80, 24, $data_system.words.hp)
  223.    self.contents.draw_text( 0+180, 70, 80, 24, $data_system.words.sp)
  224.    self.contents.draw_text( 0+180, 92, 80, 24, $data_system.words.str)
  225.    self.contents.draw_text( 0+180, 114, 80, 24, $data_system.words.dex)
  226.    self.contents.draw_text( 0+180, 136, 80, 24, $data_system.words.agi)
  227.    self.contents.draw_text( 0+180, 158, 80, 24, $data_system.words.int)
  228.    self.contents.draw_text(110+180, 26, 128, 24, "→")
  229.    self.contents.draw_text(110+180, 48, 128, 24, "→")
  230.    self.contents.draw_text(110+180, 70, 128, 24, "→")
  231.    self.contents.draw_text(110+180, 92, 128, 24, "→")
  232.    self.contents.draw_text(110+180, 114, 128, 24, "→")
  233.    self.contents.draw_text(110+180, 136, 128, 24, "→")
  234.    self.contents.draw_text(110+180, 158, 128, 24, "→")
  235.    self.contents.font.color = normal_color
  236.    self.contents.draw_text( 60+180, 26, 88, 24, last_lv.to_s)
  237.    self.contents.draw_text( 60+180, 48, 72, 24, up_hp.to_s)
  238.    self.contents.draw_text( 60+180, 70, 72, 24, up_sp.to_s)
  239.    self.contents.draw_text( 60+180, 92, 72, 24, up_str.to_s)
  240.    self.contents.draw_text( 60+180, 114, 72, 24, up_dex.to_s)
  241.    self.contents.draw_text( 60+180, 136, 72, 24, up_agi.to_s)
  242.    self.contents.draw_text( 60+180, 158, 72, 24, up_int.to_s)
  243.    self.contents.draw_text( 145+180, 26, 128, 24, actor.level.to_s)
  244.    self.contents.draw_text( 145+180, 48, 128, 24, actor.maxhp.to_s)
  245.    self.contents.draw_text( 145+180, 70, 128, 24, actor.maxsp.to_s)
  246.    self.contents.draw_text( 145+180, 92, 128, 24, actor.str.to_s)
  247.    self.contents.draw_text( 145+180, 114, 128, 24, actor.dex.to_s)
  248.    self.contents.draw_text( 145+180, 136, 128, 24, actor.agi.to_s)
  249.    self.contents.draw_text( 145+180, 158, 128, 24, actor.int.to_s)
  250. end
  251. end
  252. #==============================================================================
  253. # ■ Window_SkillLearning
  254. #------------------------------------------------------------------------------
  255. #  当升级习得技能时所表示的窗口。
  256. #==============================================================================
  257. class Window_SkillLearning_A < Window_Base
  258. #--------------------------------------------------------------------------
  259. # ● 窗口初始化
  260. #--------------------------------------------------------------------------
  261. def initialize(class_id, last_lv, now_lv)
  262.    super(120, 266, 384, 56)
  263.    self.contents = Bitmap.new(width - 32, height - 16) # わざと▽を表示
  264.    self.visible = false
  265.    self.back_opacity = 160
  266.    # 防止被对话框遮住
  267.    self.z = 9999
  268.    @learn_skills = []
  269.    for i in 0...$data_classes[class_id].learnings.size
  270.      learn_lv = $data_classes[class_id].learnings[i].level
  271.      # 习得技能的时候显示的情况
  272.      if learn_lv > last_lv and learn_lv <= now_lv
  273.        @learn_skills.push $data_skills[
  274.        $data_classes[class_id].learnings[i].skill_id].name
  275.      end
  276.    end
  277.    refresh
  278. end
  279. #--------------------------------------------------------------------------
  280. # ● 刷新
  281. #--------------------------------------------------------------------------
  282. def refresh
  283.    # 技能名的描写
  284.    skill_name = @learn_skills.shift
  285.    if skill_name == nil
  286.      return false
  287.    end
  288.    # 播放SE
  289.    if $data_system_skilllearn_se != ""
  290.      Audio.se_play($data_system_skilllearn_se, 100, 70)
  291.    end
  292.    self.contents.clear
  293.    self.contents.font.size = 18
  294.    self.contents.font.color = text_color(0)
  295.    self.contents.draw_text(0,0,156,24, "学会特技:"+skill_name)
  296.    self.contents.font.color = text_color(6)
  297.    self.contents.draw_text(0,0,156,24, "          "+skill_name)
  298.    self.contents.font.color = text_color(0)
  299.    self.visible = true
  300.    return true
  301. end
  302. end
  303. #==============================================================================
  304. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  305. #==============================================================================
复制代码

这个居然重新定义了ACTOR  害的我用那 改脚本升级回血失去作用    这个应该在这个脚本中加入就有作用了- -    嘿嘿 小发现  和大家分享下
标签已修改,下次别用错。
凌辰留

本贴由论坛斑竹后知后觉结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2006-4-12
帖子
8
2
发表于 2009-4-24 09:58:01 | 只看该作者
呵呵,这个我也是后面才发现的~~  不过我已经解决好了.
当时被这个困扰了挺久的说
好好学习,天天向上
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2009-4-18
帖子
45
3
 楼主| 发表于 2009-4-25 02:03:39 | 只看该作者
- -
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 06:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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