• 05 Juin 2026, 23:12:04


Auteur Sujet: Preoblème de Register  (Lu 1843 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Preoblème de Register
« le: 19 Décembre 2010, 22:03:45 »
Salutation ou bonsoir j'ai faut un Syteme de register j'ai déjà demander de l'aide mais ca ne marche toujours pas en bref voici le code.
#pragma unused ret_memcpy

#include <a_samp>
#include <Dini>
#include <dudb>

#define Login 0
#define Register 1

#define vert 0xCE0000FF
#define jaune 0xFF2828FF
#define rouge 0x820000FF

enum list{level,skinid,death,kill,score,money};
new stats[MAX_PLAYERS][list];
new name[20][MAX_PLAYERS];
new st[256];

public OnFilterScriptInit()
{
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

main()
{
}

public OnPlayerConnect(playerid)
{
name[playerid] = GetName(playerid);
Entry(playerid);
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Register)
{
if(response)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid, jaune, "Le mot de passe doit comprendre entre 5-20 caractères (champ vide).");
return Entry(playerid);
}
        if(20 < strlen(inputtext) || strlen(inputtext) < 5)
{
SendClientMessage(playerid, jaune, "Le mot de passe doit comprendre entre 5-20 caractères (champ invalide).");
return Entry(playerid);
}
else
{
    format(st,sizeof(st),"Comptes/%s.user",name[playerid]);
dini_Create((st));
dini_IntSet((st), "password", udb_hash(inputtext));
dini_Set((st),"pass",inputtext);
    dini_IntSet((st), "level", 0);
dini_IntSet((st), "skinid", 0);
    dini_IntSet((st), "death", 0);
dini_IntSet((st), "kill", 0);
dini_IntSet((st), "score", 0);
    dini_IntSet((st), "money", 10000);
printf(st);
format(st, sizeof(st), "%s compte créé. Mot de passe : %s", name[playerid], inputtext);
SendClientMessage(playerid, jaune, st);
Entry(playerid);
}
}
else
{
Entry(playerid);
}
}
if(dialogid == Login)
{
if(response)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid, rouge, "Mauvais mot de passe.");
return Entry(playerid);
}
        if(20 < strlen(inputtext) || strlen(inputtext) < 5 )
{
SendClientMessage(playerid, rouge, "Mauvais mot de passe.");
return Entry(playerid);
}
else
{
    format(st,sizeof(st),"Comptes/%s.user",name[playerid]);

    new string[256];
string = dini_Get((st), "Password");
  if (udb_hash(inputtext) != strval(string))
{
    SendClientMessage(playerid, rouge, "Mauvais mot de passe.");
    return Entry(playerid);
}
else
{
dini_Set((st),"pass",inputtext);
                stats[playerid][level] = dini_Int((st), "level");
                stats[playerid][skinid] = dini_Int((st), "skinid");
                stats[playerid][death] = dini_Int((st), "death");
                stats[playerid][kill] = dini_Int((st), "kill");
                stats[playerid][score] = dini_Int((st), "score");
                SetPlayerMoney(playerid, stats[playerid][money]);
                SetPlayerScore(playerid, stats[playerid][score]);
                SendClientMessage(playerid, vert, "Vous êtes maintenant logger sur votre compte.");
}
}

}
else
{
Entry(playerid);
}
}
return 1;
}

Entry(playerid)
{
    format(st,sizeof(st),"Comptes/%s.user",name[playerid]);
if(dini_Exists(st))
{
    format(st,256,"Bienvenue\nentrer votre identifient secret\npour vous logger:");
ShowPlayerDialog(playerid,Login,DIALOG_STYLE_INPUT,"Identification ",st,"Login","Annuler");
}
else
{
    format(st,256,"Bienvenue\nentrer votre identifient secret\npour vous crée un compte:");
ShowPlayerDialog(playerid,Register,DIALOG_STYLE_INPUT,"Enregistrement ",st,"Register","Annuler");
}
return 1;
}

GetName(playerid)
{
new pseudo[20];
GetPlayerName(playerid,pseudo,sizeof(pseudo));
return pseudo;
}

public OnPlayerSpawn(playerid)
{
SetPlayerMoney(playerid, stats[playerid][money]);
  SetPlayerScore(playerid, stats[playerid][score]);
return 0;
}

Et je voudrais qu'a la mort Dini mette le score du joueur.
Donc j'ai ajouter

stats[playerid][score] = GetPlayerScore(playerid);
stats[playerid][money] = GetPlayerMoney(playerid);
Dans le onplayerdeath mais ca ne marche pas ?
Problème ?

Merci.
« Modifié: 06 Juin 2016, 21:21:07 par Xolokos »
Nippah !

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Preoblème de Register
« Réponse #1 le: 19 Décembre 2010, 22:20:07 »
Là, du donne juste la valeur à ta variable mais tu n'écrit pas le score dans le fichier de ton joueur.

dini_Set(st, "score", stats[playerid][score]);
dini_Set(st, "money", stats[playerid][money]);

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Preoblème de Register
« Réponse #2 le: 20 Décembre 2010, 10:41:46 »
Ca j'ai comprit Xartrick mais ensuite dans le OnPlayerDeath je doit mettre celà ?
stats[playerid][score] = GetPlayerScore(playerid);
stats[playerid][money] = GetPlayerMoney(playerid);
Cela change la variable au score du joueurs comme ça a sa reconnexion il aurat le score de sa dernière mort ?
J'ai tester et cela ne marche pas...
Nippah !

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Preoblème de Register
« Réponse #3 le: 20 Décembre 2010, 16:21:32 »
Oui, tu fais comme cela, et ensuite, à la déconnexion du joueur, tu enregistre son score via la variable stats.

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Preoblème de Register
« Réponse #4 le: 20 Décembre 2010, 19:47:43 »
C'est a dire ?
Nippah !

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Preoblème de Register
« Réponse #5 le: 20 Décembre 2010, 20:00:08 »
// OnPlayerDeath

stats[playerid][score] = (GetPlayerScore(playerid) - 1);
stats[playerid][money] = (GetPlayerMoney(playerid) - 500);

// OnPlayerDisconnect

dini_Set(st, "score", stats[playerid][score]);
dini_Set(st, "money", stats[playerid][money]);

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Preoblème de Register
« Réponse #6 le: 21 Décembre 2010, 10:11:43 »
Donc j'ai mi cela comme tu a écrit
public OnPlayerDeath(playerid, killerid, reason)
{
    stats[playerid][score] = (GetPlayerScore(playerid) - 1);
return 1;
}

public OnPlayerDisconnect
{//Ligne 153
dini_Set(st, "score", stats[playerid][score]);//Ligne 154
}

A la fin du Fs et il me retourne 2 erreurs

C:\Documents and Settings\ATHLON\Bureau\[FR] Projet's MW2\filterscripts\Register.pwn(153) : error 001: expected token: ";", but found "{"
C:\Documents and Settings\ATHLON\Bureau\[FR] Projet's MW2\filterscripts\Register.pwn(154) : error 021: symbol already defined: "dini_Set"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
Pourquoi il me dit cela (je connait pas toute les eurreurs si tu pourait détailler pour que la prochaine je comprenne ?)
Merci.
Nippah !

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : Preoblème de Register
« Réponse #7 le: 21 Décembre 2010, 10:21:06 »
La fonction " dini_Set " est déja difini dans ton script


Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Preoblème de Register
« Réponse #8 le: 21 Décembre 2010, 15:03:56 »
Tu utilise le Callback OnPlayerDisconnect sans argument.

public OnPlayerDisconnect(playerid, reason)
{
dini_Set(st, "score", stats[playerid][score]);
}

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Preoblème de Register
« Réponse #9 le: 21 Décembre 2010, 15:21:26 »
J'ai pas comprit la ?
Juste que Din_Set est definie mais sans argument ?
Nippah !

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Preoblème de Register
« Réponse #10 le: 21 Décembre 2010, 15:23:09 »
Non, ton Callback doit obligatoirement contenir ses paramètres de base.

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Preoblème de Register
« Réponse #11 le: 22 Décembre 2010, 12:25:35 »
Je doit mettre Dini_set dedans donc ?
Je m'embrouille.

(je go relire les tuto x) )

Double post
J'ai beau relire je comprend pas ce que tu essaye de me dire Xartrick ?
« Modifié: 23 Décembre 2010, 11:29:12 par Xolokos »
Nippah !