GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Toobias le 20 Octobre 2010, 01:02:19

Titre: Probléme pour le /mourir
Posté par: Toobias le 20 Octobre 2010, 01:02:19
Salut a tous ,

J'ai un serveur Role Play , Et j'aimerai bien faire la commande /mourrir et /service infirmier
Et qui affiche le Nom de qui la tuer et avec quel armes ,

Une personne ma aider et ma donner ce code :

forward SystemMort(playerid);

public SystemMort(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{

new Float:Health;
GetPlayerHealth(playerid,Health);
if(Health >= 10)
{
return 1;
}
if(Health >= 0)
{
new string[256];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
SetPlayerHealth(playerid, 10);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid, 0xFFFFFFAA, "Vous êtes un train de mourrir,[ Tapez (\"/service Medecin\"), si personne ne vient vous pouvez mourrir tapez (\"/mourrir\")]");
format(string,sizeof(string), "* %s s'écroule sur le sol et a besoin d'aide, il souffre...",name);
ProxDetector(30.0, playerid, string, 0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2 DAAA);
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
return 1;
}
}
}
return 1;
}

if(strcmp("/mourrir", cmdtext, true)==0) {
new Float:Health;
GetPlayerHealth(playerid,Health);
new name[MAX_PLAYER_NAME];//variable pseudo
GetPlayerName(playerid,name,sizeof(name));//on retient le pseudo
if(Health>= 1 && Health <= 19){// Si le pourcentage de santé est égal ou inférieur à 5%.
SetPlayerHealth(playerid,0); // On tue le joueur.
format(string,sizeof(string), "* %s à succomber à c'est bléssure...",name);
ProxDetector(30.0, playerid, string, 0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2 DAAA);
}
}



SetTimer("SystemMort", 20,1);


J'ai beau le mettre dans mon GameMode , J'ai remplacer les codes couleurs par COLOR_PURPLE  , Mais rien ne s'affiche lorsqu'on tue une personne
Titre: Re : Probléme pour le /mourrir
Posté par: scott1 le 20 Octobre 2010, 01:41:20
if(Health >= 10)
{
return 1;
}

Tu met ça, mais comme le mec vient de mourri, il respawn, avec plus de vie...

De plus tes condition ne sont pas bonne

je suppose que tu veux un " si le joueur a entre 1 et 10 de vie

if(Health > 0 && Health <= 10))
Titre: Re : Probléme pour le /mourrir
Posté par: Toobias le 20 Octobre 2010, 03:47:27
if(Health >= 10)
{
return 1;
}

Pour ce code , j'avais oublier de dire que j'avais modifier ce code pour l'autre , je teste sa . Je vous tien au courant


Un grand merci
Titre: Re : Probléme pour le /mourrir
Posté par: Hip-hop le 20 Octobre 2010, 13:33:19
c'est mourir et non mourrir
Titre: Re : Probléme pour le /mourir
Posté par: Syg le 20 Octobre 2010, 23:42:16
Et oui Hip-Hop, mourir on ne le fera qu'une seule fois alors que se nourrir, c'est tous les jours :).
(Moyen mnémotechnique pour se rappeler que mourir ne prend qu'un seul r et nourrir 2).

Sinon, il ne faut pas utiliser SetTimer mais SetTimerEx pour pouvoir passer le playerid en paramètre. Ou alors, il faut faire une boucle for dans ta fonction SystemMort.

++
Syg