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

Project1

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

[已经解决] 请教装备第10号武器后自身技能栏里就多出第20号技能的写法

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
跳转到指定楼层
1
发表于 2019-9-11 09:37:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
当然卸下这第10号武器则自身技能栏的第20号技能自动消失,
若装备前已经习得第20号技能了就不消失





Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
2
发表于 2019-9-11 09:49:21 | 只看该作者
  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前就可以了, 设置里面写

点评

你的理解力会不会太差了?到底巾没好好看脚本注译啊..  发表于 2019-9-12 14:04
写法 武器ID=>[技能ID], 照猫画虎啊,10=>[20], 第二个 5=>[2,3], #要附加多个技能就这样写。逗号别忘了,另外记得逗号半角。  发表于 2019-9-12 05:45
还有那个 “5=>[2,3]”是神马意思。。  发表于 2019-9-11 22:07
大神请问下那个“20”还有“10”塞到哪里啊?  发表于 2019-9-11 22:06
噗,让你的"交" 误导了下, 应该是并集, 改正改正  发表于 2019-9-11 14:35

评分

参与人数 2星屑 +60 +2 收起 理由
RyanBern + 60 + 1 认可答案
taeckle + 1 多谢大神!受小弟一拜!

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
3
 楼主| 发表于 2019-9-12 10:44:54 | 只看该作者
灯笼菜刀王 发表于 2019-9-11 09:49
塞到main前就可以了, 设置里面写

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

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


点评

然后 def skill_learn?(skill_id) 里 return @skills.include?(skill_id) 换成 return self.skills.include?(skill_id), 这样就可以用条件分歧的XX技能持有的时候  发表于 2019-9-12 11:24
def learn_skill(skill_id) 里, 把skill_learn?(skill_id) 换成 @skills.include?(skill_id)  发表于 2019-9-12 11:23
不过会有个问题, 就是升级的时候无法学会装备中的武器技能, 要避免这个要改一个地方  发表于 2019-9-12 11:22
不需要处理这些, 把持有的技能和武器带的技能并集就行了  发表于 2019-9-12 11:18
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
4
发表于 2019-9-12 20:04:33 | 只看该作者
本帖最后由 soulsaga 于 2019-9-12 20:20 编辑

这个脚本好像确实没法删技能啊..并集不会删除啊..
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
5
 楼主| 发表于 2019-9-13 09:47:21 | 只看该作者
soulsaga 发表于 2019-9-12 20:04
这个脚本好像确实没法删技能啊..并集不会删除啊..

那现在咋办啊?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
6
发表于 2019-9-13 10:46:31 | 只看该作者
taeckle 发表于 2019-9-13 09:47
那现在咋办啊?

经过测试确实可以做到删技能的效果..所以你放心用吧..

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢大神!中秋快乐!

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
7
 楼主| 发表于 2019-9-13 20:30:38 | 只看该作者
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号技能该咋弄啊?





回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
8
发表于 2019-9-13 20:44:15 | 只看该作者
taeckle 发表于 2019-9-13 20:30
大神我在我的游戏里还增加了这个技能等级的脚本:
所以现在用菜刀大神上面的脚本貌似装备上10号武器后只 ...

你脚本没给全...答不到
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
9
发表于 2019-9-14 10:06:20 | 只看该作者
本帖最后由 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
了吧..大概..可能..或且..
你想的话可庂自己改中文..

点评

菜刀大大怕你看不懂写的备注是不是白写啊..你给我好好的反省一下..  发表于 2019-9-14 19:49
已更新脚本..至於2..备注已经写了用法..你为什么还要问?自己试试啊..  发表于 2019-9-14 19:48
多谢大神!还有两个问题: 1.def后面的“skills”可不可以换个名字啊?我想改名为attached_skills可以不? 2.10号武器和20号技能的关系是不是“10=>[20],”?   发表于 2019-9-14 19:33
怎么找脚本本体?要我教你? 脚本里搜S_LEVEL[得出的结果只要不是这个设定脚本应该就是了..  发表于 2019-9-14 13:03
已更新脚本..  发表于 2019-9-14 12:58

评分

参与人数 1星屑 +60 +1 收起 理由
RyanBern + 60 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
10
 楼主| 发表于 2021-9-20 01:26:42 | 只看该作者
soulsaga 发表于 2019-9-14 10:06
module Caidao
  WS = { #这里别动
  #-----------------------------------------


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

点评

写在scene_equip里,如果角色身上带有初始装备就无效了  发表于 2021-9-20 12:53
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 16:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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