查看: 1824|回复: 6

[已经解决] _(:з」∠)_想要点技能直接释放技能的效果

[复制链接]
梦石
0
星屑
1446
在线时间
6552 小时
注册时间
2010-12-30
回帖
8655
发表于 2014-11-17 14:37:00 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 MeowSnow 于 2014-11-22 14:43 编辑

_(:з」∠)_就是战斗菜单中的攻击、技能、道具,那个【技能】,不跳出技能选择,每个人只有一个技能。
_(:з」∠)_每个人物我尽量安排一个技能的,不过为了避免冲突还是自动释放最新学到的那个技能吧~
_(:з」∠)_VA的话TP和MP是分开算的…菜单中也有【特技】和【魔法】两个选项…也就是说还有的角色能释放两个技能…
_(:з」∠)_想要酱紫的效果。

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2014-11-17 15:14:25 | 显示全部楼层
其实不止两种的嗷……指令会根据技能类型添加下去

点评

嗯……我的脚本力还不是很够,要做这个应该不是做不出来,不过最近比较忙不大能抽出时间研究。你要是不急可以再等几天  发表于 2014-11-21 14:28
_(:з」∠)_真是个悲伤的故事,只好让大家选技能的时候多按个步骤了…  发表于 2014-11-21 14:23
因为我只有大概的思路,还没有真的实现……思路的可行性没有确保,所以才没法给你满意的答案。  发表于 2014-11-21 14:21
_(:з」∠)_碉堡的VA……话说都有这设置了为啥不直接提供我说的效果呢……  发表于 2014-11-21 14:18
在用语的技能类型那儿  发表于 2014-11-21 14:13
回复

使用道具 举报

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2014-11-21 14:26:18 | 显示全部楼层
思路的话大致是这样的。

重定义有关skill指令的方法,让它变为直接施放技能,而不是打开技能选择窗口,

然后用技能id对应角色id的方法,来施放对应技能。

------------------------------------------------------------------------------
另外一个思路是伪造一个技能指令,这个指令的实质等同于另一种“攻击”指令
它的效果假设是使用10号技能,
然后10号技能的效果是公共事件,强制战斗指令,令使用者使用与自己人物id对应的id的技能。
比如角色1对应11号技能;
同理把“魔法”也伪造出来
从101号技能开始对应。

点评

_(:з」∠)_原来如此,那就拜托了  发表于 2014-11-21 14:32
得看你的那个横版战斗系统对“战斗指令”这块是什么个处理情况了,不过就算有一定的不兼容也很好排除的。  发表于 2014-11-21 14:31
_(:з」∠)_不急不急,然后还在用的不知道哪来的横版脚本是这么个工程:http://pan.baidu.com/s/1bnzs6uF  发表于 2014-11-21 14:29
_(:з」∠)_哦哦哦,话说这么弄会和其他战斗脚本冲突吗,还弄个不知道哪来的横版战斗的脚本  发表于 2014-11-21 14:28
回复

使用道具 举报

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
回帖
6325
发表于 2014-11-21 14:52:40 | 显示全部楼层
豆豆气模式?还在开发中

点评

_(:з」∠)_豆豆气是什么?只是每个角色只打算安排一两个技能,不想让玩家多摁个步骤啦。  发表于 2014-11-21 14:55
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复

使用道具 举报

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2014-11-22 13:22:44 | 显示全部楼层
本帖最后由 三途亚梦 于 2014-11-22 14:27 编辑

我大致上是按照我说的第二种思路写出来了。
实测没有问题,如果碰到什么问题请回复。

PS:我被测试人物的头像吓得不得不吃了桶泡面……

点击展开/收起[pre lang="ruby" line="1"]#==============================================================================
# +++ ID对应型的技能无选择施放 +++
#==============================================================================
# 作者 By 三途亚梦
#  -- 本脚本来自 https://rpg.blue 使用或转载请保留以上信息。
#==============================================================================
#
# ★ 该脚本内容使用范围较小,请在使用前认真阅读使用说明。
# 该脚本的效果是注释掉默认脚本的“技能”指令,添加了两个新的指令来施放技能。
# 指令的名字会根据技能的名字改变;
# 当角色没有习得对应的“添加技能类型”时,对应的指令在战斗中是隐藏的;
# 当技能被禁用或不满足消耗时,指令会变灰;
# 每个角色使用的技能按照:
# 该人物在数据库中的ID + 技能类型对应的加数
# 的公式得到人物对应施展的技能。
# 那么,请务必对自己的技能数据库做出合适的调整和管理。
# 默认的效果是为:
# 艾里克(1号角色)会使用 特技-剧毒之雾(11号技能)和 魔法-自残(101号技能)
# 娜塔丽(2号角色)会使用 特技-炫目之光(12号技能)和 魔法-八相(102号技能)
# 以上的技能类型和角色对应的技能自身的类型没有直接关系,
# 可以理解成,添加技能类型[特技],该人物将学会他的第一个技能,
# 添加技能类型[魔法],该人物将学会他的第二个技能。
# ★ 这算是我作为脚本新人的第一个脚本,所以可能没有多好
# ★ 如果想要为角色添加第三或者更多的技能,可以参照脚本的写法仿制更多的指令出来。
#
#==============================================================================
# ★ 设定部分
#==============================================================================
module AmuSrtskill
  Skill_Addend = 10
  Magic_Addend = 100
end

class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 判定是否能使用快速技能
  #--------------------------------------------------------------------------
  def amusrtsk_usable? #特技
    usable?($data_skills[@actor_id + AmuSrtskill::Skill_Addend])
  end
  def amusrtma_usable? #魔法
    usable?($data_skills[@actor_id + AmuSrtskill::Magic_Addend])
  end
end

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 判断是否持有某个技能类型
  #--------------------------------------------------------------------------
#~   def has_skill_type?(stype_id)
#~     features_set(FEATUR_STYPE_HAS).include?(stype_id)
#~   end
  #--------------------------------------------------------------------------
  # ● 快速技能
  #--------------------------------------------------------------------------
  def amusrt_skill #特技
    return $data_skills[@actor_id + AmuSrtskill::Skill_Addend]
  end
  def amusrt_magic #魔法
    return $data_skills[@actor_id + AmuSrtskill::Magic_Addend]
  end
end

class Window_ActorCommand < Window_Command
  #--------------------------------------------------------------------------
  # ● 生成指令列表
  #--------------------------------------------------------------------------
  def make_command_list
    return unless @actor
    add_attack_command
    add_amusrtsk_command if @actor.added_skill_types.include?(1)
    add_amusrtma_command if @actor.added_skill_types.include?(2)
#~     add_skill_commands
    add_guard_command
    add_item_command
  end
  #--------------------------------------------------------------------------
  # ● 添加快速技能指令
  #--------------------------------------------------------------------------
  def add_amusrtsk_command
    add_command($data_skills[@actor.id + AmuSrtskill::Skill_Addend].name, :amusrtsk, @actor.amusrtsk_usable?)
  end
  def add_amusrtma_command
    add_command($data_skills[@actor.id + AmuSrtskill::Magic_Addend].name, :amusrtma, @actor.amusrtma_usable?)
  end
end

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ● 生成角色指令窗口
  #--------------------------------------------------------------------------
  def create_actor_command_window
    @actor_command_window = Window_ActorCommand.new
    @actor_command_window.viewport = @info_viewport
    @actor_command_window.set_handler(:attack, method(:command_attack))
    @actor_command_window.set_handler(:amusrtsk, method(:command_amusrtsk))
    @actor_command_window.set_handler(:amusrtma, method(:command_amusrtma))
    @actor_command_window.set_handler(:skill,  method(:command_skill))
    @actor_command_window.set_handler(:guard,  method(:command_guard))
    @actor_command_window.set_handler(:item,   method(:command_item))
    @actor_command_window.set_handler(:cancel, method(:prior_command))
    @actor_command_window.x = Graphics.width
  end
  #--------------------------------------------------------------------------
  # ● 快速技能指令
  #--------------------------------------------------------------------------
  def command_amusrtsk
    @skill = BattleManager.actor.amusrt_skill
    BattleManager.actor.input.set_skill(@skill.id)
    BattleManager.actor.last_skill.object = @skill
    if !@skill.need_selection?
      next_command
    elsif @skill.for_opponent?
      select_enemy_selection
    else
      select_actor_selection
    end
  end
  def command_amusrtma
    @skill = BattleManager.actor.amusrt_magic
    BattleManager.actor.input.set_skill(@skill.id)
    BattleManager.actor.last_skill.object = @skill
    if !@skill.need_selection?
      next_command
    elsif @skill.for_opponent?
      select_enemy_selection
    else
      select_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # ● 角色“取消”
  #--------------------------------------------------------------------------
  def on_actor_cancel
    @actor_window.hide
    case @actor_command_window.current_symbol
    when :skill
      @skill_window.activate
    when :amusrtsk
      @actor_command_window.activate
    when :amusrtma
      @actor_command_window.activate
    when :item
      @item_window.activate
    end
  end
  #--------------------------------------------------------------------------
  # ● 敌人“取消”
  #--------------------------------------------------------------------------
  def on_enemy_cancel
    @enemy_window.hide
    case @actor_command_window.current_symbol
    when :attack
      @actor_command_window.activate
    when :amusrtsk
      @actor_command_window.activate
    when :amusrtma
      @actor_command_window.activate
    when :item
      @item_window.activate
    end
  end
end[/pre]
   

点评

_:(´ཀ`」 ∠):_哦哦哦拜托版主结贴了,这个贴的一切问题都解决了~  发表于 2014-11-22 14:44
看图书馆FAQ啦~  发表于 2014-11-22 14:29
_:(´ཀ`」 ∠):是删@skill之前还是@skill也一起删?删了之前的,还是报错的说  发表于 2014-11-22 14:10
108行没删干净  发表于 2014-11-22 13:57
嗯,数据库中空着就可以,你可以自己调整加数来消减数据库空白  发表于 2014-11-22 13:38

评分

参与人数 1梦石 +2 收起 理由
taroxd + 2 看到这种代码就想元编程的我果然是有病.

查看全部评分

回复

使用道具 举报

梦石
0
星屑
1446
在线时间
6552 小时
注册时间
2010-12-30
回帖
8655
 楼主| 发表于 2014-11-22 13:33:12 | 显示全部楼层
三途亚梦 发表于 2014-11-22 13:22
我大致上是按照我说的第二种思路写出来了。
实测没有问题,如果碰到什么问题请回复。

_:(´ཀ`」 ∠):_呜呜呜,不知道是不是和横版脚本冲突了,
说是108行的问题,
傲游截图20141122133135.png
_:(´ཀ`」 ∠):还有这个是我在用的不知道哪搞来的横版战斗脚本:http://pan.baidu.com/s/1bnzs6uF

点评

5楼那段又跑出来了……这好像是网站自身的问题……  发表于 2014-11-22 14:26
_(:з」∠)_一定是我使用的方法不对……还是不行……  发表于 2014-11-22 14:22
呃,@skill = Battle…… 这样的样子就是对的。5楼我我删改了一遍应该可以了。  发表于 2014-11-22 14:16
_:(´ཀ`」 ∠):_呜呜呜还是108行报错  发表于 2014-11-22 14:08
把@skill前面那一串移除掉就可以了,如果有类似报错,都做一样的处理。  发表于 2014-11-22 13:37
回复

使用道具 举报

梦石
0
星屑
1446
在线时间
6552 小时
注册时间
2010-12-30
回帖
8655
 楼主| 发表于 2014-11-22 14:33:36 | 显示全部楼层
三途亚梦 发表于 2014-11-22 13:22
我大致上是按照我说的第二种思路写出来了。
实测没有问题,如果碰到什么问题请回复。

_:(´ཀ`」 ∠):_啊……找到问题了……之后还有几处自动加链接的……我只按提示改了108行,都删掉就好了……
_:(´ཀ`」 ∠):_抱歉我就是这个程度的脚本白痴……
_:(´ཀ`」 ∠):_话说还有个问题是无论怎么设置都只有一个技能的说,已经给人物在响应位置放了分别为特技和魔法的技能了,但是战斗起来只显示一个的说。

点评

_(:з」∠)_哦哦哦!一切问题都没了!赞赞哒!  发表于 2014-11-22 14:41
确定给人物 添加技能类型[魔法] 了吗?  发表于 2014-11-22 14:40
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部