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

Project1

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

[已经解决] 如何把防具的自动状态也用到武器上?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
54
在线时间
64 小时
注册时间
2010-7-28
帖子
141
跳转到指定楼层
1
发表于 2014-1-13 09:27:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本来实在不想做伸手党..
但是研究了一夜的F1,
还是没弄出来..
我找到了这段代码.


  #--------------------------------------------------------------------------
  # ● 更新自动状态
  #     old_armor : 卸下防具
  #     new_armor : 装备防具
  #--------------------------------------------------------------------------
  def update_auto_state(old_armor, new_armor)
    # 强制解除卸下防具的自动状态
    if old_armor != nil and old_armor.auto_state_id != 0
      remove_state(old_armor.auto_state_id, true)
    end
    # 强制附加装备防具的自动状态
    if new_armor != nil and new_armor.auto_state_id != 0
      add_state(new_armor.auto_state_id, true)
    end
  end


这个貌似是默认的防具自动加持状态,
求各位大神指导下吧..
大概就是,装备上XXX号ID的武器,就给加上XXX号ID的状态..
卸下或者更换就解除原状态,加上新状态..
应该要怎么写啊...?
>w<

Lv5.捕梦者

梦石
0
星屑
33125
在线时间
5104 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2014-1-13 22:16:22 | 只看该作者
本帖最后由 芯☆淡茹水 于 2014-1-14 09:17 编辑

顺手改写了一个,未测试,目测木有问题。如果测试中发现问题,请@

用法在脚本里。
  1. #=============================================================================
  2. # ★ 武器自动状态 ★                        by ->  芯☆淡茹水
  3. #=============================================================================
  4. #  1.复制该脚本,插入到 main 前。
  5. #---------------------------------------------------------------------------
  6. #  2.数据库武器的命名 = 武器名字 + 符号半角逗号(,) + 自动状态 ID
  7. #    比如命名为:铜剑,1  武器名字是:铜剑 ,武器自动状态 ID 是:1 。
  8. #    如果不写逗号和状态 ID ,默认状态ID为 0 。(也就是没有自动状态)
  9. #=============================================================================
  10. module RPG
  11.   class Weapon
  12.     #---------------------------------------------------------------------
  13.     def name
  14.       return @name.split(/,/)[0]
  15.     end
  16.     #---------------------------------------------------------------------
  17.     def auto_state_id
  18.       return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
  19.     end
  20.     #---------------------------------------------------------------------
  21.   end
  22. end
  23. #============================================================================
  24. class Game_Actor < Game_Battler
  25.   #--------------------------------------------------------------------------
  26.   def setup(actor_id)
  27.     actor = $data_actors[actor_id]
  28.     @actor_id = actor_id
  29.     @name = actor.name
  30.     @character_name = actor.character_name
  31.     @character_hue = actor.character_hue
  32.     @battler_name = actor.battler_name
  33.     @battler_hue = actor.battler_hue
  34.     @class_id = actor.class_id
  35.     @weapon_id = actor.weapon_id
  36.     @armor1_id = actor.armor1_id
  37.     @armor2_id = actor.armor2_id
  38.     @armor3_id = actor.armor3_id
  39.     @armor4_id = actor.armor4_id
  40.     [url=home.php?mod=space&uid=22147]@level[/url] = actor.initial_level
  41.     @exp_list = Array.new(101)
  42.     make_exp_list
  43.     [url=home.php?mod=space&uid=13302]@exp[/url] = @exp_list[@level]
  44.     @skills = []
  45.     @hp = maxhp
  46.     @sp = maxsp
  47.     @states = []
  48.     @states_turn = {}
  49.     @maxhp_plus = 0
  50.     @maxsp_plus = 0
  51.     @str_plus = 0
  52.     @dex_plus = 0
  53.     @agi_plus = 0
  54.     @int_plus = 0
  55.     # 学会特技
  56.     for i in 1..@level
  57.       for j in $data_classes[@class_id].learnings
  58.         if j.level == i
  59.           learn_skill(j.skill_id)
  60.         end
  61.       end
  62.     end
  63.     # 刷新自动状态
  64.     update_auto_state(nil, $data_weapons[@weapon_id])
  65.     update_auto_state(nil, $data_armors[@armor1_id])
  66.     update_auto_state(nil, $data_armors[@armor2_id])
  67.     update_auto_state(nil, $data_armors[@armor3_id])
  68.     update_auto_state(nil, $data_armors[@armor4_id])
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   def equip(equip_type, id)
  72.     case equip_type
  73.     when 0  # 武器
  74.       if id == 0 or $game_party.weapon_number(id) > 0
  75.         update_auto_state($data_weapons[@weapon_id], $data_weapons[id])
  76.         $game_party.gain_weapon(@weapon_id, 1)
  77.         @weapon_id = id
  78.         $game_party.lose_weapon(id, 1)
  79.       end
  80.     when 1  # 盾
  81.       if id == 0 or $game_party.armor_number(id) > 0
  82.         update_auto_state($data_armors[@armor1_id], $data_armors[id])
  83.         $game_party.gain_armor(@armor1_id, 1)
  84.         @armor1_id = id
  85.         $game_party.lose_armor(id, 1)
  86.       end
  87.     when 2  # 头
  88.       if id == 0 or $game_party.armor_number(id) > 0
  89.         update_auto_state($data_armors[@armor2_id], $data_armors[id])
  90.         $game_party.gain_armor(@armor2_id, 1)
  91.         @armor2_id = id
  92.         $game_party.lose_armor(id, 1)
  93.       end
  94.     when 3  # 身体
  95.       if id == 0 or $game_party.armor_number(id) > 0
  96.         update_auto_state($data_armors[@armor3_id], $data_armors[id])
  97.         $game_party.gain_armor(@armor3_id, 1)
  98.         @armor3_id = id
  99.         $game_party.lose_armor(id, 1)
  100.       end
  101.     when 4  # 装饰品
  102.       if id == 0 or $game_party.armor_number(id) > 0
  103.         update_auto_state($data_armors[@armor4_id], $data_armors[id])
  104.         $game_party.gain_armor(@armor4_id, 1)
  105.         @armor4_id = id
  106.         $game_party.lose_armor(id, 1)
  107.       end
  108.     end
  109.   end
  110. end
  111. #==============================================================================
复制代码
第 40 行改为:@level = actor.initial_level
第 43 行改为:@exp = @exp_list[@level]


  

点评

没有备注栏太悲催了。  发表于 2014-1-16 13:29
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
54
在线时间
64 小时
注册时间
2010-7-28
帖子
141
3
 楼主| 发表于 2014-1-14 01:24:16 | 只看该作者
@芯☆淡茹水  
居然要写这么多..
我以为只要几句就好呢- -..
首先谢谢你!
但是试用了一下有问题..
切换武器的时候会出现不解除之前状态的问题,
而且状态的加持会重叠,,
没找到错误规律..
我还是把工程放上来吧..

脚本试验器.rar

189.34 KB, 下载次数: 30

>w<
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33125
在线时间
5104 小时
注册时间
2012-11-19
帖子
4878

开拓者

4
发表于 2014-1-14 09:24:20 | 只看该作者
Demon丶旋律 发表于 2014-1-14 01:24
@芯☆淡茹水  
居然要写这么多..
我以为只要几句就好呢- -..

OK!


脚本试验器.rar (189.75 KB, 下载次数: 44)

评分

参与人数 1梦石 +1 收起 理由
myownroc + 1 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
54
在线时间
64 小时
注册时间
2010-7-28
帖子
141
5
 楼主| 发表于 2014-1-16 01:31:22 | 只看该作者
来晚了...
本来昨天就应该来回帖的,,
谢谢大神!
我也要好好学学脚本...
万分感谢!!
>w<
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33125
在线时间
5104 小时
注册时间
2012-11-19
帖子
4878

开拓者

6
发表于 2014-1-16 08:48:07 | 只看该作者
用这个 装备获得技能
  1. #===============================================================================
  2. # 装备获得技能
  3. #===============================================================================
  4. # 资料初始化
  5. $skill_plus_w = {}
  6. $skill_plus_a = {}
  7. $data_weapons = load_data("Data/Weapons.rxdata")
  8. $data_armors = load_data("Data/Armors.rxdata")
  9. (0...$data_weapons.size).each{|i|$skill_plus_w[i]=[]}
  10. (0...$data_armors.size).each{|i|$skill_plus_a[i]=[]}
  11. #-------------------------------------------------------------------------------
  12. # 资料设定:
  13. #       装备武器获得技能在下面添加:$skill_plus_w[武器ID] = [技能ID]
  14. #       装备防具获得技能在下面添加:$skill_plus_a[防具ID] = [技能ID]
  15. #------------------------------------------------------------------------------
  16. $skill_plus_w[25] = [47]
  17. $skill_plus_w[37] = [22]
  18. $skill_plus_w[37] = [87]
  19. $skill_plus_w[40] = [87]
  20. $skill_plus_a[41] = [87]
  21. $skill_plus_a[11] = [28]
  22. #-------------------------------------------------------------------------------
  23. class Game_Actor
  24.   def skills
  25.     result = @skills.clone
  26.     a = []
  27.     a += $skill_plus_w[@weapon_id]
  28.     a += $skill_plus_a[@armor1_id]
  29.     a += $skill_plus_a[@armor2_id]
  30.     a += $skill_plus_a[@armor3_id]
  31.     a += $skill_plus_a[@armor4_id]
  32.     for i in a
  33.       if !result.include?(i)
  34.         result.push(i)
  35.       end
  36.     end
  37.     return result
  38.   end
  39.   def skill_can_use?(skill_id)
  40.     return super
  41.   end
  42. end
  43. #==============================================================================
复制代码

评分

参与人数 1星屑 +7 收起 理由
Demon丶旋律 + 7 我只能用崇拜来表达此刻心情了@w@~~~~.

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-30 13:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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