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

Project1

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

[已经解决] 打开游戏就显示这个对话框!咋改?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2012-1-21
帖子
67
跳转到指定楼层
1
发表于 2012-1-22 23:50:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 A.actor 于 2012-1-23 23:01 编辑

这段脚本只有949行,咋会出错?咋改?




新建 文本文档.zip (4.74 KB, 下载次数: 44) 这个里面有一个文版文档,里面就是错误的脚本那一整个。。希望对脚本有研究的朋友帮帮忙!

Lv1.梦旅人

梦石
0
星屑
50
在线时间
30 小时
注册时间
2012-1-3
帖子
13
2
发表于 2012-1-23 01:19:12 | 只看该作者
语法错误,949行也许什么给拼写错误了,或者是标点符号没按标准的来...
总之是没有符合语法规定,所以弹错
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
132 小时
注册时间
2012-1-21
帖子
512
3
发表于 2012-1-23 08:53:00 | 只看该作者
将这个脚本的内容复制下来保存为txt文本发上来,检查

如果这个是别人的加密游戏请联系原作者
心情大好呢
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2012-1-23 15:31:32 | 只看该作者
某处缺少一个end吧,我没说是最后哦~
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2012-1-21
帖子
67
5
 楼主| 发表于 2012-1-23 23:01:39 | 只看该作者
零の使魔 发表于 2012-1-23 08:53
将这个脚本的内容复制下来保存为txt文本发上来,检查

如果这个是别人的加密游戏请联系原作者 ...

好的。。我已经上传了。。希望您可以大发慈悲,帮帮我。。




好像没有啊。。我检查了一遍。。劳烦版主了,帮帮我好么?


──A.actor于2012-1-23 23:02补充以上内容’
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
124 小时
注册时间
2011-1-22
帖子
17
6
发表于 2012-1-23 23:14:10 | 只看该作者
纯粹在最末端加一个end就没有错误了...
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
132 小时
注册时间
2012-1-21
帖子
512
7
发表于 2012-1-24 12:08:18 | 只看该作者
的却是缺少end一个,已经帮你补上了,下面代码覆盖原代码就行了
  1. #==============================================================================
  2. # ■ Game_Battler (分割定义 3)
  3. #------------------------------------------------------------------------------
  4. #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
  5. # 超级类来使用。
  6. #==============================================================================

  7. class Game_Battler
  8.   #--------------------------------------------------------------------------
  9.   # ● 可以使用特技的判定
  10.   #     skill_id : 特技 ID
  11.   #--------------------------------------------------------------------------
  12.   def skill_can_use?(skill_id)
  13.     # SP 不足的情况下不能使用
  14.     if $data_skills[skill_id].sp_cost > self.sp
  15.       return false
  16.     end
  17.     # 战斗不能的情况下不能使用
  18.     if dead?
  19.       return false
  20.     end
  21.     # 沉默状态的情况下、物理特技以外的特技不能使用
  22.     if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
  23.       return false
  24.     end
  25.     # 获取可以使用的时机
  26.     occasion = $data_skills[skill_id].occasion
  27.     # 战斗中的情况下
  28.     if $game_temp.in_battle
  29.       # [平时] 或者是 [战斗中] 可以使用
  30.       return (occasion == 0 or occasion == 1)
  31.     # 不是战斗中的情况下
  32.     else
  33.       # [平时] 或者是 [菜单中] 可以使用
  34.       return (occasion == 0 or occasion == 2)
  35.     end
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 应用通常攻击效果
  39.   #     attacker : 攻击者 (battler)
  40.   #--------------------------------------------------------------------------
  41.   def attack_effect(attacker)
  42.     # 清除会心一击标志
  43.     $必杀 = 0
  44.     @active_battler = attacker
  45.     self.critical = false
  46.     # 第一命中判定
  47.     hit_result = (rand(100) < attacker.hit)
  48.     # 命中的情况下
  49.     if hit_result == true
  50.       # 计算基本伤害
  51.       atk = [attacker.atk - self.pdef / 1, attacker.atk / 10].max
  52.        if  @active_battler.is_a?(Game_Actor)
  53.          for kds in self.actions
  54.            if $data_skills[kds.skill_id].element_set.include?(42)
  55.               atk = [@active_battler.atk - self.pdef*120/100, @active_battler.atk / 12].max
  56.               break
  57.            elsif $data_skills[kds.skill_id].element_set.include?(41)
  58.               atk = [@active_battler.atk - self.pdef*110/100, @active_battler.atk / 11].max
  59.            end
  60.          end
  61.        end
  62.        if  @active_battler.is_a?(Game_Enemy)
  63.          for kds in self.skills
  64.            if $data_skills[kds].element_set.include?(42)
  65.               atk = [@active_battler.atk - self.pdef*120/100, @active_battler.atk / 12].max
  66.               break
  67.            elsif $data_skills[kds].element_set.include?(41)
  68.               atk = [@active_battler.atk - self.pdef*110/100, @active_battler.atk / 11].max
  69.            end
  70.          end
  71.        end
  72.       self.damage = atk*2 + attacker.str/5
  73.       # 属性修正
  74.       self.damage *= elements_correct(attacker.element_set)
  75.       self.damage /= 100
  76.       @kds_30 = nil
  77.       @kds_32 = nil
  78.       
  79.     if  @active_battler.is_a?(Game_Enemy)
  80.        for kds in @active_battler.actions
  81.          if $data_skills[kds.skill_id].element_set.include?(30)
  82.             self.damage = self.damage*125/100
  83.             @kds_30 = 0
  84.          elsif $data_skills[kds.skill_id].element_set.include?(29) and @kds_30 == nil
  85.             self.damage = self.damage*113/100
  86.          end
  87.          if $data_skills[kds.skill_id].element_set.include?(32)
  88.             $必杀 += 25
  89.             @kds_32 = 0
  90.          elsif $data_skills[kds.skill_id].element_set.include?(31) and @kds_32 == nil
  91.             $必杀 += 13
  92.          end
  93.        end
  94.     end

  95.     if  @active_battler.is_a?(Game_Actor)
  96.        for kds in @active_battler.skills
  97.          if $data_skills[kds].element_set.include?(30)
  98.             self.damage = self.damage*120/100
  99.             @kds_30 = 0
  100.          elsif $data_skills[kds].element_set.include?(29) and @kds_30 == nil
  101.             self.damage = self.damage*110/100
  102.          end
  103.          if $data_skills[kds].element_set.include?(32)
  104.             $必杀 += 20
  105.             @kds_32 = 0
  106.          elsif $data_skills[kds].element_set.include?(31) and @kds_32 == nil
  107.             $必杀 += 10
  108.          end
  109.        end
  110.     end

  111.       
  112.       # 伤害符号正确的情况下
  113.       if self.damage > 0
  114.        # 会心一击修正
  115.         if rand(100) < 5 * attacker.dex / self.agi + $必杀
  116.           self.damage *= 1.5
  117.           self.critical = true
  118.         end
  119.         # 防御修正
  120.         if self.guarding?
  121.           self.damage /= 2
  122.         end
  123.       end
  124.       
  125.    
  126.       # 分散
  127.       if self.damage.abs > 0
  128.         amp = [self.damage.abs * 15 / 100, 1].max
  129.         self.damage += rand(amp+1) + rand(amp+1) - amp
  130.       end
  131.       # 第二命中判定
  132.       eva = 8 * self.agi / attacker.dex + self.eva
  133.       hit = self.damage < 0 ? 100 : 100 - eva
  134.       hit = self.cant_evade? ? 100 : hit
  135.       hit_result = (rand(100) < hit)
  136.     end
  137.     # 命中的情况下
  138.     if hit_result == true

  139.      #保护系统-内部伤害计算
  140.       if self.is_a?(Game_Actor) and self.baohu.size >= 1
  141.          @baohu_agi = []
  142.          for i in 0..self.baohu.size-1
  143.           @baohu_agi[i] = $game_party.actors[self.baohu[i]].agi
  144.          end
  145.         for a in 0..@baohu_agi.size-1
  146.          for s in 0..@baohu_agi.size-1
  147.           if s < @baohu_agi.size-1 and @baohu_agi[s] < @baohu_agi[s+1]
  148.           elsif s < @baohu_agi.size-1 and @baohu_agi[s] > @baohu_agi[s+1]
  149.            @abc = @baohu_agi[s]
  150.            @baohu_agi[s] = @baohu_agi[s+1]
  151.            @baohu_agi[s+1] = @abc
  152.            
  153.            @bcd = self.baohu[s]
  154.            self.baohu[s] = self.baohu[s+1]
  155.            self.baohu[s+1] = @bcd
  156.           end
  157.          end
  158.         end
  159.           @baohu_duixiang = 1

  160.            for i in 1..self.baohu.size
  161.              if $game_party.actors[self.baohu[self.baohu.size-i]].hp <= 0
  162.                @baohu_duixiang += 1
  163.              else
  164.                break
  165.              end
  166.            end
  167.           if @baohu_duixiang == self.baohu.size + 1
  168.             self.hp -= self.damage
  169.           else
  170.             $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].damage = self.damage*80/100
  171.             if $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].damage <= 0
  172.                $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].damage = rand(6)+4
  173.             end
  174.             $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].hp -= self.damage*80/100
  175.             self.damage = self.damage*20/100
  176.             if self.damage <= 0
  177.               self.damage = rand(2)+1
  178.             end
  179.             self.hp -= self.damage*20/100

  180.             if self.baohu_dx == nil
  181.               self.baohu_dx = $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].ac_id
  182.             else
  183.               self.baohu_dxb = $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].ac_id
  184.             end
  185.            
  186.            self.baohu.delete(self.baohu[self.baohu.size-@baohu_duixiang])
  187.           end
  188.        else
  189.         self.hp -= self.damage
  190.        end
  191.       
  192.       
  193.     if  @active_battler.is_a?(Game_Actor) and self.is_a?(Game_Enemy)
  194.        for kds in self.actions
  195.          if $data_skills[kds.skill_id].element_set.include?(36)
  196.              if rand(100) < 35 and self.hp <= 0
  197.               self.damage = -self.maxhp
  198.               self.hp += self.maxhp
  199.               self.sp += self.maxsp
  200.               self.critical = false
  201.              end
  202.             break
  203.          elsif $data_skills[kds.skill_id].element_set.include?(35)
  204.              if rand(100) < 25 and self.hp <= 0
  205.               self.damage = -self.maxhp/2
  206.               self.hp += self.maxhp/2
  207.               self.sp += self.maxsp/2
  208.               self.critical = false
  209.              end
  210.             break
  211.          end
  212.        end
  213.     end

  214.     if  @active_battler.is_a?(Game_Enemy) and self.is_a?(Game_Actor)
  215.        for kds in self.skills
  216.          if $data_skills[kds].element_set.include?(36)
  217.              if rand(100) < 35 and self.hp <= 0
  218.               self.damage = -self.maxhp
  219.               self.hp += self.maxhp
  220.               self.sp += self.maxsp
  221.               self.critical = false
  222.              end
  223.             break
  224.          elsif $data_skills[kds].element_set.include?(35)
  225.              if rand(100) < 25 and self.hp <= 0
  226.               self.damage = -self.maxhp/2
  227.               self.hp += self.maxhp/2
  228.               self.sp += self.maxsp/2
  229.               self.critical = false
  230.              end
  231.             break
  232.          end
  233.        end
  234.     end
  235.       
  236.       
  237.       # 状态冲击解除
  238.       remove_states_shock
  239.       # HP 的伤害计算
  240.       # 状态变化
  241.       @state_changed = false
  242.       states_plus(attacker.plus_state_set)
  243.       states_minus(attacker.minus_state_set)
  244.     # Miss 的情况下
  245.     else
  246.       # 伤害设置为 "Miss"
  247.       self.damage = "Miss"
  248.       # 清除会心一击标志
  249.       self.critical = false
  250.     end
  251.     # 过程结束
  252.     return true
  253.   end
  254.   #--------------------------------------------------------------------------
  255.   # ● 应用特技效果
  256.   #     user  : 特技的使用者 (battler)
  257.   #     skill : 特技
  258.   #--------------------------------------------------------------------------
  259.   def skill_effect(user, skill)
  260.     # 清除会心一击标志
  261.     $必杀 = 0
  262.     @active_battler = user
  263.     attacker = user
  264.     self.critical = false
  265.     # 特技的效果范围是 HP 1 以上的己方、自己的 HP 为 0、
  266.     # 或者特技的效果范围是 HP 0 的己方、自己的 HP 为 1 以上的情况下
  267.     if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
  268.        ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
  269.       # 过程结束
  270.       return false
  271.     end
  272.     # 清除有效标志
  273.     effective = false
  274.     # 公共事件 ID 是有效的情况下,设置为有效标志
  275.     effective |= skill.common_event_id > 0
  276.     # 第一命中判定
  277.     hit = skill.hit
  278.     if skill.atk_f > 0
  279.       hit *= user.hit / 100
  280.     end
  281.     hit_result = (rand(100) < hit)
  282.     # 不确定的特技的情况下设置为有效标志
  283.     effective |= hit < 100
  284.     # 命中的情况下
  285.     if hit_result == true
  286.       # 计算威力
  287.       power = (skill.power + user.int * skill.atk_f / 100)* user.int / self.mdef
  288.       if power > 0
  289.         power -= self.pdef * skill.pdef_f / 200
  290.         power -= self.mdef * skill.mdef_f / 200
  291.         power = [power, 0].max
  292.       end
  293.       # 计算倍率
  294.       rate = 20
  295.       rate += (user.str * skill.str_f / 100)
  296.       rate += (user.dex * skill.dex_f / 100)
  297.       rate += (user.agi * skill.agi_f / 100)
  298.       rate += (user.int * skill.int_f / 100)
  299.       # 计算基本伤害
  300.       self.damage = power * rate / 18
  301.       # 伤害符号正确的情况下
  302.       if self.damage > 0
  303.         # 防御修正
  304.         if self.guarding?
  305.           self.damage /= 1
  306.         end
  307.       end
  308.       
  309.      if skill.element_set.include?(13)
  310.        atk = [@active_battler.atk - self.pdef / 1, @active_battler.atk / 10].max
  311.        if  @active_battler.is_a?(Game_Actor)
  312.          for kds in self.actions
  313.            if $data_skills[kds.skill_id].element_set.include?(42)
  314.               atk = [@active_battler.atk - self.pdef*120/100, @active_battler.atk / 12].max
  315.               break
  316.            elsif $data_skills[kds.skill_id].element_set.include?(41)
  317.               atk = [@active_battler.atk - self.pdef*110/100, @active_battler.atk / 11].max
  318.            end
  319.          end
  320.        end
  321.        if  @active_battler.is_a?(Game_Enemy)
  322.          for kds in self.skills
  323.            if $data_skills[kds].element_set.include?(42)
  324.               atk = [@active_battler.atk - self.pdef*120/100, @active_battler.atk / 12].max
  325.               break
  326.            elsif $data_skills[kds].element_set.include?(41)
  327.               atk = [@active_battler.atk - self.pdef*110/100, @active_battler.atk / 11].max
  328.            end
  329.          end
  330.        end
  331.       self.damage = atk + @active_battler.str * 2
  332.      end

  333.     kds_24 = nil
  334.     kds_30 = nil
  335.     kds_32 = nil
  336.     kds_28 = nil

  337.     if  @active_battler.is_a?(Game_Actor)
  338.        for kds in @active_battler.skills
  339.          if $data_skills[kds].element_set.include?(24) and skill.element_set.include?(13) == false
  340.             self.damage = self.damage*120/100
  341.             kds_24 = 0
  342.          elsif $data_skills[kds].element_set.include?(23) and skill.element_set.include?(13) == false and kds_24 == nil
  343.             self.damage = self.damage*110/100
  344.          end
  345.          if $data_skills[kds].element_set.include?(30) and skill.element_set.include?(13)
  346.             kds_30 = 0
  347.             self.damage = self.damage*120/100
  348.          elsif $data_skills[kds].element_set.include?(29) and skill.element_set.include?(13) and kds_30 == nil
  349.             self.damage = self.damage*110/100
  350.          end
  351.          if $data_skills[kds].element_set.include?(32) and skill.element_set.include?(13)
  352.             kds_32 = 0
  353.             $必杀 += 20
  354.          elsif $data_skills[kds].element_set.include?(31) and skill.element_set.include?(13) and kds_32 == nil
  355.             $必杀 += 10
  356.          end
  357.        end
  358.       if self.is_a?(Game_Enemy)
  359.        for kds in self.actions
  360.          if $data_skills[kds.skill_id].element_set.include?(28) and skill.element_set.include?(13) == false
  361.             kds_28 = 0
  362.             self.damage = self.damage*80/100
  363.          elsif $data_skills[kds.skill_id].element_set.include?(27) and skill.element_set.include?(13) == false and kds_28 == nil
  364.             self.damage = self.damage*90/100
  365.          end
  366.        end
  367.       end
  368.     end
  369.    
  370.     if  @active_battler.is_a?(Game_Enemy)
  371.        for kds in @active_battler.actions
  372.          if $data_skills[kds.skill_id].element_set.include?(24) and skill.element_set.include?(13) == false
  373.             kds_24 = 0
  374.             self.damage = self.damage*120/100
  375.          elsif $data_skills[kds.skill_id].element_set.include?(23) and skill.element_set.include?(13) == false and kds_24 == nil
  376.             self.damage = self.damage*110/100
  377.          end
  378.          if $data_skills[kds.skill_id].element_set.include?(30) and skill.element_set.include?(13)
  379.             kds_30 = 0
  380.             self.damage = self.damage*120/100
  381.          elsif $data_skills[kds.skill_id].element_set.include?(29) and skill.element_set.include?(13) and kds_30 == nil
  382.             self.damage = self.damage*110/100
  383.          end
  384.          if $data_skills[kds.skill_id].element_set.include?(32) and skill.element_set.include?(13)
  385.             kds_32 = 0
  386.             $必杀 += 20
  387.          elsif $data_skills[kds.skill_id].element_set.include?(31) and skill.element_set.include?(13) and kds_32 == nil
  388.             $必杀 += 10
  389.          end
  390.        end
  391.       if self.is_a?(Game_Actor)
  392.        for kds in self.skills
  393.          if $data_skills[kds].element_set.include?(28) and skill.element_set.include?(13) == false
  394.             kds_28 = 0
  395.             self.damage = self.damage*80/100
  396.          elsif $data_skills[kds].element_set.include?(27) and skill.element_set.include?(13) == false and kds_28 == nil
  397.             self.damage = self.damage*90/100
  398.          end
  399.        end
  400.       end
  401.     end
  402.    
  403.       if skill.element_set.include?(43) and skill.element_set.include?(13)
  404.        self.damage = self.damage*200/100
  405.      end
  406.      
  407.       if skill.element_set.include?(46) and skill.element_set.include?(13)
  408.        self.damage = self.damage*180/100
  409.      end
  410.      
  411.      if skill.element_set.include?(47) and skill.element_set.include?(13)
  412.        self.damage = self.damage*60/100
  413.      end
  414.      
  415.      if skill.element_set.include?(48) and skill.element_set.include?(13)
  416.        self.damage = self.damage*300/100
  417.      end
  418.      
  419.       if skill.element_set.include?(49) and skill.element_set.include?(13)
  420.        self.damage = self.damage*90/100
  421.      end
  422.      
  423.       if skill.element_set.include?(50) and skill.element_set.include?(13)
  424.        self.damage = self.damage*140/100
  425.      end
  426.      
  427.      
  428.       # 属性修正
  429.       self.damage *= elements_correct(user.element_set)
  430.       self.damage /= 100
  431.    
  432.       if skill.element_set.include?(13)
  433.        if self.damage > 0
  434.         if rand(100) < 10 + $必杀
  435.           self.damage *= 2
  436.           self.critical = true
  437.         end
  438.         if self.guarding?
  439.           self.damage /= 2
  440.         end
  441.        end
  442.       end
  443.       # 分散
  444.       if skill.variance > 0 and self.damage.abs > 0
  445.         amp = [self.damage.abs * skill.variance / 100, 1].max
  446.         self.damage += rand(amp+1) + rand(amp+1) - amp
  447.       end
  448.       
  449.       
  450.       if skill.element_set.include?(44)
  451.        self.damage = @active_battler.level * 8
  452.      end
  453.      if skill.element_set.include?(51)
  454.        self.damage = @active_battler.level * 12
  455.      end
  456.           if skill.element_set.include?(52)
  457.        self.damage = @active_battler.level * 10
  458.      end
  459.           if skill.element_set.include?(53)
  460.        self.damage = @active_battler.level * 40
  461.      end
  462.           if skill.element_set.include?(54)
  463.        self.damage = @active_battler.level * 18
  464.      end
  465.      
  466.          if skill.element_set.include?(66)
  467.        self.damage = @active_battler.maxhp * 1
  468.      end
  469.    
  470.       if skill.element_set.include?(45)
  471.        if rand(100) < 75
  472.          self.damage *= 10 / 5
  473.        else
  474.          self.damage /= - 2 / 1
  475.         end
  476.       end
  477.       
  478.       if skill.element_set.include?(55)
  479.        if rand(100) < 70
  480.          self.damage *= 15 / 5
  481.        else
  482.          self.damage *= - 3 / 1
  483.        end
  484.       end
  485.        if skill.element_set.include?(56)
  486.        if rand(100) < 10
  487.          self.damage = 999999
  488.        else
  489.          self.damage = 400
  490.        end
  491.      end
  492.      
  493.      if skill.element_set.include?(71)
  494.        if rand(100) < 75
  495.         self.hp -= self.damage *2      
  496.       else  
  497.         user.hp -= self.damage
  498.     end
  499.    
  500.          if skill.element_set.include?(59)   
  501.         self.hp -= self.damage
  502.         user.hp -= -self.damage   
  503.       else  
  504.       self.hp -= self.damage
  505.     end

  506.         if skill.element_set.include?(60)   
  507.         self.hp -= self.damage
  508.         user.hp -= -self.damage*2   
  509.       else  
  510.       self.hp -= self.damage
  511.     end
  512.    
  513.      if skill.element_set.include?(61)      
  514.          self.damage = 100
  515.        end
  516.       
  517.    if skill.element_set.include?(62)
  518.        if rand(100) < 40
  519.          self.damage = 450
  520.        else
  521.          self.damage = 150
  522.        end
  523.      end
  524.      
  525.         if skill.element_set.include?(63)
  526.        if rand(100) < 50
  527.          self.damage = @active_battler.hp * 1
  528.        else
  529.          self.damage = @active_battler.sp * 1
  530.        end
  531.      end
  532.          
  533.      
  534.      if skill.element_set.include?(64)
  535.        if rand(100) < 10
  536.         self.damage = @active_battler.str * 17 / 10
  537.        else
  538.          self.damage = @active_battler.str * 34 / 10
  539.        end
  540.      end
  541.      
  542.      
  543.       if skill.element_set.include?(58)      
  544.          self.damage = 999999
  545.        end
  546.       
  547.       # 第二命中判定
  548.       eva = 8 * self.agi / user.dex + self.eva
  549.       hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
  550.       hit = self.cant_evade? ? 100 : hit
  551.       hit_result = (rand(100) < hit)
  552.       # 不确定的特技的情况下设置为有效标志
  553.       effective |= hit < 100
  554.     end
  555.     # 命中的情况下
  556.     if hit_result == true
  557.       # 威力 0 以外的物理攻击的情况下
  558.       if skill.power != 0 and skill.atk_f > 0
  559.         # 状态冲击解除
  560.         remove_states_shock
  561.         # 设置有效标志
  562.         effective = true
  563.       end
  564.       # HP 的伤害减法运算
  565.       last_hp = self.hp
  566.       self.hp -= self.damage
  567.       
  568.     if  @active_battler.is_a?(Game_Actor) and self.is_a?(Game_Enemy)
  569.        for kds in self.actions
  570.          if $data_skills[kds.skill_id].element_set.include?(36)
  571.              if rand(100) < 25 and self.hp <= 0
  572.               self.damage = -self.maxhp
  573.               self.hp += self.maxhp
  574.               self.sp += self.maxsp
  575.               self.critical = false
  576.              end
  577.             break
  578.          elsif $data_skills[kds.skill_id].element_set.include?(35)
  579.              if rand(100) < 20 and self.hp <= 0
  580.               self.damage = -self.maxhp/2
  581.               self.hp += self.maxhp/2
  582.               self.sp += self.maxsp/2
  583.               self.critical = false
  584.              end
  585.             break
  586.          end
  587.        end
  588.     end

  589.     if  @active_battler.is_a?(Game_Enemy) and self.is_a?(Game_Actor)
  590.        for kds in self.skills
  591.          if $data_skills[kds].element_set.include?(36)
  592.              if rand(100) < 25 and self.hp <= 0
  593.               self.damage = -self.maxhp
  594.               self.hp += self.maxhp
  595.               self.sp += self.maxsp
  596.               self.critical = false
  597.              end
  598.             break
  599.          elsif $data_skills[kds].element_set.include?(35)
  600.              if rand(100) < 20 and self.hp <= 0
  601.               self.damage = -self.maxhp/2
  602.               self.hp += self.maxhp/2
  603.               self.sp += self.maxsp/2
  604.               self.critical = false
  605.              end
  606.             break
  607.          end
  608.        end
  609.     end
  610.       
  611.        if skill.id==132   #技能ID
  612.         self.hp -= self.damage
  613.         user.hp -= -self.damage/5    #吸收的血量和伤害值之间的关系,可以随意
  614.       else  
  615.       self.hp -= self.damage
  616.     end
  617.    
  618.        if skill.id==133   #技能ID
  619.         self.hp -= self.damage
  620.         user.hp -= -self.damage/4    #吸收的血量和伤害值之间的关系,可以随意
  621.       else  
  622.       self.hp -= self.damage
  623.     end
  624.    
  625.       if skill.id==134   #技能ID
  626.         self.hp -= self.damage
  627.         user.hp -= -self.damage/3    #吸收的血量和伤害值之间的关系,可以随意
  628.       else  
  629.       self.hp -= self.damage
  630.     end
  631.    
  632.       effective |= self.hp != last_hp
  633.       # 状态变化
  634.       @state_changed = false
  635.       effective |= states_plus(skill.plus_state_set)
  636.       effective |= states_minus(skill.minus_state_set)
  637.       # 威力为 0 的场合
  638.       if skill.power == 0 and skill.element_set.include?(13) == false
  639.         # 伤害设置为空的字串
  640.         self.damage = ""
  641.         # 状态没有变化的情况下
  642.         unless @state_changed
  643.           # 伤害设置为 "Miss"
  644.           self.damage = "Miss"
  645.         end
  646.       end
  647.     # Miss 的情况下
  648.     else
  649.       # 伤害设置为 "Miss"
  650.       self.damage = "Miss"
  651.     end
  652.     # 不在战斗中的情况下
  653.     unless $game_temp.in_battle
  654.       # 伤害设置为 nil
  655.       self.damage = nil
  656.     end
  657.     # 过程结束
  658.     return effective
  659.   end
  660.   #--------------------------------------------------------------------------
  661.   # ● 应用物品效果
  662.   #     item : 物品
  663.   #--------------------------------------------------------------------------
  664.   def item_effect(item)
  665.     # 清除会心一击标志
  666.     self.critical = false
  667.     # 物品的效果范围是 HP 1 以上的己方、自己的 HP 为 0、
  668.     # 或者物品的效果范围是 HP 0 的己方、自己的 HP 为 1 以上的情况下
  669.     if ((item.scope == 3 or item.scope == 4) and self.hp == 0) or
  670.        ((item.scope == 5 or item.scope == 6) and self.hp >= 1)
  671.       # 过程结束
  672.       return false
  673.     end
  674.     # 清除有效标志
  675.     effective = false
  676.     # 公共事件 ID 是有效的情况下,设置为有效标志
  677.     effective |= item.common_event_id > 0
  678.     # 命中判定
  679.     hit_result = (rand(100) < item.hit)
  680.     # 不确定的特技的情况下设置为有效标志
  681.     effective |= item.hit < 100
  682.     # 命中的情况
  683.     if hit_result == true
  684.       # 计算回复量
  685.       recover_hp = maxhp * item.recover_hp_rate / 100 + item.recover_hp
  686.       recover_sp = maxsp * item.recover_sp_rate / 100 + item.recover_sp
  687.       if recover_hp < 0
  688.         recover_hp += self.pdef * item.pdef_f / 20
  689.         recover_hp += self.mdef * item.mdef_f / 20
  690.         recover_hp = [recover_hp, 0].min
  691.       end
  692.       # 属性修正
  693.       recover_hp *= elements_correct(item.element_set)
  694.       recover_hp /= 100
  695.       recover_sp *= elements_correct(item.element_set)
  696.       recover_sp /= 100
  697.       # 分散
  698.       if item.variance > 0 and recover_hp.abs > 0
  699.         amp = [recover_hp.abs * item.variance / 100, 1].max
  700.         recover_hp += rand(amp+1) + rand(amp+1) - amp
  701.       end
  702.       if item.variance > 0 and recover_sp.abs > 0
  703.         amp = [recover_sp.abs * item.variance / 100, 1].max
  704.         recover_sp += rand(amp+1) + rand(amp+1) - amp
  705.       end
  706.       # 回复量符号为负的情况下
  707.       if recover_hp < 0
  708.         # 防御修正
  709.         if self.guarding?
  710.           recover_hp /= 2
  711.         end
  712.       end
  713.       # HP 回复量符号的反转、设置伤害值
  714.       self.damage = -recover_hp
  715.       # HP 以及 SP 的回复
  716.       last_hp = self.hp
  717.       last_sp = self.sp
  718.       self.hp += recover_hp
  719.       self.sp += recover_sp
  720.       
  721.     if  @active_battler.is_a?(Game_Actor) and self.is_a?(Game_Enemy)
  722.        for kds in self.actions
  723.          if $data_skills[kds.skill_id].element_set.include?(36)
  724.              if rand(100) < 25 and self.hp <= 0
  725.               self.damage = -self.maxhp
  726.               self.hp += self.maxhp
  727.               self.sp += self.maxsp
  728.               self.critical = false
  729.              end
  730.             break
  731.          elsif $data_skills[kds.skill_id].element_set.include?(35)
  732.              if rand(100) < 20 and self.hp <= 0
  733.               self.damage = -self.maxhp/2
  734.               self.hp += self.maxhp/2
  735.               self.sp += self.maxsp/2
  736.               self.critical = false
  737.              end
  738.             break
  739.          end
  740.        end
  741.     end

  742.     if  @active_battler.is_a?(Game_Enemy) and self.is_a?(Game_Actor)
  743.        for kds in self.skills
  744.          if $data_skills[kds].element_set.include?(36)
  745.              if rand(100) < 25 and self.hp <= 0
  746.               self.damage = -self.maxhp
  747.               self.hp += self.maxhp
  748.               self.sp += self.maxsp
  749.               self.critical = false
  750.              end
  751.             break
  752.          elsif $data_skills[kds].element_set.include?(35)
  753.              if rand(100) < 20 and self.hp <= 0
  754.               self.damage = -self.maxhp/2
  755.               self.hp += self.maxhp/2
  756.               self.sp += self.maxsp/2
  757.               self.critical = false
  758.              end
  759.             break
  760.          end
  761.        end
  762.     end
  763.       
  764.       
  765.       effective |= self.hp != last_hp
  766.       effective |= self.sp != last_sp
  767.       # 状态变化
  768.       @state_changed = false
  769.       effective |= states_plus(item.plus_state_set)
  770.       effective |= states_minus(item.minus_state_set)
  771.       # 能力上升值有效的情况下
  772.       if item.parameter_type > 0 and item.parameter_points != 0
  773.         # 能力值的分支
  774.         case item.parameter_type
  775.         when 1  # MaxHP
  776.           @maxhp_plus += item.parameter_points
  777.         when 2  # MaxSP
  778.           @maxsp_plus += item.parameter_points
  779.         when 3  # 力量
  780.           @str_plus += item.parameter_points
  781.         when 4  # 灵巧
  782.           @dex_plus += item.parameter_points
  783.         when 5  # 速度
  784.           @agi_plus += item.parameter_points
  785.         when 6  # 魔力
  786.           @int_plus += item.parameter_points
  787.         end
  788.         # 设置有效标志
  789.         effective = true
  790.       end
  791.       # HP 回复率与回复量为 0 的情况下
  792.       if item.recover_hp_rate == 0 and item.recover_hp == 0
  793.         # 设置伤害为空的字符串
  794.         self.damage = ""
  795.         # SP 回复率与回复量为 0、能力上升值无效的情况下
  796.         if item.recover_sp_rate == 0 and item.recover_sp == 0 and
  797.            (item.parameter_type == 0 or item.parameter_points == 0)
  798.           # 状态没有变化的情况下
  799.           unless @state_changed
  800.             # 伤害设置为 "Miss"
  801.             self.damage = "Miss"
  802.           end
  803.         end
  804.       end
  805.     # Miss 的情况下
  806.     else
  807.       # 伤害设置为 "Miss"
  808.       self.damage = "Miss"
  809.     end
  810.     # 不在战斗中的情况下
  811.     unless $game_temp.in_battle
  812.       # 伤害设置为 nil
  813.       self.damage = nil
  814.     end
  815.     # 过程结束
  816.     return effective
  817.   end
  818.   #--------------------------------------------------------------------------
  819.   # ● 应用连续伤害效果
  820.   #--------------------------------------------------------------------------

  821. def slip_damage_effect

  822.     # 毒

  823.     if self.state?(7)

  824.       # 设置伤害

  825.       self.damage = self.maxhp / 12

  826.       # 分散

  827.       if self.damage.abs > 0

  828.         amp = [self.damage.abs * 15 / 100, 1].max

  829.         self.damage += rand(amp+1) + rand(amp+1) - amp

  830.       end

  831.       # HP 的伤害减法运算

  832.       self.hp -= self.damage
  833.       #剧毒
  834.        elsif  self.state?(20)

  835.       # 设置伤害

  836.       self.damage = self.maxhp / 8

  837.       # 分散

  838.       if self.damage.abs > 0

  839.         amp = [self.damage.abs * 15 / 100, 1].max

  840.         self.damage += rand(amp+1) + rand(amp+1) - amp

  841.       end

  842.       # HP 的伤害减法运算

  843.       self.hp -= self.damage

  844.     # 回血

  845.     elsif self.state?(5)

  846.       # 设置伤害

  847.       self.damage = -self.maxhp / 8

  848.       # HP 的伤害减法运算

  849.       self.hp -= self.damage      
  850.           # 群回血

  851.     elsif self.state?(17)

  852.       # 设置伤害

  853.       self.damage = -self.maxhp / 12

  854.       # HP 的伤害减法运算

  855.       self.hp -= self.damage   
  856.       
  857.     # 老化
  858.     elsif self.state?(19)
  859.       self.damage = "Being aged!"
  860.       # 能力值下
  861.       $data_states[19].pdef_rate *= 0.8

  862.       $data_states[19].mdef_rate *= 0.8

  863.       $data_states[19].atk_rate *= 0.8

  864.       $data_states[19].str_rate *= 0.8

  865.       $data_states[19].dex_rate *= 0.8

  866.       $data_states[19].int_rate *= 0.8

  867.       $data_states[19].agi_rate *= 0.8

  868.       $data_states[19].eva -= 0.3

  869.       $data_states[19].eva = [$data_states[19].eva, -100].max

  870.     end

  871.     # 过程结束

  872.     return true

  873. end
  874.   #--------------------------------------------------------------------------
  875.   # ● 属性修正计算
  876.   #     element_set : 属性
  877.   #--------------------------------------------------------------------------
  878.   def elements_correct(element_set)
  879.     # 無属性的情况
  880.     if element_set == []
  881.       # 返回 100
  882.       return 100
  883.     end
  884.     # 在被赋予的属性中返回最弱的
  885.     # ※过程 element_rate 是、本类以及继承的 Game_Actor
  886.     #   和 Game_Enemy 类的定义
  887.     weakest = -100
  888.     for i in element_set
  889.       weakest = [weakest, self.element_rate(i)].max
  890.     end
  891.     return weakest
  892.   end
  893. end
  894. end
复制代码

点评

VIP + 666 仅仅为了表示歉意。  发表于 2012-1-26 01:08
非常感谢。。。最近没时间上网。所以一直没认可。。对不起哦。。  发表于 2012-1-26 01:08
心情大好呢
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2012-1-24
帖子
8
8
发表于 2012-1-24 17:06:14 | 只看该作者
哇哇哇哇哇,真的?
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2012-1-24
帖子
73
9
发表于 2012-1-24 18:50:29 | 只看该作者
要乖哦~别人帮你解决问题就要认可哦~

点评

哦呵呵。。最近太忙四处走。。所以忘了。。对不起哦。。  发表于 2012-1-26 01:07
!加油吧!諾丶爱❤~!
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 10:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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