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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: bonnyhorse
打印 上一主题 下一主题

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
6865
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

11
发表于 2011-1-10 19:39:11 | 只看该作者
  1. module Hzhj
  2.   module_function
  3.   @@hzhj_one = {57=>4,58=>3,59=>2,60=>1}
  4.   @@hzhj_all = {58=>4,59=>3}
  5.   @@hzhj_all_count = {}
  6.   def one
  7.     return @@hzhj_one
  8.   end
  9.   def all
  10.     return @@hzhj_all
  11.   end
  12.   def count
  13.     return @@hzhj_all_count
  14.   end
  15. end
  16. class Game_Actor < Game_Battler
  17.   attr_reader :hzhj_skill_count
  18.   alias hzhj_old_hzhj_skill_count_initialize initialize
  19.   def initialize(*args)
  20.     @hzhj_skill_count = {}
  21.     hzhj_old_hzhj_skill_count_initialize(*args)
  22.   end
  23.   alias hzhj_old_hzhj_skill_count_skill_can_use? skill_can_use?
  24.   def skill_can_use?(skill_id)
  25.     if Hzhj.all[skill_id] != nil
  26.       if Hzhj.count[skill_id] != nil
  27.         if Hzhj.count[skill_id] >= Hzhj.all[skill_id]
  28.           return false
  29.         end
  30.       end
  31.     end
  32.     if Hzhj.one[skill_id] != nil
  33.       if @hzhj_skill_count[skill_id] != nil
  34.         if @hzhj_skill_count[skill_id] >= Hzhj.one[skill_id]
  35.           return false
  36.         end
  37.       end
  38.     end
  39.     return hzhj_old_hzhj_skill_count_skill_can_use?(skill_id)
  40.   end
  41. end
  42. class Game_Battler
  43.   alias hzhj_old_hzhj_skill_count_skill_effect skill_effect
  44.   def skill_effect(*args)
  45.     if $game_temp.in_battle
  46.       user = args[0]
  47.       if user.is_a?(Game_Actor)
  48.         skill = args[1]
  49.         if Hzhj.all[skill.id] != nil
  50.           if Hzhj.count[skill.id].nil?
  51.             Hzhj.count[skill.id] = 1
  52.           else
  53.             Hzhj.count[skill.id] += 1
  54.           end
  55.         end
  56.         if Hzhj.one[skill.id] != nil
  57.           if user.hzhj_skill_count[skill.id].nil?
  58.             user.hzhj_skill_count[skill.id] = 1
  59.           else
  60.             user.hzhj_skill_count[skill.id] += 1
  61.           end
  62.         end
  63.       end
  64.     end
  65.     return hzhj_old_hzhj_skill_count_skill_effect(*args)
  66.   end
  67. end
  68. class Scene_Battle
  69.   alias hzhj_old_hzhj_skill_count_main main
  70.   def main
  71.     Hzhj.count.clear
  72.     for actor in $game_party.actors
  73.       actor.hzhj_skill_count.clear
  74.     end
  75.     hzhj_old_hzhj_skill_count_main
  76.   end
  77. end
复制代码
开头的这一行
  @@hzhj_one = {57=>4,58=>3,59=>2,60=>1}
里面的57 58 59 60 是技能ID
里面的 4 3 2 1 是该技能在每场战斗中每个角色可以使用的次数.是针对某个角色.
再看下面的这一行.
  @@hzhj_all = {58=>4,59=>3}
里面的58 59 是技能的ID
里面的 4 3 是该技能在每场战斗中所有角色加起来可以使用的次数.
自己照着格式改照着格式添吧.
这段脚本只对角色有效.默认战斗系统测试了下没发现问题.别的就不知道了.

评分

参与人数 1星屑 +400 收起 理由
fux2 + 400 追加脚本费

查看全部评分












你知道得太多了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 09:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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