GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

Dini - Kayıt Sistemi Yapımı

Başlatan Jawié, 17 Eylül 2017, 09:42:27

« önceki - sonraki »

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

Jawié

Dini Kayıt Yapımı


Bu konu yardım taleplerindeki bir arkadaşa anlatmak amacıyla açılmıştır. Dini kayıt sisteminin eskilerde kaldığı doğrudur. Fakat küçük sistemler yapıyorsanız dini sizin için ideal olur. Dini oldukça hafif yer kaplıyor. Tek avantajsız yanı mySQL gibi performans sağlamaması ve biraz yavaş çalışması. Kullanacak arkadaşlara kolay gelsin.

#include <dini>

Yukarıdaki kodu modun başına ekle. Bu dini eklentisini moduna gömüyor.

new pAdminLevel[MAX_PLAYERS], Float:oPos[MAX_PLAYERS][3];

Yukarıdaki kod veriyi çekiyoruz ya. Ondan sonra onu yerleştirip veriyi kullanmak için yaptığımız işlem. Değişkene koyuyoruz yani. Mesela if(pAdminLevel[playerid] < 1) şeklinde bir şart bağlıyoruz. Onu da modun başına koy.

Oyuncu oyuna girdiğinde karşısına çıkacak olan diyalog ekranını yapıyoruz. Onun için OnPlayerConnect callbackine uğrayıp bir kahve içelim.

new name[24];
GetPlayerName(playerid, name, 24);
if(!dini_Exists("/kayitlar/%s.ini", name)) // Farkındaysan başında ! var. Bu demek oluyor ki isminde bir dosya yoksa. Yani kayıt olmamışsa.
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Kayıt Ol", "Lütfen şifreni gir.", "Tamam", "");
}else{ // Eğer kayıt varsa
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş Yap", "Lütfen şifreni gir.", "Tamam", "");
}


Bu daha görsel yönüydü. Şimdi işlevsel kısmına geçiyoruz. Yani OnDialogResponse kısmına. Kahve istemem ama ben bu sefer. İki saniye de bir kahve içiyoruz. Baydı artık. Uyku namına bir şey kalmadı.

new name[24], str[90];
GetPlayerName(playerid, name, 24);
format(str, sizeof(str), "/kayitlar/%s.ini", name);

if(dialogid == 1)
{
if(!response) Kick(playerid); // Oyuncu esc vs. basarsa kickledik.
if(response)
{
dini_Create(str);
dini_Set(str, "sifre", inputtext); // Şifresini inputtext, kutucuğa girilen şifreyi yazdık.
dini_Set(str, "level", 0); // Admin levelini düzenledik
dini_Set(str, "skor", 0); // skorunu kaydettik
dini_Set(str, "para",0); // parasını kaydettik
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş Yap", "Lütfen şifreni gir.", "Tamam", "");
}
}
if(dialogid == 2)
{
if(response)
{
new sifre[256]; // Şifre artık kaç hane girilebilirse rastgele yazdım boyutunu
format(sifre, sizeof(sifre), "%s", dini_Get(str, "sifre");
if(strcmp(inputtext, sifre) == 0) // Şifre ile inputtext uyuşuyorsa
{
new skor, para;
pAdminLevel[playerid] = dini_Int(str, "level"); // levelını değişkene yazdırdık
skor = dini_Int(str, "skor");
para = dini_Int(str, "para");
dini_Float(str, "posX", oPos[playerid][0]);
dini_Float(str, "posY", oPos[playerid][1]);
dini_Float(str, "posZ", oPos[playerid][2]);
GivePlayerMoney(playerid, para); SetPlayerScore(playerid, skor);
SendClientMessage(playerid, 0xFF0000FF, "Başarıyla giriş yaptınız."); // giriş yaptığını söylemek için mesaj yazdırdık
}
else // şifre yanlışsa
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş Yap", "Yanlış şifre girdin. Lütfen doğrusunu gir.", "Tamam", "");
}
}
}


Ben anlatımlarımı daha çok // kullanarak yaptığım için kod haricinde pek yazmıyorum. Kodları incelerseniz her şeyde neyi neden, niçin yaptığımı yazdım. :kahkaha:

Şimdi işin son kısmı olan kayıt ettirmeye geldi sıra. Oyuncu oyundan çıktığında kayıt etmesi için OnPlayerDisconnect callbackine uğruyoruz. Yalnız daha demin OnDialogResponse callbackinde hiçbir şey vermediler. Çok ayıp ettiler. Yüzlerine söylemedim ama gerçekten olmaz böyle bir şey.

new name[24], str[30], name[24]; GetPlayerName(playerid, name, 24);
format(str, sizeof(str), "/kayitlar/%s.ini", name);

if(dini_Exists(str)) // eğer oyuncu kayıt olmuşsa
{
dini_IntSet(str, "level", pAdminLevel[playerid]);
dini_IntSet(str, "para", GetPlayerMoney(playerid));
dini_IntSet(str, "skor", GetPlayerScore(playerid));
dini_FloatSet(str, "posX", oPos[playerid][0]);
dini_FloatSet(str, "posY", oPos[playerid][1]);
dini_FloatSet(str, "posZ", oPos[playerid][2]);
}


Şimdi de yardım taleplerindeki arkadaşın istediği konum kaydetme şeysinin son durağı OnPlayerSpawn'a geçiyoruz.

SetPlayerPos(playerid, oPos[playerid][0], oPos[playerid][1], oPos[playerid][2]); // Değişkene yazdırdığımız posları burada oyunucunun posu olarak ayarladık.


Dyternal

Adam MySQL öğrenirdi niye yordun kendini :D. Ellerine sağlık.

Edit:

[center][size=14pt][color=#00B7FF][font=trebuchet ms]Dini Kayıt Sistemi Yapımı[/font][/color][/size][/center]


Lé Spîke

Güzel anlatım ekliyorum.

         

pag

Eline sağlık,güzel anlatmışsında dini kullanan kaldımı ki?


Zoxy

Bilmeyen arkadaşlar için güzel konu olmuş. Ellerine sağlık


pag

Alıntı yapılan: Jawié - 20 Eylül 2017, 20:37:42

Alıntı yapılan: FeelsBadMan - 20 Eylül 2017, 15:00:25

Eline sağlık,güzel anlatmışsında dini kullanan kaldımı ki?


Anlatımı sana yapmadığıma ve konumu okumadığına göre sıkıntı yok.  :kahkaha: Burası "ulan iki bilmiş yorum atayım da havalı görüneyim" yeri değil. İki sokak ötesine git.

Benim öyle bir niyetim yok sadece kişisel düşüncemi dile getirdim.


Dyternal

Alıntı yapılan: FeelsBadMan - 20 Eylül 2017, 22:04:17

Alıntı yapılan: Jawié - 20 Eylül 2017, 20:37:42

Alıntı yapılan: FeelsBadMan - 20 Eylül 2017, 15:00:25

Eline sağlık,güzel anlatmışsında dini kullanan kaldımı ki?


Anlatımı sana yapmadığıma ve konumu okumadığına göre sıkıntı yok.  :kahkaha: Burası "ulan iki bilmiş yorum atayım da havalı görüneyim" yeri değil. İki sokak ötesine git.

Benim öyle bir niyetim yok sadece kişisel düşüncemi dile getirdim.


Jawie doğru söylüyor konuyu okumamissin

Alıntı yapılan: Jawié - 17 Eylül 2017, 09:42:27

Dini Kayıt Yapımı


Bu konu yardım taleplerindeki bir arkadaşa anlatmak amacıyla açılmıştır. Dini kayıt sisteminin eskilerde kaldığı doğrudur. Fakat küçük sistemler yapıyorsanız dini sizin için ideal olur. Dini oldukça hafif yer kaplıyor. Tek avantajsız yanı mySQL gibi performans sağlamaması ve biraz yavaş çalışması. Kullanacak arkadaşlara kolay gelsin.


Adam belirtmiş gayet açık açık


Jizzy


FelleR


Under Armour

Bunu tekrar canlandırmak istiyorum.
* Hata veya eksik cod olabilir mi ? Çünkü dediklenirinizi uyguladım ama hata sonucu aldım.

(Eski bir sürümde kendi çapımızda bir içerik yapıyoruz ve kayıt sistemi olarak bunu kullanmak istedik Hatadan hiç birşey yapamadık hatta anlayamadık siz bir kontrol eder misiniz hata veya ekisiği tamamlayarak güncelleyiniz.)

SA-MP hakkında bir çok bilgi toplayan. (( GTA'cilar Fan Club ))



Turkiye GTA'cilar yeniden aktif!
Server IP:   91.121.87.14:2214

Myalis

ellerine sağlık, teşekkürler


kelly

Paylaşım için teşekkürler.

I want everything

E.xKoMaNDo

yaw nasl yapacam biri bana görsel yada video atabilirmi lürfenn     
Alıntı yapılan: Jawié - 17 Eylül 2017, 09:42:27
Dini Kayıt Yapımı

Bu konu yardım taleplerindeki bir arkadaşa anlatmak amacıyla açılmıştır. Dini kayıt sisteminin eskilerde kaldığı doğrudur. Fakat küçük sistemler yapıyorsanız dini sizin için ideal olur. Dini oldukça hafif yer kaplıyor. Tek avantajsız yanı mySQL gibi performans sağlamaması ve biraz yavaş çalışması. Kullanacak arkadaşlara kolay gelsin.

#include <dini>
Yukarıdaki kodu modun başına ekle. Bu dini eklentisini moduna gömüyor.

new pAdminLevel[MAX_PLAYERS], Float:oPos[MAX_PLAYERS][3];
Yukarıdaki kod veriyi çekiyoruz ya. Ondan sonra onu yerleştirip veriyi kullanmak için yaptığımız işlem. Değişkene koyuyoruz yani. Mesela if(pAdminLevel[playerid] < 1) şeklinde bir şart bağlıyoruz. Onu da modun başına koy.

Oyuncu oyuna girdiğinde karşısına çıkacak olan diyalog ekranını yapıyoruz. Onun için OnPlayerConnect callbackine uğrayıp bir kahve içelim.

new name[24];
GetPlayerName(playerid, name, 24);
if(!dini_Exists("/kayitlar/%s.ini", name)) // Farkındaysan başında ! var. Bu demek oluyor ki isminde bir dosya yoksa. Yani kayıt olmamışsa.
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Kayıt Ol", "Lütfen şifreni gir.", "Tamam", "");
}else{ // Eğer kayıt varsa
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş Yap", "Lütfen şifreni gir.", "Tamam", "");
}

Bu daha görsel yönüydü. Şimdi işlevsel kısmına geçiyoruz. Yani OnDialogResponse kısmına. Kahve istemem ama ben bu sefer. İki saniye de bir kahve içiyoruz. Baydı artık. Uyku namına bir şey kalmadı.

new name[24], str[90];
GetPlayerName(playerid, name, 24);
format(str, sizeof(str), "/kayitlar/%s.ini", name);

if(dialogid == 1)
{
if(!response) Kick(playerid); // Oyuncu esc vs. basarsa kickledik.
if(response)
{
dini_Create(str);
dini_Set(str, "sifre", inputtext); // Şifresini inputtext, kutucuğa girilen şifreyi yazdık.
dini_Set(str, "level", 0); // Admin levelini düzenledik
dini_Set(str, "skor", 0); // skorunu kaydettik
dini_Set(str, "para",0); // parasını kaydettik
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş Yap", "Lütfen şifreni gir.", "Tamam", "");
}
}
if(dialogid == 2)
{
if(response)
{
new sifre[256]; // Şifre artık kaç hane girilebilirse rastgele yazdım boyutunu
format(sifre, sizeof(sifre), "%s", dini_Get(str, "sifre");
if(strcmp(inputtext, sifre) == 0) // Şifre ile inputtext uyuşuyorsa
{
new skor, para;
pAdminLevel[playerid] = dini_Int(str, "level"); // levelını değişkene yazdırdık
skor = dini_Int(str, "skor");
para = dini_Int(str, "para");
dini_Float(str, "posX", oPos[playerid][0]);
dini_Float(str, "posY", oPos[playerid][1]);
dini_Float(str, "posZ", oPos[playerid][2]);
GivePlayerMoney(playerid, para); SetPlayerScore(playerid, skor);
SendClientMessage(playerid, 0xFF0000FF, "Başarıyla giriş yaptınız."); // giriş yaptığını söylemek için mesaj yazdırdık
}
else // şifre yanlışsa
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş Yap", "Yanlış şifre girdin. Lütfen doğrusunu gir.", "Tamam", "");
}
}
}

Ben anlatımlarımı daha çok // kullanarak yaptığım için kod haricinde pek yazmıyorum. Kodları incelerseniz her şeyde neyi neden, niçin yaptığımı yazdım. :kahkaha:

Şimdi işin son kısmı olan kayıt ettirmeye geldi sıra. Oyuncu oyundan çıktığında kayıt etmesi için OnPlayerDisconnect callbackine uğruyoruz. Yalnız daha demin OnDialogResponse callbackinde hiçbir şey vermediler. Çok ayıp ettiler. Yüzlerine söylemedim ama gerçekten olmaz böyle bir şey.

new name[24], str[30], name[24]; GetPlayerName(playerid, name, 24);
format(str, sizeof(str), "/kayitlar/%s.ini", name);

if(dini_Exists(str)) // eğer oyuncu kayıt olmuşsa
{
dini_IntSet(str, "level", pAdminLevel[playerid]);
dini_IntSet(str, "para", GetPlayerMoney(playerid));
dini_IntSet(str, "skor", GetPlayerScore(playerid));
dini_FloatSet(str, "posX", oPos[playerid][0]);
dini_FloatSet(str, "posY", oPos[playerid][1]);
dini_FloatSet(str, "posZ", oPos[playerid][2]);
}

Şimdi de yardım taleplerindeki arkadaşın istediği konum kaydetme şeysinin son durağı OnPlayerSpawn'a geçiyoruz.

SetPlayerPos(playerid, oPos[playerid][0], oPos[playerid][1], oPos[playerid][2]); // Değişkene yazdırdığımız posları burada oyunucunun posu olarak ayarladık.


Bojnâ

Yeni arkadaşlar için yararlı anlatım olmuş.


Under Armour

Dini kayıt sisteminde Şifre farklı gösteriliyor oyuncu bana mesaj atsa abi sifremi unuttum nasıl öğrenir ve yaptığı kayıttaki şifreyi nsl gorebilirim?

SA-MP hakkında bir çok bilgi toplayan. (( GTA'cilar Fan Club ))



Turkiye GTA'cilar yeniden aktif!
Server IP:   91.121.87.14:2214