Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <YSI_Data\y_iterate>
- #include <a_mysql>
- #define mysql_host "localhost"
- #define mysql_user "root"
- #define mysql_pass ""
- #define mysql_database "test_database"
- new MySQL:Database;
- new PogresnaLozinka[MAX_PLAYERS];
- enum PlayerInfo {
- ID,
- Name[25],
- Password[65],
- Score
- }
- new PI[MAX_PLAYERS][PlayerInfo];
- enum {
- d_reg,
- d_log
- }
- main() {
- print("Mod je upjesno ucitan");
- }
- public OnGameModeInit() {
- Database = mysql_connect(mysql_host, mysql_user, mysql_pass, mysql_database);
- if(Database == MYSQL_INVALID_HANDLE || mysql_errno(Database) != 0) {
- print("Neuspjesno povezivanje sa databazom");
- SendRconCommand("exit");
- return 0;
- }
- return 1;
- }
- public OnPlayerConnect(playerid) {
- new str[128];
- GetPlayerName(playerid, PI[playerid][Name], MAX_PLAYER_NAME);
- mysql_format(Database, str, sizeof(str), "SELECT * FROM `users` WHERE `Username` = '%e' LIMIT 1", PI[playerid][Name]);
- mysql_tquery(Database, str, "OnPlayerDataCheck", "i", playerid);
- //
- PogresnaLozinka[playerid] = 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- switch(dialogid) {
- case d_reg: {
- if(strlen(inputtext) < 6 || strlen(inputtext) > 24) {
- SendClientMessage(playerid, -1, "Vasa lozinka ne moze biti kraca od 6 i duza od 24 karaktera");
- ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, "Registracija na server","Molimo vas unesite vasu lozinku da bi ste se registrirali","Register","Quit");
- return 0;
- }
- else {
- new str[256];
- SHA256_PassHash(inputtext, GetName(playerid), PI[playerid][Password], 65);
- mysql_format(Database, str, sizeof(str),"INSERT INTO `users` (`Username`, `Password`, `Score`) VALUES ('%e', '%s', '0')", PI[playerid][Name], PI[playerid][Password]);
- mysql_tquery(Database, str);
- SetSpawnInfo(playerid, 0, 26, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
- SpawnPlayer(playerid);
- SetPlayerScore(playerid, PI[playerid][Score]);
- }
- }
- case d_log: {
- if(strlen(inputtext) < 6 || strlen(inputtext) > 24) {
- SendClientMessage(playerid, -1, "Vasa lozinka ne moze biti kraca od 6 i duza od 24 karaktera");
- ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, "Registracija na server","Molimo vas unesite vasu lozinku da bi ste se registrirali","Register","Quit");
- return 0;
- }
- else {
- new str[128], accpass[65];
- SHA256_PassHash(accpass, GetName(playerid), PI[playerid][Password], 65);
- if(strcmp(accpass, PI[playerid][Password]) != 0) {
- PogresnaLozinka[playerid]++;
- if(PogresnaLozinka[playerid] == 3) {
- Kick(playerid);
- }
- else {
- SendClientMessage(playerid, -1, "Pogresna lozinka, molimo vas pokusajte ponovno");
- ShowPlayerDialog(playerid, d_log, DIALOG_STYLE_PASSWORD, "Prijava na server","Molimo vas unesite vasu lozinku da bi ste se prijavili","Login","Quit");
- return 0;
- }
- }
- mysql_format(Database, str, sizeof(str), "SELECT * FROM `users` WHERE `Username` = '%e' LIMIT 1", PI[playerid][Name]);
- mysql_tquery(Database, str, "LoadAccount", "i", playerid);
- //
- SetSpawnInfo(playerid, 0, 26, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
- SpawnPlayer(playerid);
- SetPlayerScore(playerid, PI[playerid][Score]);
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) {
- if(playertextid == TeleportSystem[playerid][2]) {
- SendClientMessage(playerid, -1, "Teleportovali ste se do opstine");
- SetPlayerPos(playerid, 1477.0564,-1735.4347,13.3828);
- }
- if(playertextid == TeleportSystem[playerid][3]) {
- SendClientMessage(playerid, -1, "Teleportovali ste se do banke");
- SetPlayerPos(playerid, 1467.5403,-1028.0187,23.8281);
- }
- if(playertextid == TeleportSystem[playerid][4]) {
- SendClientMessage(playerid, -1, "Teleportovali ste se do zlatare");
- SetPlayerPos(playerid, 1981.5616,-1154.2714,23.6873);
- }
- return 1;
- }
- public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ) {
- if(!IsPlayerAdmin(playerid)) return false;
- SetPlayerPos(playerid, fX, fY, fZ);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason) {
- SavePlayer(playerid);
- return 1;
- }
- forward LoadAccount(playerid);
- public LoadAccount(playerid) {
- new rows;
- cache_get_row_count(rows);
- if(!rows) return 0;
- else {
- cache_get_value_int(0, "ID", PI[playerid][ID]);
- cache_get_value_int(0, "Score", PI[playerid][Score]);
- }
- return 1;
- }
- forward OnPlayerDataCheck(playerid);
- public OnPlayerDataCheck(playerid) {
- new rows;
- cache_get_row_count(rows);
- if(rows > 0) {
- cache_get_value(0, "Password", PI[playerid][Password], 65);
- ShowPlayerDialog(playerid, d_log, DIALOG_STYLE_PASSWORD, "Prijava na server","Molimo vas unesite vasu lozinku da bi ste se prijavili","Login","Quit");
- }
- else {
- ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, "Registracija na server","Molimo vas unesite vasu lozinku da bi ste se registrirali","Register","Quit");
- }
- return 1;
- }
- public OnGameModeExit() {
- foreach(new a: Player) {
- SavePlayer(a);
- }
- mysql_close(Database);
- return 0;
- }
- stock SavePlayer(playerid) {
- new str[256];
- mysql_format(Database, str, sizeof(str),"UPDATE `users` SET `Score` = %d WHERE `ID` = %d LIMIT 1", PI[playerid][Score], PI[playerid][ID]);
- mysql_tquery(Database, str);
- return 1;
- }
- stock GetName(playerid) {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement