Project1

标题: 【XP】如何将战斗改成卡片战斗(或者随机技能好了) [打印本页]

作者: 沙之爱罗    时间: 2011-12-23 22:25
标题: 【XP】如何将战斗改成卡片战斗(或者随机技能好了)
http://rpg.blue/forum.php?mod=vi ... =%E5%8D%A1%E7%89%87

这个地址,效果图看不到,下载下来压缩包末端错误,

http://rpg.blue/forum.php?mod=vi ... =%E5%8D%A1%E7%89%87
下载地址无效

http://rpg.blue/forum.php?mod=vi ... =%E5%8D%A1%E7%89%87

这个404


嘛,好嘛,不能问卡片战斗,那么我们换一个问法好了。

怎么做每次战斗都出现一组随机的技能然后每个技能只能使用一次后替换成新的技能?
作者: 小白玩家    时间: 2011-12-23 22:35
卡片战斗有,如果你不介意用VX做游戏的话我,可以下载~↓
http://115.com/file/dn362vkt
作者: px.凤翔九天    时间: 2011-12-23 22:53
你可以在每次进入战斗的时候开启判定:
例如:目前总共有五个技能,每次战斗随机出来两个。
那么,取两次随机数1到5,存在两个变量里。
然后对第一个变量进行处理,记住变量号对应的技能,剩下的4个忘掉。
然后对第二个变量进行处理,记住变量号2对应的技能,剩下的3个忘掉(先排除掉变量1的那个技能编号。)
具体范例我做了一个给你,纯事件版的。操作多点但绝对好使。
要是需要脚本版的再点评。
战斗随机技能范例.rar (186.97 KB, 下载次数: 400)
作者: 沙之爱罗    时间: 2011-12-24 01:20
px.凤翔九天 发表于 2011-12-23 22:53
你可以在每次进入战斗的时候开启判定:
例如:目前总共有五个技能,每次战斗随机出来两个。
那么,取两次随 ...

我要的是在战斗中随机技能,技能用一次就会在技能栏消失,由另外一个技能顶上……而且你这样……暗怪肿么办
作者: px.凤翔九天    时间: 2011-12-24 09:02
本帖最后由 px.凤翔九天 于 2011-12-24 12:01 编辑
沙之爱罗 发表于 2011-12-24 01:20
我要的是在战斗中随机技能,技能用一次就会在技能栏消失,由另外一个技能顶上……而且你这样……暗怪肿么 ...


战斗中技能用一次后消失吗......我理解错了.....
(另:明暗怪貌似这个都没关系吧,处理在敌人队伍中,怎么设定战斗对象肯定是敌人队伍,除非你有添加了猎奇脚本..)
战斗中使用的话,我抽空写个脚本给你吧,这货貌似事件搞不定了.....

好了,搞定了。看下面
  1. #随机技能脚本 v1.0       by px.凤翔九天
  2. #   此脚本目的在于实现战斗中随即使用技能。
  3. #   因此战斗技能分成了两部分:固定技能和随机技能
  4. #   固定技能就是每次战斗肯定有的,随机技能是指每次战斗随机选出的。
  5. #   随机技能使用后换上来的另外一个随机技能设定为不会与刚刚使用的重复。
  6. #   注:固定技能和职业等级技能不冲突,职业等级技能只能在菜单中使用,无法战斗使用。
  7. #       战斗固定技能只在战斗时出现,菜单中无法使用。
  8. #       想要使等级技能在战斗中也可用,修改$set_skill就可以。

  9. $set_skill=[[57],[61],[1,10],[7]]
  10. $random_skill=[[11,56,58,59,60],[62,63,64,10,47],[53,54,55,45,43,33,34],[8,9,31,32,22,23,24]]
  11. $random_num=[2,2,3,4]
  12. #$set_skill指的是每个人的战斗固定技能
  13. #$random_skill指的是每个人的战斗随机技能组合范围
  14. #$random_num指的是每个人的战斗随机技能的选择数
  15. class Scene_Battle
  16.   attr_accessor   :learn_skill_id
  17.   alias main_pre main
  18.   alias start_pre start_phase1
  19.   alias skill_result_pre make_skill_action_result
  20.   alias start_pre5 start_phase5
  21.   def main
  22.     @learn_skill_id=0
  23.     main_pre
  24.   end
  25.   def start_phase1
  26.     start_pre
  27.     for i in 1..4
  28.       skill_id=[]
  29.       $game_party.actors[i-1].skills.clear
  30.       $set_skill[i-1].each{|set|
  31.       $game_party.actors[i-1].learn_skill(set)
  32.       while skill_id.size < $random_num[i-1]
  33.       skill_id.push(rand($random_skill[i-1].size))
  34.       skill_id.uniq!
  35.       end
  36.       skill_id.each{|id| $game_party.actors[i-1].learn_skill($random_skill[i-1][id])}
  37.       }
  38.     end
  39.   end
  40.   def make_skill_action_result
  41.     skill_result_pre
  42.     if @active_battler.is_a?(Game_Actor) and $set_skill[@active_battler.index].include?(@skill.id)==false
  43.     @active_battler.forget_skill(@skill.id)
  44.     loop do
  45.       @learn_skill_id=rand($random_skill[@active_battler.index].size)
  46.       break unless @active_battler.skill_learn?(learn_skill_id) == true or @[email protected]
  47.     end
  48.     @active_battler.learn_skill($random_skill[@active_battler.index][@learn_skill_id])
  49.     end
  50.   end
  51.   def start_phase5
  52.     for i in 1..4
  53.       $game_party.actors[i-1].skills.clear
  54.       for j in $data_classes[$game_party.actors[i-1].class_id].learnings
  55.         if j.level <= $game_party.actors[i-1].level
  56.           $game_party.actors[i-1].learn_skill(j.skill_id)
  57.         end
  58.       end
  59.     end
  60.     start_pre5
  61.   end
  62.   
  63. end

复制代码
吧。
战斗随机技能.rar (189.13 KB, 下载次数: 57)
作者: hitlerson    时间: 2011-12-24 21:40
小白的卡牌游戏好无聊,战斗设计太简单了吧
作者: px.凤翔九天    时间: 2011-12-26 12:57
我的那个东东的原理:开始战斗时清空已学会技能,然后学会固定技能。
然后随即从一堆技能中抽出几个用。
使用一个技能的话,这个技能遗忘,另一个技能换上,且不重复。
这应该是你要的效果吧..或者说我又搞错了...
30行出问题的话,请检查队伍情况,是否是标准的队伍模式,有没有添加宠物脚本,收服怪兽脚本这类影响队伍构成的东西。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1