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

Project1

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

[已经解决] 如何让队伍第1人不参战,战斗后自动加入在第1位?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2009-6-6
帖子
1732

贵宾

跳转到指定楼层
1
发表于 2009-7-1 16:19:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 我不宅 于 2009-7-2 15:42 编辑

如何让队伍第1人不参战,战斗后自动加入在第1位?求做好范例,脚本,或方法,谢谢!
欢迎大家加入AGM大军
群号:82696728
AGM区:http://rpg.blue/forum-77-1.html
玛姐我爱你~玛莉妲大人鞭挞我吧!

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
2
发表于 2009-7-1 16:55:38 | 只看该作者
以前写过一宠物跟随脚本,原理也是差不多~
可以查看查看~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2009-6-6
帖子
1732

贵宾

3
 楼主| 发表于 2009-7-1 16:58:46 | 只看该作者
寻找不到是哪个...........传送门.........
欢迎大家加入AGM大军
群号:82696728
AGM区:http://rpg.blue/forum-77-1.html
玛姐我爱你~玛莉妲大人鞭挞我吧!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

夜天の主

梦石
0
星屑
124
在线时间
1552 小时
注册时间
2008-4-13
帖子
2347

开拓者第4届短篇游戏比赛亚军

4
发表于 2009-7-1 17:15:33 | 只看该作者
传送门:(应该是这个吧?)
http://rpg.blue/viewthread.php?tid=105003&highlight=
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2009-6-6
帖子
1732

贵宾

5
 楼主| 发表于 2009-7-1 17:16:23 | 只看该作者
好人!抱抱!!!!
欢迎大家加入AGM大军
群号:82696728
AGM区:http://rpg.blue/forum-77-1.html
玛姐我爱你~玛莉妲大人鞭挞我吧!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2009-6-6
帖子
1732

贵宾

6
 楼主| 发表于 2009-7-1 17:19:26 | 只看该作者
本帖最后由 我不宅 于 2009-7-1 17:44 编辑

那个......好象没有作用吧!根本就是没用吧!
欢迎大家加入AGM大军
群号:82696728
AGM区:http://rpg.blue/forum-77-1.html
玛姐我爱你~玛莉妲大人鞭挞我吧!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2009-6-6
帖子
1732

贵宾

7
 楼主| 发表于 2009-7-2 10:10:25 | 只看该作者
救救我啊!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
8
发表于 2009-7-2 10:15:54 | 只看该作者
  1. class Scene_Map
  2.   def call_battle
  3.   #--------------------------------------------------------------------------
  4.     $actor_id = []
  5.     for actor in $game_party.actors
  6.       $actor_id.push(actor.id)
  7.     end
  8.     $game_party.remove_actor($actor_id[0])
  9.   #--------------------------------------------------------------------------
  10.     $game_temp.battle_calling = false
  11.     $game_temp.menu_calling = false
  12.     $game_temp.menu_beep = false
  13.     $game_player.make_encounter_count
  14.     $game_temp.map_bgm = $game_system.playing_bgm
  15.     $game_system.bgm_stop
  16.     $game_system.se_play($data_system.battle_start_se)
  17.     $game_system.bgm_play($game_system.battle_bgm)
  18.     $game_player.straighten
  19.     $scene = Scene_Battle.new
  20.   end
  21. end
  22. class Scene_Battle
  23.   def battle_end(result)
  24.   #--------------------------------------------------------------------------
  25.     for i in 0..$actor_id.size-1
  26.       $game_party.actors[i] = $game_actors[$actor_id[i]]
  27.     end
  28.     $game_player.refresh
  29.   #--------------------------------------------------------------------------
  30.     $game_temp.in_battle = false
  31.     $game_party.clear_actions
  32.     for actor in $game_party.actors
  33.       actor.remove_states_battle
  34.     end
  35.     $game_troop.enemies.clear
  36.     if $game_temp.battle_proc != nil
  37.       $game_temp.battle_proc.call(result)
  38.       $game_temp.battle_proc = nil
  39.     end
  40.     $scene = Scene_Map.new
  41.   end
  42. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2009-6-6
帖子
1732

贵宾

9
 楼主| 发表于 2009-7-2 10:18:12 | 只看该作者
好人!!!!!!!!!!!!!!!!!!!!!
欢迎大家加入AGM大军
群号:82696728
AGM区:http://rpg.blue/forum-77-1.html
玛姐我爱你~玛莉妲大人鞭挞我吧!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2009-6-6
帖子
1732

贵宾

10
 楼主| 发表于 2009-7-2 10:29:59 | 只看该作者
那个............可以了....然后冲突了.........
就是美化战斗窗口的脚本,309行冲了..........
就是   “actor = $game_party.actors[$status_window_contents]”这里冲了..解决不了...
脚本如下:
#==============================================================================

# ■ Window_Base

#==============================================================================

class Window_Base < Window

#--------------------------------------------------------------------------

# ● HPメーター の描画

#--------------------------------------------------------------------------

def draw_actor_hp_meter_line(actor, x, y, width = 156, height = 4)

   w = width * actor.hp / [actor.maxhp,1].max

   hp_color_1 = Color.new(255, 0, 0, 192)

   hp_color_2 = Color.new(255, 255, 0, 192)

   self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))

   draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)

   x -= 1

   y += (height/4).floor

   self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))

   draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)

   x -= 1

   y += (height/4).ceil

   self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))

   draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)

   x -= 1

   y += (height/4).ceil

   self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))

   draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)

end

#--------------------------------------------------------------------------

# ● SPメーター の描画

#--------------------------------------------------------------------------

def draw_actor_sp_meter_line(actor, x, y, width = 156, height = 4)

   w = width * actor.sp / [actor.maxsp,1].max

   hp_color_1 = Color.new( 0, 0, 255, 192)

   hp_color_2 = Color.new( 0, 255, 255, 192)

   self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))

   draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)

   x -= 1

   y += (height/4).floor

   self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))

   draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)

   x -= 1

   y += (height/4).ceil

   self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))

   draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)

   x -= 1

   y += (height/4).ceil

   self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))

   draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)

end

#--------------------------------------------------------------------------

# ● 名前の描画

#--------------------------------------------------------------------------

alias xrxs_bp7_draw_actor_name draw_actor_name

def draw_actor_name(actor, x, y)

   xrxs_bp7_draw_actor_name(actor, x, y) if @draw_ban != true

end

#--------------------------------------------------------------------------

# ● ステートの描画

#--------------------------------------------------------------------------

alias xrxs_bp7_draw_actor_state draw_actor_state

def draw_actor_state(actor, x, y, width = 120)

   xrxs_bp7_draw_actor_state(actor, x, y, width) if @draw_ban != true

end

#--------------------------------------------------------------------------

# ● HP の描画

#--------------------------------------------------------------------------

alias xrxs_bp7_draw_actor_hp draw_actor_hp

def draw_actor_hp(actor, x, y, width = 144)

   xrxs_bp7_draw_actor_hp(actor, x, y, width) if @draw_ban != true

end

#--------------------------------------------------------------------------

# ● SP の描画

#--------------------------------------------------------------------------

alias xrxs_bp7_draw_actor_sp draw_actor_sp

def draw_actor_sp(actor, x, y, width = 144)

   xrxs_bp7_draw_actor_sp(actor, x, y, width) if @draw_ban != true

end

end

#==============================================================================

# ◇ 外部ライブラリ

#==============================================================================

class Window_Base

#--------------------------------------------------------------------------

# ● ライン描画 軽量版 by 桜雅 在土

#--------------------------------------------------------------------------

def draw_lineght(start_x, start_y, end_x, end_y, start_color)

   # 描写距離の計算。大きめに直角時の長さ。

   distance = (start_x - end_x).abs + (start_y - end_y).abs

   # 描写開始

   for i in 1..distance

     x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i

     y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i

     self.contents.set_pixel(x, y, start_color)

   end

end

#--------------------------------------------------------------------------

# ● ライン描画 by 桜雅 在土

#--------------------------------------------------------------------------

def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)

   # 描写距離の計算。大きめに直角時の長さ。

   distance = (start_x - end_x).abs + (start_y - end_y).abs

   # 描写開始

   if end_color == start_color

     for i in 1..distance

       x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i

       y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i

       if width == 1

         self.contents.set_pixel(x, y, start_color)

       else

         self.contents.fill_rect(x, y, width, width, start_color)

       end

     end

   else

     for i in 1..distance

       x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i

       y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i

       r = start_color.red * (distance-i)/distance + end_color.red * i/distance

       g = start_color.green * (distance-i)/distance + end_color.green * i/distance

       b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance

       a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance

       if width == 1

         self.contents.set_pixel(x, y, Color.new(r, g, b, a))

       else

         self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))

       end

     end

   end

end

end





#==============================================================================

# 本脚本来自www.66RPG.com,使用和转载请保留此信息

#==============================================================================

#==============================================================================

# ■ Window_BattleStatus

#------------------------------------------------------------------------------

#  显示战斗画面同伴状态的窗口。

#==============================================================================

class Window_BattleStatus < Window_Base

#--------------------------------------------------------------------------

# ● 初始化对像

#--------------------------------------------------------------------------

def initialize

   super(0, 320, 160, 160)

   self.contents = Bitmap.new(width - 32, height - 32)

   @level_up_flags = [false, false, false, false]

   refresh

end

#--------------------------------------------------------------------------

# ● 刷新

#--------------------------------------------------------------------------

def refresh

   self.contents.clear

   @item_max = $game_party.actors.size

   actor = $game_party.actors[$status_window_contents]

   actor_x = 21

   self.contents.font.size = 18

   draw_actor_name(actor, 4, 0)

     # 歩行キャラグラフィックの描写

     draw_actor_graphic(actor, actor_x - 9, 116)

     # HP/SPメーターの描写

     draw_actor_hp_meter_line(actor, actor_x, 52, 96, 12)

     draw_actor_sp_meter_line(actor, actor_x, 84, 96, 12)

     # HP数値の描写

     self.contents.font.color = Color.new(0,0,0,192)

     self.contents.draw_text(actor_x, 40, 96, 24, actor.hp.to_s, 2)

     self.contents.font.color = actor.hp == 0 ? knockout_color :

     actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color

     self.contents.draw_text(actor_x-2, 38, 96, 24, actor.hp.to_s, 2)

     # SP数値の描写

     self.contents.font.color = Color.new(0,0,0,192)

     self.contents.draw_text(actor_x, 72, 96, 24, actor.sp.to_s, 2)

     self.contents.font.color = actor.sp == 0 ? knockout_color :

     actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color

     self.contents.draw_text(actor_x-2, 70, 96, 24, actor.sp.to_s, 2)

     # 用語「HP」と用語「SP」の描写

     self.contents.font.size = 18 # 用語「HP/SP」の文字の大きさ

     self.contents.font.color = Color.new(0,0,0,192)

     self.contents.draw_text(actor_x+2, 32, 196, 24, $data_system.words.hp)

     self.contents.draw_text(actor_x+2, 64, 196, 24, $data_system.words.sp)

     self.contents.font.color = system_color # 用語「HP/SP」の文字の色

     self.contents.draw_text(actor_x, 30, 196, 24, $data_system.words.hp)

     self.contents.draw_text(actor_x, 62, 196, 24, $data_system.words.sp)

     # ステートの描写

     draw_actor_state(actor, actor_x, 100)

     # 値を更新

end

end



#==============================================================================

# ■ Scene_Map

#------------------------------------------------------------------------------

#  处理地图画面的类。

#==============================================================================



class Scene_Map

#--------------------------------------------------------------------------

# ● 调用战斗

#--------------------------------------------------------------------------

alias call_new call_battle

def call_battle

   call_new

   $status_window_contents = 0

end

end



#==============================================================================

# ■ Scene_Battle

#------------------------------------------------------------------------------

#  处理战斗画面的类。

#==============================================================================

class Scene_Battle  

#--------------------------------------------------------------------------

# ● 设置角色指令窗口

#--------------------------------------------------------------------------

alias:phase3_setup_command_window_2:phase3_setup_command_window

def phase3_setup_command_window

   phase3_setup_command_window_2

   # 设置角色指令窗口的位置

   @actor_command_window.x = 400

end   

#--------------------------------------------------------------------------

# ● 开始同伴命令回合

#--------------------------------------------------------------------------

alias start_phase2_2 start_phase2

def start_phase2

   

   #---<夏娜改>---

   now_actor_index = 0

   while $game_party.actors[now_actor_index].dead?

     now_actor_index += 1

   end

   

   $status_window_contents = now_actor_index

   @status_window.refresh

   start_phase2_2

end

#--------------------------------------------------------------------------

# ● 转到输入下一个角色的命令

#--------------------------------------------------------------------------

def phase3_next_actor



   # 循环

   begin

     # 角色的明灭效果 OFF

     if @active_battler != nil

       @active_battler.blink = false

     end

     # 最后的角色的情况

     if @actor_index == $game_party.actors.size - 1

       # 开始主回合

       start_phase4

       return

     end

     # 推进角色索引

     @actor_index += 1

     @active_battler = $game_party.actors[@actor_index]

     @active_battler.blink = true

   # 如果角色是在无法接受指令的状态就再试

   end until @active_battler.inputable?



   #---<夏娜改>---

   $status_window_contents = @active_battler.index

   @status_window.refresh

   

   # 设置角色的命令窗口

   phase3_setup_command_window

end

#--------------------------------------------------------------------------

# ● 转向前一个角色的命令输入

#--------------------------------------------------------------------------

def phase3_prior_actor



   # 循环

   begin

     # 角色的明灭效果 OFF

     if @active_battler != nil

       @active_battler.blink = false

     end

     # 最初的角色的情况下

     if @actor_index == 0

       # 开始同伴指令回合

       start_phase2

       return

     end

     # 返回角色索引

     @actor_index -= 1

     @active_battler = $game_party.actors[@actor_index]

     @active_battler.blink = true

   # 如果角色是在无法接受指令的状态就再试

   end until @active_battler.inputable?



   #---<夏娜改>---

   $status_window_contents = @active_battler.index

   @status_window.refresh



   

   # 设置角色的命令窗口

   phase3_setup_command_window

end

#--------------------------------------------------------------------------

# ● 刷新画面 (主回合步骤 1 : 准备行动)

#--------------------------------------------------------------------------

def update_phase4_step1

   # 隐藏帮助窗口

   @help_window.visible = false

   # 判定胜败

   if judge

     # 胜利或者失败的情况下 : 过程结束

     return

   end

   # 强制行动的战斗者不存在的情况下

   if $game_temp.forcing_battler == nil

     # 设置战斗事件

     setup_battle_event

     # 执行战斗事件中的情况下

     if $game_system.battle_interpreter.running?

       return

     end

   end

   # 强制行动的战斗者存在的情况下

   if $game_temp.forcing_battler != nil

     # 在头部添加后移动

     @action_battlers.delete($game_temp.forcing_battler)

     @action_battlers.unshift($game_temp.forcing_battler)

   end

   # 未行动的战斗者不存在的情况下 (全员已经行动)

   if @action_battlers.size == 0

     # 开始同伴命令回合

     start_phase2

     return

   end

   # 初始化动画 ID 和公共事件 ID

   @animation1_id = 0

   @animation2_id = 0

   @common_event_id = 0

   # 未行动的战斗者移动到序列的头部

   @active_battler = @action_battlers.shift

   # 如果已经在战斗之外的情况下

   if @active_battler.index == nil

     return

   end

   # 连续伤害

   if @active_battler.hp > 0 and @active_battler.slip_damage?

     @active_battler.slip_damage_effect

     @active_battler.damage_pop = true

   end

   # 自然解除状态

   @active_battler.remove_states_auto

   

   #---<夏娜改>---

   if @active_battler.is_a?(Game_Actor) and !@active_battler.dead?

     $status_window_contents = @active_battler.index

   end

   

   # 刷新状态窗口

   @status_window.refresh

   # 移至步骤 2

   @phase4_step = 2

end

end
欢迎大家加入AGM大军
群号:82696728
AGM区:http://rpg.blue/forum-77-1.html
玛姐我爱你~玛莉妲大人鞭挞我吧!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-12 06:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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