Aller au contenu


Mauvaise Expression(résolu)


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

#1 Ash Gartopius

Ash Gartopius

Posté 23 février 2006 - 23:54

J'ai voulu mettre un activateur qui permet d'attraper l'hémophilie des clan, j'ai donc créé deux activateur et une variable:

vam_prop, une variable short qui commence a 1
activateur1 qui a le script "tel_vamp choos"
activateur2 qui a le script "tel_vamp_portal"


j'ai les script suivant:
Begin tel_vamp_choos

short bouton
short messageOn
short vamp_prop

set messageOn to 0

if ( MenuMode == 1 )
	return
endif

if ( OnActivate == 1 )
	MessageBox "Ce panneau permet de déterminer quel type de morsure le portail inflige, et quel type de maladie vous contactez. Quel sang voulez vous" , "Quarra", "Berne", "Aundae"
	set messageOn to 1
endif

if ( messageOn == 1 )
	set button to GetButtonPressed

	if ( button == 0 )
			set vamp_prop to 1	
			set messageOn to 0
	elseif ( button == 1 )
			set vamp_prop to 2
			set messageOn to 0
	elseif ( button == 2 )
			set vamp_prop to 3
			set messageOn to 0

	endif
endif
end
qui permet de déterminer quel hémophilie on a

ET

Begin tel_vamp_portal

short bouton
short messageOn
short vamp_prop
set messageOn to 0

if ( MenuMode == 1 )
	return
endif

if ( OnActivate == 1 )
	MessageBox "Voulez-vous toucher le portail?" , "Oui", "Non"
	set messageOn to 1
endif

if ( messageOn == 1 )
	set button to GetButtonPressed
	if ( button == 0 )
		if ( vamp_prop == 1)
			player -> AddSpell, "vampire blood quarra"
			set messageOn to 0
		
		elseif ( vamp_prop == 2)
			player -> AddSpell, "vampire blood berne"
			set messageOn to 0

		elseif ( vamp_prop == 1)
			player -> AddSpell, "vampire blood aundae"
		set messageOn to 0
		endif

	elseif ( button == 1 )
	return
	endif

endif
end
qui permet d'attraper l'hémophilie.

Mais quand j'active un des activateur, j'obtien le message:
script error: EXPRESSION in tel_vamp_choos
et il me demand si je veut continuer le chargement. :D

Je n'ai aucunne idée sur l'erreur que j'ai faite, donc je sollicite votre aide  :D

Modifié par Ash Gartopius, 26 février 2006 - 01:50.

-------------------------------------
"La stupidité est un crime, mais la nature se charge de la juger et de la punir à notre place."

"Aux choix: Je sais ou j'ai tors."

#2 Fandorn Delavie

Fandorn Delavie

    Défilé de mods


Posté 24 février 2006 - 07:51

Sans doute une histoire de majuscules ou de "_" dans les nom des maladie.

Je rencontre souvent cette erreure que je fais un script vite fais.
Modules bêta sur True Morrowind en attendant d'être sur wiwiland... Deja des millions de téléchargements :)

#3 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 24 février 2006 - 09:05

Citation

short bouton

Citation

set button to GetButtonPressed

Une petite erreur dans le nom de tes variables ! :D Il y a la même dans l'autre script...
Par contre, c'est bizarre que le TESC ait réussi à compiler le script ! :D
Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#4 Angora

Angora

    Danse avec les bugs


Posté 24 février 2006 - 11:15

En cas de problème avec un script, toujours le tester avec le compilateur de mwEdit.
Le saviez-vous ?

En français, il n'y a jamais, jamais, JAMAIS, J-A-M-A-I-S, de cédille à un 'c' devant un 'e', un 'i' ou un 'y'. Jamais. Sans aucune exception. Pas la moindre. Zéro. Cédille devant e, i ou y = faute. Un point, c'est tout, c'est comme ça, ça a toujours été comme ça, et ça le sera toujours.

#5 Ash Gartopius

Ash Gartopius

Posté 24 février 2006 - 21:22

Merci beaucoup, tout marche a merveille...ou presque, quand je clique sur "oui" du portail, je n'attrape pas de maladie, j'ai essayé avec les trois possibilité dee variable mais ren n'y fait .
pourquoi?:shocked:
-------------------------------------
"La stupidité est un crime, mais la nature se charge de la juger et de la punir à notre place."

"Aux choix: Je sais ou j'ai tors."

#6 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 25 février 2006 - 09:11

Citation

Begin tel_vamp_choos

short bouton
short messageOn
short vamp_prop

set messageOn to 0

if ( MenuMode == 1 )
    return
endif
Tu devrais retirer le "Set messageOn to 0" qui tourne en permanence tout en haut du script (et il y a le même dans l'autre script ! :grin:), ça devrait tout de suite aller mieux... :(

De plus, tes "vamp_prop" sont définies ici comme des variables locales : si tu modifies la variable vamp_prop du script tel_vamp_choos, la variable vamp_prop du script tel_vamp_portal ne sera pas modifiée pour autant ! Pour permettre une "communication" entre les deux scripts, tu devrais définir une variable globale plutôt que deux locales. :)

Edit : oretograf ! :?

Modifié par Nenfëa, 25 février 2006 - 09:15.

Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#7 Ash Gartopius

Ash Gartopius

Posté 26 février 2006 - 00:10

Je suis pas sur de saisir :shocked: :
Pour mettre one variable globale il faut la  créer dans le menu gameplay/globals ET ne pas la déclarer au début du script? :shocked:

J'ai fait ce que tu m'a conseillé, du moins je pense (j'ai pas déclaré les variables au début du script, mais les ai déclaré dans globals) et j'ai retiré le "SetMessageOn to 0"

Mais rien n'est changé, quand je sélectione bouton 0 dans tel_vamp_choss, puis que je choisi bouton 0 dans tel_vamp_portal, je n'attrape pas de maladie :shocked: , meme chose pour bouton 1 et 2 dans tel_vamp_choos. Pourtanat je suis sur que c'est le bon ID de maladie.
-------------------------------------
"La stupidité est un crime, mais la nature se charge de la juger et de la punir à notre place."

"Aux choix: Je sais ou j'ai tors."

#8 Nerwal

Nerwal

    SAMU Kalendaarien


Posté 26 février 2006 - 01:12

Citation

Pour mettre one variable globale il faut la créer dans le menu gameplay/globals ET ne pas la déclarer au début du script?
Oui, les variables déclarées en début de script sont des locales


vamp_prop -> commune à deux scripts donc globale (la valeur fixée dans l'un est utilisée dans l'autre)
MessageOn -> locale (chaque script a la sienne qui fonctionne indépendamment de l'autre; ça ne gène absolument pas que les deux aient le même nom)


Citation

elseif ( vamp_prop == 3)
player -> AddSpell, "vampire blood aundae"
set messageOn to 0
endif
petite erreur ici

A part ça, suis les corrections de Nenfeä (bouton->button, et pas de set MessageOn to 0 en début de script, tous les locales sont à 0 par défaut) et tout marche bien  :shocked:

#9 Ash Gartopius

Ash Gartopius

Posté 26 février 2006 - 01:49

OOOOOOOOUUUUUUUUUUUAAAAAAAAAIIIIIIIIIIIII!!!! :D  :D  :D  :D
Ca MARCHE!!! :shocked:  :shocked:
Merci beaucoup, et dire qu'il suffisait que je me relise (enfin, presque) :shocked:
encore une fois merci, tout marche parfaitement.
-------------------------------------
"La stupidité est un crime, mais la nature se charge de la juger et de la punir à notre place."

"Aux choix: Je sais ou j'ai tors."




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)