Project1

标题: 【VX】装备附带技能 [打印本页]

作者: bbh    时间: 2011-12-24 09:26
标题: 【VX】装备附带技能
事先说明我有用搜索哦,而且搜了1个多小时……
搜到的都是陈年老帖,各种过期+下载不能……我的RP啊……怎么就这么低。
作者: 小白玩家    时间: 2011-12-24 11:00
这个脚本找过吗,用法很简单,武器防具名字后@技能ID,如长剑@4 装备长剑就获得4号技能
原地址
http://rpg.blue/forum.php?mod=vi ... B%E6%8A%80%E8%83%BD
  1. #------------------------------------------------------------------------------

  2. # ■ 装备附加技能(VX)

  3. # by:Ultra

  4. # /2010.10.6

  5. # 使用方法:装备名字+@+技能ID

  6. # 例如:巨剑@10

  7. # 说明尾部显示附加技能信息开关

  8. $sk_name = true

  9. # 武器附加信息标识

  10. $w_txt = "附技能:"

  11. # 防具附加信息标识

  12. $a_txt = "附技能:"

  13. #------------------------------------------------------------------------------

  14. class Game_Actor

  15.   alias :orig_initialize :initialize

  16.   def initialize(actor_id)

  17.     orig_initialize(actor_id)

  18.     inisk

  19.   end

  20.   #*# t:类型u:旧d:新

  21.   def udsk(t,u,d)

  22.     case t
  23.     when 0

  24.       data = $data_weapons

  25.     when 1..4

  26.       data = $data_armors

  27.     end

  28.     if u == 0 and d > 0

  29.       learn_skill(data[d].sk) if data[d].sk != nil

  30.     elsif u > 0 and d == 0

  31.       forget_skill(data[u].sk) if data[u].sk != nil

  32.     elsif u > 0 and d > 0

  33.       if data[u].sk != nil and data[d].sk != nil

  34.         learn_skill(data[d].sk)

  35.         forget_skill(data[u].sk)

  36.       elsif data[d].sk != nil

  37.         learn_skill(data[d].sk)

  38.       elsif data[u].sk != nil

  39.         forget_skill(data[u].sk)

  40.       elsif data[d].sk == data[u].sk

  41.       end

  42.     end

  43.   end

  44.   #*# 初始检测

  45.   def inisk

  46.     data = equips

  47.     data.compact!

  48.     for i in 0...data.size

  49.       if data[i].sk != nil

  50.         learn_skill(data[i].sk)

  51.       end

  52.     end

  53.   end

  54.   #*# 更改装备

  55.   def change_equip(equip_type, item, test = false)

  56.     last_item = equips[equip_type]

  57.     unless test

  58.       return if $game_party.item_number(item) == 0 if item != nil

  59.       $game_party.gain_item(last_item, 1)

  60.       $game_party.lose_item(item, 1)

  61.     end

  62.     item_id = item == nil ? 0 : item.id

  63.     case equip_type

  64.     when 0  # 武器

  65.       udsk(equip_type,@weapon_id,item_id)#★

  66.       @weapon_id = item_id

  67.       unless two_hands_legal?            # 非双手装备的场合,自动卸下装备

  68.         sk = equips[1].sk                #★

  69.         forget_skill(sk) if sk != nil    #★

  70.         change_equip(1, nil, test)

  71.       end

  72.     when 1  # 盾

  73.       udsk(equip_type,@armor1_id,item_id)#★

  74.       @armor1_id = item_id

  75.       unless two_hands_legal?            # 非双手装备的场合,自动卸下装备

  76.         sk = equips[0].sk                #★

  77.         forget_skill(sk) if sk != nil    #★

  78.         change_equip(0, nil, test)

  79.       end

  80.     when 2  # 头部防具

  81.       udsk(equip_type,@armor2_id,item_id)#★

  82.       @armor2_id = item_id

  83.     when 3  # 身体防具

  84.       udsk(equip_type,@armor3_id,item_id)#★

  85.       @armor3_id = item_id

  86.     when 4  # 装饰品

  87.       udsk(equip_type,@armor4_id,item_id)#★

  88.       @armor4_id = item_id

  89.     end

  90.   end

  91. end

  92. class Scene_Equip

  93.   def update_status_window

  94.     if @equip_window.active

  95.       @status_window.set_new_parameters(nil, nil, nil, nil)

  96.     elsif @item_window.active

  97.       temp_actor = Marshal.load(Marshal.dump(@actor))

  98.       temp_actor.change_equip(@equip_window.index, @item_window.item, true)

  99.       new_atk = temp_actor.atk

  100.       new_def = temp_actor.def

  101.       new_spi = temp_actor.spi

  102.       new_agi = temp_actor.agi

  103.       @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi)

  104.     end

  105.     @status_window.update

  106.   end

  107. end

  108. module RPG

  109.   class Armor

  110.     def description

  111.       if sk != nil and $sk_name

  112.         name = $a_txt + $data_skills[sk].name

  113.       else

  114.         name = ""

  115.       end

  116.       return @description + name

  117.     end

  118.   end

  119.   class Weapon

  120.     def description

  121.       if sk != nil and $sk_name

  122.         name = $w_txt + $data_skills[sk].name

  123.       else

  124.         name = ""

  125.       end

  126.       return @description + name

  127.     end

  128.   end

  129.   class Armor

  130.     def name

  131.       name = @name.split(/@/)[0]

  132.       return name != nil ? name : ""

  133.     end

  134.     def sk

  135.       sk = @name.split(/@/)[1]

  136.       return sk != nil ? sk.to_i : nil

  137.     end

  138.   end

  139.   class Weapon

  140.     def name

  141.       name = @name.split(/@/)[0]

  142.       return name != nil ? name : ""

  143.     end

  144.     def sk

  145.       sk = @name.split(/@/)[1]

  146.       return sk != nil ? sk.to_i : nil

  147.     end

  148.   end

  149. end
复制代码

作者: 抖S的二二    时间: 2012-8-18 01:34
  刚要找这个脚本就搜索到LZ的帖子, 十分感谢。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1