Imladris production
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Imladris production

Le forum français de création de cartes et de mods pour Bataille pour la Terre du Milieu
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
ETB Pokémon Fable Nébuleuse : où acheter le coffret dresseur ...
Voir le deal

 

 Stopper un attributemodifier via l'upgrade: possible?

Aller en bas 
3 participants
AuteurMessage
leo11
Fondateur
leo11


Nombre de messages : 1685
Age : 33
Location : Champagne (france)
Add-On : Oui, vive l'addon.
Date d'inscription : 13/01/2008

Stopper un attributemodifier via l'upgrade: possible? Empty
MessageSujet: Stopper un attributemodifier via l'upgrade: possible?   Stopper un attributemodifier via l'upgrade: possible? Icon_minitimeJeu 26 Fév - 15:24

Salut à tous,
Bon je vais poser ma question aux personnes les plus expérimentées en code ini et en leur recherche. sage
Il y a quelque temps j'ai développé un principe de roulement entre les upgrades: Si un upgrade est débloqué alors l'autre se vérouille, et ainsi de suite comme ça quand l'un est débloqué l'autre peut l'être de nouveau mais ça nous fera perdre l'ancien.

Le principe fonctionne a merveille, j'y ai donc rajouté le module qui attribue un attributeModifier lors de l'acquisition d'un upgarde à l'objet:
Citation :
AddModule
Behavior = AttributeModifierUpgrade ModuleTag_Supernouveau
TriggeredBy = Upgrade_TechnologySupercoolnouveau
AttributeModifier = Supernouveau
End
End

... et c'est là où les choses ont commencées à aller mal.
La plupart des AttributeModifier ont une durée (Duration), mais comment faire pour que cette durée soit celle que le joueur à choisi lors de l'acquisition de l'upgrade pour en avoir un autre?
J'ai donc retiré la valeure Duration à l'attribute modifier (ainsi que sa Category: Speel, LeaderShip, etc.. en copiant sur le principe des stances):
Citation :
ModifierList Supernouveau
;Category = SPELL
Modifier = SPEED 500%
End

J'ai retesté et là, malgré le Duration de retiré il y avait quand même une durée: L'infini... la ferme
Donc je me tourne vers vous pour savoir si il y a un moyen de contourné ça avec un Module spécial ou encore une certaine ligne que l'on peut rajouter dans l'attributemodifier.
Autrement je tiens à préciser que le principe de roulement que j'ai mis en place ne se solde pas à juste deux Upgrades qui tournent à tour de role mais à 4 voir 6 des fois. (donc le principe de l'attributeModifier qui en plus de mettre ses valeures retire celle de l'autre peut être oublié triste )


Voila. ok!
Revenir en haut Aller en bas
https://imladrisproduction.forumotion.com
bowl028
Vétéran du forum
bowl028


Nombre de messages : 2215
Age : 28
Location : Aquitaine
Add-On : Ouii
Date d'inscription : 16/02/2009

Stopper un attributemodifier via l'upgrade: possible? Empty
MessageSujet: Re: Stopper un attributemodifier via l'upgrade: possible?   Stopper un attributemodifier via l'upgrade: possible? Icon_minitimeJeu 26 Fév - 15:35

Oula la question n'est pas por moi Smile
J'ai pas trop bie compris le principe mais bon ,sa m'a l'air super.
Continue comme ça Wink
Revenir en haut Aller en bas
cdd59554
Admin
cdd59554


Nombre de messages : 7235
Age : 31
Location : J'aime les abricots
Add-On : Oui
Date d'inscription : 16/01/2008

Stopper un attributemodifier via l'upgrade: possible? Empty
MessageSujet: Re: Stopper un attributemodifier via l'upgrade: possible?   Stopper un attributemodifier via l'upgrade: possible? Icon_minitimeJeu 26 Fév - 16:20

Citation :
Bon je vais poser ma question aux personnes les plus expérimentées en code ini et en leur recherche.
Dit tout de suite que tu t'adresse a moi Smile

Je peut t'aider mais il faudrait que je sache exactement comment ton truc fonctionne parce que ca me parait un peu bizarre ton histoire des 6 upgrades pour en faire tourner 2...
Tu les fait touner avec des scripts ou alors seulement avec l'ini parce que avec l'ini le module Behavior = RemoveUpgradeUpgrade devrait faire l'affaire non ?

Je te montre comment je ferais:
par exemple (je te passe des AddModule) :
Code:
Behavior = RemoveUpgradeUpgrade module1
TriggeredBy = upgrade1
UpgradeToRemove = upgrade2
End
quand l'object gagne l'upgrade1, il perd l'upgrade2,

tu met aussi pareil pour l'upgrade2 :
Code:
Behavior = RemoveUpgradeUpgrade module2
TriggeredBy = upgrade2
UpgradeToRemove = upgrade1
End
comme ça ça fait une boucle, pas besoin d'autres upgrade Smile
(je veut bien savoir comment tu as fait quand meme ton truc des 6 upgrades pour en faire tourner que 2)

Spoiler:
Bon j'espere que ca fonctionnera quand meme mon truc car j'ai pas testé lol!
Ca ouvre quand meme des bonnes perspectives...

Pour les attribute modifier, bin maintenant t'as la solution comme ya plus besoin de 6 upgrades pour en faire tourner 2 tu peut utiliser :
Citation :
le principe de l'attributeModifier qui en plus de mettre ses valeures retire celle de l'autre
(en supposant que tout ce que j'ai dit avant fonctionne ok!)
Revenir en haut Aller en bas
leo11
Fondateur
leo11


Nombre de messages : 1685
Age : 33
Location : Champagne (france)
Add-On : Oui, vive l'addon.
Date d'inscription : 13/01/2008

Stopper un attributemodifier via l'upgrade: possible? Empty
MessageSujet: Re: Stopper un attributemodifier via l'upgrade: possible?   Stopper un attributemodifier via l'upgrade: possible? Icon_minitimeJeu 26 Fév - 18:51

Non, en réalité c'est ce que j'ai fait les RemoveUpgradeUpgrade et j'e nai fait tourner 6 des fois, par exemple (pour te faire un shéma) je ne vais qu'en mettre 3 là:
Code:
Behavior = RemoveUpgradeUpgrade module1
TriggeredBy = upgrade1
UpgradeToRemove = upgrade2
UpgradeToRemove = upgrade3
End
Behavior = RemoveUpgradeUpgrade module2
TriggeredBy = upgrade2
UpgradeToRemove = upgrade1
UpgradeToRemove = upgrade3
End
Behavior = RemoveUpgradeUpgrade module3
TriggeredBy = upgrade3
UpgradeToRemove = upgrade1
UpgradeToRemove = upgrade2
End


Tout ça marche!


Le seul problème c'est après lors de l'arrivé des AttributeModifiers! Si par exeple je débloque mon Upgrade1 alors je débloque un attributemodifier
Code:
AddModule
Behavior = AttributeModifierUpgrade ModuleTag_Supernouveau
TriggeredBy =upgrade1
AttributeModifier = Supernouveau
End
End

Donc cet attributeModifier est bien prit en compte et fonctionne normalement.
Le seul problème c'est quand je vais par exemple dévelloper mon Upgrade3 il va il y avoir un problème:
L'attributeModifier relié à l'upgrade 3 se prendra bien en compte, le seul problème c'est que l'attributeModifier de l'upgrade1 n'aura pas été arrêté! Et comme je le dit plus haut:
Citation :
(donc le principe de l'attributeModifier qui en plus de mettre ses valeures retire celle de l'autre peut être oublié )
.... ce confierme bien car si à la place de débloquer l'upgrade 3 le joueur dévellope l'upgrade2 (donc par obtention l'attributeModifier de l'UP2) le principe de retirer un attributeModifier par son contraire ne marchera pas!


Donc ma question reste: Comme stopper un attibuteModifier via un upgrade?
Revenir en haut Aller en bas
https://imladrisproduction.forumotion.com
cdd59554
Admin
cdd59554


Nombre de messages : 7235
Age : 31
Location : J'aime les abricots
Add-On : Oui
Date d'inscription : 16/01/2008

Stopper un attributemodifier via l'upgrade: possible? Empty
MessageSujet: Re: Stopper un attributemodifier via l'upgrade: possible?   Stopper un attributemodifier via l'upgrade: possible? Icon_minitimeJeu 26 Fév - 19:32

Ah ok je comprend mieux, a mon avis on peut pas le faire directement.
Apparemment quand on a mis l'attribute Modifier en duration infini on peut plus le virer, 'il va falloir mettre une valeur fixe au temps de duration des attribute modifiers.
La meilleure solution c'est de mettre une petite valeur pour la durée de l'attributeModifier par exemple 1 seconde, et faut trouver un moyen d'envoyer a chaque seconde l'attribute modifier.
Donc si on a l'upgrade1 d'activée on envoie en permanence l'attributeModifier1, si c'est la 2 on envoie l'attribute2 etc...
Moi ca me fait penser aux charismes, un charisme sur soit meme (pourquoi pas ?) et c'est d'ailleurs ce qu'il faut faire donc a la place de :

Citation :
AddModule
Behavior = AttributeModifierUpgrade ModuleTag_Supernouveau
TriggeredBy =upgrade1
AttributeModifier = Supernouveau
End
End

On va mettre :

Citation :

AddModule
Behavior = AttributeModifierAuraUpdate ModuleTag_CharismeSurSoiMeme
StartsActive = No
BonusName = MonSuperAttributeModifier
TriggeredBy = Upgrade1
RefreshDelay= 1000
Range = 0
AllowSelf = Yes
End
End

Le AllowSelf = Yes permet de dire que le charisme se met sur soit meme (par exemple charisme hors la loi de eomer)
Ya juste un truc que je suis pas sur : c'est si on met 0 est ce que ca va quand meme affecter notre héro, si ca marche pas avec 0 ca fonctionnera surement avec 1

Et puis ton super attribute Modifier (faut mettre un temps un peu plus grand que le RefreshDelay) :
Citation :
ModifierList MonSuperAttributeModifier
Category = SPELL
Modifier = ARMOR 200% // pour l'exemple
Duration = 1100
End

Comme ca quand tu changera d'upgrade y'aura un delai de 1 seconde ou ton héro aura encore l'ancien attribute avant qu'il le perde donc je n'ai qu'une chose à dire : Mission réussie Cool
Revenir en haut Aller en bas
leo11
Fondateur
leo11


Nombre de messages : 1685
Age : 33
Location : Champagne (france)
Add-On : Oui, vive l'addon.
Date d'inscription : 13/01/2008

Stopper un attributemodifier via l'upgrade: possible? Empty
MessageSujet: Re: Stopper un attributemodifier via l'upgrade: possible?   Stopper un attributemodifier via l'upgrade: possible? Icon_minitimeJeu 26 Fév - 21:27

Ca semble marcher! lunette
Franchement bravo Cdd, je n'y avait pas pensé au coup de l'aura!

J'espere juste que tout ne va pas foiré avec mes 32 Upgrades juste pour un objet... smile (avec 7 cycles d'upgrades différents HAAahaaa!! )

Bon, j'espere mettre mon oeuvre sera mise en forme correctement pour bien faire passer ces upgrades correctement sur une map. sage
MErci.
Revenir en haut Aller en bas
https://imladrisproduction.forumotion.com
Contenu sponsorisé





Stopper un attributemodifier via l'upgrade: possible? Empty
MessageSujet: Re: Stopper un attributemodifier via l'upgrade: possible?   Stopper un attributemodifier via l'upgrade: possible? Icon_minitime

Revenir en haut Aller en bas
 
Stopper un attributemodifier via l'upgrade: possible?
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Imladris production :: Ini codes et .str :: Discussion-
Sauter vers: