Sistema de Registro + Profissгo + Sistema de Administraзгo -
Nake01 - 03.07.2011
Olб galera estarei encinando a vocкs a como criar um Sistema de Registro com Profissхes, Entгo vamos lб !
1є Crie essas New's (No Topo do GM)
Код:
new file[256];
new logado[MAX_PLAYERS];
2є Crie essas Enum (Pode ser embaixo das New's, tanto faz)
Код:
enum pInfo
{
Admin,
Cash,
Score,
SWAT,
REPORTER,
Warns,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
Explicando: Warns(Isso daqui й as vezes que vocк errou a senha, caso erre 5 vezes serб kickado !), SWAT (Essa ja й uma profissгo de MEMBRO da SWAT) & REPORTER (Essa ja й uma profissгo de REPORTER)
3є No seu OnPlayerConnect coloque isto:
Код:
public OnPlayerConnect(playerid)
{
logado[playerid] = 0;
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new String[128];
format(String, sizeof(String), "%.ini", name);
format(file, sizeof(file), "%s.ini", name);
if (!dini_Exists(file))
{
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Nгo Registrado\n\n{FFFFFF} Digite Uma {FF0000}Senha {FFFFFF}Para Continuar", name);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Sair");
}
if(fexist(file))
{
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua {FF0000}Senha {FFFFFF}Para Logar", name);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", String, "Logar", "Sair");
}
if(PlayerInfo[playerid][Warns] == 5)
{
SendClientMessage(playerid, 0xFF00CC, "[GTE INFORMA]: Vocк foi kickado por errar sua senha 5 vezes !");
Kick(playerid);
}
return 1;
}
Explicando: Os Nicks Serгo salvo na extensгo
.ini na pasta
scriptfiles.
4є No seu OnPlayerDisconnect coloque isto:
Код:
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid,name,24);
format(file,sizeof(file),"%s.ini",name);
if(dini_Exists(file))
{
dini_IntSet(file,"Cash",GetPlayerMoney(playerid));
dini_IntSet(file,"Score",GetPlayerScore(playerid));
dini_IntSet(file,"Level",PlayerInfo[playerid][Admin]);
dini_IntSet(file,"LevelSwat",PlayerInfo[playerid][SWAT]);
dini_IntSet(file,"LevelReporter",PlayerInfo[playerid][REPORTER]);
dini_IntSet(file,"Warns",PlayerInfo[playerid][Warns]);
logado[playerid] = 0;
}
return 1;
}
5є Se caso queira saber se tem algum mebro da Swat ou Reporter Online. Adicione este Comando na Public OnPlayerCommandText
Код:
if(!strcmp(cmdtext, "/admins", true))
{
SendClientMessage(playerid, 0x33AAFFFF, "** Todos os Administradores Online **");
new count=0;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(logado[i] == 1)
{
if(PlayerInfo[i][Admin] >= 1)
{
new str[256];
new pname[24];
GetPlayerName(i, pname, 24);
format(str, 256, "Administrador - %s - [Cargo %d] ", pname, PlayerInfo[i][Admin]);
SendClientMessage(playerid, 0xC0C0C0FF, str);
count++;
}
}
}
}
if(count == 0)
{
SendClientMessage(playerid, 0x00FFFFAA, "Nenhum Administrador online !");
}
return 1;
}
PS: Antes que perguntem, como faзo para mudar para REPУRTER OU SWAT? Simples, troque a Variavel
Код:
if(PlayerInfo[i][Admin] >= 1)
PARA
Код:
if(PlayerInfo[i][SWAT] >= 1)
OU
Код:
if(PlayerInfo[i][REPORTER] >= 1)
OBS: NГO ESQUEЗA DE TROCAR TAMBЙM ESTБ PARTE AQUI:
Код:
format(str, 256, "Administrador - %s - [Cargo %d] ", pname, PlayerInfo[i][Admin]);
PARA
Код:
format(str, 256, "SWAT - %s - [Cargo %d] ", pname, PlayerInfo[i][SWAT]);
OU
Код:
format(str, 256, "REPORTER - %s - [Cargo %d] ", pname, PlayerInfo[i][REPORTER]);
E troque tambйm o nome do comando
6є Na sua OnDialogResponse coloque isto:
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == 1)
{
new name[MAX_PLAYER_NAME], String[128];
GetPlayerName(playerid, name, sizeof(name));
format(String, sizeof(String), "%.ini", name);
format(file, sizeof(file), "%s.ini", name);
if(!response) return Kick(playerid);
if(!strlen(inputtext)) return
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Nгo Registrado\n\n{FFFFFF} Digite Uma {FF0000}Senha {FFFFFF}Para Continuar", name);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Sair");
dini_Create(file);
dini_IntSet(file, "Password", udb_hash(inputtext));
dini_IntSet(file, "Level",PlayerInfo[playerid][Admin] = 0);
dini_IntSet(file, "Cash",PlayerInfo[playerid][Cash] = 50000); // NASCE COM R$ 50,000 MIL REAIS
dini_IntSet(file, "Score",PlayerInfo[playerid][Score] = 0);
dini_IntSet(file, "LevelSwat",PlayerInfo[playerid][SWAT] = 0);
dini_IntSet(file, "LevelReporter",PlayerInfo[playerid][REPORTER] = 0);
dini_IntSet(file, "Warns",PlayerInfo[playerid][Warns] = 0);
dini_IntSet(file,"Preso",PlayerInfo[playerid][Preso] = 0);
GameTextForPlayer(playerid, "~G~ REGISTRADO COM SUCESSO!",2000,1);
logado[playerid] = 1;
ShowPlayerDialog(playerid,985,DIALOG_STYLE_LIST,"Escolha uma Regiao","Centro Oeste\nNorte e Nordeste\nSudeste\nSul","Selecionar","Voltar");
SetPVarInt(playerid,"Escolha",1);
}
if (dialogid == 2)
{
new name[MAX_PLAYER_NAME], String[128];
GetPlayerName(playerid, name, sizeof(name));
format(String, sizeof(String), "%.ini", name);
format(file, sizeof(file), "%s.ini", name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", String, "Logar", "Sair");
new tmp;
tmp = dini_Int(file, "Password");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Senha Incorreta !");
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua {FF0000}Senha {FFFFFF}Para Logar", name);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", String, "Logar", "Sair");
}
else
{
logado[playerid] = 1;
SetPlayerMoney(playerid, dini_Int(file, "Cash"));
SetPlayerScore(playerid, dini_Int(file, "Score"));
SetPlayerColor(playerid, dini_Int(file, "Color"));
PlayerInfo[playerid][Admin] = dini_Int(file, "Level");
PlayerInfo[playerid][SWAT] = dini_Int(file, "LevelSwat");
PlayerInfo[playerid][REPORTER] = dini_Int(file, "LevelReporter");
PlayerInfo[playerid][Warns] = dini_Int(file, "Warns");
GameTextForPlayer(playerid, "~G~ LOGADO COM SUCESSO!",2000,1);
}
return 1;
}
return 0;
}
Explicaзгo: a (dialogid == 1) e para registrar e a (dialogid == 2) e para logar
Agora se vocк quer botar para seu membro da SWAT Spawnar em algum canto й facil...
7є Na sua Public OnPlayerSpawn coloque isto:
Код:
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][GAT] >= 1)
{
// SWAT NASCE
SetPlayerInterior(playerid,0); // Interior do Player como ele estб na cidade й 0 se fosse dentro de alguma casa ou delegacia etc... seria outro id para ver os ids de interiores digite /interior .
SetPlayerPos(playerid,1567.0951,-1696.1991,5.8906); // Seta a posiзгo do Player para algum lugar: Posiзгo X: 1696: Posiзгo Y:. 1991 Posiзгo Z: 1991 Para pegar as posiзхes digite /save.
GameTextForPlayer(playerid,"~w~BATALHAO DO GAT", 1000,1); // MENSSAGEM NA TELA SPAWNAR
GivePlayerWeapon(playerid,29,999999); // ARMAS
GivePlayerWeapon(playerid,27,999999); // ARMAS
GivePlayerWeapon(playerid,41,999999); // ARMAS
GivePlayerWeapon(playerid,24,999999); // ARMAS
GivePlayerWeapon(playerid,4,999999); // ARMAS
GivePlayerWeapon(playerid,34,999999); // ARMAS
GivePlayerWeapon(playerid,31,999999); // ARMAS
SetPlayerColor(playerid, 0xC0C0C0FF); // COR DO NICK
SetPlayerSkin(playerid, 285); // SKIN DO PLAYER
SetPlayerHealth(playerid, 100.0); // NASCE COM 100 DE VIDA
SetPlayerArmour(playerid, 100.0); // NASCE COM 100 DE COLETE
SetPlayerVirtualWorld(playerid, 0); // NГO SEI BEM OQUE Й :S
TogglePlayerControllable(playerid,1); // PARA O PLAYER PODER CONTROLAR SE BOTAREM 0 O PLAYER FICARБ CONGELADO
}
return 1;
}
FINISH
Й ISSO AК GALERA ESPERO QUE AJUDEM, ALGUM DЪVIDA OU ERROR PORFAVOR RELATEM NO TУPICO !
Re: Sistema de Registro + Profissгo + Sistema de Administraзгo -
Falcon. - 03.07.2011
Isto nгo й um tutorial, vocк apenas fala para se criar isto ou aquilo e nгo explica como tudo funciona, que й o correto para um tutorial.
a identaзгo nгo й as das melhores e
e o seu desperdнcio de cйlulas й preocupante
pawn Код:
new file[256];
format(file, sizeof(file), "%s.ini", name);
retirar cуdigos de Gamemodes e postar aqui indicando o local onde ser inserido nгo й tutorial algum.
Re: Sistema de Registro + Profissгo + Sistema de Administraзгo -
Ricop522 - 03.07.2011
CTRL+C - CTRL+V
Good try
Re: Sistema de Registro + Profissгo + Sistema de Administraзгo -
Nake01 - 03.07.2011
Meu 1є Tutorial '-', nгo expliquei *0* entгo explique ai...
Re: Sistema de Registro + Profissгo + Sistema de Administraзгo -
Falcon. - 03.07.2011
Quote:
Originally Posted by Nake01
Meu 1є Tutorial '-', nгo expliquei *0* entгo explique ai...
|
[Tutorial] Criando Profissхes
[Tutorial] Fini Cache File System
Atenciosamente,
Falcon.
Re: Sistema de Registro + Profissгo + Sistema de Administraзгo -
[AF]Junior - 03.07.2011
Isso nгo й tutorial, um filterscript, explique linhas, Exemplo:
SetPlayerPos(playerid, 1001,1002,1003);
SetPlayerPos: Seta a posiзгo do Player para algum lugar.
1001: Posiзгo X. 1002: Posiзгo Y. 1003: Posiзгo Z.
Para pegar as posiзхes digite
/save.
Mais ou menos isso
E tб bem mal explicado, tenso wendell...
Re: Sistema de Registro + Profissгo + Sistema de Administraзгo -
Andrew_Guiga - 03.07.2011
Owned
@Topic
Nгo entendi bolotas desde "tutorial"
Re: Sistema de Registro + Profissгo + Sistema de Administraзгo -
Nake01 - 03.07.2011
Quote:
Originally Posted by Andrew_Guiga
Owned
@Topic
Nгo entendi bolotas desde "tutorial"
|
aff c mate entгo...
Re: Sistema de Registro + Profissгo + Sistema de Administraзгo -
Andrew_Guiga - 03.07.2011
vc explica mal e eu que tenho que me matar? Ja em compensaзгo eu entendi o do falcon, aquele sim й um tutorial de verdade que explica direito as coisas --'
Re: Sistema de Registro + Profissгo + Sistema de Administraзгo -
JonathanFeitosa - 03.07.2011
Nгo Estб Muito Bom, Mais Acho que й Seu Primeiro Tutorial. Aprenda Com Erros, Isso Nгo й Tutorial, Se eu Fosse Vocк Fazia um FilterScript. Muito Bom Pelo Primeiro Projeto.
Usa [pawn] [/pawn da Proxima vez =) espero que melhore. att.