GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Anlatımlar => Konuyu başlatan: Rain - 09 Haziran 2021, 12:44:06

Başlık: Dini - Kayit Sistemi Yapimi
Gönderen: Rain - 09 Haziran 2021, 12:44:06
Merhaba!

Dini MySQL'in yaninda zayif kalsada yinede benim gibi kullananlar var.

Bende hem zaman gecirmek, arayanlara yardim etmek icin bunu yazmaya karar verdim.

PAWN Kodu: Seç
#include <dini>
Dini'yi includelamadan baslayamayiz :)

PAWN Kodu: Seç
#define Kayit 0
#define Giris 1

Diyaloglarinizi kaydettiginiz yere koyabilirsiniz. //Kayit ve Giris diyalogu icin kullanilicak.

PAWN Kodu: Seç
new GirisYapti[MAX_PLAYERS];
New fonksiyonunu kaydettiginiz yere koyabilirsiniz //Bunu kullanarak kisinin giris yapip yapmadigini belirleyecegiz.

PAWN Kodu: Seç
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.

PAWN Kodu: Seç
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.

PAWN Kodu: Seç
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:
Başlık: Ynt: Dini - Kayit Sistemi Yapimi
Gönderen: Rylox - 09 Haziran 2021, 12:57:02
Eline sağlık çok güzel olmuş,başarılar
Başlık: Ynt: Dini - Kayit Sistemi Yapimi
Gönderen: sharax - 09 Haziran 2021, 19:42:04
Eline sağlık
Başlık: Ynt: Dini - Kayit Sistemi Yapimi
Gönderen: winsual - 10 Haziran 2021, 12:57:00
Ellerine sağlık, kaliteli anlatım/konu olmuş. :helal:
Başlık: Ynt: Dini - Kayit Sistemi Yapimi
Gönderen: Kaanki0 - 20 Haziran 2021, 03:12:07
Kaanki0#9224

Selam, arkadaş ekleyebilir misin?