GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Tomop le 22 Janvier 2011, 21:49:26

Titre: probleme dans la declaration
Posté par: Tomop le 22 Janvier 2011, 21:49:26
(J'ai essayez de corrigez mes fautes)
Bonjour ,
J'ai encore 1 problème j'ai su comment créer une commande , les gamemode et filterscript et include se sont quoi
et ses quoi les callsback et comment créer des véhicule objets etc ..
Mais je sais rien en public
Voila mon problème :
 [ code=pawn]forward PlayerHealth
public health54()
{
   if PlayerHealth(playerid,>=15)
   {
       SendClientMessage(i, COLOR_YELLOW, "Vous étés blessez et évanouie si vous voulez appelez un médecin (tapez /service médecin ");
       SendClientMessage(i, COLOR_YELLOW, "Ou cliquez sur /mourir ");
       TogglePlayerControllable(playerid,0)
       SetPlayerCameraPos(giveplayerid, 2000,-2000,2000);
        SetPlayerCameraLookAt(giveplayerid, 2000,-2000,2000);
           }
   return 1;
}
[ /code]
J'ai créer la commande /mourir avec votre aide Merci ! .
mais maitenant je sais pas comment déclarer Si la vie du joueur et moins que 15 faire : ......
j'ai mis if playerhealth mais sa marche pas veuillez m'aidez et merci d'avance
Titre: Re : probleme dans la declaration
Posté par: cristab le 22 Janvier 2011, 22:38:50
if(GetPlayerHealth(playerid) < 15)
Titre: Re : probleme dans la declaration
Posté par: Myk3L le 23 Janvier 2011, 10:52:36
Je crois que comme c'est un float, par conséquent un nombre à virgule, il faut que tu mettes < 15.000 mais je ne suis pas sûr :P

Pour ton quote, pourquoi mettre :

Citer
forward PlayerHealth

Sachant que si tu veuille absolument mettre un forward, il faut le déclarer comme ceci :

Citer
forward PlayerHealth();

Et je pense qu'une fonction pour connaître la vie d'un joueur prend en paramètre playerid pour savoir de quel joueur il s'agit.

Ta fonction (public) doit avoir le même nom que sa déclaration (forward) ce qui reviendrais à (avec playerid en paramètre) :

Citer
forward PlayerHealth(playerid);

public PlayerHealth(playerid)
{
   if(GetPlayerHealth(playerid) <= 15)
    {
       SendClientMessage(playerid, COLOR_YELLOW, "Vous étés blessez et évanouie si vous voulez appelez un médecin (tapez /service médecin ");
       SendClientMessage(playerid, COLOR_YELLOW, "Ou cliquez sur /mourir ");
       TogglePlayerControllable(playerid,0)
       SetPlayerCameraPos(playerid, 2000,-2000,2000);
       SetPlayerCameraLookAt(playerid, 2000,-2000,2000);
    }
    return 1;
}

Rappel (que tu es censé connaître) : < : strictement inférieur à; > strictement supérieur à; <= inférieur ou égal à; >= supérieur ou égal à.

J'ai vu que tu avais mis en lieu et place de playerid un i et i est très souvent utilisé pour parcourir une boucle for qur tu as certainement dû apprendre dans le tutoriel de Gilux.

Ce qui reviendrais à supprimer le paramètre playerid et de mettre un boucle for qui parcourt tous les joueurs :

Citer
forward PlayerHealth();

public PlayerHealth(playerid)
{
   for(new i = 0; i < MAX_PLAYERS; i++)
    {
      if(GetPlayerHealth(i) <= 15)
       {
           SendClientMessage(i, COLOR_YELLOW, "Vous étés blessez et évanouie si vous voulez appelez un médecin (tapez /service médecin ");
           SendClientMessage(i, COLOR_YELLOW, "Ou cliquez sur /mourir ");
           TogglePlayerControllable(i,0)
           SetPlayerCameraPos(i, 2000,-2000,2000);
           SetPlayerCameraLookAt(i, 2000,-2000,2000);
       }
       return 1;
    }
}

Mais je ne vois pas pourquoi tu dirais à chaque joueur de regarder à telle position s'il est mort...

Bref, prends le temps de bien lire ma réponse (j'ai mis du temps à la rédiger correctement) ;)

EDIT : J'ai mis en gras des parties du code mais la balise code ne le prend pas en compte, donc j'ai mis des quotes ;)
Titre: Re : probleme dans la declaration
Posté par: Tomop le 23 Janvier 2011, 19:14:57
 :wall  :-\  :-X  :-[ et pourquoi je fait tous sa si le joueur est mort ... T'a Raison Que je suis idiot  !!
Mais Je veux créer un System De chose de voiture quand il a un accident en nous dit  tu est blesse et après il et diminue 50 % de ta vie mais comment faire   :lmao








                                 Sandreas:RolePlay
[/font]
Voiture System : 100 %
Map: 50 %
CMD Admin : 50 %
CMD General : 60 %
Faction : 70 %
JOB: 100 %