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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

Найдено: 1,487 результатов

  1. Alonso

    Absolute Role Play v0.1

    [spoiler=Скриншоты''] Решил писать мод с нуля для слива, в общем вот. Что есть - на скринах, и в начале мода помеченные /**/ Скачать: https://yadi.sk/d/ogsHBPSB3NvYBa Автор: Alexey_Kostyaev, он же Алексей Березуцкий, он же Alonzo, он же Alonso, он же MOPTTEX_YOUTUBE, он же Alexey_Alonzo Обновления буду сливать сюда в тему
  2. Хей, создаю сервер на базе gamer'a понимаю, что замученная тема! Пытаюсь убрать/переместить надпись в верху экрана, информация о уровне(level) и о exp. где в павно вот этого мода есть такая строка и что нужно сделать чтобы переместить надписи? MOD - http://cr-mp.ru/forum/index.php?app=core&module=attach&section=attach&attach_id=5187
  3. Внимание: TD имеет превью модели, которые не совместимы с CRMP 0.3е TD хорошо подойдет для новой версии CRMP 0.3.7 AND SAMP Скачать: https://yadi.sk/d/ogYAKtaG3NZdwe Автор: Денис Исоков
  4. Система заключается в том, что ни один посланный репорт не останется незамеченным. Пока администраторы/хелперы не ответят, он не пропадет. Ко всем new: enum RepGB { Reptex[130],// Текст который пишет игрок, не превышает 130 символов. RepTime, }; new RepInfo[100][RepGB]; // Максимум послать можно 100 репортов. Ко всем командам ( если у вас уже есть команда репорта - удалите её ) : CMD:report(playerid,params[]) { if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!"); ReportDialog(playerid); return true; } CMD:reports(playerid) { if(PLAYER_DATA[playerid][data_ADMLVL] == 0) return SCM(playerid, -1, "Команда доступна только для администрации!"); new str[200], string[1500], null = 0; foreach(new i:Player) { if(GetPVarInt(i, "RepUn") > 0) { null++; format(str,sizeof(str),"%s\n{FFFFFF}%i. %s[%d] | Жалоба: %s [%s]",string, null,PLAYER_DATA[i][data_NAME],i,RepInfo[i][Reptex], date("%hh:%ii:%ss", RepInfo[i][RepTime])); strcat(string,str); } } strcat(string, "\n\n{FFCC00}Ответить на жалобу: /pm [id] [ответ]"); if(null == 0) return SendClientMessage(playerid, 0xAA3333AA,"Список репортов пуст"); return ShowPlayerDialogFix(playerid, 9692, 0, "Репорт",string, "Обновить", "Закрыть"); } Ко всем stock`ам ( в конец / середину мода ) : stock ReportDialog(playerid) { new dtext[700]; strcat(dtext, "{FFFFFF}Вы собираетесь написать Администрации сервера\n"); strcat(dtext, "{FFFFFF}Перед тем как отправить сообщение\n"); strcat(dtext, "{FFFFFF}убедитесь, что один из пунктов помощи не дал Вам ответа на Ваш вопрос\n\n"); strcat(dtext, "{FF3300}Запрещено:\n"); strcat(dtext, "{FFFFFF}- флуд, сквернословие, оффтоп\n"); strcat(dtext, "{FFFFFF}- Выпрашивание игровых ценностей ('дать денег', 'дать лидерку', 'дать права')\n"); strcat(dtext, "{FFFFFF}- ложные сообщения о нарушении\n\n"); strcat(dtext, "{FF3300}За нарушение правил Администратор может:\n"); strcat(dtext, "{FFFFFF}- предупредить (warn)\n"); strcat(dtext, "{FFFFFF}- отключить от сервера (kick)\n"); strcat(dtext, "{FFFFFF}- лишить возможности писать (mute)\n"); strcat(dtext, "{FFFFFF}- заблокировать (ban)\n\n"); strcat(dtext, "{FFFFFF}Данные правила установлены для всех игроков {339966}rglrp.tk"); ShowPlayerDialogFix(playerid,dialog_REPORT,DIALOG_STYLE_INPUT,"{FFCC00}Репорт",dtext,"Отправить","Назад"); return true; } Ко всем dialog`ам : case dialog_REPORT: { if(!response) return true; if(response) { if(strlen(inputtext) < 1 || strlen(inputtext) > 100) return SendClientMessage(playerid,COLOR_WARNING,"Не менее 1 и не более 100 символов!"),ReportDialog(playerid); if(GetPVarInt(playerid,"RepUn") > 0) return SendClientMessage(playerid,0xAA3333AA,"Ошибка: Ваша прошлая жалоба ещё не рассмотрена"); SetPVarInt(playerid,"RepUn",1); strmid(RepInfo[playerid][Reptex], inputtext,0,strlen(inputtext),130); RepInfo[playerid][RepTime] = gettime(); SendAdminMessage(0x33FF66FF, "{FFCC00}Поступила новая жалоба от игрока! Рассмотреть жалобы: /reports"); SendClientMessage(playerid,0x3399feFF, "Ваша жалоба отправлена на рассмотрение!"); } } Команда для ответа на репорт | ( /pm ) : CMD:pm(playerid,params[]) { //ставьте свою переменную админки if(PLAYER_DATA[playerid][data_ADMLVL] < 1) return true; if(sscanf(params,"us[100]",params[0],params[1])) return SendClientMessage(playerid,COLOR_WARNING,"Используйте: /pm [ид] [текст]"); if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,COLOR_WARNING,"Данного ID нет на сервере!"); new string[300]; format(string, sizeof(string), "[Ответ] %s[%d] игроку %s[%d]: {ffffff}%s", PLAYER_DATA[playerid][data_NAME],playerid,PLAYER_DATA[params[0]][data_NAME],params[0],params[1]); SendAdminMessage(0xffa141FF, string); format(string, sizeof(string), "Администратор %s[%d] ответил вам: {ffffff}%s", PLAYER_DATA[playerid][data_NAME],playerid,params[1]); SendClientMessage(params[0], 0xffa141FF, string); if(strlen(RepInfo[params[0]][Reptex])) { format(string, sizeof(string), "На вашу жалобу: {FFFFFF}%s", RepInfo[params[0]][Reptex]); SendClientMessage(params[0], 0xffa141FF, string); } strmid(RepInfo[playerid][Reptex], "",0,0,0); DeletePVar(params[0], "RepUn"); return true; } Найдено на просторах интернета, оформление моё. Автор : неизвестен. P.S: Проблемы с табуляцией на сайте, надо выровнять.
  5. Добрый день, хотел бы задать вопрос. Хочу перевести мод из SAMPа в CRMP, но с моими умениями - тяжело. Есть ли люди, которые смогут это сделать и сколько стоит? Жду вашего ответа, спасибо. Связь со мной - ВКонтакте
  6. Всем привет дорогие друзья Да-да это очередная моя доработка мода,а точнее фиксы багов! И так данный мод уже есть на данном сервере,но он полностью баганный ТЫЦ Сначала напишу все что в нем есть в данном моде... И так,погнали: Государственные организации Мэрия Полиция ДПС ФСБ Минздрав Автошкола Армия Н.К."Ритм Н.К."Антенкино Криминальные организации Гопота Батыревская Братва Южная братва Якудза Русская Мафия Есть системы(/add) Добавить дом Добавить бизнес Добавить пикап Добавить транспорт Добавить GPS Добавить ATM Создать промокод Что было доработано: Убран лишний мапинг Убран баг с домами Убран баг с покупкой бизнеса Убран баг с парковкой авто Убран баг мэрии(нельзя было уволиться) Убран баг свободных квартир И многое другое(уже просто не помню) Что сделано: Добавлена зарплата фракций (ее не было вообще) Добавлен был интерьер квартир Добавлен был мапинг по всей карте Добавлен был Клуб (так как в /add он его,но мапинга не было) Исправил статистику (не сохранялась) Исправил номера авто ( не сохранялись) Исправил систему домов (некоторые слетали) Дописал систему подъездов (сохранение вообще не было в БД) Исправил работу маршрутчика (маршрут был корявый и не понятный) Исправил систему телефона (не сохранялся) Исправил систему рескар авто (не рескарил) Исправил /mp (мероприятия не создавались,а если создавались то не понятно как) Сделал рабочую работу Развозчик топливо (вообще не работала) Сделал работу грузчика (не начислялась зарплата) Сделал работу шахтера (отходил на 1 метр и работу заканчивал) Сделал работу лесоруба (зарплата не давалась) Доработал Трудовую книжку (иногда не записывалось) И очень много чего еще исправил,все не перечислить! Что нужно доработать(что помню): Нужно сделать личное авто( не пропадает когда игрок выходит с сервера) Завоевания бизнеса (нет зоны где воевать) Сохранение аккаунтов (слетают иногда при рестарте сервера) Это все,все что помню,просто появился новый мод и с этим пришлось завязать! Скрины добавлять не буду,так как уже есть у автора!Просто вставлю ссылку! Автор мода: MAXIMDELAET Автор доработки: Marvellous (т.е Я) Скрины: ТЫЦ Скачать с Яндекс.Диска Копирование на другие порталы без Автора доработки строго запрещено
  7. Дороу форумчане. Знаю, мод давно слит, конкретно на данном портале его нет. Вот сливаю. Короче, чё по улучшениям: Добавлена сцена для проведения парадов 9 мая. Новая система СТО В моде исправлены практически "все" ошибки(грамматические) Переделано оформление мода. Фикс крашей. Новый мапинг, как заявляет сам владелец проекта и разработчик мода - маппинг от "проф" маппера. Ну-ну ;) Автор мода CRP - Максимка Семёнов Автор доработки - Громов Фёдор Автор слива для CR-MP.RU - Попугай Кеша Скачать - https://yadi.sk/d/IhZlWo5Y3NFCVa
  8. - Для хранения данных используется: Mysql R39-3. - Командный процессор: DC_CMD В моде присутствуют системы такие как: - Домов - Бизнесов - Пикапов - Авто - АТМ - ГангЗон - Ферм - Парковок - Подъездов - Квартир - Радаров - Выборов - Автоматического автосалона - Номеров Слив на форум: #GOBLIN Ссылка: yadi.sk/d/oKBvawKi3MthQw Качайте на здоровье дамы и господа
  9. Для начала создадим переменные 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 потребуется для восстановления данных", "Далее", "Выход"); } }
  10. Ко всем переменным new new GruzPickUp; new GruzRabota[MAX_PLAYERS]; new GruzSkin[MAX_PLAYERS]; В OnGameModeInit(); GruzPickUp = CreatePickUp(1275, 23, x, y, z,);//Место устройства на работу x, y, z - свои координаты Create3DTextLabel("Устройство на работу грузчика", 0xFFFFFFFF, x, y, z, 6.5, 0);// x, y, z - свои координаты В OnPlayerPickUpPickup(playerid, pickupid) if(pickupid = GruzPickup) { if(GruzRabota[playerid] == 0) { SPD(playerid, 1, DSM, "{FFFFFF}Устройство на работу", "Вы действительно хотите устроиться на работу грузчика", "Согласен", "Отмена"); } else { SPD(playerid, 1, DSM, "{FFFFFF}Увольнение с работы", "Вы действительно хотите уволиться с работы грузчика", "Да", "Нет"); } } В OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if(dialogid == 1) { if(!response) return true; if(GruzRabota[playerid] = 0) { GruzRabota[playerid] = 1; GruzSkin[playerid] = GetPlayerSkin(playerid); SetPlayerSkin(playerid, 260); SetPlayerCheckpoint(playerid, x, y, z, 1.5);// x, y, z - свои координаты SCM(playerid, 0xFFFF00FF, "Вы успешно устроились на работу грузчика!"); SCM(playerid, 0xFF8000FF, "Теперь отправляйтесь за мешками. Место обозначено на карте!"); return 1; } else { GruzRabota[playerid] = 0; SetPlayerSkin(playerid, 260); DisablePlayerCheckpoint(playerid); SCM(playerid, 0xFF8000FF, "Вы успешно уволились с работы грузчика"); } } Далее в OnPlayerEnterCheckpoint(playerid) if(GruzRabota[playerid] == 1) { SCM(playerid, 0xFFFFFFFF, "Вы успешно взяли мешок, отправляйтесь на склад!"); DisablePlayerCheckpoint(playerid); GruzRabota[playerid] == 2; SetPlayerCheckpoint(playerid, x, y, z);// x, y, z - свои координаты return true; } if(GruzRabota[playerid] == 2) { new money = random(150); GivePlayerMoney(playerid, money); DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, x, y, z);// x, y, z - свои координаты GruzRabota[playerid] == 1; SCM(playerid, 0xFFFFFFFF, "Вы успешно принесли мешок, теперь отправляйтесь за другим мешком.!"); return true; } В OnPlayerConnect(playerid) GruzRabota[playerid] == 0; GruzSkin[playerid] == 0; Если будет ругаться на SCM, SPD, DSM, то в #define SCM SendClientMessage #define SPD ShowPlayerDialog #define DSM DIALOG_STYLE_MSGBOX АВТОР: Я. Т.е. ВУДИК или же Vladimir_Kulkov Сразу скажи, что это основа только лишь. Нет выдачи "мешков" стоит рандомная функция выдачи денег за один мешок. И нужно добавить будет таймер на пикап устройства, т.к. он не дает уйти от того места где устроился. Так же где SPD(playerid, 1, DSM, "{FFFFFF}Увольнение с работы", "Вы действительно хотите уволиться с работы грузчика", "Да", "Нет"); Вам нужно будет поменять id диалога. я поставил 1. Если хотите могу дописать все полностью. Раз уж Dexter`у не понадобилось, я сливаю в открытый доступ
  11. #Rips

    GTA Role Play | Version 0.18

    Доброе время суток, пользователи портала cr-mp.ru Я хочу выложить свою небольшую копию GTA Role Play | Version 0.18. Автор данной копии: #Salev | #Rips Копирование на другие порталы запрещено! Скачать с Яндекс.Диск Информация о игровом моде: Подключенные плагины: MYSQL r39-2 Sscanf2 2.8.1 MD5 DC_CMD 2.8 Streamer 2.7.4 Regex Имеется в игровом моде: 1. Написана выдача административных прав 2. Исправлен баг со сливом денег, раньше при вводе - или + можно было получить такую же сумму, которая имеется у Вас на руках 3. Написано сохранение игрового аккаунта - UpdatePlayerData(playerid, "название параметра", данные которые будут сохраняться); 4. Исправлен с авторизацией, когда один игрок выходи из сервера, то другой игрок сразу спавнился с его данными. Теперь такого не будет 5. Добавлен таймер на авторизацию игрового аккаунта. У Вас будет ровно 1 минута на авторизацию 6. Написана команда блокировки игрового аккаунта, а так же разблокировка игрового аккаунта 7. Добавлена настройка смена игрового пароля от аккаунта 8. Добавлена система Payday, репутации(exp) 9. Добавлена читерская панель - SH - SpeedHack: speedhack car, speedhack быстрого персонажа - TP - Teleport: Fly, AirBreak, TP по метке - P.s данные панели пока что не работают, в следющих версиях буду писать уже анти чит 10. Добавлена система бизнесов - Добавление через игру командой /aedit 11. Добавлена систему блокировки игрового чата, так же его снятие 12. Добавлены новые административные команды: - /makeadmin [Игровой ник игрока] [Уровень] - Выдать административные права - /ban [playerid] [количество дней] [Причина] - Выдать блокировку игрового аккаунта игрока - /unban [Игровой ник игрока] - Разблокировать игровой аккаунт игрока - /mute [playerid] [количество минут] [Причина] - Выдать блокировку игрового чата - /unmute [playerid] - Снять блокировку игрового чата - /alogin - Регистрация/Авторизация административного пароля - /aedit - Административный центр для разработчиков P.s доступна только тем, кто прописан в игровом моде 13. Начато написание лидерские прав (5/100%) 14. Написана обмен игровой валюты, узнать баланс игрового аккаунта(рублей), информация при пополнение игрового баланса Немного о система предприятиях(бизнесев): В данной системе есть тока добавление самого бизнеса, вход в бизнес и выход из него. В следующих версиях будет писать покупка бизнеса, панель бизнеса, заказ продуктов. Что отсутствует в данной копии: 1. Не все диалоги дописаны (в след версиях все допишу) 2. Работ: шахтера, инкассатора, доставщика пиццы, оружейного завода, ферм и т.д.. | P.s из-за маппинга 3. Система сытости, бодрости, веса, выносливости 4. Выбора спавна при авторизации на сервер 5. Система квартир, домов 6. Системы бонусного дня(x2 exp, payday, donate) 7. Что желаю я добавить? Добавить систему подарков, которые игроки смогут собирать и обменивать у NPC [spoiler=ScreenShot игрового мода]
  12. BaseMussel29

    Online RolePlay | Original - versions

    Всех приветствую , хочу вам предоставить мод: Online RolePlay , мод имеет две версии: 2014 года, 2015 года. Обе версии были написаны с 0, в дальнейшем версия 2015 года перешла в проект NFRP. 2014 года версия - не порезанный мод который в сети, 2015 - я выше все сказал. Если вы будете брать для дал. разработки , то советую использовать 2014 года версию, 2015 очень сырая Скачать: https://yadi.sk/d/R-Gl--Qx3MGZBh
  13. #GOBLIN

    Online RolePlay 2015 версия

    Командный процессор : DC-CMD Мод состоит из 23177 строк. Код очень оптимизирован. Есть пояснения к каждой системе в самом коде( // ) В моде есть весь мапиинг(интерьеры фракций и т.п) Очень много всяких "новых" систем. Мне понравилась система гостиниц. Все валюты на сервере подстроены под реальное имущество. Так же есть система прицепов для личных машин. Так же очень многофункциональная система домов. Несколько классов домов. Можно покупать улучшения, перетаскивать шкаф, изменять параметры. Мод очень хорош под вырезку, но ещё недоведён до ума. Малая часть пунктов/работ/общественных мест, которые есть в моде: Общественные места: Автошкола Военкомат Гостиница Отдел кадров Авторынок эконом класса Авторынок среднего класса Авторынок премиум класса Мото-Вело рынок Арзамас Батырево Бусаево (школа) Бусаево (село) Гарель Роговичи Лыткарино Новое Эдово Транспортные узлы: Ж/Д Вокзал Арзамаса Автовокзал Арзамаса Центральная автостанция (автопарк) Автовокзал Батырево Автовокзал Лыткарино Автовокзал Эдово Аэропорт Батырево Аэропорт Лыткарино Государственные организации: Правительство области Отдел полиции №1 (ДПС) Отдел полиции №2 (ППС) Федеральная Служба Безопасности Городская больница ГТРК «Ритм» Воинская часть Работы: Городской склад (работа грузчика) Шахта (работа шахтера) Лесопилка (работа лесоруба) Завод по производству продуктов Нефтедобывающий завод Нефтеперерабатывающий завод Автопарк для дальнобойщиков (продукты) Автопарк для дальнобойщиков (топливо) Пожарная станция №1 Пожарная станция №2 Автомеханики Банки: Центральный банк Арзамаса Банк Батырево Банк Эдово (частный) Развлечения: Райский остров Областной дом культуры Гоночная трасса для картинга Гоночная трасса для мотоциклов Гоночная трасса для катеров Игровой клуб Арзамаса (в разработке) Игровой клуб Батырево (в разработке) Игровой клуб Лыткарино (в разработке) Пляж "Кордон" Пляж "Анашан" Пляж "Роговичи" Парк Арзамаса Интересные места: Кремль Густой лес Охотничий лес Стадион Арзамаса Старый наркопритон Маяк на берегу моря Центральное кладбище Закрытая электростанция Подземный туннель в метро Бомбоубежище в аэропорту Заброшенный торговый центр Фракции: Правительство области Воинская часть Городская больница ГТРК «Ритм» Отдел полиции №1 (ДПС) Отдел полиции №2 (ППС) Федеральная Служба Безопасности Арзамасская ОПГ Батыревская ОПГ Лыткаринская ОПГ Системы: Система предложений Система управления транспортом Система банкомата Система багажника Система прицепа Система репортов Система улучшения игрока Система доната Система GPS Система домов Система гостиниц Система подъездов Система обучения в АШ Система бизнесов Система анимаций Система личного телефона Система АЗС Система по управлению экономики Система меню игрока Система советника Автор слива: #GOBLIN Ссылка: https://yadi.sk/d/xBjMA3ym3MCE2Y
  14. #Rips

    GTA Role Play | Version 0.12

    Доброе время суток, пользователи портала cr-mp.ru Я хочу выложить свою небольшую копию GTA Role Play. Автор данной копии: #Salev | #Rips Копирование на другие порталы запрещено! Скачать: YandexDisk Информация о игровом моде: Подключенные плагины: MYSQL r39-2 Sscanf2 2.8.1 MD5 DC_CMD 2.8 Streamer 2.7.4 Regex Имеется в игровом моде: 1. Система регистрации/авторизации аккаунта 2. Система спидометра | Включение/Выключение двигателя, и фар. 3. Имеется одна работа грузчика 4. Система AFK away from keyboard 5. Система личных настроек(временные данные, до перезахода на сервер): Включение/выключение часов Включение/выключение отображения спидометра Изменение языка спидометра Английский/Русский Включение/Выключение показателя пинга 6. Система смена игрового ник нейма с одобрение администрации P.s все измененные игровые ники записываются в базу данных 7. Несколько игровых команд для администрации: /ahelp - Узнать доступные команды /kick - Отсоединить игрока от сервера /veh - Создать автомобиль /delveh - Удалить автомобиль /alldelveh - Удалить все автомобили созданные администрацией /setweather - Смена игровой погоды /settime - Смена игрового времени /setvw - Смена игрового виртуального мира /setint - Смена интерьера /slap - Дать поджопник игроку /admin(/a) - Административные чат /ooc - Общий чат сервера(для администрации с 1 по 5 уровень) /msg - Оповещение для игроков сервера от администрации(с 6 уровня) /setname - Одобрение на смену игрового ника /loadfs - Активировать filescript /unloadfs - Деактивировать загрузку filescript 8. Несколько игровых команд для игроков: /menu(/mn,/mm) - Игровое меню игрока /id - Узнать ид игрока по игровому ник нейму или по playerid /showud - Показатель удостоверение(доступно будет тока во фракции) /showpass - Показать документы(паспорт) игроку /n(/b) - NonRP Chat | OOC Chat /me - Обозначает действие, эмоции либо прочие подробности персонажа от 3го лица. /do - Предназначена для описания событий и подробностей игрового мира в настоящем времени, не относящихся конкретно к определённым игрокам, либо относящихся, но обезличенно и только к игроку /todo - Команда для отыгровки действия вместе с фразой персонажа. /try - Действие с вероятным успехом /s - Кричать /w - Шептать /time - Узнать время Что отсутствует в данной копии: 1. Сохранение игрового аккаунта 2. Настройки безопасности 3. Система дополнительных услуг 4. Не все диалоги дописаны (в след версиях все допишу) 5. Работ: шахтера, инкассатора, доставщика пиццы, оружейного завода, ферм и т.д.. 6. Система сытости, бодрости, веса, выносливости 7. Система лидерских прав 8. Система payday'я 9. Выбора спавна при авторизации на сервер 10. Таймера при входе на сервер на одному минуту 11. Систсема квартир,домов и бизнесов [spoiler=ScreenShot игрового мода] http://i.imgur.com/xkr5OWm.png http://i.imgur.com/mCyEYxV.png http://i.imgur.com/nCNEybi.png http://i.imgur.com/9J5Flws.jpg http://i.imgur.com/rnAbIth.png http://i.imgur.com/JJ5TvO0.png http://i.imgur.com/lW1bKhf.png http://i.imgur.com/sW59bSn.jpg
  15. TD_sliv.pwn Автор: MOPTTEX a.k.a Alonso Автор Идеи: ShiGanKa [spoiler=Скрин]
  16. ПавелКубанец

    Lagen RP доработка "Game of life"

    Сливаю мод "Lagen RP" Моя доработка "Game of life" Мод на системе "MiXiNi" Примечание: Доработанны/исправлены команды "ВНИМАНИЕ"!: Варинги не влияют на запуск сервера! Чтобы выдать доступ ко всем командам нужно в павно нажать на бинокль и написать: Ваш_Ник затем меняете на свой ник. Автор доработки: Александр Акимов ________________Добавлено_________________ Команды: /skick /jetpack /veh /delveh /delakk FS: /Iphone (айфон 5s), /tablet (планшет), /selfie (селфи) МП система (нужно доработать) ________________Добавлено_________________ 12 уровней администрации. 12 фракций. Оригинальный маппинг. Весь код лесенкой. Система автополучения гос.номеров и тех.осмотра. Система игровых автоматов. Система больницы. Работы: Дальнобойщик. Инкассатор. Таксист. Водитель маршрутки. Мусоровоз. Сборщик оружия. Ссылка https://yadi.sk/d/-p6shS2o3KWaQi
  17. 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
  18. Vladimir_Kulkov

    Спидометр(простой)

    Вот простенький спидометр. Спидометр: - Скорость - Марка - бензин - Шкала скорости Спидометр находится в нижнем правом углу
  19. 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
  20. 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);//кардинаты меняем на свои и всё Вот и всё готово Для новичков будет полезно Автор:Неизвестно
  21. 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; } Возникли вопросы? Пишите в данную тему. Автор:Неизвестно
  22. Vladimir_Kulkov

    [CMD] /veh, /delveh

    Здравствуйте, уважаемые пользователи cr-mp.ru Предоставляю Вам реализацию команд /veh, /delveh на Pawn.CMD (3.1.3) + sscanf2 (2.8.2):
  23. Vladimir_Kulkov

    Команда /makeadmin на dc_cmd

    Всем привет не видел на данном форуме такую команду как /makeadmin и решил её выложить. Итак начнем! Сначала сделаем #define #define SCM SendClientMessage К вашим командам. CMD:makeadmin(playerid, params[]) { if(Player[playerid][pAdmin] < 8) return SCM(playerid, 0xFF0000AA, "Вы не уполномочены использовать данную команду"); if(sscanf(params, "ii", params[0], params[1])) return SCM(playerid, 0xFF0000AA, "Введите: /makeadmin [0-7]"); if(!IsPlayerConnected(params[0])) return SCM(playerid, 0xFF0000AA, "Данный игрок не в сети!"); if(params[1] < 0 || params[1] > 7) return SCM(playerid, 0xFF0000AA, "Уровень админа [0-7]"); Player[params[0]][pAdmin] = params[1]; static const fmt_str[] = "Админ %s изменил ваш уровень админа на: %d"; new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+1]; format(string, sizeof(string), fmt_str, Player[playerid][pName], params[1]); SCM(params[0], 0xFFFF00FF, string); return true; } А теперь давайте разберем код. new string[128]; // Отвечает за размер строки (Не менять больше! т.к нагружать сервер будет) if(Player[playerid][pAdmin] < 8) // Отвечает за проверку уровня админа (Player - Это переменная где хранятся данные об игроке например у меня: Player) pAdmin - Это массив отвечающий за админа меняйте на свой, (( < 8 - Если уровень админа меньше 8, то возникает ошибка )) if(sscanf(params, "ii", params[0], params[1])) // params, "ii" - Отвечает за текст и айди игрока, params[0] - ид игрока, params[1] - уровень админа if(!IsPlayerConnected(params[0])) // Проверка на в сети ли игрок, params[0] - ид игрока который был введен if(params[1] < 0 || params[1] > 7) // params[1] < 0 если введеный уровень меньше 0, params[1] > 7 если введеный уровень больше 7, то возникнет ошибка, (params[1] - отвечает за текст) Player[params[0]][pAdmin] = params[1]; // Присвоение игроку уровень админа, Player[params[0] - ИД игрока, = params[1] - Уровень который хотят дать format(string, sizeof(string), "Админ %s изменил ваш уровень админа на: %d", Player[playerid][pName], params[1]); // Player[playerid][pName] - Ваш массив с именем (Ставите свой), params[1] - Сколько игроку поставили уровень админа SendClientMessage(params[0], 0xFFFFFFAA, string); return true; // Действие повторяется Автор : неизвестно
  24. Представляю вашему вниманию оригинальную систему регистрации. Подобного вида система используется на RP-Gameworld. Уверен, данная система внесет каплю разнообразия на ваш сервер. Демонстрационное видео
  25. Регистрация/авторизация на TD. Красивый спидометр. Уникальный маппинг. Много команд для администраторов + привязка по нику. Система потребностей (сытость, еда). 4 работы (такси, водитель автобуса, механик, дальнобойщик), 3 подработки (шахтер, сборщик оружия, лесоруб). Когда срубают дерево на лесопилке, оно падает. В автошколе можно сдать на права на автомобиль, вертолет и лодку. Красивое оформление GPS (когда его включают, на экране показывается TD, то бишь, предупреждение о том, что GPS включен). Красивый TD в автосалоне (все настройки автомобиля настраиваются в моде). Почти все действия администратора записываются в логи. 12 фракций. Красивое оформление статистики. Имеется система складов (дерево, уголь, оружие). Имеется /apanel, через эту команду можно: -узнать весь список администрации; -узнать команды администратора (можно через /ahelp); -отредактировать настройки администратора; -управлять сервером (включить х2, пополнить склады); -узнать статистику администратора; -расформировать фракцию. Система гонок. Сервер автоматически производит рестарт в 5 часов ночи. Система радаров. Система промо-кодов. В меню есть настройки игрока, там можно отключить TD "потребности" и "информация" и др 8 lvl админки Держал онлайн 320 человек далее не тестировался Скачать с Яндекс.Диск Автор: Supreme228 - Aleksey_Kireev
×

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

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