Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //INCLUDY
- #include <a_samp>
- #include <a_mysql>
- #include <streamer>
- #include <sscanf2>
- #include <zcmd>
- //KOLORY
- #define COLOR_WHITE 0xFFFFFFFF
- #define COLOR_LIGHTGRAY 0xC0C0C0FF
- #define COLOR_DARKGRAY 0x808080FF
- #define COLOR_PINK 0xFF80C0FF
- #define COLOR_DARKCYAN 0x008080FF
- main() {}
- //NATIVEY
- native WP_Hash(buffer[], len, const str[]);
- //FORWARDY
- forward bool:IsStrValid(string[]);
- //USTAWIENIA
- #define START_MONEY 1500
- #define MAP_ICON_RANGE 600
- //DIALOGI
- #define DIALOG_REGISTER1 0
- #define DIALOG_LOGIN 1
- #define DIALOG_REGISTER2 2
- #define DIALOG_REGISTER3 3
- //DEFINICJE
- #define SCRIPT_NAME "Super Serwer"
- #define SCRIPT_VERSION "V1.0"
- #define INFO_STRING "{00FF00}[INFO]{FFFFFF}: "
- #define ERROR_STRING "{FF0000}[BŁĄD]{FFFFFF}: "
- #define MAX_ENTRANCES 50
- #define GENDER_MALE 1
- #define GENDER_FEMALE 0
- //TEXTDRAWY
- new Text:SkinSelector_Title;
- new Text:SkinSelector_Right;
- new Text:SkinSelector_Left;
- new Text:SkinSelector_Accept;
- //ENUMERATORY
- enum PlayerData
- {
- bool:LoggedIn,
- bool:ShowMouse,
- bool:IsFreezed,
- bool:FirstSpawn,
- Cache:Cache_ID,
- UID,
- Password[129],
- Age,
- Level,
- Gender,
- SkinID,
- Money,
- AdminLVL,
- Float:LastPos[4],
- LastPosInt,
- LastPosVW,
- Float:LastHealth,
- Float:LastArmour,
- //Wybor postaci
- SelectedSkinID
- };
- new Player[MAX_PLAYERS][PlayerData];
- new entranceindex;
- enum EntranceData
- {
- bool:e_freeze,
- Float:e_posx,
- Float:e_posy,
- Float:e_posz,
- Float:e_posrot,
- e_interior,
- e_vw,
- e_conid
- };
- new Entrance[MAX_ENTRANCES][EntranceData];
- //ZMIENNE GLOBALNE
- new MySQL:SQL_ID;
- new Skins_Male[][] = {6, 7, 20, 21, 22, 23, 24, 26}; //Mezczyzni
- new Skins_Female[][] = {31, 40, 41, 54, 55, 56, 65, 148}; //Kobiety
- public OnGameModeInit()
- {
- printf("Włączam skrypt %s %s...\n", SCRIPT_NAME, SCRIPT_VERSION);
- if(MySQL_Init())
- {
- AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
- //WCZYTYWANIE
- MySQL_SetUpTables(); //Tworzy tabele w bazie MySQL jesli nie istnieje
- CreateGlobalTD(); //Tworzy globalne TextDrawy
- //TIMERY
- SetTimer("SecondUpdate", 1000, true);
- //USTAWIENIA
- DisableInteriorEnterExits();
- EnableStuntBonusForAll(false);
- UsePlayerPedAnims();
- SetGameModeText("Serwer RP");
- //IKONKI NA MAPIE
- CreateDynamicMapIcon(-2424.9399,337.3700,37.0021, 38, 0, 0, 0, -1, MAP_ICON_RANGE, MAPICON_GLOBAL, -1, 0);
- //WEJSCIA/WYJSCIA
- ConnectEntrances(
- CreateEntrance("Urząd obywatela", -2649.3245, 376.1054, 6.1593, 87.0203, 0, 0, -1, 40, false),
- CreateEntrance("Urząd obywatela - Wyjście", 390.2535, 173.8476, 1008.3828, 90.0, 3, 1, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("Ammu-Nation", -2625.9133,208.8289,4.6147,1.8954, 0, 0, -1, 18, false),
- CreateEntrance("Ammu-Nation - Wyjście", 285.7935,-86.3259,1001.5229,356.4808, 4, 2, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("Siłownia", -2270.1841, -171.1174, 35.3203, 268.7586, 0, 0, -1, 54, false),
- CreateEntrance("Siłownia - Wyjście", 774.1893,-50.0189,1000.5859,356.7941, 6, 3, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("Szkoła jazdy", -2026.5427, -101.5651, 35.1641, 0.4915, 0, 0, -1, 36, false),
- CreateEntrance("Szkoła jazdy - Wyjście", 1494.4624,1304.0168,1093.2891,0.0, 3, 4, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("San Fierro Police Department", -1605.4698, 710.7346, 13.8672, 357.7381, 0, 0, -1, 30, false),
- CreateEntrance("San Fierro Police Department - Wyjście", 246.5194,107.7477,1003.2188,353.0341, 10, 5, -1, -1, false));
- //-Restauracje-
- ConnectEntrances(
- CreateEntrance("Burger Shot", -1912.1199, 828.1166, 35.2071, 317.9252, 0, 0, -1, 10, false),
- CreateEntrance("Burger Shot - Wyjście", 363.1646,-74.9205,1001.5078,312.1554, 10, 6, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("Burger Shot", -2356.1631, 1008.1310, 50.8984, 86.7594, 0, 0, -1, 10, false),
- CreateEntrance("Burger Shot - Wyjście", 363.1646,-74.9205,1001.5078,312.1554, 10, 7, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("Burger Shot", -2336.4722, -166.8134, 35.5547, 271.3614, 0, 0, -1, 10, false),
- CreateEntrance("Burger Shot - Wyjście", 363.1646,-74.9205,1001.5078,312.1554, 10, 8, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("Cluckin' Bell", -2671.4756, 258.3640, 4.6328, 359.5883, 0, 0, -1, 14, false),
- CreateEntrance("Cluckin' Bell - Wyjście", 364.9311,-11.1630,1001.8516,357.7341, 9, 9, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("Cluckin' Bell", -1816.5823, 618.2886, 35.1719, 175.8732, 0, 0, -1, 14, false),
- CreateEntrance("Cluckin' Bell - Wyjście", 364.9311,-11.1630,1001.8516,357.7341, 9, 10, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("Well Stacked Pizza Co.", -1808.4951, 945.5543, 24.8906, 221.4736, 0, 0, -1, 29, false),
- CreateEntrance("Well Stacked Pizza Co. - Wyjście", 372.3931,-133.3447,1001.4922,358.3374, 5, 11, -1, -1, false));
- ConnectEntrances(
- CreateEntrance("Well Stacked Pizza Co.", -1721.3975, 1359.7289, 7.1853, 88.8329, 0, 0, -1, 29, false),
- CreateEntrance("Well Stacked Pizza Co. - Wyjście", 372.3931,-133.3447,1001.4922,358.3374, 5, 12, -1, -1, false));
- printf("Skrypt %s %s został pomyślnie włączony!\n", SCRIPT_NAME, SCRIPT_VERSION);
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- #define PRESSED(%0) \
- (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- if(PRESSED(KEY_SECONDARY_ATTACK))
- {
- if(!IsPlayerInAnyVehicle(playerid))
- {
- if(Player[playerid][IsFreezed] == false)
- {
- new p_vw = GetPlayerVirtualWorld(playerid);
- new p_int = GetPlayerInterior(playerid);
- for(new i; i < entranceindex; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 1.0, Entrance[i][e_posx], Entrance[i][e_posy], Entrance[i][e_posz]) &&
- Entrance[i][e_interior] == p_int && Entrance[i][e_vw] == p_vw)
- {
- new conid = Entrance[i][e_conid];
- SetPlayerPos(playerid, Entrance[conid][e_posx], Entrance[conid][e_posy], Entrance[conid][e_posz]);
- SetPlayerFacingAngle(playerid, Entrance[conid][e_posrot]);
- SetPlayerInterior(playerid, Entrance[conid][e_interior]);
- SetPlayerVirtualWorld(playerid, Entrance[conid][e_vw]);
- SetCameraBehindPlayer(playerid);
- if(Entrance[conid][e_freeze])
- FreezePlayer(playerid, 3000, "Wczytuje obiekty...");
- break;
- }
- }
- }
- }
- }
- return 1;
- }
- public OnGameModeExit()
- {
- mysql_close(SQL_ID); //Rozlacza z bazy
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SpawnPlayer(playerid);
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- new message[258];
- format(message, sizeof message, "%s[%i] mówi: %s", PlayerName(playerid), playerid, text);
- SendClientMessageInRange(playerid, COLOR_LIGHTGRAY, 15.0, message);
- return 0;
- }
- public OnPlayerConnect(playerid)
- {
- if(IsRPName(PlayerName(playerid)))
- {
- ClearPlayerChat(playerid);
- SetSpawnInfo(playerid, NO_TEAM, 0, 0.0,0.0,0.0,0.0, 0, 0, 0, 0, 0, 0); //To tylko sprawia by gracz ominal standardowy wybor postaci.
- }
- else
- {
- SendClientMessage(playerid, -1, ERROR_STRING"Twoja nazwa jest niezgodna zasadami Role-Play, uzyj formatu Nazwa_Nazwisko!");
- KickEx(playerid);
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new query[258];
- if(Player[playerid][LoggedIn])
- {
- SaveAccount(playerid); //Zapisuje dane gracza
- mysql_format(SQL_ID, query, sizeof query, "UPDATE accounts SET lastonline = NOW() WHERE uid = %i", Player[playerid][UID]);
- mysql_tquery(SQL_ID, query);
- }
- ResetPlayerData(playerid); //Resetuje dane gracza
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_LOGIN: //Login gracza
- {
- if(response)
- {
- if(strlen(inputtext) && IsStrValid(inputtext))
- {
- new buff[129], query[258], ip[18];
- WP_Hash(buff, 129, inputtext); //Szyfruje haslo ktory podal gracza by sprawdzic haslo z bazy.
- if(strcmp(Player[playerid][Password], buff, true) == 0)
- {
- //Haslo sie zgadza
- AssignPlayerData(playerid); //Ustawia graczowi dane do pamieci.
- Player[playerid][LoggedIn] = true;
- Player[playerid][FirstSpawn] = true;
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, Player[playerid][Money]);
- SetPlayerScore(playerid, Player[playerid][Level]);
- SpawnPlayer(playerid);
- ClearPlayerChat(playerid);
- SendClientMessage(playerid, -1, INFO_STRING"Zostałeś pomyślnie zalogowany! Miłej gry!");
- GetPlayerIp(playerid, ip, 18);
- mysql_format(SQL_ID, query, sizeof query, "UPDATE accounts SET lastip = '%s', lastonline = NOW() WHERE uid = %i", ip, Player[playerid][UID]);
- mysql_tquery(SQL_ID, query);
- }
- else
- {
- //Haslo sie nie zgadza
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Twoje konto zostało odnalezione!\nPodaj poniżej swoje hasło aby się zalogować!", "Zaloguj", "Wyjdz");
- SendClientMessage(playerid, -1, ERROR_STRING"Podano błędne hasło! Spróbuj ponownie!");
- }
- }
- else
- {
- //Haslo sie nie zgadza
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Twoje konto zostało odnalezione!\nPodaj poniżej swoje hasło aby się zalogować!", "Zaloguj", "Wyjdz");
- SendClientMessage(playerid, -1, ERROR_STRING"Podano błędne hasło! Spróbuj ponownie!");
- }
- }
- else KickEx(playerid);
- }
- case DIALOG_REGISTER3: //Rejestracja Wiek postaci
- {
- if(response)
- {
- if(IsNumeric(inputtext) && strlen(inputtext) == 2 && strval(inputtext) >= 18 && strval(inputtext) <= 60)
- {
- Player[playerid][Age] = strval(inputtext);
- SetPlayerCameraPos(playerid, -2168.2939,642.1371,1057.5938);
- SetPlayerCameraLookAt(playerid, -2165.8633,644.5464,1057.5000, CAMERA_MOVE);
- Player[playerid][SelectedSkinID] = 0;
- new sskin = Player[playerid][SelectedSkinID];
- if(Player[playerid][Gender] == GENDER_MALE)
- {
- SetPlayerSkin(playerid, Skins_Male[sskin][0]);
- Player[playerid][SkinID] = Skins_Male[sskin][0];
- }
- else
- {
- SetPlayerSkin(playerid, Skins_Female[sskin][0]);
- Player[playerid][SkinID] = Skins_Female[sskin][0];
- }
- TextDrawShowForPlayer(playerid, SkinSelector_Title);
- TextDrawShowForPlayer(playerid, SkinSelector_Right);
- TextDrawShowForPlayer(playerid, SkinSelector_Left);
- TextDrawShowForPlayer(playerid, SkinSelector_Accept);
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER3, DIALOG_STYLE_INPUT, "Rejestracja", "Wybierz wiek Twojej postaci.", "Potwierdz", "Wyjdz");
- SendClientMessage(playerid, -1, ERROR_STRING"Wiek postaci musi byc od 18-60 lat!");
- }
- }
- else KickEx(playerid);
- }
- case DIALOG_REGISTER2: //Rejestracja Plec postaci
- {
- Player[playerid][Gender] = response;
- ShowPlayerDialog(playerid, DIALOG_REGISTER3, DIALOG_STYLE_INPUT, "Rejestracja", "Wybierz wiek Twojej postaci.", "Potwierdz", "Wyjdz");
- }
- case DIALOG_REGISTER1: //Rejestracja konta haslo
- {
- if(response)
- {
- if(strlen(inputtext) >= 6 && IsStrValid(inputtext))
- {
- WP_Hash(Player[playerid][Password], 129, inputtext); //Szyfruje haslo ktory potem wpiszemy do bazy.
- ShowPlayerDialog(playerid, DIALOG_REGISTER2, DIALOG_STYLE_MSGBOX, "Rejestracja", "Wybierz płeć swojej postaci.", "Mężczyzna", "Kobieta");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_PASSWORD, "Rejestracja", "Aby zagrać na serwerze, musisz stworzyć konto.\nPodaj poniżej swoje hasło.", "Potwierdz", "Wyjdz");
- SendClientMessage(playerid, -1, ERROR_STRING"Hasło musi zawierać przynajmniej 6 znaków i nie może posiadać przerw i znaków specjalnych!");
- }
- }
- else KickEx(playerid);
- }
- }
- return 0;
- }
- public OnPlayerClickTextDraw(playerid, Text:clickedid)
- {
- if(clickedid == SkinSelector_Right) //Wybor postaci nastepna postac
- {
- if(Player[playerid][Gender] == GENDER_MALE) //Mezczyzni
- {
- if(Player[playerid][SelectedSkinID] == (sizeof Skins_Male - 1))
- Player[playerid][SelectedSkinID] = 0;
- else
- Player[playerid][SelectedSkinID]++;
- new sskin = Player[playerid][SelectedSkinID];
- SetPlayerSkin(playerid, Skins_Male[sskin][0]);
- Player[playerid][SkinID] = Skins_Male[sskin][0];
- }
- else //Kobiety
- {
- if(Player[playerid][SelectedSkinID] == (sizeof Skins_Female - 1))
- Player[playerid][SelectedSkinID] = 0;
- else
- Player[playerid][SelectedSkinID]++;
- new sskin = Player[playerid][SelectedSkinID];
- SetPlayerSkin(playerid, Skins_Female[sskin][0]);
- Player[playerid][SkinID] = Skins_Female[sskin][0];
- }
- }
- if(clickedid == SkinSelector_Left) //Wybor postaci poprzednia postac
- {
- if(Player[playerid][Gender] == GENDER_MALE) //Mezczyzni
- {
- if(Player[playerid][SelectedSkinID] == 0)
- Player[playerid][SelectedSkinID] = (sizeof Skins_Male - 1);
- else
- Player[playerid][SelectedSkinID]--;
- new sskin = Player[playerid][SelectedSkinID];
- SetPlayerSkin(playerid, Skins_Male[sskin][0]);
- Player[playerid][SkinID] = Skins_Male[sskin][0];
- }
- else //Kobiety
- {
- if(Player[playerid][SelectedSkinID] == 0)
- Player[playerid][SelectedSkinID] = (sizeof Skins_Female - 1);
- else
- Player[playerid][SelectedSkinID]--;
- new sskin = Player[playerid][SelectedSkinID];
- SetPlayerSkin(playerid, Skins_Female[sskin][0]);
- Player[playerid][SkinID] = Skins_Female[sskin][0];
- }
- }
- if(clickedid == SkinSelector_Accept) //Wybor postaci akzeptacja.
- {
- TextDrawHideForPlayer(playerid, SkinSelector_Title);
- TextDrawHideForPlayer(playerid, SkinSelector_Right);
- TextDrawHideForPlayer(playerid, SkinSelector_Left);
- TextDrawHideForPlayer(playerid, SkinSelector_Accept);
- CreateAccount(playerid); //Tworzy konto dla gracza
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- new query[258];
- if(Player[playerid][LoggedIn] == false)
- {
- new ip[18];
- //NIE ZALOGOWANY
- SetPlayerSkin(playerid, GetRandomSkin()); //Skin gracza podczas okna logowania i rejestracji, jest wybrany losowo.
- SetPlayerPos(playerid, -2165.8633,644.5464,1057.5938); //Pozycja postaci podczas okna logowania i rejestracji
- SetPlayerFacingAngle(playerid, 90.0000); //Rotacja gracza okna logowania i rejestracji
- SetPlayerInterior(playerid, 1); //Ustawia Interior
- //
- SetPlayerVirtualWorld(playerid, 50 + playerid); //UStawia kazdego gracza w swoim Wirtualnym swiecie.
- SetPlayerCameraPos(playerid, -2160.5630,642.1472,1058.5938); //Pozycja kamera.
- SetPlayerCameraLookAt(playerid, -2167.0398,644.4033,1059.1016); //Gdzie kamera sie ma patrzec.
- TogglePlayerControllable(playerid, false); //Zamraza gracza
- ShowPlayerMouse(playerid, true); //Pokazuje myszke
- GetPlayerIp(playerid, ip, 18); //Pobiera IP gracza
- mysql_format(SQL_ID, query, sizeof query, "SELECT * FROM accounts WHERE name = '%s' LIMIT 1", PlayerName(playerid));
- mysql_tquery(SQL_ID, query, "OnAccountCheck", "iss", playerid, ip, PlayerName(playerid));
- }
- else
- {
- //ZALOGOWANY
- if(Player[playerid][FirstSpawn] && Player[playerid][LastPos] != 0)
- {
- SetPlayerPos(playerid, Player[playerid][LastPos][0], Player[playerid][LastPos][1], Player[playerid][LastPos][2]);
- SetPlayerFacingAngle(playerid, Player[playerid][LastPos][3]);
- SetPlayerInterior(playerid, Player[playerid][LastPosInt]);
- SetPlayerVirtualWorld(playerid, Player[playerid][LastPosVW]);
- SetPlayerHealth(playerid, Player[playerid][LastHealth]);
- SetPlayerArmour(playerid, Player[playerid][LastArmour]);
- }
- else
- {
- SetPlayerPos(playerid, -2424.9399,337.3700,37.0021); //Pozycja Spawnu gracza
- SetPlayerFacingAngle(playerid, 242.0000); //Rotacja Spawnu gracza
- SetPlayerInterior(playerid, 0); //Ustawia interior.
- SetPlayerVirtualWorld(playerid, 0); //UStawia wirtualny swiat na 0 by zobaczyc innych graczy.
- }
- SetPlayerSkin(playerid, Player[playerid][SkinID]); //Skin gracza
- TogglePlayerControllable(playerid, true); //Odmraza gracza.
- SetCameraBehindPlayer(playerid); //Ustawia kamere za gracza.
- ShowPlayerMouse(playerid, false); //Chowa myszke gracza.
- Player[playerid][FirstSpawn] = false;
- }
- return 1;
- }
- //CALLBACKI MYSQL
- forward OnAccountCreate(playerid);
- public OnAccountCreate(playerid)
- {
- SendClientMessage(playerid, -1, INFO_STRING"Konto zostało pomyślnie stworzony!");
- SpawnPlayer(playerid);
- return 1;
- }
- forward OnAccountCheck(playerid, ip[], name[]);
- public OnAccountCheck(playerid, ip[], name[])
- {
- //Sprawdza czy dane ktory pobral z bazy, nalezy nadal dla tego gracza.
- if(!IsPlayerConnected(playerid)) //Czy jest nadal polaczony?
- return 1;
- new tmpip[18];
- GetPlayerIp(playerid, tmpip, 18);
- if(strcmp(ip, tmpip, true) != 0 && strcmp(name, PlayerName(playerid), true) != 0) //Czy IP i Nazwa gracza sie zgadza?
- return KickEx(playerid);
- //Sprawdzamy czy konto istnieje.
- if(cache_num_rows() > 0)
- {
- //ZNALAZL KONTO
- cache_get_value(0, "password", Player[playerid][Password], 129); //Pobieramy haslo gracza z bazy
- Player[playerid][Cache_ID] = cache_save(); //Zapiszemy cache i ID wpiszemy do enumeratora by pozniej moc pobrac dane.
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Twoje konto zostało odnalezione!\nPodaj poniżej swoje hasło aby się zalogować!", "Zaloguj", "Wyjdz");
- }
- else
- {
- //NIE ZNALAZL KONTO
- ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_PASSWORD, "Rejestracja", "Aby zagrać na serwerze, musisz stworzyć konto.\nPodaj poniżej swoje hasło.", "Potwierdz", "Wyjdz");
- }
- return 1;
- }
- //TIMERY
- forward UnFreezePlayer(playerid);
- public UnFreezePlayer(playerid)
- {
- Player[playerid][IsFreezed] = false;
- TogglePlayerControllable(playerid, true);
- return 1;
- }
- forward DelayKick(playerid);
- public DelayKick(playerid)
- return Kick(playerid);
- forward SecondUpdate();
- public SecondUpdate()
- {
- for(new playerid, j = GetPlayerPoolSize(); playerid <= j; playerid++)
- {
- if(IsPlayerConnected(playerid))
- {
- if(Player[playerid][ShowMouse])
- {
- ShowPlayerMouse(playerid, true);
- }
- }
- }
- return 1;
- }
- //KOMENDY
- CMD:ooc(playerid, params[])
- {
- new message[128], string[192];
- if(sscanf(params, "s[128]", message)) SendClientMessage(playerid, -1, "UŻYJ: /OOC [Wiadomość]");
- else
- {
- format(string, sizeof string, "OOC | %s[%i]: %s", PlayerName(playerid), playerid, message);
- SendClientMessageToAll(COLOR_WHITE, string);
- }
- return 1;
- }
- CMD:k(playerid, params[])
- {
- new message[128], string[192];
- if(sscanf(params, "s[128]", message)) SendClientMessage(playerid, -1, "UŻYJ: /K [Wiadomość]");
- else
- {
- format(string, sizeof string, "%s[%i] krzyczy: %s", PlayerName(playerid), playerid, message);
- SendClientMessageInRange(playerid, COLOR_WHITE, 30.0, string);
- }
- return 1;
- }
- CMD:s(playerid, params[])
- {
- new message[128], string[192];
- if(sscanf(params, "s[128]", message)) SendClientMessage(playerid, -1, "UŻYJ: /S [Wiadomość]");
- else
- {
- format(string, sizeof string, "%s[%i] szepcze: %s", PlayerName(playerid), playerid, message);
- SendClientMessageInRange(playerid, COLOR_DARKGRAY, 5.0, string);
- }
- return 1;
- }
- CMD:me(playerid, params[])
- {
- new message[128], string[192];
- if(sscanf(params, "s[128]", message)) SendClientMessage(playerid, -1, "UŻYJ: /ME [Czynność]");
- else
- {
- format(string, sizeof string, "* %s %s", PlayerName(playerid), message);
- SendClientMessageInRange(playerid, COLOR_PINK, 15.0, string);
- }
- return 1;
- }
- CMD:do(playerid, params[])
- {
- new message[128], string[192];
- if(sscanf(params, "s[128]", message)) SendClientMessage(playerid, -1, "UŻYJ: /DO [Opis sytuacji]");
- else
- {
- format(string, sizeof string, "[%i] ( %s )", playerid, message);
- SendClientMessageInRange(playerid, COLOR_DARKCYAN, 15.0, string);
- }
- return 1;
- }
- //STOCKI
- stock SendClientMessageInRange(playerid, color, Float:range, text[])
- {
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x, y, z);
- for(new i, j = GetPlayerPoolSize(); i <= j; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(IsPlayerInRangeOfPoint(i, range, x, y, z))
- {
- SendClientMessage(i, color, text);
- }
- }
- }
- return 1;
- }
- stock FreezePlayer(playerid, interval, text[])
- {
- new string[128];
- format(string, sizeof string, "~y~%s", text);
- TogglePlayerControllable(playerid, false);
- SetTimerEx("UnFreezePlayer", interval, false, "i", playerid);
- GameTextForPlayer(playerid, string, interval, 3);
- Player[playerid][IsFreezed] = true;
- return 1;
- }
- stock ConnectEntrances(id1, id2)
- {
- Entrance[id1][e_conid] = id2;
- Entrance[id2][e_conid] = id1;
- return 1;
- }
- stock CreateEntrance(name[], Float:x, Float:y, Float:z, Float:rot, interior, virtualworld, pickupid = -1, mapiconid = -1, bool:freezeplayer = false)
- {
- new string[128];
- new entid = entranceindex;
- Entrance[entid][e_posx] = x;
- Entrance[entid][e_posy] = y;
- Entrance[entid][e_posz] = z;
- Entrance[entid][e_posrot] = rot;
- Entrance[entid][e_interior] = interior;
- Entrance[entid][e_vw] = virtualworld;
- Entrance[entid][e_freeze] = freezeplayer;
- if(pickupid == -1)
- pickupid = 1318;
- if(mapiconid != -1)
- CreateDynamicMapIcon(x, y, z, mapiconid, 0, virtualworld, interior, -1, MAP_ICON_RANGE, MAPICON_GLOBAL, -1);
- CreateDynamicPickup(pickupid, 1, x, y, z, virtualworld, interior);
- format(string, sizeof string, "{FF8040}%s\n{FFFFFF}Użyj: {FF0000}ENTER", name);
- CreateDynamic3DTextLabel(string, -1, x, y, z, 10, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, virtualworld, interior, -1, 10);
- entranceindex++;
- return entid;
- }
- stock GetRandomSkin()
- {
- new rgender = random(2);
- if(rgender == 1)
- {
- new rand = random(sizeof Skins_Male);
- return Skins_Male[rand][0];
- }
- else if(rgender == 0)
- {
- new rand = random(sizeof Skins_Female);
- return Skins_Female[rand][0];
- }
- return 0;
- }
- stock KickEx(playerid, delay = 1000)
- return SetTimerEx("DelayKick", delay, false, "i", playerid);
- stock ResetPlayerData(playerid)
- {
- if(cache_is_valid(Player[playerid][Cache_ID]))
- {
- cache_delete(Player[playerid][Cache_ID]);
- Player[playerid][Cache_ID] = MYSQL_INVALID_CACHE;
- }
- static const null_players[PlayerData];
- Player[playerid] = null_players;
- return 1;
- }
- stock IsRPName(name[], minname = 3, bool:firstupperthenlower = true) //By Nickk888
- {
- new count, checknumcount, where, tmpname[24], tmpsname[24];
- new len = strlen(name);
- for(new i; i < len; i++) {
- if(name[i] == '_')
- count++,
- where = i;
- switch(name[i]) {
- case 'A'..'Z', 'a'..'z', '_':
- checknumcount++;
- }
- }
- if(count != 1 || (where < minname || len < ((where + 1) + minname)) || checknumcount != len)
- return 0;
- strmid(tmpname, name, 0, where);
- strmid(tmpsname, name, where+1, len);
- checknumcount = 0;
- if(firstupperthenlower) {
- switch(tmpname[0]) {
- case 'A'..'Z':
- checknumcount++;
- }
- for(new i = 1, j = strlen(tmpname); i < j; i++){
- switch(tmpname[i]) {
- case 'a'..'z':
- checknumcount++;
- }
- }
- switch(tmpsname[0]) {
- case 'A'..'Z':
- checknumcount++;
- }
- for(new i = 1, j = strlen(tmpsname); i < j; i++){
- switch(tmpsname[i]) {
- case 'a'..'z':
- checknumcount++;
- }
- }
- if((checknumcount + 1) != len)
- return 0;
- }
- return 1;
- }
- stock IsNumeric(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++)
- {
- if (string[i] > '9' || string[i] < '0') return 0;
- }
- return 1;
- }
- stock bool:IsStrValid(string[])
- {
- new num;
- new len = strlen(string);
- for(new i; i < len; i++)
- switch(string[i])
- {
- case 'A'..'Z':num++;
- case 'a'..'z':num++;
- case '0'..'9':num++;
- }
- if(num == len) return true;
- else return false;
- }
- stock PlayerName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof name);
- return name;
- }
- stock ClearPlayerChat(playerid)
- {
- for(new i; i < 15; i++)
- SendClientMessage(playerid, -1, "");
- return 1;
- }
- stock ShowPlayerMouse(playerid, bool:show)
- {
- if(show)
- {
- SelectTextDraw(playerid, 0xFF0000FF);
- Player[playerid][ShowMouse] = true;
- }
- else
- {
- CancelSelectTextDraw(playerid);
- Player[playerid][ShowMouse] = false;
- }
- return 1;
- }
- stock AssignPlayerData(playerid)
- {
- cache_set_active(Player[playerid][Cache_ID]); //Ponownie aktywujemy Cache gracza.
- //Pobieramy dane z cache
- cache_get_value_int(0, "uid", Player[playerid][UID]);
- cache_get_value_int(0, "skinid", Player[playerid][SkinID]);
- cache_get_value_int(0, "money", Player[playerid][Money]);
- cache_get_value_int(0, "gender", Player[playerid][Gender]);
- cache_get_value_int(0, "age", Player[playerid][Age]);
- cache_get_value_int(0, "level", Player[playerid][Level]);
- cache_get_value_int(0, "adminlvl", Player[playerid][AdminLVL]);
- cache_get_value_float(0, "lastposx", Player[playerid][LastPos][0]);
- cache_get_value_float(0, "lastposy", Player[playerid][LastPos][1]);
- cache_get_value_float(0, "lastposz", Player[playerid][LastPos][2]);
- cache_get_value_float(0, "lastposrot", Player[playerid][LastPos][3]);
- cache_get_value_int(0, "lastposint", Player[playerid][LastPosInt]);
- cache_get_value_int(0, "lastposvw", Player[playerid][LastPosVW]);
- cache_get_value_float(0, "lasthealth", Player[playerid][LastHealth]);
- cache_get_value_float(0, "lastarmour", Player[playerid][LastArmour]);
- cache_delete(Player[playerid][Cache_ID]); //Usuwa caly Cache
- Player[playerid][Cache_ID] = MYSQL_INVALID_CACHE; //Resetujemy Cache ID
- return 1;
- }
- stock SaveAccount(playerid)
- {
- new query[258];
- new Float:tempPos[4], Float:health, Float:armour;
- GetPlayerHealth(playerid, health);
- GetPlayerArmour(playerid, armour);
- GetPlayerPos(playerid, tempPos[0], tempPos[1], tempPos[2]);
- GetPlayerFacingAngle(playerid, tempPos[3]);
- if(health > 100) health = 100;
- if(armour > 100) armour = 100;
- mysql_format(SQL_ID, query, sizeof query, "UPDATE accounts SET money = %i, skinid = %i, level = %i, lastposx = %f, lastposy = %f, \
- lastposz = %f, lastposrot = %f, lastposint = %i, lastposvw = %i, lasthealth = %f, lastarmour = %f WHERE uid = %i",
- GetPlayerMoney(playerid),
- GetPlayerSkin(playerid),
- GetPlayerScore(playerid),
- tempPos[0], tempPos[1], tempPos[2], tempPos[3],
- GetPlayerInterior(playerid),
- GetPlayerVirtualWorld(playerid),
- health, armour,
- Player[playerid][UID]);
- mysql_tquery(SQL_ID, query);
- return 1;
- }
- stock CreateAccount(playerid)
- {
- new query[258], string[258];
- strcat(query, "INSERT INTO accounts(");
- //
- strcat(query, "name,");
- strcat(query, "password,");
- strcat(query, "skinid,");
- strcat(query, "age,");
- strcat(query, "gender,");
- strcat(query, "money");
- //
- strcat(query, ") VALUES (");
- //
- format(string, 258, "'%s',", PlayerName(playerid));
- strcat(query, string);
- format(string, 258, "'%s',", Player[playerid][Password]);
- strcat(query, string);
- format(string, 258, "'%i',", Player[playerid][SkinID]);
- strcat(query, string);
- format(string, 258, "'%i',", Player[playerid][Age]);
- strcat(query, string);
- format(string, 258, "'%i',", Player[playerid][Gender]);
- strcat(query, string);
- format(string, 258, "'%i'", START_MONEY);
- strcat(query, string);
- //
- strcat(query, ")");
- mysql_tquery(SQL_ID, query, "OnAccountCreate", "i", playerid);
- return 1;
- }
- stock MySQL_SetUpTables()
- {
- mysql_tquery(SQL_ID, "CREATE TABLE IF NOT EXISTS `accounts` ( \
- `uid` INT(11) NOT NULL AUTO_INCREMENT, \
- `name` TEXT NOT NULL COLLATE 'utf8_polish_ci', \
- `password` TEXT NOT NULL COLLATE 'utf8_polish_ci', \
- `skinid` INT(11) NOT NULL, \
- `money` INT(11) NOT NULL DEFAULT '0', \
- `gender` INT(11) NOT NULL, \
- `age` INT(11) NOT NULL, \
- `level` INT(11) NOT NULL DEFAULT '1', \
- `adminlvl` INT(11) NOT NULL DEFAULT '0', \
- `lastip` TEXT NOT NULL COLLATE 'utf8_polish_ci', \
- `lastonline` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, \
- `createdate` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, \
- PRIMARY KEY (`uid`))");
- return 1;
- }
- stock MySQL_Init()
- {
- mysql_log();
- SQL_ID = mysql_connect_file("mysql.ini"); //Probujemy sie polaczyc z baza MySQL
- if(SQL_ID == MYSQL_INVALID_HANDLE || mysql_errno(SQL_ID) != 0)
- {
- //Jesli polaczenie sie nie powiodlo
- print("[MYSQL - BŁĄD] Nie można było połączyć się z baza danych! Wyłączam serwer...");
- SendRconCommand("exit");
- return 0;
- }
- //Jesli sie powiodlo
- print("[MYSQL] Połączenie z bazą danych została nawiązana!");
- return 1;
- }
- stock CreateGlobalTD()
- {
- SkinSelector_Title = TextDrawCreate(316.000000, 370.000000, "WYBIERZ POSTAC");
- TextDrawFont(SkinSelector_Title, 2);
- TextDrawLetterSize(SkinSelector_Title, 0.291666, 2.049999);
- TextDrawTextSize(SkinSelector_Title, 400.000000, 405.000000);
- TextDrawSetOutline(SkinSelector_Title, 1);
- TextDrawSetShadow(SkinSelector_Title, 0);
- TextDrawAlignment(SkinSelector_Title, 2);
- TextDrawColor(SkinSelector_Title, -1378294017);
- TextDrawBackgroundColor(SkinSelector_Title, 255);
- TextDrawBoxColor(SkinSelector_Title, 50);
- TextDrawUseBox(SkinSelector_Title, 0);
- TextDrawSetProportional(SkinSelector_Title, 1);
- TextDrawSetSelectable(SkinSelector_Title, 0);
- SkinSelector_Right = TextDrawCreate(351.000000, 392.000000, ">>>");
- TextDrawFont(SkinSelector_Right, 2);
- TextDrawLetterSize(SkinSelector_Right, 0.258332, 1.750000);
- TextDrawTextSize(SkinSelector_Right, 16.500000, 33.500000);
- TextDrawSetOutline(SkinSelector_Right, 1);
- TextDrawSetShadow(SkinSelector_Right, 0);
- TextDrawAlignment(SkinSelector_Right, 2);
- TextDrawColor(SkinSelector_Right, -1);
- TextDrawBackgroundColor(SkinSelector_Right, 255);
- TextDrawBoxColor(SkinSelector_Right, 76);
- TextDrawUseBox(SkinSelector_Right, 1);
- TextDrawSetProportional(SkinSelector_Right, 1);
- TextDrawSetSelectable(SkinSelector_Right, 1);
- SkinSelector_Left = TextDrawCreate(281.000000, 392.000000, "<<<");
- TextDrawFont(SkinSelector_Left, 2);
- TextDrawLetterSize(SkinSelector_Left, 0.258332, 1.750000);
- TextDrawTextSize(SkinSelector_Left, 16.500000, 33.500000);
- TextDrawSetOutline(SkinSelector_Left, 1);
- TextDrawSetShadow(SkinSelector_Left, 0);
- TextDrawAlignment(SkinSelector_Left, 2);
- TextDrawColor(SkinSelector_Left, -1);
- TextDrawBackgroundColor(SkinSelector_Left, 255);
- TextDrawBoxColor(SkinSelector_Left, 76);
- TextDrawUseBox(SkinSelector_Left, 1);
- TextDrawSetProportional(SkinSelector_Left, 1);
- TextDrawSetSelectable(SkinSelector_Left, 1);
- SkinSelector_Accept = TextDrawCreate(316.000000, 392.000000, "OK");
- TextDrawFont(SkinSelector_Accept, 2);
- TextDrawLetterSize(SkinSelector_Accept, 0.258332, 1.750000);
- TextDrawTextSize(SkinSelector_Accept, 16.500000, 23.500000);
- TextDrawSetOutline(SkinSelector_Accept, 1);
- TextDrawSetShadow(SkinSelector_Accept, 0);
- TextDrawAlignment(SkinSelector_Accept, 2);
- TextDrawColor(SkinSelector_Accept, -1);
- TextDrawBackgroundColor(SkinSelector_Accept, 255);
- TextDrawBoxColor(SkinSelector_Accept, 76);
- TextDrawUseBox(SkinSelector_Accept, 1);
- TextDrawSetProportional(SkinSelector_Accept, 1);
- TextDrawSetSelectable(SkinSelector_Accept, 1);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement