赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 5102 |
最后登录 | 2015-8-16 |
在线时间 | 46 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 46 小时
- 注册时间
- 2014-10-6
- 帖子
- 94
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
- #encoding:utf-8
- #==============================================================================
- # ■ 随机属性装备 By wyongcan
- #==============================================================================
- module Equipplus
- #得到随机属性装备方法:gainequip(装备ID,属性数)
- #~ 前缀结构:
- #~ ①权重(1-100) 越大越重要
- #~ ②名称(多个名称用","分开,会随机取其中一个添加到武器名前)
- #~ ③属性数组 提供两种方式:
- #~ 1.[属性ID,增加值] 属性ID参考说明增强脚本 增加了9号属性“极品出现率” ID为8,影响前缀的好坏 1 - 100
- #~ 2.与装备特性相同[code,data_id,value] code,data_id参考说明增强脚本#encoding:utf-8
- #==============================================================================
- #说明性注释
- #==============================================================================
- # FEATURE_ELEMENT_RATE = 11 # 属性抗性
- # FEATURE_DEBUFF_RATE = 12 # 弱化抗性
- # FEATURE_STATE_RATE = 13 # 状态抗性
- # FEATURE_STATE_RESIST = 14 # 状态免疫
- # FEATURE_PARAM = 21 # 普通能力
- # FEATURE_XPARAM = 22 # 添加能力
- # FEATURE_SPARAM = 23 # 特殊能力
- # FEATURE_ATK_ELEMENT = 31 # 攻击附带属性
- # FEATURE_ATK_STATE = 32 # 攻击附带状态
- # FEATURE_ATK_SPEED = 33 # 修正攻击速度
- # FEATURE_ATK_TIMES = 34 # 添加攻击次数
- # FEATURE_STYPE_ADD = 41 # 添加技能类型
- # FEATURE_STYPE_SEAL = 42 # 禁用技能类型
- # FEATURE_SKILL_ADD = 43 # 添加技能
- # FEATURE_SKILL_SEAL = 44 # 禁用技能
- # FEATURE_EQUIP_WTYPE = 51 # 可装备武器类型
- # FEATURE_EQUIP_ATYPE = 52 # 可装备护甲类型
- # FEATURE_EQUIP_FIX = 53 # 固定装备
- # FEATURE_EQUIP_SEAL = 54 # 禁用装备
- # FEATURE_SLOT_TYPE = 55 # 装备风格
- # FEATURE_ACTION_PLUS = 61 # 添加行动次数
- # FEATURE_SPECIAL_FLAG = 62 # 特殊标志
- # FEATURE_COLLAPSE_TYPE = 63 # 消失效果
- # FEATURE_PARTY_ABILITY = 64 # 队伍能力
- #--------------------------------------------------------------------------
- # ● 特殊标志
- #--------------------------------------------------------------------------
- # 自动战斗 0 # 擅长防御 1 # 保护弱者 2 # 特技专注 3
- #--------------------------------------------------------------------------
- # ● 各种能力值的简易访问方法
- #--------------------------------------------------------------------------
- # ——普通能力——
- # 物理攻击 2 # 物理防御 3 # 魔法攻击 4 # 魔法防御 5 # 敏捷值 6 # 幸运值 7
- # ——添加能力——
- # 成功几率 1 # 必杀几率 2 # 闪避必杀几率 3 # 闪避魔法几率 4
- # 反射魔法几率 5 # 反击几率 6 # HP再生速度 7 # MP再生速度 8 # TP再生速度 9
- # ——特殊能力——
- #(0) 受到攻击的几率
- #(1) 防御效果比率
- #(2) 恢复效果比率
- #(3) 药理知识
- #(4) MP消费率
- #(5) TP消耗率
- #(6) 物理伤害加成
- #(7) 魔法伤害加成
- #(8) 地形伤害加成
- #(9) 经验获得加成
- #————————————————————————————————————————
- @maxparamplus = 2 #最大前缀数
- @moneyrate = 10 #物品价格计算公式为:原价格 + 前缀权重 * @moneyrate
- @transpose = [*1..100].reverse #用于把1变成100,100变成1
- @paramsplus = [ #暂时只写了三个前缀,可以自己添加,参照前缀结构
- [80,"力量",[[2,10]]], #物理攻击加10
- [80,"短小",[[2,-10]]], #物理攻击减10
- [40,"锈蚀"[2,-20]]], #物理攻击减20
- [75,"守护",[[3,10]]], #物理防御加10
- [75,"胆怯",[[3,-10]]], #物理防御减10
- [25,"魔能",[[4,10],[5,10]]] # 魔攻和魔防各加10
- [60,"灵性",[[0,40],[1,40]]], # HP和MP各加40
- [60,"诅咒",[[0,-40],[1,-40]]], # HP和MP各减40
- [60,"不屈",[[0,100]]],# HP加100
- [60,"魔力",[[1,100]]],# MP加100
- [30,"灵巧",[[22,1,0.1]]],# 闪避+10%
- [50,"闪避",[[22,1,0.2]]],# 闪避+20%
- [30,"稳重",[[43,0,0.1]]],# 命中+10%
- [15,"命中",[[43,0,0.2]]],# 命中+20%
- [30,"专注",[[22,2,0.1]]],# 必杀几率+5%
- [20,"活性",[[22,7,1.5]]],# 体力恢复速度+5%
- [10,"悟性",[[23,9,1.4]]],# 经验获得+40%
- [5,"战神",[[21,2,2]]] #物理攻击双倍
- ]
- $商店随机 = true #商店买装备时出随机属性
- $战斗随机 = true #战斗后获得随机属性装备
- def self.getname(paramsplus)
- name = ""
- paramsplus.is_a?(Array) ? paramsplus.each{|a| [url=home.php?mod=space&uid=263426]@temp[/url] = []; a[1].scan(/^[\u4e00-\u9fa5|\w]*|,[\u4e00-\u9fa5|\w]*/){|b| @temp.push b.gsub(","){}}; name += @temp[rand(@temp.size)]} : paramsplus[1].scan(/^[\u4e00-\u9fa5|\w]*|,[\u4e00-\u9fa5|\w]*/){|b| @temp = [] if @temp == nil ;@temp.push b.gsub(","){}}
- name += @temp[rand(@temp.size)] if paramsplus.is_a?(Array) != true
- name += "的"
- end
- def self.getluck #获得极品出现率
- luck = 0
- $game_party.all_members.each{|a| a.weapons.each{|a| luck += a.params[8] if a.params.size == 9};a.armors.each{|a| luck += a.params[8] if a.params.size == 9}}
- luck
- end
- def self.getnewequip(xequip,params = nil) #提供两个参数 装备(RPG::Equip类下的)和附加前缀数,不填则为随机
- return unless xequip.is_a?(RPG::EquipItem)
- #xparamplus为前缀数
- xequip.paramsplus = [] if xequip.paramsplus == nil
- return if xequip.paramsplus.size >= @maxparamplus
- params != nil ? xparamplus = params : xparamplus = rand(@maxparamplus * 110) / 100
- xparamplus = xparamplus.to_int
- return xequip if xparamplus == 0
- equip = xequip.dup
- paramsplus = equip.paramsplus.dup #无奈的方法,不这样改一个装备所有同父装备的装备都会变
- newparams = equip.params.dup
- newfeatures = equip.features.dup
- aparamsplus = @paramsplus.collect{|a| [a[0] = @transpose[a[0]-1],a[1],a[2]]}.sort_by{|a| a[0]}
- while paramsplus.size < xparamplus
- temp = rand(aparamsplus[-1][0])
- temp = [temp - getluck,0].max
- x = []
- for i in aparamsplus
- x.push i if i[0] >= temp && paramsplus.include?(i) != true
- end
- if x != []
- a = [(x.size-1)*100 - getluck,0].max
- a = (rand(a)/100).to_int
- paramsplus.push x[a]
- end
- end
- equip.name = getname(paramsplus) + equip.name #更新名称
- paramsplus.each{|a| equip.price += @transpose[a[0] - 1] * @moneyrate} #更新价格
- paramsplus.select{|a| a[2].select{|a| a.size == 2}.each{|a| newparams[a[0]] += a[1]}} #更新属性
- #以下为更新特性
- features = []
- paramsplus.each{|a| a[2].each{|a| features.push a if a.size == 3}}
- while features.size > 0
- i = features.pop
- newfeatures.select{|a| a.code == i[0] && a.data_id == i[1]}.size == 0 ? newfeatures.push(RPG::BaseItem::Feature.new(i[0],i[1],i[2])) : newfeatures.each_with_index{|a,b| newfeatures[b].value += i[2] if a.code == i[0] && a.data_id == i[1]}
- end
- if equip.is_a?(RPG::Weapon)
- equip.id = $data_weapons.size
- $data_weapons.insert $data_weapons.size,equip
- $data_weapons[equip.id].paramsplus = paramsplus
- $data_weapons[equip.id].params = newparams
- $data_weapons[equip.id].features = newfeatures
- else
- equip.id = $data_armors.size
- $data_armors.insert $data_armors.size,equip
- $data_armors[equip.id].paramsplus = paramsplus
- $data_armors[equip.id].params = newparams
- $data_armors[equip.id].features = newfeatures
- end
- equip
- end
- def self.gainequip(id,params = nil)
- $game_party.gain_item(Equipplus.getnewequip($data_weapons[id],params),1,true)
- end
- end
- if $商店随机 == true
- class Scene_Shop < Scene_MenuBase
- def do_buy(number)
- $game_party.lose_gold(number * buying_price)
- if @item.is_a?(RPG::EquipItem)
- x = number
- loop do
- break if x <= 0
- x -= 1
- $game_party.gain_item(Equipplus.getnewequip(@item), 1)
- end
- else
- $game_party.gain_item(@item, number)
- end
- end
- end
- end
- if $战斗随机 == true
- module BattleManager
- def self.gain_drop_items
- $game_troop.make_drop_items.each do |item|
- item.is_a?(RPG::EquipItem) ? xitem = Equipplus.getnewequip(item) : xitem = item
- $game_party.gain_item(xitem, 1)
- $game_message.add(sprintf(Vocab::ObtainItem, xitem.name))
- end
- wait_for_message
- end
- end
- end
- class RPG::EquipItem < RPG::BaseItem
- alias old initialize
- def initialize
- old
- @paramsplus #前缀
- end
- attr_accessor :paramsplus
- end
复制代码 随机属性装备脚本后期写入的前缀会导致脚本报错,报错的行数是第74行。
请问我是哪里搞错了吗? |
|