Aller au contenu


Un Menu...


  • Veuillez vous connecter pour répondre
4 réponses à ce sujet

#1 BG3

BG3

Posté 07 août 2009 - 12:55

Bonjour,

J'aurais, svp, besoin de votre aide pour créer un script affichant un menu (se déclenchant par exemple lors du port d'un anneau), menu permettant de dégrader de façon permanente et irréversible un talent de son choix (parmi les 21 disponibles, donc menu comportant au moins 21 boutons).

Merci beaucoup.


Objectif

Contrairement à un classique Donjons&Dragons, il me semble que le système de progression des TES est vraiment "particulier" (d'aucuns diraient "tordu", même s'il faut bien reconnaître qu'il n'y a pas plus logique) : ainsi, contrôler à la perfection la progression d'un personnage est plutôt délicat (entre parenthèses, je trouve cela assez gênant pour un jeu dit de rôle). Il est à peu près facile de gagner des points selon l'orientation choisie, mais il encore plus facile de bêtement "gaspiller" des points (cf. Leveling du Wiwiki, ou l'Efficient Leveling de l'UESP).

Ainsi, cela s'apparenterait plutôt à un script de "triche" :tick: , mais inversée :green: : au lieu de renforcer des skills, il s'agirait de supprimer le superflu en empêchant le phénomène d'over leveling qui m'apparaît difficilement évitable avec le système de progression des TES : dans le cas d'une progression désirée en +5/+5/+5, il faut obtenir 10 points de talents liés à chaque caractéristique (force, intelligence...), mais il est inutile d'en obtenir plus. Le but du script souhaité serait donc de supprimer les points en trop avant d'arriver au niveau suivant.

