Questions De Script (encore)
#1
Posté 17 septembre 2005 - 17:36
j'en aurais deux en fait , voila dabord le premier :
1° il faudrait qu'il se passe 3 chose : _un fondu noir
_1 heures s'ecoule (et on le voit si possible comme quand on dors)
_la vie, la fatique et le mana remonte.
je sais pas si cela a son importance pour vous mais le script sera lancé a partir d'un dialogue.
2° le deuxieme est différent : je veux que quand la créature meurt, elle revit au bout de 10 seconde par exemple.
si jamais ce n'est pas clair faite savoir.
#2
Posté 17 septembre 2005 - 18:57
twister, le 17.09.2005 à 18:36, dit :
j'en aurais deux en fait , voila dabord le premier :
1° il faudrait qu'il se passe 3 chose : _un fondu noir
_1 heures s'ecoule (et on le voit si possible comme quand on dors)
_la vie, la fatique et le mana remonte.
je sais pas si cela a son importance pour vous mais le script sera lancé a partir d'un dialogue.
2° le deuxieme est différent : je veux que quand la créature meurt, elle revit au bout de 10 seconde par exemple.
si jamais ce n'est pas clair faite savoir.
Pour le premier script, je peux te donner un script que j'ai fait moi et qui marche :
Begin GZ-FL_FadeScript float timer short etat if ( menuMode == 1 ) return endif set timer to ( timer + GetSecondsPassed ) if ( etat == 0 ) disablePlayerControls fadeout 1 set etat to 1 endif if ( etat == 1 ) if ( timer >= 1 ) set etat to 2 set timer to 0 endif endif if ( etat == 2 ) fadein 3 set etat to 3 endif if ( etat == 3 ) if ( timer >= 3 ) set etat to 4 set timer to 0 endif endif if ( etat == 4 ) set GameHour to ( GameHour + 0.5 ) set etat to 0 set timer to 0 enablePlayerControls stopScript GZ-FL_FadeScript endif End GZ-FL_FadeScript
Explications : ce script fait un fondu au noir, puis un retour à la lumière, et fait avancer le temps d'une demi-heure. Les stats ne remontent pas.
Modification à faire pour obtenir ce que tu veux, remplace la dernière boucle if/endif par ceci
if ( etat == 4 ) set GameHour to ( GameHour + 1 ) set etat to 0 set timer to 0 enablePlayerControls player->modCurrentHealth 60 player->modCurrentFatigue 60 player->modCurrentMagicka 60 stopScript GZ-FL_FadeScript endif
Remplace les valeurs par ce que tu préfère (y compris pour les timers, qui déterminent en combien de temps le fondu s'opère, à noter qu'ils doivent être égaux aux valeur passées pour fadein et fadeout). Et n'oublie pas de renommer le script !
Ce script est aussi lancé depuis un dialogue (startscript dans result), c'est pourquoi il est important de garder le "if menumode" si le dialogue qui lance le script se termine par un goodbye.
Pour la résurrection de créature, c'est assez simple.
Begin Autoresurrection float timer if ( OnDeath == 1 ) set timer to ( timer + GetSecondsPassed ) endif if ( timer >= 10 ) set timer to 0 cast "hearth heal" player resurrect endif End Autoresurrection
Il vaut mieux mettre un tel script sur une créature qui n'a pas d'inventaire, en effet l'inventaire est recréé avec la résurrection. Dix secondes laissent assez de temps à un joueur pour piller le cadavre. (Il me semble que ça remet aussi toutes les variables à 0, ce qui fait que le "set timer to 0" n'est pas nécessaire, mais je préfère le mettre à titre de précaution.) Il est donc assez génant de tuer un seigneur drémora, de récupérer un katana daedrique, de le voir ressusciter, de le retuer, et de retrouver un autre katana daedrique récupérable.
Afin de faire plus joli, on peut chercher un sort qui ai un effet sympathique et le mettre. Un sort de soin, par exemple. C'est pourquoi j'ai mis « cast "hearth heal" player ». A noter que ça ne jettera pas le sort sur le joueur, puisque ce sort affecte celui qui le lance, mais les créatures, PNJs, et simples objets refusent de jeter un sort si leur cible n'est pas Player...
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.
#3
Posté 17 septembre 2005 - 19:03
merci beaucoup Angora.
vraiment merci merci merci merci
#4
Posté 17 septembre 2005 - 19:15
Par exemple:
Etant un noob en scripting, ce script ne marchera sûrement pas. Mais si quelqu'un pouvai le corriger svp....
EDIT: Ultra grillé
Modifié par muta, 17 septembre 2005 - 19:19.
#5
Posté 18 septembre 2005 - 01:53
Citation
short mort
float timer
if ( OnDeath == 1 )
set mort to 1
endif
if ( mort == 1 )
set timer to ( timer + GetSecondsPassed )
if ( timer >= 10 )
set timer to 0
cast "hearth heal" player
resurrect
set mort to 0
endif
endif
End Autoresurrection
Citation
Modifié par Nerwal, 18 septembre 2005 - 01:58.
#6
Posté 05 octobre 2005 - 21:42
#7
Posté 29 octobre 2005 - 16:24
Comment fait-on pour mettre deux condition à la fois ?
par exemple je voulais que quand j'active mon misc item, il faut que j'ai un certain objet sur moi pour qu'il s'active.
moi j'ai mis :
if ( OnActivate == 1 )
if ( GetItemcout "L'IDdemonobjet" 1 ) ; je ne suis plus très sur de cette commande
mais voila il ne se passe rien.
#8
Posté 30 octobre 2005 - 12:42
Le problème c'est que là tu demandes à ton misc item s'il a un certain nombre d'objet C'est au playr qu'il faut le demander :
if ( OnActivate == 1 ) if ( player->GetItemCount, "ID_objet" >= nbminiAavoir ) activate else messagebox "il faut nbminiAavoir ID_objet pour se servir de cet item ! endif endif
Voici une page qui te sera très utile :
http://www.uesp.net/...scommands.shtml
Bonne continuation
Modifié par Squallynou, 30 octobre 2005 - 12:46.
#9
Posté 31 octobre 2005 - 14:28
Je travaille sur mon plugin et j'ai un pb de script enfin je pense, en faite je voudrait vendre des objets dans le musée à Lonsanglot et donc le script que j'ai fait c'est le suivant pour l'objet en question:
Begin MuseumNarsil
if ("Torasa Aram".Narsil < 1)
Disable
endif
if ("Torasa Aram".Narsil == 1)
Enable
endif
End MuseumNarsil
Et quand je lance le plugin pour le tester il m'affiche un message d'error d'expression, voilà jcommence à être perdue là je n'arrive pas à résoudre le pb... une petite aide ??
Un autre pb qui peut être lié j'ai prit exemple avec un objet du musée et dans les dialogues il utilise une fonction Local / iceblade / ... et je n'arrive pas à avoir la même chose avec mon objet ...
Enfin voilà si quelqu'un pouvait m'apprendre mes ignorances....
merci
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)