Make & Graph
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
SSD interne Crucial BX500 2,5″ SATA – 500 Go à 29,99€
29.99 €
Voir le deal

Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Combat en temps réel (ABS) de XAS et Moghunter

2 participants

Aller en bas  Message [Page 1 sur 1]

Zack Fair

Zack Fair
Membre Actif
Membre Actif

Bonjour
Auteur : Xiderowg

Fonction : Permet de faire un combat en 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'éléments !

Screen :

Combat en temps réel (ABS) de XAS et Moghunter Xas

Combat en temps réel (ABS) de XAS et Moghunter My.php?image=screenxas3pb1


Nombre de scripts : 57 :shock: je peut pas les poster tous....
Je vais mettre un lien vers la demo qui contient tout les scripts et ressources :
http://www.atelier-rgss.com/RGSS/Demos/XAS_Hero_3_2.zip

Explication :(auteur Samarium)
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 :

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

Pour tirer un objet, mettez

Code:
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:
 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:
 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:
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:
 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:
 ITEM_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:
 ITEM_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:
 module 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:
$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:
$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:
# 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:
WINDOW_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:
ENEMY_INFO_X = 400
ENEMY_INFO_Y = 0
(3) : Script nommé "MOG - XAS_Overdrive" vers la ligne 62 :
Code:

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

Code:
XASCOMBOWINPOS = 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:
POS_X = 70
POS_Y = 350
(6) : Script nommé "MOG - MPW HUD Elena" vers la ligne 9 :

Code:
STMAPX = 0 # Position X
STMAPY = 370 # Position Y
(7) : Script nommé "MOG - MPW Equip " vers la ligne 15 :

Code:
EQPMAPX = 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:
OVD_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:
ENEMY_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:
HIT_ID = 3
Cela permet de changer la variable d'impact.

Vers la ligne 305 :

Code:
ACTION_TEMPLATE_MAP_ID = 1
Permet de changer l'ID de la carte "Ferramentas".

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

Code:
OVD_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.

Bon c'est a peut prés tout. Si vous avez des question , vous n'avez qu'a me demander .



Dernière édition par Yagami le Sam 8 Nov - 17:15, édité 1 fois

http://www.google.com

Gray Fox

Gray Fox
Membre
Membre

T'es en retard petit, XAS 3.2 vient de sortir,du nouveau? bien sur, alors voici quelques nouveautés:
Combat en temps réel (ABS) de XAS et Moghunter XAS_UP01 Combat en temps réel (ABS) de XAS et Moghunter XAS_UP02

PS:Merci de mettre Samarium l'auteur du tutoriel ^^

EDIT: Yagami
J'ai deplacé le lien

Zack Fair

Zack Fair
Membre Actif
Membre Actif

PS:Merci de mettre Samarium l'auteur du tutoriel ^^
Ben j'ai dit que l'auteur etait Samaruim.et j'ai pas dit que c'est la derniére demo ou version.
Bon je vais delacer le lien vers mon message, sa sera mieux.

http://www.google.com

Contenu sponsorisé



Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum

 

Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser