Aller au contenu

Limites des 32Kb pour les scripts


Exceraviking

Messages recommandés

  • Réponses 107
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

J'ai utilisé une variable de quest, ça évitera qu'il est des bug ou éfface des truck, on sait jamais.Si jamais il arrivais a attacher un script a la variable global et que ça créé une faille temporelle.... quoi je me moque, naannn!!

Lien vers le commentaire
Partager sur d’autres sites

une faille temporelle mdrrr quoique avec le Geck c'est bien possible hein tellement il est stable ce programme! t'imagine tu joue à fallout avec un mod de viking, puis paf tu te retrouve dans le jeu pour de vrai :o et tout ça a cause d'une variable globale! quoi que peut être mon ordi se mettrait à remarcher mdr

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

J'peux même pas créer de variable globale...,sinon, j'aurais fait ça. En créer une unique n'aurait rien fait planter (risque zéro je pense). Mais ça plante mon GECK! ^^Faille temporelle dis tu? Cooooool :DJ'allais faire ce que tu préconises. Dans Deux jours, vous pourrez voir le travail.

Lien vers le commentaire
Partager sur d’autres sites

exact le script de rivs est une bonne base, tu n''as plus qu'à faire du remplissage maintenant!

dans deux jours vous pourrez voir le travail

tu vois tu te met la pression :)

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Pour vous répondre en bloc :DOuais, j'suis en train de mater ton bidule. C'est déconcertant. J'ai suivi ton tuto sur les dialogue. Et j'voyais que je m'éloignait alors j'ai lu jusque la fin, ça parlait pas de script. Et lkà, j'mate ton ESP, du coup, j'viens de voir que la quest que t'as fait, j'ai déja la mienne grâce à ton tuto.J'ai aussi essayé ton script M3hdi, mais il balance la boite de message toutes les secondes ^^. Enfin, c'était pour voir si la commande starquest fonctionnait. Et même pas besoin, elle se lance toutes les secondes.Ensuite, je dis deux jours, parce que comme ça ,..., je me mettrais pas la pression :lol: :¤Les script sont OK, tout est faits de ce coté là (pour l'instant, après, je chercherais à le retaper (comme t'as dit M3hdi) plus synthètiquement comme Rivs a dit . tout en patientant après Hawk-eYe parce que son MOD d'établi est cool aussi). ¤J'en aurais assez pour comprendre la manoeuvre de Rvis. Parce que ça reste confus quand même pour moi... Le Wiki est pas bien clair.=> Pourquoi t'as mis une priorité de 90 dis? C'est grave si je mets rien là dedans? ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Merçi pour le tuyau, j'adore cette fonction remplace. Les macro de ce genre, j'suis fan.Rien à voir, j'me permet : Cherchez après AntRenamer, c'est un soft sympa dans le genre renomage de fichier avec plein de possibilités sans se prendre la tête, pour renommer des paquets fichiers. Sans installation, il est clean et légé.

Lien vers le commentaire
Partager sur d’autres sites

lol, tous est fait dans l'esp, ta qu'a juste rajouter tes script au milieu sans éffacer ske j'ai fait.La quéte sert a rien a part a avoir une variable qui est dans le script, t'aura une variable pour chaque sous menu, munition, arme ect...Aprés dans ton script établi, il sert juste a mettre des variables actives pour indiquer quel script se joue.Les scripts des sous menu s'éxécute quand un des bouton est appuyer.en faite il sont tous éxécuté, mais ne font rien tant que aucun bouton n'est cliquer. C'est pour ça, a la fin du script de sous menu tel que munition, faut remettre la variable a un autre état. sinon le sous menu se lance en boucle.Jvoi pas comment étre plus clair.Bon pour moi c'est évident donc c'est facile, je sais que c'est pas évident quand on débute.Pour le 90 on s'en fout, tfasson tu doit pas y toucher, mais met tjr 90, c'est la priorité.Start enable c'est pour qu'il soit valide au début du jeu.Donc tu doit:mettre ton script de sous menu dans celui des munitions, dans le if endif.Pi arranger le menu d'établi, mettre des noms correspondant au sous menu, aprés tu copie le systéme du sous menu munition pour faire tes autre sous menu.C'est pas bien dur.J'aurai eu du temps, je t'aurais refait ton script principale pour qu'il soit divisé par deux.Moi j'ai déja fait un genre d'établi mais pour la bouf, une cuisiniére, des recettes et des ingrédients.

Lien vers le commentaire
Partager sur d’autres sites

SalutOK, j'ai passé toute la fin de journée sur ton esp, le Wiki & vos dires.J'ai quelques questions naturellement:A quoi sert DoOnce?Si j'ai bien compris, la quête et (son script) sert uniquement à lancer mes activateurs (1 par bouton/sous menu) grâce aux variables qu'elle contient (AmmoButton / ArmorButton etc), et est utilisé dans le script de l'établi. C'est une manière d' "appeler"/ Lancer les script des sous menu.Dernière questions vant les suivante (^^) : Où as tu appris à utiliser : Set QuestID.VarDansScriptDeQuestID to n ?Ca ressemble à une commande genre player.AddItem. Coment diable on peut inventer un truc pareil?:D

Lien vers le commentaire
Partager sur d’autres sites

doonce, comme son nom l'indique c'est une variable qui évite le script de se lancer en boucle. (do once = faire une fois)exemple: si doonce = 0 le script peut continuer et on met doonce à 1 (une façon de dire le script à déjà été lancé)mais si doonce = 1, le script ne continue pas (doonce mis à 1 après le premier lancement du script)doonce est indispensable avec le Block Gamemode, car en Gamemode le script se lance toutes les secondes, et le Doonce est en quelque sorte la condition primaire au lancement du script----Pour le questid, ouais en gros c'est le même principe, player.additem veut dire que l'on ajoute un item à un acteur du jeu (le player là), pour là quète c'est pareil, tu appelle une variable d'une quète, c'est un peu comme l'arbrorescence windows : (par ex : mes documents/mes images), ben là à la place du slash c'est un point c'est tout :D C'est pour ça que j'utilise ples Var Gloables, pke j'aime pas du tout appeler les variables de quètes par des scripts

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

OK. La variable doOne, celle aurait pu s'apelé autrement? Ou c'est codé en dur ds le soft, genre, il connait la variable DoOnce pour ce qu'elle signifie littéralement ?Je compte sur le fait que le script s'exécute plusieurs fois, sauf quand on appuie sur Aucun dans la boite de message de l'établi. La en effet, je veux que le comportement quitte les script/boite de message de l'établi et retourner le joueur à sa partie, là où il se trouvait avant d'activer l'établi. Pour les boites de messages des sous menus, Si on appuis sur un objet qu'on ne peut fabriquer, je veux que ça revienne à ce même sous menu, histoire de choisir autre chose. Et le bouton Aucun du sous menu devra lui retourner au script de l'établi.Pour les GLOB, j'peux rien en faire, mes GECK ne veulent pas me laisser y accéder. La fr v1.1 et la US v1.1 pareil ( Cf. Mon screenshot). Et ça me frustrait parce que ça l'air vachement plus simple. J'avais du mal à saisir les "QuestID.Var" Mais je comprends que ce soit risqué, c'est des variables qui restent en place même après le script bouclé.Merçi à toi pr ces précisions.Edit : Après plusieurs et nombreux essai infructueux, j'viens de me rendre compte. Je dois faire une quête par bouton de sous menu ! (??)Sinon, la/les variables qui sont dans le script de LA quête, elles ont des noms en rapport avec les sous menu (pour qu'on les reconnaissent) mais ça va pas plus loin.Je pigeait pas pourquoi mon sous menu n°1 ne s'affichait pas. Rien n'indique que son script auquel son activateur est lié doit se lancer.....Je continu à étudier :p

Lien vers le commentaire
Partager sur d’autres sites

ouep une variable tu l'appelle comme tu veux (d'ailleurs je suis un grand fan des variables nommée var1, var2, var3, etc lol), mais par convention on utilise doonce.

Petit rappel sur les variables,
une variable est une "mémoire", (comme une minuscule boite), dans laquelle on stock une valeur (ou une chaine de caractères, voir même des algos). Elle est définie en début de script avant le block type.

Donc ta variable tu l'appelle comme tu le souhaite.

Je dois faire une quête par bouton de sous menu ! (??)


Non pas obligé c'est toi qui décide,
si bouton1 = 1
.....lance quète (ou fais autre chose!)

J'avais du mal à saisir les "QuestID.Var" Mais je comprends que ce soit risqué, c'est des variables qui restent en place même après le script bouclé.

C'est pas dangereux, juste galère des fois car en cas de gros mod, c'est pas toujours évident de s'y retrouver dans les variables.

_______________________________________________________________________

geckfr.jpgsignature.png summ.jpg

Lien vers le commentaire
Partager sur d’autres sites

Put$^* ça veux pas c'est fou.Tout est basé sur l'esp de Rivs, j'ai juste moddifier les nom des variables, des objets etcLa strucutre est la même, le bouton préssé lance la commande de quest qui devrait lancé le bouton correspondant mais nada...Grrrrr.....J'y retourneEdit : Rhaaaaaaaaaaaaaaaa :lol: J'avais oublié de scripté l'activator du bouton. ^^ J'prends mon pieds j'vous raconte pas. Ca déchire :D

Lien vers le commentaire
Partager sur d’autres sites

alors tu t'en sort?

Oui oui, J'ai capté tout ça. le script de l'établi est préfinalisé, le script de quête est terminé c'est OK.Maintenant, j'me bât avec les scripts des activateur (les 9 boutons).Mais ils sont appelé, dc c'est que ça fonctionne. Par contre, ils ne s'exécute pas loin. tout juste à leur premier ShowMessage. Mais je paufine ça... :DDEdit : Bon et bien.....Le fait que le script de l'activateur ne puisse être qu'en GameMode est vraiment chiant. Je ne peux pas faire ce que je veux du coup:La commande GetButtonPressed, qui demande quel bouton est pressé, faisant suite à "ShowMessage MessageID" doit être dans le même script.

This will only react to a ShowMessage call from within the same script.

C'est ce que j'avais fait. HORS si ces deux commande sont dans le Block GameMode (le seul qui doit être utilisé dans le script de l'activator/Objet) d'après Rivs), et ben rien ne se passe.En étudiant les autres Script avec la même architecture, on vois que lorsqu'un bouton doit être préssé après l'affichage d'un message, la commande ShowMessage est dans le Bloc OnActivate.J'ai aussi trouvé ça mais on le savait déja :

Variables cannot be inserted into a message box's buttons.

Ca veux dire que mettre une variable dans le texte/nom d'un bouton est impossible ou ca veux dire qu'un bouton peut pas être lié à une variable?Du coup, ça veux pas dépasser le stade 3.Quelle soluce?
Lien vers le commentaire
Partager sur d’autres sites

OK.

, j'ai tous expliqué dans le post au dessus. =>

Et bien, ça bloque à ce niveau là. Pourtant, mon code est bon il me semble.Je ne peux rien faire de +. Votre technique est autant limité que celle que je croyais faisable:

Block OnActivate Run once when object is activated

C'est pourquoi j'avais mis des activator que je voulais "activer" au moyen du script de l'établi.Même avec les quêtes, ca ne fonctionne pas. Ou alors, pas plus loin que l'affichage des boite de message et il est impossible de remplir une variable avec les Index des boutons de ces boites.Je post les 3 script pour que vous puissiez voir où j'en suis. Il y a quelques chose qui couille mais je ne sais pas quoi.Script de quest :
scn SchemWBButton01QuestSCRIPTShort AmmoButtonShort ArmorButtonShort BigGunButtonShort EnWeapButtonShort ExplosiveButtonShort BrawlButtonShort MeleeButtonShort SmGunButtonShort NoneButton
Script de l'établi
scn SchematicsWorkbenchSCRIPTshort DoOnceshort TypeChosenFloat weaponConditionBegin OnActivate	if ( IsActionRef player == 1 )		set DoOnce to 1		ShowMessage SchematicsWorkbenchMsg									; Affiche le menu de fabrication général de l'établi	endifEndBegin GameMode			if ( DoOnce == 1 )			set weaponCondition to (player.getAV repair)/100				; L'état de l'arme dépends du pourcentage de la compétence réparation du joueur	set TypeChosen to GetButtonPressed								; Rempli la variable TypeChosen avec l'index du bouton pressé				If ( TypeChosen > 0 )										; Excepté le bouton 0 (Choix AUCUN a été signalé)						if TypeChosen == 1	; ammo							set SchemWBButtonQuest.AmmoButton to 1				;set SchemWBButtonQuest.AmmoButton to 0 =======> A placer avant le Endif du script de l'activator SchemWBButton1 //Fait=> veux pas. §Rives est pas clair^^ => c'est SchemWBButtonQuest.AmmoButton qu'il faut mettre à 0							elseif TypeChosen == 2	; armor								set SchemWBButtonQuest.ArmorButton to 1			;set SchemWBButtonQuest.ArmorButton to 0							elseif TypeChosen == 3	; big guns							set SchemWBButtonQuest.BigGunButton to 1			;set SchemWBButtonQuest.BigGunButton to 0							elseif TypeChosen == 4	; energy weapons								set SchemWBButtonQuest.EnWeapButton to 1				;set SchemWBButtonQuest.EnWeapButton to 0							elseif TypeChosen == 5	; explosives								set SchemWBButtonQuest.ExplosiveButton to 1				;set SchemWBButtonQuest.ExplosiveButton to 0							elseif TypeChosen == 6	; hand to hand weapons							set SchemWBButtonQuest.BrawlButton to 1			;set SchemWBButtonQuest.BrawlButton to 0							elseif TypeChosen == 7	; melee weapons								set SchemWBButtonQuest.MeleeButton to 1				;set SchemWBButtonQuest.MeleeButton to 0							elseif TypeChosen == 8	; small guns								set SchemWBButtonQuest.SmGunButton to 1				;set SchemWBButtonQuest.SmGunButton to 0							endif		endif	set DoOnce to 0													; Afin que le Bloc GameMode ne tourne pas en boucle.;	set TypeChosen to -1											; Réinitialise la variable TypeChosen (choix du bouton). ====> Utile?			endifEnd
Et enfin, celui qui rempli pas son taff
scn SchemWBButton1SCRIPTShort ButtonShort DoOnceBegin GameMode			if ( SchemWBButtonQuest.AmmoButton == 1 )				; Si le bouton MUNITIONS de la boite de message de l'étanli a été préssé					ShowMessage TESTAmmoMsg		ShowMessage SchematicsWorkbenchAmmoMsg				; Afficher la boite de message des munitions disponibles à la fabrication		Set DoOnce to 1						If DoOnce == 1											; Excepté le bouton AUCUN a été pressé			Set Button to GetButtonPressed						; Rempli la variable Button avec l'index du bouton qui a été pressé dans la boite de message du choix des munitions							If Button == 1										; Si le Bouton 1'a été préssé			ShowMessage TEST2AmmoMsg							; INSERER LA PARTIE BOUTON1 DU SCRIPT DES MUNITIONS			endif					endif			;		else WorkbenchPlayer.activate							; Si le bouton AUCUN est préssé, retourne à l'établi			;		endif			;		set SchemWBButtonQuest.AmmoButton to 0					; Réinitialise la QuestVariable pour ne pas que le script tourne en boucle	endif			Set DoOnce to 0End
J'ai essayé plusieurs script plus ou moins identique à celui là. Ci dessus, mon dernier essai en date. C'est pq il y a des points virgules au début des ligne ,devant certaine commande.Faites pas trop gaffe aux commentaires si vs saisissez pas. Ils sont là pr mon cerveau qui est actuellement en ModeMigraine ;)Il ne veux pas exécuter la partie: If DoOnce == 1A partir de là: ¤ Il tourne en boucle, a chaque pression du bouton OK ( des Message "TESTAmmoMsg" & "TESTAmmo2Msg" qui sont vide de bouton, ils sont là pour mes tests) lorsqu'il y a un point-virgule devant "set SchemWBButtonQuest.AmmoButton to 0". ¤ Ou s'arrête après la boite de message des munitions (SchematicsWorkbenchAmmoMsg) lorsqu'il n'y en a pas.Ce qui est logique, j'ai très bien compris.Je commence à perdre patience.:cryin:
Lien vers le commentaire
Partager sur d’autres sites

ta appris a scripté chez les mancho?Regarde bien ton code, ta des grosse fautes, ta un if endif pi un elsif endif ça ça marche pas si t'enléve les point virgule, c'est normal.Si tu met un else if, faut pas mettre de endif avant.Passe ton esp et dit moi ce qui décone.

Lien vers le commentaire
Partager sur d’autres sites

:lol: :lol: :lol: J'ai appris içi et sur la conf' :DJ'suis pas programmeur. J'apprends en ce moment même. Depuis 1(jrs à tout cassé et j'ai été "senisbilisé" il y a 2 ou 3 mois, quand j'ai réparé le MOD du gars.Je vais jeter un oeil à ce que tu dis. Mais à m' mot' que j'ai déja essayé d'autre tournure.J'change mes boites de msg un petit peu et je joints l'ESP en EDIT.Edit1 : Pas d' " if endif pi un elsif endif ". (C'est mon CTRL+F de firefox qui le dit ;) ). Ni ds celui de l'établi, ni ds l'activateur.Y a ; elseif... ;endifMais c'était pour mes test.Tout me semble ok. maintenant, j'suis un pingouin en prog' ^^ alors c'est vrai que mes perceptions sont pas valeureuses, je vous l'accorde.

Lien vers le commentaire
Partager sur d’autres sites

YopFaut savoir que ds ce MODs, y a une paire d'objest qui ont été modifié. Perso, je crois en avoir QUE créer.Dans la Cell MegatonPlayerHouse, il faut classer par FormID, et dans la ObjectWindows, le terme générique c'est "Schem" et/ou WB (pour Workbench)J'ai fait en sorte que ça colle au mieux avec le MOD "du gars".J'ai été confronté à un soucis, je ne pouvais pas nommer mes objet autant que je l'aurais voulu. Parfois, lorsqu'il étaient trop long, le GECK me refusait le nommage. Allez savoir pq. Plus rien ne m'étonne bcp avec ce prog' :D

Lien vers le commentaire
Partager sur d’autres sites

C'est bon, il faut savoir étre plus fort que le GECK.En faite j'avais déja eu ce genre Bléme.Le code est pas super logique dnas l'ordre, mais c'est un probléme de boucle.Ton code avant était bon mais un bug du geck peut étre empéche ça.voila le code.

scn SchemWBButton1SCRIPTShort ButtonShort DoOnceBegin GameMode			if ( SchemWBButtonQuest.AmmoButton == 1 )								if( DoOnce!=3)						ShowMessage SchematicsWorkbenchAmmoMsg						endif		Set Button to GetButtonPressed																									if( DoOnce==3)				If Button == 0						set SchemWBButtonQuest.AmmoButton to 0				Set DoOnce to 2									elseIf Button == 1											ShowMessage TESTAmmoMsg					set SchemWBButtonQuest.AmmoButton to 0				Set DoOnce to 2									elseIf Button == 2														ShowMessage TEST2AmmoMsg					set SchemWBButtonQuest.AmmoButton to 0				Set DoOnce to 2									endif		else			Set DoOnce to 3		endif							;		else WorkbenchPlayer.activate							; Si le bouton AUCUN est préssé, retourne à l'établi			;		endif									; Réinitialise la QuestVariable pour ne pas que le script tourne en boucle	endif		;	Set DoOnce to 0End
Donc lit bien le code, je fait faire un tour a vide malgré avoir appuyer le bouton munition.Puis je fait le showmessage puis le getbutton.J'ai fait les 3 premier bouton car quand on clicker dessus, on ne pouvait plus revoir le menu.N'oublie jamais de remettre DoOnce a autre chose que 3.Sinon ça marechera plus.
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...