• 09 Juin 2024, 20:53:41


Auteur Sujet: [Problème] Faire spawn le joueur à l'endroit ou il meurt  (Lu 1380 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne denko

  • *
  • Tueur
  • Messages: 56
    • Voir le profil
Voilà, bonjour, j'ai voulu faire un système très spécial.

Le joueur se fait tuer ou meurt, il reste à l'endroit ou il est mort avec une animation le mettant parterre sans qu'il puisse bouger + Envoi d'une alerte aux flics et ambulanciers comme quoi ils doivent venir le sauver dans les 3 minutes qui suivent.

Voici donc le problème:

- Le joueur ne spawn pas là ou il est mort mais à l'hosto

- Les flics reçoivent le message mais l'annonce aux ambulanciers est envoyée à tous les joueurs du serveur (Apparement Medics ne décrit pas les ambulanciers)

SendRadioMessage(Medics, COLOR_RED, string);
- Ensuite une fois les 3 minutes passées si le joueur a été sauvé, au lieu d'envoyer un message au joueur concerné, ça l'envoie à tous les joueurs (playerid étant chaque joueur connecté mais pourtant playerid définit le joueur qui meurt)

format(string, sizeof(string), "* [Miraculé] Vous avez été sauvé par l'équipe du Département d'Urgence de Californie. *");
Quelqu'un pourrait m'éclaircir ?

Hors ligne Axemyboss

  • *
  • Tueur
  • Messages: 77
    • Voir le profil
Re : [Problème] Faire spawn le joueur à l'endroit ou il meurt
« Réponse #1 le: 27 Mai 2010, 18:12:17 »
Tu pourrais me donner ton system que je voiyent ?

Hors ligne denko

  • *
  • Tueur
  • Messages: 56
    • Voir le profil
Re : [Problème] Faire spawn le joueur à l'endroit ou il meurt
« Réponse #2 le: 27 Mai 2010, 18:27:39 »
Bien sûr. ^^

Voilà le début du OnPlayerDeath concernant le joueur qui meurt et les médecins.

public OnPlayerDeath(playerid, killerid, reason)
{
new Float: px, Float: py, Float: pz;
    GetPlayerPos(playerid, px, py, pz);
if(IsPlayerNPC(playerid)){ return 1; }
SetPlayerPos(playerid, px, py, pz)
TogglePlayerControllable(playerid, 0);
GameTextForPlayer(playerid, "~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~w~ Vous etes blesse !", 4000, 3);
JustDied[playerid] = 1;
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
new name[MAX_PLAYER_NAME];
new string[256];
DropWeapons(playerid);
//new dmessage[128];
//new deathreason[20];
new playercash;
new victimteam;
new killerteam;
if(sorti[playerid] == 1)
{
SendClientMessage(playerid,COLOR_RED,"Vous avez perdu l'argent.");
sorti[playerid] = 2;
}
victimteam = gTeam[playerid];
SetPlayerHealth(playerid, 10);
OnDuty[playerid] = 0;
MedicBill[playerid] = 0;
killerteam = gTeam[killerid];
PlayerInfo[playerid][pInvWeapon] = 0;
  PlayerInfo[playerid][pInvAmmo] = 0;
  SetPlayerColor(playerid,COLOR_RED);
format(string, sizeof(string), "**** [Alerte] À toutes les unités: Une personne est blessée ! ****");
SendRadioMessage(1, COLOR_BLUE, string);
SendRadioMessage(2, COLOR_DBLUE, string);
SendRadioMessage(Medics, COLOR_RED, string);
PlayerInfo[playerid][pSauver] = 1;
SetTimer("SoinMed", 180000, 0);
if(ProxDetectorS(20, Medics, playerid))
{
SetPlayerHealth(playerid, 20);
   format(string, sizeof(string), "**** [Alerte] À toutes les unités: La victime est prête à être embarquée ! ****");
   SendRadioMessage(Medics, COLOR_RED, string);
   
  if(IsPlayerInAnyVehicle(Medics))
   {
      if(IsAnAmbulance(Medics))
      {
       new newcar = GetPlayerVehicleID(Medics);
       ClearAnimations(playerid);
       TogglePlayerControllable(playerid, 1);
       PutPlayerInVehicle(playerid,newcar,3);
       SetPlayerHealth(playerid, 100);
       PlayerInfo[playerid][pSauver] = 0;
       return 1;
}
}
}

Et la suite

forward SoinMed(playerid);

public SoinMed(playerid)
{
    new Float:px,Float:py,Float:pz;
    new string[256];
    //GetPlayerName(?, giveplayerid, sizeof(giveplayerid));
if(SetPlayerHealth(playerid, 100) || PlayerInfo[playerid][pSauver] != 1)
{
format(string, sizeof(string), "* [Miraculé] Vous avez été sauvé par l'équipe du Département d'Urgence de Californie. *");
SendClientMessage(playerid, COLOR_GREEN, string);
   return 1;
}
else
{
format(string, sizeof(string), "* [CATASTROPHE] Pas de chance ! Les médecins ont laissé votre santé se déteriorer. *");
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "* [COMA] Vous êtes transporté immédiatement aux Urgences ! *");
SendClientMessage(playerid, COLOR_RED, string);
gPlayerSpawned[playerid] = 0;
MedicBill[playerid] = 1;
format(string, sizeof(string), "* [SOINS] Vous avez survécu. Vous sortirez bientôt de l'hopitâl. *");
SendClientMessage(playerid, COLOR_GREEN, string);
PlayerInfo[playerid][pLocal] = 255;
GetPlayerPos(playerid, px, py, pz);
}
return 0;
}
« Modifié: 27 Mai 2010, 18:32:18 par denko »

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : [Problème] Faire spawn le joueur à l'endroit ou il meurt
« Réponse #3 le: 02 Juin 2010, 10:46:34 »
montre nous ton "medics" voir ce qu'il definis,

remplace ton code de spawn pour de l'hopital par celui qui est dans ton onplayerdeath. Si tu ne sais pas le faire, envoi la partie du setplayerspawn de ton gm qui est un larp, qui correspond au spawn dans l'hosto.

Dans ton timer, je suppose que tu veux recuperer la vie du joueur

donc ceci est totalement faut

if(SetPlayerHealth(playerid, 100) || PlayerInfo[playerid][pSauver] != 1)
Utilise plus tot

new Float:health;
    GetPlayerHealth(playerid, health);
if(health == 100 || PlayerInfo[playerid][pSauver] != 1)
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne denko

  • *
  • Tueur
  • Messages: 56
    • Voir le profil
Re : [Problème] Faire spawn le joueur à l'endroit ou il meurt
« Réponse #4 le: 06 Juin 2010, 17:02:03 »
Merci je vais voir et te tenir au courant.

J'ai décidé de refaire le script.

if(strcmp(cmd, "/ko", true) == 0 ||strcmp(cmd, "/died", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:health;
        GetPlayerHealth(playerid, health);
        new amblan[MAX_PLAYER_NAME];
        new jmedic = PlayerInfo[amblan][pJob];
        jmedic = 11;
new fmedic = PlayerInfo[amblan][pMember];
fmedic = 4;

        GetPlayerName(amblan, sendername, sizeof(sendername));
        if(Health < 50)
        {
TogglePlayerControllable(playerid, 0);
GameTextForPlayer(playerid, "~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~w~ Vous etes blesse !", 4000, 3);
JustDied[playerid] = 1;
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
OnDuty[playerid] = 0;
MedicBill[playerid] = 0;
killerteam = gTeam[killerid];
PlayerInfo[playerid][pInvWeapon] = 0;
PlayerInfo[playerid][pInvAmmo] = 0;
SetPlayerColor(playerid,COLOR_RED);
format(string, sizeof(string), "**** [Alerte] À toutes les unités: Une personne est blessée ! ****");
SendRadioMessage(1, COLOR_BLUE, string);
SendRadioMessage(2, COLOR_DBLUE, string);
SendRadioMessage(4, COLOR_RED, string);
PlayerInfo[playerid][pSauver] = 1;
SetTimer("SoinMed", 180000, 0);

if(ProxDetectorS(20, amblan, playerid))
{
SetPlayerHealth(playerid, 20);
    format(string, sizeof(string), "**** [Alerte] À toutes les unités: La victime est prête à être embarquée ! ****");
    SendRadioMessage(4, COLOR_RED, string);

if(IsPlayerInAnyVehicle(Medics))
    {
        if(IsAnAmbulance(Medics))
        {
        new newcar = GetPlayerVehicleID(Medics);
        ClearAnimations(playerid);
        TogglePlayerControllable(playerid, 1);
        PutPlayerInVehicle(playerid,newcar,3);
        SetPlayerHealth(playerid, 102);
        PlayerInfo[playerid][pSauver] = 0;
        return 1;
}
}
}
    GetPlayerHealth(playerid, health);
if(health == 100 || PlayerInfo[playerid][pSauver] != 1)
{
format(string, sizeof(string), "* [Miraculé] Vous avez été sauvé par l'équipe du Département d'Urgence de Californie. *");
SendClientMessage(playerid, COLOR_GREEN, string);
}
else
{
format(string, sizeof(string), "* [CATASTROPHE] Pas de chance ! Les médecins ont laissé votre santé se déteriorer. *");
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "* [COMA] Vous êtes transporté immédiatement aux Urgences ! *");
SendClientMessage(playerid, COLOR_RED, string);
gPlayerSpawned[playerid] = 0;
MedicBill[playerid] = 1;
format(string, sizeof(string), "* [SOINS] Vous avez survécu. Vous sortirez bientôt de l'hopitâl. *");
SendClientMessage(playerid, COLOR_GREEN, string);
PlayerInfo[playerid][pLocal] = 255;
GetPlayerPos(playerid, px, py, pz);
}
format(string, sizeof(string), "**** [Alerte] À toutes les unités: Le patient s'en est sorti vivant ! ****");
  SendRadioMessage(4, COLOR_RED, string);
return 1;
        }
        else
        {
            SendClientMessage(playerid, COLOR_GRAD1, "Votre vie doit être inférieure à 50 !");
        }
    }
    return 1;
}
« Modifié: 06 Juin 2010, 17:08:03 par denko »