Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Создаем GPS по профессиям

Статус
В этой теме нельзя размещать новые ответы.

Smart

Ученик
Решил рассказать, как можно сделать небольшую GPS систему по профессиям.
Можно переделать под что угодно.

Подробнее об этой GPS системе:
Все довольно просто. Игрок встает на пикап, вводит команду, появляется диалоговое окно со списком профессий.
Выбрав одну из профессий на радаре появляется чекпоинт в том месте, где можно устроиться на выбранную им работу.
После того, как игрок прибыл на этот чекпоинт, он исчезает.

В моем примере пикап расположен в мэрии.

Итак как это сделать:

Ко всем new добавляем new gpsjobs;
Далее нам необходимо сделать пикап на котором игрок будет вводить команду.
В public OnGameModeInit() вставляем gpsjobs = CreatePickup(1581, 23, 362.1823,173.9139,1008.3828,-1); // GPS jobs

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

Теперь делаем саму команду.

PHP:
if(strcmp(cmd, "/jobs", 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добавляем следующий код.

PHP:
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 добавляем следующее.

PHP:
if (gpsjobs) 
 { 
 DisablePlayerCheckpoint(playerid); 
 SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Вы прибыли к месту, где можно устроиться на выбранную вами работу."); 
 GameTextForPlayer(playerid, "~w~GPS ~r~ OFF", 5000, 1); 
 }
Впринципе все ! Готово.
Для красоты можно добавить, что бы во время нахождения игрока на пикапе,
вылезало бы сообщение с командой, которую нужно ввести.

PHP:
if (PlayerToPoint(2.0, i, 362.1823,173.9139,1008.3828)) 
 {// gpsjobs 
 GameTextForPlayer(i, "~w~ ~g~ /jobs", 5000, 5); 
 }
Надеюсь новичкам пригодится.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу