Project1

标题: 类火纹支援系统 [打印本页]

作者: 九夜神尊    时间: 2009-1-8 20:36
标题: 类火纹支援系统
玩过火纹的都知道,里面有个叫支援的东东

当两个有支援效果的角色靠近是,相对属性可以提升

回合制的RPG虽然,不存在远近的问题,但是可以

让在队的角色相互支援,得到能力提升的效果,另外还支持

支援等级提升(提升方法自行设定)

另外,角色死亡后,支援也会失去效果。
  1. #====================================================================
  2. #■ 玩过火焰之纹章的都知道
  3. #有个叫支援的设定,当两个人靠近的时候,属性上升
  4. #当然,RPG没有什么靠近的东西,不过可以,实现当某些人在队的时候
  5. #支援成立 ,另外这个角色死了也失去作用
  6. #====================================================================

  7. #●注意,用事件使某角色离队,或加入,或死亡,然后变量代入角色的
  8. #属性时,会代入没有角色替换之前的能力
  9. #解决方法是在调用之前,先在事件脚本写写上 :刷型支援
  10. #范例里有

  11. #---------------------------------------------------------------------
  12. #提前设定好支援的相关数据   ,0代表没有
  13. #     角色 ID1 ID2  ID3   ID4   HP   MP   力   灵   速   魔   攻 物防  魔防  依附变量ID
  14. $组合A = [1 ,  2 , 0   , 0  ,  50,  45,  15,  15 , 15,  15,  15 , 15  ,15 ,   1]
  15. $组合B = [7,   8 , 0    ,0     ,80,  56,  12,  12 , 12 , 12,  12 , 12,  12,    2]
  16. #$组合C = [7,   8 , 0    ,0     ,80,  56,  12,  12 , 12 , 12,  12 , 12,  12,    2]
  17. # 以上设定代表当几个ID角色同时在队时,能力提升的幅度
  18. #特别注意最后那个依附变量ID,这个是用于支援等级提升用,所有的值
  19. #都会 * 依附变量/100
  20. #比如 依附变量 = 300,那么当1,2号角色同时在队
  21. #  时1,2号角色的力量提升 = 15 * 300/100=45
  22. $组合 = [$组合A,$组合B]  #添加一个别忘了在这里添加一下
  23. #由于本人就数不过关,还是填写下最大角色编号的
  24. $最大角色编号 = 8

  25. #----------------------------------------------------------------------------
  26. #设定为 1,2,0,0 的意思并不是只有1,2在的时候支援,
  27. #而是只要1,2号在队就能产生支援,如此也可以设定3个,4个同时在队
  28. #支援效果是叠加的,如果一个人产生了3组,支援,那这些值全都会加到身上


  29. class Game_Actor < Game_Battler
  30. #-----------------------------------------------------------------------------
  31. # ●获取支援的值
  32. #-----------------------------------------------------------------------------
  33.   def boost(actor_id,attribute)     
  34.     gain = 0
  35.     for i in 0..$组合.size - 1
  36.       m = true
  37.       n = false
  38.       for j in 0..3  
  39.         if $组合[i][j] != 0
  40.           n = true if id == $组合[i][j]
  41.           m = false if $here[$组合[i][j]] == false
  42.         end
  43.       end
  44.       if n and m
  45.         gain +=($组合[i][attribute] * $game_variables[$组合[i][13]]/100)
  46.       end
  47.     end
  48.    return gain
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 获取基本 MaxHP
  52.   #--------------------------------------------------------------------------
  53.   alias swtf_base_maxhp base_maxhp
  54.   def base_maxhp
  55.     n = swtf_base_maxhp
  56.     n += boost(id,4)
  57.     return n
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 获取基本 MaxSP
  61.   #--------------------------------------------------------------------------
  62.   alias swtf_base_maxsp base_maxsp
  63.   def base_maxsp
  64.     n = swtf_base_maxsp
  65.     n += boost(id,5)
  66.     return n
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 获取基本力量
  70.   #--------------------------------------------------------------------------
  71.   alias swtf_base_str base_str
  72.   def base_str
  73.     n = swtf_base_str
  74.     n += boost(id,6)
  75.     return n
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 获取基本灵巧
  79.   #--------------------------------------------------------------------------
  80.   alias swtf_base_dex base_dex
  81.   def base_dex
  82.     n = swtf_base_dex
  83.     n +=boost(id,7)
  84.     return n
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 获取基本速度
  88.   #--------------------------------------------------------------------------
  89.   alias swtf_base_agi base_agi
  90.   def base_agi
  91.    n = swtf_base_agi
  92.    n += boost(id,8)
  93.    return n
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 获取基本魔力
  97.   #--------------------------------------------------------------------------
  98.   alias swtf_base_int base_int
  99.   def base_int
  100.     n = swtf_base_int
  101.     n += boost(id,9)
  102.     return n
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 获取基本攻击力
  106.   #--------------------------------------------------------------------------
  107.   alias swtf_base_atk base_atk
  108.   def base_atk
  109.     n = swtf_base_atk
  110.     n += boost(id,10)
  111.     return n
  112.   end
  113.   #--------------------------------------------------------------------------
  114.   # ● 获取基本物理防御
  115.   #--------------------------------------------------------------------------
  116.   alias swtf_base_pdef base_pdef
  117.   def base_pdef
  118.     n = swtf_base_pdef
  119.     n += boost(id,11)
  120.     return n
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 获取基本魔法防御
  124.   #--------------------------------------------------------------------------
  125.   alias swtf_base_mdef base_mdef
  126.   def base_mdef
  127.     n = swtf_base_mdef
  128.     n +=n += boost(id,12)
  129.     return n
  130.   end

  131. end

  132. $here = []

  133. class Window_MenuStatus < Window_Selectable
  134.   #--------------------------------------------------------------------------
  135.   # ● 初始化目标
  136.   #--------------------------------------------------------------------------
  137.   alias swtf_initialize initialize
  138.   def initialize
  139.     for i in 1..$最大角色编号
  140.         actor = $game_actors[i]
  141.         $here[i] = $game_party.actors.include?(actor)
  142.         $here[i] = false if actor.state?(1)
  143.       end
  144.     swtf_initialize
  145.   end
  146. end
  147. #---------------------------------------------------------------------------
  148. #设置特殊代码
  149. def 刷新支援
  150.    for i in 1..$最大角色编号
  151.         actor = $game_actors[i]
  152.         $here[i] = $game_party.actors.include?(actor)
  153.         $here[i] = false if actor.state?(1)
  154.       end
  155. end
复制代码


另外我还将发布一些支援升级的相关脚本,不过本身就支持

只是当前还没有开放,根据战斗提升支援的功能

该脚本冲突的可能性极低,因为基本上没有改什么东西。
不过要放到最后,至少在装备扩充之后!

不懂可以看范例http://rpg.blue/upload_program/d ... ject1_111846974.rar
作者: 九夜神尊    时间: 2009-1-9 19:13
怎么没人看啊?自己顶下
作者: ONEWateR    时间: 2009-1-11 04:41
不错耶。

我也研究火纹。

这个貌似可以哦 ^^

这个支持容积么。 ← pia飞 {/tp}




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