Page 1 sur 2
Script ! Quête simple avec durée
Posté : 06 févr. 2010, 22:22
par Prechan
Bonsoir,
Voila, je veux rajouter une quête dans un mod (Chut stun secret

) qui permettra au joueur d'aménager les Annexes d'un Sanctuaire (Chut je vous dis

)
Bon, pour tout ce qui est quête, dialogues, ça va mais c'est pour le script de quête que je demande votre aide (un peu par flemmardise j'avoue

)
(Flemme de chercher dans tout le wiwiki la balise qu'il faut, donc si quelqu'un connait

)
Je veux qu'a partir du moment où le joueur paye le Silencieux pour faire les travaux, il devra attendre 1 mois avant que ceux-ci soient finis ! (En sachant que le compte à rebours commencera avec une balise
Mais que dois-je utiliser pour ça ?
Merci de votre aide
Prechan
Re: Script ! Quête simple avec durée
Posté : 07 févr. 2010, 11:35
par Karaiq
Ben je crois me souvenir d'une commande qui ressemble à "getimepassed <nombre de secondes à devoir attendre>" ...
Je ne sais plus où j'ai vu ça et je ne suis même pas sûr qu'elle existe vraiment mais peut-être bien que si...

Re: Script ! Quête simple avec durée
Posté : 07 févr. 2010, 12:11
par Prechan
Le problème, c'est que je la trouve ni sur Wiwiki, ni sur le Wiki Anglais du tesc
Pourtant, il est vrai que j'ai déja du voir cette commande quelques part...
Re: Script ! Quête simple avec durée
Posté : 07 févr. 2010, 12:36
par Karaiq
Je viens de chercher, comme toi, parmi les commandes d'OBSE du wiki anglais et pas moyen non plus. La seule commande que j'ai trouvé c'est "istimepassing" mais il faut que le joueur attende alors c'est pas tout à fait ce que tu recherches...
Re: Script ! Quête simple avec durée
Posté : 07 févr. 2010, 12:42
par Prechan
Je vais chercher dans le TESC, cette commande existe bien, sans OBSE puisque dans la quête de l'Armure du Dragon Impérial, on doit attendre 15 jours !
Re: Script ! Quête simple avec durée
Posté : 07 févr. 2010, 13:41
par Karaiq
Ah ben oui je me disais bien... Bonnes fouilles dans le CS !
Re: Script ! Quête simple avec durée
Posté : 07 févr. 2010, 18:15
par Prechan
Voila le script affilé au Stage10
Code : Tout sélectionner
set MQDragonArmor.armorFinishDay to gameDaysPassed + 14
set MQDragonArmor.fQuestDelayTime to 100
Et celui de la quête, par contre, je ne trouve pas les topics concernant cette quête
Code : Tout sélectionner
scn MQDragonArmorQuestSCRIPT
short armorFinishDay
float fQuestDelayTime
begin gamemode
if getstage MQDragonArmor > 10
return
endif
if gamedayspassed >= armorFinishDay
setstage MQDragonArmor 20
; create the armor for the player's best armor skill
if player.getav lightarmor > player.getav heavyarmor
MQDragonArmorLightParent.enable
else
MQDragonArmorHeavyParent.enable
endif
endif
end
Re: Script ! Quête simple avec durée
Posté : 08 févr. 2010, 12:30
par beeratwork
http://cs.elderscrolls.com/constwiki/in ... _Functions
Tu utilise GameDay et GameMonth.
Donc :
1) Balise alarme, initialisation, on mémorise le jour actuel et le mois actuel,
2) Calcul du jour J selon le mois actuel >>> Attention ! En février il y a 28 jours ! Donc si tu es le 31 janvier, tu dois passer au 28 février ! Pareil pour toutes les transistion 31 à 30.
3) Si on est le mois suivant et le jour J, balise suivante
Re: Script ! Quête simple avec durée
Posté : 08 févr. 2010, 20:07
par Prechan
Merci bien Biere a ton travail
Donc ça doit faire un truc comme (jsuis pas sur le TESC la) :
Mais le problème s'est que je sais pas quoi faire après ? Je connais pas du tout ce type de script...(et je suis relativement faible niveau script) Comment fait-on pour "marquer" les jours et mois du moment présent pour ensuite les comptabiliser ?
Je suis vraiment désolé mais je m'y connais vraiment pas, j'en suis resté au script simple sans trop de variables

Re: Script ! Quête simple avec durée
Posté : 08 févr. 2010, 20:51
par beeratwork
Code : Tout sélectionner
short NextMonth
short NextDay
; GameDay va de 0 à 30 selon le moi, donc 27 correspond au 28ème jour et 30 au 31ème jour
if (GetStage IDquest == ???)
set NextMonth to (GameMonth + 1)
; 31j -> 28j
if (GameMonth == 0)
if (GameDay >= 28)
set NextMonth to (NextMonth + 1)
set NextDay to (31 - GameDay)
else
set NextDay to GameDay
endif
; 31j -> 30j
elseif (GameMonth == 2 || GameMonth == 4 || GameMonth == 6 || GameMonth == 7 || GameMonth == 9)
if (GameDay == 30)
set NextMonth to (NextMonth + 1)
set NextDay to (31 - GameDay)
else
set NextDay to GameDay
endif
; 28j -> 31j et 30j -> 31j et 31j -> 31j
elseif (GameMonth == 1 || GameMonth == 3 || GameMonth == 5 || GameMonth == 8 || GameMonth == 10 || GameMonth == 11)
set NextDay to GameDay
endif
SetStage IDquest ABC
elseif (GetStage IDquest == ABC)
if (GameMonth == NextMonth && GameDay == NextDay)
SetStage IDquest EFG
endif
endif
GameDay et GameMonth sont des variable du jeu.