Aller au contenu


[Résolu] Créer Une Lévitation Éternelle Uniquement Dans Une Pièce


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

#1 petitkoalak

petitkoalak

Posté 01 octobre 2011 - 13:23

Bonjour à tous,

Tout est dans le titre, comment faire pour que le personnage puisse léviter autant qu'il le souhaite ? Et que la lévitation disparaisse dès qu'il quitte la salle (qu'il fanchisse les portes ou qu'il se téléporte) ?

Merci d'avance

Modifié par petitkoalak, 01 octobre 2011 - 18:12.


#2 MagikMike

MagikMike

    Crétins de bugs !


Posté 01 octobre 2011 - 13:42

Bonjour.

Tu peut mettre un activateur dans la salle qui rajoute un sortilège de type "lévitation constante" des que le PJ rentre...
Tu n'oublie pas de n'ajouter le sortilège que si le PJ ne l'a pas déjà !

Et à la sortie de la cell, tu lui retire le sortilège .
(OnCellChanged)
PNOG
PNOS

On a toujours besoin d'un petit PNO chez soi (merci Neluche)

#3 petitkoalak

petitkoalak

Posté 01 octobre 2011 - 13:52

Merci pour la réponse, mais le OnCellChanged, je l'applique où ? Sur les même activateurs ?

#4 abg

abg

    L'ABG pour les civilisés


Posté 01 octobre 2011 - 13:54

Voir le messageMagikMike, le 01 octobre 2011 - 13:42, dit :

(OnCellChanged)

Confusion avec un autre jeu, mon lapin :P, ça n'existe pas chez nous "OnCellChanged"
Cellchanged renvoie 1 dans la frame qui suit un changement de cell. Mais c'est une commande assez dangereuse, voire buggée... Elle ne détecte pas la téléportation notamment.

Sinon, la méthode d'attribuer une capacité de lévitation constante via un activateur scripté lorsque le PJ entre dans la pièce est bonne. Mais le problème est de retirer cette capacité lorsque le PJ quitte l'endroit (il peut virtuellement atterrir n'importe où, hors de portée du script, surtout s'il se téléporte...). Voir ce que dit le MSfD 9 (page 62) sur Cellchanged.
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#5 petitkoalak

petitkoalak

Posté 01 octobre 2011 - 14:13

Faut-il absolument mettre en place des activateurs ?
Je pensais pouvoir scripter les portes, mais elles ne "téléporte" plus...

peux interdir la téléportation dès qu'il entre dans le bâtiment et la défaire dès qu'il en sort, mais le problème, c'est que lorsque j'utilise une porte pour les script, elle "ne s'ouvre plus"...

Modifié par petitkoalak, 01 octobre 2011 - 14:57.


#6 abg

abg

    L'ABG pour les civilisés


Posté 01 octobre 2011 - 16:08

Voir le messagepetitkoalak, le 01 octobre 2011 - 14:13, dit :

Faut-il absolument mettre en place des activateurs ?
Je pensais pouvoir scripter les portes, mais elles ne "téléporte" plus...

peux interdir la téléportation dès qu'il entre dans le bâtiment et la défaire dès qu'il en sort, mais le problème, c'est que lorsque j'utilise une porte pour les script, elle "ne s'ouvre plus"...

Comme d'habitude il y a plusieurs moyens de parvenir à ses fins...
Si ta porte ne s'ouvre plus c'est peut-être un bug de ton script. Et si tu nous le montrais ?

Songe aussi que la porte à scripter est celle "côté intérieur" (pas la même que celle côté extérieur, oui c'est de la logique tescienne :)). Car un script placé sur la porte côté extérieur ne sera pas actif lorsque le ¨PJ sera passé à l'intérieur

Pour ma part, je mettrais un activateur quelconque dans la salle, activateur scripté lançant un script global qui :

- Tant que le PJ est dans la pièce :
-> Lui donne la capacité de lévitation s'il ne l'a pas déjà.
- Sinon :
-> Retire la capacité de lévitation
-> Auto-termine le script.
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#7 Kira

Kira

    Top-modeleuse...


Posté 01 octobre 2011 - 16:17

Bonjour...Tu peux, il me semble, utiliser une porte pour déclencher une commande quand tu l'actives, tant que tu n'oublies pas de lui expliquer par le menu ce qu'elle doit faire...

En général, il suffit d'un script de ce genre...

begin script_porte
 
short state
 
if ( menuMode==1 )
	 return
endif
if ( state ==0 )
   if ( OnActivate==1 )
	  Player->RemoveSpell "levitate"
		 Set State to 1
			Activate
   endif
endif
 
 
end

En revanche, je ne suis pas certaine à 100% que l'ID du sort de lévitation soit "levitate", il serait plus prudent de vérifier...
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#8 abg

abg

    L'ABG pour les civilisés


Posté 01 octobre 2011 - 16:20

Voir le messageKira, le 01 octobre 2011 - 16:17, dit :

En revanche, je ne suis pas certaine à 100% que l'ID du sort de lévitation soit "levitate", il serait plus prudent de vérifier...

C'est l'ID du sort de lévitation "standard" en vente dans toutes les bonnes Guildes des Mages. Mais pour faire ce que souhaite petitkoalak, il faudra créer une capacité (sort constant).
D'ailleurs créer un ID propre au mod et spécifique à cette situation permet de faire économie de la variable state dans ton script :

If ( MenuMode == 1 )
	Return
EndIf
 
If ( OnActivate == 1 )
	If ( "player"->GetSpell, "ID_du_sort" == 1 )
		"player"->RemoveSpell, "ID_du_sort"
	EndIf
	Activate
EndIf

Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#9 petitkoalak

petitkoalak

Posté 01 octobre 2011 - 16:45

re bonjour,

Mon script actuel est :

begin ROB_levitation_porte
 
if ( OnActivate == 1 )
Player->AddSpell, "ROB_levitation"
activate
endif
 
end

ROB_levitation est l'id de la capacité crée. Ce code marche (je lévite éternellement après) sauf que la porte ne fonctionne plus...

Le script ne fonctionne que si je le place sur la porte extérieur, et continue de fonctionner, si je me téléporte à l'intérieur (via la deuxième porte non-scriptée, pour pouvoir entrer  ^^ )

je n'ai pas bien compris le truc avec MenuMode ...

EDIT (correction du script, découverte de activate => ça marche !)

Maintenant, il me reste à trouver comment interdire les rappels et les interventions ^^

Modifié par petitkoalak, 01 octobre 2011 - 17:12.


#10 abg

abg

    L'ABG pour les civilisés


Posté 01 octobre 2011 - 18:00

Le "If ( MenuMode )...Return" est une optimisation courante.
Ça interrompt le reste du script lorsque le joueur passe en mode menu (inutile, ici, de vérifier si le PJ ouvre la porte alors qu'il est en train de fourrager dans son inventaire...)
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#11 petitkoalak

petitkoalak

Posté 01 octobre 2011 - 18:10

@abg : Merci pour le conseil, je m'en vais rééditer mon script

Finalement, j'ai réussi, Comme activateur, j'ai mis une stèle avec comme script :

begin ROB_no_teleportation
 
 
;je vais mettre l'optimisation ici
;et surement un truc pour renseigner le joueur sur le comportement quelque peu étrange de cette salle :)
 
DisableTeleporting
 
 
end


Et sur chaque porte sortante, j'annule la lévitation et réactive la téléportation ^^


Merci à tous !!

#12 Nerwal

Nerwal

    SAMU Kalendaarien


Posté 01 octobre 2011 - 18:22

Mmmm, et la téléportation scriptée ?

#13 petitkoalak

petitkoalak

Posté 01 octobre 2011 - 22:15

effectivement, il y avait comme un problème, maudite logique TESCienne ^^
réactivation de la téléportation sur la porte de sortie (avec détection par variable globale)

#14 Kira

Kira

    Top-modeleuse...


Posté 02 octobre 2011 - 02:06

Coucou, c'est encore moi...
Juste un dernier petit mot pour préciser que si tu comptes faire un mod dépendant de Tribunal, il existe les commandes "DisableLevitation" et "EnableLevitation" qui servent à supprimer la lévitation dans l'enceinte de Longsanglot...


Mais ça rend obligatoire la possession de l'extension Tribunal, comme pour la grande plupart des mods de compagnons...
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#15 petitkoalak

petitkoalak

Posté 02 octobre 2011 - 17:42

Merci pour l'avertissement/conseil ;) Mais je vais essayer de faire mon mod pour morrowind uniquement,

Pour infos, ce sera une demeure prêtée par L'empereur (une ruine dwemer aménagée plus précisément ^^) Elle permettra d'être aguerri pour bien commencer la partie. Avec un salon "tricherie" qui permettra aux joueurs les plus faibles de s'en sortir quand même, On croisera un camarade de voyage en mer à l'entrée... Bref c'est un flot d'idée qu'il y a dans ma tête, mais je peine parce que je suis un peu limité niveau connaissance ^^

ce petit script sert uniquement à pouvoir aller dans chaque salles (sur deux étages sans escaliers)

#16 MagikMike

MagikMike

    Crétins de bugs !


Posté 03 octobre 2011 - 19:23

@Abg.. Oula oui . Disons que c'est une déformation professionnelle  :)

Sinon, je ne suis pas trop pour désactiver la téléportation dans ton cas. D'autant plus que tu cherches à faire du Morrowind simple.

J'aurais tendance à tester dans le script global qui "GERE LE SORT" la cellule dans laquelle on est, et retirer l'effet si on est plus dans la "demeure", puis stopper le script global.

Citation

ce petit script sert uniquement à pouvoir aller dans chaque salles (sur deux étages sans escaliers)



Pourquoi forcer la lévitation permanente de l'utilisateur?

Tu peut t'inspirer du script de l'autel près du temple de Vivec (celui qui nous donne la lévitation quand on offre une potion).
Et te faire un autel du même style qui lance la lévitation sur le joueur uniquement si il "prie" :P
C'est plus simple à gérer.

De plus personnellement, la lévitation qui dure .... :paladin:
PNOG
PNOS

On a toujours besoin d'un petit PNO chez soi (merci Neluche)




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

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