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

Project1

 找回密码
 注册会员
搜索
楼主: 趙雲
打印 上一主题 下一主题

VX问题收集,要问的上这来。

 关闭 [复制链接]

Lv4.逐梦者

梦石
9
星屑
785
在线时间
291 小时
注册时间
2007-12-15
帖子
256
111
发表于 2008-3-3 22:29:52 | 只看该作者
  1. # ● パーティ編成機能 ベータ版
  2. #    設定方法:イベント『パーティに加える』で5人以上加えます
  3. #         メニュー『パーティ』から、4人までのパーティを編成してください
  4. #   
  5. #    これはベータ版ですので、バグが発生する可能性が高く、
  6. #    レイアウトも既存のツクールに似せてあります
  7. #    何か起こったら、サイトの掲示板・Web拍手へご報告お願いします
  8. #   
  9. #==============================================================================
  10. # ■ Vocab
  11. #==============================================================================

  12. module Vocab
  13.   # パーティ編成 の名前
  14.   def self.party
  15.     return "编成"
  16.   end
  17. end

  18. #==============================================================================
  19. # ■ Scene_Menu
  20. #==============================================================================

  21. class Scene_Menu < Scene_Base
  22.   #--------------------------------------------------------------------------
  23.   # ● コマンドウィンドウの作成
  24.   #--------------------------------------------------------------------------
  25.   def create_command_window
  26.     s1 = Vocab::item
  27.     s2 = Vocab::skill
  28.     s3 = Vocab::equip
  29.     s4 = Vocab::status
  30.     s5 = Vocab::party
  31.     s6 = Vocab::save
  32.     s7 = Vocab::game_end
  33.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
  34.     @command_window.index = @menu_index
  35.     if $game_party.members.size == 0          # パーティ人数が 0 人の場合
  36.       @command_window.draw_item(0, false)     # アイテムを無効化
  37.       @command_window.draw_item(1, false)     # スキルを無効化
  38.       @command_window.draw_item(2, false)     # 装備を無効化
  39.       @command_window.draw_item(3, false)     # ステータスを無効化
  40.       @command_window.draw_item(4, false)     # パーティを無効化
  41.     end
  42.     if $game_system.save_disabled             # セーブ禁止の場合
  43.       @command_window.draw_item(5, false)     # セーブを無効化
  44.     end
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● コマンド選択の更新
  48.   #--------------------------------------------------------------------------
  49.   def update_command_selection
  50.     if Input.trigger?(Input::B)
  51.       Sound.play_cancel
  52.       $scene = Scene_Map.new
  53.     elsif Input.trigger?(Input::C)
  54.       if $game_party.members.size == 0 and @command_window.index < 4
  55.         Sound.play_buzzer
  56.         return
  57.       elsif $game_system.save_disabled and @command_window.index == 4
  58.         Sound.play_buzzer
  59.         return
  60.       end
  61.       Sound.play_decision
  62.       case @command_window.index
  63.       when 0      # アイテム
  64.         $scene = Scene_Item.new
  65.       when 1,2,3  # スキル、装備、ステータス
  66.         start_actor_selection
  67.       when 4      # パーティ
  68.         $scene = Scene_Party.new
  69.       when 5      # セーブ
  70.         $scene = Scene_File.new(true, false, false)
  71.       when 6      # ゲーム終了
  72.         $scene = Scene_End.new
  73.       end
  74.     end
  75.   end
  76. end

  77. #==============================================================================
  78. # ■ Game_Party
  79. #==============================================================================

  80. class Game_Party
  81.   #--------------------------------------------------------------------------
  82.   # ● パーティ最大人数の取得
  83.   #--------------------------------------------------------------------------
  84.   def max_members
  85.     return MAX_MEMBERS
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● 待機アクターの取得
  89.   #--------------------------------------------------------------------------
  90.   def out_actors
  91.     @out_actors = [] if @out_actors == nil
  92.     return @out_actors
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 待機メンバーの取得
  96.   #--------------------------------------------------------------------------
  97.   def out_members
  98.     result = []
  99.     for i in out_actors
  100.       result.push($game_actors[i])
  101.     end
  102.     return result
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● アクターを加える 改
  106.   #     actor_id : アクター ID
  107.   #--------------------------------------------------------------------------
  108.   def add_actor(actor_id)
  109.     return if @actors.include?(actor_id)
  110.     return if out_actors.include?(actor_id)
  111.     if @actors.size < MAX_MEMBERS
  112.       @actors.push(actor_id)
  113.       $game_player.refresh
  114.     else
  115.       add_out_actor(actor_id)
  116.     end
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 待機アクターを加える
  120.   #     actor_id : アクター ID
  121.   #--------------------------------------------------------------------------
  122.   def add_out_actor(actor_id)
  123.     return if out_actors.include?(actor_id)
  124.     @out_actors.push(actor_id)
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● アクターを直接加える
  128.   #--------------------------------------------------------------------------
  129.   def actor_direct_push(actor, index)
  130.     n = actor != nil ? actor.id : nil
  131.     @actors[index] = n
  132.     @actors.uniq!
  133.     @actors.compact!
  134.     $game_player.refresh
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ● 待機アクターを直接加える
  138.   #--------------------------------------------------------------------------
  139.   def out_actor_direct_push(actor, index)
  140.     n = actor != nil ? actor.id : nil
  141.     @out_actors[index] = n
  142.     @out_actors.uniq!
  143.     @out_actors.compact!
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● アクターを外す 改
  147.   #--------------------------------------------------------------------------
  148.   def remove_actor(actor_id)
  149.     @actors.delete(actor_id)
  150.     out_actors # 初期化のため
  151.     @out_actors.delete(actor_id)
  152.     $game_player.refresh
  153.     end
  154. end

  155. #==============================================================================
  156. # ■ Window_PartyIn
  157. #------------------------------------------------------------------------------
  158. #  パーティ編成画面で、現在のパーティを表示するウィンドウです。
  159. #==============================================================================

  160. class Window_PartyIn < Window_Selectable
  161.   #--------------------------------------------------------------------------
  162.   # ● オブジェクト初期化
  163.   #     x     : ウィンドウの X 座標
  164.   #     y     : ウィンドウの Y 座標
  165.   #--------------------------------------------------------------------------
  166.   def initialize
  167.     super(0, 0, 384, 416)
  168.     refresh
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ● リフレッシュ
  172.   #--------------------------------------------------------------------------
  173.   def refresh
  174.     self.contents.clear
  175.     plus = $game_party.members.size < $game_party.max_members ? 1 : 0
  176.     @item_max = $game_party.members.size + plus
  177.     for actor in $game_party.members
  178.       draw_actor_face(actor, 2, actor.index * 96 + 2, 92)
  179.       x = 104
  180.       y = actor.index * 96 + WLH / 2
  181.       draw_actor_name(actor, x, y)
  182.       draw_actor_class(actor, x + 120, y)
  183.       draw_actor_level(actor, x, y + WLH * 1)
  184.       draw_actor_state(actor, x, y + WLH * 2)
  185.       draw_actor_hp(actor, x + 120, y + WLH * 1)
  186.       draw_actor_mp(actor, x + 120, y + WLH * 2)
  187.     end
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ● カーソルの更新
  191.   #--------------------------------------------------------------------------
  192.   def update_cursor
  193.     if @index < 0               # カーソルなし
  194.       self.cursor_rect.empty
  195.     elsif @index < @item_max    # 通常
  196.       self.cursor_rect.set(0, @index * 96, contents.width, 96)
  197.     elsif @index >= 100         # 自分
  198.       self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
  199.     else                        # 全体
  200.       self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
  201.     end
  202.   end
  203. end

  204. #==============================================================================
  205. # ■ Window_PartyOut
  206. #------------------------------------------------------------------------------
  207. #  パーティ編成画面で、パーティ以外のアクターを表示するウィンドウです。
  208. #==============================================================================

  209. class Window_PartyOut < Window_Selectable
  210.   #--------------------------------------------------------------------------
  211.   # ● オブジェクト初期化
  212.   #     x     : ウィンドウの X 座標
  213.   #     y     : ウィンドウの Y 座標
  214.   #--------------------------------------------------------------------------
  215.   def initialize
  216.     super(384, 0, 160, 416)
  217.     refresh
  218.   end
  219.   #--------------------------------------------------------------------------
  220.   # ● リフレッシュ
  221.   #--------------------------------------------------------------------------
  222.   def refresh
  223.     self.contents.clear
  224.     @item_max = $game_party.out_members.size + 1
  225.     for i in 0...$game_party.out_members.size
  226.       actor = $game_party.out_members[i]
  227.       draw_actor_name(actor, 4, WLH * i)
  228.     end
  229.   end
  230. end

  231. #==============================================================================
  232. # ■ Scene_Map
  233. #------------------------------------------------------------------------------
  234. #  マップ画面の処理を行うクラスです。
  235. #==============================================================================

  236. class Scene_Map < Scene_Base
  237.   #--------------------------------------------------------------------------
  238.   # ● 画面切り替えの実行 改
  239.   #--------------------------------------------------------------------------
  240.   def update_scene_change
  241.     return if $game_player.moving?    # プレイヤーの移動中?
  242.     case $game_temp.next_scene
  243.     when "battle"
  244.       call_battle
  245.     when "shop"
  246.       call_shop
  247.     when "name"
  248.       call_name
  249.     when "menu"
  250.       call_menu
  251.     when "save"
  252.       call_save
  253.     when "debug"
  254.       call_debug
  255.     when "gameover"
  256.       call_gameover
  257.     when "title"
  258.       call_title
  259.     when "party"
  260.       call_party
  261.     else
  262.       $game_temp.next_scene = nil
  263.     end
  264.   end
  265.   #--------------------------------------------------------------------------
  266.   # ● パーティ編成画面への切り替え
  267.   #--------------------------------------------------------------------------
  268.   def call_party
  269.     $game_temp.next_scene = nil
  270.     $scene = Scene_Party.new
  271.   end
  272. end

  273. #==============================================================================
  274. # ■ Scene_Party
  275. #------------------------------------------------------------------------------
  276. #  パーティ編成画面の処理を行うクラスです。
  277. #==============================================================================

  278. class Scene_Party < Scene_Base
  279.   #--------------------------------------------------------------------------
  280.   # ● 開始処理
  281.   #--------------------------------------------------------------------------
  282.   def start
  283.     super
  284.     create_menu_background
  285.     @party_window = Window_PartyIn.new
  286.     @party_window.active = false
  287.     @party_window.index = -1
  288.     @party_out_window = Window_PartyOut.new
  289.     @party_out_window.active = true
  290.     @party_out_window.index = 0
  291.   end
  292.   #--------------------------------------------------------------------------
  293.   # ● 終了処理
  294.   #--------------------------------------------------------------------------
  295.   def terminate
  296.     super
  297.     dispose_menu_background
  298.     @party_window.dispose
  299.     @party_out_window.dispose
  300.   end
  301.   #--------------------------------------------------------------------------
  302.   # ● 元の画面へ戻る
  303.   #--------------------------------------------------------------------------
  304.   def return_scene
  305.     $scene = Scene_Menu.new(4)
  306.   end
  307.   #--------------------------------------------------------------------------
  308.   # ● フレーム更新
  309.   #--------------------------------------------------------------------------
  310.   def update
  311.     super
  312.     update_menu_background
  313.     @party_window.update
  314.     @party_out_window.update
  315.     if @party_out_window.active
  316.       update_out_selection
  317.     elsif @party_window.active
  318.       update_in_selection
  319.     end
  320.   end
  321.   #--------------------------------------------------------------------------
  322.   # ● パーティ外アクター選択の更新
  323.   #--------------------------------------------------------------------------
  324.   def update_out_selection
  325.     if Input.trigger?(Input::B)
  326.       Sound.play_cancel
  327.       return_scene
  328.     elsif Input.trigger?(Input::C)
  329.       Sound.play_decision
  330.       @party_out_window.active = false
  331.       @party_window.active = true
  332.       @party_window.index = 0
  333.     end
  334.   end
  335.   #--------------------------------------------------------------------------
  336.   # ● アクター選択の更新
  337.   #--------------------------------------------------------------------------
  338.   def update_in_selection
  339.     if Input.trigger?(Input::B)
  340.       Sound.play_cancel
  341.       @party_window.active = false
  342.       @party_window.index = -1
  343.       @party_out_window.active = true
  344.     elsif Input.trigger?(Input::C)
  345.       if @party_out_window.index >= $game_party.out_members.size
  346.         if @party_window.index >= $game_party.members.size or
  347.             $game_party.members.size <= 1
  348.           Sound.play_buzzer
  349.           return
  350.         end
  351.       end  
  352.       Sound.play_decision
  353.       in_actor = $game_party.members[@party_window.index]
  354.       out_actor = $game_party.out_members[@party_out_window.index]
  355.       $game_party.out_actor_direct_push(in_actor, @party_out_window.index)
  356.       $game_party.actor_direct_push(out_actor, @party_window.index)
  357.       @party_window.refresh
  358.       @party_out_window.refresh
  359.       @party_window.active = false
  360.       @party_window.index = -1
  361.       @party_out_window.active = true
  362.   end
  363. end
  364. end
  365. #==============================================================================
  366. # ■ Scene_File
  367. #==============================================================================

  368. class Scene_File < Scene_Base
  369.   #--------------------------------------------------------------------------
  370.   # ● 元の画面へ戻る 改
  371.   #--------------------------------------------------------------------------
  372.   def return_scene
  373.     if @from_title
  374.       $scene = Scene_Title.new
  375.     elsif @from_event
  376.       $scene = Scene_Map.new
  377.     else
  378.       $scene = Scene_Menu.new(5)
  379.     end
  380.   end
  381. end

  382. #==============================================================================
  383. # ■ Scene_End
  384. #==============================================================================

  385. class Scene_End < Scene_Base
  386.   #--------------------------------------------------------------------------
  387.   # ● 元の画面へ戻る 改
  388.   #--------------------------------------------------------------------------
  389.   def return_scene
  390.     $scene = Scene_Menu.new(6)
  391.   end
  392. end
复制代码


云大可否帮忙把此脚本改成  1号角色固定无法替换

谢谢了
残念无念
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
46 小时
注册时间
2007-8-2
帖子
859
112
发表于 2008-3-4 02:34:04 | 只看该作者
我的问题还没解决呢。。。。。右边人物发动机能时。。人物消失。。。然后插入动画攻击别人。。。动画结束后人物在出来。。。那样的话怎么做呢???使者教的方法不行。。。。
我用的是行走图横版战斗脚本,有人能告诉我怎么做么?
本人小博客,摸图进入
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
908
在线时间
212 小时
注册时间
2006-10-8
帖子
293
113
发表于 2008-3-4 02:46:21 | 只看该作者
楼上
攻击动画里加上对象消失=X贞

我想问......
算了,我还是不问了

纯支持!!
子龙果然是牛人......
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
46 小时
注册时间
2007-8-2
帖子
859
114
发表于 2008-3-4 02:54:25 | 只看该作者
以下引用Jousun于2008-3-3 18:46:21的发言:

楼上
攻击动画里加上对象消失=X贞

我想问......
算了,我还是不问了

纯支持!!
子龙果然是牛人......

那样做不行啊。。。。。
本人小博客,摸图进入
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
908
在线时间
212 小时
注册时间
2006-10-8
帖子
293
115
发表于 2008-3-4 02:55:59 | 只看该作者
哦,没看清楚,你用行走图横版哦?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2007-12-16
帖子
3454
116
发表于 2008-3-4 02:57:59 | 只看该作者
不错
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
46 小时
注册时间
2007-8-2
帖子
859
117
发表于 2008-3-4 02:59:18 | 只看该作者
以下引用Jousun于2008-3-3 18:55:59的发言:

哦,没看清楚,你用行走图横版哦?

是啊。。。。有什么办法呢
本人小博客,摸图进入
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
908
在线时间
212 小时
注册时间
2006-10-8
帖子
293
118
发表于 2008-3-4 03:38:39 | 只看该作者
如果那样的话,所有特技都消失角色,但是每个特技的使用时间都不一样....
这样想似乎有点麻烦呢
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-3-2
帖子
13
119
发表于 2008-3-4 21:27:20 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2008-1-29
帖子
68
120
发表于 2008-3-5 02:54:32 | 只看该作者
VX不能用自己的素材吗?
抓狂ING.. 这个脚本正确了那个脚本又坏了.. ---------------------------------------- 口袋妖怪三色石 主线剧情完成度:5% 霞线剧情完成度:10% 遥线剧情完成度:20% 光线剧情完成度:0% TAT遥遥无期....
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 08:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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