Novidades

30 outubro 2013

Felipe Paiva
Sistema de Cadastro e Login MYSQL

Olá Galerinha da HomeHots , Venho Hoje Trazendo um Sistema de Cadastro e Login em MYSQL , Espero que Gostem ^^ !!

Funcionamento do Sistema

Você precisará da include do BlueG(a_mysql) e da include a_samp.
Você também precisará ter uma tabela(mude o #define tablename conforme o nome da sua tabela), nessa tabela terá que ter as colunas
 Nick, Pass, Killed, Died, Connections, Money e Bank.

Código

pawn Code:
// - Includes #include <a_samp> #include <a_mysql> // - Variaveis new connect; new Query[512]; // - Enum enum aInfo {     bool:Logged,     Killed,     Died,     Connections,     Money,     Bank } new AccountInfo[MAX_PLAYERS][aInfo]; #define SQL_Host "" // Change to your host #define SQL_User "" // Change to your use #define SQL_DataBase "" // Change to your database #define SQL_Password "" // Change to your password #define TableName "Accounts" // in my case will be 'Accounts' / no meu caso será 'Accounts' #define DIALOG_REGISTER 0 #define DIALOG_LOGIN    1 // - Forward's forward MySQL_CheckAccount(playerid); forward R_@MySQL_CheckAccount(playerid); forward MySQL_CheckAccountPass(playerid, password[]); forward R_@MySQL_CheckAccountPass(playerid); forward MySQL_LoadAccount(playerid); forward R_@MySQL_LoadAccount(playerid); forward MySQL_SaveAccount(playerid); // - CallBacks public OnFilterScriptInit() {     connect = mysql_connect(SQL_Host, SQL_User, SQL_DataBase, SQL_Password);     static x;     x = -1;     for(; ++x ^ 3;)     {         if(!connect)             printf("MySQL connection attempt %d failed!", x);         else break;     }     mysql_debug(1);     return 1; } public OnFilterScriptExit()     return mysql_debug(0), mysql_close(connect); public OnPlayerRequestSpawn(playerid)     return (AccountInfo[playerid][Logged] ? 1 : 0); public OnPlayerConnect(playerid) {     AccountInfo[playerid][Logged] = false;     AccountInfo[playerid][Killed] = 0;     AccountInfo[playerid][Died] = 0;     AccountInfo[playerid][Connections] = 0;     AccountInfo[playerid][Money] = 0;     AccountInfo[playerid][Bank] = 0;     return MySQL_CheckAccount(playerid); } public OnPlayerDisconnect(playerid, reason)     return MySQL_SaveAccount(playerid); public MySQL_CheckAccount(playerid) {     format(Query,sizeof(Query),"SELECT * FROM `%s` WHERE Nick='%s'", TableName, _@PlayerName(playerid));     mysql_function_query(connect, Query, true, "R_@MySQL_CheckAccount", "d", playerid);     return 1; } public R_@MySQL_CheckAccount(playerid) {     static rows,fields;     cache_get_data(rows, fields, connect);     if(rows)         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Olá vejo que não é novo por aqui,\ndigite sua senha para continuar:", "Logar", "Sair");     else         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registro", "Olá vejo que é novo por aqui,\ndigite uma senha para continuar", "Registrar", "Sair");     return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {     switch(dialogid)     {         case 0:         {             if(response)             {                 if(!strlen(inputtext))                 {                     ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registro", "Você ainda não é registrado, \nPor favor digite uma senha:", "Logar", "Sair");                 }                 format(Query, sizeof(Query), "INSERT INTO `Contas` VALUES ('%s','%s','%d','%d','0','1500','2000');", _@PlayerName(playerid), inputtext, AccountInfo[playerid][Killed], AccountInfo[playerid][Died]);                 mysql_function_query(connect, Query, false, "", "", "");                 SendClientMessage(playerid, -1, "Registrado com sucesso!");                 SetPlayerHealth(playerid, 100);                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Parabéns, conta criada com sucesso! \nAgora digite sua senha para continuar:", "Logar", "Sair");             }             else                 Kick(playerid);             return 1;         }         case 1:         {             if(response)             {                 if(!strlen(inputtext))                 {                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Você ja é registrado, \nPor favor digite sua senha:", "Logar", "Sair");                     SendClientMessage(playerid,0xFF0000AA,"Senha incorreta digite-a novamente");                 }                 MySQL_CheckAccountPass(playerid, inputtext);             }             else                 Kick(playerid);             return 1;         }     }     return 1; } public MySQL_CheckAccountPass(playerid, password[]) {     format(Query,sizeof(Query),"SELECT * FROM `%s` WHERE Nick='%s' and Pass='%s'", TableName, _@PlayerName(playerid), password);     mysql_function_query(connect, Query, true, "R_@MySQL_CheckAccountPass", "d", playerid);     return 1; } public R_@MySQL_CheckAccountPass(playerid) {     static rows,fields;     cache_get_data(rows, fields, connect);     if(rows)     {         MySQL_LoadAccount(playerid);         AccountInfo[playerid][Connections]++;         MySQL_SaveAccount(playerid);         SendClientMessage(playerid, -1, "Seja bem vindo novamente ao nosso servidor!");     }     else         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Senha errada digite a sua senha novamente:", "Logar", "Sair");     return 1; } public MySQL_LoadAccount(playerid) {     format(Query,sizeof(Query),"SELECT * FROM `%s` WHERE Nick='%s'", TableName, _@PlayerName(playerid));     mysql_function_query(connect,Query,true,"R_@MySQL_LoadAccount", "d", playerid);     return 1; } public R_@MySQL_LoadAccount(playerid) {     static rows,fields;     cache_get_data(rows,fields,connect);     if(rows)     {         cache_get_field_content(0,"Money",Query,connect);         AccountInfo[playerid][Money] = strval(Query);         cache_get_field_content(0,"Bank",Query,connect);         AccountInfo[playerid][Bank] = strval(Query);         cache_get_field_content(0,"Killed",Query,connect);         AccountInfo[playerid][Killed] = strval(Query);         cache_get_field_content(0,"Died",Query,connect);         AccountInfo[playerid][Died] = strval(Query);     }     return 1; } public MySQL_SaveAccount(playerid) {     format(Query,sizeof(Query),"UPDATE `%s` SET Money='%d', Bank='%d', Killed='%d', Died='%d', Connections='%d' WHERE Nick='%s'", AccountInfo[playerid][Money], AccountInfo[playerid][Bank], AccountInfo[playerid][Killed], AccountInfo[playerid][Died], _@PlayerName(playerid));     mysql_function_query(connect,Query,false,"","","");     return 1; } // - Stocks _@PlayerName(playerid) {     new _@pN[24];     GetPlayerName(playerid, _@pN, sizeof(_@pN));     return _@pN; }



Créditos

- DanDRT - Criador do Sistema
- Agradecimentos em Geral - Bluex , Dolby , Willian Luigi , IpsBruno
- Postador - Felipe Paiva

Curta e Compartilhe: Facebook.com/HomeHots
Informações,Ajudas etc: felipepaiva73@hotmail.com


25 outubro 2013

Stakl

Se é a primeira vez que você está usando o Pawno então apareceu este erro (Unable to execute compiler...) na hora de compilar, provavelmente você não tem o .Net Framework 2.0 instalado em seu computador.

Então para resolver este problema basta instala-lo.

Download do .Net Framework 2.0

24 outubro 2013

Felipe Paiva
Brasil Play Fortes RPG

Olá Galera da HomeHots.net , Venho Aqui Hoje Postando um GM Chamado " Brasil Play Fortes RPG " Que Fez Muito Sucesso à Algum Tempo Atrás , Espero Que Gostem Desse Gamemode !! ^^

Informações

-Guerra Morro.

 -ChatLider.

-27 Organizações.

-Spawn Civil Único.

-Comandos Únicos.

e Muitos Mais...

Print's




Download

Clique aqui para fazer o download
Créditos

Páin e Yago- Novos Sistemas Criados e Edição dGameMode.
Felipe Paiva - Postador.

Curta e Compartilhe: Facebook.com/HomeHots
Informações,Ajudas etc: felipepaiva73@hotmail.com

22 outubro 2013

Unknown
Bom, várias pessoas estavam com dúvida sobre o NO LAG, com muitos BUG´s, então eu aproveitei que eu adicionei este sistema no meu Servidor RPG ontem mais ou menos (dia 19 ~ 20) e irei postar para vocês!

Obs: Ele não possui BUGS quando morre e nem quando dá o Tiro!



Obs: Antes que Fiquem com o pé atrás sobre este script, saibam que ele é usado em no meu servidor, com uma média 50 onlines (e jamais reclamaram sobre o mesmo).

 Créditos: Biel_COP 

20 outubro 2013

Unknown
Olá pessoal!

Hoje eu vou ensinar o uso básico do Loop para executar as funções do AddPlayerClass.

Que nada mais é do que adicionar aqueles menus de seleção de Skin, em vários servidores possuem isto.

Quem me acompanhou até aqui, sabe que eu prometi postar a solução de cheats e facilitação de funções.

O uso de loops neste caso pode reduzir até 300 linhas em 4.

Para quem ainda não acompanhou o raciocínio, vejam vocês mesmos:


Poxa Biel, 300 Linhas para adicionar 300 Skins ? Aí complica né parceiro ?

É aí que o Loop entra!

Com esta função:



Você pode Facilmente adicionar tudo isto em apenas 4 Linhas!

Para ajudá-los com Loops, eu deixarei o Link de como usar Loops, Feito pelo DreeH.

Clique Aqui

Post na HomeHots + Funções de Exemplo: Biel_COP

Tutorial de como usar Loops: DreeH

16 outubro 2013

Unknown
Fala aí negada!

Estes dias atrás eu estive no meu servidor recebendo algumas dicas de jogadores até que um jogador aleatório comentou comigo se eu tinha ou não a solução para o Hack de Crash.

Consiste em crashar jogadores próximos com um veículo modificado, você não será crashado mas o povo ao seu redor sim.

Isto é a causa de muitos servidores serem fechados todos os dias, e como eu vejo que muitos donos de servidores querem só ver o seu pessoal se divertindo, como eu, a solução será postada!



Créditos: Biel_COP 

13 outubro 2013

Unknown
Bom, como muitos sabem eu sou dono de um Servidor RPG e isto me deixa ver muito sobre os BUG´s de um RPG, como são os players RPG´s, etc.

Porém hoje em dia, muitos servidores tem a Bazooca para benefícios de Players VIP / Sócio (caso tenha o sistema) e mesmo que não tenha, muitos têm a bazooca.

O bug da bazooca é muito chato, onde um jogador aperta o botão de tiro e mira juntos, assim Fazendo o bug, que não sai o tiro na sua tela, mas sai o tiro na tela do oponente.

Com uma lógica do Iansinho (Fórum SA-MP) com a ajuda do Don_Speed, conseguimos Finalmente achar a solução!



 Lógica do Código: Iansinho
Ajuda: Don_Speed
 Identação do Código: Biel_COP
Postagem: Biel_COP

11 outubro 2013

Unknown
Você Já deve ter visto algum programador Fazer um código de medição de tempo para a execução de tal Função, né ?

É com você agora!

Com esta pequena include que eu Fiz, você poderá medir o seu próprio tempo, testando assim se está lento ou não o seu código!

Exemplo de Uso:


Clique aqui para fazer o download

 Créditos: Biel_COP 
Unknown
Este sistema é bem excasso no SA-MP, eu jogo a 4 anos e só vi este sistema em dois servidores, porém com uma demora para a execução do mesmo.

Após testes de velocidade feitos por mim, eu fiz o sistema mais rápido até então já feito.

Obs: Caso você seja dono de um servidor RPG e esteja com o pé atrás para colocar, relaxe, pois eu uso este sistema no meu servidor (que é RPG) e o povo realmente Gosta.

Sem mais delongas, vamos lá!



 Créditos: Biel_COP 

10 outubro 2013

Unknown
Bom, como a maioria de vocês sabem, eu sou dono de um Servidor e entendo a dificuldade que vocês, Admins de um passam.

Um problema não muito recente é o Car Spam, que muitos donos de Servidores Fecham os mesmos pelo problema com os Hack´s.

Eu também Já passei por isto e quero que cada vez isto diminua, portanto vamos lá!

O nosso amigo Kuddy Fez inicialmente um código que pode ser usado como um Anti Car Spam.




Postagem: Biel_COP
Adaptação: Biel_COP
Lógica do Código: Kuddy
Unknown
Aqui vai mais um mapa para vocês, desta vez em Forma de FS (incluindo o uso avançado de macros) !

Feito totalmente por mim, lembrando que eu não sou mapper, apenas de "zoa", vamos lá.

Fotos do Local:





Clique aqui para fazer o download


Créditos: Biel_COP
Unknown
Olá pessoal! Aqui quem Fala é o Biel_COP, o novo postador da HomeHots.

Eu pretendo postar a solução de vários erros aqui, soluções para problemas comuns, etc.

Para começar, postarei a solução do Fake Kill, que consiste em várias "mortes falsas".

Ele é usado no S0BEIT, várias soluções já Foram postadas, porém poucos conhecem as mesmas.

Então está aí:


Créditos: Biel_COP