Partagez
Aller en bas
avatar
Varkan
Membre

Nombre de messages : 292
Distinction : aucune
Date d'inscription : 27/01/2010

Problème de Contre attaque [Résolu]

le Lun 13 Sep 2010 - 20:09
Re-re-yop yop !

Je viens de rencontrer un autre gros problème qui ne fait vraiment pas propre en combat.

J'utilise le script de contre-attaque : Add-on SBS Tankentai QTE contrattack

Spoiler:

###################################
#
# Add-on SBS Tankentai
# QTE contrattack
#
###################################
module QTE_ctratk
# Les heros connaissant l'unes de ces competences pourront peut-etre contre-attaquer :
ID_SKILL = [128]
# NOm du fichier où se trouve les icones servant à designer les touches de "réaction" ( repertoire systeme !! )
Nom = "fleches"
# Temps de réaction pour la premiere phase du QTE de contrattack
Phase1 = 15
# Temps de réaction pour la seconde phase du QTE de contrattack
Phase2 = 20
end
###################################
module N01
action_qte = {
"debut_qte" => ["script", "$scene.init_qte"],
}
ANIME.merge!(action_qte)

sequence_qte = {
"atk" => ["PREV_MOVING_TARGET", "debut_qte"],

"fin" => ["WPN_SWING_V", "OBJ_ANIM_WEIGHT",
"12","WPN_SWING_VL","OBJ_ANIM_L","Two Wpn Only","16",
"Can Collapse","FLEE_RESET"],
"pas" => ["JUMP_AWAY"],
"ctratk" => ["JUMP_TO", "WPN_SWING_V"]
}
ACTION.merge!(sequence_qte)
end
###################################
class Scene_Battle < Scene_Base
def init_qte
@cible = $game_party.members[@active_battler.action.target_index]
unless @cible.use_contrattack?
@spriteset.set_action(false, @active_battler.index, "fin")
return
end
x = @cible.base_position_x - 30
y = @cible.base_position_y - 68
@num = rand(4)
@win_qte = Win_QTE.new(x, y, @num)
@win_qte.opacity = 0
@time = QTE_ctratk::Phase1
@continuer = true
@phase = 0
end
def update_qte
if (Input.trigger?(Input::DOWN) and @num == 0) or (Input.trigger?(Input::LEFT) and @num == 1) or (Input.trigger?(Input::UP) and @num == 2) or (Input.trigger?(Input::RIGHT) and @num == 3)
if @phase == 0
@spriteset.set_action(true, @cible.index, "pas")
@num = rand(4)
@win_qte.refresh(@num)
@time = QTE_ctratk::Phase2
@phase = 1
elsif @phase == 1
@phase = 2
@time = 0
end
elsif (Input.trigger?(Input::DOWN) and @num != 0) or (Input.trigger?(Input::LEFT) and @num != 1) or (Input.trigger?(Input::UP) and @num != 2) or (Input.trigger?(Input::RIGHT) and @num != 3)
@time = 0
end
fin_qte if @time == 0
@time -= 1
end
def fin_qte
@win_qte.visible = false
case @phase
when 0
@spriteset.set_action(false, @active_battler.index, "fin")
dmg = @cible.result_atk(@active_battler)
@spriteset.set_damage_pop(true, @cible.index, dmg)
@cible.hp -= dmg
wait(40)
when 1
@spriteset.set_action(false, @active_battler.index, "RESET_POSITION")
@spriteset.set_action(true, @cible.index, "RESET_POSITION")
wait(40)
when 2
@spriteset.set_action(true, @cible.index, "ctratk")
if @cible.weapon_id != 0
wait(5)
@active_battler.animation_id = $data_weapons[@cible.weapon_id].animation_id
end
wait(10)
dmg = @active_battler.result_atk(@cible)
@spriteset.set_damage_pop(false, @active_battler.index, dmg)
@active_battler.hp -= dmg
@active_battler.perform_collapse if @active_battler.hp <= 0
wait(40)
@spriteset.set_action(false, @active_battler.index, "RESET_POSITION")
@spriteset.set_action(true, @cible.index, "RESET_POSITION")
wait(40)
end
@win_qte.dispose
@win_qte = nil
end
end
###################################
class Win_QTE < Window_Base
def initialize(x, y, num)
super(x, y, 24 + 32, 24 + 32)
refresh(num)
end
def refresh(num)
self.contents.clear
bitmap = Cache.system(QTE_ctratk::Nom)
self.contents.blt(0, 0, bitmap, Rect.new(num * 24, 0, 24, 24))
end
end
###################################
class Game_Actor < Game_Battler
def use_contrattack?
for id in QTE_ctratk::ID_SKILL
return true if skill_id_learn?(id)
end
return false
end
end
###################################
class Game_Battler
def result_atk(attacker)
make_attack_damage_value(attacker)
dmg = @hp_damage
@hp_damage = 0
return dmg
end
end
###################################

Et quand l'ennemi devient confus via une de mes attaques, si celui-ci est solo, il reste sur place, les flèches s'affiche en-dessus de la tête du héros qui se fait attaquer sans que l'ennemi bouge et après il perd des PV si j'esquive pas. Si ils sont 2, celui qui est confus va attaqué sont pote (par exemple) et les flèches vont apparaître sur le héros en question et si j'esquive pas... je perd à nouveau des PV.

Voici ce que ça donne en image :





Donc le problème vient du fait que le script ne gère pas les altérations d'états du style confusion.

Une personne saurait remédier à ceci ?

Merci d'avance pour votre aide.


Dernière édition par Varkan le Lun 20 Sep 2010 - 19:02, édité 1 fois
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: Problème de Contre attaque [Résolu]

le Mar 14 Sep 2010 - 16:49
J'ai pas testé mais tu pourrais essayer de changer :

unless @cible.use_contrattack?

en

unless @cible.use_contrattack? or @active_battler.confusion?

En tout cas , je vois que tu testes tout les cas , bravo !
avatar
Varkan
Membre

Nombre de messages : 292
Distinction : aucune
Date d'inscription : 27/01/2010

Re: Problème de Contre attaque [Résolu]

le Mar 14 Sep 2010 - 22:08
ça ne change malheureusement rien.
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: Problème de Contre attaque [Résolu]

le Mer 15 Sep 2010 - 10:33
Ah zut .

Attends , je reflechit tout haut ...
@cible.use_contrattack? sera à TRUE
@active_battler.confusion? sera à TRUE aussi .
ça donne TRUE au final => donc contre-attaque .

Et donc mon test ne vas pas du tout Smile

voyons ce qu'il faudrait :
TRUE + FALSE => TRUE
TRUE + TRUE => FALSE
FALSE + TRUE => FALSE
FALSE + FALSE => FALSE

Ce qui donne :
unless @cible.use_contrattack? and not @active_battler.confusion?

logique !!
avatar
Varkan
Membre

Nombre de messages : 292
Distinction : aucune
Date d'inscription : 27/01/2010

Re: Problème de Contre attaque [Résolu]

le Ven 17 Sep 2010 - 14:40
Alors, je viens d'essayer et en fait maintenant je peux même plus contre-attaquer ^^
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: Problème de Contre attaque [Résolu]

le Ven 17 Sep 2010 - 15:12
Ah , meme quand l'ennemi n'est pas confus, c'est ça ?
Le probleme , c'est que je peux pas reproduire , je peux juste te donner des pistes ...

Tu sais faire du débuggage ? il faudrait ajouter des "print" pour connaitre certaines valeurs :

print @cible.use_contrattack?
print @active_battler.confusion?

juste avant le unless ...
ça te donneras des messages pendant le combat avec les valeurs .
avatar
Varkan
Membre

Nombre de messages : 292
Distinction : aucune
Date d'inscription : 27/01/2010

Re: Problème de Contre attaque [Résolu]

le Ven 17 Sep 2010 - 17:58
Oui je sais faire mais pas en ruby, mais je ne savais pas que le print était aussi possible, je test et je te redis.

Edit :

Attaque normal = false, false

Attaque en étant confus : false, true
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: Problème de Contre attaque [Résolu]

le Ven 17 Sep 2010 - 18:59
false pour le premier ???
C'est étrange , non ? Ton personnage peux contre-attaquer donc ça aurait du etre TRUE .
Il a bien ce skill 128 ton personnage ?
avatar
Varkan
Membre

Nombre de messages : 292
Distinction : aucune
Date d'inscription : 27/01/2010

Re: Problème de Contre attaque [Résolu]

le Ven 17 Sep 2010 - 19:54
Ah oué la riposte n'y était pas quel c..

Oui donc c'est True, True excuse moi.
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: Problème de Contre attaque [Résolu]

le Lun 20 Sep 2010 - 10:44
Et ça marche ? y'a encore un probleme ?
avatar
Varkan
Membre

Nombre de messages : 292
Distinction : aucune
Date d'inscription : 27/01/2010

Re: Problème de Contre attaque [Résolu]

le Lun 20 Sep 2010 - 19:01
ça marche !!! tu es mon sauveur driic encore une fois merci pour tout !!
avatar
Dudu'
Staffeux retraité

Nombre de messages : 2060
Age : 27
Distinction : Apprenti KGB-boy en avenir
[Coco' Smile]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009

Re: Problème de Contre attaque [Résolu]

le Lun 20 Sep 2010 - 19:14
résolu => déplacer
avatar
Elisa'
Staffeux retraité

Nombre de messages : 2924
Age : 20
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris
[Coco' Smile]
Plus que 2 ans avant d'épouser Coco' ! Compte à rebours lancé !
[Auto-distinction]

Adepte du "Je le savais" alors qu'elle le savait pas.
Date d'inscription : 30/05/2009

Re: Problème de Contre attaque [Résolu]

le Mer 22 Sep 2010 - 19:09
Euh Adurna ? Le sujet est pas déplacé là x)
Je déplace ^^"

_________________


Cliquez ici pour voter pour la commu'
Contenu sponsorisé

Re: Problème de Contre attaque [Résolu]

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