AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez | 
 

 ADD-ON GTBS : Effet bonus entre amis

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Voyageur Lv.10
Voyageur Lv.10


Masculin Age : 35
Inscrit le : 04/12/2008
Messages : 383

MessageSujet: ADD-ON GTBS : Effet bonus entre amis   Ven 5 Déc 2008 - 10:43

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 :

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


Dernière édition par ASHKA le Ven 2 Jan 2009 - 10:52, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: ADD-ON GTBS : Effet bonus entre amis   Lun 15 Déc 2008 - 20:14

...
C'est encore moi, j'ai bien chercher, et je ne trovue aucune trace d'un script GTBS (c'est pas faute d'avori utiliser l'option recherche)
Jusqu'à maintenant je n'ai trouver que des scripts de A-RPG pour RMXP, j'en cherchais un pour VX, si il en existe réélement un, ce serait génial de m'indiquer où le prendre ^^
Revenir en haut Aller en bas
Voyageur Lv.10
Voyageur Lv.10


Masculin Age : 35
Inscrit le : 04/12/2008
Messages : 383

MessageSujet: Re: ADD-ON GTBS : Effet bonus entre amis   Lun 15 Déc 2008 - 20:29

Euh, il y a un probleme là ...

GTBS : Gudib Tactical Battle System

Autrement dit, rien à voir avec un A-RPG !!

J'ai poster un lien vers le GTBS ici !!

ASHKA

_________________
FIGHT THE POWER !!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: ADD-ON GTBS : Effet bonus entre amis   Lun 15 Déc 2008 - 20:30

oops, me suis tromper d'initial, confondu avec les T-RPG
A-RPG = Action RPG, pas la même chose, je cherchais le T-RPG à la Fire Emblem ^^"
Merci, vais aller voir le lien!
Revenir en haut Aller en bas
Voyageur Lv.10
Voyageur Lv.10


Masculin Age : 35
Inscrit le : 04/12/2008
Messages : 383

MessageSujet: Re: ADD-ON GTBS : Effet bonus entre amis   Jeu 1 Jan 2009 - 17:02

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 !!

ASHKA

_________________
FIGHT THE POWER !!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dYeu retraité prématurément
dYeu retraité prématurément
avatar


Masculin Age : 22
Inscrit le : 09/02/2008
Messages : 5357

MessageSujet: Re: ADD-ON GTBS : Effet bonus entre amis   Jeu 1 Jan 2009 - 17:11

Merci beaucoup ASHKA (pourquoi en majuscule en fait ?) ^^.

_________________



Discographies présentes dans mon bunker de 2012
- Therion
- The Libertines
- The Strokes
- Muse
- Epica / Kamelot
- Baroness
- Diablo Swing Orchestra
- Daft Punk / Phoenix
- Children Of Bodom slda
- Tori Amos
- Linkin Park slda
- Kvelertak
slda = sauf les derniers albums | e = especially - http://www.terriblefate.com
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpg-maker-vx.bbactif.com/
Contenu sponsorisé




MessageSujet: Re: ADD-ON GTBS : Effet bonus entre amis   

Revenir en haut Aller en bas
 

ADD-ON GTBS : Effet bonus entre amis

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Systèmes complets :: VX - GubiD TBS-
Créer un forum | © phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit