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

Project1

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

[转载] 唔,VX的套装脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
跳转到指定楼层
1
发表于 2012-3-12 16:12:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
原帖地址 http://rmrk.net/index.php/topic,42340.0.html

PHP 代码复制
  1. =begin
  2. Equipment Sets Bonus
  3. Version 1.0
  4. By Welfare-Daddy Pacman (based on a script by Lettuce)
  5.  
  6. Description: The maker can create similar items of equipment in the database,
  7. and can choose to give the player a bonus for collecting them. This script
  8. allows you to decide which of these items give the player a stats boost, which
  9. stat it boosts and by how much.
  10.  
  11. A special thing about these sets is that the sets add up, meaning that if you
  12. equip 2 peices from set 1 and 3 pieces from set 2, you get both of the boosts
  13. for the sets.
  14. Instructions: Configuration with instructions begins at line 25, and ends at
  15. line 104.
  16. Support: Just find me on RMRK.net, I'm on pretty much every night.
  17. =end
  18.  
  19. #==================================================================
  20. #这里设置套装的基本套件
  21. #==================================================================
  22. Sets = {
  23.           1 => [12,44,152,153,154,],  #第一个是武器ID,后四个是防具ID
  24.           2 => [],
  25.           3 => []
  26.           }
  27.  
  28. #-------------------------------------------------------------------------------
  29. # EDITING SECTION B - EQUIPMENT SETS BONUS LIST
  30. #-------------------------------------------------------------------------------
  31.  
  32.  
  33. Set_Bonus = {
  34.           1 => [ [1,5], #装备上面设置好的套装一种的场合,攻击上升5%
  35.                  [2,20], #装备上面设置好的套装两种的场合,攻击上升5%,防御上升20%
  36.                  [5,100], #以上的基础上,MAXHP增加100%
  37.                  [6,20],#…………第一位数字对应:1:攻击,2:防御,3:精神力,4:敏捷
  38.                  [7,30]              #5:最大HP,6:最大MP,7:暴击率,8:闪避。
  39.                  ],
  40.           2 => [ [],
  41.                  [3,1000],
  42.                  [2,2000],
  43.                  [5,1000],
  44.                  [6,2000]
  45.                  ],
  46.           3 => [ [1,5],
  47.                  [2,20],
  48.                  [5,100],
  49.                  [7,2000],
  50.                  [8,50]
  51.                  ] ,
  52.           4 => [ [],   
  53.                  [],
  54.                  [],
  55.                  [],
  56.                  []
  57.                  ]
  58. }
  59.  
  60. #-------------------------------------------------------------------------------
  61. # EDITING SECTION C - EQUIPMENT SET NAMES
  62. #-------------------------------------------------------------------------------
  63.  
  64. Set_Names = {
  65.   1 => "冼灵套件",#套装名称,多了由自己添加
  66.   2 => "Basic set",
  67.   3 => "Ultimate set"
  68. }
  69.  
  70. #-------------------------------------------------------------------------------
  71. # END EDITING SECTION - DO NOT TOUCH UNLESS YOU ARE A SCRIPTER
  72. # AND EVEN THEN IT'S NOT THAT COOL.
  73. #-------------------------------------------------------------------------------
  74.  
  75. class Game_Actor < Game_Battler
  76.   attr_accessor   :bonus_set
  77.   attr_accessor   :bonus_set_pieces
  78.   alias pacman_eq_bonus_setup setup
  79.   def setup(actor_id)
  80.     pacman_eq_bonus_setup(actor_id)
  81.     @bonus_set = []
  82.     for i in 1..Sets.size
  83.       weapons = [nil,Sets[i][0]]
  84.       armors = [Sets[i][1],Sets[i][2],Sets[i][3],Sets[i][4],Sets[i][5],Sets[i][6],Sets[i][7],Sets[i][8],Sets[i][9]]
  85.       if Sets[i].include?(@weapon_id)
  86.         @bonus_set.push(i) if !@bonus_set.include?(i)
  87.       end
  88.       if Sets[i].include?(@armor4_id)
  89.         @bonus_set.push(i) if !@bonus_set.include?(i)
  90.       end
  91.       if Sets[i].include?(@armor3_id)
  92.         @bonus_set.push(i) if !@bonus_set.include?(i)
  93.       end
  94.       if Sets[i].include?(@armor2_id)
  95.         @bonus_set.push(i) if !@bonus_set.include?(i)
  96.       end
  97.       if Sets[i].include?(@armor1_id)
  98.         @bonus_set.push(i) if !@bonus_set.include?(i)
  99.       end
  100.     end
  101.     @bonus_set_pieces = []
  102.     for i in [email]0...@bonus_set.size[/email]
  103.       @bonus_set_pieces.push(0)
  104.     end
  105.     if !@bonus_set.empty?
  106.       for i in [email]0...@bonus_set.size[/email]
  107.         weapons = [nil,Sets[@bonus_set[i]][0]]
  108.         armors = [Sets[@bonus_set[i]][1],Sets[@bonus_set[i]][2],
  109.                   Sets[@bonus_set[i]][3],Sets[@bonus_set[i]][4]],
  110.         @bonus_set_pieces[i] += weapons.include?(@weapon_id) ? 1 : 0
  111.         @bonus_set_pieces[i] += armors.include?(@armor1_id) ? 1 : 0
  112.         @bonus_set_pieces[i] += armors.include?(@armor2_id) ? 1 : 0
  113.         @bonus_set_pieces[i] += armors.include?(@armor3_id) ? 1 : 0
  114.         @bonus_set_pieces[i] += armors.include?(@armor4_id) ? 1 : 0
  115.       end
  116.     end
  117.   end
  118.  
  119.   alias pacman_eq_bonus_atk atk
  120.   alias pacman_eq_bonus_def def
  121.   alias pacman_eq_bonus_spi spi
  122.   alias pacman_eq_bonus_agi agi
  123.   alias pacman_eq_bonus_maxhp maxhp
  124.   alias pacman_eq_bonus_maxmp maxmp
  125.   alias pacman_eq_bonus_cri cri
  126.   alias pacman_eq_bonus_eva eva
  127.  
  128.   def atk
  129.     default_val = pacman_eq_bonus_atk
  130.     final_val = default_val
  131.     n = 100
  132.     if !@bonus_set.empty?
  133.       for j in [email]0...@bonus_set.size[/email]
  134.       for i in 0...@bonus_set_pieces[j]
  135.         if Set_Bonus[@bonus_set[j]][i] != nil
  136.           if Set_Bonus[@bonus_set[j]][i][0] == 1
  137.             n +=Set_Bonus[@bonus_set[j]][i][1]
  138.           end
  139.         end
  140.       end
  141.     end
  142.       final_val *= n
  143.       final_val /= 100
  144.     else
  145.       final_val = default_val
  146.     end
  147.     return final_val
  148.   end
  149.   def def
  150.     default_val = pacman_eq_bonus_def
  151.     final_val = default_val
  152.     n = 100
  153.     if !@bonus_set.empty?
  154.       for j in [email]0...@bonus_set.size[/email]
  155.       for i in 0...@bonus_set_pieces[j]
  156.         if Set_Bonus[@bonus_set[j]][i] != nil
  157.           if Set_Bonus[@bonus_set[j]][i][0] == 2
  158.             n +=Set_Bonus[@bonus_set[j]][i][1]
  159.           end
  160.         end
  161.       end
  162.     end
  163.     final_val *= n
  164.       final_val /= 100
  165.     else
  166.       final_val = default_val
  167.     end
  168.     return final_val
  169.   end
  170.   def spi
  171.     default_val = pacman_eq_bonus_spi
  172.     final_val = default_val
  173.     n = 100
  174.     if !@bonus_set.empty?
  175.       for j in [email]0...@bonus_set.size[/email]
  176.       for i in 0...@bonus_set_pieces[j]
  177.         if Set_Bonus[@bonus_set[j]][i] != nil
  178.           if Set_Bonus[@bonus_set[j]][i][0] == 3
  179.             n +=Set_Bonus[@bonus_set[j]][i][1]
  180.           end
  181.         end
  182.       end
  183.     end
  184.     final_val *= n
  185.       final_val /= 100
  186.     else
  187.       final_val = default_val
  188.     end
  189.     return final_val
  190.   end
  191.   def agi
  192.     default_val = pacman_eq_bonus_agi
  193.     final_val = default_val
  194.     n = 100
  195.     if !@bonus_set.empty?
  196.       for j in [email]0...@bonus_set.size[/email]
  197.       for i in 0...@bonus_set_pieces[j]
  198.         if Set_Bonus[@bonus_set[j]][i] != nil
  199.           if Set_Bonus[@bonus_set[j]][i][0] == 4
  200.             n +=Set_Bonus[@bonus_set[j]][i][1]
  201.           end
  202.         end
  203.       end
  204.     end
  205.     final_val *= n
  206.       final_val /= 100
  207.     else
  208.       final_val = default_val
  209.     end
  210.     return final_val
  211.   end
  212.  
  213.   def maxhp
  214.     default_val = pacman_eq_bonus_maxhp
  215.     final_val = default_val
  216.     n = 100
  217.     if @bonus_set
  218.     if !@bonus_set.empty?
  219.       for j in [email]0...@bonus_set.size[/email]
  220.       for i in 0...@bonus_set_pieces[j]
  221.         if Set_Bonus[@bonus_set[j]][i] != nil
  222.           if Set_Bonus[@bonus_set[j]][i][0] == 5
  223.             n += Set_Bonus[@bonus_set[j]][i][1]
  224.           end
  225.         end
  226.       end
  227.     end
  228.       final_val *= n
  229.       final_val /= 100
  230.     else
  231.       final_val = default_val
  232.     end
  233.     end
  234.     return final_val
  235.   end
  236.  
  237.   def maxmp
  238.     default_val = pacman_eq_bonus_maxmp
  239.     final_val = default_val
  240.     n = 100
  241.     if @bonus_set
  242.     if !@bonus_set.empty?
  243.       for j in [email]0...@bonus_set.size[/email]
  244.       for i in 0...@bonus_set_pieces[j]
  245.         if Set_Bonus[@bonus_set[j]][i] != nil
  246.           if Set_Bonus[@bonus_set[j]][i][0] == 6
  247.             n +=Set_Bonus[@bonus_set[j]][i][1]
  248.           end
  249.         end
  250.       end
  251.     end
  252.     final_val *= n
  253.       final_val /= 100
  254.     else
  255.       final_val = default_val
  256.     end
  257.     end
  258.     return final_val
  259.  
  260.   end
  261.  
  262.   def cri
  263.     default_val = pacman_eq_bonus_cri
  264.     final_val = default_val
  265.     n = 100
  266.     if !@bonus_set.empty?
  267.       for j in [email]0...@bonus_set.size[/email]
  268.       for i in 0...@bonus_set_pieces[j]
  269.         if Set_Bonus[@bonus_set[j]][i] != nil
  270.           if Set_Bonus[@bonus_set[j]][i][0] == 7
  271.             n +=Set_Bonus[@bonus_set[j]][i][1]
  272.           end
  273.         end
  274.       end
  275.     end
  276.     final_val *= n
  277.       final_val /= 100
  278.     else
  279.       final_val = default_val
  280.     end
  281.     return final_val
  282.   end
  283.  
  284.   def eva
  285.     default_val = pacman_eq_bonus_eva
  286.     final_val = default_val
  287.     n = 100
  288.     if !@bonus_set.empty?
  289.       for j in [email]0...@bonus_set.size[/email]
  290.       for i in 0...@bonus_set_pieces[j]
  291.         if Set_Bonus[@bonus_set[j]][i] != nil
  292.           if Set_Bonus[@bonus_set[j]][i][0] == 8
  293.             n +=Set_Bonus[@bonus_set[j]][i][1]
  294.           end
  295.         end
  296.       end
  297.     end
  298.     final_val *= n
  299.       final_val /= 100
  300.     else
  301.       final_val = default_val
  302.     end
  303.     return final_val
  304.   end
  305.  
  306.  
  307.     def change_equip(equip_type, item, test = false)
  308.     last_item = equips[equip_type]
  309.     unless test
  310.       return if $game_party.item_number(item) == 0 if item != nil
  311.       $game_party.gain_item(last_item, 1)
  312.       $game_party.lose_item(item, 1)
  313.     end
  314.     item_id = item == nil ? 0 : item.id
  315.     case equip_type
  316.     when 0  # Weapon
  317.       @weapon_id = item_id
  318.       unless two_hands_legal?             # If two hands is not allowed
  319.         change_equip(1, nil, test)        # Unequip from other hand
  320.       end
  321.     when 1  # Shield
  322.       @armor1_id = item_id
  323.       unless two_hands_legal?             # If two hands is not allowed
  324.         change_equip(0, nil, test)        # Unequip from other hand
  325.       end
  326.     when 2  # Head
  327.       @armor2_id = item_id
  328.     when 3  # Body
  329.       @armor3_id = item_id
  330.     when 4  # Accessory
  331.       @armor4_id = item_id
  332.    when 5  # Accessory
  333.       @armor5_id = item_id
  334.    when 6  # Accessory
  335.       @armor6_id = item_id
  336.    when 7  # Accessory
  337.       @armor7_id = item_id
  338.    when 8  # Accessory
  339.       @armor8_id = item_id
  340.    when 9  # Accessory
  341.       @armor9_id = item_id
  342.     end
  343.    
  344.     @bonus_set = []
  345.     for i in 1..Sets.size
  346.       weapons = [nil,Sets[i][0]]
  347.       armors = [Sets[i][1],Sets[i][2],Sets[i][3],Sets[i][4],Sets[i][5],Sets[i][6],Sets[i][7],Sets[i][8],Sets[i][9]]
  348.       if Sets[i].include?(@weapon_id)
  349.         @bonus_set.push(i) if !@bonus_set.include?(i)
  350.       end
  351.       if Sets[i].include?(@armor4_id)
  352.         @bonus_set.push(i) if !@bonus_set.include?(i)
  353.       end
  354.       if Sets[i].include?(@armor3_id)
  355.         @bonus_set.push(i) if !@bonus_set.include?(i)
  356.       end
  357.       if Sets[i].include?(@armor2_id)
  358.         @bonus_set.push(i) if !@bonus_set.include?(i)
  359.       end
  360.       if Sets[i].include?(@armor1_id)
  361.         @bonus_set.push(i) if !@bonus_set.include?(i)
  362.       end
  363.     end
  364.     @bonus_set_pieces = []
  365.     for i in [email]0...@bonus_set.size[/email]
  366.       @bonus_set_pieces.push(0)
  367.     end
  368.     if !@bonus_set.empty?
  369.       for i in [email]0...@bonus_set.size[/email]
  370.         weapons = [nil,Sets[@bonus_set[i]][0]]
  371.         armors = [Sets[@bonus_set[i]][1],Sets[@bonus_set[i]][2],
  372.                   Sets[@bonus_set[i]][3],Sets[@bonus_set[i]][4]]
  373.         @bonus_set_pieces[i] += weapons.include?(@weapon_id) ? 1 : 0
  374.         @bonus_set_pieces[i] += armors.include?(@armor1_id) ? 1 : 0
  375.         @bonus_set_pieces[i] += armors.include?(@armor2_id) ? 1 : 0
  376.         @bonus_set_pieces[i] += armors.include?(@armor3_id) ? 1 : 0
  377.         @bonus_set_pieces[i] += armors.include?(@armor4_id) ? 1 : 0
  378.       end
  379.     end
  380.  
  381.   end  
  382. end
  383.  
  384. class Window_Base < Window
  385.   def draw_item_name(item, x, y, enabled = true)
  386.       if item != nil
  387.         is_set = false
  388.         set_no = 0
  389.         if item.is_a?(RPG::Weapon)
  390.  
  391.           for i in 1..Sets.size
  392.             weapons = []
  393.             weapons.push(Sets[i][0])
  394.             if weapons.include?(item.id)
  395.               is_set = true
  396.               set_no = i
  397.             end
  398.           end
  399.         end
  400.         if item.is_a?(RPG::Armor)
  401.  
  402.           for i in 1..Sets.size
  403.             armors = []         
  404.             armors.push(Sets[i][1])
  405.             armors.push(Sets[i][2])
  406.             armors.push(Sets[i][3])
  407.             armors.push(Sets[i][4])
  408.             if armors.include?(item.id)
  409.               is_set = true
  410.               set_no = i
  411.             end
  412.           end
  413.         end
  414.  
  415.        draw_icon(item.icon_index, x, y, enabled)
  416.         self.contents.font.color = normal_color
  417.        self.contents.font.color.alpha = enabled ? 255 : 128
  418.         set_word = ""
  419.         if is_set then set_word = "[" + Set_Names[set_no] + "]" end
  420.         self.contents.font.size = Font.default_size
  421.         self.contents.draw_text(x + 24, y, 172, WLH, item.name)
  422.         self.contents.font.color = crisis_color
  423.         self.contents.font.size = 12
  424.         self.contents.draw_text(x + 28, y+12, 172, WLH, set_word)
  425.         self.contents.font.color = normal_color
  426.         self.contents.font.size = Font.default_size
  427.  
  428.       end
  429.     end
  430.     end


PHP 代码复制
  1. @bonus_set = []
  2.     for i in 1..Sets.size
  3.       weapons = [nil,Sets[i][0]]
  4.       armors = [Sets[i][1],Sets[i][2],Sets[i][3],Sets[i][4],
  5.       Sets[i][5],Sets[i][6],Sets[i][7],Sets[i][8],Sets[i][9]],
  6.       if Sets[i].include?(@weapon_id)
  7.         @bonus_set.push(i) if !@bonus_set.include?(i)
  8.       end
  9.       if Sets[i].include?(@armor4_id)
  10.         @bonus_set.push(i) if !@bonus_set.include?(i)
  11.       end
  12.       if Sets[i].include?(@armor3_id)
  13.         @bonus_set.push(i) if !@bonus_set.include?(i)
  14.       end
  15.       if Sets[i].include?(@armor2_id)
  16.         @bonus_set.push(i) if !@bonus_set.include?(i)
  17.       end
  18.       if Sets[i].include?(@armor1_id)
  19.         @bonus_set.push(i) if !@bonus_set.include?(i)
  20.       end
  21.     end
  22.     @bonus_set_pieces = []
  23.     for i in [email]0...@bonus_set.size[/email]
  24.       @bonus_set_pieces.push(0)
  25.     end
  26.     if !@bonus_set.empty?
  27.       for i in [email]0...@bonus_set.size[/email]
  28.         weapons = [nil,Sets[@bonus_set[i]][0]]
  29.               armors = [Sets[@bonus_set[i]][1],Sets[@bonus_set[i]][2],
  30.                         Sets[@bonus_set[i]][3],Sets[@bonus_set[i]][4]]
  31.  
  32.         @bonus_set_pieces[i] += weapons.include?(@weapon_id) ? 1 : 0
  33.         @bonus_set_pieces[i] += armors.include?(@armor1_id) ? 1 : 0
  34.         @bonus_set_pieces[i] += armors.include?(@armor2_id) ? 1 : 0
  35.         @bonus_set_pieces[i] += armors.include?(@armor3_id) ? 1 : 0
  36.         @bonus_set_pieces[i] += armors.include?(@armor4_id) ? 1 : 0
  37.  
  38.  
  39.       end
  40. end



注意:此脚本貌似不能跟装备扩展共用,反正就不能超过5件装备。各位自己看着办。如果有高手能整合一下就好了

评分

参与人数 1星屑 +40 收起 理由
无双sxa + 40 我很赞同

查看全部评分

这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我

Lv3.寻梦者

梦石
0
星屑
2127
在线时间
437 小时
注册时间
2010-11-22
帖子
413
2
发表于 2012-3-18 20:25:19 | 只看该作者
本帖最后由 隐藏主角 于 2012-3-18 21:56 编辑

VX的现在也先收下。

点评

在地球村,只要不灌水还是很欢迎的:)  发表于 2012-3-18 23:53
不要说占位,抢沙发啥的就好了。  发表于 2012-3-18 21:13
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4097
在线时间
1081 小时
注册时间
2008-5-17
帖子
218

开拓者

3
发表于 2012-3-22 11:14:27 | 只看该作者
为嘛我一用就报错!!!!!!!!!!!!!

点评

应该是脚本冲突的问题,或者可以去上面的地址找一找原代码  发表于 2012-3-22 13:12
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
123 小时
注册时间
2012-2-12
帖子
73
4
发表于 2012-5-23 08:41:19 | 只看该作者
来个示范好不,无法复制啊!

点评

请点击代码框右上角,那里有复制代码功能:)  发表于 2012-5-23 12:53
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1628
在线时间
617 小时
注册时间
2011-6-11
帖子
225
5
发表于 2012-6-24 14:41:57 | 只看该作者
复制不了,上面写英文,楼主!

