Merhaba!
Dini MySQL'in yaninda zayif kalsada yinede benim gibi kullananlar var.
Bende hem zaman gecirmek, arayanlara yardim etmek icin bunu yazmaya karar verdim.
#include <dini>
Dini'yi includelamadan baslayamayiz :)
#define Kayit 0
#define Giris 1
Diyaloglarinizi kaydettiginiz yere koyabilirsiniz. //Kayit ve Giris diyalogu icin kullanilicak.
new GirisYapti[MAX_PLAYERS];
New fonksiyonunu kaydettiginiz yere koyabilirsiniz //Bunu kullanarak kisinin giris yapip yapmadigini belirleyecegiz.
GirisDurum[playerid] = 0;
new Isim[MAX_PLAYERS], Dosya[126]
GetPlayerName(playerid, Isim, sizeof(Isim));
format(Dosya, sizeof(Dosya), "/Hesaplar/%s.ini", Isim);
if(!dini_Exists(Dosya))
{
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "SA-MP", "Sunucuya hos geldin! sifreni yazarak kaydolabilirsin:", "Kayit", "");
}
else
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "SA-MP", "Sunucuya hos geldin! sifreni yazarak giris yapabilirsin:", "Giris", "");
}
public OnPlayerConnect'e ekliyoruz. //Basta oyuncunun ismini "Isim"'e kaydettik ardindan hesaplarin kaydedilicegi dosyayi belirledik ve her hesaba baska bir dodya acmasi icin "Isim"e bagladik ardindan egerki dosya, hesap bulunamadiysa kayit bulunduysa girisi gosteesini ayarladik. Ben cikis butonu eklemedim isteyen ekleyebilir.
if(dialogid == 0)
{
new Isim[MAX_PLAYER_NAME], new Dosya[126];
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "SA-MP", "Sifrenizi yazmazsaniz hesabinizi kaydedemem:", "Kayit", "");
GetPlayerName(playerid, Isim, sizeof(Isim));
format(Dosya, sizeof(Dosya), "/Hesaplar/%s.ini", Isim);
dini_Create(Dosya);
dini_Set(Dosya, "pIsim", Isim);
dini_Set(Dosya, "pSifre", inputtext);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "SA-MP", "Harika! Sifreni tekrar yazarak giris yapabilirsin:", "Giris", "");
}
public OnDialogResponse'ye ekleyeceksiniz. //Herzamanki gibi dosyayi ismi vb, tanittik egerki hicbirsey yazmazsa hata vermesini ayarladik ve hesabin kurulup kurulduktan sonra giris ekraninin gelmesini ayarladik.
if(dialogid == 1)
{
new Isim[MAX_PLAYER_NAME], Dosya[126], Sifre[24];
GetPlayerName(playerid, Isim, sizeof(Isim));
format(Dosya, sizeof(Dosya), "/Hesaplar/%s.ini", Isim);
format(Sifre, sizeof(Sifre), "%s", dini_Get(Dosya, "pSifre"));
if(!strcmp(inputtext, Sifre) return GirisYapti[playerid] = 1;
else
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT "SA-MP", "Girdiginiz sifre yanlis!", "Giris", "");
}
}
Bunuda oncekinin altina ekleyebiliriz. //Diger bolumlerde yaptiklarimizi yaptik inputtextle sifre uyusuyormu diye baktik uyusuyorsa girisdurumunu degistirdik uyusmuyorsa geri gonderdik.
Scriptfilesa Hesaplar diye bir dosya eklerseniz kodlar calisicaktir, yazim yanlisi ve ya [] kapatmayi unuttugum olabilir yazarsaniz duzeltirim :) sifreyi yazmadan kisi spawnlanabilir siz onu yaparsiniz cokda kapsamli bir kod degil :pc:
Eline sağlık çok güzel olmuş,başarılar
Eline sağlık
Ellerine sağlık, kaliteli anlatım/konu olmuş. :helal:
Kaanki0#9224
Selam, arkadaş ekleyebilir misin?