03.07.2011, 04:14
(
Последний раз редактировалось Nake01; 03.07.2011 в 05:05.
)
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)
2є Crie essas Enum (Pode ser embaixo das New's, tanto faz)
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:
Explicando: Os Nicks Serгo salvo na extensгo .ini na pasta scriptfiles.
4є No seu OnPlayerDisconnect coloque isto:
5є Se caso queira saber se tem algum mebro da Swat ou Reporter Online. Adicione este Comando na Public OnPlayerCommandText
PS: Antes que perguntem, como faзo para mudar para REPУRTER OU SWAT? Simples, troque a Variavel
PARA
OU
OBS: NГO ESQUEЗA DE TROCAR TAMBЙM ESTБ PARTE AQUI:
PARA
OU
E troque tambйm o nome do comando
6є Na sua OnDialogResponse coloque isto:
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:
FINISH
Й ISSO AК GALERA ESPERO QUE AJUDEM, ALGUM DЪVIDA OU ERROR PORFAVOR RELATEM NO TУPICO !
1є Crie essas New's (No Topo do GM)
Код:
new file[256]; new logado[MAX_PLAYERS];
Код:
enum pInfo { Admin, Cash, Score, SWAT, REPORTER, Warns, } new PlayerInfo[MAX_PLAYERS][pInfo];
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; }
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; }
Код:
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; }
Код:
if(PlayerInfo[i][Admin] >= 1)
Код:
if(PlayerInfo[i][SWAT] >= 1)
Код:
if(PlayerInfo[i][REPORTER] >= 1)
Код:
format(str, 256, "Administrador - %s - [Cargo %d] ", pname, PlayerInfo[i][Admin]);
Код:
format(str, 256, "SWAT - %s - [Cargo %d] ", pname, PlayerInfo[i][SWAT]);
Код:
format(str, 256, "REPORTER - %s - [Cargo %d] ", pname, PlayerInfo[i][REPORTER]);
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; }
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; }
Й ISSO AК GALERA ESPERO QUE AJUDEM, ALGUM DЪVIDA OU ERROR PORFAVOR RELATEM NO TУPICO !