Aller au contenu

Probleme de script qui marche une fois sur 2


soulburner6

Messages recommandés

Bonjour a tous,Dans le cadre du mod que je suis en train de creer j'utilise des scripts pour faire apparaitre des enemis quand le joueur appuie sur un bouton. J'ai 10 vagues d'enemis, nommées round1 a 10, j'utilise ce script avec comme activator les boutons du keypad purity, renommés en nouvlles formes round 1 a 10.Pour le round 1 :scn Round1SCRIPTshort spawn1Begin OnActivate bunker1marker.PlaceAtMe LvlRaiderRandom 1 0 3 bunker2marker.PlaceAtMe LvlRaiderRandom 1 0 1 bunker3marker.PlaceAtMe LvlRaiderRandom 1 0 0 sandbag1marker.PlaceAtMe LvlRaiderRandom 1 0 0 sandbag2marker.PlaceAtMe LvlRaiderRandom 1 0 1 tire1marker.PlaceAtMe LvlRaiderRandom 1 0 1 tirebunker1marker.PlaceAtMe LvlRaiderRandom 1 0 3 plate1marker.PlaceAtMe LvlRaiderRandom 1 0 1 grocery1marker.PlaceAtMe LvlRaiderRandom 1 0 1 minibunker1marker.PlaceAtMe LvlRaiderRandom 1 0 1 keyround1.enableEndPour le round 3 :scn Round3SCRIPTshort spawn3Begin OnActivate bunker1marker.PlaceAtMe CrFeralGhoulGlowingOne 1 0 3 bunker2marker.PlaceAtMe CrFeralGhoulGlowingOne 1 0 1 bunker3marker.PlaceAtMe LvlFeralGhoul 1 0 0 sandbag1marker.PlaceAtMe LvlFeralGhoul 4 0 0 sandbag2marker.PlaceAtMe LvlFeralGhoul 1 0 1 tire1marker.PlaceAtMe LvlFeralGhoul 1 0 1 tirebunker1marker.PlaceAtMe LvlFeralGhoul 1 0 3 plate1marker.PlaceAtMe LvlFeralGhoul 2 0 1 grocery1marker.PlaceAtMe LvlFeralGhoul 1 0 1 minibunker1marker.PlaceAtMe LvlFeralGhoul 1 0 2 minibunker1marker.PlaceAtMe LvlFeralGhoul 1 0 2 minibunker1marker.PlaceAtMe CrFeralGhoulGlowingOne 3 0 1 minibunker1marker.PlaceAtMe CrFeralGhoulGlowingOne 1 0 1 keyround3.enableEndEt ainsi de suite pour tout les rounds.Le round 1 marche a merveille, a chaque fois, et je peu l'activer autant de fois de suite que je veux (jusqu'au crash parcequ'il y a trop de NPC)Mais le probleme :Les rounds suivants marchent, mais une fois sur 2 en gros, c'est a dire que quand je teste soit tout marche bien soit les rounds 2 a 9 ne marchent pas du tout , il se passe rien, je peu activer 50 fois le bouton, aucun spawn , rien.Je suis un peu perdu je sais pas comment faire.J'ai une autre question, y a t'ill une commande pour faire disparaitre les corps, et eviter l'ammoncelement qui fait ralentir le jeu ?Merci d'avance pour vos réponses, et désolé c'est un peu long, mais je voulais bien expliquer.PS : il y a des tabulations dans les scripts sur toute les lignes entre begin et end , mais ca passe pas dans le message.

Lien vers le commentaire
Partager sur d’autres sites

Humm ça ressemble à une petite arène ton mod là :P

Alors on va commencer par le plus simple. Pour écrire un code sur ce forum, tu met ton code entre les balises

[code ] et [/code ].Pour l'histoire des corps je vais te montrer un petit truc que suuk m'à appris, en fait tu créer une référence sur ton point de spawn, et après lorsque tu n'est plus dans la même cellule (pour une arène par exemple), ou si le NPC/créature qui a spawn est mort, on le disable, et une fois disable on le marque pour être supprimé. C'est indispensable car si tu ne fais pas ça, ta sauvegarde va être très lourde au bout d'un moment et on estime qu'une sauvegarde de 10mo commence à avoir des gros problèmes (suivant ton ordi).

scn Round1SCRIPTshort spawn1ref refbunk1ref refbunk2ref refbunk3ref refsandbag1ref refsandbag2ref reftire1ref reftirebunkerref refplate1ref refgroceryref refminibunkerref refkeyroundBegin OnActivateset refbunk1 to bunker1marker.PlaceAtMe LvlRaiderRandom 1 0 3set refbunk2 to bunker2marker.PlaceAtMe LvlRaiderRandom 1 0 1set refbunk3 to bunker3marker.PlaceAtMe LvlRaiderRandom 1 0 0set refsandbag1 to sandbag1marker.PlaceAtMe LvlRaiderRandom 1 0 0set refsandbag2 to sandbag2marker.PlaceAtMe LvlRaiderRandom 1 0 1set reftire1 to tire1marker.PlaceAtMe LvlRaiderRandom 1 0 1set reftirebunker to tirebunker1marker.PlaceAtMe LvlRaiderRandom 1 0 3set refplate1 to plate1marker.PlaceAtMe LvlRaiderRandom 1 0 1set refgrocery to grocery1marker.PlaceAtMe LvlRaiderRandom 1 0 1set refminibunker to minibunker1marker.PlaceAtMe LvlRaiderRandom 1 0 1set refkeyround to keyround1.enableif player.GetInSameCell refbunk1 != 1refbunk1.disablerefbunk1.markfordeleteendifif player.GetInSameCell refbunk2 != 1refbunk2.disablerefbunk2.markfordeleteendifif player.GetInSameCell refbunk3 != 1refbunk3.disablerefbunk3.markfordeleteendifif player.GetInSameCell refsandbag1 != 1refsandbag1.disablerefsandbag1.markfordeleteendifif player.GetInSameCell refsandbag2 != 1refsandbag2.disablerefsandbag2.markfordeleteendifif player.GetInSameCell reftire1 != 1reftire1.disablereftire1.markfordeleteendifif player.GetInSameCell reftirebunker != 1reftirebunker.disablereftirebunker.markfordeleteendifif player.GetInSameCell refplate1 != 1refplate1.disablerefplate1.markfordeleteendifif player.GetInSameCell refgrocery != 1refgrocery.disablerefgrocery.markfordeleteendifif player.GetInSameCell refminibunker != 1refminibunker.disablerefminibunker.markfordeleteendifcplayer.GetInSameCell refkeyround != 1refkeyround.disablerefkeyround.markfordeleteendif;tu peux aussi utiliser un "if refxxxx.getdead == 1" avec/à la place du GetInSameCell;script à vérifier tout de même car je fais ça de tête et j'ai pas reluEnd
 Pour tes problèmes de scripts qui se lancent pas toujours, essaye de lancer un script de quète via ton activate.
scn scriptactivateurbegin onactivatestarquest machinend
 
scn scriptquesteshort dooncebegin gamemodeif doonce == 0set doonce to 1;lance ton grand script ensuiteendifend


as tu fais d'autres scripts dans ton mod?
Tu nous mis le script complet ou juste une partie?
à quoi sers ta variable spawnx ?
keyroundx.enable c'est quoi?

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup pour la réponse détaillée, alors au fait le script est au complet et c'est ma deuxieme tentative de script, y'a qu'un seul autre script dans mon mod (ma premiere tentative de script) c'est pour faire un sas, pour eviter que les gentils npc aillent dans l'arene, et ca donne (et il marche) :

scn StadiumsasSCRIPTBegin OnActivate	if IsActionRef player == 1		doora.Unlock		doorb.Lock 255	endifend
puis le meme a l'inverse pour sortir.Pour la variable spawnx, euh rie aen fait, comme j'ai regardé d'autres scripts avant de faire celui je croyais que c'etait just pour mettre un nom tu vois (noob lol)keyroundx.enable, au fait c'est parcequ'au bout de l'arene, je placé 10 clefs, qui apparaissent quand tu active un round, comme ca quand t'as tué tout le monde tu va chercher ton trophée (la clef), et puis tu ouvre le coffre correspondant avec les cadeaux qui vont avec le round que tu as gagné ;), je l'ai fait en enable parceque comme ca la clef apparait qu'une fois meme si tu rejoue le round.J'ai compris pour ton premier script, il est trop bien ! c'est exactement ce qui me manquait, mais par contre l'histoire de la quete j'ai pas compris, dans le deuxieme code de quete t'as ecrit, "lance ton grand script", je le copie colle la ou t'as ecrit ça ? Ca veux dire qu'il faut que je fasse 10 quetes qui soit repetables pour que ca marche ? je crois que j'ai pas compris cette etape.Merci en tout cas pour ta réponse ;)
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...