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

Project1

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

[已经解决] 求指定角色战斗不能后直接游戏结束脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
190 小时
注册时间
2011-2-19
帖子
147
跳转到指定楼层
1
发表于 2013-1-10 20:48:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 空の翼 于 2013-1-11 13:22 编辑

想过个护送任务之类的
求个能指定某些角色,一旦有了战斗不能状态后,就直接游戏结束的脚本

P.S.在好多日站找了也看不到想要的,可能是这种脚本很简单吧,
      但是本人脚本小白啊{:2_271:}

Lv1.梦旅人

死者

梦石
0
星屑
64
在线时间
78 小时
注册时间
2012-11-9
帖子
139
2
发表于 2013-1-10 20:57:57 | 只看该作者
...这用公共事件应该可以做到吧...
高中好烦......
成绩要掉不掉的令人不安。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
190 小时
注册时间
2011-2-19
帖子
147
3
 楼主| 发表于 2013-1-10 20:59:32 | 只看该作者
BellumMagicae 发表于 2013-1-10 20:57
...这用公共事件应该可以做到吧...

你要人一场场战斗还有各种战斗外的伤害都要设置一次吗{:2_271:}

点评

其实我还想实现某些主角绝对不能死之类的系统,虽然只是一直开着一个并行问题不大... 实在没就只好这样了  发表于 2013-1-10 21:12
设置角色加入时打开那个开关应该就可以,离开或者不是任务时关闭,不关只要并行处理的事件不是很多问题应该不大...  发表于 2013-1-10 21:08
要一直开着这公用事件吗,虽然问题应该不大  发表于 2013-1-10 21:06
...表示是指在公共事件里并行处理设置用分支条件设置角色A战斗不能时游戏结束...打开该开关的情况下。  发表于 2013-1-10 21:03
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

4
发表于 2013-1-10 21:10:43 | 只看该作者
  1. module BattleManager
  2.   
  3.   #--------------------------------------------------------------------------
  4.   # ● 判定胜败
  5.   #--------------------------------------------------------------------------
  6.   def self.judge_win_loss
  7.     if @phase
  8.       return process_defeat  if $game_actors[VIPid].state?(1)
  9.       return process_abort   if $game_party.members.empty?
  10.       return process_defeat  if $game_party.all_dead?
  11.       return process_victory if $game_troop.all_dead?
  12.       return process_abort   if aborting?
  13.     end
  14.     return false
  15.   end
  16.   
  17. end
复制代码
插入main前使用,里面的VIPid设置成你需要的角色ID,就是数据库里面角色的序号。

点评

复数就是[1,2,5]这样?  发表于 2013-1-10 21:13
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

5
发表于 2013-1-10 21:17:16 | 只看该作者
本帖最后由 Sion 于 2013-1-10 21:19 编辑

复数的话这样吧,你可以自己根据语法扩展呀。之前写错了,应该是其中一个挂了就结束吧。改成这样
  1. if $game_actors[1].state?(1) || $game_actors[2].state?(1) || $game_actors[3].state?(1)
复制代码

点评

试了一下,发现在地图时直接赋予战斗不能状态还是没效果?  发表于 2013-1-10 21:27
脚本小白一只OLT 非常感谢~!  发表于 2013-1-10 21:18
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

6
发表于 2013-1-10 21:32:01 | 只看该作者
噢,真是个危险的游戏,走着走着就挂了- -b。那么就这样吧
  1. module BattleManager

  2.   def self.judge_win_loss
  3.     if @phase
  4.       return process_defeat  if $game_actors[VIPid].state?(1)
  5.       return process_abort   if $game_party.members.empty?
  6.       return process_defeat  if $game_party.all_dead?
  7.       return process_victory if $game_troop.all_dead?
  8.       return process_abort   if aborting?
  9.     end
  10.     return false
  11.   end
  12.   
  13. end

  14. class Scene_Base
  15.   
  16.   def check_gameover
  17.     SceneManager.goto(Scene_Gameover) if $game_party.all_dead? || $game_actors[VIP1id].state?(1) || game_actors[VIP2id].state?(1)
  18.   end
  19.   
  20. end
复制代码

点评

看不太懂,上下两个都要写入ID吗?  发表于 2013-1-10 21:38
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

7
发表于 2013-1-10 21:39:49 | 只看该作者
经过测试我发现有一些问题,稍后我写好以后再把代码发上来。

点评

嗯,发现公用事件并行在战斗时是没效果的。3Q了XD  发表于 2013-1-10 21:42
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

8
发表于 2013-1-10 22:14:06 | 只看该作者
本帖最后由 Sion 于 2013-1-29 18:17 编辑

RUBY 代码复制
  1. # Mini_Vip_System by Sion
  2. # 66rpg.com 转载请注明出处
  3. # 说明:在角色备注里加入<vip> 则当vip附加战斗不能状态时Gameover
  4.  
  5.  
  6. module BattleManager
  7.  
  8.   def self.judge_win_loss #覆盖默认方法
  9.     if @phase
  10.       return process_vip_dead  if $game_party.vip_dead?
  11.       return process_abort     if $game_party.members.empty?
  12.       return process_defeat    if $game_party.all_dead?
  13.       return process_victory   if $game_troop.all_dead?
  14.       return process_abort     if aborting?
  15.     end
  16.     return false   
  17.   end
  18.  
  19.   def self.process_vip_dead
  20.     $game_message.add(sprintf("VIP挂了,任务失败……"))
  21.     wait_for_message
  22.     SceneManager.goto(Scene_Gameover)
  23.     battle_end(2)
  24.     return true
  25.   end
  26.  
  27. end
  28.  
  29.  
  30. class Scene_Base
  31.  
  32.   def check_gameover #覆盖默认方法
  33.     SceneManager.goto(Scene_Gameover) if $game_party.all_dead?
  34.     SceneManager.goto(Scene_Gameover) if $game_party.vip_dead?
  35.   end
  36.  
  37. end
  38.  
  39.  
  40. class Game_Party
  41.  
  42.   def vip_dead?
  43.     $game_party.dead_members.each do |actor| actor.is_vip?
  44.       return true if actor.is_vip?
  45.     end
  46.     return false
  47.   end
  48.  
  49. end
  50.  
  51.  
  52. class Game_Actor
  53.  
  54.   def is_vip?
  55.     object = $data_actors[@actor_id]
  56.     object.note.each_line do |line|
  57.       return true if line.include?("<vip>")
  58.     end
  59.     return false
  60.   end
  61.  
  62. end

再次优化了代码,应该算是完成了吧。

点评

没冲突了,两种附加状态都行了(伤害致死没测试,但应该也没问题),非常感谢XD  发表于 2013-1-11 13:22
战斗和地图时直接赋予好像没问题,就是和那个脚本冲突了(明明是不同结构的脚本?  发表于 2013-1-10 22:28
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
190 小时
注册时间
2011-2-19
帖子
147
9
 楼主| 发表于 2013-1-10 22:24:16 | 只看该作者
Sion 发表于 2013-1-10 22:14

嗯,可以了。
虽然好像和这个脚本冲突了
http://rpg.blue/forum.php?mod=viewthread&tid=220462

但是还是感谢大大XD

点评

已经改好了,第二次写尝试脚本,应该没bug了。不足之处还请见谅哈哈  发表于 2013-1-11 09:24
可以了?……我又测试了一下好像有点问题,暂时不知道是怎么回事。今天要睡觉了,明天再弄吧。  发表于 2013-1-10 22:25
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 17:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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