Merhabalar sıfırdan police pursuit modu yazıyorum ve MySQL'li kayıt/giriş sistemi yaptım. Ancak şifreyi yanlış yazsam bile şifre doğru diyip yönlendiriyor. Ayrıca en son çıktığım yere değil yerin altında bir yerde başlatıyor ve biraz aşağı düştükten sonra mape tekrardan atıyor. Hangi komutlar gerekli söylerseniz atarım hemen.
#include <a_samp>
#include <a_mysql>
#include <sscanf2>
#include <foreach>
#include <zcmd>
#include <easyDialog>
#define SQL_HOST "localhost"
#define SQL_USER "root"
#define SQL_PASS ""
#define SQL_DB "diamond"
#define SPAWN_X 1818.6089
#define SPAWN_Y -1369.1890
#define SPAWN_Z 15.0781
#define SPAWN_A 266.2657
AntiDeAMX()
{
new test[][] =
{
"Unarmed (Fist)",
"Brass K"
};
#pragma unused test
}
enum oBilgi
{
ID,
Skor,
Para,
Admin
};
new OyuncuBilgi[MAX_PLAYERS][oBilgi];
new MySQL:lenard;
main()
{
}
public OnGameModeInit()
{
AntiDeAMX();
SQL();
mysql_log(ERROR | WARNING);
SetGameModeText("Diamond ALPHA");
return 1;
}
public OnGameModeExit()
{
foreach(new i: Player)
{
if(IsPlayerConnected(i))
{
OyuncuKayit(i);
OnPlayerDisconnect(i, 1);
}
}
mysql_close(lenard);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
Giris(playerid);
TogglePlayerSpectating(playerid, true);
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
Dialog:DIALOG_KAYIT(playerid, response, listitem, inputtext[])
{
if(!response) return Kick(playerid);
new query[200];
if(strlen(inputtext) < 3) return Dialog_Show(playerid, DIALOG_KAYIT, DIALOG_STYLE_PASSWORD, "Diamond Police Pursuit", "Hoş geldin, %s.\nKayıt olmak için şifre belirle:", "İleri", "", isim(playerid));
mysql_format(lenard, query, sizeof(query), "INSERT INTO `hesaplar` (Isim, Sifre) VALUES ('%s', '%s')", isim(playerid), inputtext);
mysql_tquery(lenard, query, "Kayit", "d", playerid);
return 1;
}
Dialog:DIALOG_GIRIS(playerid, response, listitem, inputtext[])
{
if(!response) return Kick(playerid);
new query[128];
mysql_format(lenard, query, sizeof(query), "SELECT Sifre, ID FROM hesaplar WHERE Isim = '%s' LIMIT 0, 1", isim(playerid));
mysql_tquery(lenard, query, "VeriYukle", "d", playerid);
return 1;
}
isim(playerid, underscore=1)
{
static
name[MAX_PLAYER_NAME + 1];
GetPlayerName(playerid, name, sizeof(name));
if (!underscore) {
for (new i = 0, len = strlen(name); i < len; i ++) {
if (name[i] == '_') name[i] = ' ';
}
}
return name;
}
SQL()
{
lenard = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DB);
if(mysql_errno(lenard) == 0)
{
print("[Diamond] MySQL baglantisi basarili!");
}
else
{
print("[Diamond] MySQL baglantisi basarisiz!");
}
}
OyuncuKayit(playerid)
{
if(!IsPlayerConnected(playerid))
return 0;
new query[500];
mysql_format(lenard, query, sizeof(query), "UPDATE `hesaplar` SET `ID` = '%d', `Skor` = '%d', `Para` = '%d', `Admin` = '%d'",
OyuncuBilgi[playerid][ID],
OyuncuBilgi[playerid][Skor],
OyuncuBilgi[playerid][Para],
OyuncuBilgi[playerid][Admin]
);
mysql_tquery(lenard, query);
return 1;
}
Giris(playerid)
{
new query[128];
format(query, sizeof(query), "SELECT * FROM `hesaplar` WHERE Isim = '%s'", isim(playerid));
mysql_tquery(lenard, query, "HesapKontrol", "d", playerid);
}
forward HesapKontrol(playerid);
public HesapKontrol(playerid)
{
new rows;
cache_get_row_count(rows);
if(!rows)
{
Dialog_Show(playerid, DIALOG_KAYIT, DIALOG_STYLE_PASSWORD, "Diamond Police Pursuit", "Hoş geldin, %s.\nKayıt olmak için şifre belirle:", "İleri", "", isim(playerid));
SendClientMessage(playerid, -1, "{FF0000}[!]:{FFFFFF} Başarıyla kayıt oldunuz!");
}
else
{
Dialog_Show(playerid, DIALOG_GIRIS, DIALOG_STYLE_PASSWORD, "Diamond Police Pursuit", "Hoş geldin, %s.\nŞifrenizi girin:", "İleri", "", isim(playerid));
}
return 1;
}
forward Kayit(playerid);
public Kayit(playerid)
{
OyuncuBilgi[playerid][ID] = cache_insert_id();
TogglePlayerSpectating(playerid, false);
SetSpawnInfo(playerid, 0, 299, SPAWN_X, SPAWN_Y, SPAWN_Z, SPAWN_A, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
return 1;
}
forward VeriYukle(playerid);
public VeriYukle(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows)
{
TogglePlayerSpectating(playerid, false);
cache_get_value_name_int(0, "ID", OyuncuBilgi[playerid][ID]);
cache_get_value_name_int(0, "Skor", OyuncuBilgi[playerid][Skor]);
cache_get_value_name_int(0, "Para", OyuncuBilgi[playerid][Para]);
cache_get_value_name_int(0, "Admin", OyuncuBilgi[playerid][Admin]);
SetPlayerScore(playerid, OyuncuBilgi[playerid][Skor]);
GivePlayerMoney(playerid, OyuncuBilgi[playerid][Para]);
SendClientMessage(playerid, -1, "{AFAFAF}[!]:{FFFFFF} Başarıyla giriş yaptınız.");
SetSpawnInfo(playerid, 0, 299, SPAWN_X, SPAWN_Y, SPAWN_Z, SPAWN_A, 0, 0, 0, 0, 0, 0);
}
else
{
SendClientMessage(playerid, -1, "{FF0000}[!]:{FFFFFF} Hatalı şifre girdiniz!");
Kick(playerid);
}
return 1;
}
discord verir misin?
Alıntı yapılan: Bölüm kurallarıAçılan taleplerin son iletisi 10 günü geçmesi durumunda; konu kilitlenip, kilitli konular bölümüne taşınacaktır. Sorunu çözülen konularınızı kilitleyip, moderatörlere bildiriniz.
K/A.