[résolu]comment Faire Un Script Qui Dés Qu'on Rentre Dans Une Mais
#1
Posté 29 janvier 2010 - 13:24
-Dés qu'on rentre dans un maison la quête continue (stage suivant)
-Dés qu'on trouve l'arme la qûete continue
merci d'avance
Alors,pour le script de l'arme j'ai reussi mais miantenant je voudrait juste savoir c'est quelle "Begin ....." qu'il faut utiliser pour quant on rentre dans la maison la quéte continu j'ai essayer
Scn AAaTour
Begin OnActivate
SetStage aaunemaison 10
endif
end
Mais sa ne marceh pas qui pourrait me dire quel begin je dois utiliser merci
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#2
Posté 29 janvier 2010 - 13:40
Mais il me semble que c'est Shadow She-Wolf, ou alors c'était Kira ... qui t'avait prévenu qu'il ne suffirai pas de faire mettre à jour le niveau de quête, qu'il te faudrait aussi prévoir à ne pas permettre au script de s'activer à chaque activation de la porte, mais une seule fois, pour lancer cette étape de la quête ...
Regarde dans ton ancien sujet pour avoir les détails.
#3
Posté 29 janvier 2010 - 14:08
Mdarm, le 29.01.2010 à 13:54, dit :
A enfaite je n'avais pas changer la porte oui,sa me met la quête mais aprés je reqlique sur la porte et elle ne me méne null part aide plz
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#4
Posté 29 janvier 2010 - 14:18
Genre :
[b]If[/b] Machin-Chose == 1 Start truc-machin [b]Elseif[/b] machin-bidule >=0 return-machin-chose-chouette
Dans ce genre de cas-là, vu qu'il y a 2 "if", en toute logique, il devra y avoir 2 "endif", avant le "end" (qui d'ailleurs, je crois, ne se met que si il y a un "Start" en début de script, et non-pas un "begin" ... pas sûr ) ... mais ça j'en suis pô sûr, comme je te l'avais dit dans ton autre sujet, je suis une grosse brèle en script.
Dans la section ici, "les scripts me crispent", il y a des sujets en "post-it", avec des liens, si tu connais un peu l'Anglois, tu devrais pouvoir trouver de bonnes bases en scripting sur le wiki officiel de "The Elder Scrolls Forum".
#5
Posté 29 janvier 2010 - 14:33
Mdarm, le 29.01.2010 à 14:32, dit :
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#6
Posté 29 janvier 2010 - 14:45
Tu as réussi à faire marcher le script pour ce qui est de faire passer le niveau d'avancement de ta quête.
Mais tu aimerai que ça se fasse une fois passé la porte, et non-pas juste quand on l'active.
Et quoi d'autre ? Il te faut un autre avancement dans la quête au moment où on ramasse une arme ? C'est bien ça ?
#7
Posté 29 janvier 2010 - 14:52
Mdarm, le 29.01.2010 à 14:59, dit :
Excuse moi, la prochaine fois sa sera mieu. Oui, j' aimerais que sa soit aprés que j'ai activé la porte se serait beaucoup mieu, et quand la quete s'affiche (ingame), apres je ne peu plus rentrer a l'interieur, la quete se met mais impossible d'entrer,
sinon le script pour continuer la quete quand on trouve une arme c'est:
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#8
Posté 29 janvier 2010 - 15:08
Je crois que tu es trés mal partit en faisant comme tu as fait, regarde ici dans la partie "Scripts de Résultat".
Edit : et puis n'hésite pas à aller dans la partie "Scripts de Quêtes", qui est un peu plus bas sur la même page.
#9
Posté 29 janvier 2010 - 18:59
Mdarm, le 29.01.2010 à 15:22, dit :
Merci mais sa ne m'aide pas moi c'est par rapport a une porte,pas un npc , les npc j'arrive déjà, aidez moi
Alors est-ce que vous pouvez m'écrire,un script pour ma quête voici,le sujet du script:dés que l'on rentre dans un batiment hop la quete s'afiche merci
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#10
Posté 29 janvier 2010 - 19:23
Alors, première chose, le "endif" comme ça, ne sert strictement à rien du tout.
Comme l'a spécifié Mdarm, il n'est nécessaire que si on a un "if" avant, comme ceci:
if blabla result1 result2 result3 ... resultX endifÇa permet au compilateur du tescs de savoir ce qui conditionné par le "if".
Toutefois, contrairement à ce que dit Mdarm, un "elseif" (on ne peut utiliser un elseif qu'après un if) n'entraine pas un second "endif", comme ceci:
if blabla result1 result2 result3 ... resultX elseif ni1 ni2 ... niX endif
Ensuite, pour le problème de la porte, il faut bel et bien conditionner tout cela, sinon, le script se répète à chaque fois que tu activeras la porte, c'est justement ce qui provoque le problème de la porte qui ne daigne pas s'ouvrir.
Chaque objet a une "activation" spécifique par défaut:
porte -> ouverture/fermeture
contenair -> ouvrir
objet -> prendre
et cetera
Le contenu du bloc "OnActivate" remplace cette activation standard par ce qui est à l'intérieur de celui-ci.
Du coup, quand toi tu actives la porte, le script lit le bloc OnActivate et exécute ce qu'il y a dedans, à savoir la mise à jour du stage de ta quête, mais il n'effectue plus l'activation standard, à savoir le "ouverture/fermeture".
Pour cela, il faut, dans le bloc OnActivate dire que veuilles tout de même effectuer l'activation par défaut, cela se fait en écrivant:
Begin OnActivate Activate End
Une dernière chose, tu peux conditionner le bloc OnActivate aussi.
Car là, tel qu'il est fait, si un PNJ quelconque veut entrer dans ta tour (chose improbable), le script s'exécutera aussi !
C'est à dire que si il veut ouvrir la porte alors que tu n'es même pas entré dans la tour, ton journal se mettra à jour tout de même, de plus, le PNJ buguera devant la porte.
Pour conditionner le bloc pour qu'il ne s'exécute que lorsque c'est le PJ qui active la porte, il faut faire comme ceci:
Begin OnActivate Player blabla End
\end{moniale taoïste}
Une dernière chose:
Je ne ferais aucun script pour toi, moi, ni personne d'autre.
On peut aider, expliquer, mais c'est à toi de faire, point.
#11
Posté 29 janvier 2010 - 19:25
Toi, c'est ni rapport à une porte, ni rapport à un Pnj, c'est rapport à une quête ...
En théorie, tu devrais avoir un "StartQuest "ma-quête-à-moi" comme script, et le reste qui va avec ... dont la porte qui déclenche l'avancée de la quête si le joueur en est au bon niveau de quête ...
M'enfin, je dis pas ça pour embêter, mais tout semble être inscrit dans le Wiwiki, donc si ce que tu souhaite c'est qu'on te fasse ce script, demande-le carrément, et alors là, tu devra attendre qu'un membre sachant le faire, prenne un peu de son temps pour toi.
Edit : mouarf ! grillé par la plus gentille ... merci Shadow
Re-edit : re-mouarf ... en relisant bien ton message Shadow, je m'aperçois à quel point je suis nul en script ...
#12
Posté 29 janvier 2010 - 19:29
Scn AAaTour
Begin OnActivate
Activate
End
SetStage aaunemaison 10
endif
end
est-ce que c'est juste,sinonmerci de le corriger
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#14
Posté 29 janvier 2010 - 20:12
Modifié par darkremi99, 29 janvier 2010 - 20:24.
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#16
Posté 29 janvier 2010 - 22:51
Shadow she-wolf, le 29.01.2010 à 20:49, dit :
OUi,mais je dois le mettre où,je fais le petit icone editeur de script ou je vais dans les quêtes,ou......?
Non cebon sa marceh merci,sauf que jaimerais que la quéte s'affiche apres que je sois rentré dans le batiment sinon merci beaucoup
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#17
Posté 30 janvier 2010 - 00:12
Mets une autre porte quelconque sans script à l'extérieur . Relie les deux portes et place les marqueurs correctement. Sauve ton mod.
- Pour chercher dans Oblivion s'il y a une porte qui a un script comme ce que tu veux faire, ouvre le TECS2, et dans la fenêtre Object Window, va dans Worldobject puis dans Door. Tu as toutes les portes du jeu.
- En haut de la fenêtre Object, tu as les colonnes EditorID, Count, Users,... et plus à droite...script. Tous les scripts de porte sont donc dans cette colonne là.
- Tu n'as plus qu'à ouvrir la fenêtre de script à coté, et passer en revue les scripts utilisés pour les portes. Observe ce qu'il font, essaie de les analyser.
Dans les premiers, il y a le HouseBravilScript :
ScriptName HouseBravilScript
Begin OnLoad
If GetStage HouseBravil == 10
If Player.GetInCell BravilHouseForSale == 1
SetStage HouseBravil 20
EndIf
EndIf
End
Si je ne m'abuse, il détecte le chargement (Onload) effectué par la porte, vérifie que le stage HouseBravil est égal à 10, que le joueur est bien dans la cellule visée et enfin met le stage HouseBravil à 20 si la condition est remplie.
La mise a jour du stage à 20 ne sefait qu'une fois, puisqu'il y a la condition if GetStage HouseBravil == 10
- Essaie d'adapter le script avec ta quête. Mais il faut que la condition if GetStage TAQUETE == 0, si ta quête n'a pas été démarée par une entrée journal. Pour la ligne If Player.GetInCell Macellule == 1, pense bien à mettre le bon ID de cellule.
Une fois le script fini, tu n'as plus qu'à ouvrir la fenetre d'édition de ta porte, et à selectionner ton script dans la liste déroulante. Puis valide.
ATTENTION : la porte qui a le script doit être à l'intérieur : dans la cellule ou on est censé déclencher l'arrivée de la quête. Et cette porte doit être reliée à une autre par sa fonction teleport.
Le chat CROIT appartenir à une race supérieure évoluée. Mais ce n'est qu'un rebut pervers avec des yeux belzebuth et des griffes.
------
Moddeur de Blye Citadelle du Chaos pour Morrowind et Vault panic pour Fallout3
#18
Posté 30 janvier 2010 - 09:58
ScriptName aaaatourqu
Begin OnLoad
If GetStage aaunemaison == 5
If Player.GetInCell aaTour* == 1
SetStage aaunemaison 10
EndIf
EndIf
End
même mais autres stage ne marceh plus,bizar si quelqu'un trouve la réponse,est ce n'est pas logique que je mette la porte scripté à l'interieur puisque je veux que des que je rentre la quête s'active...Merci
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#19
Posté 30 janvier 2010 - 10:21
darkremi99, le 30.01.2010 à 10:12, dit :
Le bloc "OnLoad" ne s'exécute que lors du chargement de la porte dans la mémoire, c'est à dire au chargement de la cellule dans laquelle se trouve la porte.
Du coup, si tu la mettais en extérieur, le script de la porte s'exécuterait dès que tu arrives dans Bravil, ce n'est pas ce que tu souhaites.
ps: une petite chose, en français:
est != et
#20
Posté 30 janvier 2010 - 10:27
j'ai renomé une porte, de chorrol (parceque ma maison vient des texture de chorrol) des que je l'ai renomé, je fais double-clic,je cherche mon script, je le met, hop je ferme je save. Je place ma porte à l'interieur je vais dehors je place la porte sans script, je fais le lien de téléportation et voilà, et sa ne marche pas merci de m'aidez....
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#21
Posté 30 janvier 2010 - 10:31
Tu es à quel stage de ta quête lorsque tu rentres dans la tour ?
Car ton script ne fonctionnera que si tu es déjà au stage 5.
#22
Posté 30 janvier 2010 - 10:35
Pourquoi tu prends pas le script et tu changes ce que tu as besoin.
A bientôt,
- Templier, Bataille de Kherak
#23
Posté 30 janvier 2010 - 10:43
Je ne trouve pas le script de la ferme Shetcombe......
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
#24
Posté 30 janvier 2010 - 10:49
darkremi99, le 30.01.2010 à 10:12, dit :
ScriptName aaaatourqu
Begin OnLoad
If GetStage aaunemaison == 5
If Player.GetInCell aaTour* == 1
SetStage aaunemaison 10
EndIf
EndIf
End
même mais autres stage ne marceh plus,bizar si quelqu'un trouve la réponse,est ce n'est pas logique que je mette la porte scripté à l'interieur puisque je veux que des que je rentre la quête s'active...Merci
Ca marche, j'ai testé hier sur un mod : rajouté deux portes, reliées, dont celle à l'intérieur avec le script. Ca marche. Si on le fait bien.
Au cas où, mets la condition if GeStage aaunemaison <= 5
Vérifie aussi que ta quête a bien le stage 10 d'implémenté, et la bonne ID.
J'ai pris le temps hier soir de chercher pour toi, et de tester, donc, fais-moi plaisir, continue jusqu'à ce que ça marche !
Le chat CROIT appartenir à une race supérieure évoluée. Mais ce n'est qu'un rebut pervers avec des yeux belzebuth et des griffes.
------
Moddeur de Blye Citadelle du Chaos pour Morrowind et Vault panic pour Fallout3
#25
Posté 30 janvier 2010 - 11:00
Ps:A j'ai un mod que j'ai traduit j'aimerais le mettre sur wiwiland,c'est un mod Stargate,si vous connaisez,c'est super bein fait comme mod,sa rajoute des sous'sol dans toute les maison que l'on peut acheter,et le meiller vous le verez par vous même
alors oui ou non
si oui comment faire merci
A oui,juste une derniére question comment fait on pour,en script faire apparaître un marqueur déjà mit sur la carte,pour ne pas avoir 20mille marquer merci
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)