Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- /* -----------------------------
- Deathmatch 1.0
- por Pedro Miranda
- Skype: pedro.miranda91
- ----------------------------- */
- main();
- new DB:main_database;
- enum {
- DIALOG_REGISTER,
- DIALOG_LOGIN,
- DIALOG_RANKING
- }
- public OnGameModeInit() {
- main_database = db_open("sqlite.db");
- db_query(main_database, "CREATE TABLE IF NOT EXISTS `player_info` (`name`, `password`, `money`, `kills`, `deaths`)");
- SendRconCommand("mapname Los Santos");
- SendRconCommand("gamemodetext DM 1.0");
- SendRconCommand("hostname Deathmatch 1.0");
- for(new i; i < 300; ++i)
- AddPlayerClass(i, 2232.2813, -1158.4985, 29.7969, 0.3858, 24, 9999, 25, 9999, 34, 9999);
- UsePlayerPedAnims();
- return true;
- }
- public OnGameModeExit() {
- db_close(main_database);
- return true;
- }
- public OnPlayerConnect(playerid) {
- new
- playername[25],
- stringoutput[128],
- DBResult:queryresult;
- GetPlayerName(playerid, playername, sizeof playername);
- format(stringoutput, sizeof stringoutput, "SELECT * FROM `player_info` WHERE `name` = '%s'", DB_Escape(playername));
- queryresult = db_query(main_database, stringoutput);
- if(db_num_rows(queryresult)) {
- format(stringoutput, sizeof stringoutput, "{ffffff}Olá, {1e90ff}%s{ffffff}!\n\nDigite sua senha abaixo para logar.", playername);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{ffffff}Login", stringoutput, "Login", "Sair");
- }
- else {
- format(stringoutput, sizeof stringoutput, "{ffffff}Olá, {1e90ff}%s{ffffff}!\nVocê ainda não é registrado no servidor.\n\nDigite uma senha abaixo para se registrar.", playername);
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{ffffff}Registro", stringoutput, "Registrar", "Sair");
- }
- db_free_result(queryresult);
- return true;
- }
- public OnPlayerDisconnect(playerid, reason) {
- if(GetPVarInt(playerid, "playerLogged")) {
- new playername[25], stringoutput[150];
- GetPlayerName(playerid, playername, sizeof playername);
- format(stringoutput, sizeof stringoutput, "UPDATE player_info SET money = %d, kills = %d, deaths = %d WHERE name = '%s'",
- GetPlayerMoney(playerid),
- GetPVarInt(playerid, "playerKills"),
- GetPVarInt(playerid, "playerDeaths"),
- DB_Escape(playername));
- db_query(main_database, stringoutput);
- format(stringoutput, 64, "Server: {ffffff}%s deixou o servidor.", playername);
- SendClientMessageToAll(0xff0000ff, stringoutput);
- TextDrawDestroy(Text:GetPVarInt(playerid, "playerkTD"));
- TextDrawDestroy(Text:GetPVarInt(playerid, "playerdTD"));
- }
- return true;
- }
- public OnPlayerRequestClass(playerid, classid) {
- SetPlayerVirtualWorld(playerid, (playerid + 1));
- SetPlayerPos(playerid, 1025.5751, -2140.7637, 39.2032);
- SetPlayerCameraPos(playerid, 1019.7552, -2141.0266, 37.7274);
- SetPlayerCameraLookAt(playerid, 1021.9974, -2140.9907, 38.3012);
- SetPlayerFacingAngle(playerid, 82.6125);
- return true;
- }
- public OnPlayerDeath(playerid, killerid, reason) {
- new
- playername[25],
- stringoutput[128];
- GivePlayerMoney(playerid, 100); // Fix default money taking
- SetPVarInt(playerid, "playerDeaths", (GetPVarInt(playerid, "playerDeaths") + 1));
- if(killerid != 0xffff) {
- if(reason < 42) {
- new killername[25];
- GetPlayerName(killerid, killername, sizeof killername);
- SetPVarInt(killerid, "playerKills", (GetPVarInt(playerid, "playerKills") + 1));
- format(stringoutput, sizeof stringoutput, " Vish! %s te matou e levou toda sua grana!", killername);
- SendClientMessage(playerid, 0xff0000ff, stringoutput);
- format(stringoutput, sizeof stringoutput, " Boa garoto!! Você matou %s e levou toda a grana do otário!!", playername);
- SendClientMessage(playerid, 0xf6f600ff, stringoutput);
- GivePlayerMoney(killerid, GetPlayerMoney(playerid));
- ResetPlayerMoney(playerid);
- format(stringoutput, sizeof stringoutput, "Kills: ~y~%02d", GetPVarInt(killerid, "playerKills"));
- TextDrawSetString(Text:GetPVarInt(killerid, "playerkTD"), stringoutput);
- }
- }
- format(stringoutput, sizeof stringoutput, "Mortes: ~y~%02d", GetPVarInt(playerid, "playerDeaths"));
- TextDrawSetString(Text:GetPVarInt(playerid, "playerdTD"), stringoutput);
- TextDrawHideForPlayer(playerid, Text:GetPVarInt(playerid, "playerkTD"));
- TextDrawHideForPlayer(playerid, Text:GetPVarInt(playerid, "playerdTD"));
- return true;
- }
- public OnPlayerRequestSpawn(playerid) {
- return GetPVarInt(playerid, "playerLogged");
- }
- public OnPlayerSpawn(playerid) {
- SetPlayerVirtualWorld(playerid, 0);
- TextDrawShowForPlayer(playerid, Text:GetPVarInt(playerid, "playerkTD"));
- TextDrawShowForPlayer(playerid, Text:GetPVarInt(playerid, "playerdTD"));
- return true;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- new
- playername[25],
- stringoutput[150],
- DBResult:queryresult;
- GetPlayerName(playerid, playername, sizeof playername);
- if(dialogid == DIALOG_REGISTER) {
- if(!response)
- return Kick(playerid);
- if(!(4 < strlen(inputtext) < 33))
- return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{ffffff}Registro", "{ffffff}Sua senha deve ter no mínimo 5 e no máximo 32 caracteres.\n\nPor favor, tente novamente.", "Registrar", "Sair");
- format(stringoutput, sizeof stringoutput, "INSERT INTO player_info (name, password, money, kills, deaths) VALUES ('%s', '%s', 5000, 0, 0)", DB_Escape(playername), DB_Escape(inputtext));
- db_query(main_database, stringoutput);
- format(stringoutput, sizeof stringoutput, "{ffffff}Muito bem, {1e90ff}%s{ffffff}!\nVocê se registrou com sucesso.\n\nDigite sua senha abaixo para logar.", playername);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{ffffff}Login", stringoutput, "Login", "Sair");
- }
- else if(dialogid == DIALOG_LOGIN) {
- if(!response)
- return Kick(playerid);
- format(stringoutput, sizeof stringoutput, "SELECT * FROM player_info WHERE name = '%s' AND password = '%s'", DB_Escape(playername), DB_Escape(inputtext));
- queryresult = db_query(main_database, stringoutput);
- if(db_num_rows(queryresult)) {
- SetPVarInt(playerid, "playerLogged", 1);
- db_get_field_assoc(queryresult, "money", stringoutput, 32);
- ResetPlayerMoney(playerid); GivePlayerMoney(playerid, strval(stringoutput));
- db_get_field_assoc(queryresult, "kills", stringoutput, 32);
- SetPVarInt(playerid, "playerKills", strval(stringoutput));
- db_get_field_assoc(queryresult, "deaths", stringoutput, 32);
- SetPVarInt(playerid, "playerDeaths", strval(stringoutput));
- SetPVarInt(playerid, "playerkTD", _:TextDrawCreate(498.000000, 101.000000, "Kills:"));
- TextDrawBackgroundColor(Text:GetPVarInt(playerid, "playerkTD"), 255);
- TextDrawFont(Text:GetPVarInt(playerid, "playerkTD"), 1);
- TextDrawLetterSize(Text:GetPVarInt(playerid, "playerkTD"), 0.500000, 1.000000);
- TextDrawColor(Text:GetPVarInt(playerid, "playerkTD"), -1);
- TextDrawSetOutline(Text:GetPVarInt(playerid, "playerkTD"), 1);
- TextDrawSetProportional(Text:GetPVarInt(playerid, "playerkTD"), 1);
- SetPVarInt(playerid, "playerdTD", _:TextDrawCreate(497.000000, 112.000000, "Mortes:"));
- TextDrawBackgroundColor(Text:GetPVarInt(playerid, "playerdTD"), 255);
- TextDrawFont(Text:GetPVarInt(playerid, "playerdTD"), 1);
- TextDrawLetterSize(Text:GetPVarInt(playerid, "playerdTD"), 0.500000, 1.000000);
- TextDrawColor(Text:GetPVarInt(playerid, "playerdTD"), -1);
- TextDrawSetOutline(Text:GetPVarInt(playerid, "playerdTD"), 1);
- TextDrawSetProportional(Text:GetPVarInt(playerid, "playerdTD"), 1);
- format(stringoutput, sizeof stringoutput, "Kills: ~y~%02d", GetPVarInt(playerid, "playerKills"));
- TextDrawSetString(Text:GetPVarInt(playerid, "playerkTD"), stringoutput);
- format(stringoutput, sizeof stringoutput, "Mortes: ~r~%02d", GetPVarInt(playerid, "playerDeaths"));
- TextDrawSetString(Text:GetPVarInt(playerid, "playerdTD"), stringoutput);
- format(stringoutput, sizeof stringoutput, "Server: {ffffff}%s conectou-se!", playername);
- SendClientMessageToAll(0x32cd32ff, stringoutput);
- }
- else {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{ffffff}Login", "{ffffff}Senha incorreta!\n\nPor favor, tente novamente.", "Login", "Sair");
- }
- db_free_result(queryresult);
- }
- return true;
- }
- public OnPlayerCommandText(playerid, cmdtext[]) {
- if(!strcmp("ranking", cmdtext[1], true)) {
- static
- i,
- result[32],
- playerkills,
- dialogstring[64 * 10],
- DBResult:queryresult;
- queryresult = db_query(main_database, "SELECT name, kills FROM player_info ORDER BY kills DESC LIMIT 10");
- for(i = 0; i != db_num_rows(queryresult); ++i) {
- db_get_field_assoc(queryresult, "kills", result, sizeof result);
- playerkills = strval(result);
- db_get_field_assoc(queryresult, "name", result, sizeof result);
- format(dialogstring, sizeof dialogstring, "%s %02d. %s - %02d assassinatos\n", dialogstring, (i + 1), result, playerkills);
- db_next_row(queryresult);
- }
- db_free_result(queryresult);
- ShowPlayerDialog(playerid, DIALOG_RANKING, DIALOG_STYLE_LIST, "{ffffff}Ranking", dialogstring, "Fechar", "");
- return true;
- }
- return SendClientMessage(playerid, 0x1e90ffff, "Server: {ffffff}Este comando não existe!");
- }
- stock DB_Escape(text[])
- {
- new
- ret[80 * 2],
- ch,
- i,
- j;
- while ((ch = text[i++]) && j < sizeof (ret))
- {
- if (ch == '\'')
- {
- if (j < sizeof (ret) - 2)
- {
- ret[j++] = '\'';
- ret[j++] = '\'';
- }
- }
- else if (j < sizeof (ret))
- {
- ret[j++] = ch;
- }
- else
- {
- j++;
- }
- }
- ret[sizeof (ret) - 1] = '\0';
- return ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement