Aller au contenu


Scripte Pour Constuction étape Par étape.


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

#1 Ken Yuhi

Ken Yuhi

Posté 23 septembre 2006 - 08:46

Bonjour

J'ai regardé un peu les sujets dans cette catégorie et je ne crois pas que ce sujet a déjà été posé... donc voilà je suis en train de faire un plugin où Vivec et le duc Dren ordonne la construction d'une nouvelle cité bref ... et mon problème c'est que je ne sais pas comment faire pour que la cité apparaisse après un certain laps de temps ou qu'elle se construise pas à pas. Puisque de la voir du jour au lendemain apparaître sans passer par plusieur stade de construction serait trop irréaliste. J'ai tenté de comprendre un peu les scriptes du jeu pour les manoirs que l'on obtient dans les trois grandes maisons ... je crois avoir comprit que les bâtiments ainsi que les PNJ sont assignés à différents scriptes "Strong 1" "Strong 2" ... et ceci en fait le stade de la construction. Ceci dit les scriptes c'est pas trop mon truc pourtant il va falloir que je m'y mette parce que ce plugin sera (si j'arrive à le finir) bourré de script. J'aurais besoin d'un coup de main .. ou plutôt un petit coup de neurone pour ceux la. Si quelqu'un passe par ce sujet et qu'il a une idée, bienvenue !

Merci

#2 chef

chef

Posté 23 septembre 2006 - 11:54

ll y a en effet moyen de faire "apparaitre" des objets, murs, npcs, via les script, mais le tout est de savoir comment, tu veux que sa se fasse comment ?

Quand le journal est mis a jour ?
Apres X secondes/jours/mois ?
A la fin d'un dialogue ?

Il ya  plusieur maniere de le faire, a toi de choisire la quelle :green:

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#3 Ken Yuhi

Ken Yuhi

Posté 23 septembre 2006 - 12:16

Voir le messagechef, le 23.09.2006 à 11:54, dit :

ll y a en effet moyen de faire "apparaitre" des objets, murs, npcs, via les script, mais le tout est de savoir comment, tu veux que sa se fasse comment ?

Quand le journal est mis a jour ?
Apres X secondes/jours/mois ?
A la fin d'un dialogue ?

Il ya  plusieur maniere de le faire, a toi de choisire la quelle :green:

En faite mon plugin enfin la première partie consistera à amener le PJ à devenir celui qui dirigera Morrowind et la construction de cette nouvelle cité en est une étape ... il y aura une mise à jour du journal après un entretient avec Vivec donc de ce que je connai des scriptes l'entrée dans le journal sera le déclencheur de la construction et par la suite ca sera un décompte de jour ... environ 45 jours pour que la cité soit finie totalement. Dans ces 45 jours il y aura trois ou quatre passes pour montrer l'évolution du chantier.
Donc ca commencera par un dialogue qui enchaînera sur une entrée dans le journal qui déclenchera un décompte.

#4 chef

chef

Posté 23 septembre 2006 - 13:00

Je ne saurais pas bien t'aider pour faire apparaitre ta citée, mais, sache déjà que tu dois remplacée les statiques par des activator pour pouvoir leur mettre un script, donc, si c'est pas déjà fait, commence ta citée dans cette vue la.

Ensuite, tu pourras coller au activator et au objet qui doivent apparaitre ce script :

Begin Script


short done

if ( done == 2 )
return
endif


if ( done == 0 )
if ( variable_de_globale == 0 )

disable
set done to 1

endif
endif

; jusqu'ici, cette partie reste identique pour toute les étape de ta citée...

if ( done == 1 )
if ( variable_de_globale == 1 ); tu remplace le 1 par le chiffre de la variable que tu mettras a jour quand t auras envie..

enable
set done to 2

endif
endif
endif

end

Alors, ici, quand la variable sera a 1, il apparaitra.
Donc, tu met cette ligne dans ton dialogue, ou dans le script :

set "nom_de_ta_variable" to 1


Alors tout les objets qui auront le script plus haut apparaitrons...


Maitenant pour les script de jour, je suis pas un expert en la matiere...

Modifié par chef, 23 septembre 2006 - 14:54.

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#5 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 23 septembre 2006 - 14:22

Hello ! :beat:

Voilà un exemple de script de décompte des jours :
Previsualisation du code
Begin compteJours

Short jour
Short duree

if ( jour == 0 )
Set jour to day ; On met la variable locale jour à la valeur de la variable globale day
endif

if ( jour != day ) ; Comparaison de la variable locale jour avec la variable globale day
Set jour to day ; Si jour est différent de day, on met la variable locale jour à la valeur de la variable globale day...
Set duree to ( duree + 1 ) ; ... et on augmente la valeur de duree de 1
endif

if ( duree > 45 ) ; Passé 45 jours
; On fait l'action à faire
StopScript compteJours ; Et on arrête le script global
endif

End

Il s'agit d'un script global. :beat:

Et pour éviter de faire baisser le frame rate aux alentours de ta cité, je te conseille :
- soit de limiter le nombre d'objets à faire apparaitre (maisons, tonneaux, PNJs, etc...) pour éviter d'avoir trop de scripts locaux qui tournent
- soit de Disable/Enable les objets de ta cité grace à des scripts globaux uniquement. Ca implique que tous les objets composant ta cité aient des IDs différentes... :eek:

Celà dit, ça n'est utile que si tu constates des baisses de performances aux alentours de ta ville, une méthode par scripts locaux est bien plus simple dans le cas contraire ! :green:


Edit : dans le script local donné par chef, je crois que le second "set done to 1" (juste après le Enable) doit être plutôt un "set done to 2", non ? :cry:
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 !

#6 chef

chef

Posté 23 septembre 2006 - 15:05

Exacte Nenfëa...

C'est corrigé, merci.

J'avais déjà vu un script (et même utilisé) mais il y avais un currentday je crois... Mais j'en suis pas sur et je ne sais pas se que il veut dire...

Mais, faire des ids différente pour chaque objet d'une citée... C'est un peu baucoup je crois...

A bientot  :green:

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#7 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 23 septembre 2006 - 15:19

Voir le messagechef, le 23.09.2006 à 16:05, dit :

Mais, faire des ids différente pour chaque objet d'une citée... C'est un peu baucoup je crois...
C'est sur ! ;)
Une solution intermédiaire serait de Enable/Disable les objets uniques de la cité (comme les PNJs, les bâtiments spéciaux, etc...) via le script global et de coller des scripts locaux aux autres. ;)
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 !

#8 chef

chef

Posté 23 septembre 2006 - 18:47

Woua... Pas bete Nenfëa, avec comme ça, on limite quand meme le nombre de script dans la citée...

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#9 Ken Yuhi

Ken Yuhi

Posté 24 septembre 2006 - 13:06

Je note tout ça ... je vais essayer tout ca cette semaine ... j'essaye de dispacher mon plugin en petit plugin que je vais réunir à la fin .. parce que c'est trop imposant pour en faire un seul. Merci pour votre aide très précieuse je vais sans doute posez d'autres questions dans pas longtemps, les scripts et moi c'est pas un conte de fée...
merci !!!




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

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