点评

右上角有个copy,点那个就ok了。:)  发表于 2012-6-24 14:45
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1628
在线时间
617 小时
注册时间
2011-6-11
帖子
225
6
发表于 2012-6-24 14:49:19 | 只看该作者
qq595006041 发表于 2012-6-24 14:41
复制不了,上面写英文,楼主!

点了,还是没有反应!为什么{:2_271:}

点评

可能是浏览器的原因,连帖请注意呃。实在不行,我用word的doc格式发一份上来就可以下载了。  发表于 2012-6-24 15:09
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1628
在线时间
617 小时
注册时间
2011-6-11
帖子
225
7
发表于 2012-6-24 15:13:35 | 只看该作者
qq595006041 发表于 2012-6-24 14:49
点了,还是没有反应!为什么

我再狂点,看看,麻烦楼主了!

评分

参与人数 1星屑 -10 收起 理由
无双sxa -10 抱歉,三连帖了~

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

派大星

梦石
0
星屑
195
在线时间
2133 小时
注册时间
2011-9-18
帖子
2652
8
发表于 2012-6-24 15:17:36 | 只看该作者
qq595006041 发表于 2012-6-24 14:49
点了,还是没有反应!为什么

http://115.com/file/be1f1awy#
begin.doc
原来不支持上传doc格式的附件呃,就用115好了。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1628
在线时间
617 小时
注册时间
2011-6-11
帖子
225
9
发表于 2012-6-24 15:24:54 | 只看该作者
谢啦..这算不算连贴.....

点评

当然不是,可以多次回复,只要不是连续的楼层都是同一个ID发帖就不算连帖了。:)  发表于 2012-6-24 15:38
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
519
在线时间
8 小时
注册时间
2011-9-22
帖子
3
10
发表于 2012-7-11 06:15:21 | 只看该作者
@无双sxa  你好 我也是新手 ,就是  103行错误怎么回事

点评

脚本冲突……  发表于 2012-7-28 10:19
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 10:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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