Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- main() { }
- // ======================== [ Инклуды ] ========================
- #include <a_samp>
- #include <streamer>
- #include <a_mysql>
- #include <sscanf2>
- #include <dc_cmd>
- #include <foreach>
- // ====================== [ Дефайны БД ] =======================
- #define mysql_host "localhost"
- #define mysql_user "root"
- #define mysql_base "starlight-test"
- #define mysql_pass ""
- // ======================== [ Дефайны ] ========================
- #define publics%0(%1) forward%0(%1); public%0(%1)
- #define KickRak(%1) SetTimerEx("kick", 20, false, "i", %1)
- #define ShowGeoIpForPlayer(%1) SetTimerEx("ShowGeoIp", 5000, false, "i", %1)
- #define SCM SendClientMessage
- #define SPD ShowPlayerDialog
- #define DSI DIALOG_STYLE_INPUT
- #define DSM DIALOG_STYLE_MSGBOX
- #define DSP DIALOG_STYLE_PASSWORD
- #define DSL DIALOG_STYLE_LIST
- #define DSTH DIALOG_STYLE_TABLIST_HEADERS
- #define FloodChat if(flood_chat[playerid] > gettime()){SCM(playerid, COLOR_WHITE, "Не флуди!"); return 0;}
- #define FloodCMD if(flood_cmd[playerid] > gettime()){SCM(playerid, COLOR_WHITE, "Не флуди!"); return 0;}
- #define FloodRPChat if(flood_rpchat[playerid] > gettime()){SCM(playerid, COLOR_WHITE, "Не флуди!"); return 0;}
- #define FloodPickup if(flood_pickup[playerid] > gettime()) return 0;
- // ========================= [ Цвета ] =========================
- #define COLOR_BRANDBLUE1 0x0D286EAA
- #define COLOR_BRANDBLUE2 0x113691AA
- #define COLOR_BRANDBLUE3 0x617ABAAA
- #define COLOR_BRANDGREY1 0x919191AA
- #define COLOR_BRANDGREY2 0x6E6E6EAA
- #define COLOR_BRANDGREY3 0x9E9E9EAA
- #define COLOR_BRANDRED1 0x6E1F0DAA
- #define COLOR_BRANDRED2 0x912911AA
- #define COLOR_RED 0xAA3333AA
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_GREY 0xF696969A
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_GREEN 0x9EC73DAA
- #define COLOR_PINK 0xFFC0CBAA
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_BLUE 0x0000BBAA
- #define COLOR_LIGHTBLUE 0x33CCFFAA
- #define COLOR_ORANGE 0xFF9900AA
- #define COLOR_BLACK 0x000000AA
- #define TEAM_GROVE_COLOR 0x00D900C8
- #define COLOR_GOLD 0xB8860BAA
- #define COLOR_RPCHAT 0xDD90FFFF
- #define COLOR_LIGHTRED 0xFF6347AA
- // ================= [ Глобальные переменные ] =================
- new MySQL: db_connect;
- enum pInfo
- {
- pID,
- pName,
- pPass,
- pLogin,
- pReg,
- pMail[40],
- pRefer[32],
- pSex,
- pSpawn,
- pSkin,
- pRegDate,
- pRegIp,
- pLastIp,
- pLastDate,
- pLevel,
- pExp,
- pExpUp,
- pMoney,
- pIp,
- pLastEnter,
- pJob
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- new RegFemaleSkins[] = {
- 9,
- 12,
- 31,
- 39,
- 40,
- 41,
- 55,
- 56,
- 69,
- 88,
- 148,
- 226,
- };
- new RegMaleSkins[] = {
- 7,
- 20,
- 29,
- 30,
- 32,
- 43,
- 60,
- 66,
- 95,
- 98,
- 119,
- 136,
- };
- new RegMaleBomjSkins[] = {
- 134,
- 135,
- 137,
- 78,
- 79,
- 230,
- 239,
- };
- new RegFemaleBomjSkins[] = {
- 77,
- 53,
- 154,
- 10,
- };
- new bool: Login[MAX_PLAYERS];
- new flood_cmd[MAX_PLAYERS];
- new flood_rpchat[MAX_PLAYERS];
- new flood_chat[MAX_PLAYERS];
- new flood_pickup[MAX_PLAYERS];
- new Rules1[11][] = {
- {"{AA3333}I. Игровой процесс.\n"},
- {" {617ABA}1. Сервер Starlight RP позиционирует себя как Role Play сервер, поэтому соблюдение RP обязательно.\n"},
- {" {617ABA}2. Запрещено:\n"},
- {" {919191}-Использование модов/программ/скриптов/читов, которые дают преимущества одним игрокам над другими.\n"},
- {" {919191}-Использование недоработок сервера/самой игры для получения преимущества над другими игроками.\n"},
- {" {919191}-Совершать Non-RP действия (Более подробно описаны ниже).\n"},
- {" {919191}-Вымогательство персональных данных других игроков.\n"},
- {" {919191}-Создавать финансовые пирамиды.\n"},
- {" {919191}-Выдавать себя за администратора проекта.\n"},
- {" {919191}-Мешать администраторам выполнять свою работу.\n"},
- {" {919191}-Злоупотребление собственными возможностями.\n\n"}
- };
- new Rules3[5][] = {
- {"{AA3333}III. Аккаунт\n"},
- {" {617ABA}1. Аккаунт - ваша собственность.\n"},
- {" {617ABA}2. За взлом аккаунтов администрация ответственности не несет.\n"},
- {" {617ABA}3. Восстановление аккантов возможно с помощью e-mail-а.\n"},
- {" {617ABA}4. Запрещено передавать/продавать аккаунты.\n\n"}
- };
- new Rules2[9][] = {
- {"{AA3333}II. Ник в игре.\n"},
- {" {617ABA}1. Ник должен быть создан по шаблону: Имя_Фамилия на латинице.\n"},
- {" {617ABA}2. Если у вас по каким-то причинам Non-RP ник, вы можете его поменять (/mm > Сменить ник).\n"},
- {" {617ABA}3. RP ники не меняются, за исключением некоторых случаев.\n"},
- {" {617ABA}4. Запрещено:\n"},
- {" {919191}-Использовать чужие ники.\n"},
- {" {919191}-Подделывать ники.\n"},
- {" {919191}-Использовать укороченные имена, например Deniska_Korablev.\n"},
- {" {919191}-Использовать в своем нике такие части, как Tawer, Maloy, Ebosher и так далее.\n\n"}
- };
- new Rules4[24][] = {
- {"{AA3333}IV. Основы Role Play\n"},
- {" {617ABA}1. В игре 2 типа чата:\n"},
- {" {919191}-OOC ( Out Of Character ) - информация, не относящаяся к игровому процессу.\n"},
- {" {919191}-IC ( In Character ) - информация, относящаяся к игровому процессу.\n"},
- {" {617ABA}Смешивание двух чатов недопустимо. Для OOC чата предусмотрена команда (/b).\n"},
- {" {617ABA}2. Игроки обязаны отыгрывать свою роль. Для этого предусмотрены команды действия (/me),\nкоманды действия от 3-го лица (/do) и команда попытки совершения какого-либо действия (/try).\n"},
- {" {617ABA}3. Обязательные для выучивания Role Play термины:\n"},
- {" {919191}-MetaGaming (MG) - использование OOC информации в IC чат и наоборот ( смешивание чатов ).\n"},
- {" {919191}-OOC и IC (см. п. 1 ).\n"},
- {" {919191}-Role Play (RP) - Ролевая игра.\n"},
- {" {919191}-Respawn - Место появления игрока.\n"},
- {" {919191}-Away From Keyboard (AFK) - Отошел от клавиатуры.\n"},
- {" {919191}-Revenge Kill (RK) - убить игрока, за то что он убил тебя.\n"},
- {" {919191}-PowerGaming (PG) - Воображение из себя супер-героя. Пример: драка 1 на 5.\n"},
- {" {919191}-Bunny Hopping (BH) - прыгать, словно кузнечик (Shift+ Пробел).\n"},
- {" {919191}-Death Match (DM) - Убийство людей без IC причины.\n"},
- {" {919191}-Drive By (DB) - Убийство человека из машины.\n"},
- {" {919191}-Spawn Kill (SK) - Убийство на месте появления.\n"},
- {" {919191}-Team Kill (TK) - Убийство члена своей команды, фракции.\n"},
- {" {919191}-Сharacter kill (CK) - Убийство игрока по IC причинам ( Заказное убийство, увольнение из мафий/банд ).\n"},
- {" {919191}-Fast Reload (FR) - Баг с быстрой перезарядкой.\n"},
- {" {919191}-Repeat Kill (RK) - Намеренное повторное убийство одного и того же игрока.\n"},
- {" {919191}-Willy Hopping (WH) - Это прыжок с 'велоподобных' транспортных средств\n"},
- {" {919191}-Fast Moving (FM) - Баг с быстрым перемещением."}
- };
- new Rules5[4][] = {
- {"{AA3333}IV. Администрация.\n"},
- {" {617ABA}1. Администрация сервера - опытные игроки, осуществляющие мониторинг сервера в любое время суток.\n"},
- {" {617ABA}2. В случае обнаружения 'подозрительных личностей', использующих баги/читы, вы \nимеете право сообщить об этом администрации. ( /mm > Связь с администрацией > Жалоба (Репорт) ).\n"},
- {" {617ABA}3. Администрация имеет право выдавать наказания нарушителям правил сервера на свое\n усмотрение, но придерживаясь таблице наказаний.\n\n"}
- };
- new Rules6[4][] = {
- {"{AA3333}V. Саппорты.\n"},
- {" {617ABA}1. Support ( Саппорт ) - опытный игрок, знающий ответы на все вопросы, которые могут возникнуть у игроков.\n"},
- {" {617ABA}2. Если вам что-либо не понятно, вы имеете право задать вопрос support-ам ( /mm > Связь с администрацией > Вопрос ).\n"},
- {" {617ABA}3. Вы всегда можете проверить список саппортов на сервере ( /supports ).\n\n"}
- };
- new Rules7[4][] = {
- {"{AA3333}VI. Торговля.\n"},
- {" {617ABA}1. Запрещены любые денежные махинации.\n"},
- {" {617ABA}2. Запрещена купля/продажа виртуальных ценностей за реальные деньги.\n"},
- {" {617ABA}3. Запрещена передача/продажа аккаунтов.\n\n"}
- };
- new Rules8[27][] = {
- {"{AA3333}VIII. Наказания\n"},
- {" {617ABA}1. На сервере существует несколько типов наказания:\n"},
- {" {919191}-Mute - приглушение чата на какое-то время.\n"},
- {" {919191}-Jail - Тюремный срок.\n"},
- {" {919191}-Freeze - Заморозка игрока на какое-то время.\n"},
- {" {919191}-DeMorgan - Тюремный срок в специальной тюрьме.\n"},
- {" {919191}-Kick - Прекращение игрового процесса.\n"},
- {" {919191}-Warn - Предупреждение за нарушение правил сервера\n"},
- {" {919191}-Ban - Отстранение от игры на сервере на какой-то срок.\n"},
- {" {617ABA}2. Наказания 'Легкой тяжести'\n"},
- {" {919191}-Сообщения в верхнем регистре (CAPS LOCK) | MG - Mute на 5-30 минут.\n"},
- {" {919191}-Нецензурная лексика в чат - Mute на 30-60 минут\n"},
- {" {617ABA}3. Наказания 'Средней тяжести'\n"},
- {" {919191}-BH | WH | Лаггер ( Ping > 160 ) - Kick\n"},
- {" {919191}-Помеха игрокам | AFK более 10 минут - Kick\n"},
- {" {617ABA}4. Наказания 'Тяжелой тяжести'\n"},
- {" {919191}-DB | SK | TK | FR - Warn | Ban 7+ дней\n"},
- {" {919191}-RK | PG | DM - Kick | DeMorgan 60 - 360 Минут | Warn\n"},
- {" {919191}-FM - DeMorgan 60 - 360 Минут | Warn | Ban 7+ дней\n"},
- {" {919191}-Помеха администраторам выполнять свою работу - Kick | Warn\n"},
- {" {919191}-Злоупотребление собственными возможностями - Kick | Warn\n"},
- {" {919191}-Использование скриптов/читов - DeMorgan 60-360 Минут | Warn | Ban на 7+ дней\n"},
- {" {919191}-Использование недоработок сервера - DeMorgan 60-360 Минут | Warn | Ban на 7+ дней\n"},
- {" {919191}-Вымогательство персональных данных других игроков - Вечный бан + Удаление аккаунта\n"},
- {" {919191}-Создание финансовых пирамид - Вечный бан + Удаление аккаунта\n"},
- {" {919191}-Выдача себя за администратора проекта | Создание 'Фейков' - Вечный бан + Удаление аккаунта\n"},
- {" {919191}И так далее."}
- };
- new loaderspick;
- new loaderworkers[MAX_PLAYERS];
- new Text:Logotype[6];
- // ======================== [ Паблики ] ========================
- public OnGameModeInit()
- {
- PickUps();
- ThreeDTexts();
- LogoTextdraws();
- Timers();
- DisableInteriorEnterExits();
- EnableStuntBonusForAll(0);
- SetGameModeText("StarLight RP");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- LimitPlayerMarkerRadius(50);
- new MySQLOpt: option_id = mysql_init_options();
- mysql_set_option(option_id, AUTO_RECONNECT, true);
- db_connect = mysql_connect(mysql_host, mysql_user, mysql_pass, mysql_base, option_id);
- if(db_connect == MYSQL_INVALID_HANDLE || mysql_errno(db_connect) != 0) printf("Подключение к базе сервера неуспешно");
- else printf("Подключение к базе сервера успешно");
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SetTimerEx("connect_player", 250, false, "i", playerid);
- for(new i; i != 7; i++) TextDrawShowForPlayer(playerid, Logotype[i]);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- player_save(playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- player_spawn(playerid);
- return true;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- FloodChat
- flood_chat[playerid] = gettime() + 1;
- {
- if(Login[playerid] == false)
- {
- SCM(playerid, COLOR_LIGHTRED, "Вы не авторизованы");
- return 0;
- }
- new string[128];
- if(!strcmp(text, ")", true))
- {
- format(string, sizeof(string), "%s улыбается", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "улыбается", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(!strcmp(text, "))", true))
- {
- format(string, sizeof(string), "%s посмеивается", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "посмеивается", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(!strcmp(text, "(", true))
- {
- format(string, sizeof(string), "%s грустит", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "грустит", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(!strcmp(text, "((", true))
- {
- format(string, sizeof(string), "%s расстроился", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "расстроился", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(!strcmp(text, "=0", true))
- {
- format(string, sizeof(string), "%s удивился", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "удивился", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(!strcmp(text, "xD", true))
- {
- format(string, sizeof(string), "%s смеется", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "смеется", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(!strcmp(text, "xDD", true))
- {
- format(string, sizeof(string), "%s валяется от смеха", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "валяется от смеха", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(!strcmp(text, ":D", true))
- {
- format(string, sizeof(string), "%s хохочет во весь голос", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "хохочет во весь голос", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(!strcmp(text, ";)", true))
- {
- format(string, sizeof(string), "%s подмигнул", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "подмигнул", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(!strcmp(text, ":(", true))
- {
- format(string, sizeof(string), "%s нахмурился", PlayerName(playerid));
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, "нахмурился", COLOR_YELLOW, 30.0, 10000);
- return 0;
- }
- if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
- {
- if(GetPVarInt(playerid, "mineanim") == 1) return 1;
- ApplyAnimation(playerid, "PED", "IDLE_chat", 4.1, 0, 1, 1, 1, 1);
- SetTimerEx("animchat", 3200, 0, "i", playerid);
- }
- format(string, sizeof(string), "- %s[%d] говорит: %s", PlayerName(playerid), playerid, text);
- ProxDetector(30.0, playerid, string, 0xFFFFFFFF, 0xFFFFFFFF, 0xF5F5F5FF, 0xE6E6E6FF,0xB8B8B8FF);
- SetPlayerChatBubble(playerid, text, 0x6495EDFF, 30.0, 10000);
- }
- return 0;
- }
- public OnPlayerCommandReceived(playerid, cmdtext[])
- {
- if(Login[playerid] == false)
- {
- SCM(playerid, COLOR_LIGHTRED, "Вы не авторизированы!");
- return 0;
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 0;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- FloodPickup
- flood_pickup[playerid] = gettime() + 2;
- if(pickupid == loaderspick)
- {
- if(loaderworkers[playerid] == 0)
- {
- SPD(playerid, 30, DSM, "Устройство на работу грузчика", "Вы точно хотите устроиться на работу грузчика?", "Да", "Нет");
- }
- else
- {
- SPD(playerid, 31, DSM, "Устройство на работу грузчика", "Вы точно хотите уволиться с работы грузчика?", "Да", "Нет");
- }
- }
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- /*
- {617ABA} синий
- {919191} серый
- {AA3333} красный
- {9E9E9E} заголовок
- */
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case 1:
- {
- if(response)
- {
- if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 15 )
- {
- static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Аккаунт {617ABA}%s{919191} не зарегистрирован\n\nДля начала игры пройдите регистрацию\nПридумайте пароль для аккаунта\n\n\t{617ABA}Подсказка:\n\t{AA3333}-Длина пароля - от 6 до 15 символов\n\t{919191}-Используйте латиницу и цифры\n\t-Регистр букв учитывается";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- return SPD(playerid, 1, DSI, "Регистрация нового персонажа", string, "Далее", "Выход");
- }
- for(new i = strlen(inputtext); i != -1; --i)
- switch(inputtext[i])
- {
- case 'А'..'Я', 'а'..'я', ' ':
- {
- static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Аккаунт {617ABA}%s{919191} не зарегистрирован\n\nДля начала игры пройдите регистрацию\nПридумайте пароль для аккаунта\n\n\t{617ABA}Подсказка:\n\t{919191}-Длина пароля - от 6 до 15 символов\n\t{AA3333}-Используйте латиницу и цифры\n\t{919191}-Регистр букв учитывается";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- return SPD(playerid, 1, DSI, "Регистрация нового персонажа", string, "Далее", "Выход");
- }
- }
- new query[128];
- mysql_format(db_connect, query, sizeof(query), "INSERT INTO `accounts` (`pName`, `pPass`) VALUES ('%s', '%s')", PlayerName(playerid), inputtext);
- mysql_tquery(db_connect, query, "", "", playerid, 0);
- static const fmt_rls[] = "{919191}Не желаете ли ознакомиться с правилами сервера?";
- new rules[sizeof(fmt_rls)];
- format(rules, sizeof(rules), fmt_rls);
- SPD(playerid, 11, DSM, "Правила сервера", rules, "Да", "Нет");
- }
- else kick_dialog(playerid);
- }
- case 2:
- {
- if(response)
- {
- if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 15 )
- {
- static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Аккаунт {617ABA}%s{919191} зарегистрирован в базе данных\n\nДля входа в игру введите пароль\nТот самый, который вы вводили при регистрации\n\n\t{617ABA}Подсказка:\n\t{AA3333}-Длина пароля - от 6 до 15 символов\n\t{919191}-Используйте латиницу и цифры\n\t-Регистр букв учитывается";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- return SPD(playerid, 2, DSP, "Авторизация", string, "Далее", "Выход");
- }
- for(new i = strlen(inputtext); i != -1; --i)
- switch(inputtext[i])
- {
- case 'А'..'Я', 'а'..'я', ' ':
- {
- static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Аккаунт {617ABA}%s{919191} зарегистрирован в базе данных\n\nДля входа в игру введите пароль\nТот самый, который вы вводили при регистрации\n\n\t{617ABA}Подсказка:\n\t{919191}-Длина пароля - от 6 до 15 символов\n\t{AA3333}-Используйте латиницу и цифры\n\t{919191}-Регистр букв учитывается";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- return SPD(playerid, 2, DSP, "Авторизация", string, "Далее", "Выход");
- }
- }
- new query[128];
- mysql_format(db_connect, query, sizeof(query), "SELECT * FROM `accounts` WHERE `pName` = '%s' AND `pPass` = '%s' LIMIT 1", PlayerName(playerid), inputtext);
- mysql_tquery(db_connect, query, "check_login", "ii", playerid, 0);
- }
- else KickRak(playerid);
- }
- case 3:
- {
- if(response)
- {
- for(new i = strlen(inputtext); i != 0; --i)
- switch(inputtext[i])
- {
- case 'А'..'Я', 'а'..'я', '=', ' ':
- {
- static const fmt_str[] = "{919191}Чтобы перейти к следующему шагу регистрации, Вам нужно ввести свой E-mail\nПри подтвержденном E-mail Вы сможете восстановить свой аккаунт в случае взлома\n\n\t{33CCFF}Подсказка:\n\t{919191}-Используйте сервисы @gmail.ru, @yandex.ru или @mail.ru\n\t{AA3333}-Используйте латиницу, цифры и 'собаку'\n\t{919191}-Оптимальная длина - до 40 символов";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- return SPD(playerid, 3, DSI, "Подтверждение E-mail", string, "Далее", "Выход");
- }
- }
- new sabaka;
- for(new i = strlen(inputtext); i != 0; --i)
- {
- switch(inputtext[i])
- {
- case '@': sabaka++;
- }
- }
- if(strlen(inputtext) < 5 || strlen(inputtext) > 40)
- {
- static const fmt_str[] = "{919191}Чтобы перейти к следующему шагу регистрации, Вам нужно ввести свой E-mail\nПри подтвержденном E-mail Вы сможете восстановить свой аккаунт в случае взлома\n\n\t{617ABA}Подсказка:\n\t{919191}-Используйте сервисы @gmail.ru, @yandex.ru или @mail.ru\n\t-Используйте латиницу, цифры и 'собаку'\n\t{AA3333}-Оптимальная длина - до 40 символов";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- return SPD(playerid, 3, DSI, "Подтверждение E-mail", string, "Далее", "Выход");
- }
- if(sabaka == 0)
- {
- static const fmt_str[] = "{919191}Чтобы перейти к следующему шагу регистрации, Вам нужно ввести свой E-mail\nПри подтвержденном E-mail Вы сможете восстановить свой аккаунт в случае взлома\n\n\t{617ABA}Подсказка:\n\t{919191}-Используйте сервисы @gmail.ru, @yandex.ru или @mail.ru\n\t{AA3333}-Используйте латиницу, цифры и 'собаку'\n\t{919191}-Оптимальная длина - до 40 символов";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- return SPD(playerid, 3, DSI, "Подтверждение E-mail", string, "Далее", "Выход");
- }
- strmid(PlayerInfo[playerid][pMail], inputtext, 0, strlen(inputtext), 40);
- enter_refer(playerid);
- }
- else kick_dialog(playerid);
- }
- case 4:
- {
- if(response)
- {
- strmid(PlayerInfo[playerid][pRefer], inputtext, 0, strlen(inputtext), 32);
- enter_sex(playerid);
- }
- else enter_email(playerid);
- }
- case 5:
- {
- if(response)
- {
- PlayerInfo[playerid][pSex] = 1;
- }
- else
- {
- PlayerInfo[playerid][pSex] = 2;
- }
- enter_spawn(playerid);
- }
- case 6:
- {
- if(response)
- {
- switch(listitem)
- {
- case 0: set_spawn_lv(playerid);
- case 1: set_spawn_sf(playerid);
- case 2: set_spawn_ls(playerid);
- case 3: set_spawn_bg(playerid);
- }
- enter_skin(playerid);
- }
- else enter_sex(playerid);
- }
- case 7:
- {
- new string[1330];
- format(string, sizeof(string),"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
- Rules3[0], Rules3[1], Rules3[2], Rules3[3], Rules3[4],
- Rules5[0], Rules5[1], Rules5[2], Rules5[3],
- Rules6[0], Rules6[1], Rules6[2], Rules6[3],
- Rules7[0], Rules7[1], Rules7[2], Rules7[3]);
- return SPD(playerid, 8, DSM, "Правила Сервера", string, "Далее", "");
- }
- case 8:
- {
- new string[1600];
- format(string, sizeof(string), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
- Rules4[0], Rules4[1], Rules4[2], Rules4[3], Rules4[4], Rules4[5], Rules4[6], Rules4[7], Rules4[8], Rules4[9], Rules4[10],
- Rules4[11], Rules4[12], Rules4[13], Rules4[14], Rules4[15], Rules4[16], Rules4[17], Rules4[18], Rules4[19], Rules4[20],
- Rules4[21], Rules4[22], Rules4[23]);
- return SPD(playerid, 9, DSM, "Правила Сервера", string, "Далее", "");
- }
- case 9:
- {
- new string[1600];
- format(string, sizeof(string), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
- Rules8[0], Rules8[1], Rules8[2], Rules8[3], Rules8[4], Rules8[5], Rules8[6], Rules8[7], Rules8[8], Rules8[9], Rules8[10],
- Rules8[11], Rules8[12], Rules8[13], Rules8[14], Rules8[15], Rules8[16], Rules8[17], Rules8[18], Rules8[19], Rules8[20],
- Rules8[21], Rules8[22], Rules8[23], Rules8[24], Rules8[25], Rules8[26]);
- SPD(playerid, 10, DSM, "Правила сервера", string, "Принять","");
- }
- case 10:
- {
- show_login(playerid);
- }
- case 11:
- {
- if(response) show_rules(playerid);
- else show_login(playerid);
- }
- case 20:
- {
- if(response)
- {
- switch(listitem)
- {
- case 0: show_statistics(playerid);
- }
- }
- }
- case 30:
- {
- if(response)
- {
- loaderworkers[playerid] = 1;
- SCM(playerid, COLOR_WHITE, "Вы успешно устроились на работу грузчика\nОтправляйтесь за мешками, место обозначено на карте!");
- SetPlayerSkin(playerid, 260);
- }
- else return true;
- }
- case 31:
- {
- if(response)
- {
- loaderworkers[playerid] = 0;
- SCM(playerid, COLOR_WHITE, "Вы успешно уволились с работы грузчика!");
- SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
- }
- else return true;
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- // ========================= [ Cтоки ] =========================
- stock PlayerName(playerid)
- {
- new PlName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, PlName, sizeof(PlName));
- return PlName;
- }
- stock show_login(playerid)
- {
- static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Аккаунт {617ABA}%s{919191} зарегистрирован в базе данных\n\nДля входа в игру введите пароль\nТот самый, который вы вводили при регистрации\n\n\t{617ABA}Подсказка:\n\t{919191}-Длина пароля - от 6 до 15 символов\n\t-Используйте латиницу и цифры\n\t-Регистр букв учитывается";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- SPD(playerid, 2, DSP, "Авторизация", string, "Далее", "Выход");
- return true;
- }
- stock show_registration(playerid)
- {
- static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Аккаунт {617ABA}%s{919191} не зарегистрирован\n\nДля начала игры пройдите регистрацию\nПридумайте пароль для аккаунта\n\n\t{617ABA}Подсказка:\n\t{919191}-Длина пароля - от 6 до 15 символов\n\t-Используйте латиницу и цифры\n\t-Регистр букв учитывается";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- SPD(playerid, 1, DSI, "Регистрация нового персонажа", string, "Далее", "Выход");
- return true;
- }
- stock kick_dialog(playerid)
- {
- SCM(playerid, COLOR_RED, "Для выхода введите /q(uit)");
- KickRak(playerid);
- }
- stock player_load(playerid)
- {
- Login[playerid] = true;
- cache_get_value_name_int(0, "pID", PlayerInfo[playerid][pID]);
- cache_get_value_name(0, "pName", PlayerInfo[playerid][pName], 64);
- cache_get_value_name(0, "pPass", PlayerInfo[playerid][pPass], 64);
- cache_get_value_name(0, "pMail", PlayerInfo[playerid][pMail], 64);
- cache_get_value_name_int(0, "pReg", PlayerInfo[playerid][pReg]);
- cache_get_value_name(0, "pRegDate", PlayerInfo[playerid][pRegDate], 64);
- cache_get_value_name(0, "pRegIp", PlayerInfo[playerid][pRegIp], 64);
- cache_get_value_name_int(0, "pSex", PlayerInfo[playerid][pSex]);
- cache_get_value_name_int(0, "pSkin", PlayerInfo[playerid][pSkin]);
- cache_get_value_name_int(0, "pSpawn", PlayerInfo[playerid][pSpawn]);
- cache_get_value_name(0, "pRefer", PlayerInfo[playerid][pRefer], 64);
- cache_get_value_name_int(0, "pLevel", PlayerInfo[playerid][pLevel]);
- cache_get_value_name_int(0, "pExp", PlayerInfo[playerid][pExp]);
- cache_get_value_name(0, "pLastIp", PlayerInfo[playerid][pLastIp], 64);
- cache_get_value_name(0, "pLastDate", PlayerInfo[playerid][pLastDate], 64);
- cache_get_value_name_int(0, "pMoney", PlayerInfo[playerid][pMoney]);
- cache_get_value_name_int(0, "pJob", PlayerInfo[playerid][pJob]);
- SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
- GetPlayerIp(playerid, PlayerInfo[playerid][pIp], 16);
- GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
- PlayerInfo[playerid][pExpUp] = PlayerInfo[playerid][pLevel]*4;
- SpawnPlayer(playerid);
- return true;
- }
- stock enter_refer(playerid)
- {
- SPD(playerid, 4, DSI, "Реферальная система", "{919191}В окошко ниже вы сможете ввести ник игрока, пригласившего Вас на сервер\nПри получении Вами 5 уровня, данный игрок получит бонус\nВы можете пропустить данный пункт, если такого игрока нет", "Далее", "Назад");
- return true;
- }
- stock enter_email(playerid)
- {
- static const fmt_str[] = "{919191}Чтобы перейти к следующему шагу регистрации, Вам нужно ввести свой E-mail\nПри подтвержденном E-mail Вы сможете восстановить свой аккаунт в случае взлома\n\n\t{617ABA}Подсказка:\n\t{919191}-Используйте сервисы @gmail.ru, @yandex.ru или @mail.ru\n\t-Используйте латиницу, цифры и 'собаку'\n\t-Оптимальная длина - до 40 символов";
- new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
- format(string, sizeof(string), fmt_str, PlayerName(playerid));
- SPD(playerid, 3, DSI, "Подтверждение E-mail", string, "{9E9E9E}Далее", "{9E9E9E}Выход");
- }
- stock enter_sex(playerid)
- {
- SPD(playerid, 5, DSM, "Выбор пола", "{919191}Выберете пол Вашего персонажа", "{9E9E9E}Мужской", "{9E9E9E}Женский");
- }
- stock enter_spawn(playerid)
- {
- SPD(playerid, 6, DSL, "Выбор места появления", "{919191}Вы прилетели в Лас-Вентурас\n{919191}Вы приплыли в Сан-Фиерро\n{919191}Вы приехали в Лос-Сантос\n{919191}Вы где-то проснулись бомжом", "Далее", "Назад");
- }
- stock set_spawn_lv(playerid)
- {
- PlayerInfo[playerid][pSpawn] = 1;
- }
- stock set_spawn_sf(playerid)
- {
- PlayerInfo[playerid][pSpawn] = 2;
- }
- stock set_spawn_ls(playerid)
- {
- PlayerInfo[playerid][pSpawn] = 3;
- }
- stock set_spawn_bg(playerid)
- {
- PlayerInfo[playerid][pSpawn] = 4;
- }
- stock enter_skin(playerid)
- {
- if(PlayerInfo[playerid][pSpawn] != 4 )
- {
- if(PlayerInfo[playerid][pSex] == 1)
- {
- new RandomSkin = random(sizeof(RegMaleSkins));
- PlayerInfo[playerid][pSkin] = RegMaleSkins[RandomSkin];
- }
- else
- {
- new RandomSkin = random(sizeof(RegFemaleSkins));
- PlayerInfo[playerid][pSkin] = RegFemaleSkins[RandomSkin];
- }
- }
- if(PlayerInfo[playerid][pSpawn] == 4)
- {
- if(PlayerInfo[playerid][pSex] == 1)
- {
- new RandomSkin = random(sizeof(RegMaleBomjSkins));
- PlayerInfo[playerid][pSkin] = RegMaleBomjSkins[RandomSkin];
- }
- else
- {
- new RandomSkin = random(sizeof(RegFemaleBomjSkins));
- PlayerInfo[playerid][pSkin] = RegFemaleBomjSkins[RandomSkin];
- }
- }
- save_registration(playerid);
- }
- stock SetPlayerPosEx(playerid, Float:x, Float:y, Float:z, Float:Angle, interior = 0, virtualworld = 0)
- {
- SetPlayerInterior(playerid, interior);
- SetPlayerPos(playerid, Float:x, Float:y, Float:z);
- SetPlayerVirtualWorld(playerid, virtualworld);
- SetPlayerFacingAngle(playerid, Float:Angle);
- return true;
- }
- stock save_registration(playerid)
- {
- cache_get_value_name_int(0, "pID", PlayerInfo[playerid][pID]);
- new data[16];
- new year, month, day;
- getdate(year, month, day);
- format(data, sizeof(data), "%02d.%02d.%d", day, month, year);
- GetPlayerIp(playerid, PlayerInfo[playerid][pIp], 16);
- new fmt_qry[] = "UPDATE `accounts` SET `pSkin` = '%d', `pSex` = '%d', `pMail` = '%s', `pRefer` = '%s', `pSpawn` = '%d', `pRegDate` = '%s', `pRegIp` = '%s', `pReg` = '1' WHERE `pName` = '%s' LIMIT 1";
- new query[sizeof(fmt_qry) + 64 + 3 + 40 + 1 + 16 + 16 + 2];
- mysql_format(db_connect, query, sizeof(query), fmt_qry, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pSex], PlayerInfo[playerid][pMail], PlayerInfo[playerid][pRefer], PlayerInfo[playerid][pSpawn], data, PlayerInfo[playerid][pIp], PlayerName(playerid));
- mysql_pquery(db_connect, query);
- set_player_data_to_default(playerid);
- Login[playerid] = true;
- SpawnPlayer(playerid);
- }
- stock player_spawn(playerid)
- {
- SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
- switch(PlayerInfo[playerid][pSpawn])
- {
- case 1:
- {
- SetPlayerPosEx(playerid, 1685.0583, 1447.9601, 10.7702, 269.4320, 0, 0);
- }
- case 2:
- {
- SetPlayerPosEx(playerid, -1502.4015, 920.0212, 7.1875, 89.5766, 0, 0);
- }
- case 3:
- {
- SetPlayerPosEx(playerid, 1742.6989, -1860.6411, 13.5785, 0.5889, 0, 0);
- }
- case 4:
- {
- SetPlayerPosEx(playerid, -88.4597, -1579.9426, 2.6172, 218.3821, 0, 0);
- }
- }
- }
- stock ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
- {
- if(IsPlayerConnected(playerid))
- {
- new Float:posx;new Float:posy;new Float:posz;new Float:oldposx;new Float:oldposy;new Float:oldposz;new Float:tempposx;new Float:tempposy;new Float:tempposz;
- GetPlayerPos(playerid, oldposx, oldposy, oldposz);
- foreach(new i: Player)
- {
- if(IsPlayerConnected(i))
- {
- if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
- {
- GetPlayerPos(i, posx, posy, posz);
- tempposx = (oldposx -posx);
- tempposy = (oldposy -posy);
- tempposz = (oldposz -posz);
- if(((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) SCM(i, col1, string);
- else if(((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) SCM(i, col2, string);
- else if(((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) SCM(i, col3, string);
- else if(((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) SCM(i, col4, string);
- else if(((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) SCM(i, col5, string);
- }
- }
- }
- }
- return 1;
- }
- stock Timers()
- {
- SetTimer("thirtysecondupdate", 30000, 1);
- SetTimer("minuteupdate", 60000, 1);
- SetTimer("secondupdate", 1000, 1);
- SetTimer("fivesecondupdate", 1000, 1);
- return 1;
- }
- stock player_save(playerid)
- {
- Login[playerid] = false;
- new year, month, day, hour, minute, second, data[32];
- getdate(year, month, day);
- gettime(hour, minute, second);
- format(data, sizeof(data), "%02d.%02d.%d %02d:%02d", day, month, year, hour, minute);
- new fmt_qry[] = "UPDATE `accounts` SET `pSkin` = '%d', `pMoney` = '%d', `pLevel` = '%d', `pExp` = '%d', `pLastIp` = '%s', `pLastDate` = '%s' WHERE `pName` = '%s' LIMIT 1";
- new query[sizeof(fmt_qry) + MAX_PLAYER_NAME + 64];
- mysql_format(db_connect, query, sizeof(query), fmt_qry, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pExp], PlayerInfo[playerid][pIp], data, PlayerName(playerid));
- mysql_pquery(db_connect, query);
- return true;
- }
- stock AntiMoney()
- {
- foreach(new i: Player)
- {
- if(PlayerInfo[i][pMoney] != GetPlayerMoney(i))
- {
- ResetPlayerMoney(i);
- GivePlayerMoney(i, PlayerInfo[i][pMoney]);
- }
- }
- }
- stock set_player_data_to_default(playerid)
- {
- PlayerInfo[playerid][pLevel] = 1;
- PlayerInfo[playerid][pExp] = 0;
- PlayerInfo[playerid][pMoney] = 0;
- SetPlayerScore(playerid, 1);
- PlayerInfo[playerid][pExpUp] = PlayerInfo[playerid][pLevel]*4;
- return true;
- }
- stock show_rules(playerid)
- {
- new string[1400];
- format(string, sizeof(string), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
- Rules1[0], Rules1[1], Rules1[2], Rules1[3], Rules1[4], Rules1[5], Rules1[6], Rules1[7], Rules1[8], Rules1[9], Rules1[10],
- Rules2[0], Rules2[1], Rules2[2], Rules2[3], Rules2[4], Rules2[5], Rules2[6], Rules2[7], Rules2[8]);
- SPD(playerid, 7, DSM, "Правила Сервера", string, "Далее", "");
- }
- stock show_statistics(playerid)
- {
- new stext[8];
- switch(PlayerInfo[playerid][pSex])
- {
- case 1: stext = "Мужской";
- case 2: stext = "Женский";
- }
- static const fmt_str[] =
- "\n\
- {919191}Номер аккаунта:{617ABA}\t\t%d\n\
- {919191}Имя:{617ABA}\t\t\t\t%s\n\
- {919191}Уровень:{617ABA}\t\t\t%i\n\
- {919191}Опыт:{617ABA}\t\t\t\t%i|%i\n\
- {919191}Деньги:{617ABA}\t\t\t%i$\n\
- {919191}Пол:{617ABA}\t\t\t\t%s\n\
- {919191}Число pJob:{617ABA}\t\t\t\t%d\n";
- new string[sizeof(fmt_str) + 10 + MAX_PLAYER_NAME + 3 + 10 + 10 + 8];
- format (string, sizeof(string), fmt_str, PlayerInfo[playerid][pID], PlayerName(playerid), PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pExp], PlayerInfo[playerid][pExpUp], GetPlayerMoney(playerid), stext, PlayerInfo[playerid][pJob]);
- SPD(playerid, 21, DSM, "Статистика персонажа", string, "Готово", "");
- }
- stock payday(playerid)
- {
- PlayerInfo[playerid][pExp]++;
- if(PlayerInfo[playerid][pExp] == PlayerInfo[playerid][pExpUp])
- {
- PlayerInfo[playerid][pExp] = 0;
- PlayerInfo[playerid][pLevel]++;
- PlayerInfo[playerid][pExpUp] = PlayerInfo[playerid][pLevel]*4;
- SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
- return true;
- }
- return true;
- }
- // ======================== [ Пабликс ] ========================
- publics connect_player(playerid)
- {
- new query[128];
- SCM(playerid, COLOR_LIGHTBLUE, "Добро пожаловать на проект StarLight Role Play!");
- mysql_format(db_connect, query, sizeof(query), "SELECT `pID` FROM `accounts` WHERE `pName` = '%s' LIMIT 1", PlayerName(playerid));
- mysql_tquery(db_connect, query, "check_registration", "ii", playerid, 0);
- return true;
- }
- publics check_registration(playerid)
- {
- if(cache_num_rows() < 1 ) show_registration(playerid);
- else show_login(playerid);
- return true;
- }
- publics kick(playerid)
- {
- Kick(playerid);
- return true;
- }
- publics check_login(playerid)
- {
- if(cache_num_rows() < 1 )
- {
- new string[128];
- if(GetPVarInt(playerid, "wrong_pass") == 2)
- {
- SCM (playerid, COLOR_RED, "Вы были кикнуты с сервера за неверный ввод пароля\nДля выхода введите /q(uit)");
- KickRak(playerid);
- }
- SetPVarInt(playerid, "wrong_pass", GetPVarInt(playerid, "wrong_pass")+1);
- if(GetPVarInt(playerid, "wrong_pass") < 3)
- {
- format(string, sizeof(string), "Внимание! Вы ввели неправильный пароль.\nУ вас осталось %d попыток\nИначе вы будете кикнуты.", 3 - GetPVarInt(playerid, "wrong_pass"));
- SCM(playerid, COLOR_RED, string);
- show_login(playerid);
- }
- }
- else
- {
- cache_get_value_name_int(0, "pReg", PlayerInfo[playerid][pReg]);
- if(PlayerInfo[playerid][pReg] == 0)
- {
- enter_email(playerid);
- }
- else
- {
- player_load(playerid);
- }
- }
- return true;
- }
- publics thirtysecondupdate()
- {
- return 1;
- }
- publics secondupdate()
- {
- return 1;
- }
- publics fivesecondupdate()
- {
- AntiMoney();
- return 1;
- }
- publics minuteupdate()
- {
- return 1;
- }
- publics PickUps()
- {
- loaderspick = CreatePickup(1275, 23, 2397.9182, -2508.3752, 13.6483, -1);
- return 1;
- }
- publics ThreeDTexts()
- {
- Create3DTextLabel( "Устройство на работу грузчика", 0x008080FF, 2397.9182, -2508.3752, 13.6483 + 0.5, 10, 0 );
- return 1;
- }
- publics LogoTextdraws()
- {
- Logotype[0] = TextDrawCreate(577.666564, 26.853322, "V");
- TextDrawLetterSize(Logotype[0], -0.531332, -2.745599);
- TextDrawAlignment(Logotype[0], 1);
- TextDrawColor(Logotype[0], 995004415);
- TextDrawSetShadow(Logotype[0], 1);
- TextDrawSetOutline(Logotype[0], 0);
- TextDrawBackgroundColor(Logotype[0], 255);
- TextDrawFont(Logotype[0], 1);
- TextDrawSetProportional(Logotype[0], 1);
- TextDrawSetShadow(Logotype[0], 1);
- Logotype[1] = TextDrawCreate(572.333312, 11.173354, "-");
- TextDrawLetterSize(Logotype[1], 2.049331, 1.558930);
- TextDrawAlignment(Logotype[1], 1);
- TextDrawColor(Logotype[1], 995004415);
- TextDrawSetShadow(Logotype[1], 1);
- TextDrawSetOutline(Logotype[1], 0);
- TextDrawBackgroundColor(Logotype[1], 255);
- TextDrawFont(Logotype[1], 1);
- TextDrawSetProportional(Logotype[1], 1);
- TextDrawSetShadow(Logotype[1], 1);
- Logotype[2] = TextDrawCreate(544.999816, 11.173354, "-");
- TextDrawLetterSize(Logotype[2], 1.817000, 1.536530);
- TextDrawAlignment(Logotype[2], 1);
- TextDrawColor(Logotype[2], 995004415);
- TextDrawSetShadow(Logotype[2], 1);
- TextDrawSetOutline(Logotype[2], 0);
- TextDrawBackgroundColor(Logotype[2], 255);
- TextDrawFont(Logotype[2], 1);
- TextDrawSetProportional(Logotype[2], 1);
- TextDrawSetShadow(Logotype[2], 1);
- Logotype[3] = TextDrawCreate(549.332580, 1.839949, "St");
- TextDrawLetterSize(Logotype[3], 0.515999, 2.189866);
- TextDrawAlignment(Logotype[3], 1);
- TextDrawColor(Logotype[3], 995004415);
- TextDrawSetShadow(Logotype[3], 1);
- TextDrawSetOutline(Logotype[3], 0);
- TextDrawBackgroundColor(Logotype[3], 255);
- TextDrawFont(Logotype[3], 1);
- TextDrawSetProportional(Logotype[3], 1);
- TextDrawSetShadow(Logotype[3], 1);
- Logotype[4] = TextDrawCreate(577.332824, 1.466628, "rLight");
- TextDrawLetterSize(Logotype[4], 0.515999, 2.189866);
- TextDrawAlignment(Logotype[4], 1);
- TextDrawColor(Logotype[4], 995004415);
- TextDrawSetShadow(Logotype[4], 1);
- TextDrawSetOutline(Logotype[4], 0);
- TextDrawBackgroundColor(Logotype[4], 255);
- TextDrawFont(Logotype[4], 1);
- TextDrawSetProportional(Logotype[4], 1);
- TextDrawSetShadow(Logotype[4], 1);
- Logotype[5] = TextDrawCreate(604.333374, 11.173354, "-");
- TextDrawLetterSize(Logotype[5], 1.855333, 1.547729);
- TextDrawAlignment(Logotype[5], 1);
- TextDrawColor(Logotype[5], 995004415);
- TextDrawSetShadow(Logotype[5], 1);
- TextDrawSetOutline(Logotype[5], 0);
- TextDrawBackgroundColor(Logotype[5], 255);
- TextDrawFont(Logotype[5], 1);
- TextDrawSetProportional(Logotype[5], 1);
- TextDrawSetShadow(Logotype[5], 1);
- return true;
- }
- // ======================== [ Команды ] ========================
- CMD:spawnlv(playerid)
- {
- SetPlayerPosEx(playerid, 1685.0583, 1447.9601, 10.7702, 269.4320, 0, 0);
- return true;
- }
- ALT:mainmenu:mm;
- CMD:mainmenu(playerid, params[])
- {
- static const fmt_str[] = "{919191}Статистика персонажа\n{919191}Настройки персонажа";
- new string[sizeof(fmt_str)];
- format(string, sizeof(string), fmt_str);
- SPD(playerid, 20, DSL, "Главное меню", string, "Далее", "Выйти");
- return true;
- }
- // ============= [ RolePlay - Команды ] ==============
- ALT:shout:s;
- CMD:shout(playerid, params[])
- {
- FloodCMD
- if(sscanf(params, "s[100]", params[0])) return SCM(playerid, COLOR_WHITE, "Используйте: (/s)hout [текст]");
- if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
- {
- if(GetPVarInt(playerid, "mineanim") == 1) return 1;
- ApplyAnimation(playerid, "ON_LOOKERS", "shout_in", 1000.0, 0, 0, 0, 0, 0, 1);
- }
- new string[128];
- format(string, sizeof(string), "- %s[%d] кричит: %s!", PlayerName(playerid), playerid, params[0]);
- ProxDetector(30.0, playerid, string, 0xFFFFFFFF, 0xFFFFFFFF, 0xF5F5F5FF, 0xE6E6E6FF,0xB8B8B8FF);
- SetPlayerChatBubble(playerid, params[0], COLOR_YELLOW, 30.0, 10000);
- flood_cmd[playerid] = gettime() + 1;
- return 0;
- }
- ALT:whisper:w;
- CMD:whisper(playerid, params[])
- {
- FloodCMD
- new string[128];
- if(sscanf(params, "s[100]", params[0])) return SCM(playerid, COLOR_WHITE, "Используйте: (/w)hisper [текст]");
- format(string, sizeof(string), "- %s[%d] шепчет: %s", PlayerName(playerid), playerid, params[0]);
- ProxDetector(1.0, playerid, string, 0x6E6E6EAA, 0x6E6E6EAA, 0x6E6E6EAA, 0x6E6E6EAA, 0x6E6E6EAA);
- flood_cmd[playerid] = gettime() + 1;
- return 0;
- }
- CMD:me(playerid, params[])
- {
- FloodRPChat
- new string[128];
- if(sscanf(params,"s[100]",params[0])) return SCM(playerid, COLOR_WHITE, "Используйте: /me [действие]");
- format(string, sizeof(string), "%s[%d] %s", PlayerName(playerid), playerid, params[0]);
- ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
- SetPlayerChatBubble(playerid, params[0], 0xDD90FFFF, 30.0, 10000);
- flood_rpchat[playerid] = gettime() + 1;
- return true;
- }
- CMD:do(playerid, params[])
- {
- FloodRPChat
- new string[128];
- if(sscanf(params,"s[100]",params[0])) return SCM(playerid, COLOR_WHITE, "Используйте: /do [действие от 3-го лица]");
- format(string, sizeof(string), "(( %s[%d] )) {FF9900}%s", PlayerName(playerid), playerid, params[0]);
- ProxDetector(30.0, playerid, string, 0xFFFFFFAA, 0xFFFFFFAA, 0xFFFFFFAA, 0xFFFFFFAA, 0xFFFFFFAA);
- SetPlayerChatBubble(playerid, params[0], 0xFFFFFFAA, 30.0, 10000);
- flood_rpchat[playerid] = gettime() + 1;
- return true;
- }
- CMD:try(playerid, params[])
- {
- FloodRPChat
- new string[128], trying[32];
- if(sscanf(params,"s[100]",params[0])) return SCM(playerid, COLOR_WHITE, "Используйте: /try [действие]");
- new randomtry = random(2);
- if(randomtry == 0) trying = "{FF6600} [Неудачно]";
- else trying = "{63C600} [Удачно]";
- format(string, sizeof(string), "%s[%d] %s %s", PlayerName(playerid), playerid, params[0], trying);
- ProxDetector(30.0, playerid, string, 0xDD90FFAA, 0xDD90FFAA, 0xDD90FFAA, 0xDD90FFAA, 0xDD90FFAA);
- SetPlayerChatBubble(playerid, params[0], 0xDD90FFAA, 30.0, 10000);
- flood_rpchat[playerid] = gettime() + 1;
- return true;
- }
- // =============== [ Админ - Команды ] ===============
- CMD:sethp(playerid, params[])
- {
- if(sscanf(params, "dd", params[0], params[1])) return SCM(playerid, COLOR_WHITE, "Используйте: /sethp [id] [уровень здоровья]");
- return SetPlayerHealth(params[0], params[1]);
- }
- ALT:moderatormenu:mmenu;
- CMD:moderatormenu(playerid, params[])
- {
- static const fmt_str[] = "{919191}Список модераторов{617ABA}(1-6 lvl){919191}\n{919191}Поставить модератора\n{919191}Повысить модератора\n{919191}Понизить модератора\n{919191}Выдать выговор модератору\n{919191}Снять модератора";
- new string[sizeof(fmt_str)];
- format(string, sizeof(string), fmt_str);
- SPD(playerid, 100, DSL, "Меню модераторов", string, "Далее", "Выйти");
- return true;
- }
- ALT:supportmenu:smenu;
- CMD:supportmenu(playerid, params[])
- {
- static const fmt_str[] = "{919191}Список саппортов\n{919191}Поставить саппорта\n{919191}Выдать выговор саппорту\n{919191}Снять саппорта";
- new string[sizeof(fmt_str)];
- format(string, sizeof(string), fmt_str);
- SPD(playerid, 102, DSL, "Меню саппортов", string, "Далее", "Выйти");
- return true;
- }
- CMD:setmoney(playerid, params[])
- {
- FloodCMD
- if(sscanf(params,"dd",params[0], params[1])) return SCM(playerid, COLOR_WHITE, "Используйте: /setmoney [id] [сумма]");
- GivePlayerMoney(params[0], params[1]);
- return true;
- }
- CMD:payday(playerid)
- {
- FloodCMD
- payday(playerid);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement