Petit probleme au niveau du Login Auto,
Voici mon login auto placé dans OnPlayerSpawn :
GetPlayerIp(playerid,ip,20);
new val1[256];
new filename[256];
new playername[MAX_PLAYER_NAME];
format(filename, sizeof(filename), "%d", ip);
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
val1 = dini_Get(filename, "ip");
if (strcmp(val1,playername,false) == 0)
{
SendClientMessage(playerid,COLOR_LIGHTGREEN,"Tu as été automatiquement loggé");
SendClientMessage(playerid, COLOR_LIGHTGREEN, "Votre argent et votre position sont sauvegardés automatiquement quand vous quittez le jeu!");
LoadSave(playerid);
}
Et voici le public permettant le login auto :
forward LoadSave(playerid);
public LoadSave(playerid)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
if (dini_Exists(udb_encode(playername)))
{
logged[playerid] = 1;
new Float:x, Float:y, Float:z;
new Float:a;
new moneys[MAX_PLAYERS];
new tmp4[256];
playercount[playerid] = dini_Int(udb_encode(playername), "vehicleresetcount");
if(playercount[playerid] != gVC)
{
dini_IntSet(udb_encode(playername), "carowned", 0);
dini_IntSet(udb_encode(playername), "car", 0);
dini_IntSet(udb_encode(playername), "notified", 1);
SendClientMessage(playerid, COLOR_BRIGHTRED, "NOTICE <::> Les véhicules du serveur ont été changés depuis votre dernière visite!");
}
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
x = dini_Int(udb_encode(playername), "x");
y = dini_Int(udb_encode(playername), "y");
z = dini_Int(udb_encode(playername), "z");
a = dini_Int(udb_encode(playername), "a");
carowned[playerid] = dini_Int(udb_encode(playername), "carowned");
moneys[playerid] = dini_Int(udb_encode(playername), "money");
if(moneys[playerid] < 10000)
{
bank[playerid] = dini_Int(udb_encode(playername), "bank");
if(bank[playerid] > 20000)
{
SendClientMessage(playerid,COLOR_YELLOW, "Vous avez $20000 ou plus dans votre compte bancaire et vous ne recevez pas les $10000.");
}
if(bank[playerid] < 20000)
{
moneys[playerid] = 10000;
SendClientMessage(playerid,COLOR_YELLOW, "Vous avez moins de $20000 dans votre compte bancaire alors vous recevez $10000.");
}
GivePlayerMoney(playerid,moneys[playerid]);
}
if(moneys[playerid] >= 10000)
{
GivePlayerMoney(playerid,moneys[playerid]);
}
tmp4 = dini_Get(udb_encode(playername), "bank");
PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(playername), "level");
bank[playerid] = strval(tmp4);
SetPlayerPos(playerid,x,y,z);
SetPlayerFacingAngle(playerid,a);
PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
biznote[playerid] = dini_Int(udb_encode(playername), "bizsold");
carnote[playerid] = dini_Int(udb_encode(playername), "carsold");
if(biznote[playerid] == 1)
{
SendClientMessage(playerid, COLOR_BRIGHTRED, "NOTICE <::>Votre business a été vendu par un admin récemment. L'argent de la vente a été transféré sur votre compte bancaire !");
dini_IntSet(udb_encode(playername), "bizsold", 0);
}
if(carnote[playerid] == 1)
{
SendClientMessage(playerid, COLOR_BRIGHTRED, "NOTICE <::> Votre véhicule a vendu par un admin récemment. L'argent de la vente a été transféré sur votre compte bancaire!");
dini_IntSet(udb_encode(playername), "carsold", 0);
}
}
return 1;
}
Le problème est que le login auto marche bien, mais le truc c'est que vu qu'il n'y a pas besoin de rentrer le mot de passe, il suffit de prendre le pseudo et ca connecte le joueur même si l'IP est differente. Donc tout le monde peut se conecté avec n'importe quel compte ;D