Aller au contenu

Nouveau Membre + besoin d'aide


M3hdi

Messages recommandés

Bonjour à tous, je fais quelques mods pour fallout 3 avec mes petites connaissance, et je suis en train d'en faire un très gros, un peu du genre Fook. Donc tout d'abord une petite présentation : Mehdi, 22ans, AvignonJeux : RPG, FPS, Stratégie.Voilà ça c'est fait:pfft: .Maintenant je me suis aussi inscrir car j'ai besoin d'aide, je fais actuellement mon gros mod donc, et je bloque sur une chose, le script. En effet je ne m'y connais que très très peu (voir pas du tout), et j'aimerai faire un script plutôt simple, qui fait la chose suivante :Le nuit lorsque le joueur est dehors, il à une chance sur 10 rencontrer un certain PNJ.Donc j'ai essayé :scn FUfaucheuseSCRIPTshort var1short var2Begin GameModeif(Player.IsInInterior == 0) if(GameHour >= 0 && GameHour < 4) if GetDead == 0 if var2 == 0 set var1 to (GetRandomPercent) set var2 to 1 elseif var2 == 5 if GetDead == 1 set var2 to 0 endif endif endif endifendifif var1 <= 10 if var2 == 1 placeatme FUfaucheuse 1 set var2 to 5 endifendifendMais ça ne marche pas, si quelqu'un pouvait éclairer ma lanterne :thumbsup:

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Tu peux dire precisement ce qui ne marche pas?Sinon, pourquoi est-ce que tu check GetDead == 0 puis dans le meme IF, tu check GetDead == 1 ? C'est impossible que ca marche, il ne peut pas etre en meme temps vivant et mort.Sinon, tu appliques ton script sur quoi? Car si c'est sur la faucheuse (ce qui parrait sensé, vu que tu met un GetDead sans ActorID devant), c'est certain que ca ne marche pas, puisque la Reference de ta Faucheuse n'est pas presente dans le jeu (puisque placee grace a un PlaceAtMe).Ce que je te conseille, c'est de changer ce script en script de quete et de le placer sur une quete FUfaucheuseQuest (ou tout autre nom, ca ne change rien..), et de faire que la quete soit lancee tout le temps (une case a cocher dans la page principale de la quete, je ne me souviens plus du nom exact). Ainsi, ton script s'executera bien toutes les secondes. Mais n'oublie pas de mettre alors ton GetDead en reference a l'ID de ta faucheuse.Un Conseil aussi, ca serait de faire que lorsque la faucheuse est mort, un IDDeLaFaucheuse.disable, puis un IDDeLaFaucheurse.MarkForDelete. Car les PlaceAtMe surchargent la sauvegarde de ta partie, et si tu fait que la faucheuse apparaisse plusieurs fois dans une partie, il arrivera un moment ou la sauvegarde mettra du temps en plus a charger (bon, c'est pas avec un seul placeAtMe que ca va surcharger ta sauvegarde, mais prends quand meme cette habitude).Sinon, dans ton script, la faucheuse a 10 % de chance d'apparaitre la PREMIERE nuit uniquement, car tu passes var2(qui fait que la faucheuse apparait ou pas) a 1 des que tu as lance le premier jet Random. Donc pour toutes les nuit a venir, elle ne pourra plus jamais apparaitre(il faut repasser var2 a 0 a un moment pour que ca se repete la nuit suivante).Voila, deja ca, mais j'avais autre chose a dire mais je m'en souviens plus ^^.Redemande si ca marche pas ou que tu veux encore des conseils. J'ai pas le GECK d'ouvert pour tester, donc pas sur que ca marche a 100%:P.

Mes Mods terminés:
- Fallout 3:
Bear Trap

-Fallout New Vegas:
Gameplay Revised
Bear Trap

Lien vers le commentaire
Partager sur d’autres sites

En effet j'ai créé une faucheuse et j'aimerai qu'elle apparaisse de temps en temps, mais toujours la nuit et toujours en exterieur.Sinon, je te remercie pour ta réponse très complète, mais malheureusement j'y connais pas grand chose...Bon pour faire une réponse plus précise :

Tu peux dire precisement ce qui ne marche pas?

Avec mon script la faucheuse n'apparais jamais

Sinon, pourquoi est-ce que tu check GetDead == 0 puis dans le meme IF, tu check GetDead == 1 ? C'est impossible que ca marche, il ne peut pas etre en meme temps vivant et mort.

Je voulais faire :si une faucheuse morte est présente alors ne pas répéter ce script (pour éviter d'avoir des faucheuses qui aparaissent toutes les 5 secondes)

Sinon, tu appliques ton script sur quoi? Car si c'est sur la faucheuse (ce qui parrait sensé, vu que tu met un GetDead sans ActorID devant), c'est certain que ca ne marche pas, puisque la Reference de ta Faucheuse n'est pas presente dans le jeu (puisque placee grace a un PlaceAtMe).

Le script est lancé par la faucheuse (dans le GECK en dessous de ID et de Name lors de la création d'un NPC)

Un Conseil aussi, ca serait de faire [...] mais prends quand meme cette habitude).

"FUfaucheuse.disable" et"FUfaucheuse.MarkForDelete"Me marquent un message d'erreur (le NPC n'est pas référencé, mais comment on le référence ? lol)

Sinon, dans ton script, la faucheuse a 10 % de chance d'apparaitre la PREMIERE nuit uniquement [...] se repete la nuit suivante).

Si je remet la variable 2 à 0 en fin de script, le script ne risque-t-il pas de tourner en boucle et de me placer des faucheuses toutes les 5 secondes ?Voilà, merci d'avoir pris le temps de me répondre et en ésperant ne pas abusé de ta gentillesse lol!En suivant tes indications, je transformé mon script comme tel :
scn FUfaucheuseSCRIPT4short var1short var2Begin GameModeif(Player.IsInInterior == 0)	if(GameHour >= 0 && GameHour < 4)		if GetDead FUfaucheuse == 0			if var2 <= 4				set var1 to ((GetRandomPercent + GetPermanentActorValue luck * 3))				set var2 to 1			endif 		endif	endifendifif var1 <= 10	if var2 == 1		placeatme FUfaucheuse 1		set var2 to 5	endifendifend
A noter, j'ai rajouté une petite valeur dans le calcul d'apparition, + le joueur est chanceux, moins il a de chances de voir la faucheuse.Ah oui et ça marche toujours pas avec ce script...

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Normal que ca marche pas ^^. Mais bon, je vais reprendre tes questions une par une d'abord !

Je voulais faire :si une faucheuse morte est présente alors ne pas répéter ce script (pour éviter d'avoir des faucheuses qui aparaissent toutes les 5 secondes)

Pour ca, il vaut mieux mettre une nouvelle variable en jeu, et aussi, nomme tes variables avec des noms un peu plus transparents sur leur utilité! Car var01 et var02, on se perd vite avec ca.. Encore une habitude de programmeur :P. Mais comme ici tu utilises GetDead, tu n'as pas besoin d'autre variable.. Donc tu vas avoir en tout deux variables. Une qui stock le pourcentage aleatoire, et une qui renseigne si la Faucheuse est deja apparue CETTE NUIT. Donc comme variables tu aurait:short varRandom -- qui est utilisee pour stocker le RandomPercent (var1 quoi)short doOnce -- doOnce est le nom qu'on donne a une variable qui passe est incrementee lorsque l'evenement principal du script est réalisé. C'est pas une obligation mais tous les scripteurs utilisent cette convention.

Le script est lancé par la faucheuse (dans le GECK en dessous de ID et de Name lors de la création d'un NPC)

Oui, donc ca ne peut pas marcher s'il est lancé par l'Objet Faucheuse (un NPC est aussi consideré comme un Objet dans les scripts). Car la Faucheuse n'est pas presente dans le jeu, puisqu'elle est créée PAR le script (grace a PlaceAtMe). Donc pour que le script marche, il faut qu'il soit mis sur quelque chose qui tourne en permanence dans le jeu. Et quelque chose qui tourne en permanence, c'est forcement une quete avec l'option "Start Game Enabled" cochée(dans l'ecran de creation de cette dite quete). Comme ca, chaque seconde pendant le jeu, le script sera lancé, et regardera si on est entre 00h et 04h du matin, etc etc...

"FUfaucheuse.disable" et"FUfaucheuse.MarkForDelete"Me marquent un message d'erreur (le NPC n'est pas référencé, mais comment on le référence ? lol)

disable fait que l'objet en question est rendu invisible et intangible. MAIS il n'est pas effacé du jeu. Il reste en memoire. Ca peut etre utile si tu veux le remettre en jeu plus tard(avec la fonction "enable" qui marche pareil).markForDelete fait disparaitre l'objet qui a préalablement été disable. Dans ce cas, il est supprimé definitivement. Ce qui fait que l'espace memoire qui lui etait concédé est libéré pour d'autres calculs.Pour ton autre probleme c'est moi qui me suis mal exprimé je pense. Ton "FUFaucheuse" est un ObjectID, que tu peux trouver dans ta Object Window. Une référence est une instance de ce meme objet, mais qui est déjà placée dans le jeu, comme quand tu fait glisser un PNJ de l'Object Window jusqu'a la Render Window. ca cree une reference de l'ObjectID en question. Cette reference est conservee dans la Cell View, dans la liste de droite. En faisant EDIT sur elle, tu peux changer son nom de reference (Reference Editor ID), juste en dessous tu vois bien son nom de Base Object (le nom d'ObjectID, donc "FUFaucheuse", si tu suis encore ^^). Il ne faut donc pas faire d'erreur entre un ObjectID(Base Object), et une Reference de cet Objet(Reference Editor ID), qui est placé dans une CELL du jeu.Pour palier a ton probleme de reference (pour pouvoir effacer du jeu la Reference que tu cree dans le jeu grace a PlaceAtMe), il faut directement prendre la reference de cette nouvelle Faucheuse apparue. pour cela, il te suffit de changer ton placeAtMe normal par cela:set faucheuseREF to player.placeAtMe FUFaucheuse 1, 150, 0En ayant au préalable déclaré la variable faucheuseREF (ref faucheuseREF).pour les chiffres qui sont apres "FUFaucheuse", voici leur signification:1: ca cree une seule reference de la Faucheuse150: Ca cree cette faucheuse a une distance de 150 unités du player.0: c'est la direction dans laquelle elle est créée par rapport au player, ici, c'est devant lui.Regarde ici si tu veux plus d'infos sur le placeAtMe:http://cs.elderscrolls.com/constwiki/index.php/PlaceAtMePour ton GetDead, ca ne marche pas comme ca. Mais plutot comme ca:faucheuseREF.GetDead == 0(bien sur, on met le GetDead sur la REFERENCE de la faucheuse, sinon ca peut pas marcher).De meme, les disable et MarkForDelete sont placés sur la reference de la faucheusefaucheuseREF.disablefaucheuseREF.markForDeletePour ton probleme de creer une faucheuse au maximum par nuit, il suffit d'incrementer comme tu l'as fait jusqu'ici.Donc:
scn FUfaucheuseSCRIPT4short varRandomshort doOnceref faucheuseREFshort timerBEGIN GameModeif (doOnce == 0)    if(Player.IsInInterior == 0)	    if(GameHour >= 0 && GameHour < 4)			    set varRandom to ((GetRandomPercent + GetPermanentActorValue luck * 3))		            set doOnce to 1	    endif    endifelseif (doOnce == 1)        if (varRandom <= 30)                set faucheuseRef to player.placeAtMe FUFaucheuse 1, 150, 0                set timer to 3                set doOnce to 0        else                set doOnce to 0        endifendifif (faucheuseREF.GetDead == 1)    if (timer > 0)            set timer to (timer - GetSecondsPassed)    else        faucheuseREF.disable        faucheuseREF.markForDelete    endifendifif(GameHour >= 4 && GameHour < 0)        set doOnce to 0endifEND
Ainsi, que la faucheuse soit tuee, ou qu'elle n'apparaisse pas du tout, elle pourra apparaitre la nuit prochaine.J'ai rajoute un timer avant que le corps ne disparaisse. Sinon il serait directement anihilé des que le joueur tirerait la balle qui le tuerait, ca ferait tres tres bizarre.Bien sur c'est comme ca que je ferais ton code, et si tu as des questions hesite pas, et j'ai ptet encore fait des erreurs car la fenetre d'ecriture de reponses rapide est tres petite ^^ Bref... Bonne chance :P!

Mes Mods terminés:
- Fallout 3:
Bear Trap

-Fallout New Vegas:
Gameplay Revised
Bear Trap

Lien vers le commentaire
Partager sur d’autres sites

Alors tout d'abord merci pour tes conseils, et surtout merci de m'avoir mâché le travail lol.Donc je vais créer une quète qui fait appel au script (je doit donc changer le type de script).Pour les ref c'est bon j'ai compris merci !Donc j'ai modifié ton script, et ça marche nikel :) Voilà le script que j'ai maintenant :

scn FUfaucheuseSCRIPTquestshort varRandomshort doOnceref faucheuseREFshort timershort VarDisableBEGIN GameModeif (doOnce == 0)    if(Player.IsInInterior == 0)	    if(GameHour >= 0 && GameHour < 4)			    set varRandom to (GetRandomPercent)		            set doOnce to 1	    endif    endifelseif (doOnce == 1)        if (varRandom <= 15)                set faucheuseRef to player.placeAtMe FUFaucheuse 1, 150, 0			 Playsound AMBREnclaveZAXRoomVoicesC02                set timer to 3                set doOnce to 2        else                set doOnce to 2        endifendifif (faucheuseREF.GetDead == 1)    if (timer > 0)            set timer to (timer - GetSecondsPassed)    else	   set VarDisable to 1        faucheuseREF.disable        faucheuseREF.markForDelete    endifendifif(GameHour >= 4)	if (doOnce >= 1)		if (VarDisable ==1)			set doOnce to 0			faucheuseREF.enable			set VarDisable to 0		endif	endifendifEND
J'ai passé les chances de voir cet évenement à 15% et j'ai aussi créé une variable concernant le "disable" car une fois disable, la faucheuse n'apparaissait plus.Et j'ai modifié le doOnce. J'ai du enlever le niveau de chance du calcul car ça ne marchait pas, et j'ai rajouté un bruit lorsque la faucheuse apparait.Merci beaucoup pour ton aide!Voilà le mod :http://www.fallout3nexus.com/downloads/file.php?id=5995Et j'en ai fait une version différente avec deux talibans :http://www.fallout3nexus.com/downloads/file.php?id=6015

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

De rien pour l'aide. Pourtant, je vois encore deux fautes dans ton script ^^. Desole d'etre pointilleux, mais si le joueur l'utilise, a un moment ou un autre, il ne se passera plus rien...Premiere faute:Tu essaie d'Enable la Reference de la faucheuse qui a ete tuée. Pourquoi? CETTE reference de la faucheuse est morte et enterrée ! Pourquoi vouloir la reprendre? De plus, tu as fait un MarkForDelete, donc CETTE Reference est supprimee du jeu, tu ne peux pas l'enable.En gros ce qu'il faut faire, ce n'est pas enable a nouveau CETTE reference(puisqu'elle est supprimee definitivement), mais d'en creer une nouvelle, par la meme methode que la premiere a ete créée!Tu peux donc enlever le "faucheuseREF.enable" qui ne sert strictement a rien, car sans ca, ca permettra au jeu de revoir le soir d'apres si oui ou non il cree a nouveau une AUTRE reference de la faucheuse (qui s'appelera toujours faucheuseREF dans ton script, mais qui n'est pas la meme en jeu !).Ensuite, l'autre erreur, est dans le cas ou la Faucheuse n'apparait pas cette nuit la. Que ce passe t'il alors? On passe doOnce a 2, puis apres 4h du matin, rien du tout... doOnce restera jusqua la fin de la partie a 2, et la faucheuse ne pourra jamais apparaitre. Pourquoi? Parce que VarDisable est egale a 0 si la faucheuse n'apparait pas, donc doOnce ne sera jamais remis a 0 !Ce que tu dois faire:

if (varRandom <= 15)                set faucheuseRef to player.placeAtMe FUFaucheuse 1, 150, 0			 Playsound AMBREnclaveZAXRoomVoicesC02                set timer to 3                set doOnce to 2        else                set VarDisable to 1                set doOnce to 2        endif
Grace a ca, que la faucheuse apparaisse ou non, tout le script sera reinitialisé a 4 heure du matin !, et la nuit d'apres, la faucheuse pourra reaparaitre !Voila ! :-)

Mes Mods terminés:
- Fallout 3:
Bear Trap

-Fallout New Vegas:
Gameplay Revised
Bear Trap

Lien vers le commentaire
Partager sur d’autres sites

En realité, ça ma aussi étonné de devoir remettre un enable, mais sans ça, la faucheuse n'apparait plus le lendemain (pourquoi? je ne sais pas!).Sinon, à la fin de mon script j'ai rajouté ça :

if(GameHour >= 4)			set doOnce to 0endif
Ce qui remet le doOnce à 0 une fois que l'heure limite est passée. J'ai aussi supprimé le Disable comme ça au moin :) (de toute façon la faucheuse est disable via le destruction data)Ce qui nous donne donc :
scn FUfaucheuseSCRIPTquestshort varRandomshort doOnceref faucheuseREFshort timerBEGIN GameModeif (doOnce == 0)    if(Player.IsInInterior == 0)	    if(GameHour >= 0 && GameHour < 4)			    set varRandom to (GetRandomPercent)		            set doOnce to 1	    endif    endifelseif (doOnce == 1)        if (varRandom <= 15)                set faucheuseRef to player.placeAtMe FUFaucheuse 1, 75, 0			 Playsound FUsoundFaucheuseAPPEAR                set timer to 3                set doOnce to 2        else                set doOnce to 2        endifendifif (faucheuseREF.GetDead == 1)    if (timer > 0)            set timer to (timer - GetSecondsPassed)    else        faucheuseREF.markForDelete    endifendifif (GameHour <=11)	set doOnce to 0endifif (GameHour >= 4)	set doOnce to 0endifEND

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

C'est tout bon a part deux petits oublis:- Comme je l'ai dis precedemment, tu ne peux pas MarkForDelete quelque chose qui n'est pas Disable ! Tu dois d'abord Disable la Reference avant de la Delete !- Tu met GameHour >= 4. Mais je sais pas trop jusqu'ou ca va ... Dans le doute je te conseillerais de mettre:"if (GameHour >= 4 && GameHour < 0)"Sinon, il y a autre chose qui me derange un peu, c'est la partie sur le GetDead, car des que la faucheuse meurt pour la premiere fois, GetDead sera toujours a 1 ! Donc je te conseille de mettre devant un autre IF pour bien etre sur que c'est seulement au moment ou il meurt et pas apres que cette partie du code est effectué. il faut rajouter un "if (faucheuseREF.HasLoaded3D == 1)". HasLoaded3D retourne 1 si la reference sur laquelle il est appliqué a un modele 3d dans le jeu et que le joueur peut voir. Donc des que ta Faucheuse sera DELETED, cette partie du code ne marchera plus, et ca reglera sans doute les problemes du disable/enable.Voila le code:

scn FUfaucheuseSCRIPTquestshort varRandomshort doOnceref faucheuseREFshort timerBEGIN GameModeif (doOnce == 0)    if(Player.IsInInterior == 0)	    if(GameHour >= 0 && GameHour < 4)			    set varRandom to (GetRandomPercent)		            set doOnce to 1	    endif    endifelseif (doOnce == 1)        if (varRandom <= 100)                set faucheuseRef to player.placeAtMe FUFaucheuse 1, 75, 0			 Playsound FUsoundFaucheuseAPPEAR                set timer to 3                set doOnce to 2        else                set doOnce to 2        endifendifif (faucheuseREF.HasLoaded3D == 1)    if (faucheuseREF.GetDead == 1)        if (timer > 0)                set timer to (timer - GetSecondsPassed)        else            faucheuseREF.disable            faucheuseREF.markForDelete        endif    endifendifif(GameHour >= 4 && GameHour < 0)	set doOnce to 0endifEND

Mes Mods terminés:
- Fallout 3:
Bear Trap

-Fallout New Vegas:
Gameplay Revised
Bear Trap

Lien vers le commentaire
Partager sur d’autres sites

J'ai finalement opté pour ce code, car il marche. Quant au disable, comme je l'ai dit plus tôt, le NPC se disable tout seul grace au DESTRUCTION DATA. Donc pas de cadavre et rien en mémoire.

