Project1

标题: 请教装备第10号武器后自身技能栏里就多出第20号技能的写法 [打印本页]

作者: taeckle    时间: 2019-9-11 09:37
标题: 请教装备第10号武器后自身技能栏里就多出第20号技能的写法
当然卸下这第10号武器则自身技能栏的第20号技能自动消失,
若装备前已经习得第20号技能了就不消失






作者: 灯笼菜刀王    时间: 2019-9-11 09:49
  1. module Caidao
  2.   WS = { #这里别动
  3.   #-----------------------------------------
  4.   #下面设置技能的关联, 写法 武器ID=>[技能ID],
  5.   #-----------------------------------------
  6.   1=>[1], #←后面这个逗号别漏了
  7.   5=>[2,3], #要附加多个技能就这样写
  8.   #=========================================
  9.   } #这里别误删了
  10. end

  11. class Game_Actor < Game_Battler
  12.   def skills
  13.     a = Caidao::WS[@weapon_id].nil? ? [] : Caidao::WS[@weapon_id]
  14.     return @skills | a
  15.   end
  16. end
复制代码


塞到main前就可以了, 设置里面写
作者: taeckle    时间: 2019-9-12 10:44
灯笼菜刀王 发表于 2019-9-11 09:49
塞到main前就可以了, 设置里面写

大神请问下你上面这个脚本哪句话指的是“当然卸下这第10号武器则自身技能栏的第20号技能自动消失”,

哪句话指的又是“若装备前已经习得第20号技能了第20号技能就不消失”啊?



作者: soulsaga    时间: 2019-9-12 20:04
本帖最后由 soulsaga 于 2019-9-12 20:20 编辑

这个脚本好像确实没法删技能啊..并集不会删除啊..

作者: taeckle    时间: 2019-9-13 09:47
soulsaga 发表于 2019-9-12 20:04
这个脚本好像确实没法删技能啊..并集不会删除啊..

那现在咋办啊?
作者: soulsaga    时间: 2019-9-13 10:46
taeckle 发表于 2019-9-13 09:47
那现在咋办啊?

经过测试确实可以做到删技能的效果..所以你放心用吧..
作者: taeckle    时间: 2019-9-13 20:30
soulsaga 发表于 2019-9-13 10:46
经过测试确实可以做到删技能的效果..所以你放心用吧..


