赞 | 1 |
VIP | 220 |
好人卡 | 25 |
积分 | 6 |
经验 | 51477 |
最后登录 | 2013-1-12 |
在线时间 | 943 小时 |
Lv2.观梦者 花开堪折直须折
- 梦石
- 0
- 星屑
- 631
- 在线时间
- 943 小时
- 注册时间
- 2010-7-17
- 帖子
- 4963
|
回复 cryhades 的帖子
呃。。改脚本应该不难。不过站上就有现成的装备附加技能啊~~(即穿上装备就学会技能,脱下就忘记)
我这里给一个简单的吧~- #------------------------------------------------------------------------------
- # ■ 装备附加技能(VX)
- # by:Ultra
- # /2010.10.6
- # 使用方法:装备名字+@+技能ID
- # 例如:巨剑@10
- # 说明尾部显示附加技能信息开关
- $sk_name = true
- # 武器附加信息标识
- $w_txt = "附技能:"
- # 防具附加信息标识
- $a_txt = "附技能:"
- #------------------------------------------------------------------------------
- class Game_Actor
- alias :orig_initialize :initialize
- def initialize(actor_id)
- orig_initialize(actor_id)
- inisk
- end
- #*# t:类型u:旧d:新
- def udsk(t,u,d)
- case t
- when 0
- data = $data_weapons
- when 1..4
- data = $data_armors
- end
- if u == 0 and d > 0
- learn_skill(data[d].sk) if data[d].sk != nil
- elsif u > 0 and d == 0
- forget_skill(data[u].sk) if data[u].sk != nil
- elsif u > 0 and d > 0
- if data[u].sk != nil and data[d].sk != nil
- learn_skill(data[d].sk)
- forget_skill(data[u].sk)
- elsif data[d].sk != nil
- learn_skill(data[d].sk)
- elsif data[u].sk != nil
- forget_skill(data[u].sk)
- elsif data[d].sk == data[u].sk
- end
- end
- end
- #*# 初始检测
- def inisk
- data = equips
- data.compact!
- for i in 0...data.size
- if data[i].sk != nil
- learn_skill(data[i].sk)
- end
- end
- end
- #*# 更改装备
- def change_equip(equip_type, item, test = false)
- last_item = equips[equip_type]
- unless test
- return if $game_party.item_number(item) == 0 if item != nil
- $game_party.gain_item(last_item, 1)
- $game_party.lose_item(item, 1)
- end
- item_id = item == nil ? 0 : item.id
- case equip_type
- when 0 # 武器
- udsk(equip_type,@weapon_id,item_id)#★
- @weapon_id = item_id
- unless two_hands_legal? # 非双手装备的场合,自动卸下装备
- sk = equips[1].sk #★
- forget_skill(sk) if sk != nil #★
- change_equip(1, nil, test)
- end
- when 1 # 盾
- udsk(equip_type,@armor1_id,item_id)#★
- @armor1_id = item_id
- unless two_hands_legal? # 非双手装备的场合,自动卸下装备
- sk = equips[0].sk #★
- forget_skill(sk) if sk != nil #★
- change_equip(0, nil, test)
- end
- when 2 # 头部防具
- udsk(equip_type,@armor2_id,item_id)#★
- @armor2_id = item_id
- when 3 # 身体防具
- udsk(equip_type,@armor3_id,item_id)#★
- @armor3_id = item_id
- when 4 # 装饰品
- udsk(equip_type,@armor4_id,item_id)#★
- @armor4_id = item_id
- end
- end
- end
- class Scene_Equip
- def update_status_window
- if @equip_window.active
- @status_window.set_new_parameters(nil, nil, nil, nil)
- elsif @item_window.active
- temp_actor = Marshal.load(Marshal.dump(@actor))
- temp_actor.change_equip(@equip_window.index, @item_window.item, true)
- new_atk = temp_actor.atk
- new_def = temp_actor.def
- new_spi = temp_actor.spi
- new_agi = temp_actor.agi
- @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi)
- end
- @status_window.update
- end
- end
- module RPG
- class Armor
- def description
- if sk != nil and $sk_name
- name = $a_txt + $data_skills[sk].name
- else
- name = ""
- end
- return @description + name
- end
- end
- class Weapon
- def description
- if sk != nil and $sk_name
- name = $w_txt + $data_skills[sk].name
- else
- name = ""
- end
- return @description + name
- end
- end
- class Armor
- def name
- name = @name.split(/@/)[0]
- return name != nil ? name : ""
- end
- def sk
- sk = @name.split(/@/)[1]
- return sk != nil ? sk.to_i : nil
- end
- end
- class Weapon
- def name
- name = @name.split(/@/)[0]
- return name != nil ? name : ""
- end
- def sk
- sk = @name.split(/@/)[1]
- return sk != nil ? sk.to_i : nil
- end
- end
- end
复制代码 先声明不是我写的
其次。。使用方法自己琢磨吧呵呵~~0.0 |
|