• 19 Avril 2025, 09:39:18


Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Garwan50

Pages: [1]
1
Scripting SA-MP [Pawn center] / Re : Problème d'écriture .ini
« le: 14 Août 2013, 03:33:17 »
Il fallait lancer le serveur en tant qu'admin.

Probleme reglé

2
Scripting SA-MP [Pawn center] / Re : Problème d'écriture .ini
« le: 13 Août 2013, 20:26:15 »
uppp

3
Scripting SA-MP [Pawn center] / Re : Problème d'écriture .ini
« le: 12 Août 2013, 23:24:08 »
personne ? ^^

4
Scripting SA-MP [Pawn center] / Re : Problème d'écriture .ini
« le: 12 Août 2013, 04:16:18 »
Ok je savais pas Infu.

Cependant en retirant SaveAccount, ca ne fonctionne toujours pas ^^

5
Si tu mets le niveau Admin à 0 après avoir écrit dans le fichier, narmol que ça fonctionne pas déjà. Pour le reste j'ai pas compris

Je sauvegarde et apres je le met à zero, sinon si quelqu'un se connecte et a le même ID, il sera admin.

Dans le code que tu nous montre, tu as deux systèmes de sauvegarde.

Donc, évidement, comme tu sauvegarde deux fois de deux façons différentes et entre ces deux sauvegarde, tu retire le rang administrateur du joueur, au final, le joueur est systématiquement un membre.

Donc, déjà, sauvegardé deux fois, c'est inutile, et de deux manières différentes, encore plus !


Oui j'ai retiré le SaveAccount, mais il a déjà tendance à mieux fonctionner que lui, dans la mesure ou le SaveAccount écrit au moins les "variables" dans le .ini, mais rien d'autre, alors que le systeme Y_INI crée juste le pseudo.ini et s'arrête là.

6
Scripting SA-MP [Pawn center] / Re : Problème d'écriture .ini
« le: 11 Août 2013, 07:19:35 »
up svp :/

7
Scripting SA-MP [Pawn center] / Re : Code qui marche pas
« le: 10 Août 2013, 17:18:34 »
donne moi la ligne pour que je vois ce que tu as marqué

et tes WriteInt aussi

8
Scripting SA-MP [Pawn center] / Re : Code qui marche pas
« le: 10 Août 2013, 16:52:01 »
et ton INI_ParseFile tu le met où ?

9
J'aime beaucoup Red vs Blue, ça me rappelle assez GTA IV :)

10
Scripting SA-MP [Pawn center] / Re : Code qui marche pas
« le: 10 Août 2013, 15:36:53 »
Fais voir comment tu charge ou change ton pAdmin

11
Pour le armour cheat par exemple, un truc du genre si le joueur a + de 100 en armure, alors il est ban (ou tes admins sont avertis), et tu change tes commandes qui donne des armures pour que ce ne soit pas possible de mettre à 100 ^^

12
Scripting SA-MP [Pawn center] / Problème d'écriture .ini
« le: 10 Août 2013, 15:16:55 »
Hello,
Bonjour, j'ai un soucis avec Y_INI, j'avais suivis un système de compte sur le tuto forum.samp qui marchait très bien, mais je me suis rendu compte qu'il buguait en créant une commande /retireradmin, qui des qu'un que quelqu'un est admin (1), il ne le soit plus (0), avec quelques printf, j'avais vu que: quand le joueur se connecte, il est admin, apres avoir entré la commande il n'est plus admin, et quand il se deconnecte il n'est plus admin, donc c'est bien l'enregistrement des données dans le .ini qui déconne.

Sauf que la c'est carrément tout le systéme qui déconne, une fois in game, j'ai mes boites de dialogues qui s'ouvrent, je m'inscris sur mon serveur et je spawn, et quand je me déco, dans mon dossier scriptfile>Users, j'ai bien un fichier <pseudo>.ini, mais rien dedans !

Mes differents scripts:

Code: (pawn) [Sélectionner]
enum pInfo
{
        pMdp,
        pArgent,
        pAdmin,
        pKills,
        pDeaths,
       
}
new PlayerInfo[MAX_PLAYERS][pInfo];

Code: (pawn) [Sélectionner]
        if(fexist(UserPath(playerid)))
        {
            INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,COL_WHITE"Login",COL_WHITE"Entrez votre mot de passe pour vous connecter.","Login","Quitter");
        }
        else
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,COL_WHITE"Enregistrement",COL_WHITE"Entrez un mot de passe pour votre compte.","Valider","Quitter");
        }

Code: (pawn) [Sélectionner]
public OnPlayerDisconnect(playerid, reason)
{
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    INI_Close(File);
 
    gJob[playerid] = 0;
    PlayerInfo[playerid][pAdmin] = 0;
    checkpoint = 0;
    return 1;
}

Code: (pawn) [Sélectionner]
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        switch(dialogid)
        {
            case DIALOG_REGISTER:
            {
                if(!response) return Kick(playerid);
                if(response)
                {
                    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Enregistrement",""COL_RED"Il faut inserer un mot de passe !\n"COL_WHITE"Entrez votre password ci dessous pour enregistrer votre compte","Valider","Quitter");
                    new INI:File = INI_Open(UserPath(playerid));
                    INI_SetTag(File,"data");
                    INI_WriteInt(File,"Password",udb_hash(inputtext));
                    INI_WriteInt(File,"Cash",0);
                    INI_WriteInt(File,"Admin",0);
                    INI_WriteInt(File,"Kills",0);
                    INI_WriteInt(File,"Deaths",0);
                INI_Close(File);
                    SaveAccount(playerid);
               
                ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Validé !",""COL_GREEN"Bienvenue ! Reconnectez vous pour sauvegarder vos stats","Ok","");
                }
            }
            case DIALOG_LOGIN:
            {
                if(!response) return Kick(playerid);
                if(response)
            {
                    if(udb_hash(inputtext) == PlayerInfo[playerid][pMdp] )
                    {
                        INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                        GivePlayerMoney(playerid, PlayerInfo[playerid][pArgent]);
                        ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Validé!",""COL_GREEN"Connexion réussie ! Bon jeu !","Ok","");
                        if(PlayerInfo[playerid][pAdmin] == 1)
                        {
                            new playername[MAX_PLAYER_NAME];
                            new str[124];
                            GetPlayerName(playerid, playername, sizeof(playername));
                            format(str, sizeof(str), "L'administrateur %s vient de se connecter !", playername);
                            SendClientMessageToAll(COLOR_ADMIN, str);
                        }
                    }
                    else
                    {
                            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"Vous avez entré un mot de passe incorrect.\n"COL_WHITE"Entre votre mot de passe ci dessous pour vous connecter.","Login","Quitter");
                    }
                    return 1;
            }
 
            }
 
        }
        return 1;
}


Code: (pawn) [Sélectionner]
forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
    INI_Int("Password",PlayerInfo[playerid][pMdp]);
    INI_Int("Cash",PlayerInfo[playerid][pArgent]);
    INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
    INI_Int("Kills",PlayerInfo[playerid][pKills]);
    INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
    return 1;
}

 
stock UserPath(playerid)
{
    new string[128],playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),PATH,playername);
    return string;
}
 
 
stock udb_hash(buf[]) {
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
       s1 = (s1 + buf[n]) % 65521;
       s2 = (s2 + s1)     % 65521;
    }
    return (s2 << 16) + s1;
}

game mode complet: http://pastebin.com/D1zS6YaD

Merci d'avance je desespere assez ^^

Pages: [1]