Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-------------------------------------------------------------------------------
- #include <a_samp>
- #include <dini>
- #include <dudb>
- #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
- #define BEZOWY 0xFFFFADAA
- #define BIALY 0xFFFFFFAA
- #define BLEKITNY 0x33CCFFAA
- #define BORDOWY 0x99001FAA
- #define BRAZOWY 0x997A00AA
- #define CIEMNY_ZIELONY 0x336633AA
- #define CZARNY 0x000000AA
- #define CZERWONY 0xFF0000AA
- #define FIOLETOWY 0x9E3DFFAA
- #define NIEBIESKI 0x0000FFAA
- #define POMARANCZOWY 0xFF8000AA
- #define ROZOWY 0xFF66CCAA
- #define SZARY 0xB0B0B0AA
- #define ZIELONY 0x00CC00AA
- #define ZOLTY 0xFFFF00AA
- #define STATYSTYKI "totalstat.ini"
- #pragma tabsize -99999
- new zalogowany[MAX_PLAYERS];
- new zlehaslo[MAX_PLAYERS];
- new logintimeout[MAX_PLAYERS];
- new wylogowany[MAX_PLAYERS];
- //-------------------------------------------------------------------------------
- public OnPlayerConnect(playerid)
- {
- if(dini_Exists(udb_encode(Player(playerid))))
- {
- SendClientMessage(playerid, ZOLTY, "* Twój nick jest zarejestrowany! Wpisz: /login [twojehasło] aby się zalogować.");
- SendClientMessage(playerid, ZOLTY, "* Jeśli się nie zalogujesz w ciągu 20 sek. zostaniesz wyrzucony z servera");
- SendClientMessage(playerid, ZOLTY, "* Jeśli nie pamiętasz hasła lub nie rejestrowałeś się tu jeszcze poprostu zmień coś w swoim nicku!");
- logintimeout[playerid] = SetTimerEx("LoginTimeout", 20000, 0, "d", playerid);
- GivePlayerMoney(playerid, strval(dini_Get(udb_encode(Player(playerid)),"kasa")));
- SetPlayerScore(playerid, strval(dini_Get(udb_encode(Player(playerid)),"punkty")));
- zalogowany[playerid] = 0;
- wylogowany[playerid] = 0;
- } else {
- SendClientMessage(playerid, ZOLTY, "* Witamy, możesz się zarejestrować komendą: /register [hasło]");
- zalogowany[playerid] = 1;
- wylogowany[playerid] = 1;
- }
- return 1;
- }
- //-------------------------------------------------------------------------------
- forward LoginTimeout(playerid);
- public LoginTimeout(playerid)
- {
- if (zalogowany[playerid] == 0 && GetPlayerState(playerid) != PLAYER_STATE_NONE)
- {
- Kick(playerid);
- new string[256];
- format(string, sizeof(string), "* %s (id: %d) został wyrzucony z serwera. Powód: Czas zalogowania się skończył!", Player(playerid), playerid);
- SendClientMessageToAll(SZARY, string);
- }
- }
- //-------------------------------------------------------------------------------
- public OnPlayerDisconnect(playerid, reason)
- {
- if (zalogowany[playerid] == 1)
- {
- Zapisz(playerid);
- }
- KillTimer(logintimeout[playerid]);
- }
- //-------------------------------------------------------------------------------
- stock Zapisz(playerid)
- {
- new string[256];
- new Float:x, Float:y, Float:z;
- new Float:ang;
- if (dini_Exists(udb_encode(Player(playerid))))
- {
- dini_IntSet(udb_encode(Player(playerid)),"kasa",GetPlayerMoney(playerid));
- dini_IntSet(udb_encode(Player(playerid)),"punkty",GetPlayerScore(playerid));
- if (GetPlayerState(playerid) != PLAYER_STATE_NONE && GetPlayerState(playerid) != PLAYER_STATE_WASTED)
- {
- GetPlayerPos(playerid,x,y,z);
- GetPlayerFacingAngle(playerid,ang);
- dini_FloatSet(udb_encode(Player(playerid)),"x",x);
- dini_FloatSet(udb_encode(Player(playerid)),"y",y);
- dini_FloatSet(udb_encode(Player(playerid)),"z",z);
- dini_FloatSet(udb_encode(Player(playerid)),"a",ang);
- }
- format(string,sizeof(string),"* Zapisano: Pozycja: X: %f,Y: %f,Z: %f,A: %f, Pieniądze: $%d Punkty: %d ",x,y,z,ang,GetPlayerMoney(playerid),GetPlayerScore(playerid));
- SendClientMessage(playerid, SZARY ,string);
- }
- return 1;
- }
- //-------------------------------------------------------------------------------
- forward ZapiszWszystkim();
- public ZapiszWszystkim()
- {
- new Float:x, Float:y, Float:z;
- new Float:ang;
- for (new i=0;i<MAX_PLAYERS;i++)
- {
- if (dini_Exists(udb_encode(Player(i))) && zalogowany[i] == 1)
- {
- dini_IntSet(udb_encode(Player(i)),"kasa",GetPlayerMoney(i));
- dini_IntSet(udb_encode(Player(i)),"punkty",GetPlayerScore(i));
- if (GetPlayerState(i) != PLAYER_STATE_NONE && GetPlayerState(i) != PLAYER_STATE_WASTED)
- {
- GetPlayerPos(i,x,y,z);
- GetPlayerFacingAngle(i,ang);
- dini_FloatSet(udb_encode(Player(i)),"x",x);
- dini_FloatSet(udb_encode(Player(i)),"y",y);
- dini_FloatSet(udb_encode(Player(i)),"z",z);
- dini_FloatSet(udb_encode(Player(i)),"a",ang);
- }
- }
- }
- return 1;
- }
- //-------------------------------------------------------------------------------
- public OnPlayerSpawn(playerid)
- {
- GivePlayerMoney(playerid, 50000);
- SetPlayerInterior(playerid,0);
- //PRZYWRÓCENIE POZYCJI -----------------------
- new tmpx[256];
- new tmpy[256];
- new tmpz[256];
- new tmpa[256];
- if (dini_Exists(udb_encode(Player(playerid))))
- {
- if (zalogowany[playerid] == 0 && wylogowany[playerid] == 0)
- {
- SendClientMessage(playerid, CZERWONY, "* Podaj haslo do konta lub zmien nick!");
- SetPlayerHealth(playerid, 0.0);
- } else {
- tmpx = dini_Get(udb_encode(Player(playerid)), "x");
- tmpy = dini_Get(udb_encode(Player(playerid)), "y");
- tmpz = dini_Get(udb_encode(Player(playerid)), "z");
- tmpa = dini_Get(udb_encode(Player(playerid)), "a");
- if(strval(tmpx) && strval(tmpy) && strval(tmpz) && strval(tmpa))
- {
- SetPlayerPosIx(playerid, floatstr(tmpx), floatstr(tmpy), floatstr(tmpz),floatstr(tmpa));
- SendClientMessage(playerid, ZIELONY, "Twoja pozycja została przywrócona!");
- }
- }
- }
- //KONIEC PRZYWRÓCENIE POZYCJI ----------------
- return 1;
- }
- //-------------------------------------------------------------------------------
- SetPlayerPosIx(playerid,Float:X,Float:Y,Float:Z,Float:Ang)
- {
- SetPlayerFacingAngle(playerid,Ang);
- SetPlayerPos(playerid,X,Y,Z);
- SetCameraBehindPlayer(playerid);
- }
- //-------------------------------------------------------------------------------
- public OnPlayerDeath(playerid, killerid, reason)
- {
- GameTextForPlayer(playerid,"~w~WASTED",3000,2);
- //SELF KILL -----------------------------------------
- if(killerid == INVALID_PLAYER_ID)
- {
- SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
- ResetPlayerMoney(playerid);
- dini_Unset(udb_encode(Player(playerid)), "x");
- dini_Unset(udb_encode(Player(playerid)), "y");
- dini_Unset(udb_encode(Player(playerid)), "z");
- dini_Unset(udb_encode(Player(playerid)), "a");
- if (dini_Exists(udb_encode(Player(playerid))) && zalogowany[playerid] == 1)
- {
- dini_IntSet(udb_encode(Player(playerid)), "samobojstw", strval(dini_Get(udb_encode(Player(playerid)), "samobojstw"))+1);
- }
- if (!dini_Exists(STATYSTYKI))
- {
- dini_Create(STATYSTYKI);
- }
- dini_IntSet(STATYSTYKI, "wszystkichsamobojst", strval(dini_Get(STATYSTYKI, "wszystkichsamobojst"))+1);
- //KONIEC SELF KILL ----------------------------------
- } else {
- //ZABOJSTWA -------------------------------------------
- SendDeathMessage(killerid,playerid,reason);
- if (GetPlayerMoney(playerid) > 0)
- {
- GivePlayerMoney(killerid, GetPlayerMoney(playerid));
- ResetPlayerMoney(playerid);
- }
- //DRIVE BY ~~~~~~~~~~~~~~~~~~~~~~~~~~
- if((IsPlayerInAnyVehicle(killerid) && !IsPlayerInAnyVehicle(playerid) && GetPlayerState(killerid) == PLAYER_STATE_DRIVER && reason != WEAPON_VEHICLE))
- {
- if (dini_Exists(udb_encode(Killer(killerid))))
- {
- dini_IntSet(udb_encode(Killer(killerid)), "driveby", strval(dini_Get(udb_encode(Killer(killerid)), "driveby"))+1);
- }
- if (!dini_Exists(STATYSTYKI))
- {
- dini_Create(STATYSTYKI);
- }
- dini_IntSet(STATYSTYKI, "wszystkiedriveby", strval(dini_Get(STATYSTYKI, "wszystkiedriveby"))+1);
- }
- //ZABOJSTWO ~~~~~~~~~~~~~~~~~~~~~~~~~~
- if (dini_Exists(udb_encode(Killer(killerid))))
- {
- dini_IntSet(udb_encode(Killer(killerid)), "zabojstw", strval(dini_Get(udb_encode(Killer(killerid)), "zabojstw"))+1);
- }
- if (!dini_Exists(STATYSTYKI))
- {
- dini_Create(STATYSTYKI);
- }
- dini_IntSet(STATYSTYKI, "wszystkichzabojstw", strval(dini_Get(STATYSTYKI, "wszystkichzabojstw"))+1);
- }
- if (dini_Exists(udb_encode(Player(playerid))) && zalogowany[playerid] == 1)
- {
- dini_IntSet(udb_encode(Player(playerid)), "smierc", strval(dini_Get(udb_encode(Player(playerid)), "smierc"))+1);
- }
- if (!dini_Exists(STATYSTYKI))
- {
- dini_Create(STATYSTYKI);
- }
- dini_IntSet(STATYSTYKI, "wszystkichsmierci", strval(dini_Get(STATYSTYKI, "wszystkichsmierci"))+1);
- dini_Unset(udb_encode(Player(playerid)), "x");
- dini_Unset(udb_encode(Player(playerid)), "y");
- dini_Unset(udb_encode(Player(playerid)), "z");
- dini_Unset(udb_encode(Player(playerid)), "a");
- return 1;
- }
- //-------------------------------------------------------------------------------
- public OnPlayerRequestClass(playerid, classid)
- {
- return 1;
- }
- //-------------------------------------------------------------------------------
- public OnGameModeInit()
- {
- SetTimer("ZapiszWszystkim", 600000, 1);
- }
- //-------------------------------------------------------------------------------
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- dcmd (register , 8, cmdtext ) ;
- dcmd (login , 5, cmdtext ) ;
- dcmd (setpass , 7, cmdtext ) ;
- dcmd (logout , 6, cmdtext ) ;
- dcmd (save , 4, cmdtext ) ;
- dcmd (saveall , 7, cmdtext ) ;
- dcmd (staty , 5, cmdtext ) ;
- return 0;
- }
- //-------------------------------------------------------------------------------
- dcmd_save(playerid, cmdtext[])
- {
- #pragma unused cmdtext
- Zapisz(playerid);
- SendClientMessage(playerid, ZIELONY , "* Zapisano poprawnie.");
- return 1;
- }
- dcmd_saveall(playerid, cmdtext[])
- {
- #pragma unused cmdtext
- if(IsPlayerAdmin(playerid)){
- Zapisz(playerid);
- SendClientMessage(playerid, ZIELONY , "* Poprawnie zapisano wszystkim graczom.");
- } else {
- SendClientMessage(playerid, CZERWONY, "* Musisz posiadać uprawnienia Administratorskie aby zapisać wszystkich graczy.");
- }
- return 1;
- }
- dcmd_staty(playerid, cmdtext[])
- {
- #pragma unused cmdtext
- new tmp[256];
- new graczy = strval(dini_Get(STATYSTYKI, "graczy"));
- new Najnowszy[256];
- Najnowszy = dini_Get(STATYSTYKI, "nowygracz");
- new smierci = strval(dini_Get(STATYSTYKI, "wszystkichsmierci"));
- new zabojstw = strval(dini_Get(STATYSTYKI, "wszystkichzabojstw"));
- new samobojstw = strval(dini_Get(STATYSTYKI, "wszystkichsamobojst"));
- SendClientMessage(playerid, ZIELONY, "* Statystyki servera ::");
- format(tmp, 256, "* Wszystkich graczy zarejestrowanych :: %d", graczy);
- SendClientMessage(playerid, ZOLTY, tmp);
- format(tmp, 256, "* Najnowszy gracz :: %s", Najnowszy);
- SendClientMessage(playerid, ZOLTY, tmp);
- format(tmp, 256, "* Wszystkich śmierci :: %d", smierci);
- SendClientMessage(playerid, ZOLTY, tmp);
- format(tmp, 256, "* Wszystkich zabójstw :: %d", zabojstw);
- SendClientMessage(playerid, ZOLTY, tmp);
- format(tmp, 256, "* Wszystkich zabójstw :: %d", zabojstw);
- SendClientMessage(playerid, ZOLTY, tmp);
- format(tmp, 256, "* Wszystkich samobójstw :: %d", samobojstw);
- SendClientMessage(playerid, ZOLTY, tmp);
- return 1;
- }
- dcmd_register(playerid, cmdtext[])
- {
- new tmp[256];
- new string[256];
- if(20 < strlen(cmdtext) || strlen(cmdtext) < 5)
- {
- SendClientMessage(playerid, ZIELONY , "* Hasło musi mieć od min. 5 do max. 20 znaków");
- return 1;
- }
- if(!cmdtext[0])
- {
- SendClientMessage(playerid, ZIELONY , "* WPISZ: /register [hasło]");
- }
- if (!dini_Exists(udb_encode(Player(playerid))))
- {
- new dzien, miesiac, rok;
- getdate(rok, miesiac, dzien);
- format(tmp, sizeof(tmp), "%d.%d.%d", dzien, miesiac, rok);
- dini_Create(udb_encode(Player(playerid)));
- dini_IntSet(udb_encode(Player(playerid)), "haslo", udb_hash(cmdtext));
- dini_Set(udb_encode(Player(playerid)), "datarejestracji", tmp);
- if (!dini_Exists(STATYSTYKI))
- {
- dini_Create(STATYSTYKI);
- dini_IntSet(STATYSTYKI, "graczy", strval(dini_Get(STATYSTYKI, "graczy"))+1);
- dini_Set(STATYSTYKI, "nowygracz", Player(playerid));
- }
- format(string, sizeof(string), "* %s (id: %d) utworzyłeś/aś nowe konto. Twoje hasło to: >>> %s <<< Zapamiętaj je!!!", Player(playerid), playerid, cmdtext);
- SendClientMessage(playerid, ZIELONY, string);
- } else {
- format(string, sizeof(string), "* %s jest już zarejestrowany.", Player(playerid),cmdtext);
- SendClientMessage(playerid, CZERWONY, string);
- }
- return 1;
- }
- //-------------------------------------------------------------------------------
- dcmd_login(playerid, cmdtext[])
- {
- new tmp[256];
- new string[256];
- if(!cmdtext[0])
- {
- SendClientMessage(playerid, ZIELONY , "* WPISZ: /login [hasło]");
- }
- if(dini_Exists(udb_encode(Player(playerid))))
- {
- if(zalogowany[playerid] == 1)
- {
- SendClientMessage(playerid, CZERWONY, "* Jesteś już zalogowany!");
- } else {
- if(udb_hash(cmdtext) != strval(dini_Get(udb_encode(Player(playerid)), "haslo")))
- {
- SendClientMessage(playerid, CZERWONY, "* Podałeś złe hasło.");
- GameTextForPlayer(playerid, "~r~Zle haslo!", 3000, 5);
- zlehaslo[playerid]++;
- if(zlehaslo[playerid] >= 5)
- {
- Kick(playerid);
- format(string, sizeof(string), "* %s (id: %d) został wyrzucony z serwera. Powód: Za dużo prób wpisania hasła.", Player(playerid), playerid);
- SendClientMessageToAll(CZERWONY, string);
- }
- } else {
- zalogowany[playerid] = 1;
- KillTimer(logintimeout[playerid]);
- new godzina, minuta, sekunda;
- new dzien, miesiac, rok;
- gettime(godzina, minuta, sekunda);
- getdate(rok, miesiac, dzien);
- format(tmp, sizeof(tmp), "%d.%d.%d [%d:%d:%d]", dzien, miesiac, rok, godzina, minuta, sekunda);
- dini_Set(udb_encode(Player(playerid)), "ostatniozalogowany", tmp);
- SendClientMessage(playerid, ZIELONY, "* Zalogowałeś się!");
- GameTextForPlayer(playerid, "~g~Zalogowales sie!", 3000, 5);
- }
- }
- } else {
- format(string, sizeof(string), "* %s nie ma takiego konta.", Player(playerid));
- SendClientMessage(playerid, CZERWONY, string);
- }
- return 1;
- }
- //-------------------------------------------------------------------------------
- dcmd_logout(playerid, cmdtext[])
- {
- #pragma unused cmdtext
- new string[256];
- if (dini_Exists(udb_encode(Player(playerid))))
- {
- if (zalogowany[playerid] == 1)
- {
- SendClientMessage(playerid,ZIELONY ,"Wylogowałeś się!");
- GameTextForPlayer(playerid,"~Y~Wylogowales sie!",2500,5);
- Zapisz(playerid);
- zalogowany[playerid] = 0;
- wylogowany[playerid] = 1;
- } else {
- format(string, sizeof(string), "* %s nie jesteś zalogowany!", Player(playerid));
- SendClientMessage(playerid, CZERWONY, string);
- }
- } else {
- format(string, sizeof(string), "* %s nie ma takiego konta.", Player(playerid));
- SendClientMessage(playerid, CZERWONY, string);
- }
- return 1;
- }
- //-------------------------------------------------------------------------------
- dcmd_setpass(playerid, cmdtext[])
- {
- new string[256];
- if(20 < strlen(cmdtext) || strlen(cmdtext) < 5)
- {
- SendClientMessage(playerid, CZERWONY, "* Hasło musi mieć min. od 5 do max. 20 znaków");
- return 1;
- }
- if(!cmdtext[0])
- {
- SendClientMessage(playerid, ZIELONY , "* WPISZ: /setpass [nowehasło]");
- }
- if (dini_Exists(udb_encode(Player(playerid))))
- {
- if (zalogowany[playerid] == 1)
- {
- dini_IntSet(udb_encode(Player(playerid)), "haslo", udb_hash(cmdtext));
- format(string, sizeof(string), "* %s (id: %d) zmieniłeś/aś hasło na: >>> %s <<<", Player(playerid), playerid, cmdtext);
- SendClientMessage(playerid, CZERWONY, string);
- } else {
- SendClientMessage(playerid, CZERWONY, "* Musisz być zalogowany by zmienić swoje hasło!");
- }
- } else {
- format(string, sizeof(string), "* %s nie ma takiego konta.", Player(playerid));
- SendClientMessage(playerid, CZERWONY, string);
- }
- return 1;
- }
- //-------------------------------------------------------------------------------
- Player(playerid)
- {
- new player[MAX_PLAYER_NAME];
- GetPlayerName(playerid, player, sizeof(player));
- return player;
- }
- //-------------------------------------------------------------------------------
- Killer(killerid)
- {
- new killer[MAX_PLAYER_NAME];
- GetPlayerName(killerid, killer, sizeof(killer));
- return killer;
- }
Advertisement
Add Comment
Please, Sign In to add comment