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

Project1

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

[已经过期] 请问这个脚本有个很严重的错误

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
48
在线时间
579 小时
注册时间
2011-5-30
帖子
497
跳转到指定楼层
1
发表于 2011-6-11 20:26:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 拉羅卡特 于 2011-6-11 20:31 编辑
  1. module Sword
  2. #=======================================
  3. #★ 魔剑工铺 - 多功能技能效果 1.00 (VX)
  4. # [url]http://blog.yam.com/a870053jjkj/[/url]
  5. #=======================================
  6.   Sword41_Skill = Hash.new{|a, b| a[b] = {}}
  7. #=======================================
  8. =begin
  9. ● 所需脚本
  10. 内部函数扩充:[url]http://blog.yam.com/a870053jjkj/article/25033724[/url](部分必要)
  11. 伤害显示强化:[url]http://blog.yam.com/a870053jjkj/article/28552796[/url](非必要)
  12. ========================================
  13. ● 效果设置表
  14. 设置变更:0=>[消耗,成功率,速度补正,基本伤害,攻击关系,精神关系,分散],
  15.      如果有不想更改的项目,只要输入『nil』即可
  16. 耗血发动:1=>[耗血百分比, 耗血量],
  17. 耗气发动:2=>[耗气百分比],
  18. 增加数值:4=>[血上限, 气上限, 攻击力, 防御力, 精神力, 敏捷性],
  19. 增百分比:5=>[血上限, 气上限, 攻击力, 防御力, 精神力, 敏捷性],
  20. 自动状态:6=>[状态编号列表*],
  21.      状态编号列表:设定为『状态编号,』,可添加多个
  22. MP伤害:8=>[nil],
  23. 所需道具:9=>[道具所需表*],
  24.      道具所需表:设定为『[种类, 编号, 所需数量],』,可添加多个
  25. 消耗道具:10=>[道具消耗表*],
  26.      道具消耗表:设定为『[种类, 编号, 消耗数量],』,可添加多个
  27. 所需装备:11=>[身上装备表*],
  28.      身上装备表:设定为『[部位, 编号],』,可添加多个
  29. =end
  30. #=======================================
  31. #● 功能设定
  32. Sword41_Priority4 = true #[增加数值]是否比[增百分比]还早增加
  33. #--------------------------------------------------------------
  34. #○ 技能效果设置表(Sword41_Skill[技能编号] = {技能效果列表})
  35. Sword41_Skill[67] = {1=>[0, 100],}
  36. #=======================================
  37.   $Sword ? $Sword[41] = true : $Sword = {41=>true} # 脚本使用标志
  38. end
  39. #=======================================
  40. #■ 处理临时资料的类别
  41. class Game_Temp
  42.   attr_accessor :sword41_skill_id # 战斗中使用的技能编号
  43. end
  44. #=======================================
  45. #■ 处理战斗者的类别
  46. class Game_Battler
  47.   include Sword # 连接自定设置
  48.   attr_accessor :sword41_proscription # 禁止解除的状态列表
  49.   attr_accessor :sword41_save_cost # 暂时储存消耗的量
  50.   #-------------------------------------------------------------
  51.   #● 初始化物件
  52.   alias sword41_initialize initialize
  53.   def initialize
  54.     sword41_initialize ; @sword41_proscription = [] ; @sword41_save_cost = []
  55.     @sword41_plus_per = [{}, {}]
  56.   end
  57.   #-------------------------------------------------------------
  58.   #● 获取MaxHP
  59.   alias sword41_maxhp maxhp
  60.   def maxhp ; sword41_maxhp + sword41_joint100(sword41_maxhp, 0) ; end
  61.   #-------------------------------------------------------------
  62.   #● 获取MaxMP
  63.   alias sword41_maxmp maxmp
  64.   def maxsp ; sword41_maxmp + sword41_joint100(sword41_maxmp, 1) ; end
  65.   #-------------------------------------------------------------
  66.   #● 获取攻击力
  67.   alias sword41_atk atk
  68.   def str ; sword41_atk + sword41_joint100(sword41_atk, 2) ; end
  69.   #-------------------------------------------------------------
  70.   #● 获取防御力
  71.   alias sword41_def def
  72.   def dex ; sword41_def + sword41_joint100(sword41_def, 3) ; end
  73.   #-------------------------------------------------------------
  74.   #● 获取精神力
  75.   alias sword41_spi spi
  76.   def agi ; sword41_spi + sword41_joint100(sword41_spi, 4) ; end
  77.   #-------------------------------------------------------------
  78.   #● 获取敏捷性
  79.   alias sword41_agi agi
  80.   def int ; sword41_agi + sword41_joint100(sword41_agi, 5) ; end
  81.   #-------------------------------------------------------------
  82.   #● 能力值增加共通计算法(能力值量, 能力值顺序)
  83.   def sword41_joint100(ability, index)
  84.     a = 0 ; if Sword41_Priority4 # 优先执行[增加数值]
  85.       @sword41_plus_per[1].each_value{|value| a += value[index]}
  86.       @sword41_plus_per[0].each_value{|value| a += ability * value[index] / 100}
  87.     else # 优先执行[增加分比]
  88.       @sword41_plus_per[0].each_value{|value| a += ability * value[index] / 100}
  89.       @sword41_plus_per[1].each_value{|value| a += value[index]}
  90.     end ; a
  91.   end
  92.   #-------------------------------------------------------------
  93.   #● 变更HP=(新HP)
  94.   alias sword41_hp= hp=
  95.   def hp=(hp)
  96.     damage = @hp - hp # 获取伤害
  97.     if per = Sword41_Skill[$game_temp.sword41_skill_id][8] #○ MP伤害(扣HP转扣MP)
  98.       damage1 = per.empty? ? damage : damage + (damage * (per[1].is_a?(Numeric) ?
  99.       per[1] : rand(per[1])) / 100 + (per[0].is_a?(Numeric) ? per[0] : rand(per[0]))) rescue
  100. raise("#{$game_temp.sword41_skill_id}号技能,未装「内部含数扩充」就用范围指定")
  101.       self.sword41_mp = @mp - damage1 # 将扣HP转为扣MP
  102.       @mp_damage = @hp_damage ; @hp_damage, damage = nil, 0 if per.empty?
  103.     end
  104.     self.sword41_hp = @hp - damage ; @sword41_save_cost[0] = @hp - damage if
  105.     Sword41_Skill[$game_temp.sword41_skill_id][7] #○ 消耗伤害(记录消耗量)
  106.   end
  107.   #-------------------------------------------------------------
  108.   #● 变更MP=(新MP)
  109.   alias sword41_mp= mp=
  110.   def mp=(mp)
  111.     (self.sword41_mp = mp ; return) unless $game_temp.sword41_skill_id
  112.     mp_cost = $data_skills[$game_temp.sword41_skill_id].mp_cost # 获取消耗量
  113.     if per = Sword41_Skill[$game_temp.sword41_skill_id][1] #○ 耗血发动(实际消耗)
  114.       self.hp = @hp - (per[1] + self.maxhp * per[0] / 100) # 消耗HP
  115.     end
  116.     if per = Sword41_Skill[$game_temp.sword41_skill_id][2] #○ 耗气发动
  117.       mp_cost = mp_cost + self.maxmp * per[0] / 100
  118.     end
  119.     self.sword41_mp = @mp - mp_cost ; @sword41_save_cost[1] = @mp - mp_cost if
  120.     Sword41_Skill[$game_temp.sword41_skill_id][7] #○ 消耗伤害(记录消耗量)
  121.   end
  122.   #-------------------------------------------------------------
  123.   #● 解除状态(状态编号)
  124.   alias sword41_remove_state remove_state
  125.   def remove_state(state_id)
  126.     return if @sword41_proscription.include?(state_id) #○ 附加状态(防止被解除用)
  127.     sword41_remove_state(state_id)
  128.   end
  129.   #-------------------------------------------------------------
  130.   #● 可以使用技能的判定(技能)
  131.   alias sword41_skill_can_use? skill_can_use?
  132.   def skill_can_use?(skill)
  133.     if per = Sword41_Skill[skill.id][1] #○耗血发动(判断目前HP是否可用该技能)
  134.       return false if per[1] + self.maxhp * per[0] / 100 >= self.hp
  135.     end
  136.     if per = Sword41_Skill[skill.id][2] #○耗气发动(判断目前MP是否可用该技能)
  137.       return false if $data_skills[skill.id].mp_cost + self.maxmp * per[0] / 100 > self.mp
  138.     end
  139.     if per = Sword41_Skill[skill.id][9] and self.is_a?(Game_Actor) #○ 所需道具
  140.       per.each do |val| case val[0]
  141.       when 0 ; data = $data_items[val[1]] # 物品
  142.       when 1 ; data = $data_weapons[val[1]] # 武器
  143.       when 2 ; data = $data_armors[val[1]] # 防具
  144.       end ; return false if $game_party.item_number(data) < val[2] ; end
  145.     end
  146.     if per = Sword41_Skill[skill.id][11] and self.is_a?(Game_Actor) #○ 所需装备
  147.       per.each do |val| case val[0]
  148.       when 0 ; return false if self.weapon_id != val[1] # 武器
  149.       when 1 ; return false if self.armor1_id != val[1] # 盾类
  150.       when 2 ; return false if self.armor2_id != val[1] # 头部
  151.       when 3 ; return false if self.armor3_id != val[1] # 身体
  152.       when 4 ; return false if self.armor4_id != val[1] # 饰品
  153.       end ; end
  154.     end
  155.     sword41_skill_can_use?(skill)
  156.   end
  157. end
  158. #=======================================
  159. #■ 处理角色的类别
  160. class Game_Actor < Game_Battler
  161.   include Sword # 连接自定设置
  162.   #-------------------------------------------------------------
  163.   #● 觉悟技能
  164.   alias sword41_learn_skill learn_skill
  165.   def learn_skill(skill_id)
  166.     sword41_learn_skill(skill_id)
  167.     if per = Sword41_Skill[skill_id][4] #○ 增加数值(习得时增加能力值)
  168.       @sword41_plus_per[1][skill_id] = per
  169.     end
  170.     if per = Sword41_Skill[skill_id][5] #○ 增百分比(习得时增加能力值)
  171.       @sword41_plus_per[0][skill_id] = per
  172.     end
  173.     if per = Sword41_Skill[skill_id][6] #○ 自动状态(习得时附加状态)
  174.       per.each{|i| add_state(i) ; @sword41_proscription += [i]}
  175.     end
  176.   end
  177.   #-------------------------------------------------------------
  178.   # ● 遗忘技能
  179.   alias sword41_forget_skill forget_skill
  180.   def forget_skill(skill_id)
  181.     sword41_forget_skill(skill_id)
  182.     if per = Sword41_Skill[skill_id][4] #○ 增加数值(遗忘时能力值恢复)
  183.       @sword41_plus_per[1].delete(skill_id)
  184.     end
  185.     if per = Sword41_Skill[skill_id][5] #○ 增百分比(遗忘时能力值恢复)
  186.       @sword41_plus_per[0].delete(skill_id)
  187.     end
  188.     if per = Sword41_Skill[skill_id][6] #○ 自动状态(遗忘时解除状态)
  189.       per.each{|i| @sword41_proscription.delete_at(@sword41_proscription.index(i))
  190.       remove_state(i)}
  191.     end
  192.   end
  193. end
  194. #=======================================
  195. #■ 处理同伴的类别
  196. class Game_Party
  197.   include Sword # 连接自定设置
  198.   #-------------------------------------------------------------
  199.   #● 初始化物件
  200.   alias sword41_initialize initialize
  201.   def initialize
  202.     sword41_initialize
  203.     Sword41_Skill.each do |key, value| ; if value[0] #○ 设置变更
  204.       $data_skills[key].mp_cost = value[0][0] if value[0][0] # MP 消耗量
  205.       $data_skills[key].hit = value[0][1] if value[0][1] # 成功率
  206.       $data_skills[key].speed = value[0][2] if value[0][2] # 速度补正值
  207.       $data_skills[key].base_damage = value[0][3] if value[0][3] # 基本伤害值
  208.       $data_skills[key].atk_f = value[0][4] if value[0][4] # 攻击关系度
  209.       $data_skills[key].spi_f = value[0][5] if value[0][5] # 精神关系度
  210.       $data_skills[key].variance = value[0][6] if value[0][6] # 分散度
  211.     end ; end
  212.   end
  213. end
  214. #=======================================
  215. #■ 处理战斗画面的类别
  216. class Scene_Battle
  217.   include Sword # 连接自定设置
  218.   #-------------------------------------------------------------
  219.   #● 产生技能行动结果
  220.   alias sword41_execute_action_skill execute_action_skill
  221.   def execute_action_skill
  222.     $game_temp.sword41_skill_id = @active_battler.action.skill_id
  223.     if per = Sword41_Skill[$game_temp.sword41_skill_id][10] and
  224.     @active_battler.is_a?(Game_Actor) #○ 消耗道具
  225.       per.each do |val| case val[0] # 项目循环;道具分歧
  226.       when 0 ; data = $data_items[val[1]] # 物品
  227.       when 1 ; data = $data_weapons[val[1]] # 武器
  228.       when 2 ; data = $data_armors[val[1]] # 防具
  229.       end ; $game_party.lose_item(data, val[2]) ; end
  230.     end
  231.     sword41_execute_action_skill
  232.     $game_temp.sword41_skill_id = nil # 清除技能
  233.   end
  234.   #--------------------------------------------------------------
  235.   #● 显示体力伤害(目标, 技能或物品)
  236.   alias sword41_display_hp_damage display_hp_damage
  237.   def display_hp_damage(target, obj = nil)
  238.     sword41_display_hp_damage(target, obj) if target.hp_damage # MP伤害(除错)
  239.   end
  240. end
复制代码
以下的脚本不能使用存档的功能...就做新进游戏後存档也是一样不能用 会造成错误...有办法解决吗

因为这个是能让技能破百万 或是亿的攻击力的脚本 个人还想要用 但是原作者不知道是再忙还是怎样联络不上

点评

那个,有脚本框这个功能。  发表于 2011-6-11 20:37

Lv2.观梦者

梦石
0
星屑
685
在线时间
579 小时
注册时间
2010-2-15
帖子
1367
2
发表于 2011-6-12 10:01:40 | 只看该作者
我很好奇为什么这些东西前面没有加朱师傅"#"

● 所需脚本
内部函数扩充:http://blog.yam.com/a870053jjkj/article/25033724(部分必要)
伤害显示强化:http://blog.yam.com/a870053jjkj/article/28552796(非必要)
========================================
● 效果设置表
设置变更:0=>[消耗,成功率,速度补正,基本伤害,攻击关系,精神关系,分散],
     如果有不想更改的项目,只要输入『nil』即可
耗血发动:1=>[耗血百分比, 耗血量],
耗气发动:2=>[耗气百分比],
增加数值:4=>[血上限, 气上限, 攻击力, 防御力, 精神力, 敏捷性],
增百分比:5=>[血上限, 气上限, 攻击力, 防御力, 精神力, 敏捷性],
自动状态:6=>[状态编号列表*],
     状态编号列表:设定为『状态编号,』,可添加多个
MP伤害:8=>[nil],
所需道具:9=>[道具所需表*],
     道具所需表:设定为『[种类, 编号, 所需数量],』,可添加多个
消耗道具:10=>[道具消耗表*],
     道具消耗表:设定为『[种类, 编号, 消耗数量],』,可添加多个
所需装备:11=>[身上装备表*],
     身上装备表:设定为『[部位, 编号],』,可添加多个

点评

因为前面有了=begin  发表于 2011-6-12 16:52
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 12:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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