GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Romeo_Urbano le 03 Juillet 2010, 14:51:53

Titre: Un petit probléme
Posté par: Romeo_Urbano le 03 Juillet 2010, 14:51:53
Bonjour j'ai ajouter ca dans mon GM mais il marche pas

forward Health();
public Health()
{
    for(new i; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(gPlayerSpawned[i] == 1)
            {
            new Float:health;
           GetPlayerHealth(i, health);
           if(health <= 10)
           {
        if(IsPlayerInAnyVehicle(i))
    {
    RemovePlayerFromVehicle(i);
                        ApplyAnimation(i, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
                        GameTextForPlayer(i, "~r~Vous êtes blessé, vous avez besoin d'un médecin !", 5000, 3);
                    }
               ApplyAnimation(i, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
                        GameTextForPlayer(i, "~r~Vous êtes blessé, vous avez besoin d'un médecin !", 5000, 3);
            }
            }
        }
    }
    return 1;
}

D:\SAMP\AC\gamemodes\Oo.pwn(6104) : warning 219: local variable "Health" shadows a variable at a preceding level
D:\SAMP\AC\gamemodes\Oo.pwn(22153) : warning 219: local variable "Health" shadows a variable at a preceding level

Je vais IG et je l'essaye mais aucune animation....
Titre: Re : Un petit probléme
Posté par: chneubeul le 03 Juillet 2010, 15:29:20
Salut :) Renomme ta variable health :) Il existe déjà une variable appelez pareil et donc le serveur se trompe
Titre: Re : Un petit probléme
Posté par: Romeo_Urbano le 03 Juillet 2010, 15:36:42
Oui maintenant j'ai plus de Warning mais quand j'arrive a 10 dans le health l'anim s'applique pas :(
Titre: Re : Un petit probléme
Posté par: chneubeul le 03 Juillet 2010, 15:41:11
Tu as remarqué la fonction IsPlayerAnyVehicle ?
Titre: Re : Un petit probléme
Posté par: Romeo_Urbano le 03 Juillet 2010, 15:42:17
oui s'est pour si le joueur est dans la voiture il sort dedans et il a l'anim pourquoi?

Double post
Svp personne n'a une réponse pour m'aider :)
Titre: Re : Un petit probléme
Posté par: chneubeul le 03 Juillet 2010, 17:51:52
Tu as tester en dehors de la voiture ?
Titre: Re : Un petit probléme
Posté par: Romeo_Urbano le 03 Juillet 2010, 17:59:22
oui moi j'ai tester que en dehors mais pas dans la voiture mais j'ai pas d'anim :(
Titre: Re : Un petit probléme
Posté par: chneubeul le 03 Juillet 2010, 18:03:28
Ben normal ^^ Ton script marche que si le mec est dans la voiture regarde.. x'P

C'est pour sa que j'ai dit
'' Tu as remarqué la fonction IsPlayerAnyVehicle ?  ''

Met un else sa devrait aller
Titre: Re : Un petit probléme
Posté par: Romeo_Urbano le 04 Juillet 2010, 14:14:06
Voilà j'ai rendu le code comme ca mais toujours il marche pas ni en voiture ni à pieds

forward Vie();
public Vie()
{
    for(new i; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(gPlayerSpawned[i] == 1)
            {
            new Float:health;
            GetPlayerHealth(i, health);
            if(health <= 10)
            {
        if(IsPlayerInAnyVehicle(i))
    {
    RemovePlayerFromVehicle(i);
                        ApplyAnimation(i, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
                        TogglePlayerControllable(i, 0);
                        GameTextForPlayer(i, "~r~Vous êtes blessé, vous avez besoin d'un médecin !", 5000, 3);
                        SendClientMessage(i, COLOR_GRAD1, "Vous êtes blessé, faites /mourrir ou /appeler 103");
                       
                    }
                    else
    {
  ApplyAnimation(i, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
  TogglePlayerControllable(i, 0);
                    GameTextForPlayer(i, "~r~Vous êtes blessé, vous avez besoin d'un médecin !", 5000, 3);
                    SendClientMessage(i, COLOR_GRAD1, "Vous êtes blessé, faites /mourrir ou /appeler 103");
                   
    }
             }
            }
        }
    }
    return 1;
}
Titre: Re : Un petit probléme
Posté par: chneubeul le 04 Juillet 2010, 14:23:02
Fais voir ton timer et dis moi tu tu la mis ^^
Titre: Re : Un petit probléme
Posté par: Romeo_Urbano le 04 Juillet 2010, 14:30:15
Je te montre mon NameTimer et je te dis où j'ai poser le NameTimer ou le public Vie?
Titre: Re : Un petit probléme
Posté par: chneubeul le 04 Juillet 2010, 16:27:55
le timer ^^
Titre: Re : Un petit probléme
Posté par: Romeo_Urbano le 04 Juillet 2010, 17:37:50
Voilà mon NameTimer :

public NameTimer1()
{
for(new i = 0;i < MAX_PLAYERS;i++)
  {
if(IsPlayerConnected(i))
  {
  for(new q = 0;q < MAX_PLAYERS;q++)
  {
if(IsPlayerConnected(q))
{
  new Float:p1x;
new Float:p1y;
new Float:p1z;
new Float:p2x;
new Float:p2y;
new Float:p2z;
if(IsPlayerConnected(i) && IsPlayerConnected(q))
{
GetPlayerPos(i,p1x,p1y,p1z);
    GetPlayerPos(q,p2x,p2y,p2z);
if(GetPointDistanceToPointExMorph(p1x,p1y,p1z,p2x,p2y,p2z) < pdistance)
{
if(PlayerInfo[q][pMaskuse] != 1)
    {
ShowPlayerNameTagForPlayer(i,q,1);
}
    }
else
{
ShowPlayerNameTagForPlayer(i,q,0);
}
                    }
                }
            }
        }
}
}
Titre: Re : Un petit probléme
Posté par: chneubeul le 04 Juillet 2010, 18:03:43
Et c'quoi le rapport avec le ta fonction vie ?
Titre: Re : Un petit probléme
Posté par: Romeo_Urbano le 04 Juillet 2010, 18:48:27
Bon voilà j'ai rien ajouter dans le GM rien que le public vie et ce que j'ai voulu s'est que quand j'ai le health 10 je tombe dans la terre et je suis freeze s'est tous ce que je veux
Titre: Re : Un petit probléme
Posté par: dydjyz le 04 Juillet 2010, 19:44:14
Il faut mettre un timer sinon sa marchera pas.
Titre: Re : Un petit probléme
Posté par: chneubeul le 04 Juillet 2010, 20:19:17
Oui mais il n'est pas appeler ^^

Rajoute cette ligne dans ton OnPlayerConnect

SetTimerEx("Vie", 1000,1,"dd", playerid);

1000 correspond à 1000ms soit 1 seconde

Sam
Titre: Re : Un petit probléme
Posté par: Romeo_Urbano le 05 Juillet 2010, 02:09:27
Merci ca marche mais un truc ca n'arrête pas de me refaire l'anim et redire le texte et remefreeze moi je veux qu'il me fais ca

RemovePlayerFromVehicle(i);
                        ApplyAnimation(i, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
                        TogglePlayerControllable(i, 0);
                        GameTextForPlayer(i, "~r~Vous êtes blessé, vous avez besoin d'un médecin !", 5000, 3);
                        SendClientMessage(i, COLOR_GRAD1, "Vous êtes blessé, faites /mourrir ou /appeler 103");

qu'une seul fois, svp aidez moi :)
Titre: Re : Un petit probléme
Posté par: Mr_C30 le 05 Juillet 2010, 03:35:50
désolé de ne pas te répondre mais a parrament ta fonction est tirée d'un rp et tu y laisse le choix d'appeler un médecin ou de mourir ?

moi perso si cela m'arriverais irl se serai un vrai dilemme cette question   :(
Titre: Re : Un petit probléme
Posté par: chneubeul le 05 Juillet 2010, 11:37:58
Quand tu es bléssés, IRL tu sauve ta peau, tu as un téléphone tu t'en sert. A moins que la personne est inconsciente et à besoin d'une RCP ou de ventilation.

Pour revenir au problème. As tu preload les anims ?
Titre: Re : Un petit probléme
Posté par: Romeo_Urbano le 05 Juillet 2010, 12:38:11
Chneubeul j'ai pas compris la phrase "As tu preload les anims ?" ^^

Sinon moi je t déjà dis que j'ai ajouter le code et quand j'ai le health 10 le message que j'ai mis en SendClientMessage ne s'arrête pas de ce répéter.

Et moi je veux que le message et l'anim et aussi le TogglePlayerControllable ce fais une seul fois et pas de répétition car ca flood le chat,

voilà :)