Ayuda con dini.
#1

Necesito ayuda ante algo que tiene que ver con dini:

En mi servidor he puesto comandos y funciones con dini para realizar acciones y hacerlas mбs cуmodas para los jugadores.
Como por ejemplo, un comando para cambiar el skin. El jugador cambia el skin y ademбs se guarda en su cuenta, para otra vez que entre al servidor, el sistema analiza su skin y pueda cambiarlo automбticamente. La funciуn serнa asн:

pawn Код:
public OnPlayerSpawn(playerid)
{
  if(dini_Exists(file, "Skin")) // Esto analiza el skin del jugador.
  {
    dini_Int(file, "Skin"); SetPlayerSkin(playerid, dini_Int(file, "Skin")); // Y aquн se lo coloca.
  }
  return 1;
}
Bien, el problema estб en la funciуn dini_Exists ya que pawno lo marca como un aviso y no lo reconoce: warning 202: number of arguments does not match definition.
Y asн con diversos aсadidos.

Al entrar al servidor y hacer spawn, el skin del jugador se coloca respecto a su Id recogido desde su carpeta correctamente, pero si el jugador no tiene ningъn Id en dicha carpeta, el skin de este se transforma en el Id 0, es decir, el skin de CJ.
Ademбs de ser asн con otras funciones.

Pedirнa saber cuбl es la funciуn que cambiase dini_Exists por su correspondiente y asн no obtener error alguno.

Reply
#2

y si usas un switch case o podrias usar else y una funcion que retorne a volver a elejir el personaje entonces como el jugador esta en seleccion no se daria cuenta.
Reply
#3

Es que el "dini_Exists" solo acepta un argumento ya que solo mira si el archivo exsiste.
Por ejemplo:
pawn Код:
if(dini_Exists(archivo))
{
   printf("El archivo exsiste");
}
else
{
   printf("El Archivo no exsiste");
}
Creo que tendrнa que ser asн, si lo e entendido bien lo que quieres hacer:
pawn Код:
public OnPlayerSpawn(playerid)
{
   if(dini_Exists(file))
   {
     new skin;
     sin = dini_Get(file, "Skin");
     SetPlayerSkin(playerid,skin);
   }
   else
   {
     return 1;
   }
   return 1;
}
Espero haberte ayudado, saludos.
Reply
#4

Quote:
Originally Posted by Nombre_Apellido
No, lo siento, me da mъltiples errores, pero me inspirй en eso para crear algo:

pawn Код:
public OnPlayerConnect(playerid)
{
  if(dini_Exists(file))
  {
    SetPlayerSkin(playerid, dini_Int(file, "Skin"));
  } else {
    return 1;
  }
  return 1;
}
No me da error alguno y funciona en el servidor para jugadores con eso incluido en la cuenta, ahora solo me hace falta un conejillo de indias sin eso para probarlo

Si funciona lo anunciarй.
Reply
#5

No, no funciona con ninguna de las maneras, їalguna otra idйa?
Reply
#6

Yo tengo asi, y me funciona. Nada mas le tenes que dar el Comando para seleccionar Skin y nada mas.
Espero que te funcione

Код:
public OnPlayerSpawn(playerid)
{
  	new Nombre[MAX_PLAYERS];
  new file[100];
  GetPlayerName(playerid, Nombre, sizeof(Nombre));
  format(file, sizeof(file), "%s.ini", Nombre);

  if(fexist(file))
  {
  SetPlayerSkin(playerid, dini_Int(file, "Skin"));
  }
Код:
public OnPlayerDisconnect
{
 
  new Nombre[MAX_PLAYERS];
  new file[100];
  GetPlayerName(playerid, Nombre, sizeof(Nombre));
  format(file, sizeof(file), "%s.ini", Nombre);

  if(fexist(file))
  {
  dini_IntSet(file, "Skin", GetPlayerSkin(playerid));
  }
  else
  {
  dini_Create(file);
  dini_IntSet(file, "Skin", GetPlayerSkin(playerid));
  }
Reply
#7

Quote:
Originally Posted by JetLi
Yo tengo asi, y me funciona. Nada mas le tenes que dar el Comando para seleccionar Skin y nada mas.
Espero que te funcione

Код:
public OnPlayerSpawn(playerid)
{
  	new Nombre[MAX_PLAYERS];
  new file[100];
  GetPlayerName(playerid, Nombre, sizeof(Nombre));
  format(file, sizeof(file), "%s.ini", Nombre);

  if(fexist(file))
  {
  SetPlayerSkin(playerid, dini_Int(file, "Skin"));
  }
Код:
public OnPlayerDisconnect
{
 
  new Nombre[MAX_PLAYERS];
  new file[100];
  GetPlayerName(playerid, Nombre, sizeof(Nombre));
  format(file, sizeof(file), "%s.ini", Nombre);

  if(fexist(file))
  {
  dini_IntSet(file, "Skin", GetPlayerSkin(playerid));
  }
  else
  {
  dini_Create(file);
  dini_IntSet(file, "Skin", GetPlayerSkin(playerid));
  }
No funciona.
Reply
#8

A mi me funciona, yo lo uso
Reply
#9

y si en vez de usar dini usas dudb que es mas facil para manejar cuentas de usuarios
Reply
#10

Quote:
Originally Posted by the_chaoz
y si en vez de usar dini usas dudb que es mas facil para manejar cuentas de usuarios
O MySQL. Tambiйn es una buena forma. Ademбs podrнas conectarlo con una web y un millуn de posibilidades.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)