GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ShaDowxx™ le 03 Novembre 2011, 18:17:27

Titre: Rajouter des points de vie.
Posté par: ShaDowxx™ le 03 Novembre 2011, 18:17:27
Bonjour!

Je cherche à savoir comment je pourrais faire un système qui rajoute 5 points de vie sur la barre de vie. Je ne sais pas comment m'y prendre, pouvez-vous m'aider?

Cordialement.
Titre: Re : Rajouter des points de vie.
Posté par: Ssk le 03 Novembre 2011, 18:21:10
GivePlayerHealth et SetPlayerHealth non ?
Titre: Re : Rajouter des points de vie.
Posté par: spiirou le 03 Novembre 2011, 18:57:45
GivePlayerHealth n'existe pas il me semble ( je suis incertain ),

Mais tu fais une fonction GivePlayerHealth(playerid, Float:health) :


En esperant etre clair,
Spiirou
Titre: Re : Rajouter des points de vie.
Posté par: Ssk le 03 Novembre 2011, 19:43:53
Je me suis trompé, j'ai voulu taper GetPlayerHealth lol
Titre: Re : Rajouter des points de vie.
Posté par: Xartrick le 05 Novembre 2011, 12:38:03
Citer
Important Note: Valid player health values in SA-MP are between 0 and 100

En vue de cette note, je pense que ShaDowxx™ voudrait pousser cette limite à 105.
Cela est-il exact ?
Titre: Re : Rajouter des points de vie.
Posté par: spiirou le 05 Novembre 2011, 13:02:18
Je ne sais pas, mais il ne revient pas sur le topic.
J'ai repondu a son precedent topic, je n'ai pas de nouvelles nonplus..
Titre: Re : Rajouter des points de vie.
Posté par: rapido le 05 Novembre 2011, 13:26:55
D'ailleurs moi aussi j’aurai aimer savoir le faire lol mais comme le dit ShaDowxx je ne c'est pas comment m'y prendre ^^

Même spiirou avec ce que tu a proposer je voit pas trop par ou commencer ^^
Titre: Re : Rajouter des points de vie.
Posté par: Xartrick le 05 Novembre 2011, 14:23:58
Si c'est bien cela, j'ai une idée toute simple qui consiste à créer deux variables.
Une variable qui contient la vie du joueur (avec GetPlayerHealth) et une autre qui la vie supplémentaire (donc cinq dans ce cas-ci).
Le but est de toujours gardé la vie du joueur à 100 (dans la mesure du possible) et que la seconde variable remplisse à chaque fois la vie du joueur, quand la variable est à zéro, le joueur peut commencer à perdre de la vie.
Pour la solution visuel, je te propose de mettre un TextDraw par dessus d'une couleur différente qui montrera la vie supplémentaire qui restera.
Quand le joueur à 100 de vie et 5 de vie supplémentaire, ça donnera ceci ...


(http://i.imgur.com/Fx1KF.png)
Titre: Re : Re : Rajouter des points de vie.
Posté par: Winklevows le 12 Novembre 2011, 03:43:53
Si c'est bien cela, j'ai une idée toute simple qui consiste à créer deux variables.
Une variable qui contient la vie du joueur (avec GetPlayerHealth) et une autre qui la vie supplémentaire (donc cinq dans ce cas-ci).
Le but est de toujours gardé la vie du joueur à 100 (dans la mesure du possible) et que la seconde variable remplisse à chaque fois la vie du joueur, quand la variable est à zéro, le joueur peut commencer à perdre de la vie.
Pour la solution visuel, je te propose de mettre un TextDraw par dessus d'une couleur différente qui montrera la vie supplémentaire qui restera.
Quand le joueur à 100 de vie et 5 de vie supplémentaire, ça donnera ceci ...


(http://i.imgur.com/Fx1KF.png)
Attention, la note:
Citer
Important Note: Valid player health values in SA-MP are between 0 and 100
Signifie que la barre de santé va de 0 à 100 mais on peut attribuer 105 sans problème. Par exemple si on se met 200 hp, seulement 100 sera visible mais on met bien 2 fois plus de temps à arriver à 0.

Donc pas besoin de stocker la santé supplément dans une autre variable
Titre: Re : Rajouter des points de vie.
Posté par: Xartrick le 12 Novembre 2011, 05:48:22
C'était plus pour l'effet visuel qu'autre chose.
Titre: Re : Rajouter des points de vie.
Posté par: Winklevows le 12 Novembre 2011, 06:04:42
Oui j'ai bien compris mais ce que je voulais dire c'est qu'on avait juste besoin de vérifier avec un GetPlayerHealth si la santé était supérieur à 100 et donc afficher la barre extra de santé en fonction  :)
Titre: Re : Rajouter des points de vie.
Posté par: ShaDowxx™ le 12 Novembre 2011, 13:23:18
Bonjour,

Désolé mais j'avais eu des épreuves commune donc je n'ai pas pu répondre mais je ne veux pas pousser la barre de limite de vie. Mais GivePlayerHealth peut donner des points de vie sans faire redécendre la barre? Si vous voyez ce que je veux dire.

Cordialement.
Titre: Re : Rajouter des points de vie.
Posté par: Winklevows le 12 Novembre 2011, 14:32:37
Je crois qu'on est tous allé cherché trop loin, en faite tu veux juste rajouter 5 point de vie à un joueur c'est sa ?

Ben c'est simple, tu ajoutes +5 à la vie d'avant:
GetPlayerHealth pour récupérer la santé (que tu peux stocker dans une variable vieActuel par exemple)
SetPlayerHealth pour définir la santé du joueur (tu peux faire un calcul dedans comme par exemple vieActuel+5)
Titre: Re : Rajouter des points de vie.
Posté par: ShaDowxx™ le 12 Novembre 2011, 18:22:00
Voilà, c'est sa que je veut faire mais je ne trouve pas la fonction sur le wiki.
Titre: Re : Rajouter des points de vie.
Posté par: spiirou le 12 Novembre 2011, 18:55:47
C'est a toi de la faire la  fonction, et bizarement si tu regarde la 2e reponse qui est la mienne,
je t'explique comment faire
Titre: Re : Rajouter des points de vie.
Posté par: Xolokos le 13 Novembre 2011, 18:25:18
Pour résumer tu prend la vie du joueur et tu la stock dans une variable (float) et tu lui met sa vie + la vie que tu veut lui mettre ce qui reviens a faire une fonction comme ça  :

stock GivePlayerHealth(playerid, float:HP)
{
new Float:AHP;
GetPlayerHealth(playerid, AHP);
SetPlayerHealth(playerid, AHP+HP);
}

Tu la place ou tu veut dans le scripte (sauf en haut des includes) et tu pourras faire :

GivePlayerHealth(playerid, 5);

Rajout de 5 HP.

NB, Vue que c'est un float tu peut mettre 5.2214514 ça marcheras.