Aller au contenu


Script Et Prog Orientée Objet


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

#1 PitLord

PitLord

Posté 14 janvier 2006 - 19:22

Je voudrais savoir s'il était possible de créer des fonctions dans un script  de manière a pouvoir l'appeler depuis un autre objet.
Je demande ca parce que les variables globales c bien mais quand on commence a en avoir beaucoup ca devient un peu le bordel (je travaille sur un mod bourré de porte secretes).
J'aurais aimé pouvoir faire un appel du genre

Maporte->ouvrir()
Maporte->fermer()

dans le script d'un activator qui serait planqué quelque part dans la piece

SANS devoir passer par l'utilisation d'une variable globale du type Door_state

Parce que dans mon mode j'en suis deja à Secret_Door_state12 !!!!!!

ps: j'ai deja essayé d'utiliser plusieures variantes de la syntaxe:
Begin ouvrir()

End ouvrir

dans le script de ma porte mais ca marche pas....


Donc, est-ce possible?

Merci d'avance...

PitLord

#2 dededos

dededos

Posté 14 janvier 2006 - 19:46

Oui c'est possible.

Associe ce script a l'activator dans la piece de la porte :

Begin ouverture

short done


if ( OnActivate == 1 )
  if ( done == 0 )
	 id_de_la_porte -> Rotate, z, X
		if ( id_de_la_porte -> GetAngle, z == 90 )
		   set done to 1
		endif
  if ( done == 1 )
	 return
  endif
endif

end


dans la ligne id_de_la_porte -> Rotate, z, X, le X est a remplacer par la vitesse avec laquelle tu veux que la porte s'ouvre. C'est en angle par seconde.

A noter aussi que dans le if ( id_de_la_porte -> GetAngle, z == 90 ), le 90 pourrait etre amené a changer, ca dépend de l'orientation de ta porte lorsqu'elle est fermée.


Bon je pense que ce script devrait marcher, mais je me suis peut etre tromper quelque part.
Mais j'espere qu'il n'y a pas d'erreur.

:)
"Wrong, Do it again!"
"If you don't eat yer meat, you can't have any pudding. How can you have any pudding if you don't eat yer meat?"
"You! Yes, you behind the bikesheds, stand still laddy!"

--------------------

Membre des Fervents Partisans de l'Immuabilité Avatarienne!

#3 Angora

Angora

    Danse avec les bugs


Posté 15 janvier 2006 - 05:52

Voir le messagePitLord, le 14.01.2006 à 19:22, dit :

Je voudrais savoir s'il était possible de créer des fonctions dans un script  de manière a pouvoir l'appeler depuis un autre objet.

Oui et non. On ne peut pas créer de fonctions, mais on peut créer des scripts et ensuite les appeler. Quand un script est lancé depuis un script local, il est aussi un script local, donc il pourra utiliser les fonctions SetAngle, SetPos et compagnie.

Le problème c'est que si tu utilises des activateurs "planqués quelque part" ça signifie que tes portes secrètes ne sont pas celles qui ont le script, c'est ça ? Donc tu sera obligé de garder des variables globales...

A moins que tes portes ne soient elles des objets uniques chacuns, avec Reference Persists coché, auquel cas tu peux les manipuler depuis un script qui ne leur est pas local ; mais c'est une solution plus lourde techniquement que la variable globale...
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.




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

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