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

Project1

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

如何给加入人物仓库的角色添加一个状态

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
跳转到指定楼层
1
发表于 2008-10-23 23:03:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如果某角色添加进人物仓库,那么就给他添加34号状态,直到重新加入队伍离开人物仓库,才去除这个状态


无冲突版人物仓库脚本:
http://rpg.blue/web/htm/news437.htm


好像下面这一段就是写角色进出仓库的{/gg}

  1. #--------------------------------------------------------------------------
  2. # ● フレーム更新
  3. #--------------------------------------------------------------------------
  4. def update
  5.    # コマンドウィンドウを更新
  6.    @main_window.update
  7.    if @status_window.visible and @show_index != @main_window.index
  8.      status_window_position
  9.      @status_window.refresh(@main_window.menber)
  10.      @show_index = @main_window.index
  11.    end
  12.    # B ボタンが押された場合
  13.    if Input.trigger?(Input::B)
  14.      if $game_party.actors.size < $game_party.party_min
  15.        # ブザー SE を演奏
  16.        $game_system.se_play($data_system.buzzer_se)
  17.        return
  18.      end
  19.      # キャンセル SE を演奏
  20.      $game_system.se_play($data_system.cancel_se)
  21.      # メニュー画面に切り替え
  22.      $scene = Scene_Map.new
  23.      return
  24.    end
  25.    # C ボタンが押された場合
  26.    if Input.trigger?(Input::C)
  27.      # 選択したアクターが強制加入アクターの場合入れ替え不可
  28.      if $game_party.must_actor_include?(@main_window.menber)
  29.        # ブザー SE を演奏
  30.        $game_system.se_play($data_system.buzzer_se)
  31.        return
  32.      end
  33.      if $game_party.actors.include?(@main_window.menber)
  34.        $game_party.remove_actor(@main_window.menber.id)
  35.        if $game_party.remove_actor
  36.        main_window.menber.id.add_state(33)
  37.      else
  38.        if $game_party.actors.size == $game_party.party_max
  39.          # ブザー SE を演奏
  40.          $game_system.se_play($data_system.buzzer_se)
  41.          return
  42.        end
  43.        $game_party.add_actor(@main_window.menber.id)
  44.       
  45.      end
  46.      # 決定 SE を演奏
  47.      $game_system.se_play($data_system.decision_se)
  48.      @main_window.refresh
  49.      @menber_window.refresh
  50.      return
  51.    end
  52. end
  53. def status_window_position
  54.    if @main_window.cursor_rect.y < 176
  55.      @status_window.y = 288
  56.    else
  57.      @status_window.y = 96
  58.    end
  59. end
  60. end
复制代码

此贴于 2008-10-28 14:59:33 被版主darkten提醒,请楼主看到后对本贴做出回应。
版务信息:本贴由楼主自主结贴~
Tomorrow

Lv1.梦旅人

綾川司の姫様<

梦石
0
星屑
50
在线时间
796 小时
注册时间
2007-12-20
帖子
4520

贵宾第3届短篇游戏大赛R剧及RMTV组亚军

2
发表于 2008-10-24 10:28:13 | 只看该作者
我似乎在你这里看到了增减状态的语句{/gg}
main_window.menber.id.add_state(33)

main_window.menber应该就是人物仓库的人吧0 0

生命即是责任。自己即是世界。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
3
 楼主| 发表于 2008-10-24 16:26:16 | 只看该作者
以下引用天圣的马甲于2008-10-24 2:28:13的发言:

我似乎在你这里看到了增减状态的语句
main_window.menber.id.add_state(33)

main_window.menber应该就是人物仓库的人吧0 0




main_window.menber.id.add_state(33)是我加的,可是写法不对,选定角色一进仓库就出错了,后来改成$game_party.actors[main_window.menber.id].add_state(33),也出错!不知应该怎么写
Tomorrow
回复 支持 反对

使用道具 举报

Lv1.梦旅人

綾川司の姫様<

梦石
0
星屑
50
在线时间
796 小时
注册时间
2007-12-20
帖子
4520

贵宾第3届短篇游戏大赛R剧及RMTV组亚军

4
发表于 2008-10-24 20:11:03 | 只看该作者
前面加个@看看?= =感觉似乎是main_window.menber.id未定义出错吧。脚本里用的都是@main_window.menber.id……

生命即是责任。自己即是世界。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
5
 楼主| 发表于 2008-10-24 20:22:15 | 只看该作者
我改成 @main_window.menber.id.add_state(98) 结果选好角色入仓库的时候也出错了,是不是这个脚本里还要定义 state 啊?该怎么定义状态呢。。。


Tomorrow
回复 支持 反对

使用道具 举报

Lv1.梦旅人

綾川司の姫様<

梦石
0
星屑
50
在线时间
796 小时
注册时间
2007-12-20
帖子
4520

贵宾第3届短篇游戏大赛R剧及RMTV组亚军

6
发表于 2008-10-24 20:29:00 | 只看该作者
Window类里面添加状态肯定会出错- -
不过很想知道你主要的目的是什么……

生命即是责任。自己即是世界。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
7
 楼主| 发表于 2008-10-24 20:47:56 | 只看该作者
我希望上一次存进去多少角色,下次再进去存取的话应该还是这些角色,但是这脚本的仓库里显示角色是用开关控制的,而我又用了离队系统,可随时让队伍里的角色离队,新角色又是在游戏中不断添加的,所以用开关法显示仓库角色就不够用了

所以我希望给加入仓库的角色添加一个状态,直到该角色离开仓库,才去除这个状态。
下次再进去存取的话,只要在该脚本里指定仓库中只显示所有带有这个状态的角色就可以了,开关也可以不用了

本来想用那个人物仓库 1.02 ,但是冲突太多了
Tomorrow
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
8
 楼主| 发表于 2008-10-26 01:50:20 | 只看该作者
回复 支持 反对

使用道具 举报

Lv3.寻梦者

永久的旅行者

梦石
1
星屑
110
在线时间
404 小时
注册时间
2006-12-13
帖子
3091

开拓者贵宾第3届短篇游戏大赛主流游戏组季军第5届短篇游戏比赛季军

9
发表于 2008-10-27 20:40:03 | 只看该作者
脚本我不会改,但是用事件勉强解决应该是可以的...(会比较麻烦,搂主真得找不到答案的话就考虑这个办法吧...)




在进入离队界面前用事件:
条件分支--〉角色A在同伴中的场合--〉开关001=ON(打个比方:开关A)


然后在退出时,用两次条件分支判断出角色A是否已经被离队

开关A=ON的场合
    角色A在同伴中的场合
        开关A=OFF
    分支结束
分支结束

就这样,如果角色A是使用离队系统离开的话,开关A就会开着。
在进入人物仓库时,在打开角色的开关时,就先用条件分支
   
开关A=ON的场合
    开关A2=ON(开关A2是控制人物仓库里的角色A是否可以加入的开关)
分支结束

注:
角色越多,要判断的就越多,但是设置起来应该比较简单(因为全部都是独立的条件分支)
如果这个离队系统是放在菜单里的话,可以在进入和退出界面时启动公共事件的方法解决(这几句的脚本就你应该会吧?)
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
2 小时
注册时间
2008-7-9
帖子
121
10
发表于 2008-10-27 21:31:30 | 只看该作者
那个脚本用window来记录,所以冲突减少,但相对方便性减低。
用事件添加吧,比较容易理解。
雨~ 纯净~又有点感伤……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-22 12:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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