Aller au contenu


Casse Telle Avec Les Destinations D'Un Bateau


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

#1 eventstorm

eventstorm

Posté 06 avril 2012 - 05:08

Bonjour à toutes et tous.

Pour mon MOD  Alagaësia . J’ai plusieurs iles dont certaines assez vastes.

J’ai donc fait un service de transport maritime (travel services).
Jusque-là. Rien de bien sorcier.
Mais voilà. Je me bute à un détail tous bête.
Certaines de ces destinations ont le même nom (même nom de cellule).
je ne peux changer les noms de ces cellules (trop proches l'une de l'autre). voir cette page pour mieux ce rendre compte.
donc y a t'il un moyen de modifier le nom de destination .
Sinon il me reste la solution de passer par les dialogues. Malheureusement, je gère très mal ses fonctions.
si une âme charitable a une idée, je suis preneur

#2 Nehluxhes

Nehluxhes

    Les mots s'arrêtent à TABRONEH.


Posté 06 avril 2012 - 09:40

PositionCell?
Comme ça même si c'est la même cellule, tu peux avoir des coordonnées XYZ différentes?

#3 Kira

Kira

    Top-modeleuse...


Posté 06 avril 2012 - 10:47

Coucou, Eventstorm...

Comme le dit Nelhuxhes, la fonction PositionCell est la solution parfaite à ton problème..
Il va toutefois l'employer avec une simple précaution, à savoir ne pas la mettre dans un résultat de dialogue, ce qui a en effet pour effet de faire crasher le jeu...
Afin d'obtenir un personnage qui te fasse voyager comme tout bon capitaine de vaisseau, le plus simple est de créer une variable globale (Event_Travel, par exemple), et de la modifier par la fenêtre de dialogue de ton npc avant de faire démarrer un script de téléportation...

Prenons pour exemple un personnage qui peut te transporter dans quatre endroits différents... Tu vas donc attribuer un chiffre à chaque destination, 1, 2, 3 et 4...

Une fois cela fait, tu vas placer quatre npc identiques en nom et aspect, un à chaque étape... Il vaut mieux, bien sur, pour plus de clarté, terminer les id de chacun par le chiffre de leur emplacement... Tu vas donc avoir un "capitaine_1" en destination 1, un "capitaine_2" en destination 2, etc...

Chacun des avatars de ce capitaine peut te mener vers trois destinations... "capitaine_1", peut t'envoyer au point 2, au 3 et au 4, mais pas au 1 puisque tu y es déjà...

Il ne te reste plus qu'à lui créer un dialogue à trois réponses pour les trois destinations, plus une réponse pour renoncer à voyager...

Il peut, tu t'en rappelles, te mener vers les points 2, 3 et 4...

Si tu donnes la réponse indiquant que tu veux aller au point 2, le capitaine aura en résultat de dialogue:
set Event_Travel to 2					 ;La globale est incrémentée à la valeur du point de destination...
Player->RemoveItem Gold_001 2							   ;(Le prix du voyage, en fait...)
StartScript "Event_Boat_Travel"								 ;On va aborder ce point tout de suite en dessous...
Goodbye									   ;Pour rester poli et fermer la fenêtre de dialogue...

Tu as pu noter qu'il est question d'un script "Event_boat_travel"... Je crois qu'il vaut mieux écrire ce script avant les résultats de dialogue, le jeu risquerait de ne pas comprendre si tu lui demandes d'exécuter un script qui n'existe pas encore...

Voilà, en gros en quoi il consiste...
Begin Event_boat_travel
if ( MenuMode == 1 )
		Return			; Pour que tu puisses fermer la fenêtre de dialogue...
endif
FadeIn , 3													  ; L'écran devient noir...
if ( Event_Travel == 1 )
	 Player->PositionCell, X1, Y1, Z1, ZRot1, "CellID"
elseif ( Event_Travel == 2 )
	 Player->PositionCell, X2, Y2, Z2, ZRot2, "CellID"
elseif ( Event_Travel == 3 )
	 Player->PositionCell, X3, Y3, Z3, ZRot3, "CellID"
elseif ( Event_Travel == 4 )
	 Player->PositionCell, X4, Y4, Z4, ZRot4, "CellID"
endif
Fadeout , 3													   ; La lumière revient...
Set Event_Travel to 0
end


Je tiens tout de même à te prévenir, je n'ai pas testé le processus, mais normalement, ça devrait marcher...
Il est d'ailleurs fort possible qu'un vrai spécialiste en script puisse optimiser celui-là....
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...)

#4 eventstorm

eventstorm

Posté 06 avril 2012 - 12:21

merci a vous deux pour vos reponses mais. (il y a toujour un mais).
je n'est rien compris ma tite kira enfin... pas tous
en 1) tu utilisera un 'greeting' ? donc 1 par id ? soit 4

en 2) variable globale (Event_Travel) ?

Ps kira toujours aussi heureux de te voir  et tu est toujours mon Wiwi d'or preferer lol

Modifié par eventstorm, 06 avril 2012 - 12:25.


#5 Kira

Kira

    Top-modeleuse...


Posté 06 avril 2012 - 13:32

Coucou, Eventstorm...
c'est un plaisir de te répondre, tu es toujours mon prince charmant en détresse préféré....

Mais restons sérieux et concentrés...
Donc, pour le greeting, comme tu dois mettre un filtre pour que seul le capitaine te propose de voyager, tu as deux solutions possibles..

La première est de filtrer par id, et à ce moment-là, tu devras réécrire 4 fois le même greeting, une fois par avatar de capitaine...

La deuxième est de créer une classe que tu nommeras "capitaine" et à laquelle tu inscrira tes quatre personnages... A ce moment-là, tu n'auras plus qu'un seul greeting à écrire, que tu filtreras par la classe "capitaine... Si tu crées le topic "utiliser mon bateau", par exemple, ton greeting pourra être :

"Bonjour.. Aimeriez-vous voyager en [utilisant mon bateau] ?..."
(Note que, afin d'éviter les confusions, il vaut mieux mettre un espace entre bateau et le point d'interrogation, ce qui est typographiquement incorrect, mais Morrowindement plus sur...

Tu n'auras plus qu'à marquer en choix de dialogue:
choice " Oui, vous tombez bien" 1 "Non, mais merci" 2

(On est d'ailleurs parfois obligé, je ne sais pourquoi, à rajouter en fenêtre de résultats "Player->addtopic "utilisant mon bateau", sinon le topic ne sera accessible qu'après avoir fermé et ré-ouvert la fenêtre de dialogues...)

Et à la réponse 1, tu pourras, cette fois-ci dans la catégorie des topics, donner en réponse la liste des destinations, qui sera elle, différente pour chaque capitaine et sera donc filtrée par id, cette fois-ci...

Quand à la globale, tu peux la créer en cliquant sur la fenêtre principale du Tescs, et en choisissant "Gameplay-->Globals"...
Tu tapes "New" et tu lui donnes le nom que tu veux... Ensuite, tu coches la case "short" et tu lui donnes la valeur (value) 0...

Tu auras ainsi créé une variable globale qui peut être modifiée par tous tes capitaines et peut être utilisée dans ton script de déplacement...
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...)

#6 eventstorm

eventstorm

Posté 07 avril 2012 - 03:06

merci ma tite kira .
un autre truc me chagrine pourquoi les 4 capitaine doivent etre les meme personnage ?(Une fois cela fait, tu vas placer quatre npc identiques en nom et aspect, un à chaque étape...)

#7 Kira

Kira

    Top-modeleuse...


Posté 07 avril 2012 - 08:47

Bonjour, Eventstorm...

Ça, ce n'est pas obligatoire... Je trouvais juste que ça avait l'air plus logique de retrouver au bout du trajet le même capitaine que celui avec lequel on a embarqué, comme il s'agit de courtes distance...
J'avais imaginé que tu voulais faire un petit service de navette entre tes îlots, mais le script marchera, quels que soient les ages et les têtes du ou des capitaines...
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 eventstorm

eventstorm

Posté 09 avril 2012 - 15:20

re merci tite kira
bon je mis colle pis sa marche pô je t'inonde de PM NA (toutes les excuses son bonne pour pévéter avec toi lol)

bon sa marche lol
passer la nuit a refaire le topic mais a la fin j'ai compris mon problème (l'ordre des question ) pfffffff
par contre kikra le script me fait boite de nuit lol la lumière va et vient sans arrêt

Begin Event_boat_travel
if ( MenuMode == 1 )
				Return			  ; Pour que tu puisses fermer la fenêtre de dialogue...
endif
FadeIn , 3																										; L'écran devient noir...
if ( Event_Travel == 1 )
		 Player->PositionCell, X1, Y1, Z1, ZRot1, "CellID"
elseif ( Event_Travel == 2 )
		 Player->PositionCell, X2, Y2, Z2, ZRot2, "CellID"
elseif ( Event_Travel == 3 )
		 Player->PositionCell, X3, Y3, Z3, ZRot3, "CellID"
elseif ( Event_Travel == 4 )
		 Player->PositionCell, X4, Y4, Z4, ZRot4, "CellID"
endif
Fadeout , 3																										; La lumière revient...
Set Event_Travel to 0
end
j"ai donc supprimer FadeIn , 3 et Fadeout , 3

Begin AAtl_boat_travel_Beirland
if ( MenuMode == 1 )
Return														; Pour que tu puisses fermer la fenêtre de dialogue...
endif

if ( Atl_Event_Travel == 1 )
	 Player->Position, -473856, -478296, 168, 270,			; Natgard Pnj = Atl_travel_Beirland_1
elseif ( Atl_Event_Travel == 2 )
	 Player->Position, -469872, -480888, 160., 270,			; Ellesméra Pnj = Atl_travel_Beirland_2
elseif ( Atl_Event_Travel == 3 )
	 Player->Position, -477504, -481344, 104, 360,			; Belatona Pnj = Atl_travel_Beirland_3
elseif ( Atl_Event_Travel == 4 )
	 Player->Position, -479424, -484512, 176, 289,			; Bray, le village Pnj = Atl_travel_Beirland_4
elseif ( Atl_Event_Travel == 5 )
	 Player->Position, -490176, -479440, 224, 180,			; Bray, La Ferme Pnj = Atl_travel_Beirland_5
	
endif

Set Atl_Event_Travel to 0
end AAtl_boat_travel_Beirland

j'ai fait un post ici pour intégralité de la démarche

Modifié par eventstorm, 09 avril 2012 - 18:51.





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

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