scn FUfaucheuseSCRIPTquestshort varRandomshort doOnceref faucheuseREFBEGIN GameModeif (doOnce == 0)    if(Player.IsInInterior == 0)	    if(GameHour >= 0 && GameHour < 4)			    set varRandom to (GetRandomPercent)		            set doOnce to 1	    endif    endifelseif (doOnce == 1)        if (varRandom <= 15)                set faucheuseRef to player.placeAtMe FUFaucheuse 1, 75, 0			 Playsound FUsoundFaucheuseAPPEAR                set doOnce to 2        else                set doOnce to 2        endifendifif(GameHour >= 4)	set doOnce to 0endifEND
Voilà grace à ce script j'en connais un peu plus, et je me suis lancé dans une variante (qui marche en plus! j'apprend vite mdr). Merci de ton aide, et si certains ont des question sur le geck n'hésitez pas. Juste les sujets à éviter :La 3D, les scripts (quoique maitnenant... lol), les packages et les quètes. Pour le reste je doit pouvoir vous répondre.

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Rebonjour, enfait j'aurais une question concernant les variables.Dans un script j'utilise la variable doOnce, mais en même temps un autre script est lancé est utilise une variable du même nom. Risquent elles d'interférer entre elles?Aussi, lorsque que mon script est fini, s'execute-t'il en boucle?Et la dernière question, le jeu garde-t'il en mémoire la dernière valeur des variables utilisées dans le script ou il les remet à zero à chaque fois que le script se fini?Voilà merci :D

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Une variable d'un script reste dans ce script.Tu peux appeler cette variable a partir d'un autre script grace a: NomDeMonAutreScript.NomDeMaVariable. Donc ya pas d'interference.Les BlockTypes GameMode et MenuMode sont executés une fois par seconde (grace a ca que tu peux faire des timers grace a GetSecondspassed). Les autres BlockTypes sont executes quand... ils sont executes ^^ (un OnActivate lorsque quelqu'un active ce sur quoi il est mis par exemple).Les variables ne se remettent pas a 0, ca serait idiot.. immagine qu'une variable est incrementee tout au long d'une quete. Ca voudrait dire que lorsque tu relance le jeu ta quete repart du debut...Non, une variable reste a la valeur ou elle est mise jusqu'a qu'elle soit changee par un script.

Mes Mods terminés:
- Fallout 3:
Bear Trap

-Fallout New Vegas:
Gameplay Revised
Bear Trap

Lien vers le commentaire
Partager sur d’autres sites

Ah okkk, oui c'est un peu plus clair. ça va je commence à m'en sortir. Allez une dernière question pour la route (faut bien hein), j'essaye de faire la suivante là, mais je suis pas sur de connaitre la bonne "formule" (lol).Enlever un objet de mon inventaire pour le mettre dans un container distant.Donc voilà la partie de mon script qui devrai t'interesser :scn FUzzSCRIPTzzDROPITEMref contREFBEGIN OnEquipset contREF to FUzzCONTAINERzzREF ; FUzzCONTAINERzzREF = Reference de mon containerif (FUzzGLOBALzzCONTAINER == 1) Player.removeitem CoffeeMug01 99 contREFendifENDLa variable FUzzGLOBALzzCONTAINER est Variable GLOB (GMST), Globale à tous mes scripts donc pas besoin de short xxxMa référence est bien "persist reference",Je n'ai pas de message d'erreur du GECK, et je ne sais pas trop d'où peut venir le soucis car tout m'à l'air correct.

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Salut a toi, éssai d'étre précis.A quoi sert ton script éxactement?(enléve un objet de l'inventaire pour le mettre dans un coffre distant)A quel occasion? quand tu t'en équipe? quand tu le met dans ton inventaire?Aprés.Le script est un script sur l'objet? sur une quéte? A quoi sert FUzzGLOBALzzCONTAINER ? Quand est ce quel passe a 1?Pourquoi a tu fait ça? Player.removeitem CoffeeMug01 99 contREFContRef n'as pas ça place dans cette ligne.

Lien vers le commentaire
Partager sur d’autres sites

la syntaxe exacte pour le RemoveItem est:ActorID/ContainerID.RemoveItem ObjectID(ref) Count(int) Flag(int)le flag c'est si un message s'affiche en haut de l'ecran(1), ou non(0).

"A quel occasion? quand tu t'en équipe? quand tu le met dans ton inventaire?"

Bah.. s'il a mit un BEGIN OnEquip, j'pense que c'est seulement quand il s'en equipe.......

Le script est un script sur l'objet? sur une quéte?

Forcement un script d'Objet.. sinon le remove item ne peut pas marcher, et un BlockType OnEquip ne peut pas etre mis dans un Script de quete.....essaie plutot comme ca:
if (FUzzGLOBALzzCONTAINER == 1)    player.removeitem CoffeeMug01 1    contREF.additem CoffeeMug01 1endif

Mes Mods terminés:
- Fallout 3:
Bear Trap

-Fallout New Vegas:
Gameplay Revised
Bear Trap

Lien vers le commentaire
Partager sur d’autres sites

Salut Suuk, c'est a lui que je demander, je voulais savoir qu'est ce qu'il attendait, je pensé qu'il avait pris un script déja fait pour en modifier le contenu.TOus dépend de ce qu'il attend vraiment. on poura l'aidé que quand on saura ce qu'il veut éxactement.Et le removeitem peut étre mis n'importe où, ça ne dépend pas du type de script.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous! Dans le script ci dessus, j'utilise un message "test" qui m'indique si le message est chargé ou pas, donc si le script se lance bien où pas. Le problème, le message ne s'affiche pas. Il s'affiche uniquement si je l'appelle juste après le Begin Gamemode. une fois les variables définies, le script ne lit pas la suite! je coince là j'avoue...

scn FUzzSCRIPTzzQUETEzzG3short doOnceshort doOnce3ref armeref ammoref ammogreref projref projgreBegin Gamemodeset arme to FUzzARMEzzG3set ammo to Ammo556mmset ammogre to FUzzAMMOzzLLANCEGREset proj to 556projset projgre to FUballeslancegrenadesshowmessage FUzzMESSAGEzzTESTif doOnce == 0set FUzzGLOBzzG3 to 1set doOnce to 1endifif ( IsKeyPressed FUzztouche )	if FUzzGLOBzzG3 == 1															; G3 auto -> G3 grenade		showmessage FUzzMESSAGEzzEQUIPE		SetWeaponClipRounds 1 arme		SetWeaponAmmo ammogre arme		SetIsAutomatic 0 arme		SetWeaponProjectile projgre arme		Setweaponreloadanim 7 arme		set doOnce3 to 2	elseif FUzzGLOBzzG3 == 2														; G3 grenade -> G3 auto		showmessage FUzzMESSAGEzzNORMAL		SetWeaponClipRounds 25 arme		SetWeaponAmmo ammo arme		SetIsAutomatic 1 arme		SetWeaponProjectile proj arme		Setweaponreloadanim 1 arme		set doOnce3 to 1	endifendifif doOnce 3 == 1								;1 = auto	set FUzzGLOBzzG3 to 1	setname "G3 - Auto" arme	set doOnce3 to 0elseif doOnce 3 == 2							;2 = Grenade	set FUzzGLOBzzG3 to 2	setname "G3 - Lance Grenade" arme	set doOnce3 to 0endifend
C'est un script de quète. La quète est lancée par un Begin equipitem player, et arrétée par un begin unequipitem player dans un script appelé par l'arme. J'ai essayé de lancer la quète avec la console, le message ne s'affiche toujours pas.Voilà si l'un d'entre vous a une idée ...

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Je fais la nouvelles version de mon mod "alternative fire" qui permet de changer de mode de tir. La précedente version remplacait l'arme par une autre en faisant croire a l'utilisateur que ce n'était pas le cas. Dans la nouvelle version, je veux utiliser FOSE pour changer les paramètres de l'arme équipée. Dans le cas présent, le joueur à un fusil G3, lorsqu'il appui sur une touche qu'il a défini auparavent, le G3 lance des grenades à fusil à la place des cartouches 5.56mm.Ensuite c'est une script de quète, ainsi la quète est lancée lors du "begin onequip", et arrétée lors du "unequip". J'utilise ce script sur plusieurs armes donc j'ai une quète par arme.A savoir, j'utilise le même script (sans toutes les "REF", et les "SET REF") pour le canon scié, et il marche nikel. J'ai essayé de placer des player.additem à différents endroits de mon script, il semblerai que le script s'arrète de fonctionner après la ligne 14, peu importe le contenu, après la ligne 14 le script stop! C'est trop bizarre.

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Salut, je regarde ton script un peu plus tard.Pourquoi ne pas faire un remplacement d'arme comme t'avais dit, et mettre "EquipItem ".ça doit pêrmetre de t'équiper de l'arme une fois dans l'inventaire.J'ai jamais test.

Lien vers le commentaire
Partager sur d’autres sites

J'ai déjà fait le remplacement d'arme dans la premièe version du mod, ça marche mais bon c'est pas super fluide en plein combat c'est pas top top. Puis je vais rajouter un lumière à mon arme après donc ça m'évitera de créer 50 fois la même arme.

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...