大神我在我的游戏里还增加了这个技能等级的脚本:
  1. #==============================================================================
  2. # ■ XP-RGSS-7 技能更新 [Ver.5.2.2]      by Claimh
  3. #------------------------------------------------------------------------------
  4. #  为每种技能引入一个关卡系统
  5. #  你在战斗中使用的技能越多,你就越强大,你花费的SP越少,你击中的越多。
  6. #  但是,如果您在菜单中使用它,则不会升级。
  7. #==============================================================================

  8. module SkillUpdate
  9.   S_MIGHT=[];S_COST=[];S_HIT=[];S_LEVEL=[];S_INTER=[];S_SLOPE=[]
  10.   S_ANIME=[];S_ELEMENT=[];S_STATE_P=[];S_STATE_M=[];S_EXP=[]
  11. #==============================================================================
  12. # □ 定制点
  13. #==============================================================================
  14. #----------------------------------------------------------------------------
  15. # 基本設定(如果您只在此处设置,则以后可能不需要它)
  16. #----------------------------------------------------------------------------
  17.   #威力上昇(true:有効 | false:無効)
  18.   SKILL_MIGHT_UP = true
  19.   #威力上昇率(%)
  20.   MIGHT_RATE = 20

  21.   #SP消費減少(true:有効 | false:無効)
  22.   SP_COST_DOWN = true
  23.   # SP消費減少率(%)
  24.   COST_RATE = -20

  25.   #命中率上昇(true:有効 | false:無効)
  26.   SKILL_HIT_UP = true
  27.   #命中上昇率(%)
  28.   HIT_RATE = 1

  29.   # 技能增长模式
  30.   # 0:以恒定价值上升  -> NEXT = 基本値
  31.   # 1:线性上升 - > NEXT =斜率*下一个Lv +基本值
  32.   # 2:弯曲上升 - > NEXT =斜率*下一个Lv *下一个Lv +基本值
  33.   # 3:单独指定(需要设置所有演员和所有技能......)
  34.   SKILL_PATTERN = 1
  35.   # 限制水平
  36.   LEVEL_LIMIT = 20               # 1以上
  37.   # 技能等级上升的基本值
  38.   UPDATE_INTERVAL = 99999          # 1以上
  39.   # 技能等级上升的倾向(每LV使用次数增加)
  40.   UPDATE_SLOPE    = 99999          # 1以上

  41.   # 使用属性更改(true:有效| false:无效)
  42.   ELEMENT_CHANGE = false

  43.   # 使用状态更改(true:有效| false:无效)
  44.   STATE_CHANGE = false

  45.   # 按技能增长使用动画更改(true:有效| false:无效)
  46.   USE_S_ANIME = false

  47.   # Lv up display(0:未使用/ 1:文本显示/ 2:动画显示)
  48.   SHOW_SKILL_LV_UP = 1
  49.   # Lv up时的SE(仅当SHOW_SKILL_LV_UP = 1时)
  50.   SKILLUP_SE = "056-Right02"     # 如果不需要,则为零
  51.   # Lvup上的动画ID(仅当SHOW_SKILL_LV_UP = 2时)
  52.   SKILLUP_ANIME = 23

  53. #----------------------------------------------------------------------------
  54. #スキル&アクター別詳細設定
  55. #スキルごとの設定、アクターごとの詳細設定です。
  56. #アクターIDの部分に0を指定すると全アクター共通の設定にすることが出来ます。
  57. #細かい設定がいらない場合は以降の設定は消してOK
  58. #----------------------------------------------------------------------------
  59.   #威力上昇率 -- 設定なし時 : MIGHT_RATEを適応
  60.   #S_MIGHT[スキルID] = [アクターID=>威力上昇率, …]
  61.   #S_MIGHT[57] = {0=>2,1=>8, 2=>2, 3=>5, 4=>2, 5=>2, 6=>2, 7=>2, 8=>2}
  62.   #S_MIGHT[61] = {0=>2,1=>2, 2=>8, 3=>5, 4=>2, 5=>2, 6=>2, 7=>2, 8=>2}

  63.   #SP消費減少率 -- 設定なし時 : COST_RATEを適応
  64.   #S_COST[スキルID] = [アクターID=>SP消費減少率, …]
  65.   #S_COST[57] = {0=>2,1=>8, 2=>2, 3=>5, 4=>2, 5=>2, 6=>2, 7=>2, 8=>2}
  66.   #S_COST[61] = {0=>2,1=>2, 2=>8, 3=>5, 4=>2, 5=>2, 6=>2, 7=>2, 8=>2}

  67.   #命中上昇率 -- 設定なし時 : HIT_RATEを適応
  68.   #S_HIT[スキルID] = [アクターID=>命中上昇率, …]
  69.   #S_HIT[57] = {0=>1,1=>2, 2=>1, 3=>1, 4=>1, 5=>1, 6=>1, 7=>1, 8=>1}
  70.   #S_HIT[61] = {0=>1,1=>1, 2=>2, 3=>1, 4=>1, 5=>1, 6=>1, 7=>1, 8=>1}

  71.   #限界レベル -- 設定なし時 : LEVEL_LIMITを適応
  72.   #S_LEVEL[スキルID] = [アクターID=>威力上昇率, …]
  73.   #S_LEVEL[57] = {0=>10,1=>18, 2=>12, 3=>5, 4=>12, 5=>12, 6=>12, 7=>12, 8=>12}
  74.   #S_LEVEL[61] = {0=>10,1=>12, 2=>18, 3=>15, 4=>12, 5=>12, 6=>12, 7=>12, 8=>12}
  75.   
  76.   #スキルレベル上昇間隔 -- 設定なし時 : UPDATE_INTERVALを適応
  77.   #S_INTER[スキルID] = [アクターID=>上昇間隔, …]
  78.   #S_INTER[57] = {0=>10,1=>2, 2=>8, 3=>8, 4=>8, 5=>8, 6=>8, 7=>8, 8=>8}
  79.   #S_INTER[28] = {0=>15}
  80.   #S_INTER[31] = {0=>45}
  81.   #S_INTER[32] = {0=>60}
  82.   #S_INTER[33] = {0=>45}
  83.   #S_INTER[34] = {0=>15}
  84.   #S_INTER[76] = {0=>15}
  85.   #S_INTER[77] = {0=>75}
  86.   #S_INTER[78] = {0=>60}
  87.   #S_INTER[79] = {0=>15}
  88.   # スキルレベル上昇の傾き -- 設定なし時 : UPDATE_SLOPEを適応
  89.   # (スキルの成長パターン=1の時のみ有効)
  90.   # S_SLOPE[スキルID] = [アクターID=>上昇の傾き, …]
  91.   #S_SLOPE[57] = {0=>10,1=>5, 2=>8, 3=>8, 4=>8, 5=>8, 6=>8, 7=>8, 8=>8}
  92.   #S_SLOPE[28] = {0=>15}
  93.   #S_SLOPE[31] = {0=>45}
  94.   #S_SLOPE[32] = {0=>60}
  95.   #S_SLOPE[33] = {0=>45}
  96.   #S_SLOPE[34] = {0=>15}
  97.   #S_SLOPE[76] = {0=>15}
  98.   #S_SLOPE[77] = {0=>75}
  99.   #S_SLOPE[78] = {0=>60}
  100.   #S_SLOPE[79] = {0=>15}

  101.   # アニメーション変化 -- 設定なし時 : データベースのまま
  102.   # S_ANIME[スキルID] = [アクターID=>[[レベル, アニメID]], ・・・]
  103.   # (例) アルシェスはクロスカットがLv.5、Lv.10になるとアニメーションが変わる
  104.   #      バジルはクロスカットがLv.11になるとアニメーションが変わる
  105.   #S_ANIME[57] = {0=>[[5, 69]], 1=>[[5, 69], [10, 70]], 2=>[[11, 70]]}

  106.   # 属性変化 -- 設定なし時 : データベースのまま
  107.   # S_ELEMENT[スキルID] = {アクターID=>{レベル=>[属性ID,属性ID…]}, ・・・・}
  108.   #S_ELEMENT[57] = {1=>{1=>[1], 2=>[2], 3=>[3]}, 2=>{1=>[2], 2=>[5]}}

  109.   # ステート変化+ -- 設定なし時 : データベースのまま
  110.   # S_STATE_P[スキルID] = {アクターID=>{レベル=>[ステートID,ステートID…]}, ・・・・}
  111.   #S_STATE_P[57] = {1=>{1=>[1], 2=>[2], 3=>[3]}, 2=>{1=>[2], 2=>[5]}}

  112.   # ステート変化- -- 設定なし時 : データベースのまま
  113.   # S_STATE_M[スキルID] = {アクターID=>{レベル=>[ステートID,ステートID…]}, ・・・・}
  114.   #S_STATE_M[57] = {1=>{1=>[1], 2=>[2], 3=>[3]}, 2=>{1=>[2], 2=>[5]}}

  115. #----------------------------------------------------------------------------
  116. # レベルアップ経験値データベース超詳細設定
  117. #   SKILL_PATTERN = 3 のときのみ設定必要
  118. # この場合はUPDATE_INTERVAL、UPDATE_SLOPE、S_INTER、S_SLOPEの設定は全て無視
  119. #----------------------------------------------------------------------------
  120.   # S_EXP[アクターID] = {
  121.   #   スキルID => [0, 0, レベル2になるEXP, レベル3になるEXP, …],
  122.   # }
  123.   S_EXP[0] = {  # アクターID、スキルID: 0 は共通設定
  124.     0  => [0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
  125.   }
  126.   S_EXP[1] = {
  127.     57 => [0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
  128.   }
  129.   S_EXP[2] = {
  130.     57 => [0, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44]
  131.   }
  132. #----------------------------------------------------------------------------
  133. # 羞射了新增定制功能
  134. #----------------------------------------------------------------------------
  135.   S_LEARN=[];S_CHANGE = []
  136.   # 领悟技能(true:有効 | false:無効)
  137.   SKILL_LEARN = true
  138.   # 替换技能并继承等级(true:有効 | false:無効)
  139.   SKILL_CHANGE = true
  140.   #S_LEARN[技能ID] = {角色=>{技能等级=>[领悟技能ID…]}, ・・・・}
  141.   #S_LEARN[61] = {1=>{2=>7}, 2=>{2=>8}}
  142.   #S_CHANGE[技能ID] = {角色=>{技能等级=>[替换技能ID…]}, ・・・・}
  143.   #S_CHANGE[57] = {1=>{2=>61}, 2=>{2=>7}}
  144. #==============================================================================
  145. # □ カスタマイズポイント終了
  146. #==============================================================================
  147. end
复制代码
所以现在用菜刀大神上面的脚本貌似装备上10号武器后只有1级的20号技能,要是想让10号武器装备后就有17级的20号技能该咋弄啊?






作者: soulsaga    时间: 2019-9-13 20:44
taeckle 发表于 2019-9-13 20:30
大神我在我的游戏里还增加了这个技能等级的脚本:
所以现在用菜刀大神上面的脚本貌似装备上10号武器后只 ...

你脚本没给全...答不到
作者: soulsaga    时间: 2019-9-14 10:06
本帖最后由 soulsaga 于 2019-9-14 19:53 编辑

RUBY 代码复制
  1. module Caidao
  2.   WS = { #这里别动
  3.   #-----------------------------------------
  4.   #下面设置技能的关联, 写法 武器ID=>[技能ID],
  5.   #-----------------------------------------
  6.   1=>[1], #←后面这个逗号别漏了
  7.   5=>[2,3], #要附加多个技能就这样写
  8.   #=========================================
  9.   } #这里别误删了
  10. end
  11.  
  12. class Game_Actor < Game_Battler
  13.   def skills
  14.     a = Caidao::WS[@weapon_id].nil? ? [] : Caidao::WS[@weapon_id]
  15.     for skill17 in a
  16.     $game_actors[@actor_id].skill[a].level  = 17 if a != []
  17. end
  18.     return @skills | a
  19.   end
  20. def attached_skills
  21. return skills
  22. end
  23. end


之后就可以用$game_actors[@actor_id].attached_skills
了吧..大概..可能..或且..
你想的话可庂自己改中文..
作者: taeckle    时间: 2021-9-20 01:26
soulsaga 发表于 2019-9-14 10:06
module Caidao
  WS = { #这里别动
  #-----------------------------------------


大神我现在稍微能看懂点了,请问下你们写这个脚本时为啥不在class Scene_Equip里面写呢?非要在class Game_Actor < Game_Battler里面写才行吗?可以在class Scene_Equip里面实现装备第10号武器后自身技能栏里就多出第20号技能的目的吗?






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