[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Архив - только для чтения
[Урок Pawno]GPS по проффесиям
Дата: 02.10.2010, Суббота, 15:51:43 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 207
Репутация: 224+
Щас я объясню как сделать GPS по поиску проффесий. Вы приезжаете в мерию вводите /gpsjob и появляется диологовое окно с работами. Вы едете к той точке которая отмечена на карте, как вы приедете встаете на пикап и значок с карты пропадает.

Итак приступи, шаг первый
Ко всем new добавляем

Code
new gpsjobs;

Шаг второй:
Создаем пикап.
В 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);  
}

Меняйте кординаты на свои, т.к местонахождения работ у многих разные!

  • Страница 1 из 1
  • 1
Поиск: