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

Project1

 找回密码
 注册会员
搜索

如果队员未满4个则直接加入,如满则询问要替换哪一个?

查看数: 2472 | 评论数: 13 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2011-4-13 15:25

正文摘要:

想设计一个拥有多同伴的游戏,但是不清楚要如何实现 “ 如果队员未满4个则直接加入,如满则询问要替换哪一个?” 这一功能? 脚本自己不太会写,网站上也没找到类似的相关脚本或设置法~ 大多都是替换队员顺序,如果 ...

回复

沙漠点灰 发表于 2011-4-14 17:00:18
回复 英顺的马甲 的帖子
个人认为加在 Game_Party 的 add_actor 比较方便

的确!不过要考虑到脚本之间的冲突的话,add_actor是很多人下手的目标,修改事件的
解释器冲突可能性很小
影子骑士 发表于 2011-4-13 19:56:37
提示: 作者被禁止或删除 内容自动屏蔽
影子骑士 发表于 2011-4-13 19:43:34
提示: 作者被禁止或删除 内容自动屏蔽
英顺的马甲 发表于 2011-4-13 19:38:29
回复 影子骑士 的帖子

最终脚本:
  1. class Game_Party
  2.   def add_actor(actor_id)
  3.     actor = $game_actors[actor_id]
  4.     if @actors.size < 4 and not @actors.include?(actor)
  5.       @actors.push(actor)
  6.       $game_player.refresh
  7.     else not @actors.include?(actor)
  8.       a = []
  9.       @actors.each{|s|a.push(s.name)}
  10.       cmd_win = Window_Command.new(160,a)
  11.       cmd_win.x = 320 - cmd_win.width/2
  12.       cmd_win.y = 240 - cmd_win.height/2
  13.       hlp_win = Window_Base.new(cmd_win.x-80,cmd_win.y-64,320,64)
  14.       hlp_win.contents = Bitmap.new(288,32)
  15.       hlp_win.contents.draw_text(0,0,288,32,"要让#{actor.name}代替谁?")
  16.       loop do
  17.         Graphics.update
  18.         Input.update
  19.         cmd_win.update
  20.         if Input.trigger?(Input::C)
  21.           name1 = @actors[cmd_win.index].name
  22.           $game_system.se_play($data_system.decision_se)
  23.           @actors.delete(@actors[cmd_win.index])
  24.           @actors.push(actor)
  25.           $game_player.refresh
  26.           hlp_win.visible=cmd_win.visible=false
  27.           $game_temp.message_window_showing = true
  28.           $game_temp.message_text = "已经把#{name1}换为#{actor.name}"
  29.           break
  30.         end
  31.       end
  32.       cmd_win.dispose
  33.       hlp_win.dispose
  34.     end
  35.   end
  36. end
复制代码

点评

哈~ 找到了用事件做到的方法,消除完事件后紧接着自己再设定个 “显示文章” 然后写上 “某某某离开了队伍……” 就可以实现了~ ^_^ 搞定!  发表于 2011-4-13 20:26
不是替换了,而是剧情进展到某一时间段有个角色因剧情需要而离开队伍,这种单独的离开~ 要如何设定?  发表于 2011-4-13 20:21
敢问前辈,如果想让队员离开的情况下也有这么一个提示 如:“队员某某离开了队伍……” 要如何设置?  发表于 2011-4-13 20:20
英顺的马甲 发表于 2011-4-13 19:29:48
本帖最后由 英顺的马甲 于 2011-4-13 19:36 编辑

回复 影子骑士 的帖子

sry,摆了个乌龙if Input.trigger?(Input::C)下面插入

  1. name1 = @actors[cmd_win.index].name
复制代码
然后break上面替换为
  1. hlp_win.visible=cmd_win.visible=false
  2. $game_temp.message_window_showing = true
  3. $game_temp.message_text = "已经把#{name1}]换为#{actor.name}"
复制代码
���
英顺的马甲 发表于 2011-4-13 19:02:53
本帖最后由 英顺的马甲 于 2011-4-13 19:03 编辑

回复 影子骑士 的帖子

  1. $game_temp.message_window_showing = true
  2. $game_temp.message_text = "已经把#{$game_party.actors[window_c.index].name}]换为#{$game_actors[@parameters[0]].name}"
复制代码
加在“break”上面
影子骑士 发表于 2011-4-13 19:00:41
提示: 作者被禁止或删除 内容自动屏蔽
英顺的马甲 发表于 2011-4-13 18:34:02
$game_temp.message_text = "已经把#{$game_party.actors[window_c.index].name}]换为#{$game_actors[@parameters[0]].name}"
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-25 18:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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