Aller au contenu


[résolu]comment Faire Un Script Qui Dés Qu'on Rentre Dans Une Mais


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

#1 darkremi99

darkremi99

Posté 29 janvier 2010 - 13:24

BOnjour,j'ai deux petite question à la quelle aucun tuto ne m'a aidez,j'aimerais savoir si quelqu'un pourrait me donner un script pour faire:
-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
http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#2 Mdarm

Mdarm

    Sujamma rescue


Posté 29 janvier 2010 - 13:40

En théorie, ça devrait bel et bien être "OnActivate", surtout si ce script est placé sur ton "Activator" ... qui dans ton cas est une porte ... ça me semble logique.

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 darkremi99

darkremi99

Posté 29 janvier 2010 - 14:08

Ben,je pense que grâce au "endif"et au "end" sa se produirait qu'une seul fois


Spoiler : cliquez ici


J'ai fait,je suis aller dans door,chorrol,et j'ai dupliquer la door et jai mit le script et sa marche pas,bizare non

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

Voir le messageMdarm, le 29.01.2010 à 13:54, dit :

En théorie, ça devrait bel et bien être "OnActivate", surtout si ce script est placé sur ton "Activator" ... qui dans ton cas est une porte ... ça me semble logique.
En faite des que je clique sur la porte sa lance la quéte moi jaimerais que des que je suis a linterieur...
http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#4 Mdarm

Mdarm

    Sujamma rescue


Posté 29 janvier 2010 - 14:18

Je n'y connais pas grand chose en script, toutefois, il me semble que le "EndIf" n'intervient que lorsqu'il y a eut un "If" ou un "ElseIf" avant dans ton script ...

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  :evil: ) ... 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 darkremi99

darkremi99

Posté 29 janvier 2010 - 14:33

Voir le messageMdarm, le 29.01.2010 à 14:32, dit :

Je n'y connais pas grand chose en script, toutefois, il me semble que le "EndIf" n'intervient que lorsqu'il y a eut un "If" ou un "ElseIf" avant dans ton script ...
OK,mais comme je suis déjà aller sur le wiki,sa ne sert a rien que j'y retourne,comment faire je met la porte je joue je clique sur la porte sa me met la quete et apres plus rein je reclique sur la porte rien,en plus se serait mieu que la quete se mette quand je suis a l'interieur,esque Shadow She-Wolf,pourrait m'aidez ou Near,.......Merci
http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#6 Mdarm

Mdarm

    Sujamma rescue


Posté 29 janvier 2010 - 14:45

Donc, je résume, parce que là c'est pas clair comment t'écris :) (tu devrais essayer d'aérer un peu ton texte, genre avec des espaces après tes virgules, mais aussi en faisant des phrases moins longues ... :evil: )

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 darkremi99

darkremi99

Posté 29 janvier 2010 - 14:52

Voir le messageMdarm, le 29.01.2010 à 14:59, dit :

Donc, je résume, parce que là c'est pas clair comment t'écris :) (tu devrais essayer d'aérer un peu ton texte, genre avec des espaces après tes virgules, mais aussi en faisant des phrases moins longues ... :evil: )

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:
Spoiler

http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#8 Mdarm

Mdarm

    Sujamma rescue


Posté 29 janvier 2010 - 15:08

Je viens d'aller faire un tour sur le Wiwiki ... (c'est le wiki de wiwiland ... celui qui est tout en français et que l'on conseille d'aller consulter en premier en cas de question à poser ... rien à voir avec celui que je te proposai de chercher et qui est celui en VO, sur le forum de Bethesda, The Elder Scrolls Forum ... )

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 darkremi99

darkremi99

Posté 29 janvier 2010 - 18:59

Voir le messageMdarm, le 29.01.2010 à 15:22, dit :

Je crois que tu es trés mal partit en faisant comme tu as fait, regarde ici dans la partie "Scripts de Résultat".

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
http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#10 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 29 janvier 2010 - 19:23

\begin{moniale taoïste}

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 Mdarm

Mdarm

    Sujamma rescue


Posté 29 janvier 2010 - 19:25

Non-non :huhu:

Toi, c'est ni rapport à une porte, ni rapport à un Pnj, c'est rapport à une quête ... :huhu:

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 ... :huhu:

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 :huhu: ... merci Shadow :beat:

Re-edit : re-mouarf ... en relisant bien ton message Shadow, je m'aperçois à quel point je suis nul en script ...  :dry:

sleeping.gif

#12 darkremi99

darkremi99

Posté 29 janvier 2010 - 19:29

en gros mon script ressemble à sa:
Scn AAaTour

Begin OnActivate
   Activate
End

SetStage aaunemaison 10

endif
end
est-ce que c'est juste,sinonmerci de le corriger
http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#13 Mdarm

Mdarm

    Sujamma rescue


Posté 29 janvier 2010 - 19:32

Relis bien ce qu'à écrit Shadow she-wolf ... à propos du endif ... pfff

#14 darkremi99

darkremi99

Posté 29 janvier 2010 - 20:12

Bon,ok et si je l'enleve est-ce que c'est bon?

Modifié par darkremi99, 29 janvier 2010 - 20:24.

http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#15 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 29 janvier 2010 - 20:35

Voir le messagedarkremi99, le 29.01.2010 à 20:26, dit :

Bon,ok et si je l'enleve est-ce que c'est bon?
Lance la compilation, tu verras bien...

Je te rassures: ça ne fera pas exploser ton ordinateur...

#16 darkremi99

darkremi99

Posté 29 janvier 2010 - 22:51

Voir le messageShadow she-wolf, le 29.01.2010 à 20:49, dit :

Voir le messagedarkremi99, le 29.01.2010 à 20:26, dit :

Bon,ok et si je l'enleve est-ce que c'est bon?
Lance la compilation, tu verras bien...

Je te rassures: ça ne fera pas exploser ton ordinateur...

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
http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#17 sucresalesucre

sucresalesucre

    En fait y'a des accents cachés


Posté 30 janvier 2010 - 00:12

- Pour commencer, place ta nouvelle porte  (qui aura le script) dans la cellule d'intérieur où on doit déclencher le journal. Vérifie qu'elle a une ID propre à ton mod, par exemple MAporte01. Ca évitera de modifier les portes du jeu qui auront aussi ton script.
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 darkremi99

darkremi99

Posté 30 janvier 2010 - 09:58

sA NE Marche pas,c'est bizar,un moment sa ma mit la quête mais pas moyen de le savoir,c'est pas marqué  en haut,bizar que sa ne marche pas tien voici le script qui est "object"

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
http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#19 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 30 janvier 2010 - 10:21

Voir le messagedarkremi99, le 30.01.2010 à 10:12, dit :

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
C'est logique.

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 darkremi99

darkremi99

Posté 30 janvier 2010 - 10:27

Je vais expliquer ce que j'ai fait en détail, je suis aller faire mon script, je l'ai mit en object, puis je suis aller dans worldobject: door:
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....
http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#21 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 30 janvier 2010 - 10:31

Et...
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 Kaludas

Kaludas

    Mais je suis où bordel !?


Posté 30 janvier 2010 - 10:35

A la ferme Shetcombe lorsque l'on rentre dans la maison on a un message qui apparait c'est le début d'une quête

Pourquoi tu prends pas le script et tu changes ce que tu as besoin.

A bientôt,
"Deus Vult !"
- Templier, Bataille de Kherak

#23 darkremi99

darkremi99

Posté 30 janvier 2010 - 10:43

Le script enfin sa ne marceh pas je vais essayer ce que dit Kaludas,sinon si vous avez une autre idée merci de me la donné

Je ne trouve pas le script de la ferme Shetcombe......
http://www.legiondes...forum/index.php
Mon forum.
Non pas le tiens
Pourquoi
Parce que c'est le miens
......

#24 sucresalesucre

sucresalesucre

    En fait y'a des accents cachés


Posté 30 janvier 2010 - 10:49

Voir le messagedarkremi99, le 30.01.2010 à 10:12, dit :

sA NE Marche pas,c'est bizar,un moment sa ma mit la quête mais pas moyen de le savoir,c'est pas marqué  en haut,bizar que sa ne marche pas tien voici le script qui est "object"

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
Tu as laissé l'astérisque en copiant l'ID de la cellule. Il faut l'enlever.
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 ! :mrgreen:

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 darkremi99

darkremi99

Posté 30 janvier 2010 - 11:00

Sa marche merci mille fois,merci,et surtout ne mettez pas se forum en résolu j'aurai peut-être d'autre question merci,merci


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
http://www.legiondes...forum/index.php
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)