Récupérer Le Type D'Un Objet
#1
Posté 13 mars 2010 - 12:38
Je cherche à faire un petit mod ajoutant un "autel de désenchantement", au même titre que les autels d'enchantement, mais qui enlèverait l'enchantement d'un objet enchanté. Seulement, pour cela, je dois faire deux choses pour lesquelles je n'ai pas trouvé de fonctions :
- Ouvrir une boite de dialogue genre "enchantement" ou "création de sorts" personnalisée, pour la sélection de l'objet à désenchanter,
- Et, surtout, récupérer le type de l'objet : par exemple, le PJ veut désenchanter une arme appelée "dague surpuissante". Est-ce une cuirasse d'ébène, un arc dwemer ou une dague de fer ? Autrement dit : comment récupérer l'ID de l'objet "de base" ?
Merci à tous !
#2
Posté 13 mars 2010 - 14:31
tobast, le 13 mars 2010 - 12:38, dit :
C'est peut-être possible avec OBSE, mais après un rapide survol de ses fonctions, je n'ai rien trouvé allant dans ce sens...
Concrètement, les menus de ce genre sont des fichiers .XML externes, avec un mod qui modifie les fichiers d'interface, on peut les lire/modifier dans Oblivion/Data/Menus tout simplement. Ils sont aussi dans l'archive Oblivion - Misc.bsa pour l'interface du jeu de base.
La seule chose qui s'approche de ce que tu comptes faire est la fonction MessageBox, ce n'est pas très personnalisable hélas...
tobast, le 13 mars 2010 - 12:38, dit :
Dans le même registre, il y a aussi GetItemCount, qui permet de récupérer le nombre de l'objet spécifié que porte le joueur.
Dans les deux cas, ça fait des scripts à rallonge.
De plus, le script ne fonctionnera pas sur les objets venant d'un mod quelconque...
Mais c'est comme cela qu'a été conçu le script du coffre de l'archimage, avec GetItemCount.
Donc à partir des fonctions du jeu de base, je doute que se soit possible de faire autrement.
Et manifestement, ça n'a pas l'air mieux avec OBSE...
En l'état, c'est tout ce que je vois...
#3
Posté 13 mars 2010 - 17:44
Merci de ta réponse précise ! @+, tobast
#4
Posté 13 mars 2010 - 18:24
tobast, le 13 mars 2010 - 17:44, dit :
Mais GetIsID est la fonction générique, lorsque l'on ne connait pas l'objet sur lequel agit le script. (le cas typique, est avec un script de sort)
Parce que bon, MonEpee.GetIsID MonEpee, c'est un peu de la tautologie là.
Cela dépend de la façon dont tu souhaites procéder...
Mais à première vue, comme tu souhaites imiter les autels de création d'enchantement, il vaut mieux tester Player.GetItemCount MonEpée.
L'autre solution simple serait de faire comme avec les autels du nécromancien et les gemmes noires, stocker l'objet dans un conteneur, et le script du conteneur fait un GetItemCount MonEpee puis remplace l'objet en conséquence.
Mais ça fait de beaux scripts à rallonge...
Le script du coffre de l'archimage fait plus de 400 lignes pour tester tous les ingrédients...
#5
Posté 13 mars 2010 - 20:57
EDIT : En fait (oui je suis un boulet je sais je viens d'y penser ) je crois que je vais me simplifier un peu la vie en créant un coffre genre "coffre de l'archimage" pour désenchanter... Ça sera beaucoup plus simple ^^ Pour éviter que ça soit trop "cheat", je pense que demander 1/4 du prix de l'arme/l'armure/etc. non enchantée serait une bonne compensation non ?
merci, tobast
Modifié par tobast, 13 mars 2010 - 21:33.
#6
Posté 24 mars 2010 - 19:33
1. Comme Shadow te l'a dit, ce mod ne fonctionnera pas avec les objets des autres mods. Pourquoi ? Si tu installe un mod qui te donne une épée de métal et que tu l'enchante toi-même, il te suffit, pour t'en convaincre, de désinstaller le mod et de rejouer : tu aura toujours ton épée. Ca veut dire que le fait d'enchanter l'épée a briser le lien avec l'ID d'origine. En gros, tu as créé ingame une nouvelle ID.
2. Si tu veux faire un menu de sélection d'arme, ce n'est pas demain que tu auras fini. Tu va devoir arriver à créer une nouvelle interface et à l'afficher.
3. Pour faire simple : un coffre, un menu
MessageBox "Désenchanter les objets ?","Oui","Non"Et tu vérifie si les objets présents sont les armes enchantées du jeu ou non. Si un objet à l'id de l'épée de foudre, par exemple, et bien tu le supprime et tu rajoute au coffre l'équivalent non enchanté.
La liste des IDs sera longue, mais au moin, ce sera simple pour commencer. Inspire-toi du coffre.
#7
Posté 24 mars 2010 - 19:39
beeratwork, le 24 mars 2010 - 19:33, dit :
Prends ça comme une marque de respect, discrètes attentions a ton égard.
"J'aime à voir les choses tomber en place."
Kerro Panille
Bloc-notes
#8
Posté 25 mars 2010 - 20:03
Mais j'ai tenté une petite ruse. Je me suis dit qu'en provoquant un peu, on allait peut-être répondre un peu plus...
#9
Posté 25 mars 2010 - 20:17
beeratwork, le 25 mars 2010 - 20:03, dit :
Parce que j'ai l'impression que le problème de tobast est réglé. Je peux me tromper bien entendu, mais c'est l'impression que j'en ai.
Et puis, ce n'est pas comme si le nombre de moddeurs compétents pour Oblivion sur toute la communauté (donc plus que Wiwiland) tenaient sur les doigts d'une main...
#10
Posté 26 mars 2010 - 11:41
Et puis le fait qu'un sujet n'évolue pas ne veux pas dire qu'il est réglé : la preuve à toute les colles que je poste, soit les solution que l'on propose ne sont pas toujours très claire pour les néophites (moi pas néophite), soit il s'agit de pistes déjà explorée (donc qui ne fonctionnent pas ou qui ne correspondent pas aux attentes), soit on ne répond pas parcequ'on n'en sait pas plus... Et le jour où j'ai posté
Citation
Citation
Modifié par beeratwork, 26 mars 2010 - 11:47.
#11
Posté 26 mars 2010 - 14:24
En l'occurrence, tes interventions dans ce sujets donnent une sensation désagréable au lecteur : tu sembles reprocher aux autres de ne pas avoir donné les informations que tu as apporté, et te placer au dessus d'eux parce que tu l'as fait.
Wiwiland fonctionne sur le bénévolat et le respect, et chacun apporte de l'aide aux autres dans la mesure de ses moyens. Je ne dis pas que tu as voulu volontairement afficher du mépris vis à vis des autres membres de la communauté, mais c'est le message qui passe dans tes posts. Et ce message-là n'est pas acceptable sur wiwiland.
Si tu as des remarques par rapport à ce que je viens de te dire, merci de le faire par MP, conformément à la Charte. Tout cela n'a rien à voir avec la question de Tobast. Donc on reviens au sujet, et toute intervention sans rapport avec la question finira désormais à la cave.
Cogite
Tout droit vers le non-linéaire !
It's not the engine, it's the writing.
HERMA MORA ALTADOON AE
#12
Posté 03 août 2010 - 08:04
#13
Posté 03 août 2010 - 08:43
Mais, avec OBSE, tu fais un bon gros GetObjectType, et plus précisément GetWeaponType dans le cas qui nous interesse, et l'affaire est pliée.
Mais, ce n'est pas avec cette fonction que l'on aurait pu résoudre la demande de tobast puisque lui voulait détecter si l'objet était une dague en fer, au lieu de détecter si c'était une épée à une main.
Au mieux, ça aurait permit construire de filtres pour diminuer la lourdeur des scripts...et c'est tout...
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)