public OnPlayerConnect(playerid)
{
g_MysqlRaceCheck[playerid]++;
ChatBosalt(playerid);
SendClientMessage(playerid,-1, "{FFBF00}(( {00FF00}[BILGI]: {FFFFFF}Sunucu ve sizin aranizda baglanti saglaniyor. Lutfen bekleyin. {FFBF00}))");
HataMesajiGonder(playerid,"Test");
SetTimerEx("Senkronize", 2000, false, "i", playerid);
return 1;
}
forward Senkronize(playerid);
public Senkronize(playerid)
{
static const empty_player[E_PLAYERS];
pInfo[playerid] = empty_player;
GetPlayerName(playerid, pInfo[playerid][Name], MAX_PLAYER_NAME);
new query[103];
mysql_format(g_SQL, query, sizeof query, "SELECT * FROM `players` WHERE `name` = '%e' LIMIT 1", pInfo[playerid][Name]);
mysql_tquery(g_SQL, query, "OnPlayerDataLoaded", "dd", playerid, g_MysqlRaceCheck[playerid]);
return 1;
}
forward OnPlayerDataLoaded(playerid, race_check);
public OnPlayerDataLoaded(playerid, race_check)
{
TextDrawShowForPlayer(playerid, Text: TDEditor_TD[0]);
TextDrawShowForPlayer(playerid, Text: TDEditor_TD[1]);
TextDrawShowForPlayer(playerid, Text: TDEditor_TD[2]);
TextDrawShowForPlayer(playerid, Text: TDEditor_TD[3]);
if (race_check != g_MysqlRaceCheck[playerid]) return Kick(playerid);
new string[115];
if(cache_num_rows() > 0)
{
cache_get_value(0, "password", pInfo[playerid][Password], 65);
cache_get_value(0, "salt", pInfo[playerid][Salt], 17);
pInfo[playerid][Cache_ID] = cache_save();
strreplace(pInfo[playerid][Name],'_',' ');
format(string, sizeof string, "{FFFFFF}Sunucuya tekrar hosgeldin {FFBF00}%s{FFFFFF}. Lьtfen asagidaki kutucuga sifreni girerek giris yap:", pInfo[playerid][Name]);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{0174DF}[T-RP]: {FFFFFF}Giris", string, "Giris", "Зikis");
SendClientMessage(playerid, -1, "{FFBF00}(( {FE2E9A}[UYARI]: {FFFFFF}30 saniye icerisinde giris yapmazsaniz sunucudan atilacaksiniz. {FFBF00}))");
pInfo[playerid][LoginTimer] = SetTimerEx("OnLoginTimeout", SECONDS_TO_LOGIN * 1000, false, "d", playerid);
}
else
{
strreplace(pInfo[playerid][Name],'_',' ');
format(string, sizeof string, "{FFFFFF}Hosgeldin {FFBF00}%s{FFFFFF}, asagidaki kutucuga sifreni girerek kaydolabilirsin:", pInfo[playerid][Name]);
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{0174DF}[T-RP]: {FFFFFF}Kayit", string, "Kaydol", "Зikis");
}
return 1;
}
case DIALOG_REGISTER:
{
if (!response) return Kick(playerid);
if (strlen(inputtext) <= 5) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{0174DF}[T-RP]: {FFFFFF}Kayit", "{FF0000}Sifreniz 5 karakterden uzun olmalidir!\n{FFFFFF}Lьtfen sifrenizi asagidaki kutucuga giriniz:", "Kaydol", "Зikis");
for (new i = 0; i < 16; i++) pInfo[playerid][Salt][i] = random(94) + 33;
SHA256_PassHash(inputtext, pInfo[playerid][Salt], pInfo[playerid][Password], 65);
new query[221];
mysql_format(g_SQL, query, sizeof query, "INSERT INTO `players` (`name`, `password`, `salt`) VALUES ('%e', '%s', '%e')", pInfo[playerid][Name], pInfo[playerid][Password], pInfo[playerid][Salt]);
mysql_tquery(g_SQL, query, "OnPlayerRegister", "d", playerid);
SpawnPlayer(playerid);
}
case DIALOG_LOGIN:
{
if (!response) return Kick(playerid);
new hashed_pass[65];
SHA256_PassHash(inputtext, pInfo[playerid][Salt], hashed_pass, 65);
if (strcmp(hashed_pass, pInfo[playerid][Password]) == 0)
{
cache_set_active(pInfo[playerid][Cache_ID]);
AssignPlayerData(playerid);
cache_delete(pInfo[playerid][Cache_ID]);
pInfo[playerid][Cache_ID] = MYSQL_INVALID_CACHE;
KillTimer(pInfo[playerid][LoginTimer]);
pInfo[playerid][LoginTimer] = 0;
pInfo[playerid][IsLoggedIn] = true;
SpawnPlayer(playerid);
TogglePlayerSpectating( playerid, 0);
TextDrawHideForPlayer(playerid, Text:TDEditor_TD[0]);
TextDrawHideForPlayer(playerid, Text:TDEditor_TD[1]);
TextDrawHideForPlayer(playerid, Text:TDEditor_TD[2]);
TextDrawHideForPlayer(playerid, Text:TDEditor_TD[3]);
}
else
{
pInfo[playerid][LoginAttempts]++;
if (pInfo[playerid][LoginAttempts] >= 3)
{
ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "{0174DF}[T-RP]: {FFFFFF}Giris", "Sifreyi 3 defa yanlis girdiginiz iзin sunucudan atildiniz.", "Tamam", "");
DelayedKick(playerid);
}
else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{0174DF}[T-RP]: {FFFFFF}Giris", "{FF0000}Yanlis sifre girdiniz.\n{FFFFFF}Lьtfen sifrenizi asagidaki kutucuga giriniz:", "Giris", "Зikis");
}
}
forward OnPlayerRegister(playerid);
public OnPlayerRegister(playerid)
{
pInfo[playerid][ID] = cache_insert_id();
TextDrawHideForPlayer(playerid, Text:TDEditor_TD[0]);
TextDrawHideForPlayer(playerid, Text:TDEditor_TD[1]);
TextDrawHideForPlayer(playerid, Text:TDEditor_TD[2]);
TextDrawHideForPlayer(playerid, Text:TDEditor_TD[3]);
pInfo[playerid][IsLoggedIn] = true;
new rand[MAX_PLAYERS];
rand[playerid] = random(9999);
SpawnPlayer(playerid);
TogglePlayerSpectating(playerid, 0);
pInfo[playerid][YeniKayit] = 1;
SetPlayerPos(playerid,361.9724,169.4080,1020.7891);
SetPlayerFacingAngle(playerid, 0.0);
TogglePlayerControllable(playerid, false);
SetPlayerCameraPos(playerid, 364.6817, 173.9626, 1026.5891);
SetPlayerCameraLookAt(playerid, 361.9724, 169.4080, 1025.7891);
SetPlayerInterior(playerid, 3);
SetPlayerVirtualWorld(playerid, rand[playerid]);
KayitAktor[playerid] = CreateActor(211, 362.2021,171.7148,1025.7891, 194.9519);
SetActorVirtualWorld(KayitAktor[playerid], rand[playerid]);
PreloadActorAnimations(KayitAktor[playerid]);
ApplyActorAnimation(KayitAktor[playerid], "PED", "SEAT_IDLE", 4.0, 0, 0, 0, 1, 0);
SendClientMessage(playerid, COLOR_EMOTE,"* Karsinizda orta yaslarinda bayan bir nьfus calisani oturmaktadir,цnьnde bilgisayari durmaktadir. {FFFFFF}(( Nьfus calisani ))");
ShowPlayerDialog(playerid, DIALOG_WELCOME, DIALOG_STYLE_MSGBOX, "{FFBF00}Hosgeldiniz!", "Bu sunucu bir rol yapma sunucusudur. Burda gцrьp gцrebileceginiz her sey hayal urunudur.\n Sunucu Yigit ATAK tarafindan 0'dan kodlanmistir.\n Simdi karakterinizi yaratabilirsiniz.","Tamam","");
return 1;
}
I cant really see anything strange there... try these, even tho they might be useless:
Create a cache, using new Cache:cacheid = mysql_query(... Debug the number of cache_num_rows Use '%s' instead of '%e' in SELECT |