- ASHKAMembre
- Nombre de messages : 242
Age : 42
Localisation : Omnipresent !!
Distinction : aucune
Date d'inscription : 28/10/2008
ADD-ON GTBS : Effet bonus entre amis
Mer 26 Nov 2008 - 16:54
Nom : ADD-ON GTBS : Effet bonus entre amis
Auteur : ASHKA
Info : Un script à coller !!
Les amateurs de T-RPG ne seront pas surpris, c'est un classique.
Il faut mieux combattre prés de ces amis, ça booste le moral !!
Collez ce script dans "Materials", sous les autres scripts de combat :
Voici un schema rapidement fait du fonctionnement des deux options :
Et voici un screen du rendu in-game :
ASHKA
Auteur : ASHKA
Info : Un script à coller !!
Les amateurs de T-RPG ne seront pas surpris, c'est un classique.
Il faut mieux combattre prés de ces amis, ça booste le moral !!
Collez ce script dans "Materials", sous les autres scripts de combat :
- Code:
###################################
#
# ADD-ON GTBS
# Effet bonus entre amis
#
#
###################################
module GTBS_HK_add
# Indiquer ici les cas de declenchement de l'effet soutien / renfort :
# "atk" pour les ataques basiques
# "phys" pour les competences d'attaques physiques
Cas = ["atk", "phys"] # ici, seul les competences "magique" ne declenche pas l'effet soutien / renfort
# Indiquer ici l'ID des status empechant un battler d'etre Soutien ou Renfort :
Etat = [1, 3, 4, 5, 6, 7, 8]
# Indiquer si vous souhaitez utiliser l'effet de soutien pour les alliés :
Soutien_actif = true
# Indiquer si vous souhaitez utliser l'effet de soutien pour les ennemis :
Soutien_enemy = true
# Defini le terme utilisé pour le pop-up de soutien
Pop_soutien = "Soutien !!"
# Indiquer la modification de l'indice pour chaque allié en etat de soutien :
Indice_soutien = 0.5 # ( augmentation des degats causés )
# Couleur du message ( deux couleurs car effet "clignotant" )
Soutien_color1 = Color.new(255, 0, 0, 255) # rouge
Soutien_color2 = Color.new(255, 255, 0, 255) # jaune
# Indiquer si vous souhaitez utiliser l'effet de renfort pour les alliés :
Renfort_actif = true
# Indiquer si vous souhaitez utiliser l'effet de renfort pour les ennemis :
Renfort_enemy = true
# Defini le terme utilisé pour le pop-up de renfort
Pop_renfort = "Renfort !!"
# Indiquer la modification de l'indice pour chaque allié en etat de renfort :
Indice_renfort = 0.2 # ( diminution des degats reçus )
# Couleur du message ( deux couleurs car effet "clignotant" )
Renfort_color1 = Color.new(0, 255, 0, 255) # vert
Renfort_color2 = Color.new(0, 0, 255, 255) # bleu
# Pour chaque ID de héros, indiquez l'ID de ces amis :
Tab_ami = { 1 => [2, 9], 2 => [1, 9], 9 => [1, 2] }
# Pour les ennemis, il suffit d'inscrire les id de leurs amis dans leurs notes :
# Exemple : AMI=1-4-9
# Cet ennemi sera amis avec les ennemis d'ID 1, 4 et 9
end
###################################
class String
def decoupe
bloc = []
self.split(/[\r\n]+/).each { |line| bloc.push(line) }
return bloc
end
end
###################################
module RPG
class Enemy
def liste_ami
tab = []
text = @note.decoupe
for line in text
if line.include?("AMI=")
tab_num = line.delete("AMI=").split("-")
for id in tab_num
tab.push(id.to_i)
end
end
end
return tab
end
end
end
###################################
class Game_Battler
attr_accessor :indice_bonus
alias hk_add_init initialize
def initialize
hk_add_init
@indice_bonus = 1
end
alias hk_add_make_atk_dmg make_attack_damage_value
def make_attack_damage_value(attacker)
hk_add_make_atk_dmg(attacker)
@hp_damage = (@hp_damage * self.indice_bonus).round
@hp_damage = (@hp_damage * attacker.indice_bonus).round
end
alias hk_add_obj_dmg make_obj_damage_value
def make_obj_damage_value(user, obj)
hk_add_obj_dmg(user, obj)
@hp_damage = (@hp_damage * self.indice_bonus).round
@hp_damage = (@hp_damage * user.indice_bonus).round
end
alias hk_add_attack_effect attack_effect
def attack_effect(attacker, affected=0)
hk_add_attack_effect(attacker)
$scene.dispose_pop_win
end
alias hk_add_skill_effect skill_effect
def skill_effect(user, skill, affected=0)
hk_add_skill_effect(user, skill)
$scene.dispose_pop_win
end
def check_soutien(enemy)
@centre = enemy
@modif = GTBS_HK_add::Indice_soutien
@type = 0
check_bonus
end
def check_renfort(enemy)
@centre = self
@modif = 0 - GTBS_HK_add::Indice_renfort
@modif = 0 if @modif < 0
@type = 1
check_bonus
end
def can_act?
for id in GTBS_HK_add::Etat
return false if state?(id)
end
return true
end
end
###################################
class Game_Actor < Game_Battler
def liste_ami
if GTBS_HK_add::Tab_ami.key?(@actor_id)
return GTBS_HK_add::Tab_ami[@actor_id]
else
return []
end
end
def check_bonus
case_open = [[0, -1], [1, 0], [0, 1], [-1, 0]]
for hero in $game_system.tactics_actors
next if hero.dead?
next unless hero.can_act?
next unless liste_ami.include?(hero.id)
for bloc in case_open
if hero.x == (@centre.x + bloc[0]) and hero.y == (@centre.y + bloc[1])
hero.turn_to(@centre)
$scene.create_pop_win(hero.screen_x, hero.screen_y, @type)
self.indice_bonus += @modif
end
end
end
end
end
###################################
class Game_Enemy < Game_Battler
def liste_ami
return enemy.liste_ami
end
def check_bonus
case_open = [[0, -1], [1, 0], [0, 1], [-1, 0]]
for enemy in $game_system.tactics_enemies
next if self == enemy
next if enemy.dead?
next unless enemy.can_act?
next unless liste_ami.include?(enemy.enemy_id)
for bloc in case_open
if enemy.x == (@centre.x + bloc[0]) and enemy.y == (@centre.y + bloc[1])
enemy.turn_to(@centre)
$scene.create_pop_win(enemy.screen_x, enemy.screen_y, @type)
self.indice_bonus += @modif
end
end
end
end
end
###################################
class Pop_Info < Window_Base
def initialize(x, y, type = 0)
super(x - (160 / 2), y - 76, 160, WLH + 32)
@type = type
refresh
end
def refresh
self.contents.clear
case @type
when 0
text = GTBS_HK_add::Pop_soutien
if Graphics.frame_count % 4 < 2
self.contents.font.color = GTBS_HK_add::Soutien_color1
else
self.contents.font.color = GTBS_HK_add::Soutien_color2
end
when 1
text = GTBS_HK_add::Pop_renfort
if Graphics.frame_count % 4 < 2
self.contents.font.color = GTBS_HK_add::Renfort_color1
else
self.contents.font.color = GTBS_HK_add::Renfort_color2
end
end
self.contents.draw_text(0, 0, 160-32, 24, text, 1)
end
end
###################################
class Scene_Battle_TBS < Scene_Base
alias hk_add_start start
def start
@tab_win = []
hk_add_start
end
alias hk_add_basic_update update_basic
def update_basic(main = false)
hk_add_basic_update(main)
update_pop_win
end
def wait(duration)
for x in 0..duration
update_basic
end
end
alias hk_add_make_atk_result make_attack_result
def make_attack_result(target, battler = @active_battler, affected_count = 0)
make_bonus_effet(target, battler)
wait(40) if @tab_win != []
hk_add_make_atk_result(target, battler)
end
alias hk_add_make_skill_result make_skill_result
def make_skill_result(target, battler = @active_battler, affected_count = 0)
make_bonus_effet(target, battler)
wait(40) if @tab_win != []
hk_add_make_skill_result(target, battler)
end
def make_bonus_effet(target, battler)
target.indice_bonus = 1
battler.indice_bonus = 1
if battler.current_action.attack?
return if not GTBS_HK_add::Cas.include?("atk")
end
if battler.current_action.skill?
skill = battler.current_action.skill
return if not skill.physical_attack
return if skill.physical_attack and not GTBS_HK_add::Cas.include?("phys")
end
if battler.is_a?(Game_Actor) and GTBS_HK_add::Soutien_actif
battler.check_soutien(target) if battler.liste_ami != []
else
if target.is_a?(Game_Actor) and GTBS_HK_add::Renfort_actif
target.check_renfort(battler) if target.liste_ami != []
end
end
if battler.is_a?(Game_Enemy) and GTBS_HK_add::Soutien_enemy
battler.check_soutien(target) if battler.liste_ami != []
else
if target.is_a?(Game_Enemy) and GTBS_HK_add::Renfort_enemy
target.check_renfort(battler) if target.liste_ami != []
end
end
end
def create_pop_win(x, y, type)
win = Pop_Info.new(x, y, type)
win.opacity = 0
win.visible = true
win.z = 2000
@tab_win.push(win)
end
def update_pop_win
if @tab_win != []
for win in @tab_win
win.refresh
end
end
end
def dispose_pop_win
for win in @tab_win
win.dispose
end
@tab_win.clear
end
end
###################################
Voici un schema rapidement fait du fonctionnement des deux options :
Et voici un screen du rendu in-game :
ASHKA
- ElscortoMembre
- Nombre de messages : 486
Age : 39
Localisation : Dans sa tombe en ce moment
Distinction : Homme de goût en chef.
Date d'inscription : 10/07/2008
Re: ADD-ON GTBS : Effet bonus entre amis
Jeu 27 Nov 2008 - 10:06
Excellent script ASHKA comme a ton habitude
Re: ADD-ON GTBS : Effet bonus entre amis
Jeu 27 Nov 2008 - 18:35
Merci pour le script !
Vivement les prochains !
Vivement les prochains !
Re: ADD-ON GTBS : Effet bonus entre amis
Lun 29 Déc 2008 - 21:44
Wow ! Un add-on incontournable ! Merci beaucoup pour le partage !
- MayDiosMembre
- Nombre de messages : 92
Localisation : Là, sous tes yeux.
Distinction : aucune
Date d'inscription : 21/12/2008
Re: ADD-ON GTBS : Effet bonus entre amis
Mer 31 Déc 2008 - 13:39
Que de bons scripts ! Si je fais un T-RPG, c'est sûr que je prends celui-là ! Merci !
Re: ADD-ON GTBS : Effet bonus entre amis
Mer 31 Déc 2008 - 20:49
Après avoir testé le script, je me permet quelques suggestions :
- Le script pourrait être amélioré en prenant en compte les skills dotés de l'option "Attaque physique". Ici, seules les attaques de base provoquent le soutien et le renfort, et pour moi qui ne donne que des skills à mes monstres, le renfort devient obsolète.
- Une autre amélioration : donner la possibilité aux enemis de disposer de ces effets, pour augmenter le challenge des joueurs !
En tout cas, c'est un superbe script ! A mettre entre toutes les mains ! ^^
- Le script pourrait être amélioré en prenant en compte les skills dotés de l'option "Attaque physique". Ici, seules les attaques de base provoquent le soutien et le renfort, et pour moi qui ne donne que des skills à mes monstres, le renfort devient obsolète.
- Une autre amélioration : donner la possibilité aux enemis de disposer de ces effets, pour augmenter le challenge des joueurs !
En tout cas, c'est un superbe script ! A mettre entre toutes les mains ! ^^
- ASHKAMembre
- Nombre de messages : 242
Age : 42
Localisation : Omnipresent !!
Distinction : aucune
Date d'inscription : 28/10/2008
Re: ADD-ON GTBS : Effet bonus entre amis
Jeu 1 Jan 2009 - 11:58
Oui, suggestions interessantes, je vais voir pour ajouter ça !!
Si tu a d'autres suggestions et/ou idées d'add-on, n'hesite pas à le dire !!
ASHKA
Si tu a d'autres suggestions et/ou idées d'add-on, n'hesite pas à le dire !!
ASHKA
Re: ADD-ON GTBS : Effet bonus entre amis
Jeu 1 Jan 2009 - 15:03
Oki, je posterais si j'ai quelque chose qui me viens en tête.
Pour l'instant, un add-on permettant de faire des grands enemis tenant sur plusieures cases pourrait le faire, mais j'ai cru lire sur les forums anglais que GubiD comptait déjà inclure ça dans une future version (à confirmer ^^'), alors c'est peut-être pas la peine...
Pour l'instant, un add-on permettant de faire des grands enemis tenant sur plusieures cases pourrait le faire, mais j'ai cru lire sur les forums anglais que GubiD comptait déjà inclure ça dans une future version (à confirmer ^^'), alors c'est peut-être pas la peine...
- ASHKAMembre
- Nombre de messages : 242
Age : 42
Localisation : Omnipresent !!
Distinction : aucune
Date d'inscription : 28/10/2008
Re: ADD-ON GTBS : Effet bonus entre amis
Jeu 1 Jan 2009 - 17:58
Nouvelle version du script !!
- Possibilité de faire intervenir l'effet pour les competences physiques.
- Possiblité pour les ennemis aussi d'avoir cet effet bonus ( soutien / renfort ).
- Plus besoin de modifier le script TBS !!
@tink : Les ennemis de plusieurs cases, ça fait un bail qu'il nous le promets ...
( Depuis la premiere version XP, je crois ... )
Enfin, on ne va pas se plaire qu'il ai perdu du temps à faire une version VX !!
ASHKA
- Possibilité de faire intervenir l'effet pour les competences physiques.
- Possiblité pour les ennemis aussi d'avoir cet effet bonus ( soutien / renfort ).
- Plus besoin de modifier le script TBS !!
@tink : Les ennemis de plusieurs cases, ça fait un bail qu'il nous le promets ...
( Depuis la premiere version XP, je crois ... )
Enfin, on ne va pas se plaire qu'il ai perdu du temps à faire une version VX !!
ASHKA
Re: ADD-ON GTBS : Effet bonus entre amis
Jeu 1 Jan 2009 - 21:33
Déjà amélioré ?? Wow ! Oo
Je vais essayer le nouveau script. S'il marche chez moi il marchera sans doute partout ^^'
[Edit : Après un test assez pointu de l'ensemble, j'ai repéré deux petits défauts. Le reste marche niquel !
Le script tel qu'il est donné ci-dessus plante lorsque le monstre attaque (ou utilise un skill d'attaque physique, peut-être). Voilà le message d'erreur :
Deuxième défaut, même si c'en est pas vraiment un : il ne faut pas mettre de valeur supérieur à 1.0 pour le renfort, sinon les attaques contrent les persos ou monstres renforcés font gagner des points de vie. Enfin, mettre une valeur supérieure à 1.0 n'est pas vraiment utile de toute manière...^^'
A part ça, empécher que les personnages sonnés (ou qui ne peuvent pas attaquer de manière générale) offrent un bonus de renfort ou de soutien à leurs alliés, peut être une amélioration réaliste. Je n'ai rien trouvé d'autre qui manquerait à ce script. Beau boulot ! ]
Erf, je me disais bien que le dévellopement avait l'air de traîner un peu :/@tink : Les ennemis de plusieurs cases, ça fait un bail qu'il nous le promets ...
( Depuis la premiere version XP, je crois ... )
Non, surtout pas moi ^^.Enfin, on ne va pas se plaire qu'il ai perdu du temps à faire une version VX !!
Je vais essayer le nouveau script. S'il marche chez moi il marchera sans doute partout ^^'
[Edit : Après un test assez pointu de l'ensemble, j'ai repéré deux petits défauts. Le reste marche niquel !
Le script tel qu'il est donné ci-dessus plante lorsque le monstre attaque (ou utilise un skill d'attaque physique, peut-être). Voilà le message d'erreur :
- Spoiler:
le message
la ligne concernée
Deuxième défaut, même si c'en est pas vraiment un : il ne faut pas mettre de valeur supérieur à 1.0 pour le renfort, sinon les attaques contrent les persos ou monstres renforcés font gagner des points de vie. Enfin, mettre une valeur supérieure à 1.0 n'est pas vraiment utile de toute manière...^^'
A part ça, empécher que les personnages sonnés (ou qui ne peuvent pas attaquer de manière générale) offrent un bonus de renfort ou de soutien à leurs alliés, peut être une amélioration réaliste. Je n'ai rien trouvé d'autre qui manquerait à ce script. Beau boulot ! ]
- ASHKAMembre
- Nombre de messages : 242
Age : 42
Localisation : Omnipresent !!
Distinction : aucune
Date d'inscription : 28/10/2008
Re: ADD-ON GTBS : Effet bonus entre amis
Ven 2 Jan 2009 - 11:46
Bon, re-nouvelle version !!
- Correction du bug mentionné par Tink.
Pour info, il s'agit de ce qu'on pourrait appeler une donnée fantome.
Elle est presente dans la vieillle version ( oui, il y a bien deux versions VX, j'ai vu des differences !! ), mais n'etait pas utilisé.
Elle n'est plus dans la version la plus recente.
( Pour info, on trouve des methodes et/ou variables qui ne sont pas utilisées mais qui sont là en prevision des prochains ajouts !! )
- Bloquage de l'effet "Guérison" si l'indice de Renfort devient négatif.
( Au max, annulation des degats mais pas de guérison )
- Possibilité de bloquer l'effet Soutien/Renfort si le battler est sous certains etats.
( Ca existait pour les morts, mais je n'avais pas pensé aux autres etats genre Paralysie et cie ... )
Voila !!
ASHKA
- Correction du bug mentionné par Tink.
Pour info, il s'agit de ce qu'on pourrait appeler une donnée fantome.
Elle est presente dans la vieillle version ( oui, il y a bien deux versions VX, j'ai vu des differences !! ), mais n'etait pas utilisé.
Elle n'est plus dans la version la plus recente.
( Pour info, on trouve des methodes et/ou variables qui ne sont pas utilisées mais qui sont là en prevision des prochains ajouts !! )
- Bloquage de l'effet "Guérison" si l'indice de Renfort devient négatif.
( Au max, annulation des degats mais pas de guérison )
- Possibilité de bloquer l'effet Soutien/Renfort si le battler est sous certains etats.
( Ca existait pour les morts, mais je n'avais pas pensé aux autres etats genre Paralysie et cie ... )
Voila !!
ASHKA
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 33
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: ADD-ON GTBS : Effet bonus entre amis
Ven 2 Jan 2009 - 12:34
Ouah... Une seule chose à dire, respect pour Ashka, t'as l'air de savoir te démerder en RGSS2. Apprends- moi °°
Re: ADD-ON GTBS : Effet bonus entre amis
Ven 2 Jan 2009 - 14:41
C'est clair, tu as pas traîné, pour mettre à jour le script !
En tout cas, un grand bravo à toi, Ashka ! Ce script est vraiment bien fait ! Je vois pas quoi y rajouter, là...
Merci beaucoup pour le temps que tu y a passé, ça aidera pas mal les créateurs de tacticals !
En tout cas, un grand bravo à toi, Ashka ! Ce script est vraiment bien fait ! Je vois pas quoi y rajouter, là...
Merci beaucoup pour le temps que tu y a passé, ça aidera pas mal les créateurs de tacticals !
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum