• 22 Avril 2025, 20:01:32


Auteur Sujet: Bug Systeme de maison  (Lu 1697 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Esmaelo_Louiscius

  • *
  • Tueur
  • Messages: 75
    • Voir le profil
Bug Systeme de maison
« le: 13 Juin 2012, 20:48:29 »
Bonjour j'ai creer un systeme de maison pour mon gamemode, mais j'ai un probleme.
Lorsque je fait la commande /entrer dans le jeu il ne se passe rien.
Tenez les Pastebin : http://pastebin.com/wbACpTtf

Merci d'avance. Mayou

Hors ligne CraxxHack

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Bug Systeme de maison
« Réponse #1 le: 13 Juin 2012, 21:04:32 »
Pourquoi :

if(InfosJoueur[playerid][DansMaison] == -1)
Pourquoi pas :

if(InfosJoueur[playerid][DansMaison] == 0)
Ou encore :

if(InfosJoueur[playerid][DansMaison] == 1)
Le code se trouve dans la commande pour entré dans la maison.

Hors ligne Esmaelo_Louiscius

  • *
  • Tueur
  • Messages: 75
    • Voir le profil
Re : Bug Systeme de maison
« Réponse #2 le: 13 Juin 2012, 21:24:28 »
Bas parce que l'id de la maison commence par l'id 0

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Bug Systeme de maison
« Réponse #3 le: 13 Juin 2012, 22:20:32 »
Je pense que ta condition est simplement fausse:

if (InfosJoueur[playerid][DansMaison] == -1) {
}

Essaye de voir quelle est sa valeur.
D'ailleurs, la condition peut être exécuter une seule fois, et ainsi, éviter des boucles inutiles !


CMD:entrer(playerid, params[]) {
    if (IsPlayerConnected(playerid)) {
        if (InfosJoueur[playerid][DansMaison] == -1) {
            for (new maisonid = 0; maisonid < sizeof(InfosMaison); maisonid++) {
                if (IsPlayerInRangeOfPoint(playerid, 5, InfosMaison[maisonid][MEntrerX], InfosMaison[maisonid][MEntrerY], InfosMaison[maisonid][MEntrerZ])) {
                    SetPlayerInterior(playerid, InfosMaison[maisonid][MInt]);
                    SetPlayerVirtualWorld(playerid, InfosMaison[maisonid][MWorld]);
                    SetPlayerPos(playerid, InfosMaison[maisonid][MSortieX], InfosMaison[maisonid][MSortieY], InfosMaison[maisonid][MSortieZ]);
                    InfosJoueur[playerid][DansMaison] = maisonid;
                  }
            }
        }
        else {
            printf("DansMaison : %i", InfosJoueur[playerid][DansMaison]);
        }
    }
    
    return 1;
}

Hors ligne Esmaelo_Louiscius

  • *
  • Tueur
  • Messages: 75
    • Voir le profil
Re : Bug Systeme de maison
« Réponse #4 le: 14 Juin 2012, 10:30:28 »
j'ai creer 6 maison et chaque fois j'essaye de rentrez j'arrive pas dans le log ya ecrit DansMaison : 1 sa change pas d'id sa reste 1

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Bug Systeme de maison
« Réponse #5 le: 14 Juin 2012, 18:43:26 »
La variable est simplement mal initialisé.
Met ça dans
OnGameModeInit() par exemple.

for (new i = 0; i < MAX_PLAYERS; i++) {
    InfosJoueur[i][DansMaison] = -1;
}

Hors ligne Esmaelo_Louiscius

  • *
  • Tueur
  • Messages: 75
    • Voir le profil
Re : Bug Systeme de maison
« Réponse #6 le: 14 Juin 2012, 19:01:09 »
Sa reussit a se teleportez pour qu'un maison sur 3.
Je rentre dans la maison id 3 dans le log sa met id 49 et quand je sort je sort a la maison id 1

Hors ligne CraxxHack

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Bug Systeme de maison
« Réponse #7 le: 14 Juin 2012, 19:02:30 »
Regarde les systèmes déjà existant. Tu dois te tromper dans les conditions ou boucles. Je ne sais pas.

Hors ligne Esmaelo_Louiscius

  • *
  • Tueur
  • Messages: 75
    • Voir le profil
Re : Bug Systeme de maison
« Réponse #8 le: 14 Juin 2012, 19:28:48 »
J'ai qu'un systeme de vehicule sismilaire a celui là mais il marche correctement sauf ceux systeme de maison je rentre dans n'importe quel maison et je sort de la maison id 3.

Double post
Solution trouvez
« Modifié: 14 Juin 2012, 19:56:57 par Esmaelo_Louiscius »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Bug Systeme de maison
« Réponse #9 le: 14 Juin 2012, 20:16:40 »
Quelle est cette solution ?

Hors ligne Esmaelo_Louiscius

  • *
  • Tueur
  • Messages: 75
    • Voir le profil
Re : Bug Systeme de maison
« Réponse #10 le: 14 Juin 2012, 20:26:34 »
Celle la et mai je vais cherchez pour pouvoir enlever le /entrer id et mettre /entrer

CMD:entrer(playerid, params[])
{
    if(IsPlayerConnected(playerid))
{
new maison;
if(sscanf(params, "i", maison)) return SendClientMessage(playerid, -1, "Usage: /entrer <id>");

if(IsPlayerInRangeOfPoint(playerid, 5, InfosMaison[maison][MEntrerX], InfosMaison[maison][MEntrerY], InfosMaison[maison][MEntrerZ]))
{
  SetPlayerInterior(playerid, InfosMaison[maison][MInt]);
  SetPlayerVirtualWorld(playerid, InfosMaison[maison][MWorld]);
SetPlayerPos(playerid, InfosMaison[maison][MSortieX], InfosMaison[maison][MSortieY], InfosMaison[maison][MSortieZ]);
  InfosJoueur[playerid][DansMaison] = maison;
}
    }
    return 1;
}

CMD:sortir(playerid, params[])
{
    if(IsPlayerConnected(playerid))
{
new maison = InfosJoueur[playerid][DansMaison];

if(IsPlayerInRangeOfPoint(playerid, 5, InfosMaison[maison][MSortieX], InfosMaison[maison][MSortieY], InfosMaison[maison][MSortieZ]))
{
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPlayerPos(playerid,InfosMaison[maison][MEntrerX],InfosMaison[maison][MEntrerY],InfosMaison[maison][MEntrerZ]);
InfosJoueur[playerid][DansMaison] = 0;
    }
//}
}
return 1;
}