Перейти к содержанию

Поиск сообщества

Показаны результаты для тегов 'Мануал'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Информационный раздел
    • Новости портала
    • Техническая поддержка
    • Приватный форум
  • CRMP 0.3е
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Дополнительные скрипты
    • Мануалы/Уроки
    • Модификации
    • Поиск
    • Архив Вопросов/Проблем/Ошибок
    • Файловый архив
    • Другое
  • SAMP/CRMP 0.3.7
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Плагины
    • Поиск
    • Документация
  • Другое
    • Флейм

Поиск результатов в...

Поиск результатов, которые содержат...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Найдено: 385 результатов

  1. Всех приветствую дорогие пользователи портала CR-MP Сегодня хотел бы выложить систему рекламных щитов! Как это будет работать: Лидер СМИ набирает /addtext Идет набор....... /addtext Имя_Фамилия продает..... И так далее, можете посмотреть скрин как будет выглядеть! Делал на SAMP и CRMP идет только на 0.3.7 [spoiler=Скриншот] Только есть 2 проблемы: 1) Нет сохранение,после рестарта сервера,текст пропадает. 2) Если писать длинное приложение то оно уходит за рамки щита! Нужно просто сделать что бы был автоматический перенос текста! И так начнем: Добавляем переменную new new addnews[37]; Потом в OnPlayerCommandText: if(strcmp(cmd, "/addtext", true) == 0) { if(PlayerInfo[playerid][pMember] != 7) return SendClientMessage(playerid,COLOR_GRAD1, "Вы не сотрудник СМИ."); // проверка на фракцию tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD1, "ИНФО: /addtext [id щита] [текст]"); new para1 = strval(tmp); new texts[1400]; texts = strtok(cmdtext, idx); adtext(para1, texts); return 1; } Если у кого то CMD то добавляем это: CMD:addtext(playerid,params[]) { if(Gamer[playerid][pLeader] != 10) return true; if(sscanf(params, "is[128]", params[0], params[1])) return SendClientMessageEx(playerid, COLOR_GRAD1, "ИНФО: /addtext [id_Ad][text]"); adtext(params[0],params[1]); return true; } В конец мода вставляем это: adtext(id,string[]) { new str[256]; format(str, sizeof(str),"{FFFFFF}№%d\n%s",id,string); SetDynamicObjectMaterialText(addnews[id],0, str, 90, "Impact", 24, 0, -32256, -16777216, 1); return true; } Ну и сами щиты (они сделаны под самп,под крмп измените координаты и ID объекта) В OnGameModeInIt: addnews[0] = CreateDynamicObjectEx(4238,1538.5000000,-1609.8000488,26.0000000,0.0000000,0.0000000,300.0000000,500.000,500.000); // addnews[1] = CreateDynamicObjectEx(7910,1415.3000488,-1719.9000244,33.7999992,0.0000000,0.0000000,137.5000000,500.000,500.000); //object(s bank 1) 37 плакатов по городу addnews[2] = CreateDynamicObjectEx(7910,1716.4000244,-782.2000122,73.5999985,0.0000000,0.0000000,346.2470703,500.000,500.000); //object(s daroga 4) addnews[3] = CreateDynamicObjectEx(7910,1623.0999756,820.7000122,27.5000000,0.0000000,0.0000000,238.0000000,500.000,500.000); //object(s baza lcn) addnews[4] = CreateDynamicObjectEx(4238,1786.5000000,1476.0000000,26.1000004,0.0000000,0.0000000,32.0000000,500.000,500.000); //object(b daroga) addnews[5] = CreateDynamicObjectEx(4238,356.3999939,-1718.0999756,26.6000004,0.0000000,0.0000000,300.0000000,500.000,500.000); //object(b daroga) addnews[6] = CreateDynamicObjectEx(7910,1497.0999756,-945.0000000,54.0999985,0.0000000,0.0000000,112.9980774,500.000,500.000); //object(s daroga) addnews[7] = CreateDynamicObjectEx(7910,1716.6999512,-778.2999878,73.5999985,0.0000000,0.0000000,180.7500000,500.000,500.000); //object(s daroga 2) addnews[8] = CreateDynamicObjectEx(7910,1777.5000000,888.0000000,29.8999996,0.0000000,0.0000000,127.7478027,500.000,500.000); //object(s chorraxa 2) addnews[9] = CreateDynamicObjectEx(7910,1854.5999756,-1487.6999512,25.7999992,0.0000000,0.0000000,180.0000000,500.000,500.000); //object(s daroga 6) addnews[10] = CreateDynamicObjectEx(4238,1353.9000244,-1713.5999756,26.0000000,2.0000000,358.0000000,120.0000000,500.000,500.000); //object(b bank) addnews[11] = CreateDynamicObjectEx(4238,734.5000000,-1102.1999512,33.3999977,0.0000000,0.0000000,180.2500000,500.000,500.000); //object(b daroga) addnews[12] = CreateDynamicObjectEx(7910,1242.9000244,1089.8000488,27.6000004,0.0000000,0.0000000,159.7451172,500.000,500.000); //object(vgwestbillbrd11)(14) addnews[13] = CreateDynamicObjectEx(7914,1415.5000000,-1719.6999512,34.0000000,0.0000000,0.0000000,137.9658203,500.000,500.000); //object(bank black) addnews[14] = CreateDynamicObjectEx(7910,1408.9000244,-1408.0999756,33.5999985,0.0000000,0.0000000,262.2500000,500.000,500.000); //object(s zig) addnews[15] = CreateDynamicObjectEx(7910,1412.5999756,-1724.1999512,33.7999992,0.0000000,0.0000000,331.9993897,500.000,500.000); //object(s bank 1) addnews[16] = CreateDynamicObjectEx(7906,1412.6999512,-1724.1999512,33.5000000,0.0000000,0.0000000,331.9965820,500.000,500.000); //object(bank white) addnews[17] = CreateDynamicObjectEx(7910,1863.5000000,-1450.6999512,31.7000008,0.0000000,0.0000000,38.2480469,500.000,500.000); //object(s daroga 5) addnews[18] = CreateDynamicObjectEx(7910,1629.6999512,-839.0000000,76.9999847,0.0000000,0.0000000,132.2500000,500.000,500.000); //object(s daroga) addnews[19] = CreateDynamicObjectEx(7909,219.8000030,-1434.3000488,31.0000000,0.0000000,0.0000000,0.2500000,500.000,500.000); //object(s daroga 8) addnews[20] = CreateDynamicObjectEx(4238,704.0000000,-1115.5999756,32.2000008,0.0000000,0.0000000,5.0000000,500.000,500.000); //object(billbrdlan_10)(3) addnews[21] = CreateDynamicObjectEx(7910,1673.0999756,-711.0999756,69.0000000,0.0000000,0.0000000,187.5000000,500.000,500.000); //object(s daroga 3) addnews[22] = CreateDynamicObjectEx(7909,2066.8000488,-1790.3000488,28.0000000,0.0000000,0.0000000,90.5000000,500.000,500.000); //object(s bandi) addnews[23] = CreateDynamicObjectEx(4238,1007.4000244,1314.5999756,30.7999992,0.0000000,0.0000000,29.2500000,500.000,500.000); //object(b rm baza) addnews[24] = CreateDynamicObjectEx(7910,1240.9000244,1086.9000244,27.6000004,0.0000000,0.0000000,323.7500000,500.000,500.000); //object(s daroga) addnews[25] = CreateDynamicObjectEx(7910,1493.5999756,-946.2999878,54.0000000,0.0000000,0.0000000,278.0000000,500.000,500.000); //object(s 2 bank) addnews[26] = CreateDynamicObjectEx(4238,516.5999756,-1725.9000244,31.3999996,0.0000000,0.0000000,112.0000000,500.000,500.000); //object(s daroga 7) addnews[27] = CreateDynamicObjectEx(4238,1786.9000244,1075.9000244,26.8000011,0.0000000,0.0000000,31.2500000,500.000,500.000); //object(b daroga) addnews[28] = CreateDynamicObjectEx(4238,1805.0999756,-1691.5000000,30.7999992,0.0000000,0.0000000,175.2500000,500.000,500.000); //object(b alhabra) addnews[29] = CreateDynamicObjectEx(4238,597.7000122,-1744.4000244,33.2000008,0.0000000,0.0000000,290.0000000,500.000,500.000); //object(b daroga) addnews[30] = CreateDynamicObjectEx(7910,1775.0000000,885.2999878,29.9000015,0.0000000,0.0000000,324.0000000,500.000,500.000); //object(s chorraxa) addnews[31] = CreateDynamicObjectEx(7909,1963.8000488,-1522.6999512,24.6000004,0.0000000,0.0000000,90.2500000,500.000,500.000); //object(s daroga) addnews[32] = CreateDynamicObjectEx(7910,1628.6999512,-841.9000244,76.9999847,0.0000000,0.0000000,326.9979248,500.000,500.000); //object(s daroga) addnews[33] = CreateDynamicObjectEx(7910,1861.5999756,-1448.0000000,31.7000008,0.0000000,0.0000000,233.0000000,500.000,500.000); //object(s alhambra) addnews[34] = CreateDynamicObjectEx(4238,1565.3000488,-1722.5000000,31.1967049,0.0000000,0.0000000,34.7500000,500.000,500.000); //object(b meria) addnews[35] = CreateDynamicObjectEx(7910,1627.0999756,819.5000000,27.5000000,0.0000000,0.0000000,73.4968262,500.000,500.000); //object(s baza lcn 1) addnews[36] = CreateDynamicObjectEx(7910,1673.5000000,-714.0999756,68.9999695,0.0000000,0.0000000,22.2481690,500.000,500.000); //object(s daroga 5) for (new i; i < 37; i++) { new string[128]; format(string,sizeof(string),"{FFFFFF}№%d\nЗдесь может быть ваша\n{FF9900}реклама",i); SetDynamicObjectMaterialText(addnews[i], 0, string, 90, "Impact", 24, 0, -32256, -16777216, 1); } Ну вот и все! Ваши щиты готовы к работе! Ну вот и все! Пользуйтесь на здоровье! Автор урока: Неизвестен. Слил данный урок: Marvellous (Я)
  2. День добрый. Хотел бы написать про стоки , точнее как можно сделать так , чтобы не писать: SendClientMessage(playerid, 0x149cffFF, "Текст"); И так приступим: Сначало напишим #define #define SIM SendInformationMessage #define SEM SendErrorMessage #define SHCM SendHelpCommandMessage Теперь к стокам. stock SendInformationMessage(playerid, mes[]) { new message[500]; format(message, 500, "%s", mes); SCM(playerid, 0xABABABFF, message); return 1; } stock SendErrorMessage(playerid, mes[]) { new message[500]; format(message, 500, "%s", mes); SCM(playerid, 0xFF0000FF, message); return 1; } stock SendHelpCommandMessage(playerid, mes[]) { new message[500]; format(message, 500, "Используйте: >{FFFFFF} %s", mes); SCM(playerid, 0x78FF0DFF, message); return 1; } Теперь объясню как это пишится(делается). [spoiler=Пояснение]Вообще я не где не видел такой системы. Может где-то и есть уже , кто-то до меня придумал Так вот , чтобы не писать как я показывал вверху , можно просто вставить текст , её напишу ниже и как это будет выглядить. Пример команды /hp CMD:hp(playerid, params[]) { if(PI[playerid][ADMIN] < 1) return SEM(playerid,"Вы не администратор"); (дальше не буду писать так как , лень) } SEM - SendErrorClient , можно и сделать в #define по другому , точнее изменить на своё. Далее. Можно написать в место SCM - SHCM SenHelpClientMessage так будет легче. SCM(playerid,0x149cffFF,"Используйте: > /goto"); А если написать SHCM то получится вот так: SHCM(playerid, "/goto"); Да но будет наверно глупо , зачем так делать когда можно написать просто "Используйте". Вообще мне так удобней если честно. Мануал был написан только для Кодеров , ну как кодеров скриптеров и так далее. Думаю вы уже поймёте :D Автор: Олег Курзов. Я. При копировании на другие порталы указывайте автора.
  3. Marvellous

    Ворота для фракции

    Всем привет дорогие пользователи портала CRMP. Не нашел данной системы на данном портале и решил выложить вам! Если есть где то то прошу удалить данный мануал ибо избежать негатива от заумных речей! И так,как говориться меньше слов,больше дела! Поехали: Создаем переменные new: new vorfrac;//Замените на своё new vorfracTimer;//Замените на своё Далее добавим ко всем forward forward vorfracClose();//Замените на своё Теперь сами ворота создаем,ко всем объектам добавляем: vorfrac = CreateObject(Ид ворот, X,Y,Z); Если не поняли немного,то у вас должно получиться вот так: vorfrac = CreateObject(980,1541.30273438,-1627.38574219,15.15620422,0.00000000,0.00000000,90. 00000000); Далее создадим команду которая будет открывать ворота(не закрывать,а открывать) if (strcmp(cmdtext, "/open", true) == 0)//Тут пиши свою команду { if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2) //За место цифр 1,2, ставь иды своих фракций которые смогут открыть эти ворота { if(!PlayerToPoint(15.0,playerid,X,Y,Z))// Тут пишешь координаты открытых ворот . Вот так должно получится if(!PlayerToPoint(15.0,playerid,1541.30273438,-1627.38574219,21)) 15 это радиус на котором работает команда { SendClientMessage(playerid, COLOR_RED, "** Вы не возле ворот!"); return 1; } MoveObject(vorfrac,X,Y,Z,2.00,-1000.0,-1000.0,-1000.0);// Тут пишешь коорды открытых ворот "2.00,-1000.0,-1000.0,-1000.0" не трогаешь 2.00 это скорость открытия ворот. Получится должно вот так MoveObject(vorfrac,1541.30273438,-1627.38574219,21,2.00,-1000.0,-1000.0,-1000.0); SetTimer("vorfracClose", 10000, 0);//10000 это время через которое ворота закроются в милесикундах vorfracTimer = SetTimer("vorfracClose", 10000, 0); PlayerPlaySound(playerid, 1190, 0.0, 0.0, 0.0);// это звук открытия ворот SendClientMessage(playerid, COLOR_LIGHTBLUE,"* Ворота закроются через 15 сек"); return 1; } else { SendClientMessage(playerid, COLOR_RED,"**Вы не мент/Армеец!"); return 1; } } Далее создаем паблик закрытых ворот! (можно куда нибудь в конец мода его закинуть) { MoveObject(vorfrac, X,Y,Z,2.00,-1000.0,-1000.0,-1000.0);//Тут пиши коорды закрытых ворот и также 2.00 это скорость закрытия ворот. Получится должно так MoveObject(vorfrac, 1541.30273438,-1627.38574219,15.15620422,2.00,-1000.0,-1000.0,-1000.0); KillTimer(vorfracTimer);//Это мы остановили таймер return 1; } Ну вот и все! Это было создано для 2-х фракций,что бы добавить еще фракции то просто дописываем в команде if (strcmp(cmdtext, "/open", true) == 0)//Тут пиши свою команду { if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2) //За место цифр 1,2, ставь иды своих фракций которые смогут открыть эти ворота { Продолжение: if (strcmp(cmdtext, "/open", true) == 0)//Тут пиши свою команду { if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2||PlayerInfo[playerid][pMember] == 3||PlayerInfo[playerid][pLeader] == 3||PlayerInfo[playerid][pMember] == 4||PlayerInfo[playerid][pLeader] == 4) { И все,4 фракции смогут их открыть! Спасибо всем. Если где то ошибся то подправьте! Всем удачной установки данной системы! Автор: Неизвестен. Брал с другого портала!
  4. Привет народ! Не знаю, сливали эту кмд или нет, но я писал её лично, думаю все знают, что это за команда. Объяснять не будут. Просто, вот: Команда: CMD:clist(playerid) { if(!IsPlayerConnected(playerid)) return false;//Проверка на, авторизован ли игрок. if(GetPlayerFaction(playerid))//Проверка, состоит ли игрок во фракции { ShowPlayerDialog(playerid, 213, DIALOG_STYLE_LIST, "Цвет Ника", "{FF002F}1. Красный\n{2B00FF}2. Синий\n{F3FF00}3. Жёлтый\n{15FF00}4. Зелёный\n{8B00FF}5. Фиолетовый\n{00DAFF}6. Голубой\n{FF7300}7. Оранжевый\n{FF009E}8. Розовый\n{00FFDE}9. Светло-голубой", "Выбрать", "Отмена"); } return true; } А вот собстна и сам диалог: if(dialogid == 213) { if(response) { switch(listitem) { case 0: SetPlayerColor(playerid, 0xFF002FFF), SCM(playerid, COLOR_GREY, "Вы сменили цвет ника на Красный!"); case 1: SetPlayerColor(playerid, 0x2B00FFFF), SCM(playerid, COLOR_GREY, "Вы сменили цвет ника на Синий!"); case 2: SetPlayerColor(playerid, 0xF3FF00FF), SCM(playerid, COLOR_GREY, "Вы сменили цвет ника на Жёлтый!"); case 3: SetPlayerColor(playerid, 0x15FF00FF), SCM(playerid, COLOR_GREY, "Вы сменили цвет ника на Зелёный!"); case 4: SetPlayerColor(playerid, 0x8B00FFFF), SCM(playerid, COLOR_GREY, "Вы сменили цвет ника на Фиолетовый!"); case 5: SetPlayerColor(playerid, 0x00DAFFFF), SCM(playerid, COLOR_GREY, "Вы сменили цвет ника на Голубой!"); case 6: SetPlayerColor(playerid, 0xFF7300FF), SCM(playerid, COLOR_GREY, "Вы сменили цвет ника Оранжевый!"); case 7: SetPlayerColor(playerid, 0xFF009EFF), SCM(playerid, COLOR_GREY, "Вы сменили цвет ника на Розовый!"); case 8: SetPlayerColor(playerid, 0x00FFDEFF), SCM(playerid, COLOR_GREY, "Вы сменили цвет ника Светло-голубой!"); } } else { return true; } return true; } Команда простая, но нужная, скорее для РП процесса. Делал сам. Цвета можно добавлять, кстати, в команде разные цвета, это пример, как будет выглядеть ник, ну вы поняли. Автор: Shapik Спасибо! Если что, поправьте, если где-то ошибся.
  5. Для начала создадим переменные new new SelectedSkin[MAX_PLAYERS]; new Text: SelectSkin[3]; [spoiler=Открой] Далее в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) [spoiler=Открой] Далее в public OnPlayerClickTextDraw(playerid, Text: clickedid) public OnPlayerClickTextDraw(playerid, Text: clickedid) { if(clickedid == SelectSkin[1])//Выбор скина { switch(SelectedSkin[playerid]) { case 1: { SelectedSkin[playerid] = 2; PlayerInfo[playerid][pSkin] = 79; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 2: { SelectedSkin[playerid] = 3; PlayerInfo[playerid][pSkin] = 137; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 3: { SelectedSkin[playerid] = 4; PlayerInfo[playerid][pSkin] = 200; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 4: { SelectedSkin[playerid] = 5; PlayerInfo[playerid][pSkin] = 160; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 5: { SelectedSkin[playerid] = 1; PlayerInfo[playerid][pSkin] = 78; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 6: { SelectedSkin[playerid] = 7; PlayerInfo[playerid][pSkin] = 129; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 7: { SelectedSkin[playerid] = 8; PlayerInfo[playerid][pSkin] = 130; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 8: { SelectedSkin[playerid] = 9; PlayerInfo[playerid][pSkin] = 10; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 9: { SelectedSkin[playerid] = 10; PlayerInfo[playerid][pSkin] = 39; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 10: { SelectedSkin[playerid] = 6; PlayerInfo[playerid][pSkin] = 77; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } } } else if(clickedid == SelectSkin[0])//Выбор скина { switch(SelectedSkin[playerid]) { case 1: { SelectedSkin[playerid] = 5; PlayerInfo[playerid][pSkin] = 78; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 5: { SelectedSkin[playerid] = 4; PlayerInfo[playerid][pSkin] = 160; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 4: { SelectedSkin[playerid] = 3; PlayerInfo[playerid][pSkin] = 200; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 3: { SelectedSkin[playerid] = 2; PlayerInfo[playerid][pSkin] = 137; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 2: { SelectedSkin[playerid] = 1; PlayerInfo[playerid][pSkin] = 79; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 6: { SelectedSkin[playerid] = 10; PlayerInfo[playerid][pSkin] = 77; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 10: { SelectedSkin[playerid] = 9; PlayerInfo[playerid][pSkin] = 39; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 9: { SelectedSkin[playerid] = 8; PlayerInfo[playerid][pSkin] = 10; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 8: { SelectedSkin[playerid] = 7; PlayerInfo[playerid][pSkin] = 130; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } case 7: { SelectedSkin[playerid] = 6; PlayerInfo[playerid][pSkin] = 129; SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); } } } else if(clickedid == SelectSkin[2])//Выбор скина { for(new i; i != 3; i++) TextDrawHideForPlayer(playerid, SelectSkin[i]); SelectedSkin[playerid] = 0; account[playerid] = false; MOROZ(1) SavePlayer(playerid); CancelSelectTextDraw(playerid); SetPlayerSpawn(playerid); } return true; } [spoiler=Открой] Создадим сами TD в конец мода. stock TextDraws() { // Выбор скина SelectSkin[0] = TextDrawCreate(50.0, 200.0, "LD_BEAT:left"); TextDrawFont(SelectSkin[0], 4); TextDrawTextSize(SelectSkin[0], 50, 25); TextDrawColor(SelectSkin[0], -16776961); TextDrawSetSelectable(SelectSkin[0], 1); SelectSkin[1] = TextDrawCreate(530.0, 200.0, "LD_BEAT:right"); TextDrawFont(SelectSkin[1], 4); TextDrawTextSize(SelectSkin[1], 50, 25); TextDrawColor(SelectSkin[1], -16776961); TextDrawSetSelectable(SelectSkin[1], 1); SelectSkin[2] = TextDrawCreate(290.581390, 377.916748, "Select"); TextDrawLetterSize(SelectSkin[2], 0.491228, 2.224167); TextDrawAlignment(SelectSkin[2], 1); TextDrawColor(SelectSkin[2], -16776961); TextDrawSetShadow(SelectSkin[2], 0); TextDrawSetOutline(SelectSkin[2], 0); TextDrawBackgroundColor(SelectSkin[2], 51); TextDrawFont(SelectSkin[2], 2); TextDrawSetProportional(SelectSkin[2], 1); TextDrawSetSelectable(SelectSkin[2], 1); } в public OnGameModeInit() TextDraws();//Сток с TD Ко всем #define #define SCM SendClientMessage//Отправка сообщения в чат #define SPD ShowPlayerDialog//Показ диалога #define DSL DIALOG_STYLE_LIST//Тип диалога(Список) #define DSM DIALOG_STYLE_MSGBOX//Тип диалога(Информация) #define DSI DIALOG_STYLE_INPUT//Тип диалога(Ввод чего-либо) #define MOROZ(%0) TogglePlayerControllable(playerid, %0); Надеюсь все понимают для чего юзается pSkin и pSex, pSkin - это скин. pSex - это пол Автор : Vano Glad p.s. Либо полетел сайт либо хз, что, через некоторое время выложу диалог, https://imgur.com/a/rE53i https://imgur.com/a/S6u6w Вот такая хрень. //удалите потом то что русским написано case 7: { if(response) { if(PlayerInfo[playerid][pSex] == 1) { SelectdSkin[playerid] = 1; PlayerInfo[playerid][pSkin] = 79; } else { SelectdSkin[playerid] = 6; PlayerInfo[playerid][pSkin] = 77; } Login[playerid] = 1; SpawnPlayer(playerid); SetPlayerPos(playerid, 222.3489,-8.5845,1002.2109); SetPlayerFacingAngle(playerid, 266.7302); SetPlayerCameraPos(playerid, 222.3489 + 3,-8.5845,1002.2109); SetPlayerCameraLookAt(playerid, 222.3489,-8.5845,1002.2109); MOROZ(0) SetPlayerVirtualWorld(playerid, playerid); SetPlayerInterior(playerid, 5); SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); for(new i; i != 3; i++) TextDrawShowForPlayer(playerid, SelectSkin[i]); SelectTextDraw(playerid, 0xFF0000AA); } else { SPD(playerid, 2, DSI, "{FFFF00}Skype", "{FFFFFF}Введите свой Skype\nSkype потребуется для восстановления данных", "Далее", "Выход"); } }
  6. Vladimir_Kulkov

    Захват Ганг Зон

    Гангзону нельзя захватить если игрок(и) этой банды не онлайн Чтобы захватить гангзону введите /capture ждете 2 минуты (на подготовку) и стреляетесь, если вы всех убили и их на ГангЗоне нету то территория будет принадлежать вам. Ну так вот, начнем: Ко всем new: new Float:STANDARTGangZone[49][4] = { {0.0, 0.0,0.0, 0.0}, {2577.861572, -1056.913940, 2787.590087, -898.770690}, {2368.133056, -1056.913940, 2577.861572, -898.770690}, {2158.404541, -1056.913940, 2368.133056, -898.770690}, {1948.676025, -1056.913940, 2158.404541, -898.770690}, {1738.947509, -1056.913940, 1948.676025, -898.770690}, {2787.590087, -1056.913940, 2997.318603, -898.770690}, {2787.590087, -1215.057128, 2997.318603, -1056.913940}, {2787.590087, -1373.200439, 2997.318603, -1215.057128}, {2787.590087, -1531.343750, 2997.318603, -1373.200439}, {2787.590087, -1689.486938, 2997.318603, -1531.343750}, {2787.590087, -1847.630126, 2997.318603, -1689.486938}, {2787.590087, -2005.773437, 2997.318603, -1847.630126}, {2787.590087, -2163.916503, 2997.318603, -2005.773437}, {2577.861572, -1215.057128, 2787.590087, -1056.913940}, {2577.861572, -1373.200439, 2787.590087, -1215.057128}, {2577.861572, -1531.343750, 2787.590087, -1373.200439}, {2577.861572, -1689.486938, 2787.590087, -1531.343750}, {2577.861572, -1847.630126, 2787.590087, -1689.486938}, {2577.861572, -2005.773437, 2787.590087, -1847.630126}, {2577.861572, -2163.916503, 2787.590087, -2005.773437}, {2368.133056, -1215.057128, 2577.861572, -1056.913940}, {2368.133056, -1373.200439, 2577.861572, -1215.057128}, {2368.133056, -1531.343750, 2577.861572, -1373.200439}, {2368.133056, -1689.486938, 2577.861572, -1531.343750}, {2368.133056, -1847.630126, 2577.861572, -1689.486938}, {2368.133056, -2005.773437, 2577.861572, -1847.630126}, {2368.133056, -2163.916503, 2577.861572, -2005.773437}, {2158.404541, -1215.057128, 2368.133056, -1056.913940}, {2158.404541, -1373.200439, 2368.133056, -1215.057128}, {2158.404541, -1531.343750, 2368.133056, -1373.200439}, {2158.404541, -1689.486938, 2368.133056, -1531.343750}, {2158.404541, -1847.630126, 2368.133056, -1689.486938}, {2158.404541, -2005.773437, 2368.133056, -1847.630126}, {2158.404541, -2163.916503, 2368.133056, -2005.773437}, {1948.676025, -1215.057128, 2158.404541, -1056.913940}, {1948.676025, -1373.200439, 2158.404541, -1215.057128}, {1948.676025, -1531.343750, 2158.404541, -1373.200439}, {1948.676025, -1689.486938, 2158.404541, -1531.343750}, {1948.676025, -1847.630126, 2158.404541, -1689.486938}, {1948.676025, -2005.773437, 2158.404541, -1847.630126}, {1948.676025, -2163.916503, 2158.404541, -2005.773437}, {1738.947509, -1215.057128, 1948.676025, -1056.913940}, {1738.947509, -1373.200439, 1948.676025, -1215.057128}, {1738.947509, -1531.343750, 1948.676025, -1373.200439}, {1738.947509, -1689.486938, 1948.676025, -1531.343750}, {1738.947509, -1847.630126, 1948.676025, -1689.486938}, {1738.947509, -2005.773437, 1948.676025, -1847.630126}, {1738.947509, -2163.916503, 1948.676025, -2005.773437} }; new OnZONE[49][20]; new ZoneOnBattle[49]; new ZoneTimer[49]; new allowedfactions[] = { 13,14,16,19,15}; new GZSafeTime[49]; enum GzoneInfo { gID, Float:gCoords[4], gFrakVlad, gNapad, } new GZInfo[49][GzoneInfo]; new FrakCD[20]; Ко всем forward'ам: forward LoadGZ(); forward SaveGZ(); forward GzCheck(); forward PlayerToKvadrat( playerid, Float:min_x, Float:min_y, Float:max_x, Float:max_y ); Ко всем stock: stock GetGangZoneColor(gangzonex) { new zx; switch(GZInfo[gangzonex][gFrakVlad]) { case 13: zx =0x00FF1465; case 14: zx = 0x00EBFF65; case 16: zx =0xFF00EB65; case 19: zx =0x0087FF65; case 15: zx =0xFFC80065; default: zx = 0xFFBE0065; } return zx; } stock GetGZColorF(fnumber) { new zx; switch(fnumber) { case 13: zx =0x00FF1465; case 14: zx = 0x00EBFF65; case 16: zx =0xFF00EB65; case 19: zx =0x0087FF65; case 15: zx =0xFFC80065; } return zx; } stock IsInAllowed(playerid) { for(new i =0;i<sizeof(allowedfactions);i++) { if(PlayerInfo[playerid][pMember] == allowedfactions[i]||PlayerInfo[playerid][pLeader] == allowedfactions[i]) return 1; } return 0; } stock IsInAllowedF(fnumbers) { for(new i =0;i<sizeof(allowedfactions);i++) { if(fnumbers == allowedfactions[i]) return 1; } return 0; } stock GetGangName(fnumbwer) { new string[256]; switch(fnumbwer) { case 13: format(string,sizeof(string),"Grove Street Gang"); case 14: format(string,sizeof(string),"Los Aztecas Gang"); case 16: format(string,sizeof(string),"The Ballas Gang"); case 19: format(string,sizeof(string),"SF Rifa Gang"); case 15: format(string,sizeof(string),"Los Santos Vagos Gang"); } return string; } stock IsPlayerInBandOnline(bandid) { for(new i=0; i < GetMaxPlayers(); i++) { if(PlayerInfo[i][pMember] == bandid || PlayerInfo[i][pLeader] == bandid) return 1; } return 0; } stock Name(playerid) { new pl[24]; GetPlayerName(playerid,pl,24); return pl; } Ко всем public: public LoadGZ() { new string[256]; new File = iniOpen("GangZonesTrigga.ini"); new l[256]; new asd[5][10]; for(new i =0;i<sizeof(GZInfo);i++) { format(string,sizeof(string),"Zone%d",i); new x = iniGet(File,string,l); if(x < 0) { GZInfo[i][gCoords][0] = STANDARTGangZone[i][0]; GZInfo[i][gCoords][1] = STANDARTGangZone[i][1]; GZInfo[i][gCoords][2] =STANDARTGangZone[i][2]; GZInfo[i][gCoords][3] =STANDARTGangZone[i][3]; } else { split(l,asd,'|'); GZInfo[i][gCoords][0] = floatstr(asd[0]); GZInfo[i][gCoords][1] = floatstr(asd[1]); GZInfo[i][gCoords][2] = floatstr(asd[2]); GZInfo[i][gCoords][3] = floatstr(asd[3]); } GZInfo[i][gFrakVlad] = strval(asd[4]); if(GZInfo[i][gFrakVlad] == 0) GZInfo[i][gFrakVlad] = allowedfactions[random(sizeof(allowedfactions))]; GZInfo[i][gID] = GangZoneCreate(GZInfo[i][gCoords][0],GZInfo[i][ gCoords][1],GZInfo[i][gCoords][2],GZInfo[i] [gCoords][3]); ZoneOnBattle[i] =0; GZSafeTime[i] =0; } iniClose(File); print("Система гангзон успешно загружена!"); } public SaveGZ() { new string[256]; new File = iniOpen("GangZonesTrigga.ini"); new l[10]; for(new i =0;i<sizeof(GZInfo);i++) { format(l,sizeof(l),"Zone%d",i); format(string,sizeof(string),"%f|%f|%f|%f|%d",GZInfo[i][gCoords] [0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][ 2],GZInfo[i][gCoords][3],GZInfo[i][gFrakVlad] ); iniSet(File,l,string); } iniClose(File); } public GzCheck() { new string[256]; for(new i =0;i<sizeof(GZInfo);i++) { if(ZoneOnBattle[i] == 1 && GZSafeTime[i] == 0) { ZoneTimer[i] -=10; if(ZoneTimer[i] <=0) { SendClientMessageToAll(-1,"Наблюдатель: Время на захват зоны вышел. Ничья."); ZoneOnBattle[i] =0; GangZoneStopFlashForAll(GZInfo[i][gID]); } for(new x =0;x<MAX_PLAYERS;x++) { if(PlayerToKvadrat(x,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][ 2],GZInfo[i][gCoords][3])&&IsInAllowed(x)) { new faction; if(PlayerInfo[x][pLeader] !=0) {faction = PlayerInfo[x][pLeader];} else { faction = PlayerInfo[x][pMember];} OnZONE[i][faction] ++; } } new asd; for(new x =0;x<20;x++) { if(OnZONE[i][x] > 0 && IsInAllowedF(x)) asd ++; } if(asd == 1) { for(new x =0;x<20;x++) { if(OnZONE[i][x] > 0) { new zx,zl; zx = x; zl = i; if(GZInfo[i][gFrakVlad] == x) {format(string,sizeof(string),"Наблюдатель: Банда %s отстояла свою зону.",GetGangName(zx)); } else {format(string,sizeof(string),"Наблюдатель: Банда %s выйгрывает зону.",GetGangName(zx)); } for(new ads = 13;ads <= 19;ads++) { SendFamilyMessage(ads,GetGangZoneColor(zx),string); } ZoneOnBattle[zl] =0; GZInfo[zl][gNapad] = 0; GZInfo[zl][gFrakVlad] = zx; GangZoneStopFlashForAll(GZInfo[zl][gID]); GangZoneHideForAll(GZInfo[zl][gID]); GangZoneShowForAll(GZInfo[zl][gID],GetGangZoneColor(zl)); break; } } } } } for(new i =0;i<49;i++) { for(new z = 0;z<20;z++) { OnZONE[i][z] =0; } } } public PlayerToKvadrat(playerid,Float:min_x,Float:min_y,Float:max_x,Float:max_y) { new Float:xxp,Float:yyp,Float:zzp; GetPlayerPos(playerid, xxp, yyp, zzp); if((xxp <= max_x && xxp >= min_x) && (yyp <= max_y && yyp >= min_y)) return 1; return 0; } В public OnPlayerConnect(playerid): for(new i =0;i<49;i++) { GangZoneShowForPlayer(playerid,GZInfo[i][gID],GetGangZoneColor(i)); } В public OnGameModeInit: SetTimer("GzCheck",10000,1); SetTimer("SaveGZ",100000,1); LoadGZ(); В public SaveAccounts(): new faction=0; if(!strcmp(cmd,"/changegzcolor",true)) { tmp = strtok(cmdtext,idx); new l = strval(tmp); if(!IsInAllowedF(l)) return SendClientMessage(playerid,COLOR_LIGHTRED,"Неправильный ид банды!"); if(PlayerInfo[playerid][pAdmin] >= 6) { for(new i = 0;i<49;i++) { if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][ 2],GZInfo[i][gCoords][3])) { GZInfo[i][gFrakVlad] = l; GangZoneStopFlashForAll(GZInfo[i][gID]); GangZoneHideForAll(GZInfo[i][gID]); GangZoneShowForAll(GZInfo[i][gID],GetGangZoneColor(i)); return 1; } } } } if(!strcmp(cmd,"/capture",true)) { if(FrakCD[faction] == 0) { if(!IsInAllowed(playerid)) { return SendClientMessage(playerid,COLOR_LIGHTRED,"Ваша банда не может учавствовать в захвате зон или вы не на 1 зоне"); } for(new i = 0;i<49;i++) { if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][ 2],GZInfo[i][gCoords][3]) && GZInfo[i][gFrakVlad] != faction && ZoneOnBattle[i] == 0) { if(!IsPlayerInBandOnline(GZInfo[i][gFrakVlad])) return SendClientMessage(playerid,COLOR_LIGHTRED,"Зону банды которую вы хотите атаковать нет в онлайне!"); if(PlayerInfo[playerid][pRank] < 5) return SendClientMessage(playerid,COLOR_LIGHTRED,"Иницировать захват можно только с 5 ранга и выше!"); SendFamilyMessage(GZInfo[i][gFrakVlad],COLOR_LIGHTRED,"Ваша Зона под атакой. У вас 2 минуты чтобы подготовится к защите зоны."); SendFamilyMessage(GZInfo[i][gFrakVlad],COLOR_LIGHTRED,"Если через 2 минуты на зоне никого не будет то зона автоматически перейдет к врагу"); format(string,sizeof(string),"%s начал борьбу за зону против %s банды. У вас 2 минуты чтобы подготовится к атаке",Name(playerid),GetGangName(GZInfo[i][gFrakVlad])); SendFamilyMessage(faction,COLOR_LIGHTRED,string); GangZoneFlashForAll(GZInfo[i][gID],GetGZColorF(faction)); GZSafeTime[i] = 120; FrakCD[faction] = 3000; GZInfo[i][gNapad] = faction; ZoneTimer[i] = 720; ZoneOnBattle[i] = 1; break; } } } else { return SendClientMessage(playerid,COLOR_LIGHTRED,"Ваша банда еще не окрепла с момента последнего захвата. Ждите!"); } } В public SetPlayerUnjail(): for(new i =0;i<49;i++) { if(GZSafeTime[i]>0) { GZSafeTime[i] --; if(GZSafeTime[i] == 60 || GZSafeTime[i] == 120) { format(string,sizeof(string),"У вас осталось %d секунд на подготовку",GZSafeTime[i]); SendFamilyMessage(GZInfo[i][gNapad],COLOR_LIGHTRED,string); SendFamilyMessage(GZInfo[i][gFrakVlad],COLOR_LIGHTRED,string); } if(GZSafeTime[i]==0) { format(string,sizeof(string),"Время на подготовку вышло. Если у вас нет ни одного солдата на поле боя то зона автоматически переходит к противнику"); SendFamilyMessage(GZInfo[i][gNapad],COLOR_LIGHTRED,string); SendFamilyMessage(GZInfo[i][gFrakVlad],COLOR_LIGHTRED,string); } } } for(new i =0;i<sizeof(FrakCD);i++) { if(FrakCD[i] >0) { FrakCD[i] --; if(FrakCD[i] == 0) SendFamilyMessage(i,COLOR_LIGHTRED,"Ваша банда снова может учавствовать в захвате зон"); } } Иды фракций заменяйте на свои. Без инклуда mxINI ничего не получится. ID фракций меняйте на свои. Автор: Trigger
  7. Однако здравствуйте:) Хочу представить вам спидометр, который я делал для одного сервера, который потом меня кинул. Для работы используется инклуд foreach. Только для мода с основой GAMER. Огромное спасибо Red_Devils. Брал за основу его урок. Ко всем переменным: new PlayerText:Textdraw[8][MAX_PLAYERS]; Далее в OnPlayerConnect: PlayerTextDrawHide(playerid,Textdraw[0][playerid]); PlayerTextDrawHide(playerid,Textdraw[1][playerid]); PlayerTextDrawHide(playerid,Textdraw[2][playerid]); PlayerTextDrawHide(playerid,Textdraw[3][playerid]); PlayerTextDrawHide(playerid,Textdraw[4][playerid]);PlayerTextDrawHide(playerid,Textdraw[5][playerid]);PlayerTextDrawHide(playerid,Textdraw[6][playerid]);PlayerTextDrawHide(playerid,Textdraw[7][playerid]); Textdraw[0][playerid] = CreatePlayerTextDraw(playerid, 633.200073, 372.593444, "usebox"); PlayerTextDrawLetterSize(playerid, Textdraw[0][playerid], 0.000000, 6.818146); PlayerTextDrawTextSize(playerid, Textdraw[0][playerid], 452.400115, 0.000000); PlayerTextDrawAlignment(playerid, Textdraw[0][playerid], 1); PlayerTextDrawColor(playerid, Textdraw[0][playerid], 0); PlayerTextDrawUseBox(playerid, Textdraw[0][playerid], true); PlayerTextDrawBoxColor(playerid, Textdraw[0][playerid], 102); PlayerTextDrawSetShadow(playerid, Textdraw[0][playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw[0][playerid], 0); PlayerTextDrawFont(playerid, Textdraw[0][playerid], 0); Textdraw[1][playerid] = CreatePlayerTextDraw(playerid, 472.799926, 386.773437, "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"); PlayerTextDrawLetterSize(playerid, Textdraw[1][playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw[1][playerid], 1); PlayerTextDrawColor(playerid, Textdraw[1][playerid], -2139062017); PlayerTextDrawSetShadow(playerid, Textdraw[1][playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw[1][playerid], 1); PlayerTextDrawBackgroundColor(playerid, Textdraw[1][playerid], 51); PlayerTextDrawFont(playerid, Textdraw[1][playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw[1][playerid], 1); Textdraw[2][playerid] = CreatePlayerTextDraw(playerid, 508.799987, 371.840179, "167KM/H"); PlayerTextDrawLetterSize(playerid, Textdraw[2][playerid], 0.356398, 1.420799); PlayerTextDrawAlignment(playerid, Textdraw[2][playerid], 1); PlayerTextDrawColor(playerid, Textdraw[2][playerid], -1); PlayerTextDrawSetShadow(playerid, Textdraw[2][playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw[2][playerid], 1); PlayerTextDrawBackgroundColor(playerid, Textdraw[2][playerid], 51); PlayerTextDrawFont(playerid, Textdraw[2][playerid], 2); PlayerTextDrawSetProportional(playerid, Textdraw[2][playerid], 1); Textdraw[3][playerid] = CreatePlayerTextDraw(playerid, 473.599792, 386.773498, "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"); PlayerTextDrawLetterSize(playerid, Textdraw[3][playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw[3][playerid], 1); PlayerTextDrawColor(playerid, Textdraw[3][playerid], -1); PlayerTextDrawSetShadow(playerid, Textdraw[3][playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw[3][playerid], 1); PlayerTextDrawBackgroundColor(playerid, Textdraw[3][playerid], 51); PlayerTextDrawFont(playerid, Textdraw[3][playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw[3][playerid], 1); Textdraw[4][playerid] = CreatePlayerTextDraw(playerid, 463.199920, 403.946655, "BENZIN:"); PlayerTextDrawLetterSize(playerid, Textdraw[4][playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw[4][playerid], 1); PlayerTextDrawColor(playerid, Textdraw[4][playerid], -1); PlayerTextDrawSetShadow(playerid, Textdraw[4][playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw[4][playerid], 1); PlayerTextDrawBackgroundColor(playerid, Textdraw[4][playerid], 51); PlayerTextDrawFont(playerid, Textdraw[4][playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw[4][playerid], 1); Textdraw[5][playerid] = CreatePlayerTextDraw(playerid, 463.200103, 420.373352, "DVERI:"); PlayerTextDrawLetterSize(playerid, Textdraw[5][playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw[5][playerid], 1); PlayerTextDrawColor(playerid, Textdraw[5][playerid], -1); PlayerTextDrawSetShadow(playerid, Textdraw[5][playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw[5][playerid], 1); PlayerTextDrawBackgroundColor(playerid, Textdraw[5][playerid], 51); PlayerTextDrawFont(playerid, Textdraw[5][playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw[5][playerid], 1); Textdraw[6][playerid] = CreatePlayerTextDraw(playerid, 611.199707, 404.693328, "E"); PlayerTextDrawLetterSize(playerid, Textdraw[6][playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw[6][playerid], 1); PlayerTextDrawColor(playerid, Textdraw[6][playerid], -1); PlayerTextDrawSetShadow(playerid, Textdraw[6][playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw[6][playerid], 1); PlayerTextDrawBackgroundColor(playerid, Textdraw[6][playerid], 51); PlayerTextDrawFont(playerid, Textdraw[6][playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw[6][playerid], 1); Textdraw[7][playerid] = CreatePlayerTextDraw(playerid, 611.999938, 421.866821, "L"); PlayerTextDrawLetterSize(playerid, Textdraw[7][playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw[7][playerid], 1); PlayerTextDrawColor(playerid, Textdraw[7][playerid], -1); PlayerTextDrawSetShadow(playerid, Textdraw[7][playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw[7][playerid], 1); PlayerTextDrawBackgroundColor(playerid, Textdraw[7][playerid], 51); PlayerTextDrawFont(playerid, Textdraw[7][playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw[7][playerid], 1); Далее в OnPlayerDisconnect: PlayerTextDrawDestroy(playerid,Textdraw[0][playerid]); PlayerTextDrawDestroy(playerid,Textdraw[1][playerid]); PlayerTextDrawDestroy(playerid,Textdraw[2][playerid]); PlayerTextDrawDestroy(playerid,Textdraw[3][playerid]); PlayerTextDrawDestroy(playerid,Textdraw[4][playerid]);PlayerTextDrawDestroy(playerid,Textdraw[5][playerid]);PlayerTextDrawDestroy(playerid,Textdraw[6][playerid]);PlayerTextDrawDestroy(playerid,Textdraw[7][playerid]); В конец мода: forward SpeedoUpdate(); public SpeedoUpdate() { foreach(Player,i) { if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) { new string[50],status[32],statusL[32],statusD[32],vehicleid = GetPlayerVehicleID(i); if(VehicleInfo[vehicleid][pEngineStatus] == 1) status = "~b~E";//Двигатель else status = "~r~E"; if(VehicleInfo[vehicleid][pLightsStatus] == 1) statusL = "~b~L";//Фары else statusL = "~r~L"; if(CarInfo[vehicleid][cLock] == 1) statusD = "~r~€AKP‘T‘"; else statusD = "~g~OTKP‘T‘"; PlayerTextDrawShow(i,Textdraw[0][i]); PlayerTextDrawShow(i,Textdraw[1][i]); PlayerTextDrawShow(i,Textdraw[2][i]); PlayerTextDrawShow(i,Textdraw[3][i]); PlayerTextDrawShow(i,Textdraw[4][i]);PlayerTextDrawShow(i,Textdraw[5][i]);PlayerTextDrawShow(i,Textdraw[6][i]);PlayerTextDrawShow(i,Textdraw[7][i]); format(string,sizeof(string),"~r~%d ~g~KM/H",GetPlayerSpeed(i));//Скорость PlayerTextDrawSetString(i,Textdraw[2][i],string); format(string,sizeof(string),"~w~ЂEH€…H: ~r~%d~g~‡.",Gas[vehicleid]);//Бензин PlayerTextDrawSetString(i,Textdraw[4][i],string); format(string,sizeof(string),"%s",status); PlayerTextDrawSetString(i,Textdraw[6][i],string); format(string,sizeof(string),"%s",statusL); PlayerTextDrawSetString(i,Textdraw[7][i],string); format(string,sizeof(string),"ѓBEP…:%s",statusD); PlayerTextDrawSetString(i,Textdraw[5][i],string); switch(SpeedVehicle(i)){ case 0..1: PlayerTextDrawSetString(i,Textdraw[3][i], "~w~"); case 2..10: PlayerTextDrawSetString(i,Textdraw[3][i], "~g~II"); case 11..20: PlayerTextDrawSetString(i,Textdraw[3][i], "~g~III"); case 21..30: PlayerTextDrawSetString(i,Textdraw[3][i], "~g~IIIII"); case 31..40: PlayerTextDrawSetString(i,Textdraw[3][i], "~y~IIIIIIII"); case 41..50: PlayerTextDrawSetString(i,Textdraw[3][i], "~y~IIIIIIIII"); case 51..60: PlayerTextDrawSetString(i,Textdraw[3][i], "~y~IIIIIIIIIIII"); case 61..70: PlayerTextDrawSetString(i,Textdraw[3][i], "~y~IIIIIIIIIIIIII"); case 71..80: PlayerTextDrawSetString(i,Textdraw[3][i], "~y~IIIIIIIIIIIIIIII"); case 81..90: PlayerTextDrawSetString(i,Textdraw[3][i], "~r~IIIIIIIIIIIIIIIIIII"); case 91..120: PlayerTextDrawSetString(i,Textdraw[3][i],"~r~IIIIIIIIIIIIIIIIIIIIII"); default: PlayerTextDrawSetString(i,Textdraw[3][i], "~r~IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII");} } if(!IsPlayerInAnyVehicle(i)) { PlayerTextDrawHide(i,Textdraw[0][i]); PlayerTextDrawHide(i,Textdraw[1][i]); PlayerTextDrawHide(i,Textdraw[2][i]); PlayerTextDrawHide(i,Textdraw[3][i]); PlayerTextDrawHide(i,Textdraw[4][i]);PlayerTextDrawHide(i,Textdraw[5][i]); PlayerTextDrawHide(i,Textdraw[6][i]);PlayerTextDrawHide(i,Textdraw[7][i]); } } return true; } Таймер в OnGameModeInit: SetTimer("SpeedoUpdate",100,1);//обновляется раз в секунду Если компилятор будет ругаться на "SpeedVehicle", то в конец мода добавьте: stock SpeedVehicle(playerid, bool:return_km=true) { new Float:x, Float:y, Float:z; if(IsPlayerInAnyVehicle(playerid)) { new veh = GetPlayerVehicleID(playerid); GetVehicleVelocity(veh, x, y, z); }else GetPlayerVelocity(playerid, x, y, z); return return_km?floatround(floatsqroot(x*x+y*y+z*z)*195):floatround(floatsqroot(x*x+y*y+z*z)*121); } Автор : Predator. P.S. В подборе цветов я не очень, так что сами измените:)
  8. Всем привет,а точнее доброй ночи! Сегодня мне в соц.сеть написал пользователь с данного портала и попросил помочь сделать ему ворота! Но ворота нужны ему были что бы на кнопку Y и не сидя в машине! Посмотрел я данный портал и не нашел этого решения,есть решение только в машине,а пешком нет! И так думаю начнем: Ко всем new new GateCop; new GateMove = 0; В public OnPlayerKeyStateChange добавим(для тех кто в авто) if(newkeys == 65536 && !IsPlayerInAnyVehicle(playerid) || newkeys == 2 && IsPlayerInAnyVehicle(playerid)) { if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)//ID фракции пишем свой if(IsPlayerInRangeOfPoint( playerid, 15.0, 2579.8472, -2435.3928, 23.5669))//координаты закрытых ворот { if(GateMove == 0) { MoveObject(GateCop, 2579.8472, -2435.3928, 17.9227, 2.0);//координаты открытых GateMove = 1; } else if(GateMove == 1) { MoveObject(GateCop, 2579.8472, -2435.3928, 23.5669, 2.0);//координаты закрытых GateMove = 0; } } } В public OnGameModeInit добавим: GateCop = CreateObject(980, 2579.85, -2435.39, 23.57, 0.00, 0.00, 90.00);//закрытые Ну и: В public OnPlayerKeyStateChange добавим(для тех кто в пешком "Y") if(newkeys & 65536 || newkeys & 2) { if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)//ID фракции пишем свой if(IsPlayerInRangeOfPoint( playerid, 15.0, 2579.8472, -2435.3928, 23.5669))//координаты закрытых ворот { if(GateMove == 0) { MoveObject(GateCop, 2579.8472, -2435.3928, 17.9227, 2.0);//координаты открытых GateMove = 1; } else if(GateMove == 1) { MoveObject(GateCop, 2579.8472, -2435.3928, 23.5669, 2.0);//координаты закрытых GateMove = 0; } } } Ну вот и все! Спасибо за внимание! Автор: Carl
  9. Ко всем new: new par; new par1; В public OnPlayerPickUpPickup if (pickupid == par){ SetPlayerPos(playerid, 2134.0425,-1961.4999,188.2590); return 1; } if (pickupid == par1){ SetPlayerPos(playerid, 2133.6538,-1961.9203,20.3229); return 1; } В public OnGameModeInit: par = CreatePickup(1318,1,2133.8491,-1964.0739,20.3842); //вверх par1 = CreatePickup(1318,1,2133.8196,-1964.5046,188.3337); //вниз CreateObject(1938, 2133.6600,-1963.0839,188.3338, 0, 0, -90); // лифт наверху CreateObject(1938, 2133.6600,-1963.0839,20.3962, 0, 0, -90); // лифт внизу Автор: gold-runet
  10. NIKITA_BULANOV

    Защита от пакетов UDP

    forward NetworkUpdate(); public NetworkUpdate() { static stats[300], idx, pos, msgs; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { idx = 0; GetPlayerNetworkStats(i, stats, sizeof(stats)); pos = strfind(stats, "Messages received: ", false, 209);//209 - минимальная позиция "Messages received" в строке msgs = strval(strtok(stats[pos+19], idx)); if(msgs - MessagesCount[i] - OtherMessages[i] > MAX_MESSAGES && msgs > 2000) { new pname[MAX_PLAYER_NAME]; GetPlayerName(i, pname, sizeof(pname)); printf("%s[id:%d] banned for UDP flood (%d packets)", pname, i, msgs - MessagesCount[i] - OtherMessages[i]); BanEx(i, "UDP flood"); } MessagesCount[i] = msgs; OtherMessages[i] = 0; } } } NetworkUpdate(); UpdateUnOccupiedVehicleCoords(); return 1; }
  11. Делал 7 минут. Автор: MOPTTEX a.k.a Alonso Несколько раз удалял, и делал заново. Фуф. Это не система, подстроить под Ваш мод могут в столе заказов, или пишите мне в лс, я за 15 рублей сделаю Вам это. [spoiler=Скрин] TD_rega.pwn
  12. TD_sliv.pwn Автор: MOPTTEX a.k.a Alonso Автор Идеи: ShiGanKa [spoiler=Скрин]
  13. Всем привет, решил заняться рисование TextDraw'ow, вот и сделал первую работу, а именно панель для админов, пойдет под любой проект, осталось добавить функционал и всё будет хорошо. :) z Выслушаю любую критику.
  14. SCRIPTMAN

    /ticket(выдать штраф)

    Привет всем. Сейчас научу вас писать команду /ticket - выдать штраф, команда простая, но возможно кто-то не умеет её писать. Писать я буду на DC_CMD. 1. Для начала создаем команду и пихаем туда проверка, я буду брать со своего мода: CMD:ticket(playerid, params[]) { if(Player[playerid][pMember] != 1) return SCM(playerid, COLOR_GREY, "Вы не уполномочены использовать данную команду!"); if(sscanf(params, "iis[128]", params[0], params[1], params[2])) return SCM(playerid, COLOR_WHITE, "Введите: /ticket [id] [сумма] [причина"); if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, "Игрок не найден!"); if(login_check[params[0]] == false) return SCM(playerid, COLOR_GREY, "Игрок не авторизован!"); if(params[0] == playerid) return SCM(playerid, COLOR_GREY, "Вы указали свой ID!"); if(GetDistanceBetweenPlayers(playerid, params[0]) > 10.0) return SCM(playerid, COLOR_GREY, "Игрок далеко от вас!");//Проверка на дистанцию if(params[1] < 0 || params[1] > 50000) return SCM(playerid, COLOR_GREY, "Не менее 1-го и не больее 50000-ти тысяч рублей.");//проверка на деньги Проверки я так думаю объяснять не нужно, они и так понятны по тексту. 2. Делаем текст с помощью static const: (с данной функцией можно ознакомиться в данной теме) static const fmt_str[] = "\ Сотрудник полиции %s выписал вам штраф\ \nРазмером в %d рублей\n\ \nПричина: %s\n\ \nОплатить штраф?\ "; new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+5-2+133]; format(string, sizeof(string), fmt_str , Player[playerid][pName], params[1] ); SPD(params[0], id диалога, DSM, "Штраф", string, "Да", "Нет"); Почему у меня несколько строк? - мне так удобнее и понятнее, думаю вам тоже. Дальше нам нужно работать с диалогами, но у них не прокатит params, для этого я создам PVar'ы, так как их не нужно удалять при выходе из игры игрока, как-то так короче В общем, создаем, я назову их TicketPlayer - человек, который выписывает штраф и TicketPrice - сумма штрафа. 3. Создаем PVar'ы: SetPVarInt(params[0], "TicketPlayer", playerid); SetPVarInt(params[0], "TicketPrice", params[1]); Не забываем завершать действие, чтобы не шло дальше, для этого просто добавляем в конец команды "return true;" 4. Из этого всего мы получаем такую вот команду: CMD:ticket(playerid, params[]) { if(Player[playerid][pMember] != 1) return SCM(playerid, COLOR_GREY, "Вы не уполномочены использовать данную команду!"); if(sscanf(params, "iis[128]", params[0], params[1], params[2])) return SCM(playerid, COLOR_WHITE, "Введите: /ticket [id] [сумма] [причина"); if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, "Игрок не найден!"); if(login_check[params[0]] == false) return SCM(playerid, COLOR_GREY, "Игрок не авторизован!"); if(params[0] == playerid) return SCM(playerid, COLOR_GREY, "Вы указали свой ID!"); if(GetDistanceBetweenPlayers(playerid, params[0]) > 10.0) return SCM(playerid, COLOR_GREY, "Игрок далеко от вас!"); if(params[1] < 0 || params[1] > 50000) return SCM(playerid, COLOR_GREY, "Не менее 1-го и не больее 50000-ти тысяч рублей."); static const fmt_str[] = "\ Сотрудник полиции %s выписал вам штраф\ \nРазмером в %d рублей\n\ \nПричина: %s\n\ \nОплатить штраф?\ "; new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+5-2+133]; format(string, sizeof(string), fmt_str , GN(playerid), params[1] ); SPD(params[0], id диалога, DSM, "Штраф", string, "Да", "Нет"); SetPVarInt(params[0], "TicketPlayer", playerid); SetPVarInt(params[0], "TicketPrice", params[1]); return true; } 5. Переходим к работе с диалогом, для этого создаем диалог со свободным ID, дальше добавляем PVar'ы, точнее присваиваем к переменным: case id: //у вас возможно будет if(dialogid == id диалога) { new playerd = GetPVarInt(playerid, "TicketPlayer"); new price = GetPVarInt(playerid, "TicketPrice"); Дальше делаем действие на правую кнопку, то есть, если он нажмет "Да". 6. Для начала делаем проверку, есть ли данная сумма для оплаты у игрока: if(response) { if(Player[playerid][pMoney] < price) { SCM(playerd, COLOR_GREY, "У игрока недостаточно денег!"); SCM(playerid, COLOR_GREY, "У вас недостаточно денег!"); return true; } 7. Теперь, если у игрока есть деньги, отнимем у него данную сумму, а нам отдадим: Player[playerd][pMoney] += price; Player[playerid][pMoney] -= price; Player[playerid][pTicket_op] += 1;//можете её пока удалить, это у игрока появляется уже +1 оплаченный штраф, позже сделаю урок 8. Теперь сам текст: static const fmt_str[] = "%s оплатил штраф в размере %d рублей."; new string[sizeof(fmt_str)+2+MAX_PLAYER_NAME-2+5]; format(string, sizeof(string), fmt_str, GN(playerid), price); SCM(playerd, COLOR_GREEN, string); static const fmt_str_2[] = "Вы оплатили штраф в размере %d рублей."; new string_2[sizeof(fmt_str_2)-2+5]; format(string_2, sizeof(string_2), fmt_str_2, price); SCM(playerid, COLOR_GREEN, string_2); } 9. Теперь делаем действие на левую кнопку мыши, если игрок нажал "Нет": else { SCM(playerd, COLOR_RED, "Игрок отказался оплачивать штраф."); SCM(playerid, COLOR_RED, "Вы отказались оплачивать штраф."); Player[playerid][pTicket_no] += 1;//можете пока удалить, это +1 неоплаченный штраф DeletePVar(playerid, "TicketPlayer"), DeletePVar(playerid, "TicketPrice"); } То есть, вывели текст, прибавили неоплаченный штраф и удалили PVar'ы 10. В итоге у нас получается так: case id: { new playerd = GetPVarInt(playerid, "TicketPlayer"); new price = GetPVarInt(playerid, "TicketPrice"); if(response) { if(Player[playerid][pMoney] < price) { SCM(playerd, COLOR_GREY, "У игрока недостаточно денег!"); SCM(playerid, COLOR_GREY, "У вас недостаточно денег!"); return true; } Player[playerd][pMoney] += price; Player[playerid][pMoney] -= price; Player[playerid][pTicket_op] += 1; static const fmt_str[] = "%s оплатил штраф в размере %d рублей."; new string[sizeof(fmt_str)+2+MAX_PLAYER_NAME-2+5]; format(string, sizeof(string), fmt_str, GN(playerid), price); SCM(playerd, COLOR_GREEN, string); static const fmt_str_2[] = "Вы оплатили штраф в размере %d рублей."; new string_2[sizeof(fmt_str_2)-2+5]; format(string_2, sizeof(string_2), fmt_str_2, price); SCM(playerid, COLOR_GREEN, string_2); } else { SCM(playerd, COLOR_RED, "Игрок отказался оплачивать штраф."); SCM(playerid, COLOR_RED, "Вы отказались оплачивать штраф."); Player[playerid][pTicket_no] += 1; DeletePVar(playerid, "TicketPlayer"), DeletePVar(playerid, "TicketPrice"); } } Ну вот и все, в следующем уроке сделаем штрафы оплаченные и неоплаченные. Автор: SCRIPTMAN
  15. Vladimir_Kulkov

    Еда для бомжей

    Этот урок полный без багов. Так начнём... Вставляем ко всем new new eatrp; Ко всем define #define COLOR_PINK8 0xFF69B4AA #define COLOR_GRAD1 0xBFC0C2FF в public OnPlayerPickUpPickup(playerid, pickupid) //Жизни else if(pickupid == eatrp) { if(PlayerHealth[playerid] == 100) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не голодны!"); if(PlayerInfo[playerid][pLevel] > 3) return SendClientMessage(playerid, COLOR_GRAD1, "Можно использовать до 3 уровня!"); SetPlayerHealthAC(playerid, 100); SendClientMessage(playerid, COLOR_PINK8, "{FF69B4}*Поел"); } В public OnGameModeInit() Ко всем пикапам //жизни eatrp = CreatePickup(2821, 1,1752.3273,-1889.4989,13.5574);//кардинаты меняем на свои и всё Вот и всё готово Для новичков будет полезно Автор:Неизвестно
  16. Vladimir_Kulkov

    Система банкоматов

    Приветствую пользователи форума cr-mp.ru, хотелось бы выложить сис-му создания банкоматов. Предупреждение! - В данной системе, для полной работоспособности банкомата, вам необходимо вставить код своих переменных, тоесть заменить pInfo[playerid][pMoney] и pInfo[playerid][pBank], на те переменные, в которые вы выгружаете значения из таблиц/файлов. Ко всем Include #include <a_samp> #include <streamer> Ко всем Define #define MAX_BANKOMATS 2 // максимальное кол-во банкоматов #define BANKOMAT_CASH 15 // изымаемый процент от пользования банкоматом #define d_bankomat 9 // свободный ID диалога Ко всем New new ATMZone[MAX_BANKOMATS], cBankomats ; В public OnPlayerEnterDynamicArea(playerid, areaid) if(ATMZone[0] <= areaid <= ATMZone[cBankomats-1]) SetPVarInt(playerid,"PlayerUseBankomat",1); //Если игрок попал в зону банкомата В public OnPlayerLeaveDynamicArea(playerid, areaid) if(ATMZone[0] <= areaid <= ATMZone[cBankomats-1]) SetPVarInt(playerid,"PlayerUseBankomat",0); //Если игрок покинул зону банкомата В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) if(PRESSED(KEY_WALK)) { // Действия при нажатии левой клавиши 'Alt' if(GetPVarInt(playerid,"PlayerUseBankomat") != 0) { //Если игрок находится в зоне банкомата showPlayerDialog(playerid, d_bankomat, 2,"Банкомат","Проверить баланс\nСнять деньги со счета\nПоложить деньги на счет","Дальше","Закрыть"); //Вызываем диалог банкомата } } В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if(dialogid == d_bankomat) { if(!response) return 1; switch(listitem) { case 0: { format(string,sizeof(string),"| Информация о балансе на счету:\n\nСостояние банковского счета - $%d",pInfo[playerid][pMoney]); // pInfo[playerid][pMoney] заменяете на кол-во денег игрока из своего мода showPlayerDialog(playerid, 9999, 0, " ", string, "Закрыть", ""); } case 1: showPlayerDialog(playerid, d_bankomat + 1, 1, "Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); case 2: showPlayerDialog(playerid, d_bankomat + 2, 1, "Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); } } if(dialogid == d_bankomat + 1) { if(!response) return 1; if(!strlen(inputtext)) return showPlayerDialog(playerid, d_bankomat + 1, 1, "Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); if(strval(inputtext) < 100 || strval(inputtext) > 100000) return showPlayerDialog(playerid, d_bankomat + 1, 1, "Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть");//Если игрок ввел сумму больше 100000 или менее 100. new BankCash = (strval(inputtext)*BANKOMAT_CASH)/100; pInfo[playerid][pBank] -= strval(inputtext)-BankCash;//Вычитаем процент и отнимаем деньги с банк.счета pInfo[playerid][pMoney] += strval(inputtext)-BankCash;//Вычитаем процент и получаем деньги на руки ApplyAnimation(playerid, "PED", "ATM",4.0, 0, 1, 1, 0, 0, 1); } if(dialogid == d_bankomat + 2) { if(!response) return 1; if(!strlen(inputtext)) return showPlayerDialog(playerid, d_bankomat + 2, 1, "Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); if(strval(inputtext) < 100 || strval(inputtext) > 100000) return showPlayerDialog(playerid, d_bankomat + 2, 1, "Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); //Если игрок ввел сумму больше 100000 или менее 100. new BankCash = (strval(inputtext)*BANKOMAT_CASH)/100; //Вычисляем % от пользования банкоматом pInfo[playerid][pBank] += strval(inputtext)-BankCash; //Вычитаем процент и получаем деньги в банк pInfo[playerid][pMoney] -= strval(inputtext)-BankCash; //Вычитаем процент и отнимаем деньги с рук ApplyAnimation(playerid, "PED", "ATM",4.0, 0, 1, 1, 0, 0, 1); //Приминяем анимацию пользования банкоматом } В public OnGameModeInit() CreateBankomat(1740.29,-1771.58,13.37,0.00,0.00,0.00); //Создаем банкомат CreateBankomat(1740.29,-1773.58,13.37,0.00,0.00,0.00); //Аналогично Функция создания банкомата, вставляем в конец мода. stock CreateBankomat(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz) { CreateDynamicObject(2754,x,y,z,rx,ry,rz); //Создаем сам банкомат CreateDynamic3DTextLabel("Банкомат\n\nALT",0xFFFFFFFF, x,y,z,3.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0); //Создаем 3д текст к банкомату ATMZone[cBankomats] = CreateDynamicSphere(x,y,z,2.0); //Создаем сферу действия банкомата cBankomats ++; //Прибавляем 1 созданный банкомат к общему кол-ву return 1; } Возникли вопросы? Пишите в данную тему. Автор:Неизвестно
  17. Представляю вашему вниманию оригинальную систему регистрации. Подобного вида система используется на RP-Gameworld. Уверен, данная система внесет каплю разнообразия на ваш сервер. Демонстрационное видео
  18. Всем привет! По скольку активность на форуме, мягко говоря упала, я решил её немного поднять. Сегодня я расскажу вам, как написать систему администрации, я делал такой урок, только на mxINI, но до меня давно уже дошло, что это прошлый век. Давайте начнём короче. 1. В pInfo создадим массив: pAdmin 2. Где у вас завершается регистрация, то есть указываются параметры, типа деньги, уровень и т.д., вставьте: Player[playerid][pAdmin] = 0; Мне привычней, использовать Player, может у кого-то будет pInfo, PlayerInfo и т.д., кто не понял для чего это, объясняю - мы ставим параметр pAdmin = 0, то есть, чтобы у него не было админки, кто-то может выдавать админку, но я считаю, что это уже Нубо РП. Так-с, дальше, где у вас идет создание аккаунта, в конец добавьте: `Admin` '%d' И конечно же, массив добавляем: Player[playerid][pAdmin] В паблик с авторизацией: Player[i][pAdmin] = cache_get_field_content_int(0, "Admin"); Вместо "i" у вас может быть "playerid" Дальше в сохранение аккаута: `Admin` = %d,\ И Player[playerid][pAdmin] Скопируйте как у вас идет сохранение денег например и подставляйте. И конечно базу данных, в структуру добавьте: Имя: Admin тип: INT, длина: 1. Вот и всё. На этом конец урока. Вот картинка, если кто-то не понял как добавлять:
  19. //Global Textdraws: new Text:tdReg[26], PlayerText:RegTD[MAX_PLAYERS][6]; tdReg[0] = TextDrawCreate(616.231445, 127.499992, "usebox"); TextDrawLetterSize(tdReg[0], 0.000000, 20.488893); TextDrawTextSize(tdReg[0], 486.667663, 0.000000); TextDrawAlignment(tdReg[0], 1); TextDrawColor(tdReg[0], 0); TextDrawUseBox(tdReg[0], true); TextDrawBoxColor(tdReg[0], -2147483393); TextDrawSetShadow(tdReg[0], 0); TextDrawSetOutline(tdReg[0], 0); TextDrawFont(tdReg[0], 0); tdReg[1] = TextDrawCreate(614.888793, 137.833358, "usebox"); TextDrawLetterSize(tdReg[1], 0.000000, 19.083330); TextDrawTextSize(tdReg[1], 488.541778, 0.000000); TextDrawAlignment(tdReg[1], 1); TextDrawColor(tdReg[1], 0); TextDrawUseBox(tdReg[1], true); TextDrawBoxColor(tdReg[1], 303174399); TextDrawSetShadow(tdReg[1], 0); TextDrawSetOutline(tdReg[1], 0); TextDrawFont(tdReg[1], 0); tdReg[2] = TextDrawCreate(550.981201, 126.000007, "АВТОРИЗАЦИЯ"); TextDrawLetterSize(tdReg[2], 0.147335, 0.876666); TextDrawAlignment(tdReg[2], 2); TextDrawColor(tdReg[2], -1); TextDrawSetShadow(tdReg[2], 0); TextDrawSetOutline(tdReg[2], 0); TextDrawBackgroundColor(tdReg[2], 51); TextDrawFont(tdReg[2], 2); TextDrawSetProportional(tdReg[2], 1); tdReg[3] = TextDrawCreate(534.303100, 142.500015, "usebox"); TextDrawLetterSize(tdReg[3], 0.000000, 0.811005); TextDrawTextSize(tdReg[3], 491.821319, 0.000000); TextDrawAlignment(tdReg[3], 1); TextDrawColor(tdReg[3], 0); TextDrawUseBox(tdReg[3], true); TextDrawBoxColor(tdReg[3], -2147483393); TextDrawSetShadow(tdReg[3], 0); TextDrawSetOutline(tdReg[3], 0); TextDrawFont(tdReg[3], 0); tdReg[4] = TextDrawCreate(611.672424, 154.583328, "usebox"); TextDrawLetterSize(tdReg[4], 0.000000, 0.857857); TextDrawTextSize(tdReg[4], 491.821258, 0.000000); TextDrawAlignment(tdReg[4], 1); TextDrawColor(tdReg[4], 0); TextDrawUseBox(tdReg[4], true); TextDrawBoxColor(tdReg[4], -2147483393); TextDrawSetShadow(tdReg[4], 0); TextDrawSetOutline(tdReg[4], 0); TextDrawFont(tdReg[4], 0); tdReg[5] = TextDrawCreate(610.735351, 155.750030, "usebox"); TextDrawLetterSize(tdReg[5], 0.000000, 0.623596); TextDrawTextSize(tdReg[5], 492.758483, 0.000000); TextDrawAlignment(tdReg[5], 1); TextDrawColor(tdReg[5], 0); TextDrawUseBox(tdReg[5], true); TextDrawBoxColor(tdReg[5], 303174399); TextDrawSetShadow(tdReg[5], 0); TextDrawSetOutline(tdReg[5], 0); TextDrawFont(tdReg[5], 0); tdReg[6] = TextDrawCreate(513.562683, 141.583328, "мњK мEќ®"); TextDrawLetterSize(tdReg[6], 0.147335, 0.876666); TextDrawAlignment(tdReg[6], 2); TextDrawColor(tdReg[6], -1); TextDrawSetShadow(tdReg[6], 0); TextDrawSetOutline(tdReg[6], 0); TextDrawBackgroundColor(tdReg[6], 51); TextDrawFont(tdReg[6], 2); TextDrawSetProportional(tdReg[6], 1); tdReg[7] = TextDrawCreate(534.366027, 174.416580, "usebox"); TextDrawLetterSize(tdReg[7], 0.000000, 0.857857); TextDrawTextSize(tdReg[7], 491.821350, 0.000000); TextDrawAlignment(tdReg[7], 1); TextDrawColor(tdReg[7], 0); TextDrawUseBox(tdReg[7], true); TextDrawBoxColor(tdReg[7], -2147483393); TextDrawSetShadow(tdReg[7], 0); TextDrawSetOutline(tdReg[7], 0); TextDrawFont(tdReg[7], 0); tdReg[8] = TextDrawCreate(611.735717, 186.499954, "usebox"); TextDrawLetterSize(tdReg[8], 0.000000, 0.904709); TextDrawTextSize(tdReg[8], 491.821350, 0.000000); TextDrawAlignment(tdReg[8], 1); TextDrawColor(tdReg[8], 0); TextDrawUseBox(tdReg[8], true); TextDrawBoxColor(tdReg[8], -2147483393); TextDrawSetShadow(tdReg[8], 0); TextDrawSetOutline(tdReg[8], 0); TextDrawFont(tdReg[8], 0); tdReg[9] = TextDrawCreate(610.798339, 187.666671, "usebox"); TextDrawLetterSize(tdReg[9], 0.000000, 0.623596); TextDrawTextSize(tdReg[9], 492.758453, 0.000000); TextDrawAlignment(tdReg[9], 1); TextDrawColor(tdReg[9], 0); TextDrawUseBox(tdReg[9], true); TextDrawBoxColor(tdReg[9], 303174399); TextDrawSetShadow(tdReg[9], 0); TextDrawSetOutline(tdReg[9], 0); TextDrawFont(tdReg[9], 0); tdReg[10] = TextDrawCreate(510.345886, 174.083312, "ЈAPOћ©"); TextDrawLetterSize(tdReg[10], 0.147335, 0.876666); TextDrawAlignment(tdReg[10], 2); TextDrawColor(tdReg[10], -1); TextDrawSetShadow(tdReg[10], 0); TextDrawSetOutline(tdReg[10], 0); TextDrawBackgroundColor(tdReg[10], 51); TextDrawFont(tdReg[10], 2); TextDrawSetProportional(tdReg[10], 1); tdReg[11] = TextDrawCreate(534.428894, 206.916519, "usebox"); TextDrawLetterSize(tdReg[11], 0.000000, 0.904709); TextDrawTextSize(tdReg[11], 491.821411, 0.000000); TextDrawAlignment(tdReg[11], 1); TextDrawColor(tdReg[11], 0); TextDrawUseBox(tdReg[11], true); TextDrawBoxColor(tdReg[11], -2147483393); TextDrawSetShadow(tdReg[11], 0); TextDrawSetOutline(tdReg[11], 0); TextDrawFont(tdReg[11], 0); tdReg[12] = TextDrawCreate(611.798706, 219.583312, "usebox"); TextDrawLetterSize(tdReg[12], 0.000000, 0.904709); TextDrawTextSize(tdReg[12], 491.821350, 0.000000); TextDrawAlignment(tdReg[12], 1); TextDrawColor(tdReg[12], 0); TextDrawUseBox(tdReg[12], true); TextDrawBoxColor(tdReg[12], -2147483393); TextDrawSetShadow(tdReg[12], 0); TextDrawSetOutline(tdReg[12], 0); TextDrawFont(tdReg[12], 0); tdReg[13] = TextDrawCreate(610.861328, 220.749984, "usebox"); TextDrawLetterSize(tdReg[13], 0.000000, 0.623596); TextDrawTextSize(tdReg[13], 492.758422, 0.000000); TextDrawAlignment(tdReg[13], 1); TextDrawColor(tdReg[13], 0); TextDrawUseBox(tdReg[13], true); TextDrawBoxColor(tdReg[13], 303174399); TextDrawSetShadow(tdReg[13], 0); TextDrawSetOutline(tdReg[13], 0); TextDrawFont(tdReg[13], 0); tdReg[14] = TextDrawCreate(512.283081, 205.999984, "PEEPAћ"); TextDrawLetterSize(tdReg[14], 0.147335, 0.876666); TextDrawAlignment(tdReg[14], 2); TextDrawColor(tdReg[14], -1); TextDrawSetShadow(tdReg[14], 0); TextDrawSetOutline(tdReg[14], 0); TextDrawBackgroundColor(tdReg[14], 51); TextDrawFont(tdReg[14], 2); TextDrawSetProportional(tdReg[14], 1); tdReg[15] = TextDrawCreate(534.491882, 241.166534, "usebox"); TextDrawLetterSize(tdReg[15], 0.000000, 0.857857); TextDrawTextSize(tdReg[15], 491.821319, 0.000000); TextDrawAlignment(tdReg[15], 1); TextDrawColor(tdReg[15], 0); TextDrawUseBox(tdReg[15], true); TextDrawBoxColor(tdReg[15], -2147483393); TextDrawSetShadow(tdReg[15], 0); TextDrawSetOutline(tdReg[15], 0); TextDrawFont(tdReg[15], 0); tdReg[16] = TextDrawCreate(611.861450, 253.250045, "usebox"); TextDrawLetterSize(tdReg[16], 0.000000, 0.904709); TextDrawTextSize(tdReg[16], 491.821289, 0.000000); TextDrawAlignment(tdReg[16], 1); TextDrawColor(tdReg[16], 0); TextDrawUseBox(tdReg[16], true); TextDrawBoxColor(tdReg[16], -2147483393); TextDrawSetShadow(tdReg[16], 0); TextDrawSetOutline(tdReg[16], 0); TextDrawFont(tdReg[16], 0); tdReg[17] = TextDrawCreate(610.952026, 254.916473, "usebox"); TextDrawLetterSize(tdReg[17], 0.000000, 0.623596); TextDrawTextSize(tdReg[17], 492.758544, 0.000000); TextDrawAlignment(tdReg[17], 1); TextDrawColor(tdReg[17], 0); TextDrawUseBox(tdReg[17], true); TextDrawBoxColor(tdReg[17], 303174399); TextDrawSetShadow(tdReg[17], 0); TextDrawSetOutline(tdReg[17], 0); TextDrawFont(tdReg[17], 0); tdReg[18] = TextDrawCreate(507.129119, 240.416671, "EMAIL"); TextDrawLetterSize(tdReg[18], 0.147335, 0.876666); TextDrawAlignment(tdReg[18], 2); TextDrawColor(tdReg[18], -1); TextDrawSetShadow(tdReg[18], 0); TextDrawSetOutline(tdReg[18], 0); TextDrawBackgroundColor(tdReg[18], 51); TextDrawFont(tdReg[18], 2); TextDrawSetProportional(tdReg[18], 1); tdReg[19] = TextDrawCreate(552.890625, 271.750030, "usebox"); TextDrawLetterSize(tdReg[19], 0.000000, 0.857857); TextDrawTextSize(tdReg[19], 492.289825, 0.000000); TextDrawAlignment(tdReg[19], 1); TextDrawColor(tdReg[19], 0); TextDrawUseBox(tdReg[19], true); TextDrawBoxColor(tdReg[19], -2147483393); TextDrawSetShadow(tdReg[19], 0); TextDrawSetOutline(tdReg[19], 0); TextDrawFont(tdReg[19], 0); tdReg[20] = TextDrawCreate(611.519042, 271.583496, "usebox"); TextDrawLetterSize(tdReg[20], 0.000000, 0.904709); TextDrawTextSize(tdReg[20], 553.197937, 0.000000); TextDrawAlignment(tdReg[20], 1); TextDrawColor(tdReg[20], 0); TextDrawUseBox(tdReg[20], true); TextDrawBoxColor(tdReg[20], -2147483393); TextDrawSetShadow(tdReg[20], 0); TextDrawSetOutline(tdReg[20], 0); TextDrawFont(tdReg[20], 0); tdReg[21] = TextDrawCreate(551.981384, 271.666442, "usebox"); TextDrawLetterSize(tdReg[21], 0.000000, 0.764152); TextDrawTextSize(tdReg[21], 493.227081, 0.000000); TextDrawAlignment(tdReg[21], 1); TextDrawColor(tdReg[21], 0); TextDrawUseBox(tdReg[21], true); TextDrawBoxColor(tdReg[21], 303174399); TextDrawSetShadow(tdReg[21], 0); TextDrawSetOutline(tdReg[21], 0); TextDrawFont(tdReg[21], 0); tdReg[22] = TextDrawCreate(610.609924, 271.499786, "usebox"); TextDrawLetterSize(tdReg[22], 0.000000, 0.764152); TextDrawTextSize(tdReg[22], 554.135253, 0.000000); TextDrawAlignment(tdReg[22], 1); TextDrawColor(tdReg[22], 0); TextDrawUseBox(tdReg[22], true); TextDrawBoxColor(tdReg[22], 303174399); TextDrawSetShadow(tdReg[22], 0); TextDrawSetOutline(tdReg[22], 0); TextDrawFont(tdReg[22], 0); tdReg[23] = TextDrawCreate(611.518737, 287.916748, "usebox"); TextDrawLetterSize(tdReg[23], 0.000000, 0.904709); TextDrawTextSize(tdReg[23], 492.289825, 0.000000); TextDrawAlignment(tdReg[23], 1); TextDrawColor(tdReg[23], 0); TextDrawUseBox(tdReg[23], true); TextDrawBoxColor(tdReg[23], -2147483393); TextDrawSetShadow(tdReg[23], 0); TextDrawSetOutline(tdReg[23], 0); TextDrawFont(tdReg[23], 0); tdReg[24] = TextDrawCreate(610.609558, 287.833190, "usebox"); TextDrawLetterSize(tdReg[24], 0.000000, 0.811004); TextDrawTextSize(tdReg[24], 493.227081, 0.000000); TextDrawAlignment(tdReg[24], 1); TextDrawColor(tdReg[24], 0); TextDrawUseBox(tdReg[24], true); TextDrawBoxColor(tdReg[24], 303174399); TextDrawSetShadow(tdReg[24], 0); TextDrawSetOutline(tdReg[24], 0); TextDrawFont(tdReg[24], 0); tdReg[25] = TextDrawCreate(551.701782, 303.833374, "DESIGNER SALEV & RIPS SPECIAL: CR-MP.RU/FORUM"); TextDrawLetterSize(tdReg[25], 0.106573, 0.695833); TextDrawAlignment(tdReg[25], 2); TextDrawColor(tdReg[25], -2139062017); TextDrawSetShadow(tdReg[25], 0); TextDrawSetOutline(tdReg[25], 0); TextDrawBackgroundColor(tdReg[25], 51); TextDrawFont(tdReg[25], 2); TextDrawSetProportional(tdReg[25], 1); // Player TextDraw RegTD[playerid][0] = CreatePlayerTextDraw(playerid, 551.107238, 153.666687, "SANTIAGO_WELASO"); PlayerTextDrawLetterSize(playerid, RegTD[playerid][0], 0.147335, 0.876666); PlayerTextDrawAlignment(playerid, RegTD[playerid][0], 2); PlayerTextDrawColor(playerid, RegTD[playerid][0], -1); PlayerTextDrawSetShadow(playerid, RegTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][0], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][0], 51); PlayerTextDrawFont(playerid, RegTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][0], 1); RegTD[playerid][1] = CreatePlayerTextDraw(playerid, 517.905517, 186.166702, "HA›MњЏE љћ¬ BBOљA..."); PlayerTextDrawLetterSize(playerid, RegTD[playerid][1], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][1], 595.958984, 8.166666); PlayerTextDrawAlignment(playerid, RegTD[playerid][1], 1); PlayerTextDrawColor(playerid, RegTD[playerid][1], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][1], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][1], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][1], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][1], 51); PlayerTextDrawFont(playerid, RegTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][1], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][1], true); RegTD[playerid][2] = CreatePlayerTextDraw(playerid, 518.436889, 219.249938, "HA›MњЏE љћ¬ BBOљA..."); PlayerTextDrawLetterSize(playerid, RegTD[playerid][2], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][2], 596.895996, 8.749999); PlayerTextDrawAlignment(playerid, RegTD[playerid][2], 1); PlayerTextDrawColor(playerid, RegTD[playerid][2], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][2], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][2], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][2], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][2], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][2], 51); PlayerTextDrawFont(playerid, RegTD[playerid][2], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][2], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][2], true); RegTD[playerid][3] = CreatePlayerTextDraw(playerid, 518.031311, 252.916488, "HA›MњЏE љћ¬ BBOљA..."); PlayerTextDrawLetterSize(playerid, RegTD[playerid][3], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][3], 596.895996, 8.749999); PlayerTextDrawAlignment(playerid, RegTD[playerid][3], 1); PlayerTextDrawColor(playerid, RegTD[playerid][3], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][3], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][3], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][3], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][3], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][3], 51); PlayerTextDrawFont(playerid, RegTD[playerid][3], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][3], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][3], true); RegTD[playerid][4] = CreatePlayerTextDraw(playerid, 509.534729, 270.583374, "MY›CKOќ"); PlayerTextDrawLetterSize(playerid, RegTD[playerid][4], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][4], 537.394165, 11.083332); PlayerTextDrawAlignment(playerid, RegTD[playerid][4], 1); PlayerTextDrawColor(playerid, RegTD[playerid][4], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][4], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][4], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][4], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][4], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][4], 51); PlayerTextDrawFont(playerid, RegTD[playerid][4], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][4], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][4], true); RegTD[playerid][5] = CreatePlayerTextDraw(playerid, 570.036743, 270.416778, "›EHCKњќ"); PlayerTextDrawLetterSize(playerid, RegTD[playerid][5], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][5], 597.364624, 9.333333); PlayerTextDrawAlignment(playerid, RegTD[playerid][5], 1); PlayerTextDrawColor(playerid, RegTD[playerid][5], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][5], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][5], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][5], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][5], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][5], 51); PlayerTextDrawFont(playerid, RegTD[playerid][5], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][5], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][5], true); RegTD[playerid][6] = CreatePlayerTextDraw(playerid, 509.534820, 287.499938, "ЈPOљOћ›њЏ© PE™њCЏPA њ«..."); PlayerTextDrawLetterSize(playerid, RegTD[playerid][6], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][6], 603.924011, 11.083333); PlayerTextDrawAlignment(playerid, RegTD[playerid][6], 1); PlayerTextDrawColor(playerid, RegTD[playerid][6], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][6], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][6], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][6], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][6], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][6], 51); PlayerTextDrawFont(playerid, RegTD[playerid][6], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][6], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][6], true); Может кому нибудь, нужен будет
  20. Работа заключается в том, что нужно по точкам развести достаточно больше пицца, чтобы заработать большую зарплату. Ко всем define #define PizzaMoney 1000 // Цена за один чекпоинт #define PizzaTime 300 // Сколько игроку дается времени (в секундах) чтобы доставить пиццы #define COLOR_LIGHTBLUE 0x33CCFFAA В глобалку new Float:PizzaCheckpoint[10][3] = { {2199.6738,-1766.1499,21.4903}, {2431.0461,-1706.7495,21.4876}, {2378.8538,-1862.7435,21.4903}, {2374.2595,-1887.1068,21.4903}, {2409.5942,-2143.4617,21.4864}, {2552.6003,-2195.3875,21.5006}, {2752.5759,-2447.5283,21.2174}, {2326.6321,-1804.7623,21.9824}, {2308.0000,-1912.1495,21.3555}, {2256.9080,-2102.9331,21.4971} }; new Pizza[2]; В public OnGameModeInit SetTimer("SecondTimes", 1000, true); Pizza[0] = AddStaticVehicleEx(448,2143.9517,-1811.9202,18.4989,0.9532,3,6,6000); AddStaticVehicleEx(448,2147.4592,-1811.8813,18.4981,1.9254,3,6,6000); AddStaticVehicleEx(448,2150.9919,-1811.8866,18.4972,359.9016,3,6,6000); AddStaticVehicleEx(448,2154.4307,-1811.8749,18.4980,1.2683,3,6,6000); AddStaticVehicleEx(448,2157.9902,-1811.8684,18.4989,1.4477,3,6,6000); AddStaticVehicleEx(448,2161.5176,-1811.8600,18.4980,1.0813,3,6,6000); Pizza[1] = AddStaticVehicleEx(448,2165.0857,-1811.8517,18.4972,359.9437,3,6,6000); В public OnPlayerCommandText if(strcmp("/job", cmdtext, true, 10) == 0) { new carid = GetPlayerVehicleID(playerid); if(GetVehicleModel(carid) == 448 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "Доставьте пиццу по указанным точкам!"); SetPlayerCheckpoint(playerid, PizzaCheckpoint[1][0], PizzaCheckpoint[1][1], PizzaCheckpoint[1][2], 2.0); SetPVarInt(playerid, "GetPlayerSkin", GetPlayerSkin(playerid)); SetPlayerSkin(playerid, 155); SetPVarInt(playerid, "PizzaTime", gettime() + PizzaTime); SetPVarInt(playerid, "PizzaCheck", 1); return 1; } return 1; } В public OnPlayerEnterCheckpoint new carid = GetPlayerVehicleID(playerid); if(GetPVarInt(playerid, "PizzaCheck") == 1 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[2][0], PizzaCheckpoint[2][1], PizzaCheckpoint[2][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 2); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 2 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[3][0], PizzaCheckpoint[3][1], PizzaCheckpoint[3][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 3); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 3 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[4][0], PizzaCheckpoint[4][1], PizzaCheckpoint[4][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 4); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 4 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[5][0], PizzaCheckpoint[5][1], PizzaCheckpoint[5][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 5); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 5 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[6][0], PizzaCheckpoint[6][1], PizzaCheckpoint[6][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 6); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 6 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[7][0], PizzaCheckpoint[7][1], PizzaCheckpoint[7][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 7); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 7 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[8][0], PizzaCheckpoint[8][1], PizzaCheckpoint[8][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 8); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 8 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[9][0], PizzaCheckpoint[9][1], PizzaCheckpoint[9][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 9); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 9 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[1][0], PizzaCheckpoint[1][1], PizzaCheckpoint[1][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 1); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } В public OnPlayerStateChange if(newstate == PLAYER_STATE_DRIVER) { new carid = GetPlayerVehicleID(playerid); if(carid >= Pizza[0] && carid <= Pizza[1]) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Введите /job чтобы начать работу доставщика пиццы."); } И в конец мода forward SecondTimes(playerid); public SecondTimes(playerid) { if(GetPVarInt(playerid, "PizzaCheck") != 0 && GetPVarInt(playerid, "PizzaTime") <= gettime()) { new s[30]; format(s, sizeof(s), "Вы заработали %d рублей.", GetPVarInt(playerid, "PizzaMoney")); SendClientMessage(playerid, -1, s); GivePlayerMoney(playerid, GetPVarInt(playerid, "PizzaMoney")); SetPlayerSkin(playerid, GetPVarInt(playerid, "GetPlayerSkin")); DisablePlayerCheckpoint(playerid); DeletePVar(playerid, "PizzaTime"); DeletePVar(playerid, "PizzaCheck"); DeletePVar(playerid, "PizzaMoney"); DeletePVar(playerid, "GetPlayerSkin"); return 1; } return 1; } Автор: Amfy, скрипт найден в одном из GM
  21. Привет, держи команды, чтобы узнать ид интерьера и виртуального мира, удачи. CMD:int(playerid) { new string[5];//в запас format(string, sizeof(string), "Великий ID интерьера: %d", GetPlayerInterior(playerid)); SCM(playerid, 0xFFFFFFFF, string); return true; } На ещё: CMD:world(playerid) { new string[5];//в запас format(string, sizeof(string), "Великий ID мира, который виртуальный: %d", GetPlayerVirtualWorld(playerid)); SCM(playerid, 0xFFFFFFFF, string); return true; }
  22. Pavel_Zaytsev

    Анти-Бот

    #define MAX_IP 3 new connect_ip[32+1]; GetPlayerIp(playerid,connect_ip,32); new num_ip = GetNumberOfPlayersOnThisIP(connect_ip); if(num_ip > MAX_IP) { //Kick(playerid); Ban(playerid); return 1; } P.S: Из мода вырезал.
×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.