Laine_prikol

errored gamemode

Jun 10th, 2017
133
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Register system: Y_Less, Dracoblue and Kush
  2. //Gamemode: Laine_prikol, kotik_prikol
  3. #include <a_samp>
  4. #include <core>
  5. #include <YSI\y_ini>
  6. #include <zcmd>
  7. #include <sscanf>
  8. #include <mxini>
  9. #define DIALOG_REGISTER 1
  10. #define DIALOG_LOGIN 2
  11. #define DIALOG_SUCCESS_1 3
  12. #define DIALOG_SUCCESS_2 4
  13. #define PATH "/Users/%s.ini"
  14. #define COL_MESSAGE "{FFFFFF}"
  15. #define COL_ERROR "{F81414}"
  16. #define COL_SUSCESS "{00FF22}"
  17. #define COL_MESSAGE2 "{00CED1}"
  18. #define COLOR_RED 0xFF0000FF
  19. #define COLOR_GREEN 0x008200FF
  20. #define COLOR_BLUE 0x0000FFFF
  21. #define COLOR_GREY 0xAAAAAAFF
  22. #define COLOR_YELLOW 0xFFFF00FF
  23. #define COLOR_ORANGE 0xFFC800FF
  24. #define SOUND_SUCSSES 1058
  25. #define SOUND_ERROR 1085
  26. #define SOUND_MESSAGE 30802
  27. #define SOUND_MESSAGE2 21001
  28. #define SOUND_BLEEDING 1137
  29. #define COLOR_FADE1 0xE6E6E6E6
  30. #define COLOR_FADE2 0xC8C8C8C8
  31. #define COLOR_FADE3 0xAAAAAAAA
  32. #define COLOR_FADE4 0x8C8C8C8C
  33. #define COLOR_FADE5 0x6E6E6E6E
  34.  
  35. #define MAX_HOUSES 100 // Этот будет отвечать за максимально кол-во домов
  36. #define D_H_CREATE_DESC 189 // Этот за диалог создание дома (Шаг 1)
  37. #define D_H_CREATE_PRICE 190 // Диалог создание дома (Шаг 2)
  38. #define D_H_CREATE_INT 191 // Диалог создание дома (Шаг 3)
  39. #define D_H_CREATE_CONF 192 // Диалог создание дома (Подтверждение)
  40.  
  41. #pragma tabsize 0
  42. #define eGivePlayerMoney(%0,%1); SetPVarInt(%0,"Cash",GetPVarInt(%0,"Cash")+%1); ResetPlayerMoney(%0); GivePlayerMoney(%0,GetPVarInt(%0,"Cash"));
  43. #define eGetPlayerMoney(%0) GetPVarInt(%0,"Cash")
  44. enum pInfo
  45. {
  46.     pPass,
  47.     pCash,
  48.     pAdmin,
  49.     pKills,
  50.     plices,
  51.     pmaterials,
  52.     pheals,
  53.     pfood,
  54.     pskin,
  55.     pfirst,
  56.     pmashina,
  57.     pcolor1,
  58.     pcolor2,
  59.     plvl,
  60.     pexp,
  61.     ppaydaymoney,
  62.     pbank,
  63.     pterminal,
  64.     photel,
  65.     pschool,
  66.     pwork,
  67.     pworkedmoney,
  68.     pwarns,
  69.     pgruz,
  70.     pmute,
  71.     pfaction,
  72.     prank,
  73.     phunger,
  74.     psleepless,
  75.     pwood,
  76.     pbandage,
  77.     float:phomeX,
  78.     float:phomeY,
  79.     float:phomeZ,
  80.     pint,
  81.     pDeaths
  82. }
  83.  
  84. enum hiInfo
  85. {
  86.         Float:hiX,Float:hiY,Float:hiZ,hiInt, // Позиции интерьера x,y,z и его id
  87.         hiName[15], // название интерьера
  88. }
  89. new HInts[][hiInfo]={ // 2-х мерный массив + в нем мы сразу храним информацию об интерьерах, как вы видите, по порядку: координаты x,y,z,id интерьера,"Название"
  90.         {318.564971,1118.209960,1083.882812,5,"Crack den"},
  91.         {2269.4453,-1210.2952,1047.5625,10,"Hashbury House"},
  92.         {2496.2676,-1693.8955,1014.7422,3,"Johnsons House"},
  93.         {1299.14,-794.77,1084.00,5,"Madd Doggs M."},
  94.         {2260.3711,-1135.7345,1050.6328,10,"R.B.M. Room"},
  95.         {2365.6023,-1133.6688,1050.8750,8,"V. B. House"},
  96.         {1302.519897,-1.787510,1001.028259,18,"Warehouse 2"},
  97.         {2324.419921,-1145.568359,1050.710083,12,"Un. safe house"},
  98.         {2496.6,-1696.55,1014.74,3,"med int"},
  99.         {223.043991,1289.259888,1082.199951,1,"med int2"},
  100.         {2260.76,-1210.45,1049.02,10,"small int"},
  101.         {2233.6919,-1112.8107,1050.8828,5,"small int"},
  102.         {76.632553,-301.156829,1.578125,0,"Blueberry"}
  103.  
  104. };
  105. enum hInfo
  106. {
  107.         hDesc[128], // Данный массив будет использования для хранения описания дома
  108.         hOwner[MAX_PLAYER_NAME], // Этот для хранения имени владельца
  109.         Float:hX,Float:hY,Float:hZ, // Координаты входа в дом (x,y,z)
  110.         hInterior, // Храним ПОРЯДКОВЫЙ ид интерьера дома (об этом я расскажу позже)
  111.         hVirtWorld, // Виртуальный мир для дома (это позволяет создавать множество домов с одинаковыми интерьерами)
  112.         hPrice, // Цена дома
  113.         hLock, // Закрыт ли дом или нет
  114.         hPick, // Пикап дома
  115.         Text3D:hText // 3D текст с информацией о доме
  116. };
  117.  
  118. new House[MAX_HOUSES][hInfo];
  119. new m_h; // Будет использоваться для подсчета точного количества созданных домов
  120. new STR[158]; // Массив, для редактирования строк (создаю 1 глобальный чтобы не создавать в каждой функции свой)
  121.  
  122. new PlayerInfo[MAX_PLAYERS][pInfo];
  123. forward LoadUser_data(playerid,name[],value[]);
  124. public LoadUser_data(playerid,name[],value[])
  125.  
  126. {
  127.     INI_Int("Password",PlayerInfo[playerid][pPass]);
  128.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  129.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  130.     INI_Int("Kills",PlayerInfo[playerid][pKills]);
  131.     INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  132.     INI_Int("Licenses",PlayerInfo[playerid][plices]);
  133.     INI_Int("hp",PlayerInfo[playerid][pheals]);
  134.     INI_Int("skin",PlayerInfo[playerid][pskin]);
  135.     INI_Int("Food",PlayerInfo[playerid][pfood]);
  136.     INI_Int("first",PlayerInfo[playerid][pfirst]);
  137.     INI_Int("mashina",PlayerInfo[playerid][pmashina]);
  138.     INI_Int("color1",PlayerInfo[playerid][pcolor1]);
  139.     INI_Int("color2",PlayerInfo[playerid][pcolor2]);
  140.     INI_Int("lvl",PlayerInfo[playerid][plvl]);
  141.     INI_Int("exp",PlayerInfo[playerid][pexp]);
  142.     INI_Int("paydaymoney",PlayerInfo[playerid][ppaydaymoney]);
  143.     INI_Int("bank",PlayerInfo[playerid][pbank]);
  144.     INI_Int("terminal",PlayerInfo[playerid][pterminal]);
  145.     INI_Int("hotel",PlayerInfo[playerid][photel]);
  146.     INI_Int("school",PlayerInfo[playerid][pschool]);
  147.     INI_Int("work",PlayerInfo[playerid][pwork]);
  148.     INI_Int("workedmoney",PlayerInfo[playerid][pworkedmoney]);
  149.     INI_Int("warns",PlayerInfo[playerid][pwarns]);
  150.     INI_Int("gruz",PlayerInfo[playerid][pgruz]);
  151.     INI_Int("mute",PlayerInfo[playerid][pmute]);
  152.     INI_Int("faction",PlayerInfo[playerid][pfaction]);
  153.     INI_Int("rank",PlayerInfo[playerid][prank]);
  154.     INI_Int("sleepless",PlayerInfo[playerid][psleepless]);
  155.     INI_Int("hunger",PlayerInfo[playerid][phunger]);
  156.     INI_Int("bandage",PlayerInfo[playerid][pbandage]);
  157.     INI_Int("wood",PlayerInfo[playerid][pwood]);
  158.     INI_Int("materials",PlayerInfo[playerid][pmaterials]);
  159.     INI_Float("phomeX",PlayerInfo[playerid][phomeX]);
  160.     INI_Float("phomeY",PlayerInfo[playerid][phomeY]);
  161.     INI_Float("phomeZ",PlayerInfo[playerid][phomeZ]);
  162.     INI_Int("pint",PlayerInfo[playerid][pint]);
  163.     return 1;
  164. }
  165. stock UserPath(playerid)
  166. {
  167.     new string[128],playername[MAX_PLAYER_NAME];
  168.     GetPlayerName(playerid,playername,sizeof(playername));
  169.     format(string,sizeof(string),PATH,playername);
  170.     return string;
  171. }
  172. new pickuparenda;
  173. new pickuparenda1;
  174. new pickuparenda2;
  175. new pickuprecolor1;
  176. new pickuprecolor2;
  177. new pickuprecolor3;
  178. new bankomat1;
  179. new bankomat2;
  180. new bankomat3;
  181. new schoolcar;
  182. new bool:onCheck[MAX_PLAYERS];
  183. new bool:pAnimation[MAX_PLAYERS];
  184. new islogged[MAX_PLAYERS];
  185. new picupGruz;
  186. new picupGruzEnd;
  187. new factionlevel1;
  188. new factionlevel2;
  189. new factionlevel3;
  190. new Materials1;
  191. new Materials2;
  192. new Materials3;
  193. new FactionMoney1;
  194. new FactionMoney2;
  195. new FactionMoney3;
  196. new gTeam[MAX_PLAYERS];
  197. new Mask[MAX_PLAYERS];
  198. new timerapply[MAX_PLAYERS];
  199. new bool:ended[MAX_PLAYERS];
  200. new spawnedcars[MAX_PLAYERS];
  201. forward message();
  202. forward schoolcartimer();
  203. forward OnCheatDetected(playerid, ip_address[], type, code);
  204. forward DelayedBan(playerid);
  205. forward DelayedKick(playerid);
  206. forward payday();
  207. forward hunger(playerid);
  208. forward setexp(playerid);
  209. forward setmoney(playerid,moneys);
  210. forward ProxDetector(Float:radi,playerid, string[],col1,col2,col3,col4,col5);
  211. forward SendTeamMessage(color,const string[], factionid);
  212. forward Applytimer(playerid);
  213. forward ApplyFoodtimer(playerid);
  214. forward BleedingDamage(playerid);
  215. /*Credits to Dracoblue*/
  216. stock udb_hash(buf[]) {
  217.     new length=strlen(buf);
  218.     new s1 = 1;
  219.     new s2 = 0;
  220.     new n;
  221.     for (n=0; n<length; n++)
  222.     {
  223.        s1 = (s1 + buf[n]) % 65521;
  224.        s2 = (s2 + s1)     % 65521;
  225.     }
  226.     return (s2 << 16) + s1;
  227. }
  228.  
  229. main()
  230. {
  231.         print("\n----------------------------------");
  232.         print("            Laine Mini-RPG          ");
  233.         print("----------------------------------\n");
  234. }
  235.  
  236. /*
  237. Ид фракций
  238. 10 - Groove
  239. 9 - Ballas
  240. 8 - Vagos
  241. 7 - SFPD
  242. 6 - LSPD
  243. 5 - Army
  244. 4 - News
  245. */
  246.  
  247. public OnGameModeInit()
  248. {
  249. SetGameModeText("MINI-RPG");
  250. #include mapping.txt // Загрузка маппинга
  251. DisableInteriorEnterExits();
  252. pickuparenda = CreatePickup(1318, 23, -1965.9395, 293.7788, 35.4688, -1);
  253. pickuparenda1 = CreatePickup(1318, 23, 556.9954,-1293.3118,17.2482, -1);
  254. pickuprecolor1 = CreatePickup(1318, 23, -1900.2043,276.8611,41.0391, -1);
  255. pickuprecolor2 = CreatePickup(1318, 23, 484.7113,-1733.4689,11.0752, -1);
  256. pickuprecolor3 = CreatePickup(1318, 23, 717.7277, -463.3733, 16.3437, -1);
  257. bankomat1 = CreatePickup(1318, 23, -1982.5986,134.2874,27.6875, -1);
  258. bankomat2 = CreatePickup(1318, 23, 2840.5991,1282.4888,11.3906, -1);
  259. bankomat3 = CreatePickup(1318, 23, 1766.6866,-1905.3402,13.5676, -1);
  260. schoolcar = CreatePickup(1239, 23, -2026.4131,-102.0660,35.1641, -1);
  261. picupGruz = CreatePickup(1318, 2, -476.6109,-535.3399,25.5296, -1);
  262. picupGruzEnd = CreatePickup(1318, 2, -154.7515,-288.1488,3.9053, -1);
  263. DisableInteriorEnterExits();
  264. SetTimer("payday", 1800000, true);
  265. SetTimer("hunger", 300000, true);
  266. LoadHouses();
  267. return 1;
  268. }
  269.  
  270. stock Name(playerid) // Функция для проверки ника
  271. {
  272.         new Nm[MAX_PLAYER_NAME];
  273.         GetPlayerName(playerid,Nm,24);
  274.         return Nm;
  275. }
  276.  
  277.  
  278. stock SaveHouseAmount() // Функция для сохранения точного кол-во домов (понадобится для создания домов)
  279. {
  280.     new f=ini_openFile("houses/m_h.ini"); // Открываем файл
  281.     ini_setInteger(f,"Amount",m_h); // Записываем значение переменной m_h в ключ Amount
  282.         return ini_closeFile(f); // Закрываем файл
  283. }
  284.  
  285. stock LoadHouses()
  286. {
  287.         if(!fexist("houses/m_h.ini"))return print("[Ошибка] Файл houses/m_h.ini не найден"); // Проверяем наличие файла в scriptfiles/houses (если не найден, в лог сервера выдаст ошибку)
  288.         new f=ini_openFile("houses/m_h.ini"); // открываем файл
  289.         ini_getInteger(f,"Amount",m_h); // получаем точное значение созданных домов
  290.         ini_closeFile(f); // закрываем этот файл
  291.         if(!fexist("houses/houses.ini"))return print("[Ошибка] Файл houses/houses.ini не найден"); // проверяем наличие файла houses.ini в той же директории.
  292.         f=ini_openFile("houses/houses.ini"); // открываем его
  293.         new str[8]; // создаем небольшой массив для дальнейшего форматирования строки (ключа в файле)
  294.         for(new h=1;h<=m_h;h++) // запускаем цикл
  295.         {
  296.                 format(str,sizeof(str),"ID %d",h); // форматируем строку для ключа в файле
  297.                 ini_getString(f,str,STR); // получаем данные в виде строки
  298.         sscanf(STR,"p<|>s[32]s[24]fffiiii",House[h][hDesc],House[h][hOwner],House[h][hX],House[h][hY],House[h][hZ],House[h][hInterior],House[h][hVirtWorld],House[h][hPrice],House[h][hLock]); // распределяем данные по переменным (данные идут через символ "|", пример: Dom 1|2.612|213.132|2.321")
  299.         if(!strcmp(House[h][hOwner],"None",true)) // Сравниваем строки если владелец дома == None значит дом не куплен (в дальнейшем при создании владелец дома будет равен None)
  300.                 {
  301.                         House[h][hPick]=CreatePickup(1273,23,House[h][hX],House[h][hY],House[h][hZ],0); // Создаем пикап дома
  302.                         format(STR,128,"[Дом продается]\nКласс: %s\nЦена: $%d",House[h][hDesc],House[h][hPrice]);
  303.  // Форматируем строку для 3D текста
  304.                         House[h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,House[h][hX],House[h][hY],House[h][hZ]+0.5,10.0,0,0); // Создаем 3D текст
  305.                 }
  306.                 else // Иначе, если владелец дома не равен None, значит дом куплен
  307.                 {
  308.                         House[h][hPick]=CreatePickup(1239,23,House[h][hX],House[h][hY],House[h][hZ],0); // Создаем пикап дома (модель пикапа уже другая)
  309.                         format(STR,128,"[Дом]\nОписание: %s\nВладелец: %s",House[h][hDesc],House[h][hOwner]); // форматируем строку
  310.                         House[h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,House[h][hX],House[h][hY],House[h][hZ]+0.5,10.0,0,0); // И создаем 3D текст с информацией
  311.                 }
  312.         }
  313.         ini_closeFile(f); // Закрываем фай
  314.         return printf("Loaded %d houses",m_h); // В лог чата возвращаем кол-во загруженных домов
  315. }
  316.  
  317. stock SaveHouse(h) // Функция для сохранения данных дома в файл
  318. {
  319.         new f=ini_openFile("houses/houses.ini"); // открываем файл
  320.         new str[8]; // создаем массив для форматирования строки (для ключа, как в предыдущем случае)
  321.         format(str,8,"ID %d",h); // форматируем строку
  322.         format(STR,sizeof(STR),"%s|%s|%f|%f|%f|%d|%d|%d|%d", House[h][hDesc],House[h][hOwner],House[h][hX],House[h][hY],House[h][hZ],House[h][hInterior],House[h][hVirtWorld],House[h][hPrice],House[h][hLock]); // снова форматируем строку (уже с информацией о доме); вот тут кстати, вы я думаю заметили, информация через "|"
  323.         ini_setString(f,str,STR); // записываем данные
  324.         ini_closeFile(f); // закрываем файл
  325.         return 1;
  326. }
  327.  
  328. stock UpdateHouse(h) // Эта функция для обновления дома (например при его покупке / продаже мы будем ее использовать)
  329. {
  330.         DestroyPickup(House[h][hPick]); // Удаляем пикап
  331.     if(!strcmp(House[h][hOwner],"None",true)) // Опять проверяем на владельца дома, если его нет тогда:
  332.     {
  333.         House[h][hPick]=CreatePickup(1273,23,House[h][hX],House[h][hY],House[h][hZ],0); // пикап
  334.                 format(STR,128,"[Дом продается]\nОписание: %s\nЦена: $%d",House[h][hDesc],House[h][hPrice]);
  335.  // форматируем строку
  336.                 Update3DTextLabelText(House[h][hText],0xFFFFFFFF,STR); // ОБНОВЛЯЕМ ранее созданный 3D текст (который создался при загрузке дома)
  337.     }
  338.     else // если есть владелец (купили дом)
  339.     {
  340.         House[h][hPick]=CreatePickup(1239,23,House[h][hX],House[h][hY],House[h][hZ],0); // пикап
  341.                 format(STR,128,"[Дом]\nОписание: %s\nВладелец: %s",House[h][hDesc],House[h][hOwner]); // форматируем строку
  342.                 Update3DTextLabelText(House[h][hText],0xFFFFFFFF,STR); // обновляем 3D текст
  343.     }
  344. }
  345.  
  346.  
  347.  
  348. public payday()
  349. {
  350. for(new i = 0; i < MAX_PLAYERS; i++)
  351. {
  352. // level 1
  353. if (PlayerInfo[i][pfaction] == 10 || factionlevel1 > 1)
  354. {
  355. PlayerInfo[i][pbank] += factionlevel1*PlayerInfo[i][prank]*PlayerInfo[i][plvl];
  356. }
  357. if (PlayerInfo[i][pfaction] == 9 || factionlevel2 > 1)
  358. {
  359. PlayerInfo[i][pbank] += factionlevel2*PlayerInfo[i][prank]*PlayerInfo[i][plvl];
  360. }
  361. if (PlayerInfo[i][pfaction] == 8 || factionlevel3 > 1)
  362. {
  363. PlayerInfo[i][pbank] += factionlevel3*PlayerInfo[i][prank]*PlayerInfo[i][plvl];
  364. }
  365. PlayerInfo[i][pbank] += PlayerInfo[i][ppaydaymoney];
  366.  
  367. SendClientMessage(i,COLOR_GREEN, "---- Зарплата ----");
  368. new string[128];
  369. format(string,128,"Зарплата: %d$ Уровень: %d Счёт в банке: %d$", PlayerInfo[i][ppaydaymoney], PlayerInfo[i][plvl], PlayerInfo[i][pbank]);
  370. SendClientMessage(i,-1, string);
  371. PlayerInfo[i][plvl]++;
  372. if (PlayerInfo[i][psleepless] == 0)
  373. {
  374. SendClientMessage(i,COLOR_RED, "ВНМАНИЕ: ВЫ УСТАЛИ, ЛОЖИТЕСЬ СПАТЬ! /sleep");
  375. PlayerInfo[i][phunger] -= 50;
  376.     if (PlayerInfo[i][psleepless] == 0)
  377.     {
  378.     SendClientMessage(i,COLOR_RED, "ВЫ СЛИШКОМ ГОЛОДНЫ!");
  379.     SetPlayerHealth(i, -30.0);
  380.     }
  381. }
  382. }
  383. }
  384. public SendTeamMessage(color,const string[], factionid)
  385. {
  386. for(new i = 0; i < MAX_PLAYERS; i++)
  387. {
  388. if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][pfaction] == factionid) SendClientMessage(i, color, string);
  389. }
  390. return 1;
  391. }
  392.  
  393.  
  394. public BleedingDamage(playerid)
  395. {
  396.     if(PlayerInfo[playerid][pint] == 1)
  397.     {
  398.     PlayerPlaySound(playerid, SOUND_BLEEDING, 0, 0, 0);
  399.     GameTextForPlayer(playerid, "~r~Bleeding", 1000, 1);
  400.     new Float:HP;
  401.     GetPlayerHealth(playerid, HP);
  402.     SetPlayerHealth(playerid, HP - 1.5);
  403.     }
  404. }
  405.  
  406. forward SetBleeding(playerid);
  407. public SetBleeding(playerid)
  408. {
  409. PlayerInfo[playerid][pint] = 1;
  410. }
  411.  
  412. public hunger(playerid)
  413. {
  414. for(new i = 0; i < MAX_PLAYERS; i++)
  415. {
  416. PlayerInfo[playerid][pint] = 0;
  417. PlayerInfo[i][phunger]--;
  418.     if(PlayerInfo[i][phunger] < 30)
  419.     {
  420.         PlayerPlaySound(i, SOUND_ERROR, 0, 0, 0);
  421.     GameTextForPlayer(i, "low satiety!", 5000, 1);
  422.     }
  423.     if(PlayerInfo[i][phunger] <= 0)
  424.     {
  425.     GameTextForPlayer(i, "~r~no satiety!", 5000, 1);
  426.     SendClientMessage(i,COLOR_RED, "ВЫ СЛИШКОМ ГОЛОДНЫ!");
  427.     PlayerPlaySound(i, SOUND_ERROR, 0, 0, 0);
  428.     new Float:HP;
  429.     GetPlayerHealth(i, HP);
  430.     SetPlayerHealth(i, HP - 10.0);
  431.  
  432.     }
  433.     new tdstring[3];
  434. }
  435. }
  436. public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
  437. {
  438.     if(IsPlayerConnected(playerid))
  439.     {
  440.         new Float:posx, Float:posy, Float:posz;
  441.         new Float:oldposx, Float:oldposy, Float:oldposz;
  442.         new Float:tempposx, Float:tempposy, Float:tempposz;
  443.         GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  444.         for(new i = 0; i < MAX_PLAYERS; i++)
  445.         {
  446.             if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
  447.             {
  448.                 GetPlayerPos(i, posx, posy, posz);
  449.                 tempposx = (oldposx -posx);
  450.                 tempposy = (oldposy -posy);
  451.                 tempposz = (oldposz -posz);
  452.                 if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) // If the player is within 16 meters
  453.                 {
  454.                     SendClientMessage(i, col1, string);
  455.                 }
  456.                 else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) // within 8 meters
  457.                 {
  458.                     SendClientMessage(i, col2, string);
  459.                 }
  460.                 else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) //4 meters
  461.                 {
  462.                     SendClientMessage(i, col3, string);
  463.                 }
  464.                 else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) //2 meters
  465.                 {
  466.                     SendClientMessage(i, col4, string);
  467.                 }
  468.                 else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) //1 meter
  469.                 {
  470.                     SendClientMessage(i, col5, string);
  471.                 }
  472.             }
  473.             else
  474.             {
  475.                 SendClientMessage(i, col1, string);
  476.             }
  477.         }
  478.     }
  479.     return 0;
  480. }
  481. public OnGameModeExit()
  482. {
  483.         return 1;
  484. }
  485. public DelayedBan(playerid)
  486. {
  487.     Ban(playerid);
  488. }
  489. public Applytimer(playerid)
  490. {
  491. if (ended[playerid] == true)
  492. {
  493. return 1;
  494. }
  495. timerapply[playerid]++;
  496. new string[50];
  497. format(string, sizeof(string), "~w~Applying please wait... ~g~%d/10", timerapply );
  498. GameTextForPlayer(playerid, string, 5000, 3);
  499. if (timerapply[playerid] == 10)
  500. {
  501. ended[playerid] = true;
  502. timerapply[playerid] = 0;
  503. KillTimer(Applytimer(playerid));
  504. SetPlayerHealth(playerid, 100.0);
  505. GameTextForPlayer(playerid, "~g~+100 ~r~hp", 1000, 1);
  506. }
  507. }
  508. public ApplyFoodtimer(playerid)
  509. {
  510. if (ended[playerid] == true)
  511. {
  512. return 1;
  513. }
  514. timerapply[playerid]++;
  515. new string[50];
  516. format(string, sizeof(string), "~w~Applying please wait... ~g~%d/5", timerapply );
  517. GameTextForPlayer(playerid, string, 5000, 3);
  518. if (timerapply[playerid] == 5)
  519. {
  520. ended[playerid] = true;
  521. timerapply[playerid] = 0;
  522. KillTimer(Applytimer(playerid));
  523. new Float:HP;
  524. GetPlayerHealth(playerid, HP);
  525. SetPlayerHealth(playerid, HP + 10.0);
  526. GameTextForPlayer(playerid, "~g~+10 ~r~hp and ~g~+50 ~r~safiety!", 1000, 1);
  527. }
  528. }
  529. public DelayedKick(playerid)
  530. {
  531.     Kick(playerid);
  532. }
  533. public OnPlayerRequestClass(playerid, classid)
  534. {
  535. return 1;
  536. }
  537. public setexp(playerid)
  538. {
  539.     PlayerInfo[playerid][pexp]++;
  540.     GameTextForPlayer(playerid, "player exp ~g~+1", 5000, 1);
  541.     return 1;
  542. }
  543. public setmoney(playerid,moneys)
  544. {
  545. eGivePlayerMoney(playerid,moneys);
  546.     return 1;
  547. }
  548. public OnPlayerConnect(playerid)
  549. {
  550.     TogglePlayerSpectating(playerid,1);
  551.     if(fexist(UserPath(playerid)))
  552.     {
  553.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  554.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_MESSAGE"Вход",""COL_MESSAGE"Введите пароль чтобы войти в игру","Вход","Выход");
  555.         TogglePlayerSpectating(playerid,0);
  556.     }
  557.     else
  558.     {
  559.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_MESSAGE"Регистрация...",""COL_MESSAGE"Чтобы зарегистрироватся введите пароле в поле ниже:","Регистрация","Выход");
  560.         SetPlayerSkin(playerid, 135);
  561.         TogglePlayerSpectating(playerid,0);
  562.     }
  563.     return 1;
  564. }
  565.  
  566. public OnPlayerDisconnect(playerid, reason)
  567. {
  568.     new INI:File = INI_Open(UserPath(playerid));
  569.     INI_SetTag(File,"data");
  570.     INI_WriteInt(File,"Cash",eGetPlayerMoney(playerid));
  571.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  572.     INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  573.     INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  574.     INI_WriteInt(File,"Licenses",PlayerInfo[playerid][plices]);
  575.     INI_WriteInt(File,"hp",PlayerInfo[playerid][pheals]);
  576.     INI_WriteInt(File,"skin",PlayerInfo[playerid][pskin]);
  577.     INI_WriteInt(File,"Food",PlayerInfo[playerid][pheals]);
  578.     INI_WriteInt(File,"first",PlayerInfo[playerid][pfirst]);
  579.     INI_WriteInt(File,"mashina",PlayerInfo[playerid][pmashina]);
  580.     INI_WriteInt(File,"color1",PlayerInfo[playerid][pcolor1]);
  581.     INI_WriteInt(File,"color2",PlayerInfo[playerid][pcolor2]);
  582.     INI_WriteInt(File,"lvl",PlayerInfo[playerid][plvl]);
  583.     INI_WriteInt(File,"exp",PlayerInfo[playerid][pexp]);
  584.     INI_WriteInt(File,"paydaymoney",PlayerInfo[playerid][ppaydaymoney]);
  585.     INI_WriteInt(File,"bank",PlayerInfo[playerid][pbank]);
  586.     INI_WriteInt(File,"terminal",PlayerInfo[playerid][pterminal]);
  587.     INI_WriteInt(File,"hotel",PlayerInfo[playerid][photel]);
  588.     INI_WriteInt(File,"school",PlayerInfo[playerid][pschool]);
  589.     INI_WriteInt(File,"work",PlayerInfo[playerid][pwork]);
  590.     INI_WriteInt(File,"workedmoney",PlayerInfo[playerid][pworkedmoney]);
  591.     INI_WriteInt(File,"warns",PlayerInfo[playerid][pwarns]);
  592.     INI_WriteInt(File,"gruz",PlayerInfo[playerid][pgruz]);
  593.     INI_WriteInt(File,"mute",PlayerInfo[playerid][pmute]);
  594.     INI_WriteInt(File,"faction",PlayerInfo[playerid][pfaction]);
  595.     INI_WriteInt(File,"rank",PlayerInfo[playerid][prank]);
  596.     INI_WriteInt(File,"sleepless",PlayerInfo[playerid][psleepless]);
  597.     INI_WriteInt(File,"hunger",PlayerInfo[playerid][phunger]);
  598.     INI_WriteInt(File,"bandage",PlayerInfo[playerid][pbandage]);
  599.     INI_WriteInt(File,"wood",PlayerInfo[playerid][pwood]);
  600.     INI_WriteInt(File,"materials",PlayerInfo[playerid][pmaterials]);
  601.     INI_WriteFloat(File,"phomeX",PlayerInfo[playerid][phomeX]);
  602.     INI_WriteFloat(File,"phomeY",PlayerInfo[playerid][phomeY]);
  603.     INI_WriteFloat(File,"phomeZ",PlayerInfo[playerid][phomeZ]);
  604.     INI_WriteInt(File,"pint",PlayerInfo[playerid][pint]);
  605.     INI_Close(File);
  606.     return 1;
  607. }
  608.  
  609. public OnPlayerSpawn(playerid)
  610. {
  611. SetPlayerVirtualWorld(playerid, 0);
  612. if (PlayerInfo[playerid][pfirst] == 0)
  613. {
  614. SetPlayerSkin(playerid, 135);
  615. eGivePlayerMoney(playerid, 500);
  616. SetPlayerPos(playerid, -1970.5852, 147.8871, 27.6875);
  617. PlayerInfo[playerid][phunger] = 50;
  618. PlayerInfo[playerid][psleepless] = 50;
  619. ShowPlayerDialog(playerid, 108, DIALOG_STYLE_LIST, "Выбрать скин:", "Мужской скин 1\nМужской скин 2\nМужской скин 3\nЖенский скин 1\nЖенский скин 2\nЖенский скин 3", "Выбор", "Выход");
  620. PlayerInfo[playerid][pfirst]++;
  621. }
  622. if (PlayerInfo[playerid][pfirst] == 1)
  623. {
  624.     if(PlayerInfo[playerid][pint] >= 1)
  625.     {
  626.     SetPlayerPos(playerid, PlayerInfo[playerid][phomeX], PlayerInfo[playerid][phomeY], PlayerInfo[playerid][phomeZ]);
  627.     }
  628.     SetPlayerSkin(playerid, PlayerInfo[playerid][pskin]);
  629.     if(PlayerInfo[playerid][plvl] >= 0)
  630.     {
  631.     SetPlayerPos(playerid, -1970.5852, 147.8871, 27.6875);
  632.     }
  633.     if(PlayerInfo[playerid][plvl] >= 1)
  634.     {
  635.     SetPlayerPos(playerid, -1970.5852, 147.8871, 27.6875);
  636.     }
  637. if(PlayerInfo[playerid][plvl] >= 5)
  638.     {
  639.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  640.     }
  641. if(PlayerInfo[playerid][plvl] >= 10)
  642.     {
  643.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  644.     }
  645.     if(PlayerInfo[playerid][pwarns] >= 10)
  646.     {
  647.     SendClientMessage(playerid, COLOR_RED, "Вы были заблокированы за большое количество предупреждений!");
  648.     SetTimerEx("DelayedBan", 1000, false, "d", playerid);
  649.     }
  650.     if(PlayerInfo[playerid][pfaction] == 10)
  651.     {
  652.     SendClientMessage(playerid, -1, "Сообщение дня: хуй");
  653.     gTeam[playerid] = 10;
  654.     SetPlayerPos(playerid, -2285.8003,2284.9756,4.9756);
  655.     }
  656.     if(PlayerInfo[playerid][pfaction] == 9)
  657.     {
  658.     SendClientMessage(playerid, -1, "Сообщение дня: хуй");
  659.     SetPlayerPos(playerid, 2000.5540,-1114.2349,27.1250);
  660.     gTeam[playerid] = 9;
  661.     }
  662.     if(PlayerInfo[playerid][pfaction] == 8)
  663.     {
  664.     SendClientMessage(playerid, -1, "Сообщение дня: хуй");
  665.     SetPlayerPos(playerid, 2509.7185,-1678.3444,13.5469);
  666.     gTeam[playerid] = 8;
  667.     }
  668. }
  669. }
  670. SetPlayerToTeamColour(playerid)
  671. {
  672.     if(gTeam[playerid] == 10)
  673.     {
  674.         SetPlayerColor(playerid,COLOR_BLUE);
  675.     }
  676.     else if(gTeam[playerid] == 9)
  677.     {
  678.         SetPlayerColor(playerid,COLOR_RED);
  679.     }
  680.  
  681. }
  682.  
  683. public OnPlayerDeath(playerid, killerid, reason)
  684. {
  685.     if (PlayerInfo[killerid][pfaction] == 10)
  686.     {
  687.         if  (PlayerInfo[playerid][pfaction] == 9 || PlayerInfo[playerid][pfaction] == 8)
  688.         {
  689.         factionlevel1++;
  690.         factionlevel2--;
  691.         }
  692.     }
  693.     if (PlayerInfo[killerid][pfaction] == 9)
  694.     {
  695.         if  (PlayerInfo[playerid][pfaction] == 8 || PlayerInfo[playerid][pfaction] == 10)
  696.         {
  697.         factionlevel1--;
  698.         factionlevel2++;
  699.         }
  700.     }
  701.     if (PlayerInfo[killerid][pfaction] == 8)
  702.     {
  703.         if  (PlayerInfo[playerid][pfaction] == 9 || PlayerInfo[playerid][pfaction] == 10)
  704.         {
  705.         factionlevel2--;
  706.         factionlevel3++;
  707.         }
  708.     }
  709.     return 1;
  710. }
  711.  
  712. public OnVehicleSpawn(vehicleid)
  713. {
  714. return 1;
  715. }
  716.  
  717. public OnVehicleDeath(vehicleid, killerid)
  718. {
  719.         return 1;
  720. }
  721.  
  722. public OnPlayerText(playerid, text[])
  723. {
  724. new pname[24], str[128];
  725.    GetPlayerName(playerid, pname, 24);
  726.    format(str, sizeof(str), "%s говорит: %s", pname, text);
  727.    ProxDetector(20.0, playerid, str, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
  728.    SetPlayerChatBubble(playerid, text, -1, 15.0, 10000);
  729. }
  730. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  731. {
  732. return 1;
  733. }
  734.  
  735. public OnPlayerExitVehicle(playerid, vehicleid)
  736. {
  737.         return 1;
  738. }
  739.  
  740. public OnPlayerStateChange(playerid, newstate, oldstate)
  741. {
  742. if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
  743. {
  744. if (PlayerInfo[playerid][plices] == 0)
  745. {
  746. SendClientMessage(playerid,COLOR_RED,"У вас нет лицензии! Вы не умеете управлять транспортом");
  747. SetPlayerDrunkLevel(playerid, 30000);
  748. }
  749. }
  750. if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
  751. {
  752. if (PlayerInfo[playerid][plices] == 0)
  753. {
  754. SetPlayerDrunkLevel(playerid, 0);
  755. }
  756. }
  757. }
  758.  
  759. public OnPlayerEnterCheckpoint(playerid)
  760. {
  761.     return 1;
  762. }
  763. public OnPlayerLeaveCheckpoint(playerid)
  764. {
  765.         return 1;
  766. }
  767.  
  768. public OnPlayerEnterRaceCheckpoint(playerid)
  769. {
  770.         return 1;
  771. }
  772.  
  773. public OnPlayerLeaveRaceCheckpoint(playerid)
  774. {
  775.         return 1;
  776. }
  777.  
  778. public OnRconCommand(cmd[])
  779. {
  780.         return 1;
  781. }
  782.  
  783. public OnPlayerRequestSpawn(playerid)
  784. {
  785. return 1;
  786. }
  787.  
  788. public OnObjectMoved(objectid)
  789. {
  790.         return 1;
  791. }
  792. public OnPlayerObjectMoved(playerid, objectid)
  793. {
  794.         return 1;
  795. }
  796.  
  797. public OnPlayerPickUpPickup(playerid, pickupid)
  798. {
  799. if(pickupid == pickuparenda)
  800. {
  801. ShowPlayerDialog(playerid, 111, DIALOG_STYLE_LIST, "Купить машины", "Clover 4500$\nSentinel 6000$\nManana 7500$\nPony 3600$\nEsperanto 3900$\nLandstalker 5000$\nStallion 9000$\nSolair 8000$\nGlenade 2000$\nComet 10000$\nBlista Compact 19000$", "Купить", "Закрыть");
  802. }
  803. if(pickupid == schoolcar)
  804. {
  805. if(PlayerInfo[playerid][pexp] >= 5)
  806. {
  807. SendClientMessage(playerid, COLOR_GREEN, "Успешно! Чтобы посмотреть введите /lic <id>");
  808. PlayerInfo[playerid][plices]++;
  809. }
  810. if(PlayerInfo[playerid][pexp] < 5)
  811. {
  812. SendClientMessage(playerid, COLOR_RED, "Вы не получили 5 PLAYER EXP!");
  813. }
  814. }
  815. if(pickupid == pickuparenda1)
  816. {
  817. ShowPlayerDialog(playerid, 112, DIALOG_STYLE_LIST, "Купить машины", "Infernus 500000$\nTurismo 300000$\nSuper GT 200000$\nHotring Racer 100000$\nSultan 90000$\nBullet 120000$", "Купить", "Закрыть");
  818. }
  819. if(pickupid == pickuparenda2)
  820. {
  821. ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, "Купить транспорт", "Горный велосипед 300$\nFaggio 1500$\nFreeway 1800$\nPCJ-600 3800$\nSanchez 3800$\nNRG-500 6500$", "Купить", "Закрыть");
  822. return 1;
  823. }
  824. if(pickupid == pickuprecolor1)
  825. {
  826. ShowPlayerDialog(playerid, 113, DIALOG_STYLE_INPUT, "Смена цвета машины", "Введите ID Цвета 1:", "Сменить", "Отмена");
  827. }
  828. if(pickupid == pickuprecolor2)
  829. {
  830. ShowPlayerDialog(playerid, 113, DIALOG_STYLE_INPUT, "Смена цвета машины", "Введите ID Цвета 1:", "Сменить", "Отмена");
  831. }
  832. if(pickupid == pickuprecolor3)
  833. {
  834. ShowPlayerDialog(playerid, 113, DIALOG_STYLE_INPUT, "Смена цвета машины", "Введите ID Цвета 1:", "Сменить", "Отмена");
  835. }
  836. if(pickupid == bankomat1)
  837. {
  838. ShowPlayerDialog(playerid, 120, DIALOG_STYLE_MSGBOX, "Банкомат", "Вы действительно хотите снять все деньги с счёта?", "Да", "Нет");
  839. }
  840. if(pickupid == bankomat2)
  841. {
  842. ShowPlayerDialog(playerid, 120, DIALOG_STYLE_MSGBOX, "Банкомат", "Вы действительно хотите снять все деньги с счёта?", "Да", "Нет");
  843. }
  844. if(pickupid == bankomat3)
  845. {
  846. ShowPlayerDialog(playerid, 120, DIALOG_STYLE_MSGBOX, "Банкомат", "Вы действительно хотите снять все деньги с счёта?", "Да", "Нет");
  847. }
  848. if(pickupid == picupGruz)
  849. {
  850. ShowPlayerDialog(playerid, 202, DIALOG_STYLE_INPUT, "Загрузка груза", "Введите сколько вам надо груза (Цена 1 ед. груза - 5$):", "Загрузить", "Отмена");
  851. }
  852. if(pickupid == picupGruzEnd)
  853. {
  854. if(PlayerInfo[playerid][pgruz] >= 1)
  855. {
  856. SendClientMessage(playerid, COLOR_BLUE, "Груз доставлен!");
  857. PlayerPlaySound(playerid, SOUND_MESSAGE, 0, 0, 0);
  858. eGivePlayerMoney(playerid, 20*PlayerInfo[playerid][pgruz]);
  859. PlayerInfo[playerid][pgruz] = 0;
  860. }
  861. }
  862. return 1;
  863. }
  864. public OnVehicleMod(playerid, vehicleid, componentid)
  865. {
  866.         return 1;
  867. }
  868.  
  869. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  870. {
  871.         return 1;
  872. }
  873.  
  874. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  875. {
  876.         return 1;
  877. }
  878.  
  879. public OnPlayerSelectedMenuRow(playerid, row)
  880. {
  881.         return 1;
  882. }
  883.  
  884. public OnPlayerExitedMenu(playerid)
  885. {
  886.         return 1;
  887. }
  888.  
  889. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  890. {
  891.         return 1;
  892. }
  893.  
  894. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  895. {
  896. if (newkeys == 131072)
  897. {
  898. new message[379];
  899. format(message, sizeof(message), "Уровень сытости: %d Выносливость: %d\nЗакрыть дом\nОткрыть дом\nСпавн машины\nИнформация об игроке", PlayerInfo[playerid][phunger],PlayerInfo[playerid][psleepless]);
  900. ShowPlayerDialog(playerid, 361, DIALOG_STYLE_LIST, "Меню игрока:", message, "Выбрать", "Закрыть");
  901. return 1;
  902. }
  903. }
  904. public OnRconLoginAttempt(ip[], password[], success)
  905. {
  906.         return 1;
  907. }
  908.  
  909. public OnPlayerUpdate(playerid)
  910. {
  911. // if( GetPlayerMoney ( playerid ) != eGetPlayerMoney ( playerid ) ) ResetPlayerMoney( playerid ), GivePlayerMoney( playerid, eGetPlayerMoney ( playerid ) );
  912. }
  913.  
  914. public OnPlayerStreamIn(playerid, forplayerid)
  915. {
  916.         return 1;
  917. }
  918.  
  919. public OnPlayerStreamOut(playerid, forplayerid)
  920. {
  921.         return 1;
  922. }
  923.  
  924. public OnVehicleStreamIn(vehicleid, forplayerid)
  925. {
  926.         return 1;
  927. }
  928.  
  929. public OnVehicleStreamOut(vehicleid, forplayerid)
  930. {
  931.         return 1;
  932. }
  933.  
  934. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  935. {
  936. switch( dialogid )
  937. {
  938. case DIALOG_REGISTER:
  939. {
  940. if (!response) return Kick(playerid);
  941. if(response)
  942. {
  943. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_MESSAGE"Регистрация...",""COL_ERROR"Вы ввели неверный пароль!\n"COL_MESSAGE"Введите свой пароль для регистрации","Регистрация","Выход");
  944. new INI:File = INI_Open(UserPath(playerid));
  945. INI_SetTag(File,"data");
  946. INI_WriteInt(File,"Password",udb_hash(inputtext));
  947. INI_WriteInt(File,"Cash",0);
  948. INI_WriteInt(File,"Admin",0);
  949. INI_WriteInt(File,"Kills",0);
  950. INI_WriteInt(File,"Deaths",0);
  951. INI_Close(File);
  952. SpawnPlayer(playerid);
  953. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_MESSAGE"УСПЕХ!",""COL_SUSCESS"Добро пожаловать на Laine MINIRPG!\nПравила и другую информацию на точке возрождения!","Ok","");
  954. islogged[playerid] = 1;
  955. TogglePlayerSpectating(playerid,0);
  956. if(PlayerInfo[playerid][plvl] >= 1)
  957.     {
  958.     SetPlayerPos(playerid, -1970.5852, 147.8871, 27.6875);
  959.     }
  960. if(PlayerInfo[playerid][plvl] >= 5)
  961.     {
  962.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  963.     }
  964. if(PlayerInfo[playerid][plvl] >= 10)
  965.     {
  966.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  967.     }
  968.     if(PlayerInfo[playerid][pwarns] >= 10)
  969.     {
  970.     SendClientMessage(playerid, COLOR_RED, "Вы были заблокированны за большое количиство предупреждений!");
  971.     SetTimerEx("DelayedBan", 1000, false, "d", playerid);
  972.     }
  973. }
  974. }
  975.  
  976. case D_H_CREATE_DESC:
  977.             {
  978.                 if(response) // Если игрок нажал "Далее"
  979.                 {
  980.                     if(!strlen(inputtext))return ShowPlayerDialog(playerid,D_H_CREATE_DESC,DIALOG_STYLE_INPUT,"Создание дома - описание","Введите описание для дома.","Далее","Закрыть"); // Если игрок ничего не ввел то показываем ему диалог снова
  981.                     SetPVarString(playerid,"h_desc",inputtext); // Записываем в PVar описание чтобы в дальнейшем его использовать
  982.                     ShowPlayerDialog(playerid,D_H_CREATE_PRICE,DIALOG_STYLE_INPUT,"Создание дома - цена","Введите цену для дома.","Далее","Назад"); // Показываем следующий диалог - цена дома.
  983.                 }
  984.                 }
  985.  
  986. case D_H_CREATE_PRICE:
  987.                 {
  988.                     if(response) // Если нажал "Да"
  989.                     {
  990.                         if(!strlen(inputtext))return ShowPlayerDialog(playerid,D_H_CREATE_PRICE,DIALOG_STYLE_INPUT,"Создание дома - цена","Введите цену для дома.","Далее","Назад");
  991.                         SetPVarInt(playerid,"h_price",strval(inputtext)); // Сохраняем цену в PVar
  992.                                 STR=""; // Очищаем массив (чтобы не было лишней информации
  993.                         for(new i;i<sizeof(HInts);i++) // запускаем цикл для формирования следующего диалога в котором будет список с доступными интерьерами
  994.                         {
  995.                             strcat(STR,HInts[i][hiName]); // записываем в массив STR значение из HInts[i][hiName]
  996.                             strcat(STR,"\n"); // Делаем переход на следующую строку т.к. стиль диалога = DIALOG_STYLE_LIST
  997.                         }
  998.                         ShowPlayerDialog(playerid,D_H_CREATE_INT,DIALOG_STYLE_LIST,"Создание дома - интерьер",STR,"Далее","Назад"); // Показываем диалог с готовым списком интерьеров
  999.                     }
  1000.                     else DeletePVar(playerid,"h_desc"),ShowPlayerDialog(playerid,D_H_CREATE_DESC,
  1001. DIALOG_STYLE_INPUT,"Создание дома - описание","Введите описание для  дома.","Далее","Закрыть"); // Если же игрок нажал "Назад" показываем ему предыдущий диалог и удаляем то что было введено ранее (описание: DeletePVar).
  1002.                 }
  1003. case D_H_CREATE_INT:
  1004.                 {
  1005.                     if(response) // если нажал "Далее"
  1006.                     {
  1007.                                 SetPVarInt(playerid,"h_int",listitem); // Записываем в PVar номер списка (подсчет номера идет с 0 как в и массивах подсчет ячеек.
  1008.                                 ShowPlayerDialog(playerid,D_H_CREATE_CONF,DIALOG_STYLE_MSGBOX,"Создание дома - подтверждение","Вы действительно хотите создать дом в этом месте?","Создать","Отмена"); // Показываем диалог подтверждения
  1009.                     }
  1010.                     else DeletePVar(playerid,"h_price"),ShowPlayerDialog(playerid,D_H_CREATE_PRICE,
  1011. DIALOG_STYLE_INPUT,"Создание дома - цена","Введите цену для дома.","Далее","Назад"); // Иначе, если нажал "Назад" показываем предыдущий диалог и удаляем то что ввели ранее (цену: DeletePVar)
  1012.                 }
  1013. case D_H_CREATE_CONF:
  1014.                 {
  1015.                     if(response) // если игрок нажал "Создать"
  1016.                 {
  1017.                                 m_h++,SaveHouseAmount(); // Увеличиваем общее кол-во домов
  1018.                                 new Float:x[3],str[32]; // Создаем необходимые массивы (для определения координат и получения данных из PVar'a - описание дома, то, что вводили ранее)
  1019.                                 GetPlayerPos(playerid,x[0],x[1],x[2]),GetPVarString(playerid,"h_desc",str,32); // Определяем позиции игрока, заносим описание в str
  1020.                                 House[m_h][hX]=x[0],House[m_h][hY]=x[1],House[m_h][hZ]=x[2],House[m_h][hPrice]=GetPVarInt(playerid,"h_price"), // Присваиваем переменным дома необходимые значения
  1021.                                 House[m_h][hInterior]=GetPVarInt(playerid,"h_int"),House[m_h][hVirtWorld]=m_h,strmid(House[m_h][hDesc],str,0,32,32),
  1022.                                 strmid(House[m_h][hOwner],"None",0,5,5);  // Записываем владельца дома как None
  1023.                                 SaveHouse(m_h); // Сохраняем дом
  1024.                                 House[m_h][hPick]=CreatePickup(1273,23,x[0],x[1],x[2],0); // Создаем пикап
  1025.                                 format(STR,128,"[Дом продается]\nОписание: %s\nЦена: $%d",House[m_h][hDesc],House[m_h][hPrice]); // Форматируем строку для 3D информации
  1026.                                 House[m_h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,x[0],x[1],x[2]+0.5,10.0,0,0); // Создаем 3D текст с ин-цией
  1027.                                 GameTextForPlayer(playerid,"~g~House created",100,1); // Показываем текст игроку об успешном создании дома
  1028.                                  DeletePVar(playerid,"h_price"),DeletePVar(playerid,"h_desc"),
  1029.                                     DeletePVar(playerid,"h_int"); // Удаляем уже не нужные нам PVar's
  1030.                     }
  1031.                     else DeletePVar(playerid,"h_price"),DeletePVar(playerid,"h_desc");
  1032.                     DeletePVar(playerid,"h_int"); // Иначе если игрок нажал "Отмена" удаляем PVar's.
  1033.                 }
  1034.  
  1035. case 108:
  1036. {
  1037. switch(listitem)
  1038. {
  1039. case 0:
  1040. {
  1041.  
  1042. SendClientMessage(playerid,0xFFFFFFFF, "Скин выбран!");
  1043. SetPlayerSkin(playerid, 6);
  1044. PlayerInfo[playerid][pskin] = 6;
  1045. return 1;
  1046. }
  1047. case 1: // The second listitem
  1048. {
  1049. SendClientMessage(playerid,0xFFFFFFFF, "Скин выбран!");
  1050. SetPlayerSkin(playerid, 7);
  1051. PlayerInfo[playerid][pskin] = 7;
  1052. return 1;
  1053. }
  1054. case 2: // The third listitem
  1055. {
  1056. SendClientMessage(playerid,0xFFFFFFFF, "Скин выбран!");
  1057. SetPlayerSkin(playerid, 3);
  1058. PlayerInfo[playerid][pskin] = 3;
  1059. return 1;
  1060. }
  1061. case 3: // The third listitem
  1062. {
  1063. SendClientMessage(playerid,0xFFFFFFFF, "Скин выбран!");
  1064. SetPlayerSkin(playerid, 11);
  1065. PlayerInfo[playerid][pskin] = 11;
  1066. return 1;
  1067. }
  1068. case 4: // The third listitem
  1069. {
  1070. SendClientMessage(playerid,0xFFFFFFFF, "Скин выбран!");
  1071. SetPlayerSkin(playerid, 12);
  1072. PlayerInfo[playerid][pskin] = 12;
  1073. return 1;
  1074. }
  1075. case 5: // The third listitem
  1076. {
  1077. SendClientMessage(playerid,0xFFFFFFFF, "Скин выбран!");
  1078. SetPlayerSkin(playerid, 9);
  1079. PlayerInfo[playerid][pskin] = 9;
  1080. return 1;
  1081. }
  1082. }
  1083. }
  1084. case 111:
  1085. {
  1086. switch(listitem)
  1087. {
  1088. case 0:
  1089. {
  1090. if(eGetPlayerMoney(playerid) < 4500) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1091. {
  1092. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1093. eGivePlayerMoney(playerid, -4500);
  1094. PlayerInfo[playerid][pmashina] = 542;
  1095. }
  1096. }
  1097. case 1: // The second listitem
  1098. {
  1099. if(eGetPlayerMoney(playerid) < 6000) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1100. {
  1101. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1102. eGivePlayerMoney(playerid, -6000);
  1103. PlayerInfo[playerid][pmashina] = 405;
  1104. }
  1105. }
  1106. case 2: // The third listitem
  1107. {
  1108. if(eGetPlayerMoney(playerid) < 3600) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1109. {
  1110. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1111. eGivePlayerMoney(playerid, -3600);
  1112. PlayerInfo[playerid][pmashina] = 413;
  1113. }
  1114. }
  1115. case 3: // The third listitem
  1116. {
  1117. if(eGetPlayerMoney(playerid) < 3900) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1118. {
  1119. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1120. eGivePlayerMoney(playerid, -3900);
  1121. PlayerInfo[playerid][pmashina] = 419;
  1122. }
  1123. }
  1124. case 4: // The third listitem
  1125. {
  1126. if(eGetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1127. {
  1128. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1129. eGivePlayerMoney(playerid, -5000);
  1130. PlayerInfo[playerid][pmashina] = 400;
  1131. }
  1132. }
  1133. case 5: // The third listitem
  1134. {
  1135. if(eGetPlayerMoney(playerid) < 9000) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1136. {
  1137. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1138. eGivePlayerMoney(playerid, -9000);
  1139. PlayerInfo[playerid][pmashina] = 439;
  1140. }
  1141. }
  1142. }
  1143. }
  1144. case 200:
  1145. {
  1146. switch(listitem)
  1147. {
  1148. case 0:
  1149. {
  1150. if(eGetPlayerMoney(playerid) < 500) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1151. {
  1152. SendClientMessage(playerid,0xFFFFFFFF, "Транспорт куплен! чтобы заспавнить введите: /spawncar");
  1153. eGivePlayerMoney(playerid, -500);
  1154. PlayerInfo[playerid][pmashina] = 542;
  1155. }
  1156. }
  1157. case 1:
  1158. {
  1159. if(eGetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1160. {
  1161. SendClientMessage(playerid,0xFFFFFFFF, "Транспорт куплен! чтобы заспавнить введите: /spawncar");
  1162. eGivePlayerMoney(playerid, -1500);
  1163. PlayerInfo[playerid][pmashina] = 462;
  1164. }
  1165. }
  1166. case 2:
  1167. {
  1168. if(eGetPlayerMoney(playerid) < 1800) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1169. {
  1170. SendClientMessage(playerid,0xFFFFFFFF, "Транспорт куплен! чтобы заспавнить введите: /spawncar");
  1171. eGivePlayerMoney(playerid, -1800);
  1172. PlayerInfo[playerid][pmashina] = 463;
  1173. }
  1174. }
  1175. case 3:
  1176. {
  1177. if(eGetPlayerMoney(playerid) < 2650) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1178. {
  1179. SendClientMessage(playerid,0xFFFFFFFF, "Транспорт куплен! чтобы заспавнить введите: /spawncar");
  1180. eGivePlayerMoney(playerid, -2560);
  1181. PlayerInfo[playerid][pmashina] = 461;
  1182. }
  1183. }
  1184. case 4:
  1185. {
  1186. if(eGetPlayerMoney(playerid) < 3800) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1187. {
  1188. SendClientMessage(playerid,0xFFFFFFFF, "Транспорт куплен! чтобы заспавнить введите: /spawncar");
  1189. eGivePlayerMoney(playerid, -3800);
  1190. PlayerInfo[playerid][pmashina] = 468;
  1191. // DELETED
  1192. }
  1193. }
  1194. case 5:
  1195. {
  1196. if(eGetPlayerMoney(playerid) < 6500) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1197. {
  1198. SendClientMessage(playerid,0xFFFFFFFF, "Транспорт куплен! чтобы заспавнить введите: /spawncar");
  1199. eGivePlayerMoney(playerid, -6500);
  1200. PlayerInfo[playerid][pmashina] = 522;
  1201. // DELETED
  1202. }
  1203. }
  1204. }
  1205. }
  1206. case 121:
  1207. {
  1208. switch(listitem)
  1209. {
  1210. case 0:
  1211. {
  1212. if(eGetPlayerMoney(playerid) < 200) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1213. {
  1214. SendClientMessage(playerid,COLOR_GREEN, "Вы купили лопату");
  1215. eGivePlayerMoney(playerid, -200);
  1216. GivePlayerWeapon(playerid, 6, 1);
  1217. }
  1218. }
  1219. case 1: // The second listitem
  1220. {
  1221. if(eGetPlayerMoney(playerid) < 1800) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1222. {
  1223. SendClientMessage(playerid,COLOR_GREEN, "Вы купили удалённый терминал. Использовать: /terminal");
  1224. eGivePlayerMoney(playerid, -1800);
  1225. PlayerInfo[playerid][pterminal] = 1;
  1226. if (PlayerInfo[playerid][pterminal] == 1)
  1227. {
  1228. SendClientMessage(playerid,COLOR_GREY, "Он у вас и так есть!");
  1229. }
  1230. }
  1231. }
  1232. case 2: // The third listitem
  1233. {
  1234. if(eGetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1235. {
  1236. SendClientMessage(playerid,COLOR_GREEN, "Вы купили цветы");
  1237. eGivePlayerMoney(playerid, -100);
  1238. GivePlayerWeapon(playerid, 14, 1);
  1239. }
  1240. }
  1241. case 3: // The third listitem
  1242. {
  1243. if(eGetPlayerMoney(playerid) < 320) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1244. {
  1245. SendClientMessage(playerid,COLOR_GREEN, "Вы купили аптечку");
  1246. eGivePlayerMoney(playerid, -320);
  1247. PlayerInfo[playerid][pheals]++;
  1248. }
  1249. }
  1250. case 4: // The third listitem
  1251. {
  1252. if(eGetPlayerMoney(playerid) < 35) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1253. {
  1254. SendClientMessage(playerid,COLOR_GREEN, "Вы купили еду");
  1255. eGivePlayerMoney(playerid, -35);
  1256. PlayerInfo[playerid][pfood]++;
  1257. }
  1258. }
  1259. case 5: // The third listitem
  1260. {
  1261. if(eGetPlayerMoney(playerid) < 300) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1262. {
  1263. SendClientMessage(playerid,COLOR_GREEN, "Вы купили фотоаппарат 50 снимков!");
  1264. eGivePlayerMoney(playerid, -300);
  1265. GivePlayerWeapon(playerid, 43, 50);
  1266. }
  1267. }
  1268. case 6: // The third listitem
  1269. {
  1270. if(eGetPlayerMoney(playerid) < 180) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1271. {
  1272. SendClientMessage(playerid,COLOR_GREEN, "Вы купили маску! Она у вас будет до перезахода на сервер!");
  1273. eGivePlayerMoney(playerid, -180);
  1274. Mask[playerid] = 1;
  1275. }
  1276. return 1;
  1277. }
  1278. }
  1279. return 1;
  1280. }
  1281. /*"Пистолет 300 Материалов\nПистолет с глушителем 250 Материалов\nDeagle 400 Материалов\nМ4 570 Материалов\nАК-47 500 Материалов\n
  1282. Дробовик 320 Материалов\nCombat-shotgun 450 Материалов\nSniper 1000 Материалов\nSMG 430 Материалов\nUZI 400 Материалов
  1283. */
  1284. case 207:
  1285. {
  1286. switch(listitem)
  1287. {
  1288. case 0:
  1289. {
  1290. if(PlayerInfo[playerid][pmaterials] >= 300 && PlayerInfo[playerid][prank] >= 2) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов! Или слишком маленький ранг");
  1291. {
  1292. PlayerInfo[playerid][pmaterials] -= 300;
  1293. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали пистолет с 100 патронами!");
  1294. GivePlayerWeapon(playerid, 22,100);
  1295. }
  1296. }
  1297. case 1:
  1298. {
  1299. if(PlayerInfo[playerid][pmaterials] >= 250 && PlayerInfo[playerid][prank] >= 2) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов!");
  1300. {
  1301. PlayerInfo[playerid][pmaterials] -= 250;
  1302. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали Пистолет с глушителем с 100 патронами!");
  1303. GivePlayerWeapon(playerid, 23,100);
  1304. }
  1305. }
  1306. case 2:
  1307. {
  1308. if(PlayerInfo[playerid][pmaterials] >= 400 && PlayerInfo[playerid][prank] >= 3) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов! Или слишком маленький ранг");
  1309. {
  1310. PlayerInfo[playerid][pmaterials] -= 300;
  1311. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали Deagle с 100 патронами!");
  1312. GivePlayerWeapon(playerid, 24,100);
  1313. }
  1314. }
  1315. case 3:
  1316. {
  1317. if(PlayerInfo[playerid][pmaterials] >= 570 && PlayerInfo[playerid][prank] >= 4) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов! Или слишком маленький ранг");
  1318. {
  1319. PlayerInfo[playerid][pmaterials] -= 570;
  1320. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали M4 с 100 патронами!");
  1321. GivePlayerWeapon(playerid, 31,100);
  1322. }
  1323. }
  1324. case 4:
  1325. {
  1326. if(PlayerInfo[playerid][pmaterials] >= 500 && PlayerInfo[playerid][prank] >= 4) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов! Или слишком маленький ранг");
  1327. {
  1328. PlayerInfo[playerid][pmaterials] -= 500;
  1329. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали AK-47 с 100 патронами!");
  1330. GivePlayerWeapon(playerid, 30,100);
  1331. }
  1332. }
  1333. case 5:
  1334. {
  1335. if(PlayerInfo[playerid][pmaterials] >= 320 && PlayerInfo[playerid][prank] >= 4) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов! Или слишком маленький ранг");
  1336. {
  1337. PlayerInfo[playerid][pmaterials] -= 320;
  1338. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали дробовик с 100 патронами!");
  1339. GivePlayerWeapon(playerid, 25,100);
  1340. }
  1341. }
  1342. case 6:
  1343. {
  1344. if(PlayerInfo[playerid][pmaterials] >= 450 && PlayerInfo[playerid][prank] >= 5) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов! Или слишком маленький ранг");
  1345. {
  1346. PlayerInfo[playerid][pmaterials] -= 450;
  1347. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали Combat-shotgun с 100 патронами!");
  1348. GivePlayerWeapon(playerid, 27,100);
  1349. }
  1350. }
  1351. case 7:
  1352. {
  1353. if(PlayerInfo[playerid][pmaterials] >= 1000 && PlayerInfo[playerid][prank] >= 8) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов! Или слишком маленький ранг");
  1354. {
  1355. PlayerInfo[playerid][pmaterials] -= 1000;
  1356. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали Sniper с 100 патронами!");
  1357. GivePlayerWeapon(playerid, 34,100);
  1358. }
  1359. }
  1360. case 8:
  1361. {
  1362. if(PlayerInfo[playerid][pmaterials] >= 430 && PlayerInfo[playerid][prank] >= 3) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов! Или слишком маленький ранг");
  1363. {
  1364. PlayerInfo[playerid][pmaterials] -= 430;
  1365. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали SMG с 100 патронами!");
  1366. GivePlayerWeapon(playerid, 29,100);
  1367. }
  1368. }
  1369. case 9:
  1370. {
  1371. if(PlayerInfo[playerid][pmaterials] >= 400 && PlayerInfo[playerid][prank] >= 3) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно материалов! Или слишком маленький ранг");
  1372. {
  1373. PlayerInfo[playerid][pmaterials] -= 400;
  1374. SendClientMessage(playerid,0xFFFFFFFF, "Вы сделали UZI с 100 патронами!");
  1375. GivePlayerWeapon(playerid,  28,100);
  1376. }
  1377. return 1;
  1378. }
  1379. }
  1380.  
  1381. return 1;
  1382. }
  1383. /*"Пистолет 300 Материалов\nПистолет с глушителем 250 Материалов\nDeagle 400 Материалов\nМ4 570 Материалов\nАК-47 500 Материалов\n
  1384. Дробовик 320 Материалов\nCombat-shotgun 450 Материалов\nSniper 1000 Материалов\nSMG 430 Материалов\nUZI 400 Материалов
  1385. */
  1386. case 120:
  1387. {
  1388. eGivePlayerMoney(playerid, PlayerInfo[playerid][pbank]);
  1389. PlayerInfo[playerid][pbank] = 0;
  1390. SendClientMessage(playerid,COLOR_GREEN,"Вы сняли все деньги с счёта!");
  1391. return 1;
  1392. }
  1393. case DIALOG_SUCCESS_1:
  1394. {
  1395. if(PlayerInfo[playerid][plvl] >= 1)
  1396.     {
  1397.     SetPlayerPos(playerid, -1970.5852, 147.8871, 27.6875);
  1398.     }
  1399. if(PlayerInfo[playerid][plvl] >= 5)
  1400.     {
  1401.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  1402.     }
  1403. if(PlayerInfo[playerid][plvl] >= 10)
  1404.     {
  1405.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  1406.     }
  1407.     if(PlayerInfo[playerid][pwarns] >= 10)
  1408.     {
  1409.     SendClientMessage(playerid, COLOR_RED, "Вы были забанины за большое количиство предупреждений!");
  1410.     SetTimerEx("DelayedBan", 1000, false, "d", playerid);
  1411.     }
  1412. return 1;
  1413. }
  1414. case DIALOG_SUCCESS_2:
  1415. {
  1416. if(PlayerInfo[playerid][plvl] >= 1)
  1417.     {
  1418.     SetPlayerPos(playerid, -1970.5852, 147.8871, 27.6875);
  1419.     }
  1420. if(PlayerInfo[playerid][plvl] >= 5)
  1421.     {
  1422.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  1423.     }
  1424. if(PlayerInfo[playerid][plvl] >= 10)
  1425.     {
  1426.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  1427.     }
  1428.     if(PlayerInfo[playerid][pwarns] >= 10)
  1429.     {
  1430.     SendClientMessage(playerid, COLOR_RED, "Вы были забанины за большое количиство предупреждений!");
  1431.     SetTimerEx("DelayedBan", 1000, true, "d", playerid);
  1432.     }
  1433. return 1;
  1434. }
  1435. case 113:
  1436. {
  1437. if(strlen(inputtext) > 0)
  1438. {
  1439. new amount = strval(inputtext);
  1440. PlayerInfo[playerid][pcolor2] = amount;
  1441. ShowPlayerDialog(playerid, 114, DIALOG_STYLE_INPUT, "Смена цвета машины", "Введите ID Цвета 2:", "Сменить", "Отмена");
  1442. SendClientMessage(playerid,COLOR_GREEN,"Цвет 1 установлен!");
  1443. }
  1444. else
  1445. {
  1446. SendClientMessage(playerid,COLOR_GREY,"Недостаточно параметров");
  1447. }
  1448. }
  1449. case 202:
  1450. {
  1451. if(strlen(inputtext) > 0)
  1452. {
  1453. new amount = strval(inputtext);
  1454. PlayerInfo[playerid][pgruz] = amount;
  1455. eGivePlayerMoney(playerid, -amount*5);
  1456. SendClientMessage(playerid,COLOR_GREEN,"Вы загрузли груз!");
  1457. return 1;
  1458. }
  1459. else
  1460. {
  1461. SendClientMessage(playerid,COLOR_GREY,"Недостаточно параметров");
  1462. return 1;
  1463. }
  1464. }
  1465. case 114:
  1466. {
  1467. if(strlen(inputtext) > 0)
  1468. {
  1469. new amount = strval(inputtext);
  1470. PlayerInfo[playerid][pcolor2] = amount;
  1471. SendClientMessage(playerid,COLOR_GREEN,"Цвет 2 установлен!");
  1472. }
  1473. else
  1474. {
  1475. SendClientMessage(playerid,COLOR_GREY,"Недостаточно параметров");
  1476. }
  1477. }
  1478. case 153:
  1479. {
  1480. if(strlen(inputtext) > 0)
  1481. {
  1482. new skin1 = strval(inputtext);
  1483. if(eGetPlayerMoney(playerid) < skin1*10) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1484. {
  1485. PlayerInfo[playerid][pskin] = skin1;
  1486. SetPlayerSkin(playerid, skin1);
  1487. eGivePlayerMoney(playerid, -skin1*10);
  1488. }
  1489. SendClientMessage(playerid,COLOR_GREEN,"Скин установлен!");
  1490. }
  1491. else
  1492. {
  1493. SendClientMessage(playerid,COLOR_GREY,"Недостаточно параметров");
  1494. }
  1495. }
  1496. case 112:
  1497. {
  1498. switch(listitem)
  1499. {
  1500. case 0:
  1501. {
  1502. if(eGetPlayerMoney(playerid) < 500000) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1503. {
  1504. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1505. eGivePlayerMoney(playerid, -500000);
  1506. PlayerInfo[playerid][pmashina] = 411;
  1507. }
  1508. }
  1509. case 1: // The second listitem
  1510. {
  1511. if(eGetPlayerMoney(playerid) < 300000) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1512. {
  1513. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1514. eGivePlayerMoney(playerid, -300000);
  1515. PlayerInfo[playerid][pmashina] = 451;
  1516. }
  1517. }
  1518. case 2: // The third listitem
  1519. {
  1520. if(eGetPlayerMoney(playerid) < 20000) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1521. {
  1522. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1523. eGivePlayerMoney(playerid, -200000);
  1524. PlayerInfo[playerid][pmashina] = 559;
  1525. }
  1526. }
  1527. case 3: // The third listitem
  1528. {
  1529. if(eGetPlayerMoney(playerid) < 100000) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1530. {
  1531. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1532. eGivePlayerMoney(playerid, -100000);
  1533. PlayerInfo[playerid][pmashina] = 494;
  1534. }
  1535. }
  1536. case 4: // The third listitem
  1537. {
  1538. if(eGetPlayerMoney(playerid) < 90000) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1539. {
  1540. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1541. eGivePlayerMoney(playerid, -90000);
  1542. PlayerInfo[playerid][pmashina] = 560;
  1543. }
  1544. }
  1545. case 5: // The third listitem
  1546. {
  1547. if(eGetPlayerMoney(playerid) < 210000) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1548. {
  1549. SendClientMessage(playerid,0xFFFFFFFF, "Машина куплена! чтобы заспавнить введите: /spawncar");
  1550. eGivePlayerMoney(playerid, -210000);
  1551. PlayerInfo[playerid][pmashina] = 541;
  1552. }
  1553. }
  1554. }
  1555. }
  1556. case 361:
  1557. {
  1558. switch(listitem)
  1559. {
  1560. case 0: // Просто инфа
  1561. {
  1562. return 1;
  1563. }
  1564. case 1: // Закрыить дом
  1565. {
  1566.             for(new h=1;h<=m_h;h++)
  1567.             {
  1568.                 if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[
  1569. h][hY],House[h][hZ]))continue;
  1570.                 if(strcmp(House[h][hOwner],Name(playerid),true)!=0)return SendClientMessage(playerid,-1,"У вас нет ключей от этого дома!"); // Сравниваем владельца дома с ником игрока, если не совпадает - выводим сообщение
  1571.                 if(House[h][hLock]==0)House[h][hLock]=1,SaveHouse(h),
  1572. GameTextForPlayer(playerid,"~r~House locked",100,1); // если дом открыт - закрываем (0 открыт / 1 закрыт)
  1573.                 else if(House[h][hLock]==1)return SendClientMessage(playerid,-1,"Дом уже закрыт!"); // иначе выводим сообщение
  1574.                         return 1;
  1575.                 }
  1576.             return 1;
  1577. }
  1578. case 2: // Открыть дом
  1579. {
  1580.             for(new h=1;h<=m_h;h++)
  1581.             {
  1582.                 if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[
  1583. h][hY],House[h][hZ]))continue;
  1584.                 if(strcmp(House[h][hOwner],Name(playerid),true)!=0)return SendClientMessage(playerid,-1,"У вас нет ключей от этого дома!");
  1585.                 if(House[h][hLock]==1)House[h][hLock]=0,SaveHouse(h),
  1586. GameTextForPlayer(playerid,"~g~House unlocked",100,1);
  1587.                 else if(House[h][hLock]==0)return SendClientMessage(playerid,-1,"Дом уже открыт!");
  1588.                         return 1;
  1589.                 }
  1590.             return 1;
  1591. }
  1592. case 3: // Спавн машины
  1593. {
  1594. new Float:x, Float:y, Float:z;
  1595. GetPlayerPos(playerid, x, y, z);
  1596. if(eGetPlayerMoney(playerid) < 500) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1597. {
  1598. if(spawnedcars[playerid] > 1) return SendClientMessage(playerid, COLOR_RED, "Вы наспавнили очень много машин! Ждите 5 минут чтобы заспавнить опять!");
  1599. GameTextForPlayer(playerid, "~g~Car spawn ~r~-500$", 5000, 1);
  1600. eGivePlayerMoney(playerid, -500);
  1601. CreateVehicle(PlayerInfo[playerid][pmashina], x, y, z, 82.2873, PlayerInfo[playerid][pcolor1], PlayerInfo[playerid][pcolor2], 60);
  1602. }
  1603. }
  1604. case 4: // player info
  1605. {
  1606. new string[950];
  1607. new name[MAX_PLAYER_NAME];
  1608. GetPlayerName(playerid, name, sizeof(name));
  1609. format(string, sizeof(string), "ID: %d\nИмя: %s\nУровень: %d\nЛицензии: %d\nОпыт: %d\nПредупреждений: %d\nФракция %d\nРанг: %d\nДенег: %d", playerid, name, PlayerInfo[playerid][plvl], PlayerInfo[playerid][plices], PlayerInfo[playerid][pexp],PlayerInfo[playerid][pwarns], PlayerInfo[playerid][pfaction], PlayerInfo[playerid][prank], PlayerInfo[playerid][pCash]);
  1610. ShowPlayerDialog(playerid, 991, DIALOG_STYLE_MSGBOX, "Информация об игроке", string, "Ок", "");
  1611. }
  1612. }
  1613. return 1;
  1614. }
  1615. case DIALOG_LOGIN:
  1616. {
  1617. if ( !response ) return Kick ( playerid );
  1618. if( response )
  1619. {
  1620. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  1621. {
  1622. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  1623. eGivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  1624. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_MESSAGE"Успех!",""COL_SUSCESS"Вы вошли успешно, нажмите Spawn чтобы продолжить!","ок","");
  1625. islogged[playerid] = 1;
  1626. if(PlayerInfo[playerid][plvl] >= 1)
  1627.     {
  1628.     SetPlayerPos(playerid, -1970.5852, 147.8871, 27.6875);
  1629.     }
  1630. if(PlayerInfo[playerid][plvl] >= 5)
  1631.     {
  1632.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  1633.     }
  1634. if(PlayerInfo[playerid][plvl] >= 10)
  1635.     {
  1636.     SetPlayerPos(playerid, 1771.2465,-1895.7551,13.5552);
  1637.     }
  1638.     if(PlayerInfo[playerid][pwarns] >= 10)
  1639.     {
  1640.     SendClientMessage(playerid, COLOR_RED, "Вы были забанины за большое количиство предупреждений!");
  1641.     SetTimerEx("DelayedBan", 1000, false, "d", playerid);
  1642.     }
  1643. TogglePlayerSpectating(playerid,0);
  1644. }
  1645. else
  1646. {
  1647. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_MESSAGE"Вход",""COL_ERROR"Неверный пароль!\n"COL_MESSAGE"Этот ник зарегистрирован. Введите свой пароль:","Вход","Выход");
  1648. }
  1649. return 1;
  1650. }
  1651. }
  1652. }
  1653. return 1;
  1654. }
  1655.  
  1656. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1657. {
  1658. new string[128];
  1659. format(string,128,"Статистика игрока: %d Уровень: %d Машина: %d Отель: %d",clickedplayerid, PlayerInfo[clickedplayerid][plvl], PlayerInfo[clickedplayerid][pmashina], PlayerInfo[clickedplayerid][photel]);
  1660. SendClientMessage(playerid,-1,string);
  1661. }
  1662.  
  1663.  
  1664. CMD:sms(playerid, params[])
  1665. {
  1666. new string[200], message[100], id;
  1667. if(sscanf(params,"us",id,message))
  1668. return SendClientMessage(playerid, -1, "Используйте: /sms <id> <message>");
  1669. format(string, sizeof(string), "SMS от игрока с id %d: %s", playerid,message);
  1670. PlayerPlaySound(playerid, 45400, 0.0, 0.0, 0.0);
  1671. GameTextForPlayer(playerid, "~g~SMS ~r~-5$", 5000, 1);
  1672. eGivePlayerMoney(playerid, -5);
  1673. SendClientMessage(id, COLOR_BLUE, string);
  1674. return 1;
  1675. }
  1676. CMD:spawncar(playerid, params[])
  1677. {
  1678. new Float:x, Float:y, Float:z;
  1679. GetPlayerPos(playerid, x, y, z);
  1680. if(eGetPlayerMoney(playerid) < 500) return SendClientMessage(playerid, 0xFFFFFF, "Недостаточно денег!");
  1681. {
  1682. if(spawnedcars[playerid] > 1) return SendClientMessage(playerid, COLOR_RED, "Вы наспавнили очень много машин! Ждите 5 минут чтобы заспавнить опять!");
  1683. GameTextForPlayer(playerid, "~g~Car spawn ~r~-500$", 5000, 1);
  1684. eGivePlayerMoney(playerid, -500);
  1685. CreateVehicle(PlayerInfo[playerid][pmashina], x, y, z, 82.2873, PlayerInfo[playerid][pcolor1], PlayerInfo[playerid][pcolor2], 60);
  1686. }
  1687. return 1;
  1688. }
  1689.  
  1690. CMD:terminal(playerid, params[])
  1691. {
  1692. if (PlayerInfo[playerid][pterminal] == 1)
  1693. {
  1694. ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Банкомат (удалённый терминал)", "Вы действительно хотите снять все деньги с счёта?", "Да", "Нет");
  1695. }
  1696. if (PlayerInfo[playerid][pterminal] == 0)
  1697. {
  1698. SendClientMessage(playerid, COLOR_RED, "У вас нет портативного терминала!");
  1699. }
  1700. }
  1701. CMD:stats(playerid, params[])
  1702. {
  1703. new string[128];
  1704. format(string,128,"Статистика игрока: %d Уровень: %d Машина: %d",playerid, PlayerInfo[playerid][plvl], PlayerInfo[playerid][pmashina]);
  1705. SendClientMessage(playerid,-1 ,string);
  1706. }
  1707. CMD:lic(playerid, params[])
  1708. {
  1709. new string[128];
  1710. format(string,128,"Лицензии игрока: %d Уровень лицензии: %d Введите /idinfo чтобы узнать id и уровни лицензий",playerid, PlayerInfo[playerid][plices]);
  1711. SendClientMessage(playerid,-1 ,string);
  1712. }
  1713. CMD:idnfo(playerid, params[])
  1714. {
  1715. ShowPlayerDialog(playerid, 163, DIALOG_STYLE_MSGBOX, COL_SUSCESS"Список id", "ID домов и отелей:\n0 - Нет\n1 - Отель SF\n2 - Отель LS\n3 - Отель LV\n 4 - Малая квартира\n 5 - Средняя квартира\n 6 - Премиум квартира \n Уровни лицензий: \n1 - Только на вождение \n2 - На вождение и полёт \n3 - На вождение, оружие, и полёт \n4- На вождение, оружие, полёт, и на водный транспорт", "ok", "");
  1716. return 1;
  1717. }
  1718. COMMAND:attachobject(playerid, params[])
  1719. {
  1720.  if (IsPlayerAdmin(playerid))
  1721.     {
  1722.         new
  1723.         toplayerid,
  1724.         objectid,
  1725.         partid;
  1726.         if (!sscanf(params, "iii", toplayerid, objectid, partid))
  1727.         {
  1728.           if (toplayerid != INVALID_PLAYER_ID)
  1729.           {
  1730.             new message[40];
  1731.             SetPlayerAttachedObject(toplayerid, 2, objectid, partid, 0.13, 0.0, 0.0, 0.0, 90.0, 90.0);
  1732.             format(message, sizeof(message), "Вам установили объект: %d", objectid);
  1733.             SendClientMessage(toplayerid, 0x00FF00FF, message);
  1734.           }
  1735.           else SendClientMessage(playerid, 0xFF0000FF, "Этот игрок не подключён!");
  1736.         }
  1737.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /attachobject <playerid> <id объекта> <id части тела>");
  1738.     }
  1739.     else SendClientMessage(playerid, COLOR_RED, "Вам недоступна эта команда!");
  1740.     return 1;
  1741. }
  1742.  
  1743.  
  1744. COMMAND:givelic(playerid, params[])
  1745. {
  1746.  if (IsPlayerAdmin(playerid))
  1747.     {
  1748.         new
  1749.         toplayerid;
  1750.         if (!sscanf(params, "i", toplayerid))
  1751.         {
  1752.           if (toplayerid != INVALID_PLAYER_ID)
  1753.           {
  1754.             PlayerInfo[playerid][plices]++;
  1755.             SendClientMessage(toplayerid, 0x00FF00FF, "Вам повысили уровень лицензии!");
  1756.           }
  1757.           else SendClientMessage(playerid, 0xFF0000FF, "Этот игрок не подключён!");
  1758.         }
  1759.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /givelic <playerid> <id объекта> <id части тела>");
  1760.     }
  1761.     else SendClientMessage(playerid, COLOR_RED, "Вам недоступна эта команда!");
  1762.     return 1;
  1763. }
  1764. COMMAND:joinfaction(playerid, params[])
  1765. {
  1766.  if (IsPlayerAdmin(playerid))
  1767.     {
  1768.         new
  1769.         toplayerid,
  1770.         rank,
  1771.         factionid;
  1772.         if (!sscanf(params, "iii", toplayerid, factionid))
  1773.         {
  1774.           if (toplayerid != INVALID_PLAYER_ID)
  1775.           {
  1776.             new message[40];
  1777.             PlayerInfo[playerid][pfaction] = factionid;
  1778.             format(message, sizeof(message), "Вы вступили в фракцию: %d", factionid);
  1779.             SetPlayerHealth(playerid, 0.0);
  1780.             SendClientMessage(toplayerid, 0x00FF00FF, message);
  1781.           }
  1782.           else SendClientMessage(playerid, 0xFF0000FF, "Этот игрок не подключён!");
  1783.         }
  1784.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /joinfaction <playerid> <id фракции> <ранг 1-8>");
  1785.     }
  1786.     else SendClientMessage(playerid, COLOR_RED, "Вам недоступна эта команда!");
  1787.     return 1;
  1788. }
  1789. COMMAND:factionstats(playerid, params[])
  1790. {
  1791.     new message[40];
  1792.     if(PlayerInfo[playerid][pfaction] == 10)
  1793.     {
  1794.     format(message, sizeof(message), "Уровень нашей банды: %d", factionlevel1);
  1795.     SendClientMessage(playerid, -1, message);
  1796.     }
  1797.     if(PlayerInfo[playerid][pfaction] == 9)
  1798.     {
  1799.     format(message, sizeof(message), "Уровень нашей банды: %d", factionlevel2);
  1800.     SendClientMessage(playerid, -1, message);
  1801.     }
  1802.     if(PlayerInfo[playerid][pfaction] == 8)
  1803.     {
  1804.     format(message, sizeof(message), "Уровень нашей банды: %d", factionlevel3);
  1805.     SendClientMessage(playerid, -1, message);
  1806.     }
  1807.     return 1;
  1808. }
  1809. COMMAND:ban(playerid, params[])
  1810. {
  1811.     if (IsPlayerAdmin(playerid))
  1812.     {
  1813.         new
  1814.           toplayerid,
  1815.           reason[128];
  1816.         if (!sscanf(params, "is", toplayerid, reason))
  1817.         {
  1818.           if (toplayerid != INVALID_PLAYER_ID)
  1819.           {
  1820.  
  1821.             new
  1822.             message[128];
  1823.             new name[MAX_PLAYER_NAME];
  1824.             new name1[MAX_PLAYER_NAME];
  1825.              GetPlayerName(playerid, name, sizeof(name));
  1826.             GetPlayerName(toplayerid, name1, sizeof(name1));
  1827.             format(message, sizeof(message), "Вас забанили причина: %s", reason);
  1828.             PlayerPlaySound(playerid, 5206, 0.0, 0.0, 0.0);
  1829.             SendClientMessage(toplayerid, 0x00FF00FF, message);
  1830.             SetTimerEx("DelayedBan", 1000, false, "d", toplayerid);
  1831.             format(message, sizeof(message), "Администратор %s забанил игрока %s с причиной: %s", name, name1, reason);
  1832.             SendClientMessageToAll(COLOR_RED, message);
  1833.           }
  1834.           else SendClientMessage(playerid, 0xFF0000FF, "Этот игрок не подключён, используйте /offban");
  1835.         }
  1836.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /ban <id> <причина>");
  1837.     }
  1838.     else SendClientMessage(playerid, COLOR_RED, "Вам недоступна данная функция!");
  1839.     return 1;
  1840. }
  1841. COMMAND:kick(playerid, params[])
  1842. {
  1843.     if (IsPlayerAdmin(playerid))
  1844.     {
  1845.         new
  1846.           toplayerid,
  1847.           reason[128];
  1848.         if (!sscanf(params, "is", toplayerid, reason))
  1849.         {
  1850.           if (toplayerid != INVALID_PLAYER_ID)
  1851.           {
  1852.             new
  1853.             message[128];
  1854.             new name[MAX_PLAYER_NAME];
  1855.             new name1[MAX_PLAYER_NAME];
  1856.              GetPlayerName(playerid, name, sizeof(name));
  1857.               GetPlayerName(toplayerid, name1, sizeof(name1));
  1858.             format(message, sizeof(message), "Администратор %s кикнул вас причина: %s", name, reason);
  1859.             SendClientMessage(toplayerid, COLOR_RED, message);
  1860.             PlayerPlaySound(playerid, 5206, 0.0, 0.0, 0.0);
  1861.             SetTimerEx("DelayedKick", 1000, false, "d", toplayerid);
  1862.             format(message, sizeof(message), "Администратор %s кикнул игрока %s с причиной: %s", name, name1, reason);
  1863.             SendClientMessageToAll(COLOR_RED, message);
  1864.           }
  1865.           else SendClientMessage(playerid, 0xFF0000FF, "Этот игрок не подключён!");
  1866.         }
  1867.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /kick <id> <причина>");
  1868.     }
  1869.     else SendClientMessage(playerid, COLOR_RED, "Вам недоступна данная функция!");
  1870.     return 1;
  1871. }
  1872. COMMAND:warn(playerid, params[])
  1873. {
  1874.  if (IsPlayerAdmin(playerid))
  1875.     {
  1876.         new
  1877.           toplayerid,
  1878.           reason[128];
  1879.         if (!sscanf(params, "is", toplayerid, reason))
  1880.         {
  1881.           if (toplayerid != INVALID_PLAYER_ID)
  1882.           {
  1883.             new
  1884.             message[128];
  1885.             new name[MAX_PLAYER_NAME];
  1886.             new name1[MAX_PLAYER_NAME];
  1887.              GetPlayerName(playerid, name, sizeof(name));
  1888.               GetPlayerName(toplayerid, name1, sizeof(name1));
  1889.             PlayerInfo[toplayerid][pwarns]++;
  1890.             format(message, sizeof(message), "Администратор %s выдал вам предупреждение с причиной: %s. У вас уже %d/10 предупреждений, если вы продолжите нарушать правила, вас забанят!", name, reason, PlayerInfo[playerid][pwarns]);
  1891.             SendClientMessage(toplayerid, COLOR_RED, message);
  1892.             if(PlayerInfo[toplayerid][pwarns] >= 10)
  1893.             {
  1894.             Kick(toplayerid);
  1895.             }
  1896.             PlayerPlaySound(playerid, 5206, 0.0, 0.0, 0.0);
  1897.             format(message, sizeof(message), "Администратор %s выдал предупреждение игроку %s с причиной: %s", name, name1, reason);
  1898.             SendClientMessageToAll(COLOR_RED, message);
  1899.           }
  1900.           else SendClientMessage(playerid, 0xFF0000FF, "Этот игрок не подключён!");
  1901.         }
  1902.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /warn <id> <причина>");
  1903.     }
  1904.     else SendClientMessage(playerid, COLOR_RED, "Вам недоступна данная функция!");
  1905.     return 1;
  1906. }
  1907. COMMAND:playsound(playerid, params[])
  1908. {
  1909.  if (IsPlayerAdmin(playerid))
  1910.     {
  1911.         new
  1912.           soundid;
  1913.         if (!sscanf(params, "i", soundid))
  1914.         {
  1915.         PlayerPlaySound(playerid, soundid, 0.0, 0.0, 0.0);
  1916.         }
  1917.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /playsound <id звука>");
  1918.     }
  1919.     else SendClientMessage(playerid, COLOR_RED, "Вам недоступна данная функция!");
  1920.     return 1;
  1921. }
  1922.  
  1923. COMMAND:makegun(playerid, params[])
  1924. {
  1925.  if (PlayerInfo[playerid][pfaction] == 10 || PlayerInfo[playerid][pfaction] == 9 || PlayerInfo[playerid][pfaction] == 8)
  1926.     {
  1927.     ShowPlayerDialog(playerid, 207, DIALOG_STYLE_LIST, "Сделать...", "Пистолет 300 Материалов\nПистолет с глушителем 250 Материалов\nDeagle 400 Материалов\nМ4 570 Материалов\nАК-47 500 Материалов\nДробовик 320 Материалов\nCombat-shotgun 450 Материалов\nSniper 1000 Материалов\nSMG 430 Материалов\nUZI 400 Материалов", "Купить", "Закрыть");
  1928.     }
  1929.     return 1;
  1930. }
  1931. COMMAND:usemedkit(playerid, params[])
  1932. {
  1933. if (PlayerInfo[playerid][pheals] >= 1)
  1934. {
  1935. ended[playerid] = false;
  1936. ApplyAnimation( playerid, "VENDING", "VEND_EAT1_P", 4.1, 0, 1, 1, 1, 1 );
  1937. SetTimerEx("Applytimer", 1000, true, "d", playerid);
  1938. PlayerInfo[playerid][pheals]--;
  1939. }
  1940. if (PlayerInfo[playerid][pheals] < 1)
  1941. {
  1942. PlayerPlaySound(playerid, SOUND_ERROR, 0.0, 0.0, 0.0);
  1943. GameTextForPlayer(playerid, "~r~no medkits!", 1000, 1);
  1944. }
  1945. return 1;
  1946. }
  1947. COMMAND:usefood(playerid, params[])
  1948. {
  1949. if (PlayerInfo[playerid][pfood] >= 1)
  1950. {
  1951. ended[playerid] = false;
  1952. GameTextForPlayer(playerid, "~g~+50 ~r~hp", 1000, 1);
  1953. ApplyAnimation( playerid, "VENDING", "VEND_EAT1_P", 4.1, 0, 1, 1, 1, 1 );
  1954. SetTimerEx("ApplyFoodtimer", 1000, true, "d", playerid);
  1955. PlayerInfo[playerid][pfood]--;
  1956. }
  1957. if (PlayerInfo[playerid][pfood] < 1)
  1958. {
  1959. PlayerPlaySound(playerid, SOUND_ERROR, 0.0, 0.0, 0.0);
  1960. GameTextForPlayer(playerid, "~r~no food!", 1000, 1);
  1961. }
  1962. return 1;
  1963. }
  1964. COMMAND:pay(playerid, params[])
  1965. {
  1966.         new
  1967.           toplayerid,
  1968.           amount;
  1969.         if (!sscanf(params, "ii", toplayerid, amount))
  1970.         {
  1971.           if (toplayerid != INVALID_PLAYER_ID)
  1972.           {
  1973.             new
  1974.             message[40];
  1975.             if(eGetPlayerMoney(playerid) < amount) return SendClientMessage(playerid, COLOR_RED, "У вас не столько денег!");
  1976.             {
  1977.             eGivePlayerMoney(toplayerid, amount);
  1978.             eGivePlayerMoney(playerid, -amount);
  1979.             format(message, sizeof(message), "Вы получили %d$!", amount);
  1980.             SendClientMessage(toplayerid, 0x00FF00FF, message);
  1981.             }
  1982.           }
  1983.           else SendClientMessage(playerid, 0xFF0000FF, "Игрок не найден!");
  1984.         }
  1985.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /pay <id игрока> <сумма>");
  1986.         return 1;
  1987.     }
  1988. COMMAND:vehicle(playerid, params[])
  1989. {
  1990.     if (IsPlayerAdmin(playerid))
  1991.     {
  1992.         new
  1993.           carid;
  1994.         if (!sscanf(params, "i", carid))
  1995.         {
  1996.             new
  1997.               message[40];
  1998.             format(message, sizeof(message), "Машина с id %d созданна!", carid);
  1999.             SendClientMessage(playerid, 0x00FF00FF, message);
  2000.             new Float:x, Float:y, Float:z;
  2001.             GetPlayerPos(playerid, x, y, z);
  2002.             CreateVehicle(carid, x, y, z, 82.2873, PlayerInfo[playerid][pcolor1], PlayerInfo[playerid][pcolor2], 60);
  2003.         }
  2004.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /vehicle <id>");
  2005.     }
  2006.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2007.     return 1;
  2008. }
  2009. COMMAND:makepayday(playerid, params[])
  2010. {
  2011.  if (IsPlayerAdmin(playerid))
  2012.     {
  2013.     SendClientMessage(playerid, COLOR_GREEN, "Вы вызвали Payday!");
  2014.     payday();
  2015.     }
  2016.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2017.     return 1;
  2018. }
  2019. COMMAND:spectate(playerid, params[])
  2020. {
  2021.  if (IsPlayerAdmin(playerid))
  2022.     {
  2023.         new
  2024.           specid;
  2025.         if (!sscanf(params, "i", specid))
  2026.         {
  2027.             new
  2028.               message[40];
  2029.             format(message, sizeof(message), "Вы сейчас следите за игроком: %d", specid);
  2030.             SendClientMessage(playerid, 0x00FF00FF, message);
  2031.             TogglePlayerSpectating(playerid, 1);
  2032.             PlayerSpectatePlayer(playerid, specid);
  2033.  
  2034.         }
  2035.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /spectate <id>");
  2036.     }
  2037.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2038.     return 1;
  2039. }
  2040. COMMAND:spectateoff(playerid, params[])
  2041. {
  2042.  if (IsPlayerAdmin(playerid))
  2043.     {
  2044.     TogglePlayerSpectating(playerid, 0);
  2045.     GameTextForPlayer(playerid, "~w~SPECTATE ~r~OFF", 2000, 3);
  2046.     }
  2047.     return 1;
  2048. }
  2049. COMMAND:giveadmin(playerid, params[])
  2050. {
  2051.     if (IsPlayerAdmin(playerid))
  2052.     {
  2053.         new
  2054.           playertoadmin;
  2055.         if (!sscanf(params, "i", playertoadmin))
  2056.         {
  2057.             new
  2058.               message[80];
  2059.             PlayerInfo[playerid][pAdmin]++;
  2060.             format(message, sizeof(message), "Вам выдали админку уровня: %d", PlayerInfo[playerid][pAdmin]);
  2061.  
  2062.             SendClientMessage(playertoadmin, COLOR_GREEN, message);
  2063.             PlayerPlaySound(playertoadmin, SOUND_MESSAGE, 0.0, 0.0, 0.0);
  2064.         }
  2065.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /giveadmin <id>");
  2066.     }
  2067.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2068.     return 1;
  2069. }
  2070. /*
  2071. COMMAND:motd(playerid, params[])
  2072. {
  2073.     if (IsPlayerAdmin(playerid))
  2074.     {
  2075.         new
  2076.           motd[80];
  2077.         if (!sscanf(params, "s", motd))
  2078.         {
  2079.  
  2080.         }
  2081.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /setmotd <сообщение>");
  2082.     }
  2083.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2084.     return 1;
  2085. }
  2086. */
  2087. COMMAND:downgradeadmin(playerid, params[])
  2088. {
  2089.     if (IsPlayerAdmin(playerid))
  2090.     {
  2091.         new
  2092.           playertoadmin;
  2093.         if (!sscanf(params, "i", playertoadmin))
  2094.         {
  2095.             new
  2096.               message[80];
  2097.             format(message, sizeof(message), "Вы выдали понизили уровень админки игроку с  id: %d уровень админики: %d", playertoadmin, PlayerInfo[playerid][pAdmin]);
  2098.             SendClientMessage(playerid, COLOR_BLUE, message);
  2099.             PlayerInfo[playerid][pAdmin]--;
  2100.             format(message, sizeof(message), "Вам понизили админку теперь ваш уровень: %d", PlayerInfo[playerid][pAdmin]);
  2101.             SendClientMessage(playertoadmin, COLOR_RED, message);
  2102.             PlayerPlaySound(playertoadmin, SOUND_ERROR, 0.0, 0.0, 0.0);
  2103.         }
  2104.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /downgradeadmin <id>");
  2105.     }
  2106.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2107.     return 1;
  2108. }
  2109. COMMAND:getmaterials(playerid, params[])
  2110. {
  2111.     new needmaterials;
  2112.     if (!sscanf(params, "i", needmaterials))
  2113.     {
  2114.     if (PlayerInfo[playerid][pfaction] == 10 || PlayerInfo[playerid][pfaction] == 9 || PlayerInfo[playerid][pfaction] == 8)
  2115.     {
  2116.  
  2117.     if (PlayerInfo[playerid][prank] >= 2 && PlayerInfo[playerid][pfaction] == 10)
  2118.     {
  2119.     if (Materials1 >= needmaterials)
  2120.     {
  2121.     Materials1 -= needmaterials;
  2122.     PlayerInfo[playerid][pmaterials] += needmaterials;
  2123.     new name[MAX_PLAYER_NAME];
  2124.     GetPlayerName(playerid, name, sizeof(name));
  2125.     new message[40];
  2126.     format(message, sizeof(message), "%s %d ранга: Взял материалы в размере %d штук", name, PlayerInfo[playerid][prank], needmaterials);
  2127.     SendTeamMessage(COLOR_YELLOW, message, 10);
  2128.     }
  2129.     }
  2130.     if (PlayerInfo[playerid][prank] >= 2 && PlayerInfo[playerid][pfaction] == 9)
  2131.     {
  2132.     if (Materials2 >= needmaterials)
  2133.     {
  2134.     Materials1 -= needmaterials;
  2135.     PlayerInfo[playerid][pmaterials] += needmaterials;
  2136.     new name[MAX_PLAYER_NAME];
  2137.     GetPlayerName(playerid, name, sizeof(name));
  2138.     new message[40];
  2139.     format(message, sizeof(message), "%s %d ранга: Взял материалы в размере %d штук", name, PlayerInfo[playerid][prank], needmaterials);
  2140.     SendTeamMessage(COLOR_YELLOW, message, 9);
  2141.     }
  2142.     }
  2143. if (PlayerInfo[playerid][prank] >= 2 && PlayerInfo[playerid][pfaction] == 8)
  2144.     {
  2145.     if (Materials3 >= needmaterials)
  2146.     {
  2147.     Materials3 -= needmaterials;
  2148.     PlayerInfo[playerid][pmaterials] += needmaterials;
  2149.     new name[MAX_PLAYER_NAME];
  2150.     GetPlayerName(playerid, name, sizeof(name));
  2151.     new message[40];
  2152.     format(message, sizeof(message), "%s %d ранга: Взял материалы в размере %d штук", name, PlayerInfo[playerid][prank], needmaterials);
  2153.     SendTeamMessage(COLOR_YELLOW, message, 8);
  2154.     }
  2155.     }
  2156.     }
  2157.     else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /getmaterials <количество>");
  2158.     }
  2159.     return 1;
  2160. }
  2161. COMMAND:rankup(playerid, params[])
  2162. {
  2163.     if (PlayerInfo[playerid][prank] == 8)
  2164.     {
  2165.         new
  2166.           playertorank;
  2167.         if (!sscanf(params, "i", playertorank))
  2168.         {
  2169.             new
  2170.             message[40];
  2171.             PlayerInfo[playerid][prank]++;
  2172.             format(message, sizeof(message), "Вас повысили до %d ранга", PlayerInfo[playerid][prank]);
  2173.             SendClientMessage(playertorank, COLOR_GREEN, message);
  2174.             PlayerPlaySound(playertorank, SOUND_MESSAGE, 0.0, 0.0, 0.0);
  2175.         }
  2176.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /rankup <id>");
  2177.     }
  2178.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2179.     return 1;
  2180. }
  2181. COMMAND:rankdown(playerid, params[])
  2182. {
  2183.     if (PlayerInfo[playerid][prank] == 8)
  2184.     {
  2185.         new
  2186.           playertorank;
  2187.         if (!sscanf(params, "i", playertorank))
  2188.         {
  2189.             new
  2190.             message[40];
  2191.             PlayerInfo[playerid][prank]--;
  2192.             format(message, sizeof(message), "Вас повысили до %d ранга", PlayerInfo[playerid][prank]);
  2193.             SendClientMessage(playertorank, COLOR_GREEN, message);
  2194.             PlayerPlaySound(playertorank, SOUND_ERROR, 0.0, 0.0, 0.0);
  2195.         }
  2196.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /rankup <id>");
  2197.     }
  2198.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2199.     return 1;
  2200. }
  2201. COMMAND:invite(playerid, params[])
  2202. {
  2203.     if (PlayerInfo[playerid][prank] == 10)
  2204.     {
  2205.         new
  2206.           playertoinvite;
  2207.         if (!sscanf(params, "i", playertoinvite))
  2208.         {
  2209.             SendClientMessage(playertoinvite, COLOR_GREEN, "Вас приняли в фракцию");
  2210.             PlayerPlaySound(playertoinvite, SOUND_ERROR, 0.0, 0.0, 0.0);
  2211.             PlayerInfo[playertoinvite][pfaction] = PlayerInfo[playerid][pfaction];
  2212.             PlayerInfo[playertoinvite][pfaction] = 1;
  2213.         }
  2214.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /invite <id>");
  2215.     }
  2216.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2217.     return 1;
  2218. }
  2219. COMMAND:expel(playerid, params[])
  2220. {
  2221.     if (PlayerInfo[playerid][prank] == 10)
  2222.     {
  2223.         new
  2224.           playertoinvite;
  2225.         if (!sscanf(params, "i", playertoinvite))
  2226.         {
  2227.             SendClientMessage(playertoinvite, COLOR_GREEN, "Вас выгнали из фракции!");
  2228.             PlayerPlaySound(playertoinvite, SOUND_ERROR, 0.0, 0.0, 0.0);
  2229.             PlayerInfo[playertoinvite][pfaction] = 0;
  2230.             SetPlayerHealth(playerid, 0.0);
  2231.             PlayerInfo[playertoinvite][prank] = 0;
  2232.         }
  2233.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /expel <id>");
  2234.     }
  2235.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2236.     return 1;
  2237. }
  2238. COMMAND:g(playerid, params[])
  2239. {
  2240.     if (PlayerInfo[playerid][plvl] >= 3)
  2241.     {
  2242.         new chatmessage[80];
  2243.         if (!sscanf(params, "s", chatmessage))
  2244.         {
  2245.             new message[100];
  2246.             new name[MAX_PLAYER_NAME];
  2247.             GetPlayerName(playerid, name, sizeof(name));
  2248.             format(message, sizeof(message), "[Общий] %s: %s",name, chatmessage);
  2249.             SendClientMessageToAll(COLOR_YELLOW, message);
  2250.         }
  2251.         else SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /g <сообщение>");
  2252.     }
  2253.     else SendClientMessage(playerid, 0xFF0000FF, "Вам недоступна данная функция");
  2254.     return 1;
  2255. }
  2256. COMMAND:maskon(playerid, params[])
  2257. {
  2258.     if(Mask[playerid] == 1)
  2259.     {
  2260.     SetPlayerColor(playerid, 0xFFFFFFFF);
  2261.     GameTextForPlayer(playerid, "~w~INVISIBLE ~r~ON ~w~To turn off type /maskoff", 5000, 4);
  2262.     }
  2263.     else SendClientMessage(playerid, 0xFF0000FF, "У вас нет маски купите в 24/7");
  2264.     return 1;
  2265. }
  2266. COMMAND:maskoff(playerid, params[])
  2267. {
  2268.     if(Mask[playerid] = 0)
  2269.     {
  2270.     SetPlayerColor(playerid, 0xFFFFFF00);
  2271.     GameTextForPlayer(playerid, "~w~INVISIBLE ~r~OFF ~w~To turn on type /maskon", 5000, 4);
  2272.     }
  2273.     else SendClientMessage(playerid, 0xFF0000FF, "У вас нет маски купите в 24/7");
  2274.     return 1;
  2275. }
  2276. // ------- ДЛЯ АДМИНА ---------
  2277. COMMAND:acreatehome(playerid, params[])
  2278. {
  2279. // Проверка на администратора, пример: if(PlayerInfo[playerid][pAdmin]==0)return SendClientMessage(playerid,-1,"У вас не хватает доступа к данной команде!");
  2280. ShowPlayerDialog(playerid,D_H_CREATE_DESC,DIALOG_STYLE_INPUT,"Создание дома - описание","Введите описание для дома.","Далее","Закрыть"); // Создаем диалог
  2281. return 1;
  2282. }
  2283. COMMAND:ahlock(playerid, params[])
  2284.   {
  2285.                 // Проверка на администратора
  2286.             for(new h=1;h<=m_h;h++) // запускаем цикл
  2287.                 {
  2288.                     if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY],House[h][hZ]))continue; // узнаем, стоит ли игрок рядом с одним из домов или нет (если нет, пропускаем оператором continue)
  2289.                     if(House[h][hLock]==1)House[h][hLock]=0,GameTextForPlayer(playerid,"~g~House unlocked",100,1); // если замок дома закрыт - открываем
  2290.                     else House[h][hLock]=1,GameTextForPlayer(playerid,"~r~House locked",100,1); // если открыт - закрываем
  2291.                         SaveHouse(h); // сохраняем дом
  2292.                         return 1;
  2293.                 }
  2294.             return 1;
  2295.     }
  2296. COMMAND:buyhouse(playerid, params[])
  2297.       {
  2298.                 for(new h=1;h<=m_h;h++)
  2299.                 {
  2300.                     if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY],House[h][hZ]))continue;
  2301.                         if(GetPlayerMoney(playerid)<House[h][hPrice])return SendClientMessage(playerid,-1,"У вас не хватает средств!"); // Проверяем наличие средств
  2302.                         if(strcmp(House[h][hOwner],"None",true)!=0)return SendClientMessage(playerid,-1,"Дом уже куплен!"); // узнаем есть ли владелец или нет при помощи сравнения строки
  2303.                         strmid(House[h][hOwner],Name(playerid),0,24,24),UpdateHouse(h); // если нет, записываем нового владельца, обновляем 3д ин-цию и меняем пикап дома
  2304.                         SaveHouse(h);
  2305.                         eGivePlayerMoney(playerid,-House[h][hPrice]); // снимаем деньги
  2306.                         SendClientMessage(playerid,COLOR_GREEN,"Вы успешно купили дом!");
  2307.                         PlayerInfo[playerid][phomeX] = House[h][hX];
  2308.                         PlayerInfo[playerid][phomeY] = House[h][hY];
  2309.                         PlayerInfo[playerid][phomeY] = House[h][hZ];
  2310.                         return 1;
  2311.                 }
  2312.                 SendClientMessage(playerid,COLOR_GREY,"Рядом с вами нет дома!");
  2313.                 return 1;
  2314.         }
  2315.         COMMAND:sellhouse(playerid, params[])
  2316.         {
  2317.             for(new h=1;h<=m_h;h++)
  2318.             {
  2319.                 if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY],House[h][hZ]))continue;
  2320.                 if(!strcmp(House[h][hOwner],Name(playerid),true)) // если игрок владелец этого дома, тогда...
  2321.                 {
  2322.                     strmid(House[h][hOwner],"None",0,5,5),UpdateHouse(h);
  2323.                     SaveHouse(h);
  2324.                     GivePlayerMoney(playerid,House[h][hPrice]/2); // отдаем игроку пол цены за дом
  2325.                     SendClientMessage(playerid,-1,"Вы продали свой дом!");
  2326.                                 return 1;
  2327.                 }
  2328.             }
  2329.             //SendClientMessage(playerid,-1,"Рядом с вами нет дома!");
  2330.             return 1;
  2331.       }
  2332. COMMAND:enterhome(playerid, params[])
  2333.         {
  2334.             for(new h=1;h<=m_h;h++)
  2335.             {
  2336.                 if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[
  2337. h][hY],House[h][hZ]))continue;
  2338.                 if(strcmp(House[h][hOwner],Name(playerid),true)!=0 && House[h][hLock]==1)return SendClientMessage(playerid,-1,"Дом закрыт!"); // Если вы не владелец и дом закрыт- не пустит
  2339.                 SetPlayerPos(playerid,HInts[House[h][hInterior]][hiX]
  2340. ,HInts[House[h][hInterior]][hiY],HInts[House[
  2341. h][hInterior]][hiZ]); // Тут, мы при помощи номера ячейки узнаем координаты внутри дома
  2342.                 SetPlayerInterior(playerid,HInts[House[h][hInterior]][
  2343. hiInt]); // + узнаем его ид (HInts[номер_ячейки][hiInt]
  2344.                 SetPlayerVirtualWorld(playerid,House[h][hVirtWorld]); // Присваиваем игроку вирт. мир
  2345.                 }
  2346.             return 1;
  2347.         }
  2348.         COMMAND:hexit(playerid, params[])
  2349.         {
  2350.             for(new h=1;h<=m_h;h++)
  2351.             {
  2352.                 if(IsPlayerInRangeOfPoint(playerid,25.5,HInts[House[h][hInterior]
  2353. ][hiX],HInts[House[h][hInterior]][hiY]
  2354. ,HInts[House[h][hInterior]][hiZ]) && GetPlayerVirtualWorld(playerid)==House[h][hVirtWorld])
  2355.                 {
  2356.                     SetPlayerPos(playerid,House[h][hX],House[h][hY],House[
  2357. h][hZ]);
  2358.                     SetPlayerVirtualWorld(playerid,0),SetPlayerInterior(playerid,0);
  2359.                         }
  2360.                 }
  2361.             return 1;
  2362.         }
  2363.         COMMAND:hlock(playerid, params[])
  2364.         {
  2365.             for(new h=1;h<=m_h;h++)
  2366.             {
  2367.                 if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[
  2368. h][hY],House[h][hZ]))continue;
  2369.                 if(strcmp(House[h][hOwner],Name(playerid),true)!=0)return SendClientMessage(playerid,-1,"У вас нет ключей от этого дома!"); // Сравниваем владельца дома с ником игрока, если не совпадает - выводим сообщение
  2370.                 if(House[h][hLock]==0)House[h][hLock]=1,SaveHouse(h),
  2371. GameTextForPlayer(playerid,"~r~House locked",100,1); // если дом открыт - закрываем (0 открыт / 1 закрыт)
  2372.                 else if(House[h][hLock]==1)return SendClientMessage(playerid,-1,"Дом уже закрыт!"); // иначе выводим сообщение
  2373.                         return 1;
  2374.                 }
  2375.             return 1;
  2376.         }
  2377.         COMMAND:hopen(playerid, params[])
  2378.         {
  2379.             for(new h=1;h<=m_h;h++)
  2380.             {
  2381.                 if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[
  2382. h][hY],House[h][hZ]))continue;
  2383.                 if(strcmp(House[h][hOwner],Name(playerid),true)!=0)return SendClientMessage(playerid,-1,"У вас нет ключей от этого дома!");
  2384.                 if(House[h][hLock]==1)House[h][hLock]=0,SaveHouse(h),
  2385. GameTextForPlayer(playerid,"~g~House unlocked",100,1);
  2386.                 else if(House[h][hLock]==0)return SendClientMessage(playerid,-1,"Дом уже открыт!");
  2387.                         return 1;
  2388.                 }
  2389.             return 1;
  2390.         }
  2391.  
  2392. COMMAND:buy(playerid, params[])
  2393. {
  2394.     new PlayerinteriorID = GetPlayerInterior(playerid);
  2395.     if (PlayerinteriorID == 17 || PlayerinteriorID == 10 || PlayerinteriorID == 18 || PlayerinteriorID == 16 || PlayerinteriorID == 4 || PlayerinteriorID == 6)
  2396.     {
  2397.      new Float:xposint, Float:yposint, Float:zposint;
  2398.         GetPlayerPos(playerid, xposint, yposint, zposint);
  2399.         if (IsPlayerInRangeOfPoint(playerid, 20.0, -25.884498,-185.868988,1003.546875) || IsPlayerInRangeOfPoint(playerid, 20.0, 6.091179,-29.271898,1003.549438) || IsPlayerInRangeOfPoint(playerid, 20.0, -25.132598,-139.066986,1003.546875) || IsPlayerInRangeOfPoint(playerid, 20.0, -27.312299,-29.277599,1003.557250) ||  IsPlayerInRangeOfPoint(playerid, 20.0, -26.691598,-55.714897,1003.546875))
  2400.         {
  2401.         ShowPlayerDialog(playerid, 121, DIALOG_STYLE_LIST, "Купить", "Лопата 100$\nТерминал 1000$\nЦветы 80$\nАптечка 320$\nЕда 35$\nФотоаппарт 300$\nМаска 190$", "Купить", "Закрыть");
  2402.         }
  2403.     }
  2404.     if (PlayerinteriorID == 1 || PlayerinteriorID == 4 || PlayerinteriorID == 6 || PlayerinteriorID == 7 || PlayerinteriorID == 6)
  2405.     {
  2406.      new Float:xposint, Float:yposint, Float:zposint;
  2407.  
  2408.         GetPlayerPos(playerid, xposint, yposint, zposint);
  2409.         if (IsPlayerInRangeOfPoint(playerid, 20.0,  286.148986,-40.644397,1001.515625) || IsPlayerInRangeOfPoint(playerid, 20.0, 286.800994,-82.547599,1001.515625) ||  IsPlayerInRangeOfPoint(playerid, 20.0, 296.919982,-108.071998,1001.515625) || IsPlayerInRangeOfPoint(playerid, 20.0, 314.820983,-141.431991,999.601562) || IsPlayerInRangeOfPoint(playerid, 20.0, 316.524993,-167.706985,999.593750))
  2410.         {
  2411.         ShowPlayerDialog(playerid, 104, DIALOG_STYLE_LIST, "Купить", "UZI 1850$\nSMG 2000$\nDeagle 2000$\nAK-47 3700$\nM4 4600$\nSniper 5000$\nCombat-shotgun 5000$\nБроня 1800$", "Купить", "Закрыть");
  2412.         }
  2413.     }
  2414.     if (PlayerinteriorID == 15 || PlayerinteriorID == 14 || PlayerinteriorID == 3 || PlayerinteriorID == 1 || PlayerinteriorID == 5 || PlayerinteriorID == 18)
  2415.     {
  2416.      new Float:xposint, Float:yposint, Float:zposint;
  2417.  
  2418.         GetPlayerPos(playerid, xposint, yposint, zposint);
  2419.         if (IsPlayerInRangeOfPoint(playerid, 20.0, 207.737991,-109.019996,1005.132812) || IsPlayerInRangeOfPoint(playerid, 20.0, 204.332992,-166.694992,1000.523437) || IsPlayerInRangeOfPoint(playerid, 20.0, 207.054992,-138.804992,1003.507812) || IsPlayerInRangeOfPoint(playerid, 20.0, 203.777999,-48.492397,1001.804687) || IsPlayerInRangeOfPoint(playerid, 20.0, 226.293991,-7.431529,1002.210937) || IsPlayerInRangeOfPoint(playerid, 20.0, 161.391006,-93.159156,1001.804687))
  2420.         {
  2421.         CallRemoteFunction("selectskin", "i", playerid);
  2422.         CallRemoteFunction("SelectSkinDialog", "i", playerid);
  2423.     }
  2424.     else SendClientMessage(playerid, 0xFF0000FF, "Вы не в интерьере!");
  2425.     return 1;
  2426. }
  2427. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×