- SkilloStaffeux retraité
- Nombre de messages : 526
Age : 35
Localisation : Rennes
Distinction : J'aime ce gars
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' ]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008
[Script][RGSS3] Combats aériens pour VX Ace
Ven 4 Jan 2013 - 1:23
Hey guys!
J'avais du temps à perdre du coup j'ai décider de me remettre au RGSS ça me manquait un peu.
Du coup je commence simple en proposant un script que j'avait fait pour VX 1er du nom. Je l'ai adapté et épuér pour qu'il soit le plus modulable possible.
Ce script vous permettra de:
_Activer les combats aériens
_Créer des groupes d'ennemis qui apparaîtront uniquement en l'air
_Remplacer l'équipe par le vaisseau en cas de combat et ainsi pouvoir faire des combats de vaisseaux.
Script Battle_Ship à placer avant votre system de combat(genre SBS ou ABS) pour plus de sûreté:
Je sais que c'est un peu léger pour l'instant mais j'ai la motivation qui reviens ^^
et je vais essayer d'enchainer les petis script comme celui ci dans les semaines qui viennes tout en taffant sur un projet plus important.
Sur ce see ya later et laissez vos coms ça fait toujours plaisir.
+5 pts de participation
J'avais du temps à perdre du coup j'ai décider de me remettre au RGSS ça me manquait un peu.
Du coup je commence simple en proposant un script que j'avait fait pour VX 1er du nom. Je l'ai adapté et épuér pour qu'il soit le plus modulable possible.
Ce script vous permettra de:
_Activer les combats aériens
_Créer des groupes d'ennemis qui apparaîtront uniquement en l'air
_Remplacer l'équipe par le vaisseau en cas de combat et ainsi pouvoir faire des combats de vaisseaux.
Script Battle_Ship à placer avant votre system de combat(genre SBS ou ABS) pour plus de sûreté:
- Spoiler:
- Code:
#==============================================================================
# **Battle_Ship fait par Skillo
#------------------------------------------------------------------------------
# Ce script vous permet d'activer les combats en l'air, de definir les enemy que vous ne croiserez
# qu'en étant dans votre vaisseau, de definir si c'est votre equipe ou votre navire qui se bat afin
# de faire eventuelement des combatss de vaisseaux
#==============================================================================
module AirShip
# ici sera définie si les combats en vaisseau seront activer par default en début de jeu
# Airship_Battle = true/false
# Pour activer ou desactiver les combats aériens en cours de jeu, faites un appel de script et mettez y:
# $game_system.airship_battle = true/false
Airship_Battle = true
# ici sera définiela liste des groupe de combats que vous croiserez uniquement en vaisseau
# Ennemy = [id de l'ennemi 1, id de l'ennemi 2, id de l'ennemi 3, etc...]
Ennemy = [2,3]
# ici sera définie si le vaiseau prendra, par default, la place de l'equipe pendant les combats en vaisseau.
# Battle_Ship = true/false
# Pour activer ou desactiver le changement en cours de jeu, faites un appel de script et mettez y:
# $game_system.airship_actor_battle = true/false
Battle_Ship = true
# ici sera defini le numero du Héros jouant le role de vaisseau (à definir dans la BDD)
# Battle_Ship_actor = id de l'actor
Battle_Ship_actor = 9
end
#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
# This class handles system-related data. Also manages vehicles and BGM, etc.
# The instance of this class is referenced by $game_system.
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :airship_battle
attr_accessor :airship_actor_battle
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias airship_game_system_initialize initialize
def initialize
airship_game_system_initialize
@airship_battle = AirShip::Airship_Battle
@airship_actor_battle = AirShip::Battle_Ship
end
end
#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
# This class handles maps. It includes event starting determinants and map
# scrolling functions. The instance of this class is referenced by $game_map.
#==============================================================================
class Game_Player
#--------------------------------------------------------------------------
# * Update Encounter
#--------------------------------------------------------------------------
def update_encounter
return if $TEST && Input.press?(:CTRL)
return if $game_party.encounter_none?
return if in_airship? && !$game_system.airship_battle
return if @move_route_forcing
@encounter_count -= encounter_progress_value
end
#--------------------------------------------------------------------------
# * Determine if battle is an airship battle
#--------------------------------------------------------------------------
def airship_battle?
return $game_system.airship_battle && in_airship?
end
#--------------------------------------------------------------------------
# * Determine if battles is a normal battle
#--------------------------------------------------------------------------
def normal_battle?(encounter)
return !$game_system.airship_battle || $game_system.airship_battle && !in_airship? && !AirShip::Ennemy.include?(encounter.troop_id)
end
#--------------------------------------------------------------------------
# * Create Group ID for Troop Encountered
#--------------------------------------------------------------------------
def make_encounter_troop_id
encounter_list = []
air_encounter_list = []
weight_sum = 0
air_weight_sum = 0
$game_map.encounter_list.each do |encounter|
next unless encounter_ok?(encounter)
if airship_battle? && AirShip::Ennemy.include?(encounter.troop_id)
air_encounter_list.push(encounter)
air_weight_sum += encounter.weight
puts "air_weight_sum : " + air_weight_sum.to_s
elsif normal_battle?(encounter)
encounter_list.push(encounter)
weight_sum += encounter.weight
puts "weight_sum : " + weight_sum.to_s
end
end
if airship_battle?
encounter_list = air_encounter_list
weight_sum = air_weight_sum
end
if weight_sum > 0
value = rand(weight_sum)
encounter_list.each do |encounter|
value -= encounter.weight
return encounter.troop_id if value < 0
end
end
return 0
end
end
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
# This class handles the party. It includes information on amount of gold
# and items. The instance of this class is referenced by $game_party.
#==============================================================================
class Game_Party
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :last_actors
attr_accessor :actors
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias airship_game_party_initialize initialize
def initialize
airship_game_party_initialize
@last_actors = []
end
#--------------------------------------------------------------------------
# * Processing at Start of Battle
#--------------------------------------------------------------------------
alias airship_on_battle_start on_battle_start
def on_battle_start
if $game_system.airship_battle && $game_system.airship_actor_battle
if $game_player.in_airship?
@last_actors = @actors
@actors = [AirShip::Battle_Ship_actor]
end
end
airship_on_battle_start
end
#--------------------------------------------------------------------------
# * Processing at End of Battle
#--------------------------------------------------------------------------
alias airship_on_battle_end on_battle_end
def on_battle_end
if $game_system.airship_battle && $game_system.airship_actor_battle && $game_player.in_airship?
@actors = @last_actors
end
airship_on_battle_end
end
end
Je sais que c'est un peu léger pour l'instant mais j'ai la motivation qui reviens ^^
et je vais essayer d'enchainer les petis script comme celui ci dans les semaines qui viennes tout en taffant sur un projet plus important.
Sur ce see ya later et laissez vos coms ça fait toujours plaisir.
+5 pts de participation
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum