Wysłany: 2013-06-01, 19:20
Rumun
Wiek: 30 Na forum: 5235 dni Posty: 316
Nick w MP: Rumun
Piwa : 25
Witam.Jaki czas temu prosi?em o pomoc z naliczaniem czasu gry,w kt?rym odpowiedzi niestety si? nie doczeka?em,licz? na to,?e teraz b?dzie inaczej.
Link to tamtego tematu.
http://www.gtao.pl/inne-n...hlight=czas+gry
Za pomoc piwko.
Wysłany: 2013-06-01, 19:34
IgrexolonO
Wiek: 34 Na forum: 6809 dni Posty: 1386
Piwa : 1062
Kod: new onlineTimeStarta[MAX_PLAYERS];
OnPlayerConnect
Kod: onlineTimeStarta[playerid] = gettime();
OnPlayerDisconnect
Kod: new frajer = (gettime() - onlineTimeStarta[playerid]);
printf("Ten frajer gra? %i sekund!", frajer);
Wysłany: 2013-06-01, 19:42
Rumun
Wiek: 30 Na forum: 5235 dni Posty: 316
Nick w MP: Rumun
Piwa : 25
Nie chodzi mi tu o jednorazowe pokazanie ile gracz gra? na serwerze.Chodzi o naliczanie czasu gry danego gracza i zapisanie go za pomoc? rejestracji w odpowiednim pliku.My?l?,?e lepiej wyt?umaczy?em.
Wysłany: 2013-06-01, 19:47
IgrexolonO
Wiek: 34 Na forum: 6809 dni Posty: 1386
Piwa : 1062
To daj mi plik od zapisu, na ki uj czekasz?
OnPlayerDisconnect
Kod: dini_IntSet(plik, "online", (gettime() - onlineTimeStarta[playerid]) + dini_Int(plik, "online"));
Wysłany: 2013-06-01, 20:07
Rumun
Wiek: 30 Na forum: 5235 dni Posty: 316
Nick w MP: Rumun
Piwa : 25
Chodzi o to ?
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;
}
Tutaj ca?a 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-02, 17:10 ]
Pomo?e kto? ?
Tagi: ponownie :: czasem :: gry
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: