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

Wysłany: 2013-05-12, 16:34


Rumun







Wiek: 30
Na forum: 5235 dni
Posty: 316
Nick w MP: Rumun

Piwa: 25

Respekt: 69

Witam.U?ywam tej rejestracji na serwerze:
http://gtao.pl/inne-rejes...ght=rejestracja


Zapisuje ona score,kas?,has?o.Chcia?bym by zapisywa?a ona r?wnie? ilo?? godzin sp?dzonych na serwerze.Czy jest w og?le mo?liwe by owa rejestracja to zapisywa?a?Czy je?eli tak musowa b?dzie nowe rejestrowanie konta na serwerze ?Za pomoc piwko i respekt. ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-05-12, 17:28


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Kod:

//g?ra mapy
new enterTime[MAX_PLAYERS];

//OnPlayerConnect
enterTime[playerid] = gettime();

//Zapis danych
new t = (gettime() - enterTime[playerid]);


W zmiennej t masz czas gracza na serwerze podczas jednego wej?cia w sekundach. ?eby zrobi? z tego godziny/minuty u?yj p?tli while.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-05-12, 18:24


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

"Combacior" napisał/a:

Kod:

//g?ra mapy
new enterTime[MAX_PLAYERS];

//OnPlayerConnect
enterTime[playerid] = gettime();

//Zapis danych
new t = (gettime() - enterTime[playerid]);


W zmiennej t masz czas gracza na serwerze podczas jednego wej?cia w sekundach. ?eby zrobi? z tego godziny/minuty u?yj p?tli while.


Po co while; czas w minutach:

Kod:

new m;

if(t > 60) m = t/60;


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-05-12, 19:00


Rumun







Wiek: 30
Na forum: 5235 dni
Posty: 316
Nick w MP: Rumun

Piwa: 25

Respekt: 69

Czyli

Kod:

new t = (gettime() - enterTime[playerid]);


gdzie nale?y doda? ?

I czy dzi?ki temu ca?emu kodu kt?ry zosta? podany przez poprzednik?w b?dzie si? to zapisywa?o w tym samym pliku co kasa i score ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-05-12, 19:38


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

Nie. Poka? nam przyk?adowy kod z tamtego systemu zapisu (public OnPlayerDisconnect).

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-05-12, 19:45


Rumun







Wiek: 30
Na forum: 5235 dni
Posty: 316
Nick w MP: Rumun

Piwa: 25

Respekt: 69

Kod:

public OnPlayerDisconnect(playerid, reason)
{

new INI:Plik = INI_Open(Player(playerid));//Otwieramy plik
INI_SetTag(Plik,"Dane");//Nadajemy ten nasz Tag
INI_WriteInt(Plik,"Pieniadze",GetPlayerMoney(playerid));//Zapisujemy ilo?? pieni?dzy
INI_WriteInt(Plik,"Punkty",GetPlayerScore(playerid));//Zapisujemy ilo?? punkt?w(score)
INI_Close(Plik);//Zamykamy plik

return 1;
}


A tutaj ca?a ta rejestracja:
Kod:

#include <a_samp>
#include <YSI/y_ini>

//----------------Id dialog?w Gui
#define LOGOWANIE 1111
#define REJESTRACJA 1112
//-------------------Definicja pliku gracza
/*
Ten plik znajduje si? w scriptfiles w folderze Konta kt?ry przed zainstalowaniem
skryptu nale?y stworzy? aby konta mog?y si? tworzy? a co za tym idzie nasze dane
mog?y si? zapisywa? :)
*/

#define PlikGracza "/Konta/%s.ini"
//--------------Pobieranie nicku i pliku.
/*
Pobranie nicku gracza i zarazem pobranie nazwy jego pliku
*/
stock Player(playerid)
{
new PlayerNick[MAX_PLAYER_NAME], string[256];
GetPlayerName(playerid,PlayerNick,sizeof(PlayerNick));
format(string,sizeof(string),PlikGracza,PlayerNick);
return string;
}

//------------------Informacje gracza
/*
Dzi?ki temu zapiszemy sobie wiele rzeczy takie jak np.
Has?o
Zab?jstwa
?mier?
itp.
*/
enum pInfo
{
pHaslo,
pKasa,
pPunkty
}
new PlayerInfo[MAX_PLAYERS][pInfo];

//----------------------?adowanie danych z pliku gracza
/*
?adowanie Has?a, Pieni?dzy, Punkt?w z pliku naszego gracza.
T?umacz?:
new Kasa;
INI_Int("Pieniadze",Kasa);

Pieniadze -> Wpis w pliku w jakim system b?dzie szuka? naszej got?wki.
Kasa -> Jest to nasza got?wka kt?ra znajduje si? w pliku gracza w pozycji Pieniadze.

UWAGA!
Przy Ladowanie_dane to dane oznacza tag ustwiony w pliku
*/

forward Ladowanie_Dane(playerid,name[],value[]);
public Ladowanie_Dane(playerid,name[],value[])
{
INI_Int("Haslo",PlayerInfo[playerid][pHaslo]);
INI_Int("Pieniadze", PlayerInfo[playerid][pKasa]);
INI_Int("Punkty", PlayerInfo[playerid][pPunkty]);

return 1;
}

/*
Autorem tej funkcji jest Dracoblue
B?dzie ona odpowiedzialna za nasze has?o
*/
stock udb_hash(buf[])
{
new length=strlen(buf);
new s1 = 1;
new s2 = 0;
new n;
for (n=0; n<length; n++)
{
s1 = (s1 + buf[n]) % 65521;
s2 = (s2 + s1) % 65521;
}
return (s2 << 16) + s1;
}


public OnFilterScriptInit()
{
print("Rejestracja By Krzyzan");
print("?adowanie...");
return 1;
}

public OnFilterScriptExit()
{
print("Rejestracja By Krzyzan");
print("Wy?adowywanie...");
return 1;
}


public OnPlayerConnect(playerid)
{

if(fexist(Player(playerid)))
{
INI_ParseFile(Player(playerid), "Ladowanie_%s", .bExtra = true, .extra = playerid);//Wczytuje dane z forwarda Ladowanie

SendClientMessage(playerid,0x99001FAA,"Witaj Ponownie! Zaloguj si? aby otrzyma? swoje pieni?dze i punkty.");

ShowPlayerDialog(playerid, LOGOWANIE, DIALOG_STYLE_PASSWORD,"{FF8080}Logowanie","\
{FF9900}Podaj swoje has?o kt?re wpisa?e? podczas rejestracji.\
\n{FF9900}Aby si? zalogowa?.","Zaloguj","Wyjd?");
}
else
{
SendClientMessage(playerid,0xFF8000AA,"Witaj! Widz? ?e jeste? u nas poraz pierwszy... Za??? sobie konto.");
ShowPlayerDialog(playerid, REJESTRACJA, DIALOG_STYLE_INPUT,"{33AA33}Rejestracja","{2986CE}Wpisz has?o aby stworzy? nowe konto.\
","Rejestracja","Wyjd?");
}


return 1;
}

public OnPlayerDisconnect(playerid, reason)
{

new INI:Plik = INI_Open(Player(playerid));//Otwieramy plik
INI_SetTag(Plik,"Dane");//Nadajemy ten nasz Tag
INI_WriteInt(Plik,"Pieniadze",GetPlayerMoney(playerid));//Zapisujemy ilo?? pieni?dzy
INI_WriteInt(Plik,"Punkty",GetPlayerScore(playerid));//Zapisujemy ilo?? punkt?w(score)
INI_Close(Plik);//Zamykamy plik

return 1;
}

public OnPlayerSpawn(playerid)
{
if(GetPVarInt(playerid,"Zalogowany") == 0) return SendClientMessage(playerid,0xFF0000AA,"Zosta?e? wyrzucony z serwera. Pow?d: Nie zalogowany zespawnowa?e? si?."), Kick(playerid);
//Chroni serwer przed omini?ciem logowania ;) Sprawdzaj?c czy gracz ma ustawionego PVara
return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

if(dialogid == REJESTRACJA)
{
if(!response) return SendClientMessage(playerid,0xFF0000AA,"Zosta?e? wyrzucony z serwera. Pow?d: Zamkni?cie okna rejestracji."), Kick(playerid);
if(response)
{
if(strlen(inputtext) <=4 && strlen(inputtext) >=8) return SendClientMessage(playerid,0xFF0000AA,"B??d: Has?o musi by? d?u?sze od 4 a kr?tsze od 8 znak?w!");
//Sprawdza czy has?o jest d?u?sze od 4 a kr?tsze od 8 znak?w

new INI:Plik = INI_Open(Player(playerid));
INI_SetTag(Plik,"Dane");
INI_WriteInt(Plik,"Haslo",udb_hash(inputtext));
INI_WriteInt(Plik,"Pieniadze",0);
INI_WriteInt(Plik,"Punkty",0);
INI_Close(Plik);
SetPVarInt(playerid,"Zalogowany",1);
SendClientMessage(playerid,0x00FF00FF,"Komunikat: Za?o?y?e? konto!");
}
return 1;
}

if(dialogid == LOGOWANIE)
{
if(!response) return SendClientMessage(playerid,0xFF0000AA,"Zosta?e? wyrzucony z serwera. Pow?d: Zamkni?cie okna logowania."), Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pHaslo])//Sprawdza poprawno?? has?a
{
INI_ParseFile(Player(playerid), "Ladowanie_%s", .bExtra = true, .extra = playerid);
SetPVarInt(playerid,"Zalogowany",1);
SendClientMessage(playerid,0x00FF00FF,"Komunikat: Zalogowa?e? si?!");

SetPlayerScore(playerid,PlayerInfo[playerid][pPunkty]);//Odczyt punkt?w score
GivePlayerMoney(playerid,PlayerInfo[playerid][pKasa]);//Odczyt ilo?ci pieni?dzy

}else{
INI_ParseFile(Player(playerid), "Ladowanie_%s", .bExtra = true, .extra = playerid);//Wczytuje dane z forwarda Ladowanie
ShowPlayerDialog(playerid, LOGOWANIE, DIALOG_STYLE_PASSWORD,"{FF8080}Logowanie","\
{FF9900}Podaj swoje has?o kt?re wpisa?e? podczas rejestracji.\
\n{FF9900}Aby si? zalogowa?.","Zaloguj","Wyjd?");

SendClientMessage(playerid,0xFF0000AA,"B??d: Z?e Has?o!");
}

}
return 1;
}



return 1;
}


[ Dodano: 2013-06-01, 18:23 ]
Od?wie?am.Nadal potrzebuje pomocy w tym temacie.

Postaw piwo autorowi tego posta
 

 
Tagi: naliczanie :: czasu :: gry
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