Aller au contenu


Regeneration


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

#1 twilight

twilight

Posté 24 juin 2009 - 10:40

jcomprend rien à comment qu'on fait pour régénérer tout les points de vie en utilisant un script!!! :'(

#2 Infomase

Infomase

Posté 24 juin 2009 - 11:20

Bonjour,
Tout d'abord, si tu veux bien, "bonjour" et "s'il vous plaît" sont des mots assez particuliers.
Ensuite, si j'ai bien compris, tu veux régénérer totalement les points de vie du PJ ?
Essaye ce script :
Begin REGENERATE

Short MaVie

Set MaVie to GetHealth
Player->ModCurrentHealth, MaVie

StopScript REGENERATE

End
La fonction ModCurrentHealth, MaVie permet d'augmenter ton niveau de points de vie du nombre de points de vie total, sans pouvoir le dépasser.
Ainsi tu seras soigné totalement sans dépasser ton seuil total de PV.
Attention ! Ne pas confondre ModCurrentHealth qui modifie le niveau de points de vie avec ModHealth qui modifie les points de vie totaux !
Exemple :
Begin ScriptBidon

If ( OnActivate )
 Player->ModHealth, 100000
Endif

End
Ce script placera la vie du joueur à (100000 + VieCourante)/(100000 + VieMaximum).
<?php echo="Codeur en carton-pâte" ?>

#3 twilight

twilight

Posté 24 juin 2009 - 18:31

J'ai essayé de le mettre dans le résult d'un dialogue mais crash retour au bureau quand je sélectionne le choice allant vers cette réponse.. :s

#4 Infomase

Infomase

Posté 24 juin 2009 - 18:36

Essaye de procéder de cette façon :
- Crée une variable globale 'VariableGlobale'
- Dans le result du dialogue, mets ceci :
Set VariableGlobale to 1
Goodbye
- Modifie le script de cette façon :
Begin REGENERATE

Short MaVie

If ( VariableGlobale == 1 )
	 Set MaVie to GetHealth
	 Player->ModCurrentHealth, MaVie
	 Set VariableGlobale to 2
Elseif ( VariableGlobale == 0 )
	 Return
Endif

StopScript REGENERATE

End

Mais avant toute manipulation, inverse les positions du goodbye et du startscript REGENERATE dans le result du dialogue. S'il y a toujours crash, essaye la solution du dessus.
<?php echo="Codeur en carton-pâte" ?>

#5 twilight

twilight

Posté 24 juin 2009 - 18:46

Mais il n'y a pas moyen de l'intégrer entierement dans le result du dialogue? sinan ben jvais essayer ça,merci :paladin:

#6 Infomase

Infomase

Posté 24 juin 2009 - 18:48

Ah, oui, faut mettre REGENERATE en startscript :paladin:
<?php echo="Codeur en carton-pâte" ?>

#7 elendell

elendell

    Mécano Dell'Arte


Posté 24 juin 2009 - 22:30

Bonjour,

Voir le messagetwilight, le 24.06.2009 à 19:30, dit :

J'ai essayé de le mettre dans le résult d'un dialogue mais crash retour au bureau quand je sélectionne le choice allant vers cette réponse.. :s
On peut écrire un script directement dans le résultat d'un dialogue mais il faut tenir compte de certaines particularités. Celui de Infomase utilise une variable locale et on ne peut pas à ma connaissance déclarer une variable locale dans le résultat. Il faudrait que celle-ci soit globale ou locale mais déclarée dans un script attaché au PNJ qui parle.

Voir le messagetwilight, le 24.06.2009 à 19:45, dit :

Mais il n'y a pas moyen de l'intégrer entierement dans le result du dialogue? sinan ben jvais essayer ça,merci :huhu:
Tu peux dans le résultat d'un dialogue mettre un "startscript" qui déclenche un script global (comme l'a dit Infomase) mais pour ce que tu veux faire, ce n'est pas nécessaire.

Il suffit que tu mettes dans le résultat du dialogue cette unique ligne : Player->ModCurrentHealth 100000
Peu importe le niveau de vie du PJ car comme l'a écrit Infomase, "ModCurrentHealth" ne donnera pas plus de vie au PJ que son niveau maximal du moment. Evidemment, il ne faut pas que le PJ ait une vie maximale plus grande que 100000...  :paladin:


@ Infomase :

Il y a une erreur dans ton script :
Begin REGENERATE

Short MaVie

Set MaVie to GetHealth
Player->ModCurrentHealth, MaVie

StopScript REGENERATE

End

Si le script est lancé par un startscript placé dans le résultat d'un dialogue, c'est un script "ciblé" et "GetHealth" donnerait à "MaVie" non pas le niveau de vie du PJ mais celui du PNJ (qui est la cible/le lanceur).

Soit tu dois marquer : "Set MaVie to player->GetHealth", soit tu dois lancer le script avec un "Player->StartScript REGENERATE". mais dans ce dernier cas, tu n'aurais pas besoin de marquer "player->" devant "ModCurrentHealth".

#8 twilight

twilight

Posté 24 juin 2009 - 22:52

Voir le messageelendell, le 24.06.2009 à 23:29, dit :

Il suffit que tu mettes dans le résultat du dialogue cette unique ligne : Player->ModCurrentHealth 100000

Moi qui désirait une réponse simple.. :paladin:
Mais ya pas un moyen plus "propre"? parceque bon,le gens qui aura plus de vie que ça il sera un peu baisé dans l'histoire... :huhu:

#9 Infomase

Infomase

Posté 24 juin 2009 - 23:38

Tu peux mettre normalement une valeur inférieure ou égale à celle d'un long dans le nombre de points de vie, si je ne me trompe, à savoir ...

*court vérifier*

Eh bien oui, c'était bien 2'147'483'647.
Dans le doute, fais une commande Player->ModCurrentHealth, 2147483646
Avant que tu atteignes ce niveau, faudra du temps :paladin:
<?php echo="Codeur en carton-pâte" ?>

#10 twilight

twilight

Posté 25 juin 2009 - 00:02

Mdr ^^  jme contenterai du 100000 xd

Bon bah ça,ça marche :paladin: c'est déjà ça xd  merci à vous deux :huhu:




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

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