Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- //#include <foreach>
- #include <zcmd>
- #define MYSQL_HOST "localhost"
- #define MYSQL_USER "root"
- #define MYSQL_DATABASE "server"
- #define MYSQL_PASSWORD ""
- #define SERVER_NAME "Corsica Vinewood Life"
- #define SPAWN_X 10.0
- #define SPAWN_Y 10.0
- #define SPAWN_Z 14.0
- #define SPAWN_A 0.0
- #define COLOR_CLIENT (0xAAC4E5FF)
- #define COLOR_WHITE (0xFFFFFFFF)
- #define COLOR_RED (0xFF0000FF)
- #define COLOR_CYAN (0x33CCFFFF)
- #define COLOR_LIGHTRED (0xFF6347FF)
- #define COLOR_LIGHTGREEN (0x9ACD32FF)
- #define COLOR_YELLOW (0xFFFF00FF)
- #define COLOR_GREY (0xAFAFAFFF)
- #define COLOR_HOSPITAL (0xFF8282FF)
- #define COLOR_PURPLE (0xD0AEEBFF)
- #define COLOR_LIGHTYELLOW (0xF5DEB3FF)
- #define COLOR_DARKBLUE (0x1394BFFF)
- #define COLOR_ORANGE (0xFFA500FF)
- #define COLOR_LIME (0x00FF00FF)
- #define COLOR_GREEN (0x33CC33FF)
- #define COLOR_BLUE (0x2641FEFF)
- #define COLOR_FACTION (0xBDF38BFF)
- #define COLOR_RADIO (0x8D8DFFFF)
- #define COLOR_LIGHTBLUE (0x007FFFFF)
- #define COLOR_SERVER (0xFFFF90FF)
- #define COLOR_DEPARTMENT (0xFF8282AA)
- #define COLOR_ADMINCHAT (0x33EE33FF)
- #define DEFAULT_COLOR (0xFFFFFFFF)
- // ----- [Chat Zone] ----- //
- #define SendServerMessage(%0,%1) \
- SendClientMessageEx(%0, COLOR_GREEN, "[SERVER]{FFFFFF} "%1)
- #define SendSyntaxMessage(%0,%1) \
- SendClientMessageEx(%0, COLOR_GREY, "[SYNTAX]{FFFFFF} "%1)
- #define SendErrorMessage(%0,%1) \
- SendClientMessageEx(%0, COLOR_LIGHTRED, "[ERROR]{FFFFFF} "%1)
- #define SendAdminAction(%0,%1) \
- SendClientMessageEx(%0, COLOR_CLIENT, "[ADMIN]{FFFFFF} "%1)
- #define SendGerMessage(%0,%1) \
- SendClientMessageEx(%0, COLOR_PURPLE, "[!]{FFFFFF} "%1)
- #define SendAlertMessage(%0,%1) \
- SendClientMessageEx(%0, COLOR_RED, "[!]{FFFFFF} "%1)
- // -------------------------- //
- // ----- [Account Zone] ----- //
- forward OnAccountCheck(playerid);
- forward OnAccountRegister(playerid);
- forward OnAccountLoad(playerid);
- // -------------------------- //
- enum
- {
- LoginDialog,
- RegisterDialog
- };
- new
- mysql;
- native WP_Hash(buffer[], len, const str[]);
- enum PlayerData
- {
- ID,
- Name[MAX_PLAYER_NAME],
- Password[129],
- IP[16],
- Admin,
- VIP,
- Money,
- Float:posX,
- Float:posY,
- Float:posZ,
- Float:posA
- };
- new PlayerInfo[MAX_PLAYERS][PlayerData];
- main()
- {
- print("\n----------------------------------");
- print(" This gamemode created by sss");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- SetGameModeText("Blank Script");
- mysql_log(LOG_ALL);
- mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);
- if(mysql_errno() != 0)
- {
- printf("[MySQL] The connection has failed.");
- }
- else
- {
- printf("[MySQL] The connection was successful.");
- }
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- /* SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);*/
- SpawnPlayer(playerid);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- TogglePlayerSpectating(playerid, true);
- new
- query[128],
- playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playername, sizeof(playername));
- mysql_format(mysql, query, sizeof(query), "SELECT `Password`, `ID` FROM `accounts` WHERE `Name` = '%e' LIMIT 1", playername);
- mysql_tquery(mysql, query, "OnAccountCheck", "i", playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new
- query[128],
- Float:pos[4];
- GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
- GetPlayerFacingAngle(playerid, pos[3]);
- mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Money` = %d, `PosX` = %f, `PosY` = %f, `PosZ` = %f, `PosA` = %f WHERE `ID` = %d",
- GetPlayerMoney(playerid), pos[0], pos[1], pos[2], pos[3], PlayerInfo[playerid][ID]);
- mysql_tquery(mysql, query, "", "");
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerPos(playerid, -56.8166,-22.3012,3.1172);
- SetPlayerSkin(playerid, 299);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- // SpawnPlayer(playerid);
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- CMD:kill(playerid, params[]) {
- SetPlayerHealth(playerid, 0);
- return 1;
- }
- 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[])
- {
- switch(dialogid)
- {
- case LoginDialog:
- {
- if(!response) Kick(playerid);
- new
- hashpass[129],
- query[100],
- playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playername, sizeof(playername));
- WP_Hash(hashpass, sizeof(hashpass), inputtext);
- if(!strcmp(hashpass, PlayerInfo[playerid][Password]))
- {
- mysql_format(mysql, query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name` = '%e' LIMIT 1", playername);
- mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid);
- }
- else
- {
- SendErrorMessage(playerid, "¤Ø³ãÊèÃËÑʼèÒ¹äÁè¶Ù¡µéͧ");
- ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_INPUT, "[Login]", "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè "SERVER_NAME"\nâ»Ã´ÍèÒ¹: ¡ÃسÒãÊèÃËÑʼèҹŧ´éÒ¹ÅèÒ§à¾×èÍà¢éÒàÅè¹", "à¢éÒà¡Á!", "ÍÍ¡¨Ò¡à¡Á");
- }
- }
- case RegisterDialog:
- {
- if(!response) return Kick(playerid);
- if(strlen(inputtext) < 5)
- {
- SendErrorMessage(playerid, "ÃËÑʼèÒ¹¤ÇÃÁÕÍÂèÒ§¹éÍ 5 µÑÇÍÑ¡ÉâÖé¹ä»");
- return ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_INPUT, "[Registration]", "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè "SERVER_NAME"\nâ»Ã´ÍèÒ¹: ¡ÃسÒãÊèÃËÑʼèÒ¹·Õè¤Ø³µéͧ¡ÒÃŧ´éÒ¹ÅèÒ§", "ŧ·ÐàºÕ¹", "ÍÍ¡¨Ò¡à¡Á");
- }
- new
- query[512],
- playername[MAX_PLAYER_NAME],
- playerip[16];
- GetPlayerName(playerid, playername, sizeof(playername));
- GetPlayerIp(playerid, playerip, sizeof(playerip));
- WP_Hash(PlayerInfo[playerid][Password], 129, inputtext);
- mysql_format(mysql, query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Password`, `IP`, `Admin`, `VIP`, `Money`, `PosX`, `PosY`, `PosZ`, `PosA`) VALUES ('%e', '%e', '%e', 0, 0, 0, %f, %f, %f, %f)", playername, PlayerInfo[playerid][Password], playerip, SPAWN_X, SPAWN_Y, SPAWN_Z, SPAWN_A);
- mysql_tquery(mysql, query, "OnAccountRegister", "i", playerid);
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- public OnAccountLoad(playerid)
- {
- PlayerInfo[playerid][Admin] = cache_get_field_content_int(0, "Admin");
- PlayerInfo[playerid][VIP] = cache_get_field_content_int(0, "VIP");
- PlayerInfo[playerid][Money] = cache_get_field_content_int(0, "Money");
- PlayerInfo[playerid][posX] = cache_get_field_content_float(0, "PosX");
- PlayerInfo[playerid][posY] = cache_get_field_content_float(0, "PosY");
- PlayerInfo[playerid][posZ] = cache_get_field_content_float(0, "PosZ");
- PlayerInfo[playerid][posA] = cache_get_field_content_float(0, "PosA");
- TogglePlayerSpectating(playerid, false);
- GivePlayerMoney(playerid, PlayerInfo[playerid][Money]);
- SetSpawnInfo(playerid, 0, 299, PlayerInfo[playerid][posX], PlayerInfo[playerid][posY], PlayerInfo[playerid][posZ], PlayerInfo[playerid][posA], 0, 0, 0, 0, 0, 0);
- SpawnPlayer(playerid);
- SendServerMessage(playerid, "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè¨Õ·ÕàÍÍ͹äŹì");
- return 1;
- }
- public OnAccountRegister(playerid)
- {
- PlayerInfo[playerid][ID] = cache_insert_id();
- printf("[Registration] New account registered. Database ID: [%d]", PlayerInfo[playerid][ID]);
- TogglePlayerSpectating(playerid, false);
- SetSpawnInfo(playerid, 0, 23, SPAWN_X, SPAWN_Y, SPAWN_Z, SPAWN_A, 0, 0, 0, 0, 0, 0);
- SpawnPlayer(playerid);
- return 1;
- }
- public OnAccountCheck(playerid)
- {
- new
- rows,
- fields;
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- cache_get_field_content(0, "Password", PlayerInfo[playerid][Password], mysql, 129);
- PlayerInfo[playerid][ID] = cache_get_field_content_int(0, "ID");
- ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_INPUT, "[Login]", "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè "SERVER_NAME"\nâ»Ã´ÍèÒ¹: ¡ÃسÒãÊèÃËÑʼèҹŧ´éÒ¹ÅèÒ§à¾×èÍà¢éÒàÅè¹", "à¢éÒà¡Á!", "ÍÍ¡¨Ò¡à¡Á");
- }
- else
- {
- ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_INPUT, "[Registration]", "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè "SERVER_NAME"\nâ»Ã´ÍèÒ¹: ¡ÃسÒãÊèÃËÑʼèÒ¹·Õè¤Ø³µéͧ¡ÒÃŧ´éÒ¹ÅèÒ§", "ŧ·ÐàºÕ¹", "ÍÍ¡¨Ò¡à¡Á");
- }
- return 1;
- }
- stock SendClientMessageEx(playerid, color, const text[], {Float, _}:...)
- {
- new
- args,
- str[144];
- /*
- * Custom function that uses #emit to format variables into a string.
- * This code is very fragile; touching any code here will cause crashing!
- */
- if ((args = numargs()) == 3)
- {
- SendClientMessage(playerid, color, text);
- }
- else
- {
- while (--args >= 3)
- {
- #emit LCTRL 5
- #emit LOAD.alt args
- #emit SHL.C.alt 2
- #emit ADD.C 12
- #emit ADD
- #emit LOAD.I
- #emit PUSH.pri
- }
- #emit PUSH.S text
- #emit PUSH.C 144
- #emit PUSH.C str
- #emit PUSH.S 8
- #emit SYSREQ.C format
- #emit LCTRL 5
- #emit SCTRL 4
- SendClientMessage(playerid, color, str);
- #emit RETN
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment