Voyageur Lv.10
Age : 42 Inscrit le : 04/12/2008 Messages : 383
| Sujet: 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 |
|
Invité
| Sujet: 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 ^^ |
|
Voyageur Lv.10
Age : 42 Inscrit le : 04/12/2008 Messages : 383
| Sujet: 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 |
|
Invité
| Sujet: 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! |
|
Voyageur Lv.10
Age : 42 Inscrit le : 04/12/2008 Messages : 383
| Sujet: 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 |
|
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
| Sujet: Re: ADD-ON GTBS : Effet bonus entre amis Jeu 1 Jan 2009 - 17:11 | |
| Merci beaucoup ASHKA (pourquoi en majuscule en fait ?) ^^. |
|
| Sujet: Re: ADD-ON GTBS : Effet bonus entre amis | |
| |
|