Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <DOF2>
- //Macro Para Formatar a pasta
- #define PASTAC "Contas/%s.ini"
- //Enums para determinar o id da Dialog
- enum {
- LOGIN,
- REGISTRO
- }
- //Enums para auxiliar na manipulação dos dados do jogar.
- enum pInfo{
- pIp,
- pScore,
- Float:pLife
- }
- //variável para chamar a enum e o que há dentro dela.
- new PlayerInfo[MAX_PLAYERS][pInfo];
- //Variáveis para formatar strings
- new pSenha[24];
- new pNick[24];
- forward KickPlayer(playerid);
- main()
- {
- print("\n----------------------------------");
- print(" Blank Gamemode by your name here");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- // Don't use these lines if it's a filterscript
- SetGameModeText("Blank Script");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnGameModeExit()
- {
- //EXTREMAMANETE NECESSÁRIO, isso avisará ao DOF2 quando ele poderá sair da GM.
- DOF2_Exit();
- 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);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- //Dialogs simples, de Registro e Login. Caso o player tenta conta, ele loga. Caso não, ele se registra.
- new arquivo[40];
- format(arquivo, 40, PASTAC, GetNick(playerid));
- if(!DOF2_FileExists(arquivo)) {
- SendClientMessage(playerid, -1, "(Info) Sua conta não está registrada no banco de dados.");
- ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Coloque sua senha para fazer registro", "Confirmar", "Sair");
- }
- else {
- SendClientMessage(playerid, -1, "(Info) Sua conta está registrada no banco de dados.");
- ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Coloque sua senha para fazer Login", "Confirmar", "Sair");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- //Salva a conta do jogador ao sair.
- SalvarConta(playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- //Aqui seta o que foi salvo dentro do aquivo do jogador.
- new arquivo[40];
- format(arquivo, 40, PASTAC, GetNick(playerid));
- SetPlayerHealth(playerid, DOF2_GetFloat(arquivo, "Life"));
- SetPlayerScore(playerid, DOF2_GetInt(arquivo, "Score"));
- 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[])
- {
- 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[])
- {
- switch(dialogid) {
- case REGISTRO: {
- //Aqui realizamos o registro. Caso ele responda negativamente, ele é kickado, caso insira algum caractere é registrado
- //e levado a dialog de login
- if(!response) {
- SendClientMessage(playerid, -1, "(Info) Você optou por sair do servidor");
- SetTimerEx("KickPlayer", 1000, 0, "i", playerid);
- }
- else {
- PlayerInfo[playerid][pScore] = 0;
- new arquivo[40];
- format(pSenha, 24, "%s", inputtext);
- format(arquivo, 40, PASTAC, GetNick(playerid));
- GetPlayerIp(playerid, PlayerInfo[playerid][pIp], 20);
- format(pNick, 40, "%s", GetNick(playerid));
- DOF2_CreateFile(arquivo);
- DOF2_SetString(arquivo, "Nick", pNick);
- DOF2_SetString(arquivo, "Senha", pSenha);
- DOF2_SetString(arquivo, "IP", PlayerInfo[playerid][pIp]);
- DOF2_SetInt(arquivo, "Score", PlayerInfo[playerid][pScore]);
- DOF2_SetFloat(arquivo, "Life", 100);
- DOF2_SaveFile();
- //Salvamos dados básicos do jogador em sua conta. Assim poderemos setar quando ele spawnar (após o login).
- ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Coloque sua senha para fazer Login", "Confirmar", "Sair");
- SendClientMessage(playerid, -1, "(Info) Conta criada com sucesso, por favor insira sua senha para logar.");
- }
- return 1;
- }
- case LOGIN: {
- //Caso responda negativamente é kickado, se responder e a senha for correta ele loga, se não for ele terá que redigitar a senha.
- if(!response) {
- SendClientMessage(playerid, -1, "(Info) Você optou por sair do servidor");
- SetTimerEx("KickPlayer", 1000, 0, "i", playerid);
- }
- else {
- new arquivo[40];
- format(arquivo, 40, PASTAC, GetNick(playerid));
- if(!strcmp(inputtext, DOF2_GetString(arquivo, "Senha"), true)) {
- SpawnPlayer(playerid);
- SendClientMessage(playerid, -1, "(Info) Você logou com sucesso e spawnou no servidor!");
- }
- else {
- ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Coloque sua senha para fazer Login", "Confirmar", "Sair");
- SendClientMessage(playerid, -1, "(Info) Sua senha está errada, por favor tente novamente.");
- }
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- //Função que kicka o jogador do servidor.
- public KickPlayer(playerid) {
- Kick(playerid);
- }
- //Função usada para pegar o nick do jogador.
- GetNick(playerid) {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
- //Função usada parasalvar a conta do jogador.
- SalvarConta(playerid) {
- new arquivo[40], Float:vida;
- GetPlayerHealth(playerid, Float:vida);
- format(arquivo, 40, PASTAC, GetNick(playerid));
- DOF2_SetInt(arquivo, "Score", GetPlayerScore(playerid));
- DOF2_SetFloat(arquivo, "Life", vida);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement