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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Здравствуйте уважаемые пользователи! Я решил представить вам часть кода,который позволяет личному авто сохранять свои позиции(даже после рестарта) Взято с другого портала В OnPlayerExitVehicle(playerid, vehicleid): new playername[MAX_PLAYER_NAME]; new Float:x,Float:y,Float:z,Float:a; new cars; GetPlayerName(playerid, playername, sizeof(playername)); if(!strcmp(playername, CarInfo[GetRealID(cars)][cOwner], true) || !strcmp(playername, CarInfo[GetRealID(cars)][cNick1], true)) { if(IsPlayerInAnyVehicle(playerid)) { cars = GetPlayerVehicleID(playerid) ; GetVehiclePos(cars,x, y, z); GetVehicleZAngle(cars, a); } new world = GetPlayerVirtualWorld(playerid); new inter = GetPlayerInterior(playerid); CarInfo[GetRealID(cars)][cWorld] = world; CarInfo[GetRealID(cars)][cInter] = inter; CarInfo[GetRealID(cars)][cPx] = x; CarInfo[GetRealID(cars)][cPy] = y; CarInfo[GetRealID(cars)][cPz] = z; CarInfo[GetRealID(cars)][cPa] = a; SaveCar(GetRealID(cars)); }
  2. Здравствуйте уважаемые пользователи! Решил сделать спидометр.Сделал только textdraw,а потом стало лень доделывать. Но пользователи которые понимают в этом,могут сделать спидометр работоспособным. Textdraw0 = TextDrawCreate(490.000000, 354.000000, "SPEED:"); TextDrawBackgroundColor(Textdraw0, 255); TextDrawFont(Textdraw0, 1); TextDrawLetterSize(Textdraw0, 0.679998, 2.099999); TextDrawColor(Textdraw0, -1); TextDrawSetOutline(Textdraw0, 0); TextDrawSetProportional(Textdraw0, 1); TextDrawSetShadow(Textdraw0, 1); Textdraw1 = TextDrawCreate(510.000000, 374.000000, "FUEL:"); TextDrawBackgroundColor(Textdraw1, 255); TextDrawFont(Textdraw1, 1); TextDrawLetterSize(Textdraw1, 0.599999, 2.200000); TextDrawColor(Textdraw1, -1); TextDrawSetOutline(Textdraw1, 0); TextDrawSetProportional(Textdraw1, 1); TextDrawSetShadow(Textdraw1, 1); Textdraw2 = TextDrawCreate(495.000000, 334.000000, "ENGINE:"); TextDrawBackgroundColor(Textdraw2, 255); TextDrawFont(Textdraw2, 1); TextDrawLetterSize(Textdraw2, 0.529999, 1.899999); TextDrawColor(Textdraw2, -1); TextDrawSetOutline(Textdraw2, 0); TextDrawSetProportional(Textdraw2, 1); TextDrawSetShadow(Textdraw2, 1); Textdraw3 = TextDrawCreate(495.000000, 393.000000, "LIGHTS:"); TextDrawBackgroundColor(Textdraw3, 255); TextDrawFont(Textdraw3, 1); TextDrawLetterSize(Textdraw3, 0.539999, 2.299998); TextDrawColor(Textdraw3, -1); TextDrawSetOutline(Textdraw3, 0); TextDrawSetProportional(Textdraw3, 1); TextDrawSetShadow(Textdraw3, 1);
  3. Здравствуйте уважаемые пользователи cr-mp.ru! Решил выложить сюда систему подъездов с мода GTRP! Взято с другого портала Начнем! Ко всем enum добавим
  4. Predator

    Спавн игроков около РЖД

    Здравствуйте уважаемые пользователи! Хочу представить вам мою работу,спавн около РЖД. Работа маленькая и простенькая.Кто хочет,возьмите к себе на сервер
  5. Predator

    Ёлка около Останкино

    Все знают что приближается праздник Новый Год! Я решил сделать ёлочку в центре Южного. Сразу говорю,работа маленькая.Кто хочет возьмет ее себе на сервер,кто нет,не пишите глупые коменты.
  6. C:\Users\Сергей\Desktop\The Omsk RP Revival\gamemodes\Omsk.pwn(11235) : warning 202: number of arguments does not match definition C:\Users\Сергей\Desktop\The Omsk RP Revival\gamemodes\Omsk.pwn(19429) : warning 217: loose indentation C:\Users\Сергей\Desktop\The Omsk RP Revival\gamemodes\Omsk.pwn(19444) : warning 217: loose indentation C:\Users\Сергей\Desktop\The Omsk RP Revival\gamemodes\Omsk.pwn(42139) : warning 217: loose indentation Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase Как исправить?
  7. Здравствуйте уважаемые пользователи CR-MP.RU Сегодня я вам покажу , как добавить ботов на сервер (Автор: Neat) Для начало, скачаем необходимые файлы ---------------------------------------------------------------------------------------------------------------------------------------- Файлы npc_record.pwn и npc_record.amx копируем в filterscripts, а a_npc.inc в /pawno/include. Далее открываем server.cfg и в строке filterscripts прописываем npc_record, также изменяем maxnpc на количество ботов на сервере. Далее открываем мод через pawno.exe и после #include <a_samp> добавляем #include <a_npc> и компилируем мод. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- В этом уроке мы будем делать бота который ездит на машине по заданному маршруту. Заходим на сервер, входим как RCON администратор, садимся в машину и как только вы готовы начать записывать бота - вводим команду /vrecord [имя бота] (не используйте кириллицу в названии бота). Запись началась, ездим по нужному нам маршруту и когда нужно остановить запись бота - вводим команду /srecord и запись останавливается. Выходим из игры и заходим в scriptfiles, там вы увидите названия бота.rec копируем этот файл в /npcmodes/recordings. Создаем чистый .pwn файл и вносим в него следующий код: #define RECORDING "NameNPC" //Имя вашего записанного файла из scriptfiles без расширения #define RECORDING_TYPE 1 //1 - если путь записан на машине, 2 - пешком #include main(){} public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING); #if RECORDING_TYPE == 1 public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING); public OnNPCExitVehicle() StopRecordingPlayback(); #else public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING); . #endif Компилируем и закрываем. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Открываем свой мод и ко всем глобальным переменным добавляем (название может быть любое, я взял ProverkaNPC): new ProverkaNPC Далее идем в public OnGameModeInit() и добавляем: ConnectNPC("любое имя бота","название файла из scriptfiles без расширения"); ProverkaNPC = CreateVehicle(400,0.0,0.0,5.0,0.0,3,3,5000);//Координаты изменять не надо, можете изменить только модель ТС и цвет Далее идем в public OnPlayerSpawn(playerid) и добавляем: if(IsPlayerNPC(playerid)) { new npcname[MAX_PLAYER_NAME]; GetPlayerName(playerid,npcname,sizeof(npcname)); if(!strcmp(npcname,"имя указанное в ConnectNPC",true)) { PutPlayerInVehicle(playerid,ProverkaNPC,0); } return 1; } Если при подключении бота, его выкидывает с сервера из-за того, что у вас система регистрации, то при регистрации нужно вставить этот код: if(IsPlayerNPC(playerid)) return 1; Всё! Если вы всё сделали правильно, то у вас всё должно работать. Файлы для ботов!.rar
  8. Всем привет пользователи,вообщем выкладываю базу Полиции в г.Южный.Проекту она больше не нужна решил поделиться.
  9. Swager1234

    error 017: undefined symbol "ynamicObject"

    C:\Users\Сергей\Desktop\crmp1\gamemodes\RP3.pwn(27483) : error 017: undefined symbol "ynamicObject" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 1 Error. Как исправить?
  10. #Rock

    Mapping

    Всем Привет ЕЩЕ) Сделал Еще маппинга (Начинающий Маппёр)
  11. Доброго времени суток, уважаемые пользователи - будьте так добры, подскажите пожалуйста! В общем, первое с чем я столкнулся - это, залив на хост сервер и подключив БД, после зайдя на сервер "регистрация" не появляется. И после, как вписываешь в диалог, где просит привязать "EMAIL" - сервер прост ложится. Как исправить не знаю, поиском пользовался - но не нашёл, может плохо смотрел... Вся надежда на Вас.
  12. Skinn3r

    Анашан

    Доброго времени суток, Уважаемые пользователи CR-MP.RU! Решил опробовать себя в роли Маппера. Вот моя первая работа в Map Конструкторе! Сделал Анашан не много другим. Добавил не много нового , а точнее новый въезд(Скрин забыл) , забор и место для грузчиков или Дальнобойщиков. Стоят Два шлакбаума Ну, смотрите, оценивайте.
  13. Ув.пользователи прошу у вас помощи, как мне сделать диолог покупки Авто! 1.Пример когда садишься в Авто там вылазил диолог купить или отмена.
  14. KOSМOS

    Пустота в центре Южного !

    Вот может быть , кому нибудь и пригодится .... Автор : Я CreateDynamicObject(1986, 2434.35, -2294.00, 20.98, 0.00, 0.00, -90.00); CreateDynamicObject(4528, 2330.64, -2404.64, 29.81, 0.00, 0.00, 90.00); CreateDynamicObject(4528, 2330.64, -2226.07, 29.81, 0.00, 0.00, 90.00); CreateDynamicObject(4528, 2330.64, -2404.64, 29.81, 0.00, 0.00, 90.00); CreateDynamicObject(4528, 2330.64, -2404.64, 29.81, 0.00, 0.00, 90.00); CreateDynamicObject(4528, 2330.63, -2373.30, 29.81, 0.00, 0.00, 90.00); CreateDynamicObject(4528, 2330.58, -2341.95, 29.81, 0.00, 0.00, 90.00); CreateDynamicObject(4528, 2330.61, -2257.52, 29.81, 0.00, 0.00, 90.00); CreateDynamicObject(4528, 2330.61, -2288.98, 29.81, 0.00, 0.00, 90.00); CreateDynamicObject(4528, 2400.13, -2404.28, 29.81, 0.00, 0.00, -90.00); CreateDynamicObject(4528, 2400.14, -2372.92, 29.81, 0.00, 0.00, -90.00); CreateDynamicObject(4528, 2400.16, -2225.77, 29.81, 0.00, 0.00, -90.00); CreateDynamicObject(4528, 2400.18, -2257.21, 29.81, 0.00, 0.00, -90.00); CreateDynamicObject(4528, 2400.20, -2288.70, 29.81, 0.00, 0.00, -90.00); CreateDynamicObject(4528, 2330.61, -2315.44, 29.81, 0.00, 0.00, 90.00); CreateDynamicObject(2193, 2382.63, -2419.83, 15.05, 0.00, 0.00, 0.00); CreateDynamicObject(2193, 2346.28, -2419.81, 15.05, 0.00, 0.00, 0.00); CreateDynamicObject(2193, 2346.28, -2210.18, 15.05, 0.00, 0.00, 0.00); CreateDynamicObject(2193, 2382.63, -2210.18, 15.05, 0.00, 0.00, 0.00); CreateDynamicObject(3508, 2404.91, -2315.53, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2404.99, -2343.76, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2395.67, -2343.83, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2395.55, -2315.69, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2386.27, -2315.69, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2386.36, -2343.88, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2386.48, -2372.07, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2386.57, -2400.24, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2386.61, -2406.60, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2386.16, -2287.51, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2386.05, -2259.32, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2385.91, -2231.11, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2385.91, -2231.11, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2385.91, -2231.11, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2385.84, -2224.97, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2344.96, -2224.86, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2345.07, -2253.04, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2345.18, -2281.32, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2345.17, -2309.50, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2345.26, -2337.71, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2345.38, -2365.89, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2345.37, -2393.56, 21.00, 0.00, 0.00, 57.50); CreateDynamicObject(3508, 2345.31, -2406.40, 21.00, 0.00, 0.00, 57.50); CreateDynamicObject(3508, 2361.40, -2415.33, 21.00, 0.00, 0.00, -32.50); CreateDynamicObject(3508, 2373.72, -2415.39, 21.00, 0.00, 0.00, -32.50); CreateDynamicObject(3508, 2356.84, -2215.07, 21.00, 0.00, 0.00, -32.50); CreateDynamicObject(3508, 2367.48, -2215.12, 21.00, 0.00, 0.00, -32.50); CreateDynamicObject(2193, 2409.48, -2311.74, 15.05, 0.00, 0.00, 90.00); CreateDynamicObject(2193, 2409.35, -2361.76, 15.05, 0.00, 0.00, 90.00); CreateDynamicObject(3427, 2359.68, -2403.18, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2372.26, -2403.43, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(3427, 2372.26, -2388.81, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(3427, 2372.26, -2374.15, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(3427, 2372.25, -2359.44, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(3427, 2359.68, -2388.48, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2359.69, -2373.73, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2359.70, -2359.01, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2359.70, -2227.15, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2359.70, -2241.89, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2359.70, -2256.62, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2359.70, -2271.35, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2372.25, -2227.35, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(3427, 2372.25, -2242.07, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(3427, 2372.25, -2256.77, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(3427, 2372.25, -2271.50, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(3427, 2359.71, -2286.08, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2359.71, -2300.80, 22.10, 0.00, 0.00, 0.00); CreateDynamicObject(3427, 2372.26, -2286.21, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(3427, 2372.25, -2300.95, 22.10, 0.00, 0.00, -180.00); CreateDynamicObject(970, 2368.09, -2352.07, 21.46, 0.00, 0.00, 0.00); CreateDynamicObject(970, 2363.97, -2352.08, 21.46, 0.00, 0.00, 0.00); CreateDynamicObject(970, 2363.96, -2410.61, 21.46, 0.00, 0.00, 0.00); CreateDynamicObject(970, 2368.10, -2410.61, 21.46, 0.00, 0.00, 0.00); CreateDynamicObject(970, 2363.76, -2308.19, 21.46, 0.00, 0.00, 0.00); CreateDynamicObject(970, 2367.94, -2308.20, 21.46, 0.00, 0.00, 0.00); CreateDynamicObject(970, 2368.07, -2219.92, 21.46, 0.00, 0.00, 0.00); CreateDynamicObject(970, 2363.93, -2219.93, 21.46, 0.00, 0.00, 0.00); CreateDynamicObject(3508, 2352.30, -2234.47, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2353.04, -2262.63, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2353.63, -2290.69, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2353.74, -2318.79, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2353.84, -2346.99, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2353.91, -2375.21, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2354.01, -2397.27, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2377.51, -2232.58, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2377.61, -2260.54, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2377.73, -2288.74, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2377.86, -2316.96, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2378.07, -2345.07, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2377.73, -2372.36, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2377.69, -2398.11, 21.00, 0.00, 0.00, 58.00); CreateDynamicObject(3508, 2363.55, -2312.88, 21.00, 0.00, 0.00, -32.50); CreateDynamicObject(3508, 2363.69, -2347.37, 21.00, 0.00, 0.00, -32.50); CreateDynamicObject(618, 2366.17, -2407.40, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2366.07, -2394.18, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2365.95, -2381.33, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2366.03, -2368.54, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2365.97, -2355.66, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2365.98, -2306.44, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2366.12, -2221.29, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2365.87, -2234.80, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2365.72, -2291.88, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2365.55, -2278.47, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2365.77, -2250.54, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(618, 2365.47, -2264.95, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(619, 2361.11, -2341.28, 20.83, 356.86, 0.00, -1.83); CreateDynamicObject(615, 2371.82, -2336.64, 20.80, 356.86, 0.00, 3.14); CreateDynamicObject(619, 2372.65, -2341.62, 20.83, 356.86, 0.00, -1.83); CreateDynamicObject(619, 2360.57, -2319.08, 20.83, 356.86, 0.00, -1.83); CreateDynamicObject(619, 2372.23, -2319.00, 20.83, 356.86, 0.00, -1.83); CreateDynamicObject(618, 2365.99, -2330.03, 20.83, 356.86, 0.00, -2.60); CreateDynamicObject(615, 2372.01, -2332.40, 20.80, 356.86, 0.00, 3.14); CreateDynamicObject(615, 2371.80, -2328.07, 20.80, 356.86, 0.00, 3.14); CreateDynamicObject(615, 2371.98, -2324.43, 20.80, 356.86, 0.00, 3.14); CreateDynamicObject(615, 2359.89, -2323.63, 20.80, 356.86, 0.00, 3.14); CreateDynamicObject(615, 2359.77, -2327.46, 20.80, 356.86, 0.00, 3.14); CreateDynamicObject(615, 2359.88, -2332.38, 20.80, 356.86, 0.00, 3.14); CreateDynamicObject(615, 2360.08, -2336.05, 20.80, 356.86, 0.00, 3.14);
  15. Здравствуйте уважаемые форумчане. У меня такая проблема после регистрации не спавнится игрок по координате которую я указываю,тупо падает с неба и все. И после смерти повторно выскакивает окно регистрации,выбора пола и т.д. Прошу помощи у скриптеров может кто сталкивался с такой проблемой помогите исправить. Выкладываю весь мод. Чтоб можно было посмотреть что да как. Заранее благодарен. Поможете с меня большая благодарность.!!! Помощь нужна срочно. Если что то не можете найти в pwn файле функции,паблики и.т.д находятся сдесь \servers\pawno\include
  16. Всех приветствую дорогие форумчане Сегодня я полазил в инете и нашёл спидометр Спидометр предназначен для SAMP'a Но я попробовал сделать его на CR:MP и у меня это получилось Вот решил поделиться! Так же спидометр можно русифицировать, ну это по вкусу! Автор спидометра: wAx и thewax Для начала для нарисованных текстдравов, необходимо создать переменные: new Text:SBox; new Text:SBox1; new PlayerText:CarSpeed[MAX_PLAYERS]; new PlayerText:CarFuel[MAX_PLAYERS]; new PlayerText:CarMilliage[MAX_PLAYERS]; new PlayerText:CarLights[MAX_PLAYERS]; new PlayerText:CarEngine[MAX_PLAYERS]; Переменные созданы, теперь создадим функции для создания самих текстдравов! Глобальные: stock CreateGlobalTextDraws() { SBox = TextDrawCreate(626.000000, 384.540008, "usebox"); TextDrawLetterSize(SBox, 0.000000, 5.905555); TextDrawTextSize(SBox, 430.799987, 0.000000); TextDrawAlignment(SBox, 1); TextDrawColor(SBox, 0); TextDrawUseBox(SBox, true); TextDrawBoxColor(SBox, 102); TextDrawSetShadow(SBox, 0); TextDrawSetOutline(SBox, 0); TextDrawFont(SBox, 0); SBox1 = TextDrawCreate(601.875000, 383.250061, "LD_SPAC:white"); TextDrawLetterSize(SBox1, 0.000000, 0.000000); TextDrawTextSize(SBox1, 21.250000, 57.166625); TextDrawAlignment(SBox1, 1); TextDrawColor(SBox1, 255); TextDrawSetShadow(SBox1, 0); TextDrawSetOutline(SBox1, 0); TextDrawFont(SBox1, 4); return 1; } Персональные: stock CreatePlayersTextDraw(playerid) { CarSpeed[playerid] = CreatePlayerTextDraw(playerid, 442.399963, 386.026580, "SPEED: 100"); PlayerTextDrawLetterSize(playerid, CarSpeed[playerid], 0.401249, 1.430832); PlayerTextDrawAlignment(playerid, CarSpeed[playerid], 1); PlayerTextDrawColor(playerid, CarSpeed[playerid], -1); PlayerTextDrawSetShadow(playerid, CarSpeed[playerid], 0); PlayerTextDrawSetOutline(playerid, CarSpeed[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarSpeed[playerid], 51); PlayerTextDrawFont(playerid, CarSpeed[playerid], 1); PlayerTextDrawSetProportional(playerid, CarSpeed[playerid], 1); CarFuel[playerid] = CreatePlayerTextDraw(playerid, 442.149963, 401.026672, "FUEL: 1000"); PlayerTextDrawLetterSize(playerid, CarFuel[playerid], 0.401249, 1.430832); PlayerTextDrawAlignment(playerid, CarFuel[playerid], 1); PlayerTextDrawColor(playerid, CarFuel[playerid], -1); PlayerTextDrawSetShadow(playerid, CarFuel[playerid], 0); PlayerTextDrawSetOutline(playerid, CarFuel[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarFuel[playerid], 51); PlayerTextDrawFont(playerid, CarFuel[playerid], 1); PlayerTextDrawSetProportional(playerid, CarFuel[playerid], 1); CarMilliage[playerid] = CreatePlayerTextDraw(playerid, 441.899963, 416.610015, "MILLIAGE: 10000"); PlayerTextDrawLetterSize(playerid, CarMilliage[playerid], 0.401249, 1.430832); PlayerTextDrawAlignment(playerid, CarMilliage[playerid], 1); PlayerTextDrawColor(playerid, CarMilliage[playerid], -1); PlayerTextDrawSetShadow(playerid, CarMilliage[playerid], 0); PlayerTextDrawSetOutline(playerid, CarMilliage[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarMilliage[playerid], 51); PlayerTextDrawFont(playerid, CarMilliage[playerid], 1); PlayerTextDrawSetProportional(playerid, CarMilliage[playerid], 1); CarLights[playerid] = CreatePlayerTextDraw(playerid, 608.125000, 386.166625, "L"); PlayerTextDrawLetterSize(playerid, CarLights[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, CarLights[playerid], 1); PlayerTextDrawColor(playerid, CarLights[playerid], -1); PlayerTextDrawSetShadow(playerid, CarLights[playerid], 0); PlayerTextDrawSetOutline(playerid, CarLights[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarLights[playerid], 51); PlayerTextDrawFont(playerid, CarLights[playerid], 1); PlayerTextDrawSetProportional(playerid, CarLights[playerid], 1); CarEngine[playerid] = CreatePlayerTextDraw(playerid, 609.125000, 413.416778, "E"); PlayerTextDrawLetterSize(playerid, CarEngine[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, CarEngine[playerid], 1); PlayerTextDrawColor(playerid, CarEngine[playerid], -1); PlayerTextDrawSetShadow(playerid, CarEngine[playerid], 0); PlayerTextDrawSetOutline(playerid, CarEngine[playerid], 1); PlayerTextDrawBackgroundColor(playerid, CarEngine[playerid], 51); PlayerTextDrawFont(playerid, CarEngine[playerid], 1); PlayerTextDrawSetProportional(playerid, CarEngine[playerid], 1); return 1; } в OnGameModeInit закинем: CreateGlobalTextDraws(); в OnPlayerConnect: CreatePlayersTextDraw(); Теперь нам надо сделать так, чтобы игрок который сел в машину на место водителя, видел спидометр За изменение позиции игрока относительно штата, отвечает паблик OnPlayerStateChange, закинем код туда: if(newstate == PLAYER_STATE_DRIVER) { if(!noeng(GetPlayerVehicleID(playerid))) { new v = GetPlayerVehicleID(playerid); VehicleInfo[v][vFuel] = 50.0; GetPlayerPos(playerid, VehicleInfo[v][vPosx],VehicleInfo[v][vPosy],VehicleInfo[v][vPosz]); TextDrawShowForPlayer(playerid, SBox); TextDrawShowForPlayer(playerid, SBox1); PlayerTextDrawShow(playerid, CarSpeed[playerid]); PlayerTextDrawShow(playerid, CarFuel[playerid]); PlayerTextDrawShow(playerid, CarMilliage[playerid]); PlayerTextDrawShow(playerid, CarLights[playerid]); PlayerTextDrawShow(playerid, CarEngine[playerid]); SpeedTimer[playerid] = SetTimerEx("UpdateSpeed",200,1,"d",playerid); return 1; } } if(oldstate == PLAYER_STATE_DRIVER) { TextDrawHideForPlayer(playerid, SBox); TextDrawHideForPlayer(playerid, SBox1); PlayerTextDrawHide(playerid, CarSpeed[playerid]); PlayerTextDrawHide(playerid, CarFuel[playerid]); PlayerTextDrawHide(playerid, CarMilliage[playerid]); PlayerTextDrawHide(playerid, CarLights[playerid]); PlayerTextDrawHide(playerid, CarEngine[playerid]); KillTimer(SpeedTimer[playerid]); return 1; } теперь в начале мода, нам нужно создать массив для хранения характеристик авто enum vInfo { vEngine, Float:vFuel, Float:vMilliage, vLights, Float:vPosx,Float:vPosy,Float:vPosz }; new VehicleInfo[MAX_VEHICLES][vInfo]; отлично! Теперь создадим переменную для таймера, а также паблик самого таймера! new SpeedTimer[MAX_PLAYERS]; и создадим паблик: forward UpdateSpeed(playerid); public UpdateSpeed(playerid) { new string[256]; new v = GetPlayerVehicleID(playerid); format(string,sizeof(string),"SPEED: %d",SpeedVehicle(playerid)); PlayerTextDrawSetString(playerid, CarSpeed[playerid], string); format(string,sizeof(string),"FUEL: %d",floatround(VehicleInfo[v][vFuel])); PlayerTextDrawSetString(playerid, CarFuel[playerid], string); format(string,sizeof(string),"MILLIAGE: %d",floatround(VehicleInfo[v][vMilliage])); PlayerTextDrawSetString(playerid, CarMilliage[playerid], string); switch(VehicleInfo[v][vLights]) { case 0: PlayerTextDrawSetString(playerid, CarLights[playerid], "~w~L"); case 1: PlayerTextDrawSetString(playerid, CarLights[playerid], "~b~L"); } if(VehicleInfo[v][vEngine]) PlayerTextDrawSetString(playerid, CarEngine[playerid], "~b~E"); else PlayerTextDrawSetString(playerid, CarEngine[playerid],"~w~E"); if(VehicleInfo[v][vFuel] <= 0) { VehicleInfo[v][vEngine] = 0; VehicleInfo[v][vFuel] = 0.0; SetVehicleParamsEx(v, VehicleInfo[v][vEngine], VehicleInfo[v][vLights],0,0,0,0,0); } if(GetPlayerDistanceFromPoint(playerid, VehicleInfo[v][vPosx], VehicleInfo[v][vPosy], VehicleInfo[v][vPosz]) > 50.0) { VehicleInfo[v][vMilliage] += 0.1; VehicleInfo[v][vFuel] -= 0.05; GetPlayerPos(playerid, VehicleInfo[v][vPosx],VehicleInfo[v][vPosy],VehicleInfo[v][ vPosz]); } return 1; } Теперь сделаем заводку двигателя: в OnPlayerKeyStateChange if(newkeys & KEY_ACTION) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new v = GetPlayerVehicleID(playerid); if(!noeng(v)) { if(!VehicleInfo[v][vFuel]) return 1; if(!VehicleInfo[v][vEngine]) VehicleInfo[v][vEngine] = 1; else VehicleInfo[v][vEngine] = 0; SetVehicleParamsEx(v, VehicleInfo[v][vEngine], VehicleInfo[v][vLights], 0, 0, 0, 0, 0); return 1; } } } и функция вычисления скорости stock noeng(carid) { new model = GetVehicleModel(carid); if(model == 462||model == 448||model == 509|| model == 510||model == 481||model==468||model == 471 || model == 511 || model == 512||model == 593||model == 520||model == 577||model == 476||model == 519 || model == 460 || model == 513||model == 472||model==473||model == 493||model == 595 || model == 484 || model == 430 || model == 453||model == 452||model == 446||model == 454 ||model == 548 ||model == 425|| model == 417||model == 487||model == 488||model == 497||model == 563||model == 447||model == 469||model == 553) return 1; return 0; } stock SpeedVehicle(playerid) { new Float:ST[4]; if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]); else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]); ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3; return floatround(ST[3]); }
  17. Все установил весь бд MySQL правельно все сделал изменил название на свое захожу на сервер и регистрации нету что делать? ЗАРАНЕЕ СПС
  18. Здравствуйте уважаемые пользователи CR-MP.RU У меня такой вопрос , я скачал Мар Конструктор и не знаю с чего начать! А точнее , что лучше делать новичку! (Какие базы или что то другое!) Подскажите пожалуйста
  19. Уважаемые пользователи!Помогите исправить проблему! В моде forever rp чат очищается сам по себе.Может кто знает?
  20. Вот такая ошибка если ездить по 1 местности то вылитает через 30 минут.А когда еду арзамас-Южный вылитает особенно на URM.Помогите с такой ошибкой.Заранее спасибо.Ноут 64-разрядный,Windows 7
  21. Здравствуйте, залита маппа в мод, а когда заходишь на сервер, то не отображает маппинг никакой, что делать? В чем ошибка?
  22. Здравствуйте уважаемые пользователи CR-MP.RU У меня такая проблема , когда я ставлю авто /park у меня оно становится боком после рескара! Пробовал разные способы , но не знаю может не так делал , подскажите!
  23. Здравствуйте я не могу понять создаю любой транспорт через административную команду ставлю на продажу делаю рестарт и оно исчезает так же и в автосалоне
  24. В связи с некоторыми событиями будет лучше, если появится тема, в которой я разберу несколько типичных ошибок горе-оптимизаторов, вводящих остальных в заблуждение. Ошибка первая: "Нетабулированный код работает медленнее и хуже" Один из наиболее частых советов для "оптимизации" кода - его табулирование. Дескать, нетабулированный код и собирается хуже, и работает медленнее, и вообще. Спешу огорчить - это не так. На сторонних форумах неоднократно проводились тесты быстродействия табулированного и нетабулированного кода - ни по скорости, ни по наличию багов в собранных бинарниках отличия нет. Более того, всем известная директива препроцессора #pragma tabsize позволяет переназначить для интерпретатора размер отступа - ставьте хоть ноль и не табулируйте. Другое дело, что нетабулированный код на порядок сложнее читать самому, а следовательно - при возникновении необходимости внести изменения создает дополнительные проблемы в понимании алгоритма работы. Впрочем, эту проблему можно решить в один клик с помощью Notepad++ и плагина TextFX. Ошибка вторая: "Рекурсия - это всегда плохо!" Не менее часто публикуются сообщения вида "У тебя в коде рекурсия, ее быть не должно". В таком виде совет, конечно, дикий и неверный. Рекурсивные функции - не есть зло, более того - некоторые вещи, иначе как рекуррентным алгоритмом, не опишешь вообще. К примеру, подсчет факториала проще и быстрее реализовывать рекурсивной функцией, нежели другими способами. Рекурсия может испортить программисту жизнь только в двух случаях: если программист грамотно не опишет условия выхода из рекурсии или если программист не учитывает, что в какой-то момент может быть переполнен стек. В любом случае, такие косяки - это вина только программиста, отнюдь не ЯП. А это еще хорошо, что в Pawn (из коробки, естественно) нет функций работы с динамической памятью... О переполнении стека, к слову, мы подробно поговорим в следующем пункте. Ошибка третья: "Переопределять размер стека - плохо, код с #pragma dynamic - априори кривой!" Еще одно типичное заблуждение. Гипотетически может возникнуть ситуация, когда бинарнику необходимо работать с большим количеством переменных, которым в оперативной памяти в любом случае выделено место. И количество этих переменных настолько велико, что дефолтного размера стека в 16384 байта (4096 ячеек) бинарнику просто не хватит, особенно если учесть, что Pawn выделяет под переменную память не байтами, а ячейками (впрочем, об этом более подробно будет сказано далее). Путем нехитрого подсчета получается, что с дефолтным размером стека одновременно можно использовать только 4096 переменных. А если нужно больше? Именно для этого и существует директива #pragma dynamic, которая позволяет переназначить размер стека при сборке компилятором. Опасность может подстерегать одна - главное, чтобы количество памяти, которое будет требовать бинарник, было свободно на конкретном железе. Впрочем, это уже также проблемы конкретного программиста... Ошибка четвертая: "Использование bool в нужных случаях экономит ресурсы!" Вообще, конечно, если смотреть на более серьезные языки программирования - совет действительно правильный. Тип BOOLEAN в них требует значительно меньше ресурсов памяти (аналогично с CHAR - 1 байт) в отличие от целочисленных (INTEGER, от двух байт и выше - для языка C). Во многих ЯП так и происходит...но не в Pawn. Компилятор Pawn выделяет память не байтами, а ячейками. Одна ячейка равна четырем байтам - а значит, с точки зрения количества используемой памяти между булевой и целочисленной переменной разницы не будет никакой. Конечно, в случаях, когда могут быть использованы всего два значения - 0 или 1 - грамотнее будет использовать булевы переменные: при написании программ на иных ЯП в этом уже будет польза. Говорить же о том, что использование bool в Pawn позволяет экономить ресурсы - некорректно. Ошибка пятая: "Всегда пиши/Никогда не пиши stock вместо public" Существует много мнений о том, что и когда лучше использовать, но аргументы в основном одни и те же: "будет быстрее работать", "меньше жрет памяти" и т.д. Прежде всего хочу сказать одно: функция, как бы Вы ее не описали - stock, public/protected/private и так далее - если содержит одинаковый код, будет занимать одинаковое количество места в памяти, независимо от ее типа. Различия между stock и public (именно на этих двух типах в Pawn идут основные холивары) в следующем: - public объявляет функцию публичной, а значит - позволяет ее вызывать вне основного бинарника, stock такого права доступа не дает. Именно поэтому функции, вызываемые по таймеру, или функции, вызываемые из других бинарников через CallRemoteFunction, объявляются только как public; - для корректного вызова public-функций извне должен быть объявлен их прототип (forward), stock по вышеописанной причине прототипа не требует; - public-функция будет включена в собранный бинарник, даже если в нем она не используется вообще - опять же, по причине из первого пункта. stock же, если функция в коде не вызывается, в бинарник не будет включена вообще. Правда, смысл держать неиспользуемую функцию в коде мне непонятен. Есть еще несколько различий, но основные я указал. Что удобнее использовать в каждом конкретном случае - решать только программисту. Материал будет дополняться, в случае дополнения первый пост будет изменен. Материал является авторским и без явного согласия автора к публикации на сторонних ресурсах запрещен.
×

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

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