Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-12-03, 15:02


wojownik27







Wiek: 47
Na forum: 4771 dni
Posty: 23
Nick w MP: KolekcjaMilitarna

Piwa: 46

Respekt: 40

Witam mam tak? rejestracj? jak podaj? poni?ej ca?y kod skrypt dzia?a wszystko jest ok ale po zarejestrowaniu si? nie ma logowania tylko jest ponownie rejestracja oznacza to ?e czego? brakuje w FTP tylko czego prosz? was o pomoc...

Kod:

#include "bRegLite_INC.inc"
#include "zcmd.inc"

#define DIALOG_REG (7300)
#define DIALOG_LOG (7400)
#define DIALOG_TOP (7500)

new query[128], DB:b_Acc;

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

public OnFilterScriptInit()
{
b_Acc = db_open("Acc 3.0.db");
db_free_result(db_query(b_Acc, "CREATE TABLE IF NOT EXISTS `players` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `login` VARCHAR UNIQUE NOT NULL, `pass` VARCHAR NOT NULL, `respect` INTEGER DEFAULT '0' NOT NULL, `money` INTEGER DEFAULT '10000' NOT NULL );"));
return 1;
}

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

public OnFilterScriptExit()
return db_close(b_Acc);

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

public OnPlayerConnect(playerid)
{
new DBResult:result, Text:respekt;

format(query, sizeof query, "SELECT `id` FROM `players` WHERE `login` = '%s'", PlayerName(playerid));
result = db_query(b_Acc, query);

if(!db_num_rows(result))
ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "Zarejestruj si?", "Aby gra? na tym serwerze musisz si? zarejestrowa?\n * Podaj has?o:", "Rejestruj", "Wyjd?");

else
ShowPlayerDialog(playerid, DIALOG_LOG, DIALOG_STYLE_INPUT, "Zaloguj si?", "Istnieje konto o twoim nicku\n * Musisz si? zalogowa?", "Zaloguj", "Wyjd?");

db_free_result(result);

respekt = TextDrawCreate(503.000000, 98.000000, " ");
TextDrawBackgroundColor(respekt, 0x000000FF);
TextDrawFont(respekt,3);
TextDrawLetterSize(respekt, 0.499999, 1.700000);
TextDrawColor(respekt, 0xC99229FF);

TextDrawShowForPlayer(playerid, respekt);
return SetPVarInt(playerid, "b_AccTD", _:respekt);
}

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

public OnPlayerDisconnect(playerid, reason)
{
format(query, sizeof query, "UPDATE `players` SET `money` = %d WHERE `login` = '%s'", GetPlayerMoney(playerid), PlayerName(playerid));
db_free_result(db_query(b_Acc, query));

new Text:respekt = Text:GetPVarInt(playerid, "b_AccTD");
TextDrawHideForPlayer(playerid, respekt);
TextDrawDestroy(respekt);
return 1;
}

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid == INVALID_PLAYER_ID)
{
format(query, sizeof query, "UPDATE `players` SET `respect` = `respect` - 1 WHERE `login` = '%s'", PlayerName(playerid));
db_free_result(db_query(b_Acc, query));

return RefreshRespect(playerid);
}
else
{
format(query, sizeof query, "UPDATE `players` SET `respect` = `respect` - 2 WHERE `login` = '%s'", PlayerName(playerid));
db_free_result(db_query(b_Acc, query));

format(query, sizeof query, "UPDATE `players` SET `respect` = `respect` + 2 WHERE `login` = '%s'", PlayerName(killerid));
db_free_result(db_query(b_Acc, query));

return RefreshRespect(playerid), RefreshRespect(killerid);
}
}

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REG:
{
if(!response)
return SendClientMessage(playerid, 0x800000AA, "Rejestracja na tym serwerze jest obowi?zkowa!"), Kick(playerid);

switch(strlen(inputtext))
{
case 5..20:
{
new message[128];
ConvertToSQLitePass(inputtext);
format(query, sizeof query, "INSERT INTO `players` (`login`, `pass`) VALUES ('%s', '%s');", PlayerName(playerid), inputtext);
db_free_result(db_query(b_Acc,query));

RefreshRespect(playerid);
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, 10000);

format(message, sizeof message, "Poprawnie za?orzy?e? konto twoje has?o to >>> %s <<<", inputtext);
return SendClientMessage(playerid, 0x80FF00AA, message);
}
default:
return ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "Zarejestruj si?", "Has?o musi zawiera? od 5 do 20 znak?w", "Rejestruj", "Wyjd?");
}
}
case DIALOG_LOG:
{
if(!response)
return SendClientMessage(playerid, 0x800000AA, "Ten nick jest ju? zarejestrowany w naszej bazie, musisz si? zalogowa?!"), Kick(playerid);

new DBResult:result, money[16];
ConvertToSQLitePass(inputtext);
format(query, sizeof query, "SELECT `money` FROM `players` WHERE `login` = '%s' AND `pass` = '%s'", PlayerName(playerid), inputtext);
result = db_query(b_Acc, query);

if(!db_num_rows(result))
return ShowPlayerDialog(playerid, DIALOG_LOG, DIALOG_STYLE_INPUT, "Zaloguj si?", "Istnieje konto o twoim nicku\n\tMusisz si? zalogowa?\nB??d: poda?e? nieprawid?owe has?o!", "Zaloguj", "Wyjd?");

db_get_field(result, 0, money, sizeof money);
db_free_result(result);

RefreshRespect(playerid);
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, strval(money));

return SendClientMessage(playerid, 0x80FF00AA, "Zalogowano!");
}
}
return 0;
}

// Wywo?ywanie komend z innych nazw np. "/changepass 1234" = "/pass 1234"
CMD:changepass(playerid, params[])
return cmd_pass(playerid, params);

CMD:zmienhaslo(playerid, params[])
return cmd_pass(playerid, params);

CMD:nowynick(playerid, params[])
return cmd_nick(playerid, params);

CMD:zmiennick(playerid, params[])
return cmd_nick(playerid, params);


CMD:nick(playerid, params[])
{
new DBResult:result;

if(isnull(params) || strlen(params) > MAX_PLAYER_NAME)
return SendClientMessage(playerid, 0x800040AA, "/nick [nowy nick]");

if(!IsValidPlayerName(params))
return SendClientMessage(playerid, 0x800040AA, "Zmiana nicku: poda?e? nieprawid?owy nick!");

format(query, sizeof query, "SELECT `id` FROM `players` WHERE `login` = '%s'", params);
result = db_query(b_Acc, query);

if(db_num_rows(result))
return SendClientMessage(playerid, 0x800040AA, "Zmiana nicku: ten nick jest ju? zaj?ty!");

db_free_result(result);

format(query, sizeof query, "UPDATE `players` SET `login` = '%s' WHERE `login` = %s", params, PlayerName(playerid));
db_free_result(db_query(b_Acc, query));
SetPlayerName(playerid, params);

SendClientMessage(playerid, 0x80FF00AA, "Prawid?owo zmieni?e? nick i przenis?e? swoje statystyki! Tw?j nowy nick to:");
SendClientMessage(playerid, 0x0080FFAA, PlayerName(playerid));

return 1;
}

CMD:pass(playerid, params[])
{
if(isnull(params) || strlen(params) > 24 || strlen(params) < 5)
return SendClientMessage(playerid, 0x800040AA, "/pass [nowe has?o]");

ConvertToSQLitePass(params);
format(query, sizeof query, "UPDATE `players` SET `pass` = '%s' WHERE `login` = '%s'", params, PlayerName(playerid));
db_free_result(db_query(b_Acc, query));

SendClientMessage(playerid, 0x80FF00AA, "Prawid?owo zmieni?e? has?o! Twoje nowe has?o to:");
SendClientMessage(playerid, 0x0080FFAA, params);

return 1;
}

CMD:top10(playerid, params[])
{
new DBResult:result, buf_Nick[MAX_PLAYER_NAME], buf_resp[8], dialog[512] = " ** Lista Top 10 Graczy: **\n";

result = db_query(b_Acc, "SELECT `login`, `respect` FROM `players` ORDER BY `respect` DESC LIMIT 10");
do
{
db_get_field(result, 0, buf_Nick, sizeof(buf_Nick));
db_get_field(result, 1, buf_resp, sizeof(buf_resp));
format(dialog, sizeof dialog, "%s\n\t%sp. %s", dialog, buf_Nick, buf_resp);
}
while(db_next_row(result));
format(dialog, sizeof dialog, "%s\n_____________________________________________________________", dialog);
db_free_result(result);

ShowPlayerDialog(playerid, DIALOG_TOP, DIALOG_STYLE_MSGBOX, "TOP 10", dialog, "OK", "Wyjd?");
}

CMD:top25(playerid, params[])
{
new DBResult:result, buf_Nick[MAX_PLAYER_NAME], buf_resp[8], dialog[512] = " ** Lista Top 25 Graczy: **\n";

result = db_query(b_Acc, "SELECT `login`, `respect` FROM `players` ORDER BY `respect` DESC LIMIT 25");
do
{
db_get_field(result, 0, buf_Nick, sizeof(buf_Nick));
db_get_field(result, 1, buf_resp, sizeof(buf_resp));
format(dialog, sizeof dialog, "%s\n\t%sp. %s", dialog, buf_Nick, buf_resp);
}
while(db_next_row(result));
format(dialog, sizeof dialog, "%s\n_____________________________________________________________", dialog);
db_free_result(result);

ShowPlayerDialog(playerid, DIALOG_TOP, DIALOG_STYLE_MSGBOX, "TOP 25", dialog, "OK", "Wyjd?");
}

stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
return name;
}

stock RefreshRespect(playerid)
{
new DBResult:result, TD_string[16], tmp_resp[8];
format(query, sizeof query, "SELECT `respect` FROM `players` WHERE `login` = '%s'", PlayerName(playerid));
result = db_query(b_Acc, query);

db_get_field(result, 0, tmp_resp, sizeof tmp_resp);
db_free_result(result);

format(TD_string, sizeof TD_string, "Respekt: %s", tmp_resp);
TextDrawSetString(Text:GetPVarInt(playerid, "b_AccTD"), TD_string);
SetPlayerScore(playerid, strval(tmp_resp));
return 1;
}

stock ConvertToSQLitePass(password[])
{
for(new c, len = strlen(password); c != len; c++)
{
switch(password[c])
{
case 39, 92:
password[c] = ' ';
}
}
}

stock IsValidPlayerName(name[])
{
new len = strlen(name);

if(len > 24 || len < 3)
return 0;

for(new c; c != len; c++)
switch(name[c])
{
case 'a'..'z', 'A'..'Z', '0'..'9', '[', ']':
continue;
default:
return 0;
}
return 1;
}

/*
Funckje do obs?ugi bRegLite_INC
*/

forward b_AddPlayerRespect(playerid, resp_val);
public b_AddPlayerRespect(playerid, resp_val)
{
if(!IsPlayerConnected(playerid) || IsPlayerNPC(playerid))
return INVALID_PLAYER_ID;

format(query, sizeof query, "UPDATE `players` SET `respect` = `respect` + %d WHERE `login` = '%s'", resp_val, PlayerName(playerid));
return db_free_result(db_query(b_Acc, query));
}

forward b_GetPlayerRespect(playerid);
public b_GetPlayerRespect(playerid)
{
new DBResult:result, tmp_resp[8];
format(query, sizeof query, "SELECT `respect` FROM `players` WHERE `login` = '%s'", PlayerName(playerid));
result = db_query(b_Acc, query);

db_get_field(result, 0, tmp_resp, sizeof tmp_resp);
db_free_result(result);

return strval(tmp_resp);
}

forward b_RespectUpdate(playerid);
public b_RespectUpdate(playerid)
return RefreshRespect(playerid);




Czekam na odp....

Mo?e potrzebny jaki? plugin?...


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-03, 15:07


Nors

Wszystko wiem.






Wiek: 30
Na forum: 4600 dni
Posty: 223
Nick w MP: Nors

Piwa: 10

Respekt: 50

wojownik27, To jest rejestracja mysql?? czy normal?

Podpis
Daj piweczko. Pić się chce.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-03, 15:14


wojownik27







Wiek: 47
Na forum: 4771 dni
Posty: 23
Nick w MP: KolekcjaMilitarna

Piwa: 46

Respekt: 40

NWM ale plugin Mysql mam kurde i co z tym zrobi????

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-03, 15:20


Nors

Wszystko wiem.






Wiek: 30
Na forum: 4600 dni
Posty: 223
Nick w MP: Nors

Piwa: 10

Respekt: 50

"wojownik27" napisał/a:

NWM ale plugin Mysql mam kurde i co z tym zrobi????


?ci?gno?e? plugin Mysql.dll lub .so. Masz linuxa czy windowsa??

Ale dobra jak masz ten plugin to wgraj do serwer/plugins
I do serwer.cfg dopisz:

plugins Mysql.dll

Postaw piwo autorowi tego posta
 

 
Tagi: rejestracja :: gui :: nie :: dziala :: ftp
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku