- ASHKAMembre
- Nombre de messages : 242
Age : 42
Localisation : Omnipresent !!
Distinction : aucune
Date d'inscription : 28/10/2008
ADD-ON GTBS : Competences evolutives
Jeu 27 Nov 2008 - 21:47
Nom : ADD-ON GTBS : Competences evolutives
Auteur : ASHKA
Info : Un script à ajouter, une modification à faire et un peu de configuration ...
A chaque utilisation d'une competence par un héros, celui-ci reçoit de l'experience.
A terme, cette experience fait augmenter le niveau de la competence.
Ce qui joue sur la portée, la zone d'effet, le cout MP ou le taux d'effet de la competence.
En combat tactique, lors de la selection des competences, les touches Q/W permettent de changer le niveau
de la competence pour pouvoir utiliser celui qui convient le mieux à la situation.
Ajoutez ce script dans "Materials" au dessous des autres scripts du GTBS :
Et ajoutez ces lignes dans le script "GTBS_Move/Weapon/Skill" :
Lisez bien le debut du script, il y a quelques reglages à faire !!
ASHKA
Auteur : ASHKA
Info : Un script à ajouter, une modification à faire et un peu de configuration ...
A chaque utilisation d'une competence par un héros, celui-ci reçoit de l'experience.
A terme, cette experience fait augmenter le niveau de la competence.
Ce qui joue sur la portée, la zone d'effet, le cout MP ou le taux d'effet de la competence.
En combat tactique, lors de la selection des competences, les touches Q/W permettent de changer le niveau
de la competence pour pouvoir utiliser celui qui convient le mieux à la situation.
Ajoutez ce script dans "Materials" au dessous des autres scripts du GTBS :
- Code:
###################################
#
# ADD-ON GTBS
# Competences evolutives
#
###################################
=begin MODE D'EMPLOI
A chaque utilisation d'une competence par un héros, celui-ci reçoit de l'experience.
A terme, cette experience fait augmenter le niveau de la competence.
Ce qui joue sur la portée, la zone d'effet, le cout MP ou le taux d'effet de la competence.
Pour distinguer une competence evolutive des autres, il suffit d'inscrire EVOL dans la note de la competence.
Plutôt que de definir individuellement l'evolution de chaque competence, on defini un type d'evolution.
Si rien n'est precisé, le type par defaut sera utilisé.
Il existe deux codes :
TEX => type d'experience ( la façon dont le niveau de la competence evoluera )
Pour le definir, inscriver TEX=1 dans la note de la competence ( tout doit etre collé )
EVT => type d'evolution ( la façon dont les caracteristiques de la competence evolueront )
Pour le definir, inscriver EVT=1 dans la note de la competence ( tout doit etre collé )
Chaque information dans la note doit etre inscrite sur une ligne differente.
Deux exemples à ne pas reproduire :
EVOLTEX=4EVT=3
EVOL TEX=4 EVT=3
Voici un exemple de ce qui doit etre :
EVOL
TEX=4
EVT=3
En combat tactique, lors de la selection des competences, les touches Q/W permettent de changer le niveau
de la competence pour pouvoir utiliser celui qui convient le mieux à la situation.
=end
module GTBS_HK_evoskill
# Indiquer le montant d'experience que l'on reçoit à chaque utilisation de la competence.
Use_exp = 5
# Indiquer le TEX par defaut qui sera utilisé si rien n'est spécifié dans la base de donnée
# ( et que la competence est bien une competence evolutive )
Defaut_TEX = 1
# Indiquer le EVT par defaut qui sera utilisé si rien n'est spécifié dans la base de donnée
# ( et que la competence est bien une competence evolutive )
Defaut_EVT = 1
# Configurer la table d'experience qui determinera le changement de niveau de la competence.
# A chaque type ( le TEX de la base de donnée ) correspond une table d'experience spécifique.
# Le premier nombre de la liste est toujours un 0
# Attention, il s'agit de la quantité d'experience necessaire pour evoluer !!
# Donc, pour le type 1, passer au niveau 3 demande : 25 + 75 = 100
# TEX Exp necessaire
Tab_exp = { 1 => [0, 25, 75, 250, 500],
2 => [0, 25, 50, 75, 100, 125, 150, 175, 200],
3 => [0, 100, 200, 300, 400, 500] }
# Configurer la table d'evolution :
# Le niveau 1 est defini normalement ( GTBS_Move/Weapon/Skill et base de donnée )
# Range fonctionne comme celui du GTBS qu'il remplacera
# MP+, c'est l'augmentation du cout MP pour ce niveau.
# De 2 MP niveau 1, on passera à 8 MP niveau 3 ( 2 + 2 + 4 )
# Base_damage+, c'est l'augmentation du taux d'effet pour ce niveau.
# De 1 au niveau 1, on passera à 11 au niveau 3 ( 1 + 5 + 5 )
Tab_evol = {}
# EVT LV Range MP+/Base_damage+
Tab_evol[1] = { 2 => [[2, 1, false, true], 2, 5],
3 => [[2, 2, false, true], 4, 5],
4 => [[3, 2, false, true], 2, 5],
5 => [[3, 3, false, true], 4, 5],
6 => [[4, 3, false, true], 2, 5],
7 => [[4, 4, false, true], 4, 5],
8 => [[5, 4, false, true], 2, 5],
}
end
###################################
module GTBS
def self.test_evol(skill_id)
if $scene.active_battler != nil
if $scene.active_battler.is_a?(Game_Actor) and $data_skills[skill_id].evol?
$game_temp.range = $scene.active_battler.check_new_range(skill_id)
end
end
end
end
###################################
class String
def decoupe
bloc = []
self.split(/[\r\n]+/).each { |line| bloc.push(line) }
return bloc
end
end
###################################
class Game_Battler
alias hk_evoskill_make_dmg make_obj_damage_value
def make_obj_damage_value(user, obj)
hk_evoskill_make_dmg(user, obj)
if user.is_a?(Game_Actor) and obj.is_a?(RPG::Skill) and obj.evol?
user.exp_skill_up(obj.id)
end
end
end
###################################
class Scene_Battle_TBS < Scene_Base
attr_reader :active_battler
alias hk_evol_skill_phase1 tbs_phase_1
def tbs_phase_1
hk_evol_skill_phase1
if Input.trigger?(Input::R) and @windows["skill"].active
@spell = @windows["skill"].skill
return unless @spell.evol?
if @active_battler.lv_skill[@spell.id] < @active_battler.get_lv_skill(@spell.id)
Sound.play_cursor
@active_battler.lv_skill[@spell.id] += 1
@windows["skill"].refresh(@active_battler)
else
Sound.play_buzzer
end
end
if Input.trigger?(Input::L) and @windows["skill"].active
@spell = @windows["skill"].skill
return unless @spell.evol?
if @active_battler.lv_skill[@spell.id] > 1
Sound.play_cursor
@active_battler.lv_skill[@spell.id] -= 1
@windows["skill"].refresh(@active_battler)
else
Sound.play_buzzer
end
end
end
end
###################################
class Scene_Skill < Scene_Base
def active_battler
return @actor
end
end
###################################
class Game_Temp
attr_accessor :range
alias hk_evoskill_init initialize
def initialize
hk_evoskill_init
@range = nil
end
end
###################################
module RPG
class Skill < UsableItem
def name
if $scene.is_a?(Scene_Battle_TBS) or $scene.is_a?(Scene_Skill)
actor = $scene.active_battler
if actor.is_a?(Game_Actor) and evol?
return @name + actor.check_new_name(@id)
end
end
return @name
end
def mp_cost
if $scene.is_a?(Scene_Battle_TBS) or $scene.is_a?(Scene_Skill)
actor = $scene.active_battler
if actor.is_a?(Game_Actor) and evol?
return @mp_cost + actor.check_new_mp_cost(@id)
end
end
return @mp_cost
end
def base_damage
if $scene.is_a?(Scene_Battle_TBS) or $scene.is_a?(Scene_Skill)
actor = $scene.active_battler
if actor.is_a?(Game_Actor) and evol?
return @base_damage + actor.check_new_base_damage(@id)
end
end
return @base_damage
end
def evol?
tab = @note.decoupe
for line in tab
if line.include?("EVOL")
return true
end
end
return false
end
def type_exp
tab = @note.decoupe
for line in tab
if line.include?("TEX=")
num = line.delete("TEX=")
return num.to_i
end
end
if evol?
return GTBS_HK_evoskill::Defaut_TEX
else
return 0
end
end
def evo_type
tab = @note.decoupe
for line in tab
if line.include?("EVT=")
num = line.delete("EVT=")
return num.to_i
end
end
if evol?
return GTBS_HK_evoskill::Defaut_EVT
else
return 0
end
end
end
end
###################################
class Game_Actor < Game_Battler
attr_accessor :lv_skill
alias hk_evoskill_setup setup
def setup(actor_id)
hk_evoskill_setup(actor_id)
@exp_skill = Hash.new(0)
@lv_skill = Hash.new(1)
end
def exp_skill_up(skill_id)
@exp_skill[skill_id] += GTBS_HK_evoskill::Use_exp
end
def get_exp_skill(skill_id)
return @exp_skill[skill_id]
end
def get_lv_skill(skill_id)
return get_number(skill_id, "lv")
end
def get_next_lv_skill(skill_id)
return get_number(skill_id, "next_lv")
end
def get_til_next_lv_skill(skill_id)
return get_number(skill_id, "til_next_lv")
end
def get_number(skill_id, type)
exp = @exp_skill[skill_id]
ref = GTBS_HK_evoskill::Tab_exp[$data_skills[skill_id].type_exp]
lv = 1
num = ref[lv]
while exp >= num
exp -= num
break if lv == ref.size
lv += 1
num = ref[lv]
end
case type
when "lv"
return lv
when "next_lv"
return num
when "til_next_lv"
return num - exp
end
end
def check_new_name(skill_id)
return " Lv #{@lv_skill[skill_id]} / #{get_lv_skill(skill_id)}"
end
def check_new_base_damage(skill_id)
num = 0
for x in 1..@lv_skill[skill_id]
num += check_evol(skill_id, "dmg", x)
end
return num
end
def check_new_mp_cost(skill_id)
num = 0
for x in 1..@lv_skill[skill_id]
num += check_evol(skill_id, "mp", x)
end
return num
end
def check_new_range(skill_id)
return check_evol(skill_id, "range")
end
def check_evol(skill_id, type, lv = 0)
lv = @lv_skill[skill_id] if lv == 0
skill = $data_skills[skill_id]
ref = GTBS_HK_evoskill::Tab_evol[skill.evo_type]
tab = ref[lv]
case type
when "range"
if lv == 1
return nil
else
return tab[0]
end
when "mp"
if lv == 1
return 0
else
return tab[1]
end
when "dmg"
if lv == 1
return 0
else
return tab[2]
end
end
end
end
###################################
Et ajoutez ces lignes dans le script "GTBS_Move/Weapon/Skill" :
- Code:
$game_temp.range = nil
test_evol(skill_id)
return $game_temp.range if $game_temp.range != nil
Lisez bien le debut du script, il y a quelques reglages à faire !!
ASHKA
Re: ADD-ON GTBS : Competences evolutives
Jeu 27 Nov 2008 - 22:00
que d'addons ! j'ai du mal a suivre !
très utile ! ca donne du realisme au jeu, merci beaucoup
très utile ! ca donne du realisme au jeu, merci beaucoup
- 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 : Competences evolutives
Ven 28 Nov 2008 - 9:17
Mais hé,t'est en train de nous refaire un disgea ou quoi?
Tu te prends des pillules bleue en ce moment c'est pas possible, encore un grand merci pour ton travail
Tu te prends des pillules bleue en ce moment c'est pas possible, encore un grand merci pour ton travail
Re: ADD-ON GTBS : Competences evolutives
Ven 28 Nov 2008 - 17:25
Merci ASHKA tu va révolutionner le GTBS.
Re: ADD-ON GTBS : Competences evolutives
Mar 30 Déc 2008 - 18:25
Ce script à l'air sympa mais y'a un petit problème dans sa mise en pratique, il m'affiche l'erreur suivante au lancement du jeu :
Je soupçonne que le problème vienne de ma version du GTBS, puisque j'ai testé l'add-on sur le projet de démonstration avec les mêmes résultats. J'ai le même genre d'erreurs avec ton script de renfort, mais à chaque fois, la syntaxe à pourtant l'air correcte. Bizzare.
- Spoiler:
La ligne erreur :
Je soupçonne que le problème vienne de ma version du GTBS, puisque j'ai testé l'add-on sur le projet de démonstration avec les mêmes résultats. J'ai le même genre d'erreurs avec ton script de renfort, mais à chaque fois, la syntaxe à pourtant l'air correcte. Bizzare.
- ASHKAMembre
- Nombre de messages : 242
Age : 42
Localisation : Omnipresent !!
Distinction : aucune
Date d'inscription : 28/10/2008
Re: ADD-ON GTBS : Competences evolutives
Mar 30 Déc 2008 - 18:51
J'ai testé cet add-on dans ton projet avec la démo 1.1 et je n'ai pas eu de bug ...
( Coup de crosse Lv 5 ... extermination de tous les voraces d'un coup !! )
C'est vraiment etrange ...
Je ne vois pas d'erreur de syntaxe sur ton screen.
Est-ce que tu as changé de version du GTBS depuis la démo 1.1 ?
ASHKA
( Coup de crosse Lv 5 ... extermination de tous les voraces d'un coup !! )
C'est vraiment etrange ...
Je ne vois pas d'erreur de syntaxe sur ton screen.
Est-ce que tu as changé de version du GTBS depuis la démo 1.1 ?
ASHKA
Re: ADD-ON GTBS : Competences evolutives
Mar 30 Déc 2008 - 19:23
essaye :
- Code:
(return $game_temp.range) if !$game_temp.range.nil?
Re: ADD-ON GTBS : Competences evolutives
Mer 31 Déc 2008 - 13:44
ASHKA : Je pense avoir changé de version à un moment donné, mais je sais plus si c'était après la v1.1... je devrai noter les versions que j'utilise. Ca doit être celle que j'ai téléchargé ici (dans le spoiler current releases, le deuxième lien), mais c'est la version la plus récente et elle porte quand même la mention v1, alors j'ai des doutes... :/
Le problème pourrait aussi bien venir de chez moi, mais je vois pas d'où il sortirai...
Berka : je vais voir comment ça fonctionne avec cette ligne, merci !
Le problème pourrait aussi bien venir de chez moi, mais je vois pas d'où il sortirai...
Berka : je vais voir comment ça fonctionne avec cette ligne, merci !
- ASHKAMembre
- Nombre de messages : 242
Age : 42
Localisation : Omnipresent !!
Distinction : aucune
Date d'inscription : 28/10/2008
Re: ADD-ON GTBS : Competences evolutives
Mer 31 Déc 2008 - 14:45
La version que tu montre en lien est celle dans laquelle j'ai développé le script.
Comme c'est egalement celle que j'utilise dans mon projet, j'ai reverifié et ça fonctionne normalement ...
Teste la ligne proposé par Berka, sait-on jamais ...
ASHKA
Comme c'est egalement celle que j'utilise dans mon projet, j'ai reverifié et ça fonctionne normalement ...
Teste la ligne proposé par Berka, sait-on jamais ...
ASHKA
Re: ADD-ON GTBS : Competences evolutives
Mer 31 Déc 2008 - 16:16
Sans effets, malheureusement.
Ce bug doit venir de mon pc, alors. L'important est que personne d'autre ne s'y trouve confronté avec ce script
Ce bug doit venir de mon pc, alors. L'important est que personne d'autre ne s'y trouve confronté avec ce script
- ASHKAMembre
- Nombre de messages : 242
Age : 42
Localisation : Omnipresent !!
Distinction : aucune
Date d'inscription : 28/10/2008
Re: ADD-ON GTBS : Competences evolutives
Mer 31 Déc 2008 - 16:54
C'est dommage ...
Fallait que ça t'arrive à toi, l'un des rares utilisateurs du GTBS ayant un projet bien developpé ...
Argh ...
ASHKA
Fallait que ça t'arrive à toi, l'un des rares utilisateurs du GTBS ayant un projet bien developpé ...
Argh ...
ASHKA
Re: ADD-ON GTBS : Competences evolutives
Mer 31 Déc 2008 - 17:26
c'est quand meme bizarre... tu peux nous poster le script qui bug en entier ?
Re: ADD-ON GTBS : Competences evolutives
Mer 31 Déc 2008 - 18:03
Pas besoin, je viens de trouver le problème, le message SyntaxError m'avais mis la puce à l'oreille : j'avais pas copié le script ci-dessus directement dans mon projet; je l'avait d'abord copié dans un fichier word. Hors, ça a du rajouter des caractères invisibles ou des balises quelquonques qui sont mal passées par la suite dans l'éditeur de script, d'où le message d'erreur pour des lignes à la syntaxe apparement correcte. C'était plutôt moi qui buguait, au final ^^'
Donc le script marche niquel ! Je peut le confirmer, maintenant !
[Edit : Un petit détail au passage : tu devrais mettre un exemple dans la notice pour montrer comment écrire les paramètres dans la note du skill. J'ai testé
EVOLTEX=1EVT=1
puis
EVOL TEX=1 EVT=1
avant de comprendre que c'était
EVOL
TEX=1
EVT=1
La notice indiquait "tout doit être collé" et quand on tape mal les paramètres, le script plante à l'ouverture de la liste de skills du perso.]
Donc le script marche niquel ! Je peut le confirmer, maintenant !
[Edit : Un petit détail au passage : tu devrais mettre un exemple dans la notice pour montrer comment écrire les paramètres dans la note du skill. J'ai testé
EVOLTEX=1EVT=1
puis
EVOL TEX=1 EVT=1
avant de comprendre que c'était
EVOL
TEX=1
EVT=1
La notice indiquait "tout doit être collé" et quand on tape mal les paramètres, le script plante à l'ouverture de la liste de skills du perso.]
- ASHKAMembre
- Nombre de messages : 242
Age : 42
Localisation : Omnipresent !!
Distinction : aucune
Date d'inscription : 28/10/2008
Re: ADD-ON GTBS : Competences evolutives
Jeu 1 Jan 2009 - 11:46
Ouf, content que ça fonctionne !!
Pour la notice, oui, je rajoute ça, merci !!
ASHKA
Pour la notice, oui, je rajoute ça, merci !!
ASHKA
- H.MMembre
- Nombre de messages : 80
Age : 28
Distinction : Éléphant à petite trompe.=)
Date d'inscription : 30/03/2009
Re: ADD-ON GTBS : Competences evolutives
Mer 1 Avr 2009 - 23:18
Tu m'as donner envie de transformer mon projet en T-RPG si t'avait une sorte de démo qui regorge tout tes ADD-ON ça serait la joie totale ^^
Merci
Kensou
Merci
Kensou
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum