Accueil - Forum - Bibliothèque de ressources
____

Explication de scripts : XIDEROWG ACTION SYSTEM

Lien vers les scripts

L'auteur Xiderowg nous offre un script permettant de faire un combat à temps réel. Ce script très complet, complété par l'atelier RGSS donc par Moghunter, possède des barres de vies pour les ennemis et héros, Overdrive, utilisation d'objets comme les bombes, flèches ..ect. et encore plein d'élements !

Ce tutorial nous expliquera comment se servir de ce script dans la création d'objet, de monstres, de modifications ...etc.

1) Avant de commencer.

Avant de commencer, faites un évènement automatique qui rend égale les variables 0010 à 3. Cela permettra de rendre les monstres aggressifs et donc de vous attaquer. Ensuite, effacez l'évènement.

2)Création d'un monstre. a) L'évènement monstre

Créer un monstre est très simple. Tout d'abord, vous allez dans la base de données et vous faites un nouveau monstre comme d'habitude. Relevez l'ID du monstre, par exemple, l'ID du monstre "Sahagin" est 2. N'oubliez pas de rajouter le monstre créé dans les groupe de monstres avec la même ID.

Ensuite, il faut créer l'évènement. Vous pouvez copier-coller un évènement "monstre" déjà existant dans la démonstration car le principe est le même.

Première page : mettez une apparence normal du monstre avec son déplacement normal.
Deuxième page : Mettez dans les conditions de l'évènement la variable 0004 (l'ID de la variable peut être changée dans le script). La valeur de cette variable doit l'ID du monstre de la base de données.
Troisième page : Mettez dans les conditions de l'évènement l'interrupteur local D (ceci peut être changée dans le script). Dans son déplacement défini, nous allons mettre son attaque.

b) L'attaque

Avec le bouton "Insérer un script", mettez :

attack_on
pour que commencer l'attaque et
attack_off
pour arrêter.

Pour tirer un objet, mettez

shoot(28)

"28" est l'ID d'évènement l'objet sur la carte "Ferramentas". On verra cela après.

Vous pouvez donner une apparence au monstre selon son action. Dans les ressources, voici comment doit être le nom des images pour le monstre :

nom : le monstre dans un comportement normal
nom_ACT : le monstre en train d'attaquer.
nom_HIT : le monstre tué

c) Caractéristiques.

Le monstre peut avoir des caractéristiques. Ceci sont définies dans les script nommé XRXS-XAS à partir de la ligne 218

A la ligne 227, vous pouvez décider l'animation qui aura lieu après l'élimination du monstre :

Code Ruby DEF_ANI = {
  2=>119,
  3=>121
  }  

Dans le premier cas, "2" est l'ID du monstre et "119" l'ID de l'animation. Donc : "ID Monstre => ID Animation"

A ligne 250, vous pouvez définir les cotés du monstre où il est invulnérable.

Code Ruby SHILED_DIRECTIONS = {
  1=>[2,4,6,8],
  7=>[2]
  }

"1" étatnt toujours l'ID du monstre et "[2,4,6,8]" les différentes directions. Donc : "ID Monstre => [Direction]"

A la ligne 261, vous pouvez définir les actions où le monstre est invulnérable.

Code Ruby SHILED_ACTIONS = {
    2=>[28,33],              
    3=>[28,33],              
    4=>[1,2,3,4,5,6,7,15,16,17,18,19,20,23,33,34,35,36,37,40,42]
  }

Le monstre d'ID 2 sera invulnérable aux attaques des évènements objets d'ID 28 et 33 de la carte "Ferramentas". Donc : "ID Monstre => [ID des évènements objets]"

A la ligne 294, vous pouvez définir l'interrupteur qui sera enclenché selon le monstre après sa défaite :

Code Ruby DEFEAT_SWITCH_IDS = {
  8=>57,  
  9=>57
  }

Le monstre d'ID 8 enclenchera l'interrupteur d'ID 57 (0057). Donc :
"ID Monstre => ID interrupteur"

3) Création d'un objet

a) Objet

Créez dans la carte "ferramenta" un évènement avec l'apparence de l'objet (Bombes, flèches ...). Rajoutez le aussi dans la base de données. Ensuite, relevez l'ID de l'évènement objet et l'ID de l'objet dans la base de données. Allez dans le script nommé "XRXS - XAS" vers la ligne 194 :

Code RubyITEM_COST = {  
  8=>1,
  9=>2
  }

Admettons que l'ID de l'évènement est 14 et l'ID de l'objet dans la base de données est 7, vous mettez :

Code RubyITEM_COST = {  
  8=>1,
  9=>2,
  14=>7 # C'est les bombes
  }

On a donc : "ID évènement sur la carte "Ferramentas" => ID de l'objet dans la base de données"

b) Caractéristique de l'objet.

Prenons le cas des bombes : script nommé "XAS - Bomb (ID14)". Vous avez ceci :

Code Rubymodule Database_Bullet
  action_id = 14
  SUFLAGS[action_id] = 10
  DURATIONS[action_id] = 100
  SELF_MOTIONS[action_id] = "_TRW"
  plan = []
  plan[80] = action_id
  ATTACK_ID_PLANS[action_id] = plan
  ATTACK_RANGE_TYPES[action_id] = SQUARE
  ATTACK_RANGE_PLANS[action_id] = [2]
  BLOW_POWERS[action_id] = 3
  plan = []
  plan[80] = 99
  SELF_ANIMATION_PLANS[action_id] = plan
  SELF_DAMAGES[action_id] = true
  PLAYER_DAMAGES[action_id] = false
  IGNORE_INVINCIBLES[action_id] = true
  MULTI_HIT[action_id] = false
end

Lorsque vous créez un objet, il faut avoir le même modèle : on commence par le module et on termine par "end" avec toutes les constantes à l'intérieur.

- action_id : est l'ID de l'évènement objet sur la carte "Ferramentas".
- DURATIONS[action_id] : durée de l'effet de l'attaque de l'objet
- SELF_MOTIONS[action_id] : images terminant par le suffixe qui sera affiché à la place du héros. Par exemple, ici, on aura "Arshes_TRW.png" qui sera affiché
-

plan = []
  plan[80] = action_id
  ATTACK_ID_PLANS[action_id] = plan
: est le temps pour activer une variable d'impact (voir ci-dessous). Ici, l'interrupteur sera activé après 80 frames.
- ATTACK_RANGE_TYPES[action_id] : type de la zone d'attaque : carré (SQUARE), losange (RHOMBUS) ou ligne droite (LINE).
- ATTACK_RANGE_PLANS[action_id] : taille de la zone d'impact.
-
 plan = []
  plan[80] = 99
  SELF_ANIMATION_PLANS[action_id] = plan
: est l'animation qui sera affiché après un certains temps. Ici, l'animation d'ID 99 (animation d'explosion) sera affiché après 80 frames.
- BLOW_POWERS[action_id] : puissance de l'impact.
- SELF_DAMAGES[action_id] : "true" si cela cause des dommages sur le héros . Mettez "false" dans le cas contraire.
- PLAYER_DAMAGES[action_id] : "true" si cela permet de donner des points de vie au héros comme les potions ...etc. Mettez "false" dans le cas contraire.
- IGNORE_INVINCIBLES[action_id] : "true" si l'objet ignore l'invincibité. Mettez "false" dans le cas contraire.
- MULTI_HIT[action_id] : "true" si cela cause un "HIT". Mettez "false" dans le cas contraire.

c) Activer une variable si il y a un impact avec l'évènement.

Prenons le cas que l'entrée d'une caverne s'ouvre après l'explosion d'une bombe ou bien une plante a été coupé après un coup d'épée. Pour cela, il faut activer une variable. Faites un évènement "plante" par exemple et mettez en deuxième page dans les conditions de l'évènement, la variable 0003 (peut être changé dans un script) avec la valeur de l'ID de l'évènement objet :

4) Afficher une "Pop-Up".

Vous voulez afficher "5" au dessus du héros car ce dernier à perdu 5 PV en se jetant stupidement dans les cactus. Rien de plus simple !

Au contact de l'évènement "Cactus", mettez avec la commande "insérer un script" :

Code Ruby$game_player.battler.damage = 5
$game_player.battler.damage_pop = true

Vous pouvez mettre n'importe quel texte. Par exemple, lorsque l'évènement objet "Flèche" d'ID touche le bouclier d'ID 34 du héros, vous pouvez activer la variable 0003 (vu ci-dessus) et mettre sa valeur à 34 et mettez dans les commandes d'évènement :

Code Ruby$game_player.battler.damage = "Garde"
$game_player.battler.damage_pop = true

5)Modifier les touches

Les modifications des touches se font dans le script nommé XRXS-XAS vers la ligne 29

Code Ruby# Touche pour effectuer une compétence
SKILL_ACTION = Input::Y  
# Touche pour changer une compétence
SKILL_CHANGE = Input::R
# Touche pour effectuer un objet
ITEM_ACTION = Input::Z
# Touche pour changer un objet
ITEM_CHANGE = Input::L
# Touche pour attaquer
SLASH_ACTION = Input::C
# Touche pour se défendre
SHIELD_ACTION = Input::A

Lisez les commentaires au-dessus des touches pour savoir à quoi correspond ce dernier. Changez ensuite le A de "Input::A" par la touche que vous désirez (DOWN, LEFT, RIGHT, UP, A, B, C, X, Y, Z, L, R, SHIFT, CTRL, ALT, F5, F6, F7, F8 ou F9)

6) Position de l'HUD

Les positions des images sur l'écran se font sur plusieurs scripts.

(1) : Script nommé "XRXS - XAS" vers la ligne 46 :

Code RubyWINDOW_SKILL_X = 550
WINDOW_SKILL_Y = 370
WINDOW_ITEM_X = 480
WINDOW_ITEM_Y = 370

WINDOW_SKILL est le positionnement de l'image pour les compétences et WINDOW_ITEM pour les objets.

(2) : Script nommé "MOG - XAS_Enemy_HP" vers la ligne 15 :

Code RubyENEMY_INFO_X = 400
ENEMY_INFO_Y = 0

(3) : Script nommé "MOG - XAS_Overdrive" vers la ligne 62 :

Code RubyOVD_X = 0
OVD_Y = 0

(4) : Script nommé "MOG - XAS_Hit Display" vers la ligne 33 :

Code RubyXASCOMBOWINPOS = 70
C'est la position verticale de cette image lorsqu'il y a un "HIT"

(5) : Script nommé "MOG - ADV Move System" vers la ligne 45 :

Code RubyPOS_X = 70
POS_Y = 350

(6) : Script nommé "MOG - MPW HUD Elena" vers la ligne 9 :

Code RubySTMAPX = 0 # Position X
STMAPY = 370 # Position Y

(7) : Script nommé "MOG - MPW Equip " vers la ligne 15 :

Code RubyEQPMAPX = 290 #  Position X
EQPMAPY = 390 # Position Y

6) Overdrive

L'Overdrive peut être modifié dans le script nommé "MOG - XAS_Overdrive". Avec la variable 0011, vous pouvez donner définir le niveau d'Overdrive.

Dans le script nommé "MOG - XAS_Overdrive" vers la ligne :

Code RubyOVD_LEVEL = {
1=> 21,
2=> 25
}
 

Selon le niveau de l'Overdrive, le héros pourra utiliser une compétence spécifique. Ici, "1" est le niveau Overdrive et "21" est l'ID de la compétence, donc : " Niveau Overdrive => ID compétence"

7) Changer les variables.

Pour changer les variables d'impact ou pour les ennemis, allez dans le script nommé "XRXS - XAS" vers la ligne 313 :

Code RubyENEMY_ID_VARIABLE_ID = 4

Cela permet de changer la variable 0004 des ennemis (dans les évènements monstres) par une autre ID.

Vers la ligne 305 :

Code RubyHIT_ID = 3

Cela permet de changer la variable d'impact.

Vers la ligne 305 :

Code RubyACTION_TEMPLATE_MAP_ID = 1

Permet de changer l'ID de la carte "Ferramentas".

Dans le script "MOG - XAS_Overdrive" vers la ligne 19 :

Code RubyOVD_MAX_LEVEL_VAR_ID = 11

Vous pouvez changer la variable 0011 de l'Overdrive vu ci-dessus

8) Conclusion.

Les scripts peuvent être énormément modifiés, ici nous avons parler de l'utilisation pour faire un A-RPG ... suffisamment pour créer sans difficulté avec suffisant de compréhension sur ces scripts.

Informations
Page vue 13445 fois | Auteur : Samarium

RPG Creative version 5 - Libérez votre créativité ! ; Mai 2005 - Mai 2012
0.082s - Optimisé pour une résolution 1024*728 - Tous droits réservés.

Contact - Partenaires - Historique - A propos