• 05 Juin 2026, 10:55:07


Auteur Sujet: [ Aide ] Après la mort..  (Lu 4117 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Tornade-L™

  • *
  • Tueur
  • Messages: 90
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #15 le: 19 Août 2010, 14:55:46 »
Ba faire mourir le joueur 2 fois n'est pas important. Mais comment pourrais-je faire pour sauvegardé la position ? "GetPlayerPos" ?
Tornade-L

Création de San Fierro Sensation Rôleplay 35%

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : Re : [ Aide ] Après la mort..
« Réponse #16 le: 19 Août 2010, 15:03:52 »
Ba faire mourir le joueur 2 fois n'est pas important. Mais comment pourrais-je faire pour sauvegardé la position ? "GetPlayerPos" ?

au pire la 1ere fois le joueur n'est pas vraiment mort suffit de creer une variable quand il meurt la 1ere fois qui, si elle vaux 1 ne pas faire payer le joueur a l'hosto par exemple. Et quand le joueur meurt la 2eme fois on la remet a 0 et la on le fait payer.
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne Tornade-L™

  • *
  • Tueur
  • Messages: 90
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #17 le: 19 Août 2010, 15:11:14 »
Sinon, il n'y aurais pas un moyen simple de faire un système de mort ? Car je me perd beaucoup..
Tornade-L

Création de San Fierro Sensation Rôleplay 35%

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #18 le: 19 Août 2010, 16:18:58 »
Bon, j'suis de bonne humeur:

En haut, dans ton script:
Forward vie(playerid);
OnGameModeInit:
SetTimerEx("vie", 250, true, "i", playerid);
En bas dans ton script:
public vie(playerid)
{
if(gPlayerLogged[playerid] == 1)
{
new Float:health;
GetPlayerHealth(playerid,health);
if (health < 10.0) // Si le joueur a en dessous de 10 de vie
{
                   // Ici tu met ton anim
  // Ici tu met un autre timer, pour les 20 secondes avec l'anim
                  TogglePlayerControllable(playerid, 1); // On freeze le joueur, comme ça, si on lui tire dessus, il ne perdra plus de vie.
   }
         }
}

Et donc, tu crée ton deuxième TIMER (ou tu le fait dans lui même) pour 20 secondes, avec la perte de vie du joueur, le unfreeze, et ta variable pour qu'il va à l'hopital !
J'suis pas sur que ce code fonctionne quand un mec ce suicide (tombe de plusieurs mètre de haut et crève) mais normalement, contre les tirs, ca devrez fonctionner.
J'viens de le faire, donc je ne confirme pas le fonctionnement, sur un fofo c'est assez dur ^^


@Soravani heahe sa va pas, car dans OnGameModeInit() la variable playerid n'existe pas ^^,  donc un simple SetTimer suffit, dans la verif faudra faire une boucle. Je me suis tompé moi aussi(j'avais oublié qu'il faut mettre sa dans OnGameModeInit)



Je sais pas trop mais je sais que lui est bien, normalement simple a comprendre.

Alors voila les explications:
1) on lance un timer qui verifie toutes les 250 millisecondes si le joueur a - de 10 de vie et + de 0 de vie.
2) on créé une variable et un timer, quand le joueur meurt pour la 1ere fois d'un seul coups, on verifie avec un timer si le joueur est mort direct, on met cette variable a 1, quand le joueur meurt la 2eme fois ont la met a 0 se qui permet de faire payer le joueur pour un serveur rp par exemple.

Tien je tes scripté sa, essaye de comprendre :

EN HAUT DE TON SCRIPT :
Code: (pawn) [Sélectionner]
new timerverif1; // on crée la variable qui stocke le timer 1
new timerverif2; // on crée la variable qui stocke le timer 2
new Float:VieJoueur[MAX_PLAYERS]; // On crée la variable qui stocke la vie du joueur
new MortDunCoups[MAX_PLAYERS] = 0; // On crée la variable
new Float:Posx[MAX_PLAYERS],Float:Posy[MAX_PLAYERS],Float:Posz[MAX_PLAYERS],Int[MAX_PLAYERS],Virt[MAX_PLAYERS]; // On crée la variable qui stoke la pos, int et vw

EN BAS DE TON SCRIPT:
Code: (pawn) [Sélectionner]
forward Verification2();
public Verification2()
{
  for(new i=0; i<MAX_PLAYERS; i++)
  {
  GetPlayerHealth(i,VieJoueur[i]); // On Sauvegarde sa vie dans la variable
if(VieJoueur[i] >= 11) // On verifie si le joueur a 11 ou plus de vie
{
KillTimer(timerverif1); // On stop le timer
timerverif2 = SetTimerEx("Verification3", 250, true, "i", i); // On lance le timer
}
}
return 1;

}
forward Verification3(playerid);
public Verification3(playerid)
{
  GetPlayerHealth(playerid,VieJoueur[playerid]); // On Sauvegarde sa vie dans la variable
if(VieJoueur[playerid] <= 0) // On verifie si le joueur a 0 ou - de vie
{
        KillTimer(timerverif2); // On stop le timer
    GetPlayerPos(playerid, Posx[playerid], Posy[playerid], Posz[playerid]); // On Sauvegarde dans les variables la pos x, y et z
    Int[playerid] = GetPlayerInterior(playerid); // On Sauvegarde l'interior du joueur dans la variable
    Virt[playerid] = GetPlayerVirtualWorld(playerid); // On sauvegarde le virtual world du joueur dans la variable
    MortDunCoups[playerid] = 1; // le joueur est mort d'un coups donc la variable = 1
timerverif1 = SetTimerEx("Verification2", 250, true, "i", playerid); // On lance le timer
}
return 1;

}
forward Verification1();
public Verification1()
{
new Float:health;
  for(new i=0; i<MAX_PLAYERS; i++) // On fait une boucle pour tous les joueurs
  {
GetPlayerHealth(i,health); // On Sauvegarde sa vie dans la variable
if(health <= 10.0 && health > 0.99) // On verifie si le joueur a - de 10 ou 10 de vie et plus de 0.99
{
    // ICI TU MET TON ANIMATION
SetTimerEx("StopAnim", 20000, false, "i", i); // On lance le timer
}
}

return 1;
}

DANS ONGAMEMODEINIT() :
Code: (pawn) [Sélectionner]
SetTimer("Verification1", 250, true); // On lance le timer
timerverif1 = SetTimer("Verification2", 250, true); // On lance le timer

DANS ONPLAYERDEATH(playerid, killerid, reason) :
Code: (pawn) [Sélectionner]
if(MortDunCoups[playerid] == 1) // On verifie si la variable = 1
{
    SetPlayerPos(playerid, Posx[playerid], Posy[playerid], Posz[playerid]); // On remet le joueur a la position ou il était
    SetPlayerInterior(playerid, Int[playerid]); // On remet le joueur dans l'interior ou il était
    SetPlayerVirtualWorld(playerid, Virt[playerid]); // On remet le joueur dans le monde virtuel ou il était
}
else
{
    //ICI TON SCRIPT POUR FAIRE PAYER L'HOSTO  ETC ...
}

Voila, essaye de comprendre, j'ai tout detaillé
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #19 le: 19 Août 2010, 16:47:35 »
Brian Turner ton code, n'est pas bon ( celui du SetTimerEx )


Met plutot le SetTimerEx dans OnPlayerConnect()

Ou bien créer un timer global qui fait une boucle sur tout les joueurs ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #20 le: 19 Août 2010, 23:04:29 »
Ok Merci pour l'info, sinon le principe est bon? sa devrai marché si on corrige l'erreur?
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : [ Aide ] Après la mort..
« Réponse #21 le: 19 Août 2010, 23:11:32 »
Bah oué tu as qu'a ésséyé
PS : Ton système de biz marche ?

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #22 le: 19 Août 2010, 23:19:35 »
oui je vien de rentrer chez moi, sa marche niquel, maintenant je me lance dans la creation de ses commandes
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne Tornade-L™

  • *
  • Tueur
  • Messages: 90
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #23 le: 20 Août 2010, 21:11:26 »
Merci, j'aurais encore une question à vous posez.. Est ce qu'il faut que j'enlève ce code ci-dessous ?

if(MedicBill[playerid] == 1 && PlayerInfo[playerid][pJailed] == 0 && PlayerPaintballing[playerid] == 0)
{
    if(FirstSpawn[playerid] != 1)
    {
       /* new string[256];
    new cut = deathcost; //PlayerInfo[playerid][pLevel]*deathcost;
SafeGivePlayerMoney(playerid, -cut);
format(string, sizeof(string), "Docteur : Ne vous inquieter pas, il ira mieux bientot, il a besoin de repos.", cut);
SendClientMessage(playerid, TEAM_CYAN_COLOR, string);
MedicBill[playerid] = 0;
MedicTime[playerid] = 0;
NeedMedicTime[playerid] = 0;*/
PlayerInfo[playerid][pDeaths] += 1;
SetPlayerHealth(playerid, 25.0);
    SetPlayerInterior(playerid, 3);
    PlayerInfo[playerid][pInt] = 3;
        rand = random(sizeof(gMedicSpawns));
SetPlayerPos(playerid, gMedicSpawns[rand][0], gMedicSpawns[rand][1], gMedicSpawns[rand][2]); // Warp the player
SetPlayerFacingAngle(playerid, gMedicSpawns[rand][3]);
        TogglePlayerControllable(playerid, 0);
        GameTextForPlayer(playerid, "~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~w~ Les infirmiers s'occupent de vous ...", 15000, 3);
        SendClientMessage(playerid, COLOR_YELLOW, "Tu es en train de te faire soigner par les docteurs, Vous devez attendre 15 seconde pour réssusiter.");
        JustDied[playerid] = 1;
        MedicTime[playerid] = 1;
        ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
                MedicTime[playerid] = 1;
      return 1;*
                }
        }
Tornade-L

Création de San Fierro Sensation Rôleplay 35%

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : Re : [ Aide ] Après la mort..
« Réponse #24 le: 20 Août 2010, 21:36:18 »
Merci, j'aurais encore une question à vous posez.. Est ce qu'il faut que j'enlève ce code ci-dessous ?

if(MedicBill[playerid] == 1 && PlayerInfo[playerid][pJailed] == 0 && PlayerPaintballing[playerid] == 0)
{
    if(FirstSpawn[playerid] != 1)
    {
       /* new string[256];
    new cut = deathcost; //PlayerInfo[playerid][pLevel]*deathcost;
SafeGivePlayerMoney(playerid, -cut);
format(string, sizeof(string), "Docteur : Ne vous inquieter pas, il ira mieux bientot, il a besoin de repos.", cut);
SendClientMessage(playerid, TEAM_CYAN_COLOR, string);
MedicBill[playerid] = 0;
MedicTime[playerid] = 0;
NeedMedicTime[playerid] = 0;*/
PlayerInfo[playerid][pDeaths] += 1;
SetPlayerHealth(playerid, 25.0);
    SetPlayerInterior(playerid, 3);
    PlayerInfo[playerid][pInt] = 3;
        rand = random(sizeof(gMedicSpawns));
SetPlayerPos(playerid, gMedicSpawns[rand][0], gMedicSpawns[rand][1], gMedicSpawns[rand][2]); // Warp the player
SetPlayerFacingAngle(playerid, gMedicSpawns[rand][3]);
        TogglePlayerControllable(playerid, 0);
        GameTextForPlayer(playerid, "~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~w~ Les infirmiers s'occupent de vous ...", 15000, 3);
        SendClientMessage(playerid, COLOR_YELLOW, "Tu es en train de te faire soigner par les docteurs, Vous devez attendre 15 seconde pour réssusiter.");
        JustDied[playerid] = 1;
        MedicTime[playerid] = 1;
        ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
                MedicTime[playerid] = 1;
      return 1;*
                }
        }
Il a l'air de servire totalement a rien car il est commenté. Donc normalement oui puisque la comme tu nous le montre il sert a rien
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne Tornade-L™

  • *
  • Tueur
  • Messages: 90
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #25 le: 20 Août 2010, 21:52:23 »
Oui. Il sert à "Faire soigné".. Merci bien.

EDIT: Le code que tu m'a donné Brian Turner, ne marche pas. La position ne se sauvegarde pas. Le joueur respawn à son QG ou au lieu de spawn.
« Modifié: 20 Août 2010, 22:40:29 par Tornade-L™ »
Tornade-L

Création de San Fierro Sensation Rôleplay 35%

Hors ligne Leonidas300

  • *
  • Bandit
  • Pawno-Amateur, a déjà crée plusieurs système
  • Messages: 301
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #26 le: 21 Août 2010, 12:12:48 »
moi aussi tornade sa ne marche pas sont code




Zombi PAWN,Créateur de *** ****** ********* !

Cherche hébérgement SA:MP! [PM Moi]
Merci à vous

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #27 le: 21 Août 2010, 16:56:57 »
regardé ce qu'a dit sasuke78200, sa devrai vous aidé
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne Leonidas300

  • *
  • Bandit
  • Pawno-Amateur, a déjà crée plusieurs système
  • Messages: 301
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #28 le: 21 Août 2010, 18:10:58 »
quelle Settimer on doit mettre dans Onplayerconnect
et c'est le code ou il y a le settimerex qu'on doit mettre dan sonplayerconnect ?
c'est le public




Zombi PAWN,Créateur de *** ****** ********* !

Cherche hébérgement SA:MP! [PM Moi]
Merci à vous

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : [ Aide ] Après la mort..
« Réponse #29 le: 21 Août 2010, 20:39:33 »
je crois que c'est eux :
   SetTimer("Verification1", 250, true); // On lance le timer
   timerverif1 = SetTimer("Verification2", 250, true); // On lance le timer

Transformez les en SetTimerEx.
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste