Page 1 sur 1
[DIAMANT] Recherche d'astuces de Scripts
Posté : sam. 29 oct. 2011, 21:39
par Freddy_Gwendo
Rubrique relative aux scripts
C'est ici que j'évoquerai les différents problèmes de définition et d'écriture de scripts que je rencontre.
En cours :
- Comment gérer l'expérience des persos ?
- Validité de la commande ActionOverride(LastTalkedToBy,SetGlobal("Variable","LOCALS",1)) ici.
Comment gérer l'Expérience des joueurs ?
Posté : sam. 29 oct. 2011, 21:42
par Freddy_Gwendo
Je suis confronté à un problème assez pénible : mes persos sont téléportés dans une autre dimension dans laquelle ils vont gagner beaucoup d'XP.
Mais du coup, à leur retour dans ToB, ils sont beaucoup trop puissants pour terminer convenablement l'aventure.
J'ai songé à ne pas donner d'XP aux monstres tués, mais dans ce cas, ils seront beaucoup trop faibles pour survivre dans cet univers parallèle.
Une autre solution est de leur retirer une bonne partie de ces XP à leur retour. Malheureusement, ça ne fonctionne pas car le moteur considère que ces XP ont été "drainés" comme lors de pertes de niveau : un sort de restauration permet de les récupérer !
J'ai réussi à leur reprendre une bonne partie du matos qu'ils vont découvrir mais déséquilibrerait trop la fin de leur combat dans ToB, mais là, je bloque.
Quelqu'un aurait-il une solution ou une piste de travail envisageable ?
Peut-être que la création d'avatars ("copie") du groupe réglerait-il le problème ? Si toutefois c'est possible...
Posté : dim. 30 oct. 2011, 23:03
par Salomon Kane
Comment gérer l'Expérience des joueurs ?
Concernant les "Script" :
- "Zranoff", sur WeiDuCommando dans sa section : -
Entraide les Scripts pourra peut être te donner quelques précisions à ce sujet ... :
http://weiducommando.forumsactifs.com/f ... du-zranoff
Comment gérer l'Expérience des joueurs ?
Posté : jeu. 03 nov. 2011, 14:01
par Freddy_Gwendo
Après avoir trainé sur plusieurs sites, aucune solution proposée ne me paraît complètement satisfaisante :
- Donner 0 XP aux créatures tuées.
- Leur attribuer un % d'XP inférieur.
- Donner un bonus d'XP au groupe après chaque "sous-quête" réalisée.
- ....
C'est pourquoi je reformule ma question :
Ce mod s'apparente plutôt à une campagne intégrée dans ToB. Pour progresser, les personnages devront augmenter leur niveau, sinon ce sera la boucherie assurée.
Le problème, c'est qu'en terminant la campagne, ils seront tous de niveau au moins supérieur ou égal à 40, si ce n'est beaucoup plus. Du coup, la fin de ToB devient un jeu d'enfant..
Donc j'ai besoin de savoir si quelqu'un connaît une méthode pour soit :
- Ôter définitivement des XP à un perso sans qu'il soit possible pour lui de les récupérer via un sort.
- Créer des avatars ("Copies") d'un groupe qui joueraient la campagne, progresseraient de niveau. Puis, une fois la campagne terminée, les persos seraient "réintégrés" dans leur peau initiale avec un bonus d'XP raisonnable pour avoir accompli la campagne.
Par ailleurs, je vais me plonger dans la doc de ToBEx pour vérifier si les effets de sorts modifiés pourraient répondre à une partie de mes attentes...
Posté : ven. 11 nov. 2011, 12:14
par Salomon Kane
Comment gérer l'expérience des joueurs
Résolution de Probléme
A ce que je comprends le problème est triple (au moins) :
1) D'ordre Informatique
2) D'ordre scénarisitique
3) D'ordre du RP
(4) Tes critères personnels)
1) Il faudrait se référer aux Mods qui gèrent l'attribution d'
xp , notamment via la difficulté et qui interviennent , dans le même cas que toi :
campagne intégrée dans ToB
ils seront tous de niveau au moins supérieur ou égal à 40
Voici une liste de Mods concernant TOB, exclusivement :
-Ascension
-Wheels of Prophecy
-Turnabout
-Redemption
-Longer Road
-Iylos
-Sarevok Romance
Je pense qu'Ascension et Longer Road , des Mods assez relevés niveau difficultés, pourrait être instructifs question rémunération XP
De plus tourne toi aussi vers les Mods de
"com-back" : NEJ (Neverending Journey) , qui sauf erreur permet un AR BG2 vers BG1 .
2) Il faut que ta solution à ce niveau soit
"gratifiante" pour ton public , ou du moins que le principe de la
"drama", de l'intensité, de la cohérence de l'intrigue et du suspens soit préservés
3) Le juste mot c'est la "difficulté, plus exactement le dosage de la "
difficulté" :
Voici de quoi mettre du piment et corser le jeu :
"-Do You Will an Insane Challenge try This : BG2/TOB with the hardest modules of Tactics / Improved Battles / SCS 2 / Ascension / Redemption on the hardest difficulty setting ..."
Avec ces quelques éléments de configuration du jeu en lui même et les paramètres de certains mods tactiques, ce sont aussi autant de pistes de réflexions (s'agit il de régler ton problème par le jeu, par un mod, par des configuration de ton Mod en option à l'installation...)
sources :
http://www.shsforums.net/topic/44311-what-id-like/page__view__findpost__p__494553http://www.shsforums.net/topic/45223-me ... _p__489238
http://www.sorcerers.net/forums/showpos ... ostcount=7
4) Quels sont tes critères en matières je te cite : "d
'élégance", en quoi est ce que réside, intuitivement la bonne solution ?
-Personnellement je comprends très bien l'importance de ces dilemmes, il en va de la
jouabilité de ton Mod .
-Par ailleurs j'ai un excellent souvenir de Drizzt Saga qui reprends certains aspects de ton Mod (Plan parallélle, nouveaux Monstres , aller retour BG/BG), et que j'ai trouvé très plaisant à jouer :
http://www.blackwyrmlair.net/Mods/drizztsaga.php
Sur ce, A+ .
Posté : sam. 12 nov. 2011, 07:22
par Freddy_Gwendo
Salomon Kane a écrit :
1) Il faudrait se référer aux Mods qui gèrent l'attribution d'xp , notamment via la difficulté et qui interviennent , dans le même cas que toi :
C'est fait : malheureusement, j'en reviens au message [POST=279833]#4[/POST].
4) Quels sont tes critères en matières je te cite : "d'élégance", en quoi est ce que réside, intuitivement la bonne solution ?
Ce que j'appelle "élégance" en matière de scripts et de modding, c'est plutôt une philosophie qu'un critère esthétique. Entre autres :
- Ne pas trahir l'esprit originel du jeu. Sinon, pourquoi ne pas jouer à un autre, ou en créer un soi-même ?
- Ne pas trop modifier l'existant : j'ai créé mes propres créatures lorsqu'elles sont déjà présentes dans BG2, mais je leur ai donné des attributs spéciaux. Ainsi, elles n'interfèrent pas avec le reste de l'aventure. Comme on est téléporté dans une autre dimension, aucun problème de cohérence ne se pose.
- Éviter au possible de surcharger le disque dur : je privilégie la modification de fichiers existants via WeiDU plutôt que l'installation pure et dure par un copier-coller de fichiers désarchivés dans le répertoire du mod.
- Essayer dans la mesure du possible d'apporter des aspects nouveaux au jeu (cf. la Licorne...).
...
Dans le cas présent, "l'élégance" réside dans la réponse à ces deux options :
- Ôter définitivement des XP à un perso sans qu'il soit possible pour lui de les récupérer via un sort.
- Créer des avatars ("Copies") d'un groupe qui joueraient la campagne, progresseraient de niveau. Puis, une fois la campagne terminée, les persos seraient "réintégrés" dans leur peau initiale avec un bonus d'XP raisonnable pour avoir accompli la campagne.
Résultat en cas de réussite :
- Apport de nouvelles possibilités de scenarii, de sorts, de capacités...
- Possibilité d'intégrer le mod dans l'aventure sans la dénaturer. Procédé reproductible à l'infini pour tous les autres mods.
Bref, tout ça c'est l'idéal dans un monde idyllique. Mais CE N'EST PAS GAGNÉ ! Loin de là...
PS : la Drizzt Saga fait partie des mods que j'étudie en parallèle...
Posté : sam. 12 nov. 2011, 09:56
par Salomon Kane
Comment gérer l'expérience des joueurs
Les Mods qui font Ecole :
Moi a écrit :j'ai un excellent souvenir de Drizzt Saga qui reprends certains aspects de ton Mod
Gwendo a écrit :PS : la Drizzt Saga fait partie des mods que j'étudie en parallèle...
-Pour être très précis Drizzt Saga est très orienté Action (Gros Bill diront certains), mais il à un véritable souffle épique et de nombreux combats, et surtout on y retrouve tous les Personnages de R.A. Salvatore incarné avec beaucoup de charisme par les PNJs du Mods ...
-Par contre The Secret of Bone Hill (réalisé par le Moddeur Sir Bill Bob, à qui l'on doit notamment Classics Adventures) est très fidèle à l'esprit RP et pour cause c'est ni plus ni moins l'adaptation d'un module AD&D ... :
-D'ailleurs à ce qu'il parait les D'Oghmatiques ont en fait une traduction,
CF :
http://www.baldursgateworld.fr/lacouron ... post278767
-Franchement ce Mod vaut vraiment le détour, on se croirait revivre une partie plateau dans la plus pure tradition, avec intrigue, mauvais charismatiques et machinations en tout genre ...
-De plus , ici, aussi Gwendo il s'agit aussi d'un aller retour, un
Come-Back (Ds Bg2 ,en présence d'Angelo un Bard haut en couleur), il sera donc complémentaire de ton analyse de Drizzt Saga ...
Source :
http://www.shsforums.net/topic/16004-re ... ntry305675
http://ca.spellholdstudios.net/
http://www.baldursgateworld.fr/lacouron ... post184300
http://www.baldursgateworld.fr/lacouron ... ncais.html
http://www.ratcreve.com/forum/20-liens- ... ragon.html
P.S:
Concernant S.O.B. , veillez à vous trouver au bon chapitre (IV) pour enclencher la Quête, (lire le Read-Me ou informez vous sur la CDC)
Posté : sam. 12 nov. 2011, 10:01
par Freddy_Gwendo
J'ai téléchargé il y a quelques jours la version française. Je vais l'installer pour voir.
Le pb, c'est que j'ai tous les mods, sauf Classic Adventures et Paladins of Faerun (trop lourds) : ça prend du temps de tous les étudier...
Posté : sam. 12 nov. 2011, 10:23
par Salomon Kane
Comment gérer l'expérience des joueurs
Résolution de Problème
Test "in-game"
Gestion du Temps
Pêche à l'Info
Personnes Ressources
-Justement ces deux là sont "juste" des Modules (temps de jeu assez court : quelques heures) et avec un esprit différents ils feront un bon différentiel tout en répondant à tes besoins, et puis jouer un peu, si tant est que ce soit nécessaire pour analyser, ça fait pas de mal, sinon je vais réfléchir à te proposer des hypothéses de solutions ...
Peut être que d'ici là quelqu'un aura une idée judicieuse ...
Ou demande sur Speelhold en précisant tes attentes , m'est avis que le blém de l'expérience est récurant parmi les
développeurs de Modules .
-Regarde et interroge aussi les créateurs de Modules de la scène francophone,
-Je pense notamment au Mod d'Armand :
Les Exilés de Lunargent :
http://weiducommando.forumsactifs.com/f25-mods-termines
http://legendesstudios.free.fr/Telechargement.htm
Posté : sam. 12 nov. 2011, 12:40
par Isaya
Le mod Secret of Bonehill ne traite pas le problème d'expérience comme tu entends le faire. Il se contente d'être raisonnable dans l'attribution d'expérience et d'objets afin de ne pas trop déséquilibrer une partie dans BGT ou BG1Tutu. En tout cas, c'est ce que précise le readme. Comme l'aventure peut se greffer dès le chapitre 3 de BG, la première partie s'adresse à un groupe pas très puissant et l'auteur conseille de ne pas trop tarder à la faire sous peine que ce soit trop facile après avoir éliminé les bandits.
Je ne suis pas au fait des méthodes pour supprimer de l'XP. Pourrais-tu préciser comment tu t'y es pris ? Il existe au moins un effet et des commandes pour modifier les XP.
Dans Baldur's Gate, le mod Dark Side of the Sword Coast simule la perte d'expérience par des morts-vivants en faisant perdre de l'XP (la réduisant à N % de sa valeur), qui n'est pas récupérable ! Mais peut-être cet effet (104, je pense) a-t-il été modifié dans le moteur de jeu de Baldur's Gate II de façon à être réversible par les sorts de restauration.
Par contre je ne me souviens plus si la perte d'expérience se répercutait sur le niveau, comme avec l'effet d'absorption de niveau. Si ce n'est pas le cas, tu obtiens un joueur qui doit tellement rattraper d'XP qu'il ne progresse plus, mais il reste à son niveau élevé.
L'auteur de TobEx est ouvert aux suggestions. L'outil propose déjà de nouveaux effets dans la déclinaison pour les créateurs de mods. Je n'ai rien vu qui aille dans ton sens, alors il te faudra demander dans le sujet approprié de son forum. Face aux demandes super-complexes de certains, celle-ci a davantage de chances d'être réalisable.
Pour la création d'avatar, la seule comparaison qui me vienne en tête est celle de la Tour de garde ou tu dois diriger un personnage. Mais je ne sais plus si le jeu affecte un personnage identique quelle que soit la classe du PJ. Auquel cas, ça ne marche pas.
J'ai peur que le sort Simulacre ne donne pas non plus de bon résultat : le simulacre souffre de restriction par rapport à un véritable personnage et il est probable qu'il ne puisse pas passer d'une zone à une autre, comme les créatures invoquées.
Posté : sam. 12 nov. 2011, 13:11
par Freddy_Gwendo
Le mod Secret of Bonehill ne traite pas le problème d'expérience comme tu entends le faire. Il se contente d'être raisonnable dans l'attribution d'expérience et d'objets afin de ne pas trop déséquilibrer une partie dans BGT ou BG1Tutu. En tout cas, c'est ce que précise le readme. Comme l'aventure peut se greffer dès le chapitre 3 de BG, la première partie s'adresse à un groupe pas très puissant et l'auteur conseille de ne pas trop tarder à la faire sous peine que ce soit trop facile après avoir éliminé les bandits.
C'est typiquement le genre de méthodes que je souhaite ignorer...
Je ne suis pas au fait des méthodes pour supprimer de l'XP. Pourrais-tu préciser comment tu t'y es pris ? Il existe au moins un effet et des commandes pour modifier les XP.
Tout simplement, en appliquant un sort aux persos via Baldur25.bcs (déclenché par une variable globale). Ce sort utilise l'effet de drainage d'XP (je ne me souviens plus de son numéro...).
À l'époque, j'avais testé plusieurs méthodes, mais toutes posaient le même problème : la possibilité de récupérer les XP via un sort...
L'auteur de TobEx est ouvert aux suggestions. L'outil propose déjà de nouveaux effets dans la déclinaison pour les créateurs de mods. Je n'ai rien vu qui aille dans ton sens, alors il te faudra demander dans le sujet approprié de son forum. Face aux demandes super-complexes de certains, celle-ci a davantage de chances d'être réalisable.
Effectivement, moi-aussi, j'ai vérifié : les stats modifiées ne concernent pas mon pb.
Mais je vais suivre ton conseil et le contacter.
Pour la création d'avatar, la seule comparaison qui me vienne en tête est celle de la Tour de garde ou tu dois diriger un personnage. Mais je ne sais plus si le jeu affecte un personnage identique quelle que soit la classe du PJ. Auquel cas, ça ne marche pas.
Non, le script crée une créature que tu gères via son dialogue. Pendant tout son périble, ton perso reste invisible, mais est toujours présent sur la carte.
Cela dit, il y a une autre expérience : lorsque tu rencontres un groupe sensé être le double du tien (je ne me souviens plus où et quand, mais c'est dans ToB): malheureusement, il n'est pas très efficace et ne convient pas, je l'avais étudié à l'époque...
J'ai peur que le sort Simulacre ne donne pas non plus de bon résultat : le simulacre souffre de restriction par rapport à un véritable personnage et il est probable qu'il ne puisse pas passer d'une zone à une autre, comme les créatures invoquées.
En effet, je l'ai abandonné très vite...
Posté : sam. 12 nov. 2011, 16:07
par Isaya
Freddy_Gwendo a écrit :Tout simplement, en appliquant un sort aux persos via Baldur25.bcs (déclenché par une variable globale). Ce sort utilise l'effet de drainage d'XP (je ne me souviens plus de son numéro...).
À l'époque, j'avais testé plusieurs méthodes, mais toutes posaient le même problème : la possibilité de récupérer les XP via un sort...
Parmi les effets, il y a un drain de niveau, utilisé par les morts-vivants. Celui-là est récupérable. Quand un personnage a subi le drain de niveau, on ne voit plus ses points d'expérience.
L'effet dont je parlais joue sur l'XP, avec trois options : ajouter (peut-être retirer s'il accepte une valeur négative), fixer, fixer par un pourcentage de la valeur actuelle.
Il existe aussi des actions qui touchent à l'expérience, mais plutôt pour en ajouter : AddexperienceParty() et AddExperiencePartyGlobal(). Mais peut-être acceptent-elles des valeurs négatives ? Le paramètre est de I, et l'exemple de ReputationInc() montre qu'on peut parfois utiliser une valeur négative pour un paramètre de type I.
Posté : sam. 12 nov. 2011, 17:03
par mirandir
Tu devrais peut-être regarder du coté de BGT.
Si je me souviens bien, l'auteur n'ai jamais arrivé à modifier le moteur de BG2 pour que les personnages commencent la partie avec 0 d'expérience.
La valeur la plus basse possible était 1. Du coup, quand on commence une nouvelle partie, il semble que juste après le chargement, on voit apparaitre un message disant que le perso a gagné -1 d'expérience, ce qui permet de commencer le jeu avec effectivement 0 d'expérience.
Et je ne crois pas que ce point d'XP soit récupérable avec un sort, donc c'est peut-être utilisable dans ton cas ?
Posté : sam. 12 nov. 2011, 17:44
par Isaya
Excellente idée, mirandir. Cela vient d'un bug du moteur de jeu si on crée un personnage avec 0 XP. Tutu fait ou faisait partir à 100 à cause de ça, il me semble. Bref, c'est toujours nécessaire (sauf peut-être avec TobEx).
BGT utilise AddXPObject(Player[1 à 6],-1) pour l'expérience, dans le fichier AR0015.BAF.
Si cela aide pour l'expérience, il reste à vérifier ce que ça donne vis à vis des niveaux acquis (points de vie, compétences, sorts). Dans BGT, le niveau n'est pas changé par l'opération.
Posté : sam. 12 nov. 2011, 21:26
par Freddy_Gwendo
Isaya a écrit :Parmi les effets, il y a un drain de niveau, utilisé par les morts-vivants. Celui-là est récupérable. Quand un personnage a subi le drain de niveau, on ne voit plus ses points d'expérience.
L'effet dont je parlais joue sur l'XP, avec trois options : ajouter (peut-être retirer s'il accepte une valeur négative), fixer, fixer par un pourcentage de la valeur actuelle.
Il existe aussi des actions qui touchent à l'expérience, mais plutôt pour en ajouter : AddexperienceParty() et AddExperiencePartyGlobal(). Mais peut-être acceptent-elles des valeurs négatives ? Le paramètre est de I, et l'exemple de ReputationInc() montre qu'on peut parfois utiliser une valeur négative pour un paramètre de type I.
AddexperienceParty() et AddExperiencePartyGlobal() acceptent effectivement des valeurs négatives : je les ai utilisées dans un dialogue. J'en avais marre des fausses réponses à un test ou à une énigme qui te lancent un sort pourri. J'ai préféré considérer que si tu ne savais pas répondre, c'est que tu n'avais pas ta place à ce niveau de l'aventure. Donc sanction immédiate : perte d'XP !
Mais encore une fois, tu peux les récupérer via un sort...
Sinon, merci à vous tous pour ces pistes. Je vais vérifier si je ne les ai pas déjà exploitées : je ne me souviens pas de toutes mes pistes de travail datant de 6 ans ! Mais comme j'ai dû rédiger un papier récap quelque part, je vais le chercher dans mes archives et les contrôler.
Je me lancerai sans doute demain car pour l'instant j'ai la tête dans le guidon de mes cartes...
Posté : jeu. 17 nov. 2011, 21:09
par Freddy_Gwendo
Après vérification, l'effet "Stat: Experience Points [104]" et l'action AddXPObject(Player[1 à 6],-x) suppriment des XP mais conservent le niveau.
RETOUR À LA CASE DÉPART !
Posté : lun. 14 déc. 2015, 00:37
par Freddy_Gwendo
Je déterre ce topic pour poser une question :
Code : Tout sélectionner
BEGIN GWCDDial
CHAIN IF ~NumTimesTalkedTo(0) Global("GWChevalier_Diamant","LOCALS",0)~ THEN GWCDDIAL Chevalier_Diamant
@7701001 // ~Souhaitez-vous devenir un Chevalier de Diamant ?~ ~Souhaitez-vous devenir une Chevalière de Diamant ?~
DO ~SetGlobal("GWChevalier_Diamant","LOCALS",1)~
END
++ @7701002 EXTERN GWCDDIAL Chevalier_Diamant_Oui
++ @7701003 EXTERN GWCDDIAL Chevalier_Diamant_Non
CHAIN GWCDDIAL Chevalier_Diamant_Oui
@7701004 // ~Vos caractéristiques et les études que vous avez menées vous autorisent à embrasser cette carrière. Bienvenue dans le cercle très restreint des Chevaliers de Diamant !~
END
IF ~~ THEN DO ~[color="#FFFF00"]ActionOverride(LastTalkedToBy,SetGlobal("GWChevalier_Diamant","LOCALS",1))[/color] DestroySelf()~ EXIT
L'action en jaune fonctionne-t-elle ? En gros, attribue-t-elle la valeur 1 à la variable GWChevalier_Diamant de la personne à qui l'on parle ?
Édit : le kit n'étant pas terminé, j'ai la flemme de créer une usine à gaz pour tester ce dialogue. Sinon, je ne poserais pas la question.
Posté : lun. 14 déc. 2015, 08:20
par Freddy_Gwendo
Bon, j'ai testé : ça ne fonctionne pas. La variable n'est pas affectée à LastTalkedToBy. Donc, pour affecter une variable au perso à qui l'on parle, il faut IMPÉRATIVEMENT utiliser une variable globale. C'est pénible, mais c'est comme ça.