/*********************************
* Blood Moon by Wishay *
* Autor: Wishay *
* VK: vk.com/wishay *
* Group: vk.com/ff *
**********************************/
//Хоспаде, ну и кто сюда смотрит вообще?
#include <a_samp>
#include <a_players>
#include <dini>
#include <gvc>
//Кому нужен релиз? К чёрту его!
#define MOD_RELEASE 124
/*************Цвета сервера*************/
#define COLOR_DEF 0xFFFFFFFF
#define COLOR_ADMIN 0xDF9090FF
#define COLOR_INFO 0x5F5FFFFF
#define COLOR_CMD 0xAFAFAFFF
//RP Colors
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_AIR 0xB3E6FFFF
#define COLOR_DEF2 0xFFCC99FF
#define COLOR_CMD2 0xBFBFBFFF
#define COLOR_PEACH 0xFFE6CCFF
#define COLOR_SOFTGREEN 0xE6FFE6FF
#define COLOR_SOFTROSE 0xFFCCFFFF
#define COLOR_ORANGE2 0xFF9933FF
#define COLOR_SOFTORANGE 0xFFB366FF
/*************Диалоги*************/
/*Айдишники не менять, котов не обижать! */
#define DIALOG_IN 0
#define DIALOG_REG 1
#define DIALOG_OVA 2
#define DIALOG_AMENU 3
#define DIALOG_SYSMESS 4
#define DIALOG_MAIN_MENU 5
#define DIALOG_VEHACTION 6
#define DIALOG_RADIO 7
#define DIALOG_SELLDRUG1 8
#define DIALOG_SELLDRUGS2 9
#define INFOBOX 983
#define KICKBOX 984
/********Настройки********/
new avalidationp[2];
new presentr = 1;
/*************ID БАНД*************/
#define G_BM 0
#define G_GROOVE 1
#define G_BALLAS 2
#define G_VAGOS 3
#define G_POLICE 4
#define G_YAKUZA 5
/*************МАССИВЫ*************/
new pColorsC[24][7] =
{
"FFFFFF", //Белый. 0
"CC0000", //Тёмно-красный. 1
"00FF00", //Лаймовый. 2
"00CC00", //Зелёный. 3
"1FFF00", //Желто-зеленый. 4
"0000FF", //Синий. 5
"0000CC", //Тёмно-синий. 6
"FF0000", //Ярко-красный. 7
"3F3F3F", //Серый. 8
"000000", //Чёрный. 9
"FFFF00", //Светло-жёлтый. 10
"CCCC00", //Тёмно-желтый. 11
"00FFFF", //Светло-бирюзовый. 12
"00CCCC", //Тёмно-бирюзовый. 13
"FF4000", //Оранжевый. 14
"CEECF5", //Воздушный. 15
"F5A9F2", //Розовый. 16
"FF00FF", //Ярко-розовый. 17
"D8F781", //Air+зеленый. 18
"E6E6E6", //Серый 2. 19
"975300", //Коричневый. 20
"9E00FF", //Фиолетовый. 21
"400069", //Баклажановый. 22
"BC8657" //Milk-Cofee (by Cofee) 23
};
new pColorsN[24] =
{
0xFFFFFFFF, //Белый.
0xCC0000FF, //Тёмно-красный.
0x00FF00FF, //Лаймовый.
0x00CC00FF, //Зелёный.
0x1FFF00FF, //Желто-зеленый.
0x0000FFFF, //Синий.
0x0000CCFF, //Тёмно-синий.
0xFF0000FF, //Ярко-красный.
0x3F3F3FFF, //Серый.
0x000000FF, //Чёрный.
0xFFFF00FF, //Светло-жёлтый.
0xCCCC00FF, //Тёмно-желтый.
0x00FFFFFF, //Светло-бирюзовый.
0x00CCCCFF, //Тёмно-бирюзовый.
0xFF4000FF, //Оранжевый.
0xCEECF5FF, //Воздушный.
0xF5A9F2FF, //Розовый.
0xFF00FFFF, //Ярко-розовый.
0xD8F781FF, //Air+зеленый.
0xE6E6E6FF, //Серый 2.
0x975300FF, //Коричневый.
0x9E00FFFF, //Фиолетовый.
0x400069FF, //Баклажановый.
0xBC8657FF //Milk-Cofee (by Cofee)
};
new Float: pSpawns[9][3] =
{
{2121.6709, 1232.6560, 10.8203},
{2000.1748, 1521.1981, 17.0625},
{1689.0837, 1447.3623, 10.7673},
{-2027.2810, 139.2742, 28.8359},
{-1979.7251, 882.0549, 45.2031},
{-1501.3184, 921.6622, 7.1875},
{1544.3414, -1353.3977, 329.4742},
{817.2953, -1352.9248, 13.5350},
{729.9897, -1276.4136, 17.6484}
};
new Float: nPSpawns[4][3] =
{
{1446.9456,1501.0609,10.8203},
{1439.6748,1500.8436,10.8203},
{1428.8660,1500.1049,10.8203},
{1420.8109,1501.0588,10.8203}
};
new pWeaps[55][24] =
{
"Кулаки", /*0 0x000000*/ "Кастет", /*1 0x000001*/ "Клюшка для гольфа", /*2 0x000002*/
"Полицейская дубинка", /*3 0x000003*/"Нож", /*4 0x000004*/"Бита", /*5 0x000005*/
"Лопата", /*6 0x000006*/"Кий", /*7 0x000007*/"Катана", /*8 0x000008*/
"Бензопила", /*9 0x000009*/"Дилдо", /*10 0x00000A*/"Дилдо", /*11 0x00000B*/
"Вибратор", /*12 0x00000C*/"Вибратор", /*13 0x00000D*/"Цветы", /*14 0x00000E*/
"Клюка", /*15 0x00000F*/"Граната", /*16 0x000010*/"Газ", /*17 0x000011*/
"Молотов", /*18 0x000012*/"N/A", /*19 0x000013*/"N/A", /*20 0x000014*/
"N/A", /*21 0x000015*/"Кольты", /*22 0x000016*/"Кольт с глушителем", /*23 0x000017*/
"Пустынный орёл", /*24 0x000018*/"Дробовик", /*25 0x000019*/"Обрезы", /*26 0x00001A*/
"Боевой дробовик", /*27 0x00001B*/"Микро SMG/Uzi", /*28 0x00001C*/"МП5", /*29 0x00001D*/
"АК-47", /*30 0x00001E*/"М4", /*31 0x00001F*/"TEC-9", /*32 0x000020*/
"Винтовка", /*33 0x000021*/"Снайперская винтовка", /*34 0x000022*/"РПГ", /*35 0x000023*/
"Муха", /*36 0x000024*/"Огнемёт", /*37 0x000025*/"Миниган", /*38 0x000026*/
"C4", /*39 0x000027*/"Детонатор", /*40 0x000028*/"Спрей", /*41 0x000029*/
"Огнетушитель", /*42 0x00002A*/"Камера", /*43 0x00002B*/"N/A", /*44 0x00002C*/
"N/A", /*45 0x00002D*/"Парашют", /*46 0x00002E*/":МАГИЯ:", /*47 0x00002F*/
"N/A", /*48 0x000030*/"Задавил", /*49 0x000031*/"Зарубил винтами", /*50 0x000032*/
"Взрыв", /*51 0x000033*/"N/A", /*52 0x000034*/":МАГИЯ:", /*53 0x000035*/
"N/A" /*54 0x000036*/
};
// Рэп бомжей около мэрии не считается, дорогие вы мои разрабы!!!
new radioList[10][2][500] =
{
{"http://retroserver.streamr.ru:8043/retro64", "Рэтро FM"}, //#EXTINF:-1,Рэтро FM
{"http://radiopotok.ru/f/m3u/station_88.m3u", "DFM Radio"}, //#EXTINF:-1,DFM
{"http://air.radiorecord.ru:8101/rr_320", "Radio Record"}, //#EXTINF:-1,Radio Record
{"http://air.radiorecord.ru:8102/club_320", "Record Club"}, //#EXTINF:-1,Record Club
{"http://air.radiorecord.ru:8102/dub_320", "Record Dubstep"}, //#EXTINF:-1,Record Dubstep
{"http://ep128server.streamr.ru:8030/ep128", "Europa plus"}, //#EXTINF:-1,Europa plus
{"http://radio.zaycev.fm:9001/ZaycevFM(256)?type=.flv&file=http://www.zaycev.fm:9001/ZaycevFM(256)?type=.flv&start=0", "Зайцев FM"}, //#EXTINF:-1,Зайцев FM
{"http://mariafm.ru:8000/maria-fm.mp3", "Мария FM"}, //#EXTINF:-1,MariaFM
{"http://radio01-cn03.akadostream.ru:8000/russianradio128.mp3", "Русское радио"}, //#EXTINF:-1,Русское радио
{"http://eu7.101.ru:8000/v1_1", "Energy (NRG)"} //#EXTINF:-1,Радио Energy (NRG)
};
new weatherList[][][] =
{
{"солнечная погода", "20", "30"}, //0/1
{"солнечная погода", "25", "36"}, //1/2
{"солнечная погода", "17", "20"}, //2/3
{"облачная погода", "15", "19"}, //3/4
{"облачная погода", "18", "26"}, //4/5
{"облачная погода", "19", "29"}, //5/6
{"пасмурная погода", "15", "25"}, //6/7
{"дождь", "15", "19"}, //7/8
{"туман", "17", "23"}, //8/9
{"солнечная погода", "21", "34"}, //9/10
{"облачная погода", "20", "30"}, //10/11
{"небольшой туман", "20", "25"}, //11/12
{"облачная погода, с прояснениями", "25", "27"}, //12/13
{"высокая облачность", "23", "28"}, //13/14
{"пасмурная погода", "16", "20"}, //14/15
{"гроза", "15", "25"}, //15/16
{"жара", "30", "40"}, //16/17
{"жара", "28", "38"}, //17/18
{"песчаная буря", "25", "28"} //18/19 Всё. Очень. Плохо.
};
enum weaen
{
weatherID,
minTemp,
maxTemp
};
new sWeather[weaen];
// Блок информации "ДаВыЧо?" Список самой бесполезной информации за всю историю сервера.
new sUpdate[1000] = "{FFCC99}Версия мода: {B3E6FF}1.24{1AFF8C}A\n"\
"{FFCC99}Автор: {FF531A}Lophocorona {FF0000}([C][T][P][A][X]).\n\n"\
"{FFFFCC}Изменена система начисления игровых очков.\n"\
"Добавлены RP команды /me /try, изменена команда для создания объявлений.\n"\
"Проведён вайп всех аккаунтов в целях синхронизации с новым релизом.\n"\
"Деньги теперь отображаются справа вверху, дополнительный худ был убран.\n";
/*************Переменные игроков*************/
/* Не трогай это! Без этого точно всё поломается. Я серьёзно.
Не делай этого. Прошу тебя. Просто. Листай. Дальше. */
new admin[MAX_PLAYERS];
new vip[MAX_PLAYERS];
new ncolor[MAX_PLAYERS];
new ccolor[MAX_PLAYERS];
new ammo[MAX_PLAYERS];
new w1[MAX_PLAYERS];
new w2[MAX_PLAYERS];
new w3[MAX_PLAYERS];
new w4[MAX_PLAYERS];
new w5[MAX_PLAYERS];
new w6[MAX_PLAYERS];
new skin[MAX_PLAYERS];
new money[MAX_PLAYERS];
new gangid[MAX_PLAYERS];
new gleader[MAX_PLAYERS];
new glvl[MAX_PLAYERS];
new kills[MAX_PLAYERS];
new death[MAX_PLAYERS];
new logged[MAX_PLAYERS];
new banned[MAX_PLAYERS];
new jailed[MAX_PLAYERS];
new warned[MAX_PLAYERS];
new level[MAX_PLAYERS];
new score[MAX_PLAYERS];
new radio[MAX_PLAYERS];
new donate[MAX_PLAYERS];
new drugs[MAX_PLAYERS];
new carcolor[MAX_PLAYERS][2];
new mycar[MAX_PLAYERS][2];
new gamingmin[MAX_PLAYERS];
new leavec[MAX_PLAYERS];
new hudSetup[MAX_PLAYERS][2];
new muted[MAX_PLAYERS];
new avalid[MAX_PLAYERS];
new caridd[MAX_PLAYERS];
new killmessages[MAX_PLAYERS];
new kcombo[MAX_PLAYERS];
new indm[MAX_PLAYERS];
new OneSpawn[MAX_PLAYERS];
new dstatus[MAX_PLAYERS];
new ahouse[MAX_PLAYERS];
new tempp[MAX_PLAYERS];
new servermessages[MAX_PLAYERS];
new fuel[MAX_PLAYERS];
new Checkpoint[MAX_PLAYERS];
new kicked[MAX_PLAYERS];
new nonafk[MAX_PLAYERS];
new oldrelease[MAX_PLAYERS];
new nycap[MAX_PLAYERS];
new mask[MAX_PLAYERS];
new File: acc[MAX_PLAYERS];
/*************Переменные сервера*************/
new Text3D: P3DT[MAX_PLAYERS];
new PlayerText: hudStatPresent[MAX_PLAYERS];
new PlayerText: hudStatLevel[MAX_PLAYERS];
new PlayerText: hudStatOtherInfo[MAX_PLAYERS];
new PlayerText: hudTime[MAX_PLAYERS];
new vicval = -1;
forward restartv();
public restartv()
{
SendRconCommand("gmx");
return 1;
}
//Самая глючная штука сервера. Да. Но мне лень её переделывать, так что просто не обращаем внимания.
forward updateHud();
public updateHud()
{
for(new i = 0; i!= MAX_PLAYERS; i++)
{
if(logged[i])
{
if(hudSetup[i][1])
{
new infomess[1000];
new timeM[3];
new mn;
format(infomess, sizeof(infomess), "Level: %d", level[i]);
PlayerTextDrawSetString(i, hudStatLevel[i], infomess);
caridd[i] = GetPlayerVehicleID(i);
format(infomess, sizeof(infomess), "Score: %d/%d", score[i], (level[i] * 60));
PlayerTextDrawSetString(i, hudStatOtherInfo[i], infomess);
mn = GetPlayerMoney(i);
if(mn != money[i])
{
ResetPlayerMoney(i);
GivePlayerMoney(i, money[i]);
}
gettime(timeM[0], timeM[1], timeM[2]);
format(infomess, sizeof(infomess), "%02d:%02d:%02d", timeM[0], timeM[1], timeM[2]);
PlayerTextDrawSetString(i, hudTime[i], infomess);
}
}
}
}
forward GetAfkPlayers();
public GetAfkPlayers()
{
for(new i = 0; i != MAX_PLAYERS; i++) if(nonafk[i]) nonafk[i] = 0;
}
//Ещё одна глючная штуковина.
forward basePlayerSetup();
public basePlayerSetup()
{
for(new i = 0; i!= MAX_PLAYERS; i++)
{
if(logged[i])
{
new Float:ix, Float:iy, Float:iz;
GetPlayerPos(i, ix, iy, iz);
if(money[i] > 2147480000 || money[i] < 0) money[i] = 0;
SetPlayerScore(i, level[i]);
if(score[i] > (level[i] * 60))
{
new pname[24];
new lmess[500];
GetPlayerName(i, pname, sizeof(pname));
level[i]++; //Не надо так.
money[i] += 5000; //И так тоже.
GameTextForPlayer(i, "~r~New Level ~w~| ~g~+5000$", 100, 0);
format(lmess, sizeof(lmess), "{FFCC99}Игрок {%s}%s {FFCC99}получил %d уровень.", pColorsC[ncolor[i]], pname, level[i]);
SendClientMessageToAll(COLOR_DEF, lmess);
}
}
}
}
// 365... Пора прекращать писать код.
// И начать жить.
// Хотя нет.
// Чёрт, убейте меня. \-(*-*)-/
forward weatherTime();
public weatherTime()
{
for(new i = 0; i != MAX_PLAYERS; i++)
{
if(logged[i])
{
new hour, minute;
SetPlayerWeather(i, sWeather[weatherID]);
gettime(hour, minute);
SetPlayerTime(i, hour, minute);
}
}
}
forward IsKicked();
public IsKicked()
{
for(new i = 0; i != MAX_PLAYERS; i++) if(kicked[i]){kicked[i] = 0; Kick(i);}
}
//Почувствуй себя богом - предскажи погоду.
forward weaForecast();
public weaForecast()
{
new weaName[500] = "";
new wTemp = 0;
new foremess[2000];
sWeather[weatherID] = random(sizeof(weatherList));
sWeather[minTemp] = strval(weatherList[sWeather[weatherID]][1]);
sWeather[maxTemp] = strval(weatherList[sWeather[weatherID]][2]);
strcat(weaName, weatherList[sWeather[weatherID]][0]);
wTemp = sWeather[minTemp] + random(sWeather[maxTemp] - sWeather[minTemp]);
format(foremess, sizeof(foremess), "Прогноз погоды: {9090FF}В ближайшее время ожидается {00FF00}%s{9090FF}, температура - {FF0000}%d {9090FF}градусов по цельсию.", weaName, wTemp);
SendClientMessageToAll(COLOR_DEF, foremess);
}
stock Info(playerid, message[]){ShowPlayerDialog(playerid, INFOBOX, DIALOG_STYLE_MSGBOX, "{00FFFF}Информация", message, "OK", "");return 1;}
stock SendKillMessage(message[])
{
for(new i = 0; i != MAX_PLAYERS; i++) if(killmessages[i]) SendClientMessage(i, COLOR_DEF, message);
return 1;
}
stock playerToPlayerRadius(playerid, recipient) //Кусок гов... Отличного кода.
{
new Float: Px, Float: Py, Float: Pz;
new Float: Rx, Float: Ry, Float: Rz;
GetPlayerPos(playerid, Px, Py, Pz);
GetPlayerPos(recipient, Rx, Ry, Rz);
return floatround(((Px + Py + Pz) - (Rx + Ry + Rz)), floatround_ceil);
}
stock abs(value){if(value < 0) return -value; return 1;} //Ещё немного отличного кода :D
stock SendPlayerBubbleMessage(playerid, message[], radius) // Шедевар. Кулисы. Занавес.
{
new counter = 0;
for(new i = 0; i != MAX_PLAYERS; i++)
{
if(i != INVALID_PLAYER_ID && abs(playerToPlayerRadius(playerid, i)) < radius)
{
SendClientMessage(i, COLOR_DEF2, message);
if(i != playerid) counter++;
}
}
return counter;
}
stock getArgs(string[], arg) //Костыль, прилепленный к серверу путём варки клея из манной крупы и картошки.
{
new argCount = 0;
for(new i = 0; i != strlen(string); i++)
{
if(argCount == arg) return i;
if(string[i] == ' ') argCount++;
}
return -1;
}
/*************Переменные сервера 2*************/
new rMessages[10][500] =
{
"{FF0000}>> {FFFF90}Увидели читера? Сообщите в /report [ID] [Причина].",
"{FF0000}>> {FFFF90}Есть вопрос? Задавайте его в /ask [Вопрос], администрация ответит вам!",
"{FF0000}>> {FFFF90}Хотите купить донат? Skype: {FF0000}Lophocorona.",
"{FF0000}>> {FFFF90}Вас забанили? Не знаете куда обратиться? В нашей группе есть специальный топик для заявок на разбан.",
"{FF0000}>> {FFFF90}Заходите в нашу группу, в ней вас ждёт масса всего интересного! {90FFFF}[vk.com/bldmoon].",
"{FF0000}>> {FFFF90}Не знаете как открыть меню? Используйте кнопку {FFFF00}[Y].",
"{FF0000}>> {FFFF90}Заходите в нашу группу, в ней вас ждёт масса всего интересного! {90FFFF}[vk.com/bldmoon].",
"{FF0000}>> {FFFF90}Заходите в нашу группу, в ней вас ждёт масса всего интересного! {90FFFF}[vk.com/bldmoon].",
"{FF0000}>> {FFFF90}Хотите мероприятие? Пишите в /ask, администрация подумает над вашим предложением!",
"{FF0000}>> {FFFF90}Подключайтесь к радио! Вас ждут отличные треки!"
};
/*************Функции сервера*************/
forward chatFlood();
public chatFlood()
{
SendClientMessageToAll(COLOR_DEF, rMessages[random(sizeof(rMessages))]);
}
forward incPlayerMinuts();
public incPlayerMinuts()
{
for(new i = 0; i != MAX_PLAYERS; i++)
{
if(logged[i] && i != INVALID_PLAYER_ID && nonafk[i])
{
gamingmin[i]++;
score[i]++;
}
}
}
forward cWea();
public cWea()
{
for(new i = 0; i != MAX_PLAYERS; i++) if(OneSpawn[i]) SetPlayerWeather(i, 100);
}
main()
{
print("\n***********************************");
print("Server Blood Moon\n"\
"Author: [C][T][P][A][X]\n"\
"VK: vk.com/mstpax\n"\
"Group: vk.com/x\n"\
"Gang Group: vk.com/ugang");
print("\n***********************************");
}
public OnGameModeInit()
{
SetTimer("chatFlood", 3900000, 1);
SetTimer("incPlayerMinuts", 60000, 1);
SetTimer("updateHud", 1000, 1);
SetTimer("IsKicked", 800, 1);
SetTimer("basePlayerSetup", 1000, 1);
SetTimer("vicstart", 1800000, 1);
SetTimer("cWea", 300, 1);
SetTimer("weaForecast", 1700000, 1);
SetTimer("weatherTime", 1800000, 1);
SetTimer("GetAfkPlayers", 600000, 1);
SetGameModeText("Positive RPG");
AddPlayerClass(230, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerCameraPos(playerid, -1655.923828, 1205.868652, 21.156250);
SetPlayerCameraLookAt(playerid, -1651.794189, 1206.626708, 21.148662);
SetPlayerPos(playerid, -1651.794189, 1206.626708, 21.148662);
SetPlayerFacingAngle(playerid, 98.594573);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
public OnPlayerConnect(playerid)
{
kicked[playerid] = 0;
nonafk[playerid] = 1;
new pname[24];
new acv[500];
new forpmess[1000];
leavec[playerid] = 3;
hudSetup[playerid][0] = 1;
hudSetup[playerid][1] = 1;
kcombo[playerid] = 0;
OneSpawn[playerid] = 1;
PlayerPlaySound(playerid, 1183, 0, 0, 0);
GetPlayerName(playerid, pname, sizeof(pname));
format(acv, sizeof(acv), "Players/Account/%s.ini", pname);
format(forpmess, sizeof(forpmess), "{FFFFFF}Добро пожаловать, {00FF00}%s!", pname);
SendClientMessage(playerid, COLOR_DEF, "{FF0000}B{FFFFFF}lood {FF0000}M{FFFFFF}oon {AFAFAF} [RP/DM] {FFFFFF}сервер.");
SendClientMessage(playerid, COLOR_DEF, forpmess);
SendClientMessage(playerid, COLOR_DEF, "{BFBFBF}Для получения помощи используйте /help или пункт \"Информация\" в меню.");
SendClientMessage(playerid, COLOR_DEF, "{BFBFBF}Для открытия меню используйте клавишу {FFFF00}[Y].");
SendClientMessage(playerid, COLOR_DEF, "{FFE6CC}Желаем вам приятной игры на нашем сервере!");
if(dini_Exists(acv)) ShowPlayerDialog(playerid, DIALOG_IN, DIALOG_STYLE_PASSWORD, "{FFFFFF}[DM/RP] {00FF00}[Blood Moon]", "{FFFFFF}Добро пожаловать на {00FFFF}[DM/RP] [Blood Moon]!\n{FFFFFF}Этот аккаунт {00FF00}зарегистрирован.\n{FFFFFF}Для {00FF00}входа {FFFFFF}в аккаунт введите свой пароль в окошко ниже.", "OK", "Выход");
else ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}[DM/RP] {00FF00}[Blood Moon]", "{FFFFFF}Добро пожаловать на {00FFFF}[DM/RP] [Blood Moon]!\n{FFFFFF}Этот аккаунт {FF0000}не зарегистрирован.\n{FFFFFF}Для {00FF00}регистрации {FFFFFF}аккаунта введите свой пароль в окошко ниже.", "OK", "Выход");
//==================================================================================================
//Money TD
hudStatPresent[playerid] = CreatePlayerTextDraw(playerid, 450, 0, "Positive RPG");
PlayerTextDrawColor(playerid, hudStatPresent[playerid], 0xFF0000FF);
PlayerTextDrawUseBox(playerid, hudStatPresent[playerid], 1);
PlayerTextDrawBoxColor(playerid, hudStatPresent[playerid], 0x2F2F2F3F);
PlayerTextDrawFont(playerid, hudStatPresent[playerid], 1);
PlayerTextDrawShow(playerid, hudStatPresent[playerid]);
//==================================================================================================
//Level TD
hudStatLevel[playerid] = CreatePlayerTextDraw(playerid, 500, 98, "Level: N");
PlayerTextDrawColor(playerid, hudStatLevel[playerid], 0xFFFF00FF);
PlayerTextDrawFont(playerid, hudStatLevel[playerid], 2);
PlayerTextDrawShow(playerid, hudStatLevel[playerid]);
//==================================================================================================
//Other TD
hudStatOtherInfo[playerid] = CreatePlayerTextDraw(playerid, 0, 437, "");
PlayerTextDrawColor(playerid, hudStatOtherInfo[playerid], 0x00FFFFFF);
PlayerTextDrawUseBox(playerid, hudStatOtherInfo[playerid], 0);
PlayerTextDrawBoxColor(playerid, hudStatOtherInfo[playerid], 0x00000066);
PlayerTextDrawFont(playerid, hudStatOtherInfo[playerid], 1);
PlayerTextDrawShow(playerid, hudStatOtherInfo[playerid]);
//==================================================================================================
//TimeTD
hudTime[playerid] = CreatePlayerTextDraw(playerid, 550, 439, "Time: N");
PlayerTextDrawColor(playerid, hudTime[playerid], 0xFFFFFFFF);
PlayerTextDrawUseBox(playerid, hudTime[playerid], 1);
PlayerTextDrawBoxColor(playerid, hudTime[playerid], 0x2F2F2FFF);
PlayerTextDrawFont(playerid, hudTime[playerid], 2);
PlayerTextDrawShow(playerid, hudTime[playerid]);
//==================================================================================================
return 1;
}
//Загрузка всякой херни...
public OnPlayerDisconnect(playerid, reason)
{
if(P3DT[playerid]) Delete3DTextLabel(P3DT[playerid]);
new pname[24];
new accd[500];
GetPlayerName(playerid, pname, sizeof(pname));
if(logged[playerid])
{
format(accd, sizeof(accd), "Players/Account/%s.ini", pname);
dini_IntSet(accd, "Admin", admin[playerid]);
dini_IntSet(accd, "Vip", vip[playerid]);
dini_IntSet(accd, "Ncolor", ncolor[playerid]);
dini_IntSet(accd, "Ccolor", ccolor[playerid]);
dini_IntSet(accd, "Ammo", ammo[playerid]);
dini_IntSet(accd, "W1", w1[playerid]);
dini_IntSet(accd, "W2", w2[playerid]);
dini_IntSet(accd, "W3", w3[playerid]);
dini_IntSet(accd, "W4", w4[playerid]);
dini_IntSet(accd, "W5", w5[playerid]);
dini_IntSet(accd, "W6", w6[playerid]);
dini_IntSet(accd, "Skin", skin[playerid]);
dini_IntSet(accd, "Money", money[playerid]);
dini_IntSet(accd, "Kills", kills[playerid]);
dini_IntSet(accd, "Death", death[playerid]);
dini_IntSet(accd, "Banned", banned[playerid]);
dini_IntSet(accd, "Jailed", jailed[playerid]);
dini_IntSet(accd, "Warned", warned[playerid]);
dini_IntSet(accd, "Level", level[playerid]);
dini_IntSet(accd, "Radio", radio[playerid]);
dini_IntSet(accd, "Donate", donate[playerid]);
dini_IntSet(accd, "Drugs", drugs[playerid]);
dini_IntSet(accd, "CColor1", carcolor[playerid][0]);
dini_IntSet(accd, "CColor2", carcolor[playerid][1]);
dini_IntSet(accd, "Money", money[playerid]);
dini_IntSet(accd, "GamingMin", gamingmin[playerid]);
dini_IntSet(accd, "MyCar", mycar[playerid][0]);
dini_IntSet(accd, "GiD", gangid[playerid]);
dini_IntSet(accd, "Gleader", gleader[playerid]);
dini_IntSet(accd, "Glvl", glvl[playerid]);
dini_IntSet(accd, "DrawChatLine", hudSetup[playerid][0]);
dini_IntSet(accd, "DrawStats", hudSetup[playerid][1]);
dini_IntSet(accd, "Muted", muted[playerid]);
dini_IntSet(accd, "Score", score[playerid]);
dini_IntSet(accd, "Killmessages", killmessages[playerid]);
dini_IntSet(accd, "Ahouse", ahouse[playerid]);
dini_IntSet(accd, "ServerMessages", servermessages[playerid]);
dini_IntSet(accd, "Fuel", fuel[playerid]);
dini_IntSet(accd, "OldRelease", oldrelease[playerid]);
admin[playerid] = 0;
vip[playerid] = 0;
ncolor[playerid] = 0;
ccolor[playerid] = 0;
ammo[playerid] = 0;
w1[playerid] = 0;
w2[playerid] = 0;
w3[playerid] = 0;
w4[playerid] = 0;
w5[playerid] = 0;
w6[playerid] = 0;
skin[playerid] = 0;
money[playerid] = 0;
kills[playerid] = 0;
death[playerid] = 0;
banned[playerid] = 0;
jailed[playerid] = 0;
warned[playerid] = 0;
level[playerid] = 0;
radio[playerid] = 0;
donate[playerid] = 0;
drugs[playerid] = 0;
carcolor[playerid][0] = 0;
carcolor[playerid][1] = 0;
money[playerid] = 0;
gamingmin[playerid] = 0;
mycar[playerid][0] = 0;
leavec[playerid] = 3;
logged[playerid] = 0;
gangid[playerid] = 0;
gleader[playerid] = 0;
glvl[playerid] = 0;
hudSetup[playerid][1] = 1;
hudSetup[playerid][0] = 1;
muted[playerid] = 0;
avalid[playerid] = 0;
caridd[playerid] = 0;
score[playerid] = 0;
killmessages[playerid] = 1;
kcombo[playerid] = 0;
indm[playerid] = 0;
dstatus[playerid] = 0;
ahouse[playerid] = 0;
tempp[playerid] = 0;
servermessages[playerid] = 0;
fuel[playerid] = 0;
Checkpoint[playerid] = 0;
kicked[playerid] = 0;
nonafk[playerid] = 0;
oldrelease[playerid] = 0;
nycap[playerid] = 0;
mask[playerid] = 0;
}
return 1;
}
//Выдача всякой херни...
public OnPlayerSpawn(playerid)
{
if(OneSpawn[playerid])
{
new hour, minute;
gettime(hour, minute);
PlayerPlaySound(playerid, 1184, 0, 0, 0);
SetPlayerWeather(playerid, sWeather[weatherID]);
SetPlayerTime(playerid, hour, minute);
OneSpawn[playerid] = 0;
}
dstatus[playerid] = 0;
if(!logged[playerid])
{
new pname[24];
new mess[500];
GetPlayerName(playerid, pname, sizeof(pname));
format(mess, sizeof(mess), "{FFCC99}Игрок %s был кикнут с сервера. Причина: {FFCC60}Спавн без входа в аккаунт.", pname);
for(new i = 0; i != MAX_PLAYERS; i++) if(admin[i]) SendClientMessage(i, COLOR_DEF2, mess);
kicked[playerid] = 1;
}
if((!avalid[playerid]) && (admin[playerid] > 0))
{
new pname[24];
new mess[500];
GetPlayerName(playerid, pname, sizeof(pname));
format(mess, sizeof(mess), "{FFCC99}Игрок %s был кикнут с сервера. Причина: {FFCC60}Не пройдена процедура [ОВА].", pname);
for(new i = 0; i != MAX_PLAYERS; i++) if(admin[i]) SendClientMessage(i, COLOR_DEF2, mess);
kicked[playerid] = 1;
}
if(!jailed[playerid])
{
if(w1[playerid] != 0) GivePlayerWeapon(playerid, w1[playerid], ammo[playerid]);
if(w2[playerid] != 0) GivePlayerWeapon(playerid, w2[playerid], ammo[playerid]);
if(w3[playerid] != 0) GivePlayerWeapon(playerid, w3[playerid], ammo[playerid]);
if(w4[playerid] != 0) GivePlayerWeapon(playerid, w4[playerid], ammo[playerid]);
if(w5[playerid] != 0) GivePlayerWeapon(playerid, w5[playerid], ammo[playerid]);
if(w6[playerid] != 0) GivePlayerWeapon(playerid, w6[playerid], ammo[playerid]);
}
if(ahouse[playerid] != 1)
{
if(level[playerid] > 3)
{
new rPos = random(sizeof(pSpawns));
SetPlayerPos(playerid, pSpawns[rPos][0], pSpawns[rPos][1], pSpawns[rPos][2]);
}
else
{
new rPos = random(sizeof(nPSpawns));
SetPlayerPos(playerid, nPSpawns[rPos][0], nPSpawns[rPos][1], nPSpawns[rPos][2]);
SendClientMessage(playerid, COLOR_CMD2, "Так как вы новичок на сервере, вы заспавнились в зоне новичков.");
}
}
else
{
SetPlayerPos(playerid, -3604.6121 + random(3), 421.3553 + random(3), 10.6656);
}
if(radio[playerid] < 10)
{
new ramess[1000];
format(ramess, sizeof(ramess), "{E6FFE6}Сейчас играет \"%s\", для отключения используйте {FFCCFF}Меню[Y]->Радио.", radioList[radio[playerid]][1]);
PlayAudioStreamForPlayer(playerid, radioList[radio[playerid]][0]);
SendClientMessage(playerid, COLOR_DEF, ramess);
}
if(oldrelease[playerid] != MOD_RELEASE)
{
OnPlayerCommandText(playerid, "/upd");
oldrelease[playerid] = MOD_RELEASE;
}
SetPlayerSkin(playerid, skin[playerid]);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
new pname[24];
GetPlayerName(playerid, pname, sizeof(pname));
if(logged[playerid])
{
death[playerid]++;
dstatus[playerid] = 1;
kills[killerid]++;
}
else
{
new fkl[500];
format(fkl, sizeof(fkl), "{FFCC99}Игрок {%s}%s{FFCC99} был кикнут. Причина: {00FFFF}Фейк-килл.", pColorsC[ncolor[playerid]], pname);
SendClientMessageToAll(COLOR_DEF, fkl);
kicked[playerid] = 1;
}
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
if(!logged[playerid])
{
SendClientMessage(playerid, COLOR_CMD2, "Вы не вошли в аккаунт!");
return 0;
}
if(muted[playerid])
{
SendClientMessage(playerid, COLOR_CMD2, "У вас мут, вы не можете писать в чат!");
return 0;
}
if(strval(text) == vicval && vicval != -1)
{
new vimess[500];
new pname[24];
GetPlayerName(playerid, pname, sizeof(pname));
format(vimess, sizeof(vimess), "{FFCC99}Игрок {%s}%s {FFCC90}победил в конкурсе! Число было: {00FFFF}%d.", pColorsC[ncolor[playerid]], pname, vicval);
SendClientMessageToAll(COLOR_DEF, vimess);
money[playerid] += vicval;
score[playerid] += 10;
vicval = -1;
return 0;
}
if(text[0] == '*')
{
if(admin[playerid] > 0)
{
new pname[24], message[500];
GetPlayerName(playerid, pname, sizeof(pname));
format(message, sizeof(message), "{FF90FF}[A-чат]{BFBFBF}%s[%d]: {FF704D}%s", pname, playerid, text[1]);
for(new i = 0; i != MAX_PLAYERS; i++) if(admin[i] > 0) SendClientMessage(i, COLOR_DEF, message);
} else SendClientMessage(playerid, COLOR_CMD2, "У вас нет прав для того, чтобы писать в этот чат.");
return 0;
}
if(text[0] == '&')
{
if(vip[playerid])
{
new pname[24], message[500];
GetPlayerName(playerid, pname, sizeof(pname));
format(message, sizeof(message), "{99CCFF}[VIPC]{B3FFD9}%s[%d]: {FFFFCC}%s", pname, playerid, text[1]);
for(new i = 0; i != MAX_PLAYERS; i++) if(vip[i]) SendClientMessage(i, COLOR_DEF, message);
} else SendClientMessage(playerid, COLOR_CMD2, "У вас нет прав для того, чтобы писать в этот чат.");
return 0;
}
new pname[24], message[500];
GetPlayerName(playerid, pname, sizeof(pname));
format(message, sizeof(message), "{BFBFBF}(({%s}%s{%s}: %s{BFBFBF}))", pColorsC[ncolor[playerid]], pname, pColorsC[ccolor[playerid]], text);
if(!SendPlayerBubbleMessage(playerid, message, 20)) SendClientMessage(playerid, COLOR_CMD2, "Никого нет по близости, ваше сообщение никто не увидит.");
return 0;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!logged[playerid])
{
SendClientMessage(playerid, COLOR_DEF, "{FF0000}Вы не вошли в аккаунт!");
return 0;
}
//Мой пьяный бред. Ничего такого. Просто. Новогодняя. Шапка. Шапка, Карл!
if(strcmp("/nycap", cmdtext, true, 6) == 0)
{
if(logged[playerid])
{
if(nycap[playerid] == 0)
{
SetPlayerAttachedObject(playerid, 2, 19064, 2, 0.13, 0.0, 0.0, 0.0, 90.0, 90.0);
SendClientMessage(playerid, COLOR_CMD2, "Вы надели новогоднюю шапку.");
nycap[playerid] = 1;
}
else
{
RemovePlayerAttachedObject(playerid, 2);
DestroyPlayerObject(playerid, 19064);
SendClientMessage(playerid, COLOR_CMD2, "Вы сняли новогоднюю шапку.");
nycap[playerid] = 0;
}
}
return 1;
}
//Маска надевается на затылок и проваливается внутрь головы, но это не страшно ведь это не баг, а фича!
//Сейчас все так носят.
//Ладно, ладно, уговорил.
if(strcmp("/mask", cmdtext, true, 5) == 0)
{
if(logged[playerid])
{
if(mask[playerid] == 0)
{
SendClientMessage(playerid, COLOR_CMD2, "Вы одели маску.");
ApplyAnimation( playerid, "SHOP", "ROB_shifty", 4.1, 0, 1, 1, 0, 0 );
SetPlayerAttachedObject(playerid, 0, 18974, 2, 0.1, 0.03, -0.005, 90.0, 180.0, 90.0);
mask[playerid] = 1;
}
else
{
SendClientMessage(playerid, COLOR_CMD2, "Вы сняли маску.");
ApplyAnimation( playerid, "SHOP", "ROB_shifty", 4.1, 0, 1, 1, 0, 0 );
RemovePlayerAttachedObject(playerid, 0);
DestroyPlayerObject(playerid, 18974);
mask[playerid] = 0;
}
}
return 1;
}
if(strcmp("/kick", cmdtext, true, 5) == 0)
{
if(admin[playerid] > 1 || IsPlayerAdmin(playerid))
{
new kmess[2000];
new pId = -1;
new reason[1000];
new tmp[255];
new cc = 0;
new aname[24];
new pname[24];
if(getArgs(cmdtext, 2) < 0)
{
SendClientMessage(playerid, COLOR_CMD2, "Вы не указали неверное количество опций.");
SendClientMessage(playerid, COLOR_SOFTGREEN, "Использование: /kick [ID] [Причина].");
return 1;
}
for(new i = getArgs(cmdtext, 1); i != getArgs(cmdtext, 2) - 1; i++)
{
tmp[cc] = cmdtext[i];
cc++;
}
if(strlen(tmp) < 1)
{
SendClientMessage(playerid, COLOR_CMD2, "Вы указали неверный ID игрока.");
SendClientMessage(playerid, COLOR_SOFTGREEN, "Использование: /kick [ID] [Причина].");
return 1;
}
pId = strval(tmp);
if(strlen(cmdtext[getArgs(cmdtext, 2)]) < 1)
{
SendClientMessage(playerid, COLOR_CMD2, "Вы указали некорректную причину.");
SendClientMessage(playerid, COLOR_SOFTGREEN, "Использование: /kick [ID] [Причина].");
return 1;
}
strcat(reason, cmdtext[getArgs(cmdtext, 2)]);
if(pId == INVALID_PLAYER_ID)
{
SendClientMessage(playerid, COLOR_CMD2, "Этого игрока нет на сервере.");
return 1;
}
if((admin[pId] > admin[playerid] && IsPlayerAdmin(playerid) == 0) || IsPlayerAdmin(pId))
{
SendClientMessage(playerid, COLOR_CMD2, "Вы не можете кикнуть администратора выше вас по уровню.");
return 1;
}
GetPlayerName(playerid, aname, sizeof(aname));
GetPlayerName(pId, pname, sizeof(pname));
format(kmess, sizeof(kmess), "{DF9090}Администратор {%s}%s {DF9090}кикнул игрока {%s}%s{DF9090}. Причина: %s", pColorsC[ncolor[playerid]], aname, pColorsC[ncolor[pId]], pname, reason);
SendClientMessageToAll(COLOR_DEF, kmess);
kicked[pId] = 1;
} else SendClientMessage(playerid, COLOR_CMD2, "У вас нет полномочий для использования этой команды.");
return 1;
}
if(strcmp("/me", cmdtext, true, 3) == 0)
{
if(strlen(cmdtext) < 4)
{
SendClientMessage(playerid, COLOR_CMD2, "Вы не ввели сообщение.");
SendClientMessage(playerid, COLOR_SOFTGREEN, "Использование: /me [Действие].");
return 1;
}
new pname[24];
new memess[2000];
GetPlayerName(playerid, pname, sizeof(pname));
format(memess, sizeof(memess), "{%s}%s {FFCCCC}%s", pColorsC[ccolor[playerid]], pname, cmdtext[4]);
SendPlayerBubbleMessage(playerid, memess, 10);
return 1;
}
if(strcmp("/boardad", cmdtext, true, 8) == 0)
{
if(10000 <= money[playerid])
{
if(strlen(cmdtext) < 9)
{
SendClientMessage(playerid, 0xFF000090, "Вы не написали текст!");
return 1;
}
new Float: Ppos[3];
new text3D[2000];
new pname[24];
GetPlayerName(playerid, pname, sizeof(pname));
GetPlayerPos(playerid, Ppos[0], Ppos[1], Ppos[2]);
format(text3D, sizeof(text3D), "{9090FF}Объявление от игрока: {%s}%s{FF0000}(%d).\n\n{00FF00}%s", pColorsC[ncolor[playerid]], pname, playerid, cmdtext[9]);
if(P3DT[playerid]) Delete3DTextLabel(P3DT[playerid]);
P3DT[playerid] = Create3DTextLabel(text3D, COLOR_DEF, Ppos[0], Ppos[1], Ppos[2], 40, GetPlayerVirtualWorld(playerid), 1);
SendClientMessage(playerid, COLOR_DEF, "{00FF00}Вы успешно создали объявление {FF0000}(-10000$).");
money[playerid] -= 10000;
} else SendClientMessage(playerid, COLOR_CMD2, "У вас недостаточно денег {FFFF90}(Требуется 10000$).");
return 1;
}
if(strcmp("/selldrugs", cmdtext, true, 10) == 0)
{
if(strlen(cmdtext) < 12)
{
SendClientMessage(playerid, 0xFF0000FF, "Вы не указали игрока!");
return 1;
}
new plr = strlen(cmdtext[12]);
if(logged[plr] && plr != INVALID_PLAYER_ID)
{
if(abs(playerToPlayerRadius(playerid, plr)) < 4)
{
tempp[plr] = playerid;
tempp[playerid] = plr;
ShowPlayerDialog(playerid, DIALOG_SELLDRUG1, DIALOG_STYLE_INPUT, "{00FF00}Продажа наркотиков.", "{FF0000}Введите кол-во продаваемых накротиков {FFFF90}(В граммах).", "OK", "Отмена");
} else SendClientMessage(playerid, COLOR_DEF, "{FF0000}Этот игрок слишком далеко от вас!");
} else SendClientMessage(playerid, COLOR_DEF, "{FF0000}Этот игрок не вошёл в аккаунт!");
return 1;
}
if(strcmp("/velo", cmdtext, true, 5) == 0)
{
if(admin[playerid] > 2)
{
if(strlen(cmdtext) < 6)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Вы не указали игрока!");
return 1;
}
new plr;
new Float: x, Float: y, Float: z;
plr = strval(cmdtext[6]);
if(plr != INVALID_PLAYER_ID && logged[plr])
{
if(GetPlayerState(plr) == PLAYER_STATE_DRIVER)
{
GetVehicleVelocity(GetPlayerVehicleID(plr), x, y, z);
SetVehicleVelocity(GetPlayerVehicleID(plr), x * 4, y * 4, z);
} else SendClientMessage(playerid, COLOR_CMD2, "Этот игрок не за рулём!");
} else SendClientMessage(playerid, COLOR_CMD2, "Этот игрок не вошёл в аккаунт!");
} else SendClientMessage(playerid, COLOR_CMD2, "У вас нет прав для использования этой команды!");
return 1;
}
if(strcmp("/saya", cmdtext, true, 5) == 0)
{
if(admin[playerid])
{
if(strlen(cmdtext) < 6)
{
SendClientMessage(playerid, COLOR_DEF, "{FF0000}Вы не написали сообщение.");
return 1;
}
new aname[24];
new amess[2000];
GetPlayerName(playerid, aname, sizeof(aname));
format(amess, sizeof(amess), "{DF9090}Администратор {%s}%s{DF9090}: %s", pColorsC[ncolor[playerid]], aname, cmdtext[6]);
SendClientMessageToAll(COLOR_DEF, amess);
} else SendClientMessage(playerid, COLOR_CMD2, "У вас недостаточно прав для использования этой команды");
return 1;
}
if(strcmp("/gmx", cmdtext, true, 4) == 0)
{
if(admin[playerid] > 2 || IsPlayerAdmin(playerid))
{
if(IsPlayerAdmin(playerid))
{
SendClientMessageToAll(COLOR_DEF, "{FF0000}=============================================================================");
SendClientMessageToAll(COLOR_DEF, "{FF0000}=============================================================================");
SendClientMessageToAll(COLOR_DEF, "{FF0000}>> {00FF00}ВНИМАНИЕ!!!{FF0000}");
SendClientMessageToAll(COLOR_DEF, "{FF0000}>> {CCCCFF}РЕСТАРТ СЕРВЕРА{FF0000}");
SendClientMessageToAll(COLOR_DEF, "{FF0000}=============================================================================");
SendClientMessageToAll(COLOR_DEF, "{FF0000}=============================================================================");
}
else
{
new aname[24];
new amess[500];
GetPlayerName(playerid, aname, sizeof(aname));
format(amess, sizeof(amess), "{FF0000}>> {AFAFAF}Рестарт совершил администратор {%s}%s.", pColorsC[ncolor[playerid]], aname);
SendClientMessageToAll(COLOR_DEF, "{FF0000}=============================================================================");
SendClientMessageToAll(COLOR_DEF, "{FF0000}=============================================================================");
SendClientMessageToAll(COLOR_DEF, "{FF0000}>> {00FF00}ВНИМАНИЕ!!!{FF0000}");
SendClientMessageToAll(COLOR_DEF, "{FF0000}>> {CCCCFF}РЕСТАРТ СЕРВЕРА{FF0000}");
SendClientMessageToAll(COLOR_DEF, amess);
SendClientMessageToAll(COLOR_DEF, "{FF0000}=============================================================================");
SendClientMessageToAll(COLOR_DEF, "{FF0000}=============================================================================");
}
SetTimer("restartv", 5000, 0);
}
else SendClientMessage(playerid, COLOR_CMD2, "У вас недостаточно прав для использования этой команды");
return 1;
}
if(strcmp("/switchahouse", cmdtext, true, 13) == 0)
{
if(IsPlayerAdmin(playerid))
{
new paid = strval(cmdtext[14]);
if(paid != INVALID_PLAYER_ID && logged[paid])
{
new aname[24];
new pname[24];
new amess[2000];
GetPlayerName(playerid, aname, sizeof(aname));
GetPlayerName(paid, pname, sizeof(pname));
if(ahouse[paid])
{
ahouse[paid] = 0;
format(amess, sizeof(amess), "{DF9090}Администратор {%s}%s[%d] {DF9090}закрыл доступ к ЗЗ игроку {%s}%s.", pColorsC[ccolor[playerid]], aname, playerid, pColorsC[ccolor[paid]], pname);
SendClientMessageToAll(COLOR_DEF, amess);
}
else
{
ahouse[paid] = 1;
format(amess, sizeof(amess), "{DF9090}Администратор {%s}%s {DF9090}открыл доступ к ЗЗ {DF9090}игроку {%s}%s.", pColorsC[ccolor[playerid]], aname, pColorsC[ccolor[paid]], pname);
SendClientMessageToAll(COLOR_DEF, amess);
}
}
else SendClientMessage(playerid, COLOR_CMD2, "ID игрока неправильный, или этот игрок не вошёл в аккаунт.");
} else SendClientMessage(playerid, COLOR_CMD2, "У вас нет полномочий для использования этой команды.");
return 1;
}
if(strcmp("/settime", cmdtext, true, 8) == 0)
{
if(admin[playerid])
{
new newtime;
if(strlen(cmdtext) < 9)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Вы не указали время!");
return 1;
}
newtime = strval(cmdtext[9]);
if(newtime > -1 && newtime < 24)
{
new aname[24];
new tmess[1000];
GetPlayerName(playerid, aname, sizeof(aname));
format(tmess, sizeof(tmess), "{DF9090}Администратор {%s}%s[%d] {DF9090}сменил время на %d:00.", pColorsC[ncolor[playerid]], aname, playerid, newtime);
SendClientMessageToAll(COLOR_DEF, tmess);
for(new i = 0; i != MAX_PLAYERS; i++) SetPlayerTime(i, newtime, 0);
} else SendClientMessage(playerid, COLOR_CMD2, "Вы ввели неправильное время.");
} else SendClientMessage(playerid, COLOR_CMD2, "У вас нет полномочий для использования этой команды.");
return 1;
}
if(strcmp("/setweather", cmdtext, true, 11) == 0)
{
if(admin[playerid])
{
new newweather;
if(strlen(cmdtext) < 12)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Вы не указали ID!");
return 1;
}
newweather = strval(cmdtext[12]);
if(newweather > -1 && newweather < 2009)
{
new aname[24];
new tmess[1000];
GetPlayerName(playerid, aname, sizeof(aname));
format(tmess, sizeof(tmess), "{DF9090}Администратор {%s}%s[%d] {DF9090}сменил погоду на %d.", pColorsC[ncolor[playerid]], aname, playerid, newweather);
SendClientMessageToAll(COLOR_DEF, tmess);
for(new i = 0; i != MAX_PLAYERS; i++) SetPlayerWeather(i, newweather);
} else SendClientMessage(playerid, COLOR_CMD2, "Вы ввели неправильный id погоды.");
} else SendClientMessage(playerid, COLOR_CMD2, "У вас нет полномочий для использования этой команды.");
return 1;
}
if(strcmp("/upd", cmdtext, true, 4) == 0)
{
Info(playerid, sUpdate);
return 1;
}
if(strcmp("/sys", cmdtext, true, 4) == 0)
{
if(admin[playerid] > 2 || IsPlayerAdmin(playerid))
{
ShowPlayerDialog(playerid, DIALOG_SYSMESS, DIALOG_STYLE_INPUT, "{FF00FF}Системное сообщение.", "{FFFF90}Введите текст системного сообщения.", "Ok", "Отмена");
} else SendClientMessage(playerid, COLOR_CMD2, "У вас нет полномочий для использования этой команды.");
return 1;
}
if(strcmp("/admins", cmdtext, true, 4) == 0)
{
new aonline = 0;
for(new i = 0; i != MAX_PLAYERS; i++) if(admin[i]) aonline++;
if(aonline > 0)
{
new admname[500];
new aname[24];
SendClientMessageToAll(COLOR_DEF2, "Администраторы онлайн:");
for(new i = 0; i != MAX_PLAYERS; i++)
{
if(admin[i])
{
GetPlayerName(i, aname, sizeof(aname));
format(admname, sizeof(admname), "{FFCC90}Администратор {%s}%s[%d]. {FFCC90}Уровень: %d.", pColorsC[ncolor[i]], aname, i, admin[i]);
SendClientMessageToAll(COLOR_DEF, admname);
}
}
}else SendClientMessageToAll(COLOR_ADMIN, "В данный момент администраторов онлайн нет.");
return 1;
}
if(strcmp("/aad", cmdtext, true, 4) == 0)
{
if(admin[playerid] > 7)
{
for(new i = 0; i != MAX_PLAYERS; i++) if(logged[i]) Info(i, cmdtext[5]);
}else SendClientMessage(playerid, COLOR_CMD2, "У вас нет прав для того, чтобы использовать эту команду.");
return 1;
}
if(strcmp("/car", cmdtext, true, 4) == 0)
{
if(strlen(cmdtext) < 5)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Вы не указали ID!");
return 1;
}
new cid = strval(cmdtext[5]);
if(cid > 399 && cid < 612)
{
new Float: pPos[3];
new vid;
GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
vid = CreateVehicle(cid, pPos[0], pPos[1], pPos[2], carcolor[playerid][0], carcolor[playerid][1], 0, 0);
PutPlayerInVehicle(playerid, vid, 0);
} else SendClientMessage(playerid, 0xFFFFFFFF, "Вы указали неверный ID!");
return 1;
}
if(strcmp("/chc1", cmdtext, true, 5) == 0)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(strlen(cmdtext) < 6)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Вы не указали ID!");
return 1;
}
new vid;
new cid = strval(cmdtext[6]);
new c1, c2;
vid = GetPlayerVehicleID(playerid);
if(cid > -1 && cid < 256)
{
GetVehicleColor(vid, c1, c2);
ChangeVehicleColor(vid, cid, c2);
} else SendClientMessage(playerid, 0xFFFFFFFF, "Вы указали неверный ID!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Вы не в машине!");
return 1;
}
if(strcmp("/chc2", cmdtext, true, 5) == 0)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(strlen(cmdtext) < 6)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Вы не указали ID!");
return 1;
}
new vid;
new cid = strval(cmdtext[6]);
new c1, c2;
vid = GetPlayerVehicleID(playerid);
if(cid > -1 && cid < 256)
{
GetVehicleColor(vid, c1, c2);
ChangeVehicleColor(vid, c1, cid);
} else SendClientMessage(playerid, 0xFFFFFFFF, "Вы указали неверный ID!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Вы не в машине!");
return 1;
}
//ЕЕЕЕ. КОСТЫЛЬ! ЛОВИ ЕГО, ПОКА ОН НЕ УБЕЖАЛ! ЭХ. ПОЗДНО.
if(strcmp("/cc", cmdtext, true, 3) == 0)
{
if(admin[playerid] > 2 || IsPlayerAdmin(playerid))
{
for(new i = 0; i != 200; i++) SendClientMessageToAll(COLOR_DEF, " ");
if(IsPlayerAdmin(playerid) && admin[playerid] < 1)
{
SendClientMessageToAll(COLOR_CMD, "Чат был очищен сервером.");
return 1;
}
else
{
new cmess[500];
new aname[24];
GetPlayerName(p