salut salut !!
voilà j'ai besoin d'un script assez facile à la base mais qui est ... difficile
j'explique :
si une globale ( on va la nommer Alpha ) est à 0, rien ne se passe, après un dialogue elle passe à 1.
Alpha == 1
dès lors, lorsqu'on place une série d'ingredients dans un coffre bien précis, Alpha passe à 2, et la personne qui a fait passer Alpha à 1 tout à l'heure change de dialogue puisque Alpha est à 2, et à le fin de ce nouveau dialogue Alpha passe à 3,
Alpha == 3
dès lors, on place une aute série d'ingrédient dans le même coffre, mais les ingrédients qu'on avait placé dedans auparavant ont disparus ! si la nouvelle série introduite dans le coffre est bonne, Alpha passe à 4, et le dialogue change à nouveau, et à la fin de ce nouveau dialogue, Alpha passe à 5, etc... etc ... etc...
donc voilà en fait il faudrait un script pour le coffre, celui-ci detectera si les bons ingredients sont dans le coffre:
si oui il change Alpha, et la série dans le coffre disparaît
si non le joueur perd 50% de sa santé, et la série du coffre dispararaît ...
ouaaaaa c'est dur en me relisant j'ai l'impression que c'est du chinois !!
voilà merci j'ai uniquement besoin du script du coffre pour le rete je sais comment faire,
voilà les references :
une série d'ingrédient: ing1 ; ing2 ; ing3
nouvelle série : 2ing1 ; 2ing2 ; 2ing3
etc ...
globale Alpha ( il faudrait me dire que respecter à sa création merci )
et voilà merci bonne lecture j'espère que ce n'est pas trop compliqué
merci bonne appétit
1
Demande De Scripts: Ingredient Dans Coffre = Action !
Débuté par
SiNdA
, 04 févr. 2006 - 12:53
2 réponses à ce sujet
#1
Posté 04 février 2006 - 12:53
#2
Posté 04 février 2006 - 17:11
begin _script_coffre if ( Alpha == 1 ) if ( GetItemCount, "ing1" != 1 ) return endif if ( GetItemCount, "ing2" != 1 ) return endif if ( GetItemCount, "ing3" != 1 ) return endif RemoveItem, "ing1", 1 RemoveItem, "ing2", 1 RemoveItem, "ing3", 1 Set Alpha to 2 endif if ( Alpha == 3 ) if ( GetItemCount, "2ing1" != 1 ) return endif if ( GetItemCount, "2ing2" != 1 ) return endif if ( GetItemCount, "2ing3" != 1 ) return endif RemoveItem, "2ing1", 1 RemoveItem, "2ing2", 1 RemoveItem, "2ing3", 1 Set Alpha to 4 endif end
Ce script permet de detecter qu'un bonne série est placé dans le coffre ( les quantité doivent etre respectée ), mais ne permet pas de detecter si celle si est mauvaise.
En effet, il est difficile ( voir impossible ) de detecter le contenu d'un coffre , car il faudrai tester tout les element existant du jeu ( et y'en a beaucoup )
Cependant :
Il est possible de verifier le contenu lorsque le joueur referme le coffre. Si celui ci ne contien pas les bon ingrediant, il se "vide" et blesse le PJ.
Pour faire disparaitre la totalité du contenu d'un coffre, il faut faire disparaitre le coffre et en placer un tout neuf ( voir script poubelle )
Il est possible de detecter quand le PJ est en train de regarder le contenu du coffre :
C'est le cas a partir du moment ou il a "activé" ce coffre, et tant que le jeu est en "menumod"
begin _script_coffre short CoffreOuvert short MauvaiseRecette if ( GetDisabled == 1 ); si le coffre a été disablé, on l'efface de la memoire SetDelete 1 return endif If ( OnActivate == 1 ) Activate Set CoffreOuvert to 1 endif if ( CoffreOuvert == 0 ); si le coffre n'est pas ouvert return endif if ( MenuMode == 1 ); si on est toujours en mod menu - le coffre est donc toujours ouvert return endif ; test le contenu du coffre en fonction de Alpha if ( Alpha == 1 ) if ( GetItemCount, "ing1" != 1 ) Set MauvaiseRecette to 1 endif if ( GetItemCount, "ing2" != 1 ) Set MauvaiseRecette to 1 endif if ( GetItemCount, "ing3" != 1 ) Set MauvaiseRecette to 1 endif if ( MauvaiseRecette == 1 ) player->modCurrentHealth, -10; j'ai mi 10 PV car j'avais la flemme de calculer 50%;) else Set Alpha to 2 endif PlaceAtMe, 1, 0, 0, "nouveau coffre" Disable Return endif if ( Alpha == 3 ) ................ endif end
Ce 2eme script ne detectera pas si tu as mis des mauvais ingredients dans le coffre ... mais il testera si les ingredients nécessaires sont dans le coffre lors de la fermeture de celui ci, et dans le cas contraire, fera bobo au PJ.
Dans tout les cas, lors de la fermeture du coffre, il sera remplacé par un nouveau coffre vide
Modules bêta sur True Morrowind en attendant d'être sur wiwiland... Deja des millions de téléchargements :)
#3
Posté 04 février 2006 - 17:47
J'ai aussi étudié un script mais avec les mêmes conclusions que Fandorn Delavie :
j'ai oté 20 pv en cas d'erreur le % c'est galère.
Par contre j'ai zappé le vidage du coffre en cas d'erreur (c'est encore plus galère). La solution la plus simple serait que dans les dialogues on demande au PJ de retirer les mauvais ingrédients s'il s'est trompé et de recommencer s'il le veut, sinon on peut aussi rajouter des messages box genre "vous avez fait une errreur, videz le coffre et recommencez."
Pour la globale je crois qu'il faut aller à Global, faire "new", puis la noter avec value 0 dans ce cas.
Edit : J'ai déplacé les lignes "MenuMode" car le "retourn" ne revient qu'au "if" précédent il me semble et pas au début du script.
j'ai oté 20 pv en cas d'erreur le % c'est galère.
Par contre j'ai zappé le vidage du coffre en cas d'erreur (c'est encore plus galère). La solution la plus simple serait que dans les dialogues on demande au PJ de retirer les mauvais ingrédients s'il s'est trompé et de recommencer s'il le veut, sinon on peut aussi rajouter des messages box genre "vous avez fait une errreur, videz le coffre et recommencez."
Begin mon_coffre Short activation if ( OnActivate == 1 ) activate set activation to 1 endif if ( MenuMode == 1 ) return endif if ( activation == 1 ) if ( Alpha == 1 ) if ( GetItemCount ing1 == 1 ) if ( GetItemCount ing2 == 1 ) if ( GetItemCount ing3 == 1 ) set Alpha to 2 RemoveItem ing1 1 RemoveItem ing2 1 RemoveItem ing3 1 else Playeur->ModCurrentHealth -20 endif endif endif set activation to 0 endif endif if ( activation == 1 ) if ( Alpha == 3 ) if ( GetItemCount 2ing1 == 1 ) if ( GetItemCount 2ing2 == 1 ) if ( GetItemCount 2ing3 == 1 ) set Alpha to 4 RemoveItem 2ing1 1 RemoveItem 2ing2 1 RemoveItem 2ing3 1 else Playeur->ModCurrentHealth -20 endif endif endif set activation to 0 endif endif End
Pour la globale je crois qu'il faut aller à Global, faire "new", puis la noter avec value 0 dans ce cas.
Edit : J'ai déplacé les lignes "MenuMode" car le "retourn" ne revient qu'au "if" précédent il me semble et pas au début du script.
Modifié par a3jv, 04 février 2006 - 17:56.
Les choses n'ont que l'importance ou la valeur qu'on leur donne.
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)