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

Project1

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

[已经解决] 如果队员未满4个则直接加入,如满则询问要替换哪一个?

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
20 小时
注册时间
2011-4-6
帖子
24
跳转到指定楼层
1
发表于 2011-4-13 15:25:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv3.寻梦者

酱油的

梦石
0
星屑
1030
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

2
发表于 2011-4-13 15:50:04 | 只看该作者
有一個東西叫角色倉庫——在首頁上——當然或者并不完全合你心意,但是近來求寫腳本的大多都悲劇了~
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
20 小时
注册时间
2011-4-6
帖子
24
3
 楼主| 发表于 2011-4-13 17:14:13 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
4
发表于 2011-4-13 18:13:02 | 只看该作者
本帖最后由 英顺的马甲 于 2011-4-13 18:20 编辑

是不是这样?
  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,cmd_win.y-64,160,64)
  14.       hlp_win.contents = Bitmap.new(128,32)
  15.       hlp_win.contents.draw_text(0,0,128,32,"要将谁替换掉?")
  16.       loop do
  17.         Graphics.update
  18.         Input.update
  19.         cmd_win.update
  20.         if Input.trigger?(Input::C)
  21.           $game_system.se_play($data_system.decision_se)
  22.           @actors.delete(@actors[cmd_win.index])
  23.           @actors.push(actor)
  24.           $game_player.refresh
  25.           break
  26.         end
  27.       end
  28.       cmd_win.dispose
  29.       hlp_win.dispose
  30.     end
  31.   end
  32. end
复制代码
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
5
发表于 2011-4-13 18:16:17 | 只看该作者
本帖最后由 沙漠点灰 于 2011-4-13 18:21 编辑

回复 影子骑士 的帖子
  1. #==============================================================================
  2. # ■ Interpreter (分割定义 8)
  3. #------------------------------------------------------------------------------
  4. #  执行事件命令的解释器。本类在 Game_System 类
  5. # 和 Game_Event 类的内部使用。
  6. #==============================================================================

  7. class Interpreter
  8.   #--------------------------------------------------------------------------
  9.   # ● 角色的替换
  10.   #--------------------------------------------------------------------------
  11.   def command_129
  12.     # 获取角色
  13.     actor = $game_actors[@parameters[0]]
  14.     # 角色有效的情况下
  15.     if actor != nil
  16.       # 操作分支
  17.       if @parameters[1] == 0
  18.         if @parameters[2] == 1
  19.           $game_actors[@parameters[0]].setup(@parameters[0])
  20.         end
  21.         if $game_party.actors.size < 4
  22.           $game_party.add_actor(@parameters[0])
  23.         else
  24.           # 执行替换
  25.           window_h = Window_Help.new
  26.           window_h.set_text("队伍已满,现在准备加入 #{$game_actors[@parameters[0]].name} ,请选择准备替换的人")
  27.           window_c = Window_Command.new(320,$game_party.actors.inject([]){|a,i|a<<i.name})
  28.           window_c.x = 320 / 2
  29.           window_c.y = 250
  30.           loop do
  31.             # 刷新游戏画面
  32.             Graphics.update
  33.             # 刷新输入信息
  34.             Input.update
  35.             # 刷新画面
  36.             window_c.update
  37.             if Input.trigger?(Input::B)
  38.               break
  39.             end
  40.             if Input.trigger?(Input::C)
  41.               $game_party.remove_actor($game_party.actors[window_c.index].id)
  42.               $game_party.add_actor(@parameters[0])
  43.               $game_temp.message_window_showing = true
  44.               $game_temp.message_text = "已经把#{$game_party.actors[window_c.index].name}]换为#{$game_actors[@parameters[0]].name}"
  45.               break
  46.             end
  47.           end
  48.           window_c.dispose
  49.           window_h.dispose
  50.         end
  51.       else
  52.         $game_party.remove_actor(@parameters[0])
  53.       end
  54.     end
  55.     # 继续
  56.     return true
  57.   end
  58. end
复制代码
插在Main前
额,发现慢了半拍,不过我这个(较ls而言)要好得多
不过要在替换后,紧接着吐槽一句,不然又要开始替换

点评

$game_temp.message_text = "已经把#{$game_party.actors[window_c.index].name}]换为#{$game_actors[@parameters[0]].name}"  发表于 2011-4-13 18:33
$game_temp.message_text = "已经把#{$game_party.actors[window_c.index].name}]换为#{$game_actors[@parameters[0]].name}"  发表于 2011-4-13 18:33
个人认为加在 Game_Party 的 add_actor 比较方便  发表于 2011-4-13 18:27
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
6
发表于 2011-4-13 18:34:02 | 只看该作者
$game_temp.message_text = "已经把#{$game_party.actors[window_c.index].name}]换为#{$game_actors[@parameters[0]].name}"
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
20 小时
注册时间
2011-4-6
帖子
24
7
 楼主| 发表于 2011-4-13 19:00:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
8
发表于 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”上面
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
20 小时
注册时间
2011-4-6
帖子
24
9
 楼主| 发表于 2011-4-13 19:19:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
10
发表于 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}"
复制代码
���
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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