PS : il y avait un script de menu dans Morrowind/Tribunal lié à un anneau, je ne sais plus lequel (je crois aussi qu'il y avait une limitation en termes de nombres de boutons possibles).
PS n°2 (un peu beaucoup hors sujet) : un mod sans doute intéressant à propos de la progression des personnages...


[EDIT n°2]

Voilà à quoi ressemble le script (finalement, il est associé à un livre) :

ScriptName LivreDeLaPoisseSCRIPT
		 
		; // Based on the "MessageBox Tutorial" of the ElderScrolls.com TESCS Wiki \\
		; \\		Thanks to this website, its team and its contributors!		 //
		 
		 short Choosing
		 short Choice
		 short Decreasing								   ; permet d'ajuster le "pas"
		 short Value
		 
		 begin onEquip									   ; initialisation
			 set Choosing to -1
			 set Choice to -1
			 set Decreasing to 1
		 end
		 
		 begin MenuMode 1026
			 if ( Choosing == 0 )
				 return
			 elseif ( Choosing == -1 )				   ; menu général
				 messageBox "Choix de la caractéristique possédant le talent à dégrader :"  "Combat"  "Furtivité"  "Magie"  "-- Quitter --"
				 set Choosing to 1
			 elseif ( Choosing == 1 )
				 set Choice to GetButtonPressed
				 if ( Choice > -1 )
					 if ( Choice == 0 )
						 set Choosing to -10		   ; menu combat
					 elseif ( Choice == 1 )
						 set Choosing to -11		   ; menu combat
					 elseif ( Choice == 2 )
						 set Choosing to -12		   ; menu combat
					 elseif ( Choice == 3 )
						 set Choosing to 0			   ; quitter
					 endif
				 endif
			 elseif ( Choosing == -10 )			   ;	-> menu combat
				 messageBox "Choix du talent à dégrader (combat) :" "Arme lourde" "Armurerie" "Armure lourde" "Athlétisme" "Combat à mains nues" "Lame" "Parade" "-- Retour à la première page --"
				 set Choosing to 10
			 elseif ( Choosing == 10 )
				 set Choice to GetButtonPressed
				 if ( Choice > -1 )
					 set Choosing to -1
					 if ( Choice == 0 )
						 set Value to Player.getActorValue Blunt
						 set Value to Value - Decreasing
						 Player.setActorValue Blunt Value 
						 message "Arme lourde : %.0f", Value 
					 elseif ( Choice == 1 )
						 set Value to Player.getActorValue Armorer 
						 set Value to Value - Decreasing
						 Player.setActorValue Armorer Value 
						 message "Armurerie : %.0f", Value 
					 elseif ( Choice == 2 )
						 set Value to Player.getActorValue HeavyArmor
						 set Value to Value - Decreasing
						 Player.setActorValue HeavyArmor Value 
						 message "Armure lourde : %.0f", Value 
					 elseif ( Choice == 3 )
						 set Value to Player.getActorValue Athletics
						 set Value to Value - Decreasing
						 Player.setActorValue Athletics Value 
						 message "Athlétisme : %.0f", Value
					 elseif ( Choice == 4 )
						 set Value to Player.getActorValue HandtoHand
						 set Value to Value - Decreasing
						 Player.setActorValue HandtoHand Value 
						 message "Combat à mains nues : %.0f", Value
					 elseif ( Choice == 5 )
						 set Value to Player.getActorValue Blade 
						 set Value to Value - Decreasing
						 Player.setActorValue Blade Value 
						 message "Lame : %.0f", Value 
					 elseif ( Choice == 6 )
						 set Value to Player.getActorValue Block
						 set Value to Value - Decreasing
						 Player.setActorValue Block Value 
						 message "Parade : %.0f", Value 
					 elseif ( Choice == 7 )
						; set Choosing to -1
					 endif
				 endif
			 elseif ( Choosing == -11 )			   ;	-> menu furtivité
				 messageBox "Choix du talent à dégrader (furtivité) :" "Acrobatie" "Armure légère" "Discrétion" "Éloquence" "Marchandage" "Précision" "Sécurité" "-- Retour à la première page --"
				 set Choosing to 11
			 elseif ( Choosing == 11 )
				 set Choice to GetButtonPressed
				 if ( Choice > -1 )
					 set Choosing to -1
					 if ( Choice == 0 )
						 set Value to Player.getActorValue Acrobatics
						 set Value to Value - Decreasing
						 Player.setActorValue Acrobatics Value 
						 message "Acrobatie : %.0f", Value 
					 elseif ( Choice == 1 )
						 set Value to Player.getActorValue LightArmor
						 set Value to Value - Decreasing
						 Player.setActorValue LightArmor Value 
						 message "Armure légère : %.0f", Value 
					 elseif ( Choice == 2 )
						 set Value to Player.getActorValue Sneak
						 set Value to Value - Decreasing
						 Player.setActorValue Sneak Value 
						 message "Discrétion : %.0f", Value 
					 elseif ( Choice == 3 )
						 set Value to Player.getActorValue Speechcraft
						 set Value to Value - Decreasing
						 Player.setActorValue Speechcraft Value 
						 message "Éloquence : %.0f", Value
					 elseif ( Choice == 4 )
						 set Value to Player.getActorValue Mercantile
						 set Value to Value - Decreasing
						 Player.setActorValue Mercantile Value 
						 message "Marchandage : %.0f", Value
					 elseif ( Choice == 5 )
						 set Value to Player.getActorValue Marksman 
						 set Value to Value - Decreasing
						 Player.setActorValue Marksman Value 
						 message "Précision : %.0f", Value 
					 elseif ( Choice == 6 )
						 set Value to Player.getActorValue Security 
						 set Value to Value - Decreasing
						 Player.setActorValue Security Value 
						 message "Sécurité : %.0f", Value 
					 elseif ( Choice == 7 )
						; set Choosing to -1
					 endif
				 endif
			 elseif ( Choosing == -12 )			   ;	-> menu magie
				 messageBox "Choix du talent à dégrader :" "Alchimie" "Altération" "Destruction" "Guérison" "Illusion" "Invocation" "Mysticisme" "-- Retour à la première page --"
				 set Choosing to 12
			 elseif ( Choosing == 12 )
				 set Choice to GetButtonPressed
				 if ( Choice > -1 )
					 set Choosing to -1
					 if ( Choice == 0 )
						 set Value to Player.getActorValue Alchemy
						 set Value to Value - Decreasing
						 Player.setActorValue Alchemy Value 
						 message "Alchimie : %.0f", Value 
					 elseif ( Choice == 1 )
						 set Value to Player.getActorValue Alteration
						 set Value to Value - Decreasing
						 Player.setActorValue Alteration Value 
						 message "Altération : %.0f", Value 
					 elseif ( Choice == 2 )
						 set Value to Player.getActorValue Destruction 
						 set Value to Value - Decreasing
						 Player.setActorValue Destruction Value 
						 message "Destruction : %.0f", Value 
					 elseif ( Choice == 3 )
						 set Value to Player.getActorValue Restoration
						 set Value to Value - Decreasing
						 Player.setActorValue Restoration Value 
						 message "Guérison : %.0f", Value
					 elseif ( Choice == 4 )
						 set Value to Player.getActorValue Illusion
						 set Value to Value - Decreasing
						 Player.setActorValue Illusion Value 
						 message "Illusion : %.0f", Value
					 elseif ( Choice == 5 )
						 set Value to Player.getActorValue Conjuration
						 set Value to Value - Decreasing
						 Player.setActorValue Conjuration Value 
						 message "Invocation : %.0f", Value 
					 elseif ( Choice == 6 )
						 set Value to Player.getActorValue Mysticism
						 set Value to Value - Decreasing
						 Player.setActorValue Mysticism Value 
						 message "Mysticisme : %.0f", Value 
					 elseif ( Choice == 7 )
						; set Choosing to -1
					 endif
				 endif
			 endif
		 end

J'ai l'impression que c'est un peu lourd : est-il possible de l'optimiser, svp ?

Merci

Modifié par BG3, 08 août 2009 - 14:02.


#2 Dorjé

Dorjé

    3e433ème effet d'un papillon tibétain


Posté 09 août 2009 - 15:25

Le script me parait bien (clair et pas trop lourd, mais je suis pas le plus grand spécialiste de la chose).

J'ai un peu de mal à comprendre (malgré tes explications) ce que tu entends par :

Citation

Le but du script souhaité serait donc de supprimer les points en trop avant d'arriver au niveau suivant.

Essayer ne veut rien dire. Fais le ou ne le fais pas ! (maître Yoda :) )

Lien : PROJET MORROWIND 3E433 (Morrowind dans Oblivion !)

#3 BG3

BG3

Posté 10 août 2009 - 13:11

Merci pour ta réponse.[quote name='Dorje' post='620713' date='09.08.2009 à 16:24'][quote]Le but du script souhaité serait donc de supprimer les points en trop avant d'arriver au niveau suivant.[/quote]
[/quote]
Si j'ai bien compris le système de progression d'Oblivion, il faut, pour être au top de l'optimisation,  gagner pile 30 points de talents par niveau, répartis comme suit :
- 10 points liés à une compétence parmi les 7 disponibles (force, intelligence, volonté, agilité, rapidité, endurance, personnalité et enfin chance)
- 10 autres points liés à une autre compétence
- 10 derniers points liés à une dernière compétence

Le tout doit comprendre 10 points en talents majeurs (et donc 20 en mineur) : répartition 1/3 (maj.) 2/3 (min.).

L'intérêt est ainsi, au passage de niveau, de pouvoir acquérir des modificateurs de caractéristiques de +5 (il est impossible d'aller au-dessus) pour seulement trois caractéristiques (et pas plus). Maintenant, avoir plus que 30 points permet évidemment de toujours obtenir des +5 : mais il y aurait alors du gaspillage de points, et potentiellement des difficultés à atteindre les 100 points max pour chaque caractéristique.
Exemple : en partant du principe que l'on gagne 50 points (ce qui est assez simple, du moins au début), on gaspille par conséquent 20 points qui auraient pu servir à modifier des caractéristiques. Plus de détails : le perso gagne 10 points de talents liés à la force, 10 liés à l'intelligence, 10 liés à l'endurance, 10 liés à la vitesse, 6 correspondant à l'agilité et 4 liés à la volonté ; et il est seulement possible d'affecter des +5 à trois caractéristiques. Vu qu'il s'agit d'un exemple, on va imaginer que ces modificateurs vont être appliqués aux trois premières caractéristiques ; dans ce cas, le bonus +5 de vitesse qu'il était possible d'acquérir est perdu, de même que les gains possibles en agilité (+3) et volonté (+2). Vu qu'il est facile en début de partie de gagner des points, il serait dommage de les gaspiller et ainsi ne pas faire évoluer favorablement son perso. Je reprends mon exemple : au passage de niveau, le perso aura donc +5 en force, +5 en intelligence, +5 en endurance et repartira au niveau suivant avec rien, mais devra tout de même cravacher plus dur pour obtenir ses modificateurs de caractéristiques (plus le niveau du talent est élevé, plus il faut s'entraîner pour passer au niveau suivant). Si, au niveau des talents, les +6 d'agilité et les +4 de volonté sont supprimés, il sera plus rapide de les récupérer ; et que dire des points liés à la vitesse. Le mieux serait évidemment de reporter ces 20 points au niveau suivant, mais, comme bidouillage, c'est quand même un peu trop gros...
Et là, je n'ai pas encore parlé du cumul d'overleveling : si le perso gaspille systématiquement des points sans pouvoir accéder au bonus de caractéristiques s'y rapportant, il arrivera un moment où il manquera de points pour augmenter lesdites caractéristiques (si le perso arrive à 100 en altération, 100 en destruction et 100 en guérison, et qui est resté à 80 en intelligente, il ne pourra plus aller jusqu'à 100 dans ces caractéristiques... sauf si je n'ai rien compris au fonctionnement du leveling, ce qui n'est pas impossible :) *). Dans le même ordre d'idée, inutile de gagner, sur le même niveau, 30 points liés à une caractéristique : il y aurait alors une "perte" de 10 points possibles sur cette dernière (deux fois +5).
Là, je suis dans l'excès, certes, car il est tout de même facilement possible de "gaspiller" de nombreux points sans la moindre conséquence :
[quote name='http://www.uesp.net/wiki/Oblivion:Efficient_Leveling#Efficiently_Wasting_Skill_Points']The number of skill increases that you can safely "waste" can readily  be calculated. You need 10 skill increases to get a +5 attribute bonus  modifier. This means that if you start at level 1 with, let's say, 25  points in Strength you need at least 150 skill increases to get  Strength to 100 efficiently (75 Strength bonuses are necessary to get  from 25 to 100; with 10 skill increases for a +5 bonus, you need  75*10/5=150 skill increases). All attributes (except luck) have 3  associated skills. If those skills all start at level 25, you have 225  available skill increases associated with each attribute (75*3=225).  Since you only need to reserve 150 skill increases for attribute  bonuses, you have an extra 75 skill increases that you can "waste"  without ruining your chances of leveling efficiently. In general, you  will have more than 75 "wastable" skill increases: most attributes  start at values larger than 25, and most skills start at values below  25.[/quote]
Ca laisse de la marge, quand même !!! De plus :
[quote name='http://www.uesp.net/wiki/Oblivion:Efficient_Leveling#Efficiently_Wasting_Skill_Points']Please note that you can gain some skill points without using its  modifiers and still level efficiently. The main focus of Efficient  Leveling is getting two/three +5 attribute modifiers each level, not getting only  two/three +5 modifiers with no unused modifiers on any other  attributes. If you want to level efficiently take this in consideration  or you will end up trying to raise only the required skills to get the  +5 modifier, which is very hard to achieve and very game breaking.[/quote]

Bref, j'ai quand même fait mon bouquin. Je l'ai testé (et j'ai enregistré après le test ; comme écrit précédemment, les points seront facilement récupérables vu que je suis au niveau... 2). Par contre, cela provoque quelques incohérences (par exemple, progression de 191% en marchandage actuellement : il suffit de vendre un objet pour que tout rentre dans l'ordre, heureusement).
Gros problème toutefois : le jeu n'a pas pris en compte la perte de talents lors du passage au niveau supérieur. Résultat : lors de la transition entre le niveau 1 et 2, le jeu a gardé en mémoire les points gagnés (sans prendre en considération les points perdus), ce qui a laissé l'accès à des bonus qui auraient dû être supprimés (vu que les talents choisis ont été abaissés suite à l'utilisation du livre comportant le script ci-dessus). Et là, je ne vois pas quoi faire, et je me demande même si je peux y faire quelque chose.

* [sup]Peut-on seulement obtenir 100 en alchimie en ayant 80 d'intelligence à Oblivion ?? Si non, tout ce que j'ai écrit n'a strictement aucune valeur, aucun intérêt......[/sup]

PS : si le fameux livre de détériorations de caractéristiques vous intéresse, laissez un commentaire et je transmettrai à Wiwiland... (ce sera toujours mieux que de faire de séjours en prison pour perdre des points)

#4 Dorjé

Dorjé

    3e433ème effet d'un papillon tibétain


Posté 11 août 2009 - 14:57

Je veux pas dire d'erreur, mais le système de leveling d'Oblivion est juste de 10 augmentations de talents majeurs (et non de 30 et les talents mineures ne comptent pas). Et oui tu peux avoir 100 en alchimie avec 80 en Intelligence, tant que tu te sers de la compétence celle-ci continue d'augmenter peut important ton niveau de caractéristique.

Pour savoir si on passe à côté de points dans le leveling qui seront perdues, perso je me pose + la question inverse : comment faire pour que mon perso augmente moins vite de niveau et de caractéristique (solution mod NiveauxAjustés en x2 ou x3) pour profiter d'une expèrience de jeu plus long (et ainsi profiter des quêtes des mods pleinement sans les survoler avec un perso trop balaise). Pour les points en +5 aux carc, je trouve cela trop, donc lors de l'augmentation de niveau je ne les prends presque jamais préférant choisir les carac en +3. Enfin, je vois pas trop l'intérêt d'avoir au final toutes les carac et compétence à 100 s'est uniformisant, mieux vaux que ce ne soit pas le cas pour recommancer un nouveau perso avec d'autres domaines de compétence et donc une autre expèrience de jeu.

Enfin, tout cela est un avis perso.

Sinon, si ça peut t'être utile j'ai remarqué dernièrement dans le dossier d'Oblivion un fichier txt nommé LevelUp qui récapitule toutes les niveaux de carac, de compétence et les sorts du perso à chaque niveau.
Essayer ne veut rien dire. Fais le ou ne le fais pas ! (maître Yoda :) )

Lien : PROJET MORROWIND 3E433 (Morrowind dans Oblivion !)

#5 BG3

BG3

Posté 12 août 2009 - 15:39

En effet, on a chacun son point de vue sur la progression des personnages. De toute façon, Oblivion m'a, "comme un grand", flingué ma dernière sauvegarde. Je vais recommencer...
Bethesda et les bugs, c'est une grande histoire... avec notamment, sur mon PC, un plantage quasi systématique lors de la sortie du jeu.

Voir le messageDorje, le 11.08.2009 à 15:56, dit :

Sinon, si ça peut t'être utile j'ai remarqué dernièrement dans le  dossier d'Oblivion un fichier txt nommé LevelUp qui récapitule toutes  les niveaux de carac, de compétence et les sorts du perso à chaque  niveau.
Intéressant, ça. Par contre, je ne trouve pas ce fichier. Soit je ne regarde pas au bon endroit, soit c'est un "programme externe" qui l'a créé et le gère...

Voir le messageDorje, le 11.08.2009 à 15:56, dit :

Je veux pas dire d'erreur, mais le système de leveling d'Oblivion est juste de 10 augmentations de talents majeurs (et non de 30 et les talents mineures ne comptent pas).
En effet, il faut bien 10 de majeurs, et ça suffit. Mais, comme je le disais, les talents mineurs ont quand même un impact sur les fameux modificateurs de caractéristique (soit 30 points en tout pour avoir trois bonus +5).

Modifié par BG3, 12 août 2009 - 15:40.





0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)