[FilterScript] Base Registro/Login SQLite
#1

@Atualizado 0.3z & 0.3.7 [06/03/2016]

CRIANDO UMA TABLE

Forma padrгo [anteriores a versгo 0.3.7]:
Quote:

db_query(Database, "CREATE TABLE IF NOT EXISTS `EXEMPLO.db` (`ID` INTEGER PRIMARY KEY AUTOINCREMENT, `NOME` TEXT, `ADMIN` NUMERIC)"


OBS: Todas as colunas na mesma linha, podendo quebrб-la com "\"

Forma padrгo 0.3.7 [updated]:
Quote:

db_free_result(db_query(Database, "CREATE TABLE IF NOT EXISTS `EXEMPLO.db` (`ID` INTEGER PRIMARY KEY AUTOINCREMENT, `NOME` TEXT, `ADMIN` NUMERIC)"));


OBS: Todas as colunas na mesma linha, podendo quebrб-la com "\"

Forma strcat:
Quote:

strcat(Query_User, "CREATE TABLE IF NOT EXISTS `EXEMPLO.db`");
strcat(Query_User, "(`ID` INTEGER PRIMARY KEY AUTOINCREMENT,");
strcat(Query_User, "`NOME` TEXT,");
strcat(Query_User, "`ADMIN` NUMERIC)");


OBS: Uma coluna em cada linha sem necessidade de quebra, utiliza-se ',' vнrgula para dar continuidade ao restante das colunas. A ultima necessita ')' (fecha parкnteses).


INSERINDO LINHAS

Forma padrгo:
Quote:

format(Query,sizeof(Query), "INSERT INTO `TABLE_NAME` (`NOME`, `ADMIN`) VALUES ('%s', '%i') ", DB_Escape(GetName(playerid)), pAdmin[playerid]);
db_query(Database,Query);

OBS: Й inserido uma Linha no Banco de Dados contendo todos os dados em apenas uma linha tambйm no script.

Forma "nгo padrгo":
Quote:

format(Query,sizeof(Query), "INSERT INTO `TABLE_NAME` (`NOME`) VALUES ('%s')", DB_Escape(GetName(playerid)));
db_query(Database,Query);
format(Query,sizeof(Query), "UPDATE `TABLE_NAME` SET `ADMIN` = '%i' WHERE `NOME` = '%s'", pAdmin[playerid], DB_Escape(GetName(playerid)));
db_query(Database,Query);


OBS: Nгo й inserido strcat, mas й inserido uma Linha no Banco de Dados, sendo preenchido apenas uma coluna, porйm o restante serб apenas atualizado jб que a Linha jб foi criada.

Nгo testei a diferenзa de velocidade entre a forma padrгo e a forma "nгo padrгo", porйm й funcional!

Download 0.3z:
Base Registro/Login SQLite (s/ Hash & s/ explicaзгo)

Download 0.3z:
Base Registro/Login SQLite (c/ Hash & s/ explicaзгo)

Download 0.3z:
Base Registro/Login SQLite (s/ Hash & c/ explicaзгo)

Download 0.3z:
Base Registro/Login SQLite (c/ Hash & c/ explicaзгo)




Atualizado para 0.3.7 e padronizado para essa versгo [06/03/2016]

* Adicionado salvamento de Dinheiro;
Quote:

db_query ( User_Database, "CREATE TABLE IF NOT EXISTS "USER_TABLE" ( \
`ID` INTEGER PRIMARY KEY AUTOINCREMENT,\
`NOME` TEXT,\
`SENHA` TEXT,\
`DINHEIRO` NUMERIC,\
`ADMIN` NUMERIC \
)" ) );

* Senhas encriptadas com o novo SHA256 PassHash

* Removido o uso de 'strcat' e utilizado o modo padrгo SQL.


Download 0.3.7: [Adicionado salvamento de Dinheiro]
Base Registro/Login SQLite (s/ Hash & s/ explicaзгo)


Download 0.3.7: [Adicionado salvamento de Dinheiro]
Base Registro/Login SQLite (c/ Hash & s/ explicaзгo)[/SIZE][/SIZE]

CRЙDITOS:

Include a_samp By SA:MP Team
Include sscanf2 By ******
Include zcmd By Zeex
Plugin Whirlpool By ******
Script By F1N4L
Ediзгo e Atualizaзгo By PT
Reply
#2

Ййh, parece estar bom
Reply
#3

Quote:
Originally Posted by HaRdiiZin
Посмотреть сообщение
Ййh, parece estar bom
Vlw man! (Sim, eu li seu tutorial )
Reply
#4

Bom eu tinha feito desta maneira mais nгo raciocinei na hora e fiz utilizando format+strcat O.o... mais cheguei a conclusгo atravйs de posts que nгo й necessбrio criar a tabela pelo gamemode ja que iremos usar ela uma vez, mesmo assim й mais pratico.
Reply
#5

Mas que raio, voce podia ter feito isso bem melhor se usasse as coisas novas disponibilizadas na versao 0.3.7
Reply
#6

Quote:
Originally Posted by Whoo
Посмотреть сообщение
Bom eu tinha feito desta maneira mais nгo raciocinei na hora e fiz utilizando format+strcat O.o... mais cheguei a conclusгo atravйs de posts que nгo й necessбrio criar a tabela pelo gamemode ja que iremos usar ela uma vez, mesmo assim й mais pratico.
Pelo q entendi vc fez como eu no inнcio, usava 'format' + 'strcat' + 'query', sendo q sу precisa usar 'format'+'query'. Mas agora jб peguei a manha.

Quote:
Originally Posted by PT
Посмотреть сообщение
Mas que raio, voce podia ter feito isso bem melhor se usasse as coisas novas disponibilizadas na versao 0.3.7
O fato de n ter usado as atualizaзхes do 0.3.7 й pelo simples motivo de q nem todo mundo quer jogar no 0.3.7, ou seja, se eu fizer para 0.3.7, qm usar terб problema de compatibilidade com versхes anteriores, porйm se for usar no 0.3.7 irб rodar de boa.
Reply
#7

  • Seus comentбrios dentro do script, alguns estгo errados.
  • Poderia ter optmizado o cуdigo com as novidades do 0.3.7 como PT disse.(%q,SHA256_PassHash)
  • Seu tуpico estб totalmente errado quanto a "Forma 0.3.7", "Forma nгo 0.3.7". Os updates do sa-mp de nada interferem no pawn.
  • pSENHA й criada como inteiro, porйm usada como string.
  • Existe outros mйtodos mais eficazes para limpar o enumerador, do que um loop.
Apontei alguns erros, porйm й um bom primeiro(segundo, terceiro, etc..) script.
Reply
#8

Quote:
Originally Posted by Day_
Посмотреть сообщение
  • Seus comentбrios dentro do script, alguns estгo errados.
  • Poderia ter optmizado o cуdigo com as novidades do 0.3.7 como PT disse.(%q,SHA256_PassHash)
  • Seu tуpico estб totalmente errado quanto a "Forma 0.3.7", "Forma nгo 0.3.7". Os updates do sa-mp de nada interferem no pawn.
  • pSENHA й criada como inteiro, porйm usada como string.
  • Existe outros mйtodos mais eficazes para limpar o enumerador, do que um loop.
Apontei alguns erros, porйm й um bom primeiro(segundo, terceiro, etc..) script.
Obrigado @Day_, essas crнticas com certeza sгo construtivas e vou melhorar o script.
Thx pelo feedback.

@EDIT

*Estб errado quanto ao updates (acredito q vc esteja confundindo o JOGO com a PROGRAMAЗГO do mesmo), umas funзхes mudam, outras sгo adicionadas e o novo HASH256 n funciona em versхes anteriores а 0.3.7 (eu tentei e a prуpria wiki confirma). LEIA AQUI.

Eu comentei sobre o db_free_result - Funзгo modificada na versгo 0.3.7 RC2:
Quote:

db_free_result(db_query(db_handle, "CREATE TABLE IF NOT EXISTS `spawn_log`(`ID` INTEGER PRIMARY KEY AUTOINCREMENT,`PlayerID` INTEGER NOT NULL,`PlayerName` VARCHAR(24) NOT NULL)"));

Essa funзгo Cria a TABLE e as COLUNAS e automaticamente libera o resultado da memуria alocada a partir db_query.
Nгo coloquei por medo de dar problema no jogo, pois ao compilar vai de boa, mas vai q na hora de liberar a memoria da problema (versхes anteriores a 0.3.7)
db_free_result
Reply
#9

Ficou bom manolo, parabйns.
Reply
#10

Quote:
Originally Posted by SeanGarnier
Посмотреть сообщение
Ficou bom manolo, parabйns.
Muito obrigado parceiro!
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)