C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(45) : warning 217: loose indentation C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(62) : warning 217: loose indentation C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(74) : warning 225: unreachable code C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(240) : warning 217: loose indentation C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(283) : error 049: invalid line continuation C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(285) : warning 217: loose indentation C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(290) : warning 217: loose indentation C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(290) : error 029: invalid expression, assumed zero C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(302) : warning 209: function "OnDialogResponse" should return a value C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(303) : error 010: invalid function or declaration Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 3 Errors.
#include a_samp #include DOF2 #define DIALOG_REGISTRO 1 #define DIALOG_LOGAR 2 enum Informacoes { Senha, Matou, Morreu, Dinheiro } new Player[MAX_PLAYERS][Informacoes]; new Erro[MAX_PLAYERS]; public OnGameModeExit() { DOF2_Exit(); return 1; } public OnPlayerConnect(playerid) { new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid GetPlayerName(playerid, name, 32); //Pega o nome do playerid format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid if(DOF2_FileExists(arquivo)) //Verifica se a pasta existe { //Caso existir, irб retornar a dialog de Login ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar"); } else //Caso o arquivo nгo exista { //Irб retornar a dialog de registro ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo estб registrado em nosso banco de dados, digite uma senha para poder registrar.", "Confirma", "Cancelar"); } return 1; } public OnPlayerDisconnect(playerid, reason) { new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid GetPlayerName(playerid, name, 32); //Para pegar o nome do playerid format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid if(DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe { Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Salva quantos players ele matou DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Salva quantas vezes ele morreu DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo DOF2_SaveFile(); //E finalmente salvando o arquivo } return 1; return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid GetPlayerName(playerid, name, 32); //Para pegar o nome do playerid format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid if(dialogid == DIALOG_REGISTRO) { if(!strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true { //Retorna a dialog de registro novamente para ele digitar NЪMEROS ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Por favor, digite apenas nъmeros em sua senha!\nPor favor, digite sua senha novamente para concluir seu registro!", "Confirma", "Cancelar"); return 1; } if(!response) //Verifica se ele clicar em 'Cancelar" { //Caso ele clicar em cancelar, irб retornar ao playerid KICK Kick(playerid); return 1; } else //Verifica se ele Confirma o Registro { //Caso for true, ira criar o arquivo na pasta CONTAS Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Vai salvar a senha do playerid DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Vai salvar quantas vezes ele matou DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo! //Retornando a dialog de Login ao player no final para ele logar no server ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк acaba de se registrar em nosso banco de dados, por favor digite sua senha para logar!", "Confirma", "Cancelar"); } } if(dialogid == DIALOG_LOGAR) { if(!strval(inputtext)) //Verifica se o player digitou letras, caso for true { //Retorna a dialog de Login novamente para ele digitar NЪMEROS ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar"); return 1; } if(!response) //Verifica se ele clicar em 'Cancelar" { //Caso ele clicar em cancelar, irб retornar ao playerid KICK Kick(playerid); return 1; } else //Verifica se ele Confirma o Login { //Caso for true, ira verificar se o que ele digitar serб a mesma senha que ele se registrou anteriormente Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha"); //Pega a senha do jogador no arquivo da conta if(strval(inputtext) == Player[playerid][Senha]) //Se o que ele digitar for igual ao valor que carregou aqui em cima /\ { //Retornarб os dados do player e apуs irб dar Spawn no mesmo Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou"); //Pega quantos ele matou no arquivo Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu"); //Pega quantos ele morreu no arquivo Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro"); //Pega o dinheiro e iguala ao Player[playerid][Dinheiro] GivePlayerMoney(playerid, Player[playerid][Dinheiro]); //Da o dinheiro carregado acima SpawnPlayer(playerid); //Spawna o player } else //Caso ele digitar a senha errada { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк acaba de digitar uma senha invбlida, por favor digite sua senha novamente.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar"); Erro[playerid]++; //O erro vai aumentar cada vez que ele errar if(Erro[playerid] == 5) //Quando chegar а 5 vezes, irб retornar a msg e o Ban { SendClientMessage(playerid, -1, "Sua conta acaba de ser banida, porque vocк errou sua senha cinco (5) vezes, por favor contacte um administrador em nosso fуrum."); Ban(playerid); return 1; } } } } return 1; }
#include a_samp
#include DOF2
#define DIALOG_REGISTRO 1
#define DIALOG_LOGAR 2
#define ContasSalvas "/Contas/%s.ini"
enum Informacoes
{
Senha,
Matou,
Morreu,
Dinheiro
}
new Player[MAX_PLAYERS][Informacoes];
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerConnect(playerid)
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Pega o nome do playerid
format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
if(DOF2_FileExists(arquivo)) //Verifica se a pasta existe
{ //Caso existir, irб retornar a dialog de Login
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
}
else //Caso o arquivo nгo exista
{ //Irб retornar a dialog de registro
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo estб registrado em nosso banco de dados, digite uma senha para poder registrar.", "Confirma", "Cancelar");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Para pegar o nome do playerid
format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
if(DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe
{
Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele
DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado
DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Salva quantos players ele matou
DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Salva quantas vezes ele morreu
DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo
DOF2_SaveFile(); //E finalmente salvando o arquivo
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Para pegar o nome do playerid
format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
if(dialogid == DIALOG_REGISTRO)
{
if(!strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true
{ //Retorna a dialog de registro novamente para ele digitar NЪMEROS
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Por favor, digite apenas nъmeros em sua senha!\nPor favor, digite sua senha novamente para concluir seu registro!", "Confirma", "Cancelar");
return 1;
}
if(!response) //Verifica se ele clicar em 'Cancelar"
{ //Caso ele clicar em cancelar, irб retornar ao playerid KICK
Kick(playerid);
return 1;
}
else //Verifica se ele Confirma o Registro
{ //Caso for true, ira criar o arquivo na pasta CONTAS
Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro
DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas
DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Vai salvar a senha do playerid
DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Vai salvar quantas vezes ele matou
DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu
DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele
DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo!
//Retornando a dialog de Login ao player no final para ele logar no server
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк acaba de se registrar em nosso banco de dados, por favor digite sua senha para logar!", "Confirma", "Cancelar");
}
}
if(dialogid == DIALOG_LOGAR)
{
if(!response)
{
SendClientMessage(playerid, -1, "Vocк Nгo Quis Logar e Por Esse Motivo foi Kickado!");
Kick(playerid);
}
if(response)
{
if(DOF2_CheckLogin(PlayerArchive(playerid), inputtext))
{
SendClientMessage(playerid, -1, "Logado com Sucesso, Parabйns!");
CarregarDados(playerid);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
}
}
}
return 1;
}
stock CarregarDados(playerid)
{
new arquivo[40];
Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou"); //Pega quantos ele matou no arquivo
Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu"); //Pega quantos ele morreu no arquivo
Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro"); //Pega o dinheiro e iguala ao Player[playerid][Dinheiro]
GivePlayerMoney(playerid, Player[playerid][Dinheiro]); //Da o dinheiro carregado acima
}
stock PlayerArchive(playerid)
{
new StringArquivo[128], NomeArquivo[24];
GetPlayerName(playerid, NomeArquivo, sizeof(NomeArquivo));
format(StringArquivo, sizeof(StringArquivo), ContasSalvas, NomeArquivo);
return StringArquivo;
}
Crйditos de algumas partes: [iPs].FuneraL.
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(60) : warning 217: loose indentation C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(60) : error 029: invalid expression, assumed zero C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(60) : error 035: argument type mismatch (argument 3) C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(273) : error 017: undefined symbol "PlayerArchive" C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(276) : error 017: undefined symbol "CarregarDados" C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(291) : warning 203: symbol is never used: "Erro" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 4 Errors.
#include a_samp #include DOF2 #define DIALOG_REGISTRO 1 #define DIALOG_LOGAR 2 enum Informacoes { Senha, Matou, Morreu, Dinheiro } new Player[MAX_PLAYERS][Informacoes]; new Erro[MAX_PLAYERS]; public OnGameModeExit() { DOF2_Exit(); return 1; } main() { print("\n-------------------------------------------"); print("[PT/BR]Los Angeles Official 2013 RPG[PT/BR]"); print("-------------------------------------------\n"); } public OnGameModeInit() { // Don't use these lines if it's a filterscript SetGameModeText("Los Angeles Official"); AddPlayerClass(0, 1642.1667, -2335.4941, 13.5469, 7.6790, 0, 0, 0, 0, 0, 0); return 1; } public OnPlayerConnect(playerid) { new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Pega o nome do playerid format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid if(DOF2_FileExists(arquivo)) //Verifica se a pasta existe { //Caso existir, irб retornar a dialog de Login ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar"); } else //Caso o arquivo nгo exista { //Irб retornar a dialog de registro ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo estб registrado em nosso banco de dados, digite uma senha para poder registrar.", "Confirma", "Cancelar"); } return 1; } public OnPlayerDisconnect(playerid, reason) { new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid GetPlayerName(playerid, name, ); //Para pegar o nome do playerid format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid if(DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe { Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Salva quantos players ele matou DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Salva quantas vezes ele morreu DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo DOF2_SaveFile(); //E finalmente salvando o arquivo } return 1; } public OnPlayerSpawn(playerid) { 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[]) { if (strcmp("/mycommand", cmdtext, true, 10) == 0) { // Do something here return 1; } 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[]) { new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Para pegar o nome do playerid format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid if(dialogid == DIALOG_REGISTRO) { if(!strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true { //Retorna a dialog de registro novamente para ele digitar NЪMEROS ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Por favor, digite apenas nъmeros em sua senha!\nPor favor, digite sua senha novamente para concluir seu registro!", "Confirma", "Cancelar"); return 1; } if(!response) //Verifica se ele clicar em 'Cancelar" { //Caso ele clicar em cancelar, irб retornar ao playerid KICK Kick(playerid); return 1; } else //Verifica se ele Confirma o Registro { //Caso for true, ira criar o arquivo na pasta CONTAS Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Vai salvar a senha do playerid DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Vai salvar quantas vezes ele matou DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo! //Retornando a dialog de Login ao player no final para ele logar no server ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк acaba de se registrar em nosso banco de dados, por favor digite sua senha para logar!", "Confirma", "Cancelar"); } } if(dialogid == DIALOG_LOGAR) { if(!response) { SendClientMessage(playerid, -1, "Vocк nгo quis logar, entгo foi kickado automaticamente"); Kick(playerid); } if(response) { if(DOF2_CheckLogin(PlayerArchive(playerid), inputtext)) { SendClientMessage(playerid, -1, "Parбbens vocк acaba de logar em nosso servidor."); CarregarDados(playerid); } else { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar"); } } } return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; }
#include a_samp
#include DOF2
#define DIALOG_REGISTRO 1
#define DIALOG_LOGAR 2
#define ContasSalvas "/Contas/%s.ini"
enum Informacoes
{
Senha,
Matou,
Morreu,
Dinheiro,
PlayerAdmin
}
new Player[MAX_PLAYERS][Informacoes];
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
main()
{
print("\n-------------------------------------------");
print("[PT/BR]Los Angeles Official 2013 RPG[PT/BR]");
print("-------------------------------------------\n");
}
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Los Angeles Official");
AddPlayerClass(0, 1642.1667, -2335.4941, 13.5469, 7.6790, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnPlayerConnect(playerid)
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Pega o nome do playerid
format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
if(DOF2_FileExists(arquivo)) //Verifica se a pasta existe
{ //Caso existir, irб retornar a dialog de Login
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
}
else //Caso o arquivo nгo exista
{ //Irб retornar a dialog de registro
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo estб registrado em nosso banco de dados, digite uma senha para poder registrar.", "Confirma", "Cancelar");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
GetPlayerName(playerid, name, MAX_PLAYER_NAME ); //Para pegar o nome do playerid
format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
if(DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe
{
Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele
DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado
DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Salva quantos players ele matou
DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Salva quantas vezes ele morreu
DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo
DOF2_SaveFile(); //E finalmente salvando o arquivo
}
return 1;
}
public OnPlayerSpawn(playerid)
{
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[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
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[])
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Para pegar o nome do playerid
format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
if(dialogid == DIALOG_REGISTRO)
{
if(!strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true
{ //Retorna a dialog de registro novamente para ele digitar NЪMEROS
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Por favor, digite apenas nъmeros em sua senha!\nPor favor, digite sua senha novamente para concluir seu registro!", "Confirma", "Cancelar");
return 1;
}
if(!response) //Verifica se ele clicar em 'Cancelar"
{ //Caso ele clicar em cancelar, irб retornar ao playerid KICK
Kick(playerid);
return 1;
}
else //Verifica se ele Confirma o Registro
{ //Caso for true, ira criar o arquivo na pasta CONTAS
Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro
DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas
DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Vai salvar a senha do playerid
DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Vai salvar quantas vezes ele matou
DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu
DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele
DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo!
//Retornando a dialog de Login ao player no final para ele logar no server
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк acaba de se registrar em nosso banco de dados, por favor digite sua senha para logar!", "Confirma", "Cancelar");
}
}
if(dialogid == DIALOG_LOGAR)
{
if(!response)
{
SendClientMessage(playerid, -1, "Vocк nгo quis logar, entгo foi kickado automaticamente");
Kick(playerid);
}
if(response)
{
if(DOF2_CheckLogin(PlayerArchive(playerid), inputtext))
{
SendClientMessage(playerid, -1, "Parбbens vocк acaba de logar em nosso servidor.");
CarregarDados(playerid);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
}
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
stock PlayerArchive(playerid)
{
new StringArquivo[128], NomeArquivo[24];
GetPlayerName(playerid, NomeArquivo, sizeof(NomeArquivo));
format(StringArquivo, sizeof(StringArquivo), ContasSalvas, NomeArquivo);
return StringArquivo;
}
forward CarregarDados(playerid);
public CarregarDados(playerid)
{
return 1;
}
stock SalvarDados(playerid)
{
DOF2_SaveFile();
return 1;
}
Nossa cara, muito obrigado.
Tipo se eu quiser mudar a interface do sistema de registro й possнvel? Ultima dъvida mesmo, ai caso for possнvel, jб irei trabalhar nisso. |
if(dialogid == DIALOG_LOGAR)
{
if(!response)
{
SendClientMessage(playerid, -1, "Vocк nгo quis logar, entгo foi kickado automaticamente");
Kick(playerid);
}
if(response)
{
new
file[ 32 ]
;
format(file,sizeof(file),"Contas/%s.ini",pNome(playerid));
if(DOF2_FileExists(file))
{
if(strcmp(inputtext,DOF2_GetString(file,inputtext,"Senha"),true) == 0)
{
SendClientMessage(playerid, -1, "Logado com Sucesso");
//SpawnPlayer(playerid);
return 1;
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
}
}
}
}
stock PlayerName(playerid)
{
new Name[MAX_PLAYER_NAME];
GetPlayerName( playerid, Name, MAX_PLAYER_NAME);
return Name;
}