Дата: 02.10.2010, Суббота, 15:51:43 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 207
Щас я объясню как сделать GPS по поиску проффесий. Вы приезжаете в мерию вводите /gpsjob и появляется диологовое окно с работами. Вы едете к той точке которая отмечена на карте, как вы приедете встаете на пикап и значок с карты пропадает. Итак приступи, шаг первый Ко всем new добавляем Шаг второй: Создаем пикап. В public OnGameModeInit() вставляем: Code gpsjobs = CreatePickup(1581, 23, 362.1823,173.9139,1008.3828,-1); // поиск работ -1 указывает на то, что пикап будет отображаться во всех виртуальных мирах. Шаг третий: Делаем саму команду. Code if(strcmp(cmd, "/gpsjob", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerToPoint(3.0, playerid,362.1071,173.8628,1008.3828)) { ShowPlayerDialog(playerid, 58, DIALOG_STYLE_LIST, "GPS: Выберите интересующую вас работу.", "Детектив\nШлюха\nНаркодилер\nУгонщик\nВодитель автобуса\nМеханик\nРазносчик газет\nПродавец авто\nПродавец оружия", "Выбрать", "Отмена"); } else { SendClientMessage(playerid, COLOR_GREY, "Здесь не работает GPS. Вам нужно быть в мэрии."); return 1; } } } Если вы меняете координаты пикапа, то их необходимо сменить и в этой строке if(PlayerToPoint(3.0, playerid,362.1071,173.8628,1008.3828)) Шаг четвертый: Далее в public OnDialogResponse добавляем следующий код. Code else if(dialogid==58) { if(response) { switch(listitem) { case 0: { SetPlayerCheckpoint(playerid,359.2994,206.7888,1008.3828,3); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Место, где можно устроиться Детективом помечено красным маркером."); } case 1: { SetPlayerCheckpoint(playerid,2421.4241,-1220.1045,25.5064,3); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Место, где можно устроиться Шлюхой помечено красным маркером."); } case 2: { SetPlayerCheckpoint(playerid,2166.3220,-1675.4667,15.0859,3); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Место, где можно устроиться Наркодилером помечено красным маркером."); } case 3: { SetPlayerCheckpoint(playerid,1109.2737,-1796.2308,16.5938,3); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Место, где можно устроиться Угонщиком помечено красным маркером."); } case 4: { SetPlayerCheckpoint(playerid,1154.1823,-1770.8646,16.5992,3); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Место, где можно устроиться Водителем автобуса помечено красным маркером."); } case 5: { SetPlayerCheckpoint(playerid,1072.6245,-1700.2961,13.5469,3); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Место, где можно устроиться Механиком помечено красным маркером."); } case 6: { SetPlayerCheckpoint(playerid,765.6187,-1382.6399,13.6783,3); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Место, где можно устроиться Разносчиком газет помечено красным маркером."); } case 7: { SetPlayerCheckpoint(playerid,531.8411,-1292.3922,17.2422,3); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Место, где можно устроиться Продавцом авто помечено красным маркером."); } case 8: { SetPlayerCheckpoint(playerid,1366.3701,-1274.9960,13.5469,3); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Место, где можно устроиться Продавцом оружия помечено красным маркером."); } } } else { SendClientMessage(playerid,COLOR_RED,"Отмена"); return 1; } } Шаг пятый: Затем делаем что бы по прибытию на чекпоинт, он исчезал. В public OnPlayerEnterCheckpoint добавляем следующее. Code if (gpsjobs) { DisablePlayerCheckpoint(playerid); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Вы прибыли к месту, где можно устроиться на выбранную вами работу."); GameTextForPlayer(playerid, "~w~GPS ~r~ OFF", 5000, 1); }
Впринципе все ! Готово. Для красоты можно добавить, что бы во время нахождения игрока на пикапе, вылезало бы сообщение с командой, которую нужно ввести.
Для этого в public CustomPickups() вставляем
if (PlayerToPoint(2.0, i, 362.1823,173.9139,1008.3828)) {// gpsjobs GameTextForPlayer(i, "~w~ ~g~ /gpsjob", 5000, 5); } Меняйте кординаты на свои, т.к местонахождения работ у многих разные!
|