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

Project1

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

[已经解决] 怎么限定技能每场战斗中的使用次数?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
42 小时
注册时间
2009-7-7
帖子
11
跳转到指定楼层
1
发表于 2011-1-7 21:24:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是比如说一个技能在第一次战斗中使用了一次以后就不能使用了,但是到了下一次战斗又可以使用,但还是只能在那次战斗中使用一次,也就是在每次战斗中只能使用一次,这要怎么样才可以做到阿?

Lv1.梦旅人

梦石
0
星屑
211
在线时间
905 小时
注册时间
2010-9-6
帖子
3229
2
发表于 2011-1-7 21:59:52 | 只看该作者
在右上角搜索状态冷却的脚本,然后就可以做出你所需要的效果了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
42 小时
注册时间
2009-7-7
帖子
11
3
 楼主| 发表于 2011-1-7 22:32:38 | 只看该作者
本帖最后由 bonnyhorse 于 2011-1-7 22:33 编辑

回复 stevenrock 的帖子

搜索不到状态冷却的脚本
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
189 小时
注册时间
2009-12-15
帖子
343
4
发表于 2011-1-8 10:01:55 | 只看该作者
使用特技后加一个状态A,同时在特技里增加公共事件判断,有状态A时就不能使用该特技,然后在状态A里设定战斗结束时解除
应该可以吧
第二部游戏 《求职大作战》http://rpg.blue/thread-165630-1-1.html
第一部游戏 《天宇传奇》http://rpg.blue/thread-140339-1-1.html
柳柳新人/进阶教程,视频全集 http://rpg.blue/thread-164472-1-1.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
42 小时
注册时间
2009-7-7
帖子
11
5
 楼主| 发表于 2011-1-8 18:58:13 | 只看该作者
回复 terry_zhp 的帖子
使用特技后加一个状态A,同时在特技里增加公共事件判断,有状态A时就不能使用该特技,
有状态A时就不能使用该特技,那个不能使用该特技要怎么设置呢?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4397
在线时间
1910 小时
注册时间
2010-12-21
帖子
2365
6
发表于 2011-1-8 19:09:29 | 只看该作者
本帖最后由 黄亦天 于 2011-1-8 19:09 编辑

回复 bonnyhorse 的帖子

我倒是倾向于另一种方法,先设置一个同名,但是不能使用的技能,
原先的技能运行公共事件,某开关打开,某变量+1,条件分歧当此变量为XX时,习得那个不能使用的技能,忘记目前已有的那个技能。之后再设定一个公共事件,处理方式是并行处理,开关是刚才那个开关,内容是把那个变量带入0,忘记不能使用的那个技能,习得可以使用的那个技能,之后关闭这个开关。
这样就OK了~~
绿坝娘素材库企划

素材库获取方法:暂时中止,需求者私聊。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
129 小时
注册时间
2009-3-29
帖子
432
7
发表于 2011-1-8 20:48:39 | 只看该作者
本帖最后由 失去的记忆 于 2011-1-8 20:52 编辑

你们说的太复杂了....新人听不懂得啦...还是我来吧!
1.脚本Scene_Battle 4 (437行)
#--------------------------------------------------------------------------
  # ● 刷新画面 (主回合步骤 6 : 刷新)
  #--------------------------------------------------------------------------
  def update_phase4_step6
    @skill = $data_skills[@active_battler.current_action.skill_id]
    if @skill.id==57
      $一次性技能=true
    end

    # 清除强制行动对像的战斗者
    $game_temp.forcing_battler = nil
    # 公共事件 ID 有效的情况下
2.脚本Scene_Battle 1 (131行)
#--------------------------------------------------------------------------
  # ● 战斗结束
  #     result : 結果 (0:胜利 1:失败 2:逃跑)
  #--------------------------------------------------------------------------
  def battle_end(result)
    # 清除战斗中标志
    $game_temp.in_battle = false
    # 清除全体同伴的行动
    $game_party.clear_actions
    # 解除战斗用状态
    for actor in $game_party.actors
      actor.remove_states_battle
    end
    # 清除敌人
    $game_troop.enemies.clear
    # 调用战斗返回调用
    if $game_temp.battle_proc != nil
      $game_temp.battle_proc.call(result)
      $game_temp.battle_proc = nil
    end
    # 切换到地图画面
    $一次性技能=false
    $scene = Scene_Map.new
  end
3.脚本Game_Battler 3 (22行)
# 沉默状态的情况下、物理特技以外的特技不能使用
    if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
      return false
    end
    if $data_skills[skill_id].id==57 and $一次性技能
      return false
    end

    # 获取可以使用的时机

OK!搞定 不懂得问我...这个太简单了 不要把它想复杂了啊:loveliness:
PS:那个57就是技能ID 自己改.. 自己找相应的地方添加红色的代码即可

点评

而且不用全局变量吧?  发表于 2011-1-8 21:22
而且不用变量吧?  发表于 2011-1-8 21:21
的确,这样可以,但是如果LZ要使用多次或有多个技能呢?  发表于 2011-1-8 21:21

评分

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

查看全部评分

做一个游戏也用这么长时间........
PS:说我自己呢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
42 小时
注册时间
2009-7-7
帖子
11
8
 楼主| 发表于 2011-1-8 21:32:45 | 只看该作者
本帖最后由 bonnyhorse 于 2011-1-8 21:36 编辑

回复 失去的记忆 的帖子

恩,明白了,很感谢,但是我这样的技能有好几个,要怎么搞?
另外,这个原理你可不可以告诉我呀
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
129 小时
注册时间
2009-3-29
帖子
432
9
发表于 2011-1-10 14:18:29 | 只看该作者
bonnyhorse 发表于 2011-1-8 21:32
回复 失去的记忆 的帖子

恩,明白了,很感谢,但是我这样的技能有好几个,要怎么搞?

有好几个?? 这好办!
你把那个57变成一个数组,然后想添加多少就添加多少!
PS:一个帖子只能发一个问题,要想继续问请继续发帖!
做一个游戏也用这么长时间........
PS:说我自己呢
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
574
在线时间
169 小时
注册时间
2008-10-29
帖子
431
10
发表于 2011-1-10 15:37:28 | 只看该作者
本帖最后由 clap_pl 于 2011-1-10 15:49 编辑

有个简单一点的方法
你找到 def skill_can_use?(skill_id) 这个方法
比如你的1号技能(技能数据库中的第一个)
使用次数用变量1(变量列表中的第一个)来控制,
当使用次数大于5时,就不能使用了。

在 def skill_can_use?(skill_id) 加入以下语句
#================================
if skill_id == 1
return false if $game_variables[1]>=5
end
#================================
同理 如果是第二号技能 次数是6次 用第二个变量控制 就再加上一句
#=======================================
if skill_id == 2
return false if $game_variables[2]>=6
end
#=========================================
以此类推
当然 你需要在这种技能的设定时 附带一个公共事件 让相应的变量+1
如第一个技能 使用后 要附带一个公共事件 让变量1 增加1


#=========================================

最后 你需要在战斗前 将所有这种变量清零
你可以用事件做 比如每场战斗前都让这些变量清零
不过对于随机地雷战 就麻烦了
#=======================================

最简单有效而且一劳永逸的办法 就是在
Scene_Battle
里加上一句
找到如下内容
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
在后面加上一句
$game_variables[1] = 0 #清0第一个变量
$game_variables[2] = 0 #清0第二个变量

#============================
如果你的变量是连续的一系列变量 比如3到99 都是用来控制使用次数的,那就简单了
你写上
for i in 3..99 #注意 是2个点
$game_variable=0
end
#=============================
以此类推




回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 18:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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