Project1

标题: 希望能给出一套现成的脚本~~关于武器栏的增加。 [打印本页]

作者: 1243852    时间: 2014-7-28 11:13
标题: 希望能给出一套现成的脚本~~关于武器栏的增加。
我想把现在现有的武器给固定了(不能取下来,永久装备的那种。)
然后我要再新增一个武器栏,来装别的武器。可取下可更换的。  大概是这样。

要求:攻击动画以第一把(固定的)武器为主。

主要是我使用XP的全动画战斗。但我这边的同职业人物比较多,换句话说,两三个人物可能会用同一把武器。但武器的敌方攻击动画和乙方攻击动画,都只能设置一个。换句话说,我把武器A设置成 A角色,冲过去,砍一刀。这样的动画,那当武器A装备到 B角色身上时,显示的动画还是角色A的,这样肯定就不匹配了。所以才想到了以上办法。



不知道有没有表达清楚,麻烦各位帮帮忙。
作者: 芯☆淡茹水    时间: 2014-7-28 12:09
有几个问题:
1,固定的那个武器在装备界面以及状态界面显不显示?
2,固定武器的攻击力等属性是否也加到角色身上?
作者: 1243852    时间: 2014-7-28 13:04
芯☆淡茹水 发表于 2014-7-28 12:09
有几个问题:
1,固定的那个武器在装备界面以及状态界面显不显示?
2,固定武器的攻击力等属性是否也加到角 ...

其实无所谓。
1、若是显示,那我就把武器名称设置的稍微专属一点,比如“关羽”就叫“关羽的手。”或者“关羽的随身刀”。大概是说这个意思。。当然,不显示更好。。
2、固定武器的攻击力等属性,如果要加到角色上。那么我就把武器设置成一个固定值就好了。如果不加到角色上,我就把接下来要装备的其他东西的属性多设置点就好了。其实是无所谓的。
主要看脚本的难度。如果没有现成的脚步,要人帮忙写的话,那么肯定不能太麻烦别人。
作者: 芯☆淡茹水    时间: 2014-7-28 14:05
下面这个很简易,不显示固定武器,但其属性会加到角色身上。
固定武器为 数据库-角色 里面给角色设置的那把初始的武器。角色初始装备的武器就没有,需在游戏中给予并装备。
因固定武器不显示,所以就没有被取下的情况。数据库-角色 的武器固定就不用打勾。
  1. #==============================================================================
  2. class Game_Actor < Game_Battler
  3.   #--------------------------------------------------------------------------
  4.   attr_reader   :weapon2_id                # 武器2 ID
  5.   #--------------------------------------------------------------------------
  6.   def setup(actor_id)
  7.     actor = $data_actors[actor_id]
  8.     @actor_id = actor_id
  9.     @name = actor.name
  10.     @character_name = actor.character_name
  11.     @character_hue = actor.character_hue
  12.     @battler_name = actor.battler_name
  13.     @battler_hue = actor.battler_hue
  14.     @class_id = actor.class_id
  15.     @weapon2_id = actor.weapon_id
  16.     @weapon_id = 0
  17.     @armor1_id = actor.armor1_id
  18.     @armor2_id = actor.armor2_id
  19.     @armor3_id = actor.armor3_id
  20.     @armor4_id = actor.armor4_id
  21.     @level = actor.initial_level
  22.     @exp_list = Array.new(101)
  23.     make_exp_list
  24.     @exp = @exp_list[@level]
  25.     @skills = []
  26.     @hp = maxhp
  27.     @sp = maxsp
  28.     @states = []
  29.     @states_turn = {}
  30.     @maxhp_plus = 0
  31.     @maxsp_plus = 0
  32.     @str_plus = 0
  33.     @dex_plus = 0
  34.     @agi_plus = 0
  35.     @int_plus = 0
  36.     # 学会特技
  37.     for i in 1..@level
  38.       for j in $data_classes[@class_id].learnings
  39.         if j.level == i
  40.           learn_skill(j.skill_id)
  41.         end
  42.       end
  43.     end
  44.     # 刷新自动状态
  45.     update_auto_state(nil, $data_armors[@armor1_id])
  46.     update_auto_state(nil, $data_armors[@armor2_id])
  47.     update_auto_state(nil, $data_armors[@armor3_id])
  48.     update_auto_state(nil, $data_armors[@armor4_id])
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 获取普通攻击属性
  52.   #--------------------------------------------------------------------------
  53.   def element_set
  54.     set1 = $data_weapons[@weapon_id] != nil ? $data_weapons[@weapon_id].element_set : []
  55.     set2 = $data_weapons[@weapon2_id] != nil ? $data_weapons[@weapon2_id].element_set : []
  56.     return set1 + set2
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 获取普通攻击状态变化 (+)
  60.   #--------------------------------------------------------------------------
  61.   def plus_state_set
  62.     set1 = $data_weapons[@weapon_id] != nil ? $data_weapons[@weapon_id].plus_state_set : []
  63.     set2 = $data_weapons[@weapon2_id] != nil ? $data_weapons[@weapon2_id].plus_state_set : []
  64.     return set1 + set2
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ● 获取普通攻击状态变化 (-)
  68.   #--------------------------------------------------------------------------
  69.   def minus_state_set
  70.     set1 = $data_weapons[@weapon_id] != nil ? $data_weapons[@weapon_id].minus_state_set : []
  71.     set2 = $data_weapons[@weapon2_id] != nil ? $data_weapons[@weapon2_id].minus_state_set : []
  72.     return set1 + set2
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 获取基本力量
  76.   #--------------------------------------------------------------------------
  77.   def base_str
  78.     n = $data_actors[@actor_id].parameters[2, @level]
  79.     weapon = $data_weapons[@weapon_id]
  80.     weapon2 = $data_weapons[@weapon2_id]
  81.     armor1 = $data_armors[@armor1_id]
  82.     armor2 = $data_armors[@armor2_id]
  83.     armor3 = $data_armors[@armor3_id]
  84.     armor4 = $data_armors[@armor4_id]
  85.     n += weapon != nil ? weapon.str_plus : 0
  86.     n += weapon2 != nil ? weapon2.str_plus : 0
  87.     n += armor1 != nil ? armor1.str_plus : 0
  88.     n += armor2 != nil ? armor2.str_plus : 0
  89.     n += armor3 != nil ? armor3.str_plus : 0
  90.     n += armor4 != nil ? armor4.str_plus : 0
  91.     return [[n, 1].max, 999].min
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # ● 获取基本灵巧
  95.   #--------------------------------------------------------------------------
  96.   def base_dex
  97.     n = $data_actors[@actor_id].parameters[3, @level]
  98.     weapon = $data_weapons[@weapon_id]
  99.     weapon2 = $data_weapons[@weapon2_id]
  100.     armor1 = $data_armors[@armor1_id]
  101.     armor2 = $data_armors[@armor2_id]
  102.     armor3 = $data_armors[@armor3_id]
  103.     armor4 = $data_armors[@armor4_id]
  104.     n += weapon != nil ? weapon.dex_plus : 0
  105.     n += weapon2 != nil ? weapon2.dex_plus : 0
  106.     n += armor1 != nil ? armor1.dex_plus : 0
  107.     n += armor2 != nil ? armor2.dex_plus : 0
  108.     n += armor3 != nil ? armor3.dex_plus : 0
  109.     n += armor4 != nil ? armor4.dex_plus : 0
  110.     return [[n, 1].max, 999].min
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 获取基本速度
  114.   #--------------------------------------------------------------------------
  115.   def base_agi
  116.     n = $data_actors[@actor_id].parameters[4, @level]
  117.     weapon = $data_weapons[@weapon_id]
  118.     weapon2 = $data_weapons[@weapon2_id]
  119.     armor1 = $data_armors[@armor1_id]
  120.     armor2 = $data_armors[@armor2_id]
  121.     armor3 = $data_armors[@armor3_id]
  122.     armor4 = $data_armors[@armor4_id]
  123.     n += weapon != nil ? weapon.agi_plus : 0
  124.     n += weapon2 != nil ? weapon2.agi_plus : 0
  125.     n += armor1 != nil ? armor1.agi_plus : 0
  126.     n += armor2 != nil ? armor2.agi_plus : 0
  127.     n += armor3 != nil ? armor3.agi_plus : 0
  128.     n += armor4 != nil ? armor4.agi_plus : 0
  129.     return [[n, 1].max, 999].min
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 获取基本魔力
  133.   #--------------------------------------------------------------------------
  134.   def base_int
  135.     n = $data_actors[@actor_id].parameters[5, @level]
  136.     weapon = $data_weapons[@weapon_id]
  137.     weapon2 = $data_weapons[@weapon2_id]
  138.     armor1 = $data_armors[@armor1_id]
  139.     armor2 = $data_armors[@armor2_id]
  140.     armor3 = $data_armors[@armor3_id]
  141.     armor4 = $data_armors[@armor4_id]
  142.     n += weapon != nil ? weapon.int_plus : 0
  143.     n += weapon2 != nil ? weapon2.int_plus : 0
  144.     n += armor1 != nil ? armor1.int_plus : 0
  145.     n += armor2 != nil ? armor2.int_plus : 0
  146.     n += armor3 != nil ? armor3.int_plus : 0
  147.     n += armor4 != nil ? armor4.int_plus : 0
  148.     return [[n, 1].max, 999].min
  149.   end
  150.   #--------------------------------------------------------------------------
  151.   # ● 获取基本攻击力
  152.   #--------------------------------------------------------------------------
  153.   def base_atk
  154.     weapon = $data_weapons[@weapon_id]
  155.     weapon2 = $data_weapons[@weapon2_id]
  156.     return (weapon != nil ? weapon.atk : 0) + (weapon2 != nil ? weapon2.atk : 0)
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 获取基本物理防御
  160.   #--------------------------------------------------------------------------
  161.   def base_pdef
  162.     weapon = $data_weapons[@weapon_id]
  163.     weapon2 = $data_weapons[@weapon2_id]
  164.     armor1 = $data_armors[@armor1_id]
  165.     armor2 = $data_armors[@armor2_id]
  166.     armor3 = $data_armors[@armor3_id]
  167.     armor4 = $data_armors[@armor4_id]
  168.     pdef1 = weapon != nil ? weapon.pdef : 0
  169.     pdef2 = armor1 != nil ? armor1.pdef : 0
  170.     pdef3 = armor2 != nil ? armor2.pdef : 0
  171.     pdef4 = armor3 != nil ? armor3.pdef : 0
  172.     pdef5 = armor4 != nil ? armor4.pdef : 0
  173.     pdef6 = weapon2 != nil ? weapon2.pdef : 0
  174.     return pdef1 + pdef2 + pdef3 + pdef4 + pdef5 + pdef6
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # ● 获取基本魔法防御
  178.   #--------------------------------------------------------------------------
  179.   def base_mdef
  180.     weapon = $data_weapons[@weapon_id]
  181.     weapon2 = $data_weapons[@weapon2_id]
  182.     armor1 = $data_armors[@armor1_id]
  183.     armor2 = $data_armors[@armor2_id]
  184.     armor3 = $data_armors[@armor3_id]
  185.     armor4 = $data_armors[@armor4_id]
  186.     mdef1 = weapon != nil ? weapon.mdef : 0
  187.     mdef2 = armor1 != nil ? armor1.mdef : 0
  188.     mdef3 = armor2 != nil ? armor2.mdef : 0
  189.     mdef4 = armor3 != nil ? armor3.mdef : 0
  190.     mdef5 = armor4 != nil ? armor4.mdef : 0
  191.     mdef6 = weapon2 != nil ? weapon2.mdef : 0
  192.     return mdef1 + mdef2 + mdef3 + mdef4 + mdef5 + mdef6
  193.   end
  194.   #--------------------------------------------------------------------------
  195.   # ● 普通攻击 获取攻击方动画 ID
  196.   #--------------------------------------------------------------------------
  197.   def animation1_id
  198.     weapon = $data_weapons[@weapon_id]
  199.     weapon2 = $data_weapons[@weapon2_id]
  200.     return weapon2.animation1_id if weapon2 != nil
  201.     return weapon.animation1_id if weapon != nil
  202.     return 0
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ● 普通攻击 获取对像方动画 ID
  206.   #--------------------------------------------------------------------------
  207.   def animation2_id
  208.     weapon = $data_weapons[@weapon_id]
  209.     weapon2 = $data_weapons[@weapon2_id]
  210.     return weapon2.animation2_id if weapon2 != nil
  211.     return weapon.animation2_id if weapon != nil
  212.     return 0
  213.   end
  214. end
  215. #==============================================================================
复制代码

作者: 1243852    时间: 2014-7-28 19:11
芯☆淡茹水 发表于 2014-7-28 14:05
下面这个很简易,不显示固定武器,但其属性会加到角色身上。
固定武器为 数据库-角色 里面给角色设置的那把 ...








http://pan.baidu.com/s/1dDow1jF



这是我工程里面Scripts.rxdata 的链接。

我暂时就用这些脚本,帮人帮到底,麻烦您帮我确认一下还有什么冲突。目前只发现与“得失物品提示”冲突。 我估计那个随机装备属性系统也没跑了。可能就与此两个脚本有冲突。


实在是十分感激不尽,实在太感谢你了。
作者: 芯☆淡茹水    时间: 2014-7-28 20:03
初步试了下(随机装备没试,至少得到武器和装备时没冲突)

Scripts.rar (177.22 KB, 下载次数: 23)
作者: 芯☆淡茹水    时间: 2014-7-28 20:28
这个是我测试的工程
Project1.rar (250.78 KB, 下载次数: 27)
作者: 1243852    时间: 2014-7-28 20:38
芯☆淡茹水 发表于 2014-7-28 20:28
这个是我测试的工程

社交x.zip (859.3 KB, 下载次数: 25)

你看看,超灵异!!!!




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