[EDS]GoDylan

Demande d'aide

13 messages dans ce sujet

Bonjour à vous je viens me tourner vers vous car j'aimerais faire un système qui est que lorsqu'un joueur est tué par un policier, s'il a une étoile de recherche ou plus alors il va en prison cependant ça ne marche pas . Voici mon code :

 

Dans OnPlayerDeath :

if(GetPlayerWantedLevel(playerid) >= 1)
{
    if(gTeam[killerid] == TEAM_POLICIER)
    {
        PlayerIsInJail[playerid] = 1;
    }
}

 

Dans OnPlayerSpawn :

if(PlayerIsInJail[playerid] == 1)
{
    SetPlayerPos(playerid, 197.39999389648, 173.39999389648, 1003);
    SetPlayerFacingAngle(playerid, 0);
    SetPlayerInterior(playerid, 3);
    SetCameraBehindPlayer(playerid);
    return 1;
}

 

Merci d'avance pour votre aide !

 

Cordialement,

GoDylan.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

vérifies-tu bien que killerid est bien connecté ?

Ça me parait improbable que OnPlayerSpawn soit appelée plus rapidement que OnPlayerDeath, donc tente un forcing de spawn avec SpawnPlayer dans OnPlayerDeath.

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 10 minutes, C_far a dit :

Bonjour,

vérifies-tu bien que killerid est bien connecté ?

Ça me parait improbable que OnPlayerSpawn soit appelée plus rapidement que OnPlayerDeath, donc tente un forcing de spawn avec SpawnPlayer dans OnPlayerDeath.

 

Merci de ta rapidité j'ai donc fait sa :

 

    if(IsPlayerConnected(killerid))
    {
        if(GetPlayerWantedLevel(playerid) >= 1)
        {
            if(gTeam[killerid] == TEAM_POLICIER)
            {
                PlayerIsInJail[playerid] = 1;
                SpawnPlayer(playerid);
            }
        }
    }

 

J'attends donc une personne pour tester et je te retiens au courant merci encore.

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour tester ton code, tu peux simplement faire une commande qui exécute ceci :

gTeam[playerid] = TEAM_POLICIER;
SetPlayerWantedLevel(playerid, 1);
OnPlayerDeath(playerid, playerid, 0);

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 4 minutes, C_far a dit :

Pour tester ton code, tu peux simplement faire une commande qui exécute ceci :


gTeam[playerid] = TEAM_POLICIER;
SetPlayerWantedLevel(playerid, 1);
OnPlayerDeath(playerid, playerid, 0);

 

 

Sa marche belle et bien, vraiment un grand merci !

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, C_far a dit :

Pour tester ton code, tu peux simplement faire une commande qui exécute ceci :


gTeam[playerid] = TEAM_POLICIER;
SetPlayerWantedLevel(playerid, 1);
OnPlayerDeath(playerid, playerid, 0);

 

Bah bizarrement quand j'ai tester avec quelqu'un sa na pas marcher du coup.

 

J'ai changer un peu le code mais il me paraît toujours bon :

 

OnPlayerDeath :



 

    if(IsPlayerConnected(killerid))
    {
        if(GetPlayerWantedLevel(playerid) >= 1)
        {
            if(gTeam[killerid] == TEAM_POLICIER)
            {
                PlayerInfo[playerid][pIsInPJail] = 1;
                SpawnPlayer(playerid);
            }
        }
    }

 

OnPlayerSpawn :

 

    if(PlayerInfo[playerid][pIsInPJail] == 1)
    {
        PutPlayerInRandomCells(playerid);
        return 1;
    }

 

Et ma fonction :

 

forward PutPlayerInRandomCells(playerid);
public PutPlayerInRandomCells(playerid)
{
    new RandomCells = random(1);
    switch(RandomCells)
    {
        case 0:
        {
            SetPlayerPos(playerid, 197.400390625, 173.400390625, 1003);
            SetPlayerInterior(playerid, 3);
            SetPlayerFacingAngle(playerid, 0);
            SetCameraBehindPlayer(playerid);
            return 1;
        }
        case 1:
        {
             SetPlayerPos(playerid, 193.19999694824, 173.30000305176, 1003);
            SetPlayerInterior(playerid, 3);
            SetPlayerFacingAngle(playerid, 0);
            SetCameraBehindPlayer(playerid);
            return 1;
        }
    }
    return 1;
}

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello,

 

Déjà dans :

 if(IsPlayerConnected(killerid))
    {
        if(GetPlayerWantedLevel(playerid) >= 1)
        {
            if(gTeam[killerid] == TEAM_POLICIER)
            {
                PlayerInfo[playerid][pIsInPJail] = 1;
                SpawnPlayer(playerid);
            }
        }
    } 

tu peux retirer SpawnPlayer(playerid); ->  tu forces un spawn qui va être effectuer automatiquement quelques secondes plus tard à cause de la mort.

À la place tu peux mettre print("debug 1"); pour tcheck dans la console si le code a bien été appelé quand le joueur est mort.

 

Dans onplayerspawn, tu as du code qui précède ta fonction ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 22 heures, Vichenz0 a dit :

Hello,

 

Déjà dans :


 if(IsPlayerConnected(killerid))
    {
        if(GetPlayerWantedLevel(playerid) >= 1)
        {
            if(gTeam[killerid] == TEAM_POLICIER)
            {
                PlayerInfo[playerid][pIsInPJail] = 1;
                SpawnPlayer(playerid);
            }
        }
    } 

tu peux retirer SpawnPlayer(playerid); ->  tu forces un spawn qui va être effectuer automatiquement quelques secondes plus tard à cause de la mort.

À la place tu peux mettre print("debug 1"); pour tcheck dans la console si le code a bien été appelé quand le joueur est mort.

 

Dans onplayerspawn, tu as du code qui précède ta fonction ?

 D'accord merci bien, c'est résolu.

 

Mais j'ai désormais un autre problème décidément, je fait actuellement un système de faction et lorsque que je fait ma commande /makeleader sa ne change rien dans le fichier du compte :

 

CMD:makeleader(playerid, params[])


{
    if(PlayerInfo[playerid][pAdminLevel] == 5)
    {
        new targetid, facid;
        if(sscanf(params, "ui", targetid, facid)) return SendClientMessage(playerid, COLOR_ERROR, "[UTILISATION] /makeleader [id] [factionid]");
        if(targetid != INVALID_PLAYER_ID)
        {
            if(PlayerInfo[targetid][pTeam] == 0)
            {
                if(facid == 1)
                {
                    PlayerInfo[targetid][pTeam] = 1;
                    PlayerInfo[targetid][pTeamRank] = 3;
                    PlayerInfo[targetid][pTeamLeader] = 1;
                    SendClientMessage(targetid, COLOR_YELLOW, "[INFORMATION] Félicitations ! Vous avez été promu leader de la team Vagos par un administrateur.");
                }
                   if(facid == 2)
                {
                    PlayerInfo[targetid][pTeam] = 2;
                    PlayerInfo[targetid][pTeamRank] = 3;
                    PlayerInfo[targetid][pTeamLeader] = 2;
                    SendClientMessage(targetid, COLOR_YELLOW, "[INFORMATION] Félicitations ! Vous avez été promu leader de la team Ballas par un administrateur.");
                }
                if(facid == 3)
                {
                    PlayerInfo[targetid][pTeam] = 3;
                    PlayerInfo[targetid][pTeamRank] = 3;
                    PlayerInfo[targetid][pTeamLeader] = 3;
                    SendClientMessage(targetid, COLOR_YELLOW, "[INFORMATION] Félicitations ! Vous avez été promu leader de la team Grove Street Families par un administrateur.");
                }
                if(facid > 3)
                {
                    SendClientMessage(playerid, COLOR_ERROR, "[ERREUR] Cette faction n'existe pas.");
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_ERROR, "[ERREUR] Ce joueur n'est pas connecté ou n'existe pas.");
            }
        }
        else
        {
            SendClientMessage(playerid , COLOR_ERROR, "[ERREUR] Ce joueur fait déjà partie d'une team.");
        }
    }
    else
    {
        SendClientMessage(playerid, COLOR_ERROR, "[ERREUR] Cette commande est réservé aux administrateurs de niveaux 5.");
    }
    return 1;
}

 

Encore merci pour votre aide.

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 50 minutes, [EDS]GoDylan a dit :

 D'accord merci bien, c'est résolu.

 

Mais j'ai désormais un autre problème décidément, je fait actuellement un système de faction et lorsque que je fait ma commande /makeleader sa ne change rien dans le fichier du compte :

 

 

  Masquer le contenu

CMD:makeleader(playerid, params[])


{
    if(PlayerInfo[playerid][pAdminLevel] == 5)
    {
        new targetid, facid;
        if(sscanf(params, "ui", targetid, facid)) return SendClientMessage(playerid, COLOR_ERROR, "[UTILISATION] /makeleader [id] [factionid]");
        if(targetid != INVALID_PLAYER_ID)
        {
            if(PlayerInfo[targetid][pTeam] == 0)
            {
                if(facid == 1)
                {
                    PlayerInfo[targetid][pTeam] = 1;
                    PlayerInfo[targetid][pTeamRank] = 3;
                    PlayerInfo[targetid][pTeamLeader] = 1;
                    SendClientMessage(targetid, COLOR_YELLOW, "[INFORMATION] Félicitations ! Vous avez été promu leader de la team Vagos par un administrateur.");
                }
                   if(facid == 2)
                {
                    PlayerInfo[targetid][pTeam] = 2;
                    PlayerInfo[targetid][pTeamRank] = 3;
                    PlayerInfo[targetid][pTeamLeader] = 2;
                    SendClientMessage(targetid, COLOR_YELLOW, "[INFORMATION] Félicitations ! Vous avez été promu leader de la team Ballas par un administrateur.");
                }
                if(facid == 3)
                {
                    PlayerInfo[targetid][pTeam] = 3;
                    PlayerInfo[targetid][pTeamRank] = 3;
                    PlayerInfo[targetid][pTeamLeader] = 3;
                    SendClientMessage(targetid, COLOR_YELLOW, "[INFORMATION] Félicitations ! Vous avez été promu leader de la team Grove Street Families par un administrateur.");
                }
                if(facid > 3)
                {
                    SendClientMessage(playerid, COLOR_ERROR, "[ERREUR] Cette faction n'existe pas.");
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_ERROR, "[ERREUR] Ce joueur n'est pas connecté ou n'existe pas.");
            }
        }
        else
        {
            SendClientMessage(playerid , COLOR_ERROR, "[ERREUR] Ce joueur fait déjà partie d'une team.");
        }
    }
    else
    {
        SendClientMessage(playerid, COLOR_ERROR, "[ERREUR] Cette commande est réservé aux administrateurs de niveaux 5.");
    }
    return 1;
}

 

 

Encore merci pour votre aide.

Salut faut save ..

Partager ce message


Lien à poster
Partager sur d’autres sites
à l’instant, Marcus62 a dit :

Salut faut save ..

Bah sa doit se save quand je déco mais pourtant non.

 



    if(gPlayerLogged[playerid] == 1)
    {
        dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
        dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
        dini_IntSet(file, "Team", PlayerInfo[playerid][pTeam]);
        dini_IntSet(file, "TeamRank", PlayerInfo[playerid][pTeamRank]);
        dini_IntSet(file, "TeamLeader", PlayerInfo[playerid][pTeamLeader]);
        dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][pAdminLevel]);
    }

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

pourquoi chercher compliquer ainsi .. 

stock savejoueur(playerid)

{

    if(gPlayerLogged[playerid] == 1)
    {
        dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
        dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
        dini_IntSet(file, "Team", PlayerInfo[playerid][pTeam]);
        dini_IntSet(file, "TeamRank", PlayerInfo[playerid][pTeamRank]);
        dini_IntSet(file, "TeamLeader", PlayerInfo[playerid][pTeamLeader]);
        dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][pAdminLevel]);
    } 

}

comme sa ensuite dans ton code

CMD:makeleader(playerid, params[])


{
    if(PlayerInfo[playerid][pAdminLevel] == 5)
    {
        new targetid, facid;
        if(sscanf(params, "ui", targetid, facid)) return SendClientMessage(playerid, COLOR_ERROR, "[UTILISATION] /makeleader [id] [factionid]");
        if(targetid != INVALID_PLAYER_ID)
        {
            if(PlayerInfo[targetid][pTeam] == 0)
            {
                if(facid == 1)
                {
                    PlayerInfo[targetid][pTeam] = 1;
                    PlayerInfo[targetid][pTeamRank] = 3;
                    PlayerInfo[targetid][pTeamLeader] = 1;
                    SendClientMessage(targetid, COLOR_YELLOW, "[INFORMATION] Félicitations ! Vous avez été promu leader de la team Vagos par un administrateur.");
                   savejoueur(targetid); // <<<<<<<<<<<<<<<

                  }
                   if(facid == 2)
                {
                    PlayerInfo[targetid][pTeam] = 2;
                    PlayerInfo[targetid][pTeamRank] = 3;
                    PlayerInfo[targetid][pTeamLeader] = 2;
                    SendClientMessage(targetid, COLOR_YELLOW, "[INFORMATION] Félicitations ! Vous avez été promu leader de la team Ballas par un administrateur.");
                }
                if(facid == 3)
                {
                    PlayerInfo[targetid][pTeam] = 3;
                    PlayerInfo[targetid][pTeamRank] = 3;
                    PlayerInfo[targetid][pTeamLeader] = 3;
                    SendClientMessage(targetid, COLOR_YELLOW, "[INFORMATION] Félicitations ! Vous avez été promu leader de la team Grove Street Families par un administrateur.");
                }
                if(facid > 3)
                {
                    SendClientMessage(playerid, COLOR_ERROR, "[ERREUR] Cette faction n'existe pas.");
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_ERROR, "[ERREUR] Ce joueur n'est pas connecté ou n'existe pas.");
            }
        }
        else
        {
            SendClientMessage(playerid , COLOR_ERROR, "[ERREUR] Ce joueur fait déjà partie d'une team.");
        }
    }
    else
    {
        SendClientMessage(playerid, COLOR_ERROR, "[ERREUR] Cette commande est réservé aux administrateurs de niveaux 5.");
    }
    return 1;
}

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Grand merci à toi le système marche désormais à la perfection !

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant