28.06.2015, 19:18
Код:
//-----------------------------------------------// // Includes #include <a_samp> #include <AntiAirbreak> #include <zcmd> #include <sscanf> #include <DOF2> #include <Losgs> #define MAILER_URL "geradoresjfs.site90.net/mailer.php" // Arquivo .php > upe o seu < ! #include <mailer> //-----------------------------------------------// // Defines #define Moderador 1 #define Guardiao 2 #define Admin 3 #define SubDono 4 #define Dono 5 #define CONTAS "PlayersJFS/%s.ini" #define REGISTRO (787) #define LOGIN (790) #define MAXPLAYERSJFS (50) // Slots do seu Servidor #define DinheiroInicio (1000) // Comeca com MIL de Grana #define LevelInicio (1) // Comeзa com 1 de Level #define SkinInicio (289) // Comeзa com a skin 289 #define EmailServidor "jonathan_feitosa@hotmail.com.br") // Email que enviarб os Emails para o Pessoal ! #define NomeServidor ("[JFS/SAMP] - Recuperar Senha") // Configure :) //--------------------------------------------// // Defines de Cores #define COR_ANTICHEATER 0xFF6347AA #define VERDE 0x00CD00AA #define VERMELHO 0xFF0000AA #define PURPLE 0xC2A2DAAA //----------------------------------------------// // News new Invalido[MAXPLAYERSJFS], Nome[MAX_PLAYER_NAME], String[128], Matou[MAXPLAYERSJFS], Morreu[MAXPLAYERSJFS], Level[MAXPLAYERSJFS], Skin[MAXPLAYERSJFS], Logou[MAXPLAYERSJFS], Ano[MAXPLAYERSJFS], Mes[MAXPLAYERSJFS], Hora[MAXPLAYERSJFS], Dia[MAXPLAYERSJFS], Minuto[MAXPLAYERSJFS], PrimeiraVezON[MAXPLAYERSJFS] ; // Forwards //--------------------------------------------------// main() { print("Tutorial feito por: EditPawn"); } public OnPlayerAirBreak(playerid) { new nomexiter[MAX_PLAYER_NAME]; GetPlayerName(playerid, nomexiter, sizeof(nomexiter)); return 1; } public OnGameModeInit() { AddPlayerClass(1,1958.3783,1343.1572,15.3746,270.1425,0,0,0,0,-1,-1); AddPlayerClass(230,1958.3783,1343.1572,15.3746,270.1425,0,0,0,0,-1,-1); AddPlayerClass(265,1958.3783,1343.1572,15.3746,270.1425,0,0,0,0,-1,-1); return 1; } public OnGameModeExit() { for(new i=0; i<MAXPLAYERSJFS; ++i) SalvarPlayer(i); DOF2_Exit(); return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerConnect(playerid) { SendClientMessage(playerid, -1, "Esse servidor possui um FilterScript Criado Por JFS - JonathanFeitosa :)."); GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), CONTAS, Nome); if(!DOF2::FileExists(String)) { format(String, sizeof(String), "\n{7FFFD4}Nick: {1E90FF}%s Nгo Registrado\n\n{FFFFFF} Digite Uma Senha Para Registrar Sua Conta\n", Nome); ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", String, "Registrar", "Cancelar"); } else format(String, sizeof(String), "\n{7FFFD4}Nick: {1E90FF}%s Registrado\n\n{FFFFFF} Digite sua Senha Corretamente para Logar\n", Nome), ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", String, "Logar", "Cancelar"); return 1; } public OnPlayerDisconnect(playerid) { SalvarPlayer(playerid); return 1; } public OnPlayerRequestClass(playerid, classid) { SetupPlayerForClassSelection(playerid); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == REGISTRO) { if(response) { if(!strlen(inputtext)) { GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), "\n{7FFFD4}Nick: {1E90FF}%s Nгo Registrado\n\n{FFFFFF} Digite Uma Senha Para Registrar Sua Conta\n", Nome); ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", String, "Registrar", "Cancelar"); return true; } GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), CONTAS, Nome); DOF2::CreateFile(String); DOF2::SetString(String,"Senha", inputtext); DOF2::SetString(String,"Email","EmailDesconfigurado"); DOF2::SetInt(String,"Dinheiro", DinheiroInicio); DOF2::SetInt(String,"Level", LevelInicio); DOF2::SetInt(String,"Skin", SkinInicio); DOF2::SetInt(String,"Matou", 0); DOF2::SetInt(String,"Morreu", 0); DOF2::SetInt(String,"Admin", 0); DOF2::SetInt(String,"Logou", 0); DOF2::SetInt(String, "Ano", 0); DOF2::SetInt(String, "Mкs", 0); DOF2::SetInt(String, "Dia", 0); DOF2::SetInt(String, "Hora", 0); DOF2::SetInt(String, "Minuto", 0); DOF2::SaveFile(); ShowPlayerDialog(playerid, 6783, DIALOG_STYLE_INPUT, "JFS Registro - Configure seu Email", "\n\n{1E90FF}Digite seu Email abaixo para terminar o registro.\n\n{1E90FF}PS: Caso perca sua senha, usarб para recuperar-lб.\n\n", "Configurar", ""); return true; } else { SendClientMessage(playerid, 0xFF0000AA, "Vocк Foi Kickado Porque Nгo Quis Se Registrar!!"); Kick(playerid); return true; } } if(dialogid == 6783) { if(response) { GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), CONTAS, Nome); DOF2::SetString(String,"Email", inputtext); DOF2::SaveFile(); format(String, sizeof(String), "Email Configurado para: %s", DOF2::GetString(String,"Email")); SendClientMessage(playerid, -1, String); Registrando(playerid); return true; } } if(dialogid == 6784) { if(response) { GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), CONTAS, Nome); static Celula[300]; format(Celula, sizeof(Celula), "Sistema de Registro/Login com Recuperar Senha via Email - Sistema Criado Por Jonathan Feitosa\nVisite: www.********.com/GoHumorGTA\n\nSenha: %s\n\n\nContato Skype: jonathanfeitosajfs\nContato MSN: jonathan_feitosa@hotmail.com.br", DOF2::GetString(String,"Senha")); SendMail(DOF2::GetString(String,"Email"), EmailServidor, NomeServidor, "JFS Projetos - Recuperar Minha Senha", Celula); SendClientMessage(playerid, -1, "Um Email com sua senha foi enviado para seu Email com sucesso."); SendClientMessage(playerid, -1, "PS: As Vezes Podem demorar cerca de no mбximo 5 minutos."); Kick(playerid); } else { SendClientMessage(playerid, -1, "Vocк nгo quis Enviar um Email por isso foi kickado"); Kick(playerid); } return true; } if(dialogid == LOGIN) { if(response) { if(!strlen(inputtext)) { GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), "\n{7FFFD4}Nick: {1E90FF}%s Registrado\n\n{FFFFFF} Digite sua Senha Corretamente para Logar\n", Nome); ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", String, "Logar", "Cancelar"); SendClientMessage(playerid,0x1E90FFAA,"CAMPO EM BRANCO - Digite sua senha corretamente !"); return true; } // static HashSenha[129]; GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), CONTAS, Nome); // WP_Hash(HashSenha, 129, inputtext); if(!strcmp(inputtext,DOF2_GetString(String,"Senha"),false)) { Logando(playerid); return true; } else { Invalido[playerid] += 1; if(Invalido[playerid] == 5) return ShowPlayerDialog(playerid, 6784, DIALOG_STYLE_MSGBOX, "JFS Registro - Recuperaзгo de Senha", "\n\n{33CCFF}Aperte em 'Enviar' para enviar um email para o seu email contendo sua senha.\n\n{7491F6}PS: Espero que seja um Email vбlido, se nгo, entre em contato com Administrador Dono.\n\n", "Enviar", "Cancelar"); SendClientMessage(playerid,0x00FF00AA,"Senha incorreta, Se errar 5 vezes terб que recuperar-lб por E-mail !"); format(String, sizeof(String), "\n{7FFFD4}Nick: {1E90FF}%s Registrado\n\n{FFFFFF} Digite sua Senha Corretamente para Logar\n", Nome); ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", String, "Logar", "Cancelar"); } return true; } else { SendClientMessage(playerid, 0xFF0000AA, "Vocк nгo quis se logar, por este motivo serб Kickado"); Kick(playerid); return true; } } return 1; } public OnPlayerDeath(playerid, killerid, reason) { if(IsPlayerConnected(killerid)) { Matou[killerid] ++; Level[killerid] ++; GameTextForPlayer(killerid,"~>~~r~Matou + 1 Level.!!!",4000,3); } if(IsPlayerConnected(playerid)) { Morreu[playerid] ++; GameTextForPlayer(playerid,"~>~~r~Morto - 1 Level!!!",4000,3); Level[playerid] --; } return true; } //============================={COMANDOS}====================================// CMD:pegaradm(playerid) { new nomelog[MAX_PLAYER_NAME], string[58]; GetPlayerName(playerid, nomelog, sizeof(nomelog)); new Log [ ] = "Servidor/Logs/pegaradm.log"; format (string, sizeof (string), "%s Usou o Comando Secreto", nomelog); WriteLog (Log, string); if (!LogExists (Log) ) CreateLog ( Log ); //---- Funзao ----// //pAdmin[playerid][Level] = 5; SendClientMessage(playerid, VERDE, "SERVER: Vocк agora й um admin FUNDADOR."); return true; } CMD:tv(playerid, params[]) { new ID; if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado."); if(sscanf(params, "i", ID)) return SendClientMessage(playerid, VERDE, "Use /TV [ID]"); TogglePlayerSpectating(playerid, 1); PlayerSpectatePlayer(playerid, ID); SendClientMessage(playerid, VERDE, "Para Desligar Tv Use /tvoff"); return 1; } CMD:tvoff(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado."); TogglePlayerSpectating(playerid, 0); SendClientMessage(playerid, VERDE, "Vocк parou de assistir o jogador!"); return 1; } CMD:aa(playerid, params[]) { new MEGAString[2500], string[34], NomeAbriu[MAX_PLAYER_NAME]; GetPlayerName(playerid, NomeAbriu, sizeof(NomeAbriu)); MEGAString[0] = EOS; strcat(MEGAString, "{FFFFFF}|____________________[{00BFFF}Comandos Admistrativos{FFFFFF}]____________________|\n"); format(string, sizeof(string), "Ola Admistrador %s\n\n", NomeAbriu); strcat(MEGAString, string); strcat(MEGAString, "{00BFFF}Nivel 1:{FFFFFF} /trazer /tv\n"); ShowPlayerDialog(playerid, 1122, DIALOG_STYLE_MSGBOX, "{FFFFFF}Ajuda-Admin", MEGAString, "OK", ""); return true; } //=======================[Comandos Players]==================================// CMD:info(playerid, params[]) { static DialogStatus[250]; static EmailStats[40]; GetPlayerName(playerid, Nome, sizeof(Nome)); format(EmailStats, sizeof(EmailStats), CONTAS, Nome); format(String, sizeof(String),"{FFFFFF}Status De {1E90FF}%s\n\n",Nome); strcat(DialogStatus, String); format(String, sizeof(String),"{FFFFFF}Email: {1E90FF}%s\n", DOF2::GetString(EmailStats,"Email")); strcat(DialogStatus, String); format(String, sizeof(String),"{FFFFFF}Level: {1E90FF}%d\n", Level[playerid]); strcat(DialogStatus, String); format(String, sizeof(String),"{FFFFFF}Skin: {1E90FF}%d\n", Skin[playerid]); strcat(DialogStatus, String); format(String, sizeof(String),"{FFFFFF}Dinheiro: {1E90FF}%d\n", GetPlayerMoney(playerid)); strcat(DialogStatus, String); format(String, sizeof(String),"{FFFFFF}Matou: {1E90FF}%d\n", Matou[playerid]); strcat(DialogStatus, String); format(String, sizeof(String),"{FFFFFF}Morreu: {1E90FF}%d\n",Morreu[playerid]); strcat(DialogStatus, String); format(String, sizeof(String),"{FFFFFF}Vocк Jб Logou {1E90FF}%d{FFFFFF} Vezes Neste Servidor", Logou[playerid]); strcat(DialogStatus, String); ShowPlayerDialog(playerid, 5732, DIALOG_STYLE_MSGBOX, "{00F6F6}Minhas Informaзхes ( RG )", DialogStatus, "Fechar", ""); return 1; } CMD:mudaremail(playerid, params[]) { if(strlen(cmdtext) == 11) return SendClientMessage(playerid, -1, "/mudaremail [EMAIL]"); strdel(cmdtext, 0, 11); GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), CONTAS, Nome); static Celula[128]; format(Celula, sizeof(Celula),"[JFS Sistema de Registro] - Vocк Mudou seu Email de %s para %s !!", DOF2::GetString(String,"Email"), cmdtext); SendClientMessage(playerid, -1, Celula); SendClientMessage(playerid, -1, "Cuidado ! vocк deve verificar se estб certo ! pois poderб perder sua Conta."); DOF2::SetString(String,"Email", cmdtext); DOF2::SaveFile(); return true; } return false; } //========================{Stocks}===========================================// stock ReturnPlayer(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,MAX_PLAYER_NAME); return name; } stock SalvarPlayer(playerid) { GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), CONTAS, Nome); DOF2::SetInt(String,"Dinheiro", GetPlayerMoney(playerid)); DOF2::SetInt(String,"Level", Level[playerid]); Skin[playerid] = GetPlayerSkin(playerid); DOF2::SetInt(String,"Skin", Skin[playerid]); DOF2::SetInt(String,"Matou", Matou[playerid]); DOF2::SetInt(String,"Morreu", Morreu[playerid]); DOF2::SetInt(String,"Logou", Logou[playerid]); getdate(Ano[playerid], Mes[playerid], Dia[playerid]); gettime(Hora[playerid], Minuto[playerid]); DOF2::SetInt(String, "Minuto", Minuto[playerid]); DOF2::SetInt(String, "Hora", Hora[playerid]); DOF2::SetInt(String, "Dia", Dia[playerid]); DOF2::SetInt(String, "Mкs", Mes[playerid]); DOF2::SetInt(String, "Ano", Ano[playerid]); DOF2::SaveFile(); return true; } stock CarregarPlayer(playerid) { GetPlayerName(playerid, Nome, sizeof(Nome)); format(String, sizeof(String), CONTAS, Nome); GivePlayerMoney(playerid, DOF2::GetInt(String,"Dinheiro")); Level[playerid] = DOF2::GetInt(String, "Level"); Skin[playerid] = DOF2::GetInt(String, "Skin"); SetPlayerSkin(playerid, Skin[playerid]); Matou[playerid] = DOF2::GetInt(String, "Matou"); Morreu[playerid] = DOF2::GetInt(String, "Morreu"); Logou[playerid] = DOF2::GetInt(String, "Logou"); DOF2::GetString(String, "Email"); Minuto[playerid] = DOF2::GetInt(String, "Minuto"); Hora[playerid] = DOF2::GetInt(String, "Hora"); Dia[playerid] = DOF2::GetInt(String, "Dia"); Mes[playerid] = DOF2::GetInt(String, "Mкs"); Ano[playerid] = DOF2::GetInt(String, "Ano"); DOF2::SaveFile(); return true; } stock Logando(playerid) { CarregarPlayer(playerid); Logou[playerid] += 1; if(PrimeiraVezON[playerid] != 1) { format(String, sizeof(String), "Seu Ъltimo LOGIN Foi Dia: %d/%d/%d Бs %d Horas e %d Minutos", Dia[playerid], Mes[playerid], Ano[playerid], Hora[playerid], Minuto[playerid]); } else format(String, sizeof(String), "Bem Vindo na sua Primeira Vez no Servidor ! Vocк Comeзou com %dR$ e Level %d.", DinheiroInicio, LevelInicio), SendClientMessage(playerid, -1, String), PrimeiraVezON[playerid] = 0; // Bote Aqui as funзхes quando o Player estб logando. return true; } stock Registrando(playerid) { // Bote aqui as funзхes quando o Player estiver se registrando pela primeira vez ! :) PS: poderб ser um sistema de tutorial ! PrimeiraVezON[playerid] = 1; format(String, sizeof(String), "\n{7FFFD4}Nick: {1E90FF}%s Registrado\n\n{FFFFFF} Digite sua Senha Corretamente para Logar\n", Nome); ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", String, "Logar", "Cancelar"); return true; } //================{Variavel}===================================// SetupPlayerForClassSelection(playerid) { SetPlayerInterior(playerid,14); SetPlayerPos(playerid,258.4893,-41.4008,1002.0234); SetPlayerFacingAngle(playerid, 270.0); SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234); SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234); } //==================={FIM DO GAMEMODE}=====================================//