04.06.2012, 18:20
[I]Buenas, eh echo el Tutorial de Y_INI que esta aqui mismo pero al editarle algunas cosas me dejo de reconocer la contraseсa.. Osea, Entras, te registras, sales, vuelves a entrar e ingresas la contraseсa y no te la reconoce.
Les dejo el cуdigo completo a ver si ustedes se dan cuenta del error :/
Desde ya muchнsimas Gracias.
(Al que me ayude le doy +1 en 5 Topic)
Les dejo el cуdigo completo a ver si ustedes se dan cuenta del error :/
Код:
#include <a_samp>
#include <YSI\y_ini>
//- Defines
#define Ubicacion "/Usuarios/%s.ini"
//- Dialogos
#define D_Registro 00
#define D_Ingreso 01
//- Colores
#define Hablar 0xE6E6E6E6
#define Hablar2 0xC8C8C8C8
#define Hablar3 0xAAAAAAAA
#define Hablar4 0x8C8C8C8C
#define Hablar5 0x6E6E6E6E
//- News
new BigEar[MAX_PLAYERS];
//- Forwards
forward CCuentas(playerid,name[],value[]);
forward ProxDetector(Float:radi, playerid, string[] ,col1,col2,col3,col4,col5);
//- Enums
enum Info
{
Clave,
Dinero,
Administracion,
Sexo,
Edad,
Nacionalidad,
Trabajo,
Lider,
Miembro
}
new Jugadores[MAX_PLAYERS][Info];
//- Comienzo del GameMode
public OnGameModeInit()
{
SendRconCommand("hostname |-| America RolePlay |-|");
SetGameModeText(" -| Version 2.0 | 2013 |-");
SendRconCommand("mapname |-| Los Santos |-|");
ManualVehicleEngineAndLights(); // Motores OFF
ShowPlayerMarkers(0); // Mapa OFF
DisableInteriorEnterExits(); // Entradas OFF
return 1;
}
public OnPlayerConnect(playerid)
{
SetPlayerColor(playerid, -1);
ResetPlayerMoney(playerid);
if(fexist(Ubicaciones(playerid)))
{
INI_ParseFile(Ubicaciones(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid, D_Ingreso, DIALOG_STYLE_PASSWORD, "Login", "Enter your password below:", "Login", "Cancel");
printf("Pass: %d", Jugadores[playerid][Clave]); // this
}
else
{
ShowPlayerDialog(playerid, D_Registro, DIALOG_STYLE_INPUT, "Login", "Enter your password below:", "Login", "Cancel");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new INI:File = INI_Open(Ubicaciones(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Dinero",GetPlayerMoney(playerid));
INI_WriteInt(File,"Administracion",Jugadores[playerid][Administracion]);
INI_Close(File);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
GetPlayerMoney(GetPlayerMoney(playerid) -350);
SendClientMessage(playerid,- 1,"[Hospital] Tras horas de Internacion usted se ha recuperado Totalmente | Costo: $350");
return 1;
}
public CCuentas(playerid,name[],value[])
{
INI_Int("Clave",Jugadores[playerid][Clave]);
INI_Int("Dinero",Jugadores[playerid][Dinero]);
INI_Int("Administracion",Jugadores[playerid][Administracion]);
return 1;
}
public OnPlayerText(playerid, text[])
{
new string[100];
format(string, sizeof(string), "%s dice: %s", Nombres(playerid), text);
ProxDetector(15.0, playerid, string, Hablar,Hablar2,Hablar3,Hablar4,Hablar5);
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == D_Registro)
{
if(response == 1)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, D_Registro, DIALOG_STYLE_INPUT, "Login", "Enter your password below:", "Login", "Cancel");
new INI:File = INI_Open(Ubicaciones(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Clave",secret(inputtext));
GivePlayerMoney(playerid,500);
INI_WriteInt(File,"Dinero",0);
INI_WriteInt(File,"Administracion",0);
INI_Close(File);
//-
SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
return 1;
}
if(response == 0)
{
Kick(playerid);
return 1;
}
return 1;
}
if(dialogid == D_Ingreso)
{
if(response == 1)
{
if(secret(inputtext) == Jugadores[playerid][Clave])
{
INI_ParseFile(Ubicaciones(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, Jugadores[playerid][Dinero]);
SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
else
{
ShowPlayerDialog(playerid, D_Ingreso, DIALOG_STYLE_PASSWORD, "Login", "Enter your password below:", "Login", "Cancel");
}
return 1;
}
if(response == 0)
{
Kick(playerid);
return 1;
}
}
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 0;
}
//- Stocks
stock Ubicaciones(playerid)
{
new string[128], JNombre[MAX_PLAYER_NAME];
GetPlayerName(playerid, JNombre, sizeof(JNombre));
format(string,sizeof(string), Ubicacion, JNombre);
return string;
}
stock Nombres(playerid)
{
new Nombre[30];
GetPlayerName(playerid, Nombre, 30);
new N[30];
strmid(N, Nombre, 0,strlen(Nombre), 30);
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{
if (N[i] == '_') N[i] = ' ';
}
return N;
}
stock secret(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;
}
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
{
if(!BigEar)
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, string);
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
}
return 1;
}
main()
{
}
Desde ya muchнsimas Gracias.
(Al que me ayude le doy +1 en 5 Topic)

