求rpgvxace rtp怎么安装战斗的的行动顺序条脚本...谢谢!

【XP求助】超级横版战斗脚本的技能及攻击设置_rpg制作大师吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:21,233贴子:
【XP求助】超级横版战斗脚本的技能及攻击设置收藏
超级横版战斗中的人物攻击方式多为近身攻击,请问该如何设置为原地攻击或半距离式攻击?以及技能的远程或进程攻击该如何设置?
脚本:1~113#============================================================================== # * Animated_Sprite
Scripted by: SiR_VaIlHoR #
Edited by: 柳柳#------------------------------------------------------------------------------ #
A class for animated sprites. #============================================================================== #66RPG,超级横版战斗脚本简要说明:#默认情况下,把一张战斗图截成4列,&8行,如果感觉4列4帧的动画还不能满足要求,看#def pose(number,frame = 4),更改=4,以及相关部分。
#战斗图从上到下:前进图,等待图,防御图,挨打图,普通攻击图(默认的武器),施展魔法,#倒地不行了,胜利姿势,自定义武器1,自定义武器2……#这个脚本的模型是老外编写的,其中参考了XMXS的一个方法,我添加了一些功能,去掉素材限制。#不同职业拥有的图片数可以不一样,参考工程和录像教学#==============================================================================# □ RPG::Class#==============================================================================module RPG
class Class
name = @name.split(/,/)[0]
return name != nil ? name : ''
name = @name.split(/,/)[1]
return name != nil ? name : ''
class Weapon
name = @name.split(/,/)[0]
return name != nil ? name : ''
name = @name.split(/,/)[1]
return name != nil ? name : ''
endclass Game_Actor
#--------------------------------------------------------------------------
# ● 更改名称
name : 新的名称
#--------------------------------------------------------------------------
def picturephase
name = $data_classes[class_id].name2
return name != nil ? name : "66RPG"
endendclass Game_Enemy
#--------------------------------------------------------------------------
# ● 获取名称
#--------------------------------------------------------------------------
name = $data_enemies[@enemy_id].name.split(/,/)[0]
return name != nil ? name : ''
def picturephase
name = $data_enemies[@enemy_id].name.split(/,/)[1]
return name != nil ? name : "66RPG"
endclass Animated_Sprite & RPG::Sprite
#--------------------------------------------------------------------------
# - Accessible instance variables.
#--------------------------------------------------------------------------
attr_accessor :frames
# Number of animation frames
attr_accessor :delay
# Delay time between frames (speed)
attr_accessor :frame_width
# Width of each frame
attr_accessor :frame_height
# Height of each frame
attr_accessor :offset_x
# X coordinate of the 1st frame
attr_accessor :offset_y
# Y coordinate of all frames
attr_accessor :current_frame # Current animation frame
attr_accessor :moving
# Is the sprite moving?
#--------------------------------------------------------------------------
# - Initialize an animated sprite
viewport : Sprite viewport
#--------------------------------------------------------------------------
def initialize(viewport = nil)
super(viewport)
@frame_width, @frame_height = 0, 0
# A basic change to set initial variables
= Graphics.frame_count
# For the delay method
# Increasing animation? (if @rm2k_mode is true)
# Is the animation only played once?
# Used to stop animation when
#--------------------------------------------------------------------------
# Comment by RPG
- Change the source rect (change the animation)
frames : Number of animation frames
delay : Frame delay, controls animation speed
offx : X coordinate of the 1st frame
offy : Y coordinate of all frames
startf : Starting frame for animation
once : Is the animation only played once?
rm2k_mode : Animation pattern: 1-2-3-2 if true, 1-2-3-1 if false
# Comment by cybersam
# the rm2k_mode isnt pressent anymore...
# if you want that feature then use rm2k or use RPG's scrîpt...
#--------------------------------------------------------------------------
好复杂啊。
有人回答吗?
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或RPG Maker XP多人战斗脚本问题 求脚本_百度知道
RPG Maker XP多人战斗脚本问题 求脚本
如何让RPG Maker XP中实现多人同时战斗求八人同时战斗脚本
提问者采纳
contents.active = false  @status_window.dispose  self.size == 0  # キャラクターのファイル名と色相をクリア  @character_name = &quot.times do  roulette, 640, x + 236.se_play($data_ Window_Base  #--------------------------------------------------------------------------  # ● オブジェクト初期化  #--------------------------------------------------------------------------  alias initialize_KGC_LargeParty initialize  def initialize  # 元の処理を実行  initialize_KGC_LargeParty  # レベルアップフラグを再作成  @level_up_flags = []  for i in 0.contents = Bitmap.row_max * 116 - 16)  for i in 0.contents。  #==============================================================================  class Game_Party  #--------------------------------------------------------------------------  # ● アクターを加える  #
actor_id .oy &#47.new(@viewport2))  end  end  # 天候を作成  @weather = RPG.push(Sprite_Battler.;)  else  #draw_actor_state( 4  for i in 4.current_action: アクター ID  #--------------------------------------------------------------------------  def add_actor(actor_id)  # アクターを取得  actor = $game_actors[actor_id]  # パーティ人数が 4 人未満で、マップのスクロールなどの  # 机能を持っています.top_row  # 现在の行が先头になるようにスクロール  self: HP 0 のアクターに限る  #--------------------------------------------------------------------------  def random_target_actor(hp0 = false)  # ルーレットを初期化  roulette = []  # ループ  for actor in actors  # 条件に该当する场合  if (not hp0 and actor.cancel_se)  # コマンドウィンドウをアクティブにする  @command_window.trigger., x.position  # 前卫のとき n = 4.se_play($data_system.refresh  end  end  #--------------------------------------------------------------------------  # ● アクターの配列  #--------------------------------------------------------------------------  def actors  a = []  if $game_temp.:C)  if @actor_change  # 决定 SE を演奏  $game_system, 24, 32:.100  @picture_sprites, index2)  temp_skill1 = @actors[index1]  temp_skill2 = @actors[index2]  # 実际に入れ替える  @actors[index1] = temp_skill2  @actors[index2] = temp_skill1  end  #--------------------------------------------------------------------------  # ● 全员のアクションクリア  #--------------------------------------------------------------------------  def clear_actions  # パーティ全员のアクションをクリア  for actor in actors  actor、このアクターがパーティにいない场合  if @actors.new(0, 64; 4  for i in 4.push(Sprite_B self, 5人 120  SPRITES_BATTLER = 120  #游戏开始时步行图的显示(1即是角色1的步行图.actors[i]  actor_x = i * SPRITES_BATTLER + 4  # draw_actor_name(actor.$game_party.decision_se)  # ステータス画面に切り替え  $scene = Scene_Status, y + 32)  draw_actor_sp(actor.push(Sprite_Battler.battler = $game_party, 120)  # draw_actor_sp(actor., enemy))  end  # アクタースプライトを作成  @actor_sprites = []  @actor_sprites、表示されている先头の行より前の场合  if row &lt。このク  # ラスのインスタンスは $game_party で参照されます:LEFT) || Input.include.push(Sprite_Battler。ゴールドやアイテムなどの情报が含まれます?(actor)  # アクターを追加  @actors.push(Sprite_Picture  #队伍最大人数  ACTORS = 10  #战斗人数  BATTLER_ACTORS = 10  #战斗画面修补  #目标 3人 200.actors.refresh  if $game_party.trigger.index)  @actor_index = nil  @status_window。  #==============================================================================  class Spriteset_Battle  #--------------------------------------------------------------------------  # ● オブジェクト初期化  #--------------------------------------------------------------------------  def initialize  # ビューポートを作成  @viewport1 = Viewport, 120.contents.index]。  #==============================================================================  class Window_BattleStatus &lt.contents.$game_party.size  # row_max - 1  row = row_max - 1  end  # row に 1 行の高さ 116 を挂け?($game_actors[CHARACTER_GRAPHIC]) && CHARACTER_GRAPHIC .top_row + (self, 32.actors.font.cursor_rect.page_row_max - 1)  # 现在の行が最後尾になるようにスクロール  self.contents.change_actor(@actor_index, 0。このクラスは Scene_Battle クラ  # スの内部で使用されます, 480.; Game_Character  #--------------------------------------------------------------------------  # ● リフレッシュ  #--------------------------------------------------------------------------  def refresh  # パーティ人数が 0 人の场合  if $game_party.index  else  $game_party.z = 101  @viewport3..new(@viewport1)  # エネミースプライトを作成  @enemy_sprites = []  for enemy in $game_troop?  return true  end  end  return false  end  #--------------------------------------------------------------------------  # ● 対象アクターのランダムな决定  #
hp0 .trigger, 100)  end  #--------------------------------------------------------------------------  # ● 先头の行の取得  #--------------------------------------------------------------------------  def top_row  # ウィンドウ内容の転送元 Y 座标を, y + 80)  draw_actor_name(actor.top_row = row - (self.decision_se)  if @actor_index == nil  @actor_index = @status_window..draw_text(actor_x.size  x = 64  y = i * 116  actor = $game_party, 32。  #==============================================================================  class Scene_Menu  #--------------------------------------------------------------------------  # ● オブジェクト初期化  #
menu_index .clear  self.push(Sprite_Battler?) or (hp0 and actor.se_play($data_system?(Input。  #==============================================================================  class Game_Player &lt:.[@actors:.new(@viewport2))  @actor_sprites.contents.  @character_hue = 0  # メソッド终了  return  end  # アクターを取得  if $game_party, 32.index = -1  end  #--------------------------------------------------------------------------  # ● リフレッシュ  #--------------------------------------------------------------------------  def refresh  if self, self.z = 200  @viewport4.draw_text(0, 96)  end  end  end  end  #==============================================================================  # ■ Scene_Menu  #------------------------------------------------------------------------------  #  メニュー画面の処理を行うクラスです.index = -1  @actor_change = false  return  end  # C ボタンが押された场合  if Input.index * SPRITES_BATTLER + 80  else  return 0  end  end  end  #==============================================================================  # ■ Game_Party  #------------------------------------------------------------------------------  #  パーティを扱うクラスです.new(@viewport2))  @actor_sprites,如此类推)  CHARACTER_GRAPHIC = 1  #==============================================================================  # ■ Game_Actor  #------------------------------------------------------------------------------  #==============================================================================  class Game_Actor &lt.size == 0  return false  end  # HP 0 以上のアクターがパーティにいる场合  for actor in actors  if actor.active = false  @status_ Window_Selectable  #--------------------------------------------------------------------------  # ● オブジェクト初期化  #--------------------------------------------------------------------------  def initialize  super(0.active = true  @status_window,  $game_screen: アクターインデックス  #--------------------------------------------------------------------------  def smooth_target_actor(actor_index)  # アクターを取得  actor = actors[actor_index]  # アクターが存在する场合  if actor .enemies.include, x + 144?(Input, 640.decision_se)  # 装备画面に切り替え  $scene = Scene_Equip、中卫のとき n = 3.index = 0  @actor_change = true  @actor_index = nil  return  end  end  #--------------------------------------------------------------------------  # ● フレーム更新 (ステータスウィンドウがアクティブの场合)  #--------------------------------------------------------------------------  def update_status  # B ボタンが押された场合  if Input, self.push(@actors[i])  end  else  a = @actors  end  return a  end  #--------------------------------------------------------------------------  # ● フレーム更新 (ステータスウィンドウがアクティブの场合)  #--------------------------------------------------------------------------  def change_actor(index1.se_play($data_system?  # パーティ人数が 0 人の场合  if $game_ Game_Battler  #--------------------------------------------------------------------------  # ● バトル画面 X 座标の取得  #--------------------------------------------------------------------------  def screen_x  # パーティ内の并び顺から X 座标を计算して返す  if self.size = 20  for i in 0, y + 64)  draw_actor_hp(actor, y.actors.cursor_rect:B)  # キャンセル SE を演奏  $game_system.new(width - 32, x + 236.push(Sprite_Battler.exist, 0.restriction &gt.active = false  self.size.class_id].decision_se)  @command_window, 24.se_play($data_system.、ウィンドウ内容の転送元 Y 座标とする  self, @status_window:.se_play($data_system.contents = nil  end  @item_max = $game_party, 120)  if @level_up_flags[i]  self.new(@viewport1)  # ピクチャスプライトを作成  @picture_sprites = []  for i in 51.set(x: コマンドのカーソル初期位置  #--------------------------------------------------------------------------  def initialize(menu_index = 0)  @menu_index = menu_index  @actor_change = false  @actor_index = nil  end  #--------------------------------------------------------------------------  # ● フレーム更新 (コマンドウィンドウがアクティブの场合)  #--------------------------------------------------------------------------  alias update_command_actor_change update_command  def update_command  # 元の処理を実行  update_command_actor_change  # 方向ボタンの左か右が押された场合  if Input.page_row_max - 1)  end  # カーソルの幅を计算  cursor_width = self!= 0  actor = $game_actors[CHARACTER_GRAPHIC]  else  actor = $game_party。このクラスのインスタンスは $game_player で参照されます.new(@status_ ACTORS and not @actors!&quot.se_play($data_system, actor_x.new(@status_window。  #==============================================================================  class Scene_Battle  #--------------------------------------------------------------------------  # ● アクターコマンドウィンドウのセットアップ  #--------------------------------------------------------------------------  alias phase3_setup_command_window_actor_change phase3_setup_command_window  def phase3_setup_command_window  # 元の処理を実行  phase3_setup_command_window_actor_change  # アクターコマンドウィンドウの位置を设定  @actor_command_window.pictures[i]))  end  # タイマースプライトを作成  @timer_sprite = Sprite_Timer, 0)  #
draw_actor_hp(actor.contents.active = true  @status_window.color = normal_color  self.character_hue  # 不透明度と合成方法を初期化  @opacity = 255  @blend_type = 0  end  end  #==============================================================================  # ■ Spriteset_Battle  #------------------------------------------------------------------------------  #  バトル画面のスプライトをまとめたクラスです, &quot.size &lt, actor_x.font, 64, y + 64)  end  end  #--------------------------------------------------------------------------  # ● カーソル矩形更新  #--------------------------------------------------------------------------  def update_cursor_rect  # カーソル位置が 0 未満の场合  if @index &lt?(Input, y)  draw_actor_level(actor.new(@viewport3.BATTLER_ACTORS  @actor_sprites.new(@viewport2))  if BATTLER_ACTORS &gt, 480)  @viewport4 = Viewport.push(actor)  end  end  end  # ルーレットのサイズが 0 の场合  if roulette, actor_x.contents .hp0.size  actor = $game_MP&quot.exist。イベントの起动判定や、後卫のとき n = 2  n = 4 - position  # ルーレットにアクターを n 回追加  n, 640)#320  @viewport2 = Viewport.buzzer_se)  return  end  # 决定 SE を演奏  $game_ @column_max * 116 - self.contents..?)  # アクターのクラスの [位置] を取得  position = $data_classes[actor、1 行の高さ 116 で割る  return self.font.push(Sprite_Battler.include.reverse  @enemy_)  @item_max = $game_party.oy = row * 116  end  #--------------------------------------------------------------------------  # ● 1 ページに表示できる行数の取得  #--------------------------------------------------------------------------  def page_row_max  return 4  end  end  #==============================================================================  # ■ Window_BattleStatus  #------------------------------------------------------------------------------  #  バトル画面でパーティメンバーのステータスを表示するウィンドウです, 480)  @viewport3 = Viewport, &quot.draw_text(0; self.index)  when 2
# 装备  # 决定 SE を演奏  $game_system, y)  draw_actor_class(actor.actors.refresh  end  end  return  else  # コマンドウィンドウのカーソル位置で分岐  case @command_window.size = 18  #
self.index .in_battle  for i in 0..font.min  a, 480)  @viewport2;LEVEL UP.exist.BATTLER_ACTORS  @level_up_flags[i] = false  end  end  #--------------------------------------------------------------------------  # ● リフレッシュ  #--------------------------------------------------------------------------  def refresh  self., 0; 0  row = 0  end  # row が row_max - 1 超の场合は row_max - 1 に修正  if row &gt?($game_actors[CHARACTER_GRAPHIC]) == false || CHARACTER_GRAPHIC == 0  $game_)  #
self.width - 32.new  # フレーム更新  update  end  #--------------------------------------------------------------------------  # ● フレーム更新  #--------------------------------------------------------------------------  alias update_actor_change update  def update  if BATTLER_ACTORS &= 2  # ブザー SE を演奏  $game_system.width - 32  # カーソルの座标を计算  x = @index % @column_max * (cursor_width + 32)  y = @index &#47, x + 90.index)  end  return  end  end  end  end  #==============================================================================  # ■ Scene_Battle (分割定义 2)  #------------------------------------------------------------------------------  #  バトル画面の処理を行うクラスです, x.actors.BATTLER_ACTORS  @actor_sprites[i], BATTLER_ACTORS].empty  return  end  # 现在の行を取得  row = @index  # 现在の行が!= nil and actor.size == 0  return nil  end  # ルーレットを回し.contents, x - 40, x?  return actor  end  end  end  end  #==============================================================================  # ■ Game_Player  #------------------------------------------------------------------------------  #  プレイヤーを扱うクラスです..z = 5000  # バトルバックスプライトを作成  @battleback_sprite = Sprite。  #==============================================================================  class Window_MenuStatus &lt.new(0, y + 32)  draw_actor_exp(&quot, y + 32)  draw_actor_state(actor.new(@viewport2))  @actor_sprites.actors[i]  draw_actor_graphic(actor.size  self.actors.decision_se)  # スキル画面に切り替え  $scene = Scene_Skill.new(@viewport1!= nil  self.clear  end  end  #--------------------------------------------------------------------------  # ● コマンド入力可能判定  #--------------------------------------------------------------------------  def inputable, 480)  refresh   116  end  #--------------------------------------------------------------------------  # ● 先头の行の设定  #
row .hp &gt:Weather:.top_row = row  end  # 现在の行が?(Input, 0.index)  when 3
# ステータス  # 决定 SE を演奏  $game_system.oy  # カーソルの矩形を更新  self?  # 一人でもコマンド入力可能なら true を返す  for actor in actors  if actor, 640.color = system_color  #
self.character_name  @character_hue = actor、アクターを决定  return roulette[rand(roulette.new(@status_window?  return actor  end  # ループ  for actor in actors  # アクターが存在する场合   0  return false  end  end  # 全灭  return true  end  #--------------------------------------------------------------------------  # ● 対象アクターのスムーズな决定  #
actor_index .size)]  end  #--------------------------------------------------------------------------  # ● 全灭判定  #--------------------------------------------------------------------------  def all_dead.inputable:RIGHT)  # 决定 SE を演奏  $game_system.actors[0]  end  # キャラクターのファイル名と色相を设定  @character_name = actor, 640.actors[@status_window.push(actor)  # プレイヤーをリフレッシュ  $game_player, actor_x.new(0, &quot: 先头に表示する行  #--------------------------------------------------------------------------  def top_row=(row)  # row が 0 未満の场合は 0 に修正  if row &lt.index  when 1
# スキル  # このアクターの行动制限が 2 以上の场合  if $game_party.actors[i]  end  end  update_actor_change  end  end  #==============================================================================  # ■ Window_MenuStatus  #------------------------------------------------------------------------------  #  メニュー画面でパーティメンバーのステータスを表示するウィンドウです.new(0.new(@viewport2))  @actor_sprites.HP&quot.actors, 96; 0  self, 32、表示されている最後尾の行より後ろの场合  if row &gt, 4人 160, 0!= nil  return self
怎么不显示血量了?
瀑布汗。。。。。。。。表示hp的数值有显示。另外,如果要显示血条那么你需要来一个显示血条脚本。。。知道了没?
我以前设定的有一个显示血条的脚本 但是加进这个脚本以后 连数值也不现实了 只显示怪的 主角的不显示
晕。。。。。脚本顺序看一下。可以将显示血条放后面但也是要在main之前就行了。。
提问者评价
恩恩 谢谢哈
其他类似问题
按默认排序
其他1条回答
光在数据库中“动画”里。角色攻击时战斗图移动或消失问题补充:去了66RPG 论坛也没找到方法,右边的“【ED】战斗图”里
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 rpgvxace下载 的文章

 

随机推荐