• 15 Mai 2024, 03:09:55


Auteur Sujet: [TUTO]Ajouter le tableau login a la connexion si un systeme et deja present  (Lu 11727 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
tout d'abord nous allons defenir nos dialogue

Code: (pawn) [Sélectionner]
#define LOGDIA 1ensuite dans la callback OnPlayerConnecte

Si vous utilisé file

Code: (pawn) [Sélectionner]
public OnPlayerConnect(playerid)
{
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid,name,sizeof(name));
   new str[128];
   format(str,sizeof(str)"%s.ini",name);

   if(fexist(str))
   {
   }
return 1;
}

Si vous utiliser Dini

Code: (pawn) [Sélectionner]
public OnPlayerConnect(playerid)
{
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid,name,sizeof(name));
   new str[128];
   format(str,sizeof(str)"%s.ini",name);
   if (dini_Exists(str))
   {

   }
return 1;
}

Pour le moment je n'est en aucun cas créer le tableau.

Désormer nous allons crée une fonction qui vas nous servir plus tard

Code: (pawn) [Sélectionner]
LOGINSYS(playerid)
{
   new name[MAX_PLAYER_NAME];//variable pseudo
   GetPlayerName(playerid,name,sizeof(name));//on retient le pseudo
   new loginmsg[256];//variable pour le format
   format(loginmsg,256,"Bienvenue sur le sevreur .\n\nCompte:\t%s\n\nEntrer le mot de passe :",name);// le tableau qu'on va afficher
   ShowPlayerDialog(playerid,LOGDIA,DIALOG_STYLE_INPUT,"Login ",loginmsg,"Login","Annuler");//creation du tableau
   return 1;
}

Voila notre tableau.

Oui mais il faut bien retourner les information pour ce loguer ^^.

rien de plus simple on va utiliser une fonction tres enfantin
Code: (pawn) [Sélectionner]
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   if(dialogid == LOGDIA)//si le tableau est LOGDIA
   {
      if(response)//on verifie si on reçoit une reponse
      {
          new log[256];//variable pour notre format
          format(log, 256, "/login %s", inputtext);//la on va faire croire au serveur que le joueur tape /login sonpasse
          return OnPlayerCommandText(playerid, log);// on retourne la reponse dans la callback OnPlayerText ^^
      }
      else//si pas de reponde
      {
          Kick(playerid);//on kick on peu en deduire que c'est un fake ^^
       }
   }
return 1;
}

oui mais la comme sa a aucun moment vous verez le tableau en allant sur le serveur car la fonction n'est pas utiliser.

Comment faire tel est la question.

Rien de plus simple

Si vous utliser file

Code: (pawn) [Sélectionner]
public OnPlayerConnect(playerid)
{
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid,name,sizeof(name));
   new str[128];
   format(str,sizeof(str)"%s.ini",name);

   if(fexist(str))
   {
      LOGINSYS(playerid);
   }
return 1;
}

Si vous utiliser Dini

Code: (pawn) [Sélectionner]
public OnPlayerConnect(playerid)
{
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid,name,sizeof(name));
   new str[128];
   format(str,sizeof(str)"%s.ini",name);
   if (dini_Exists(str))
   {
      LOGINSYS(playerid);
   }
return 1;
}

Voila j'espere que vous avez compris un peu le principe tu dialogue avec ceci
« Modifié: 08 Septembre 2013, 16:35:34 par cristab »
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Mr_C30

  • *
  • Gangster
  • souvent conquise jamais soumise
  • Messages: 1937
    • Voir le profil
mercie :) je te le piquerais certainement pour mon serveur privée ;)

gg



;) ++



Radis du soir bonsoir !


Hors ligne Zordiache

  • *
  • Mafioso
  • Messages: 2219
    • Voir le profil
Bien joué pour le tuto  :dling

Hors ligne JuLi3n67

  • Apprentis c/++
  • *
  • Bandit
  • -- LZR Team --
  • Messages: 370
    • Voir le profil
GG rambonouette  ;)

++

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Juste pour signaler une tite erreur dans ta define tu met un egal une define na pas besoin du signe egal pour qu'on lui assigne une valeur :)

Et personellement je trouve que le terme "tableau" pour designer une boite de dialogue est mal aproprié sa pourait porter a confusion avec un tableau pawn (enfin ce n'est que mon avis ^^)


Sinon GG sa en aidera pas mal je pense

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Salut,

petite remarque, il s'agit d'un dialogue permettant de se logger, mais qu'en est-il pour s'enregistrer?
il faudrait deux dialogues
très sympa comme tuto :P

ps. déplacé

++Sim++





Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
ben pour le register on procede de la meme façon en faite sauf que /register d'origine on le remplace par une commande introuvable du genre /fhfhehhfvhsdk et dans le format retourne


format(log, 256, "/fhfhehhfvhsdk%s", inputtext);//la on va faire croire au serveur que le joueur tape /register sonpasse
return OnPlayerCommandText(playerid, log);

et voila :p
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne dixon

  • *
  • Tueur en série
  • Jamais Je n'abandonnerai
  • Messages: 159
    • Voir le profil
    • :... Universal Gaming ...:
Salut, tu gère grave mec franchement zartek , GG !!!!!!!!!!!

Sinon pour :

public OnPlayerConnect(playerid)
{
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid,name,sizeof(name));
   new str[128];
   format(str,sizeof(str)"%s.ini",name);

   if(fexist(str))
   {
      LOGINSYS(playerid);
   }
return 1;
}

J'aurai préference a mettre le return avant comme sa :

public OnPlayerConnect(playerid)
{
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid,name,sizeof(name));
   new str[128];
   format(str,sizeof(str)"%s.ini",name);

   if(fexist(str))
   {
      LOGINSYS(playerid);
      return 1;
    }

Non j'ai rien dit ^^
« Modifié: 19 Octobre 2009, 21:25:32 par dixon »
Modern Sensation RP, Du RP comme vous en avez jamais VU
En Construction | Ouverture Beta Bientôt

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
non enfaite je vais expliquer pourquoi etudions la fonction LOGSYS()

<?php
LOGINSYS
(playerid)//nom de la fonction
{//ouverture accolade
   
new name[MAX_PLAYER_NAME];//variable pseudo
   
GetPlayerName(playerid,name,sizeof(name));//on retient le pseudo
   
new loginmsg[256];//variable pour le format
   
format(loginmsg,256,"Bienvenue sur le sevreur .\n\nCompte:\t%s\n\nEntrer le mot de passe :",name);// le tableau qu'on va afficher
   
ShowPlayerDialog(playerid,LOGDIA,DIALOG_STYLE_INPUT,"Login ",loginmsg,"Login","Annuler");//creation du tableau
   
return 1;// le retour
}//on ferme

donc si on procede comme tu le dit

if(fexist(str))
   {
      LOGINSYS(playerid);
      return 1;
    }

on peu interpreter deux return 1; d'affiler donc ce ne seras pas bon de plus il me semble que le compilateur le signaleras :)

Sinon bonne remarque
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne dixon

  • *
  • Tueur en série
  • Jamais Je n'abandonnerai
  • Messages: 159
    • Voir le profil
    • :... Universal Gaming ...:
Re, Ok tu m'a fait apprendre quelque chose avec ton tuto et sa je t'en remerci ...

Sinon il me dit que le string est déjà defini mais il me le dit la : new string[MAX_PLAYER_NAME]; ??? normale ?

Je l'ai fait comme sa :

public OnPlayerConnect(playerid)
{
   new plname[MAX_PLAYER_NAME];
   GetPlayerName(playerid, plname, sizeof(plname));
   new string[256];
   format(string, sizeof(string), "users/%s.ini", plname);

   if(fexist(string))
   {
      LOGINSYS(playerid);
   }
return1;
}

Mais si je l'enleve il ne compile pas et c'est un peu embarrasant, merci d'avance

Edit : Sinon j'avais eu un probleme avec le LOGDIA, j'avais etait obliger de remplacer par 1 (1 c'est bien le type de menu non ?)
« Modifié: 19 Octobre 2009, 21:42:16 par dixon »
Modern Sensation RP, Du RP comme vous en avez jamais VU
En Construction | Ouverture Beta Bientôt

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
non c'est le numeros du menu enfaite tu devait deja avoir le numeros 1

si ton string est deja definie remplace celui ci exemple

new str[256];
   format(str, sizeof(str), "users/%s.ini", plname);

   if(fexist(str))
   {
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne dixon

  • *
  • Tueur en série
  • Jamais Je n'abandonnerai
  • Messages: 159
    • Voir le profil
    • :... Universal Gaming ...:
Re, Ok merci mais probleme le menu ne s'affiche pas et il dit que le compte n'existe pas ???

Bon je te donne tout ce que j'ai fait :

public OnPlayerConnect(playerid)
{
   new plname[MAX_PLAYER_NAME];
   GetPlayerName(playerid, plname, sizeof(plname));
   new str[256];
   format(str, sizeof(str), "users/%s.ini", plname);

   if(fexist(str))
   {
      LOGINSYS(playerid);
   }
if(Security != 0)
{
    SendClientMessage(playerid, COLOR_YELLOW, " Le centre du serveur a violé une des règles d'accord, l'action a été prise en compte.");
    Kick(playerid);
  return 1;
}
// Le reste c'est tout ce qu'il y a dans onplayerconnect


Apres j'ai mis :

LOGINSYS(playerid)
{
   new name[MAX_PLAYER_NAME];//variable pseudo
   GetPlayerName(playerid,name,sizeof(name));//on retient le pseudo
   new loginmsg[256];//variable pour le format
   format(loginmsg,256,"Bienvenue sur le sevreur Universal Life .\n\nCompte:\t%s\n\nEntrer le mot de passe :",name);// le tableau qu'on va afficher
   ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Login ",loginmsg,"Login","Annuler");//creation du tableau
   return 1;
} //

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   if(dialogid == 1)//si le tableau est LOGDIA
   {
      if(response)//on verifie si on reçoit une reponse
      {
          new log[256];//variable pour notre format
          format(log, 256, "/ident %s", inputtext);//la on va faire croire au serveur que le joueur tape /login sonpasse
          return OnPlayerCommandText(playerid, log);// on retourne la reponse dans la callback OnPlayerText ^^
      }
      else//si pas de reponde
      {
          Kick(playerid);//on kick on peu en deduire que c'est un fake ^^
       }
   }
return 1;
}
   
Et c'est bien bon ce que j'ai fait pourtant non ?
« Modifié: 19 Octobre 2009, 22:14:59 par dixon »
Modern Sensation RP, Du RP comme vous en avez jamais VU
En Construction | Ouverture Beta Bientôt

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
l'extension de tes compte sont e .ini .cfg ou .txt sa peu venir de la

machinalement j'ai mis une extension .ini

format(str, sizeof(str), "users/%s.ini", plname);

mais peu etre que toi c'est autrement ^^
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Si vous utilisé file

<?php
public OnPlayerConnect(playerid)
{
   new 
name[MAX_PLAYER_NAME];
   
GetPlayerName(playerid,name,sizeof(name));
   new 
str[128];
   
format(str,sizeof(str)"%s.ini",name);

   if(
fexist(str))
   {
   }
return 
1;
}

Si vous utiliser Dini

<?php
public OnPlayerConnect(playerid)
{
   new 
name[MAX_PLAYER_NAME];
   
GetPlayerName(playerid,name,sizeof(name));
   new 
str[128];
   
format(str,sizeof(str)"%s.ini",name);
   if (
dini_Exists(str))
   {

   }
return 
1;
}





oui mais la comme sa a aucun moment vous verez le tableau en allant sur le serveur car la fonction n'est pas utiliser.

Comment faire tel est la question.

Rien de plus simple

Si vous utliser file

<?php
public OnPlayerConnect(playerid)
{
   new 
name[MAX_PLAYER_NAME];
   
GetPlayerName(playerid,name,sizeof(name));
   new 
str[128];
   
format(str,sizeof(str)"%s.ini",name);

   if(
fexist(str))
   {
      
LOGINSYS(playerid);
   }
return 
1;
}

Si vous utiliser Dini

<?php
public OnPlayerConnect(playerid)
{
   new 
name[MAX_PLAYER_NAME];
   
GetPlayerName(playerid,name,sizeof(name));
   new 
str[128];
   
format(str,sizeof(str)"%s.ini",name);
   if (
dini_Exists(str))
   {
      
LOGINSYS(playerid);
   }
return 
1;
}


J'utilise file, mais je n'ai pas compris ce que je doit faire avec ces 2 Code

Double post
J'ai tout fait sauf quand tu parle de file et dini car je n'ai pas compris, et j'obtien


C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : error 029: invalid expression, assumed zero
C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : warning 215: expression has no effect
C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : error 029: invalid expression, assumed zero
C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : warning 215: expression has no effect
C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : warning 215: expression has no effect
C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : warning 215: expression has no effect
C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : warning 215: expression has no effect
C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : warning 215: expression has no effect
C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : error 001: expected token: ";", but found ")"
C:\Users\Maxence\Desktop\LARP\bon 03a\gamemodes\amende8.pwn(3687) : fatal error 107: too many error messages on one line
« Modifié: 04 Novembre 2009, 10:55:13 par scott1 »
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 cristab

  • *
  • Messages: 8379
    • Voir le profil
montre moi le code
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici