Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

405 connectés actuellement

29379379 visiteurs
depuis l'ouverture

8746 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker VX

Tashiroworld

ConsoleFun

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RPGVX] Classe qui esquive les attaques normales [résolu]


belatucadrus - posté le 04/02/2017 à 04:41:54 (88 messages postés)

❤ 0

Le Pape

Domaine concerné: Script
Logiciel utilisé: RPGVX
Bonsoir

Je suis en train de me prendre la tête avec les scripts.

En fait, dans mon RPG mes personnages peuvent faire évoluer leur classe. En l'occurence l'évolution du voleur a l'avantage d'avoir 100% d'évasion sur les attaques physiques.

Sauf que je ne peux pas définir l'évasion indépendamment pour chaque skill. Alors j'ai un peu triché en mettant que la classe était invulnérable aux attaques de type épée, masse, lance etc...

Par contre, les attaques de base touchent quand même car visiblement, les attaques de base n'ont aucun élément.
Est ce qu'il y a un moyen de faire en sorte que lorsque le personnage d'une classe particulière est ciblée par une attaque de base (et dans l'idéal un skill avec la case "attaque physique" cochée), le personnage évite à 100% l'attaque ?

J'ai un peu regardé du côté de Game_Battler et Game_Actor j'ai un début de piste sur comment sont calculés les dégâts notemment avec cette ligne :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  #--------------------------------------------------------------------------
  # * Apply Normal Attack Effects
  #     attacker : Attacker
  #--------------------------------------------------------------------------
  def attack_effect(attacker)
    clear_action_results
    unless attack_effective?(attacker)
      @skipped = true
      return
    end
    if rand(100) >= calc_hit(attacker)            # determine hit ratio
      @missed = true
      return
    end
    if rand(100) < calc_eva(attacker)             # determine evasion rate
      @evaded = true
      return
    end
    make_attack_damage_value(attacker)            # damage calculation
    execute_damage(attacker)                      # damage reflection
    if @hp_damage == 0                            # physical no damage?
      return                                    
    end
    apply_state_changes(attacker)                 # state change
  end



Ca parle d'evasion mais globalement je sais pas trop comment toucher au code

To multiply...


Vruche - posté le 06/02/2017 à 21:28:34 (74 messages postés)

❤ 0

Salut !

Le moyen qui me semble le plus simple serait de modifier la fonction qui définit le taux d'esquive en % d'un Game_Actor (l'objet qui représente un personnage en combat).

Donc dans Game_Actor (ligne 270 de base), il te faudrait remplacer par :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
 
  #--------------------------------------------------------------------------
  # * Get Evasion Rate
  #--------------------------------------------------------------------------
  def eva
    n = 5
    for item in armors.compact do n += item.eva end
    n = 100 if @class_id == (numéro de ta classe Voleur dans la bdd) # ligne à rajouter
    return n
  end
 



J'ai pas testé mais ça devrait marcher.

Eldrao: Le Miroir Mémoriel, Ruin (Chrono Making)


kanatos - posté le 06/02/2017 à 22:13:50 (293 messages postés)

❤ 0

cute rabbit

@Vruche plutôt ça non ? ^^
bon après je sais pas comment est calculé la valeur esquive sur rmvx mais
c'est marqué sur la doc.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
  #--------------------------------------------------------------------------
  # * Get Evasion Rate
  #--------------------------------------------------------------------------
   def eva
     n = 5
    for item in armors.compact do n += item.eva end
     if @class_id == (numéro de ta classe Voleur dans la bdd) # ligne à rajouter)
     n = 100
     end
    return n
   end




Vruche - posté le 06/02/2017 à 22:38:18 (74 messages postés)

❤ 0

C'est pareil les 2 syntaxes fonctionnent :sourire2

Eldrao: Le Miroir Mémoriel, Ruin (Chrono Making)


belatucadrus - posté le 06/02/2017 à 23:39:22 (88 messages postés)

❤ 0

Le Pape

Merci pour vos réponses :)

Mais j'ai une question : Est ce qu'avec cette ligne de code, mon voleur esquive aussi les skills avec l'option "attaque physique" activée ?

To multiply...


Vruche - posté le 07/02/2017 à 00:14:06 (74 messages postés)

❤ 0

Oui, cette valeur est appliquée pour les attaques normales et les skills avec l'option "attaque physique".

Si tu veux voir en détail le calcul tu peux regarder ce bout de code dans Game_Battler :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  #--------------------------------------------------------------------------
  # * Calculate Final Evasion Rate
  #     user : Attacker, or user of skill or item
  #     obj  : Skill or item (for normal attacks, this is nil)
  #--------------------------------------------------------------------------
  def calc_eva(user, obj = nil)
    eva = self.eva
    unless obj == nil                       # if it is a skill or an item
      eva = 0 unless obj.physical_attack    # 0% if not a physical attack
    end
    unless parriable?                       # If not parriable
      eva = 0                               # 0%
    end
    return eva
  end



obj.physical_attack correspond à l'option "attaque physique" du skill (ou objet).
"self.eva" appelle le calcul que j'ai cité dans mon premier message.

Eldrao: Le Miroir Mémoriel, Ruin (Chrono Making)


belatucadrus - posté le 07/02/2017 à 03:30:33 (88 messages postés)

❤ 0

Le Pape

Merci !!! :)

To multiply...

Index du forum > Entraide > [RESOLU] [RPGVX] Classe qui esquive les attaques normales [résolu]

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers