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

Project1

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

[已经解决] 关于skill_id的设定【已解决】

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
跳转到指定楼层
1
发表于 2019-6-4 17:06:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 间桐樱 于 2019-6-5 12:35 编辑

在论坛里找到了前辈做的复制技能的脚本,然后强迫症犯了,不想在备注里面加东西,请问怎么能把<>变成直接在脚本里指定技能

#==============================================================================
# ★ RGSS3_复制技能的技能 Ver1.0
#==============================================================================
=begin

作者:tomoaky
webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

技能备注:
<复制技能的技能>
该技能对目标使用后,技能的使用者可以暂时学会目标身上的全部技能。
战斗结束后全部复制的技能都会被遗忘。

技能备注:
<无法被复制>
该技能无法被复制

=== 注意点 ===
  ・敌人不能使用复制技能
  ・攻撃(1号技能)与防御(2号技能)默认无法被复制

2011.12.15 Ver1.0
  公開

=end

#==============================================================================
# ■ RPG::UsableItem
#==============================================================================
class RPG::UsableItem
  #--------------------------------------------------------------------------
  # ○ 偷窃技能的技能かどうかを返す
  #--------------------------------------------------------------------------
  def steal_skill?
    /<复制技能的技能>/ =~ @note ? true : false-------------------------------------------------------------------------------在这里在这里,怎么能变成skill_id = 66
  end
  #--------------------------------------------------------------------------
  # ○ 盗めるスキルかどうかを返す
  #--------------------------------------------------------------------------
  def can_steal?
    /<无法被复制>/ =~ @note ? false : true------------------------------------------------------------------------------------在这里在这里,怎么能变成skill_id = 5,6,7
  end
end

#==============================================================================
# ■ RPG::Item
#==============================================================================
class RPG::Item
  #--------------------------------------------------------------------------
  # ○ 盗めるスキルかどうかを返す
  #--------------------------------------------------------------------------
  def can_steal?
    false
  end
end

#==============================================================================
# ■ Game_ActionResult
#==============================================================================
class Game_ActionResult
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :steal_skills             # 盗まれたスキルIDの配列
  #--------------------------------------------------------------------------
  # ● クリア
  #--------------------------------------------------------------------------
  alias tmsksteal_game_actionresult_clear clear
  def clear
    tmsksteal_game_actionresult_clear
    @steal_skills = []
  end
  #--------------------------------------------------------------------------
  # ● 何らかのステータス(能力値かステート)が影響を受けたかの判定
  #--------------------------------------------------------------------------
  alias tmsksteal_game_actionresult_status_affected? status_affected?
  def status_affected?
    tmsksteal_game_actionresult_status_affected? || !@steal_skills.empty?
  end
end

#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
  #--------------------------------------------------------------------------
  # ● スキル/アイテムの効果適用
  #--------------------------------------------------------------------------
  alias tmsksteal_game_battler_item_apply item_apply
  def item_apply(user, item)
    tmsksteal_game_battler_item_apply(user, item)
    if enemy? && item.steal_skill? && @result.hit?
      enemy.actions.each do |action|
        skill = $data_skills[action.skill_id]
        next unless skill.can_steal?            # 无法被偷窃スキルまたはアイテム
        next if user.skill_learn?(skill)        # すでに習得済み
        @result.steal_skills.push(skill.id)
        user.learn_steal_skill(skill.id)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 戦闘終了処理
  #--------------------------------------------------------------------------
  alias tmsksteal_game_battler_on_battle_end on_battle_end
  def on_battle_end
    @steal_skills.clear unless enemy?
    tmsksteal_game_battler_on_battle_end
  end
end

#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● スキルの初期化
  #--------------------------------------------------------------------------
  alias tmsksteal_game_actor_init_skills init_skills
  def init_skills
    @steal_skills = []
    tmsksteal_game_actor_init_skills
  end
  #--------------------------------------------------------------------------
  # ● 追加スキルの取得
  #--------------------------------------------------------------------------
  alias tmsksteal_game_actor_added_skills added_skills
  def added_skills
    result = tmsksteal_game_actor_added_skills
    @steal_skills.each {|id| result.push(id) }
    result
  end
  #--------------------------------------------------------------------------
  # ● スキルの習得済み判定
  #--------------------------------------------------------------------------
  alias tmsksteal_game_actor_skill_learn? skill_learn?
  def skill_learn?(skill)
    return true if tmsksteal_game_actor_skill_learn?(skill)
    skill.is_a?(RPG::Skill) && @steal_skills.include?(skill.id)
  end
  #--------------------------------------------------------------------------
  # ○ 盗んだスキルの習得
  #--------------------------------------------------------------------------
  def learn_steal_skill(skill_id)
    @steal_skills.push(skill_id)
  end
end

#==============================================================================
# ■ Window_BattleLog
#==============================================================================
class Window_BattleLog < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 能力強化/弱体の表示
  #--------------------------------------------------------------------------
  alias tmsksteal_window_battlelog_display_changed_buffs display_changed_buffs
  def display_changed_buffs(target)
    tmsksteal_window_battlelog_display_changed_buffs(target)
    display_steal_skill(target)
  end
  #--------------------------------------------------------------------------
  # ○ 盗んだスキルの表示
  #--------------------------------------------------------------------------
  def display_steal_skill(target)
    target.result.steal_skills.each do |id|
      replace_text(sprintf("%sを盗んだ!", $data_skills[id].name))
      wait
    end
  end
end


Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
2
发表于 2019-6-4 17:29:22 | 只看该作者
本帖最后由 soulsaga 于 2019-6-4 17:30 编辑

RUBY 代码复制
  1. [66,67].include?(skill_id) ? true : false
  2. [5.6,7].include?(skill_id) ? true : false
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
3
 楼主| 发表于 2019-6-4 17:40:07 | 只看该作者
soulsaga 发表于 2019-6-4 17:29
[66,67].include?(skill_id) ? true : false
[5.6,7].include?(skill_id) ? true : false[/pre]

报错了,用不了QAQ
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
4
发表于 2019-6-4 17:43:03 | 只看该作者
本帖最后由 soulsaga 于 2019-6-4 19:35 编辑
间桐樱 发表于 2019-6-4 17:40
报错了,用不了QAQ


那么你确定skill_id能用么..

改成这样试试
RUBY 代码复制
  1. [66,67].include?(@id) ? true : false
  2. [5,6,7].include?(@id) ? true : false
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
5
 楼主| 发表于 2019-6-4 19:09:59 | 只看该作者
soulsaga 发表于 2019-6-4 17:43
那么你确定skill_id能用么..

改成这样试试

skill_id能用,论坛里找到另外一个复制技能脚本,就是指定id的,但脚本没有这个完美

前辈这次发的代码没有报错,但是也没有触发qwq
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
6
 楼主| 发表于 2019-6-4 19:11:42 | 只看该作者
soulsaga 发表于 2019-6-4 17:43
那么你确定skill_id能用么..

改成这样试试

这是我在论坛里找到的另一个脚本,但这只能复制目标用过的技能,而且只能复制一个

class Game_Battler < Game_BattlerBase
  
  Steal_Skill_Skill_id = 130 #偷技能的技能的skill_id
  
  attr_accessor :steal_skill_id
  attr_accessor :recent_skill_id
  
  alias initialize_tre initialize
  def initialize
    @steal_skill_id = 0
    @recent_skill_id = 0
    initialize_tre
  end
  
  alias item_apply_tre item_apply
  def item_apply(user, item)
    item_apply_tre(user, item)
    if item.is_a?(RPG::Skill)
      case item.id
      when Steal_Skill_Skill_id
        return if user.skills.include?(self.recent_skill_id)
        user.steal_skill(self.recent_skill_id)
      when 1,2,  76,77,78#可以在这里添加无法被偷的技能
        return
      else
        user.recent_skill_id = item.id
      end
    end
  end
  
  def steal_skill(skill_id)
    if self.is_a?(Game_Actor) and skill_id != 0 and skill_id != 1 and skill_id != 2
      self.forget_skill(self.steal_skill_id)
      self.steal_skill_id = skill_id
      self.learn_skill(skill_id)
    end
  end
  
  alias steal_skill_on_battle_end on_battle_end
  def on_battle_end
    steal_skill_on_battle_end
    if self.is_a?(Game_Actor) and [0,1,2].include?(self.steal_skill_id)
      self.forget_skill(self.steal_skill_id)
    end
  end
  
end
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36397
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
7
发表于 2019-6-4 19:36:08 | 只看该作者
间桐樱 发表于 2019-6-4 19:11
这是我在论坛里找到的另一个脚本,但这只能复制目标用过的技能,而且只能复制一个

class Game_Battler < ...


不小心把逗号写成小数点了..你再试试
RUBY 代码复制
  1. [66,67].include?(@id) ? true : false
  2. [5,6,7].include?(@id) ? true : false

点评

? true : false 是多余的  发表于 2019-6-4 19:56

评分

参与人数 2星屑 +20 +1 收起 理由
VIPArcher + 20 认可答案
间桐樱 + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
8
 楼主| 发表于 2019-6-4 19:49:11 | 只看该作者
soulsaga 发表于 2019-6-4 19:36
不小心把逗号写成小数点了..你再试试
[66,67].include?(@id) ? true : false
[5,6,7].include?(@id) ? tr ...

成功触发了,阿里嘎多前辈OwO
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 19:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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