- Регистрация
- 9 Июл 2011
- Сообщения
- 204
- Лучшие ответы
- 0
- Репутация
- 121
Решил написать как делать работу по чекпоинтам, типо как на MyGame, сорри если такая тема уже есть.
Эти работы полезны новичкам, можно заработать немного. Сделаем работу "Перевозчик".
Начнем
1. Добавляем new
Per1 - можете поменять на свое, только придется потом менять в команде.
2. Находим public OnPlayerConnect(playerid)
и добавляем:
Это чтобы когда игрок заходил на сервер работа была выключена.
3. Находим public OnPlayerEnterCheckpoint(playerid)
И Вот уже здесь нам будут нужны координаты чекпоинтов.
Координаты вы можете поменять на свои, добавляем:
4. Теперь надо добавить команду. Находим public OnPlayerCommandText(playerid, cmdtext[])
И добавляем:
Вот и все готово, работа есть. Теперь для работы нужны машины, у каждого они по разному сделаны, но у меня так.
к new добавляем:
Находим public OnPlayerStateChange(playerid, newstate, oldstate)
и добавляем:
И последнее, добавляем сами машины.
В public OnGameModeInit добавляем:
Ну машины можете добавить свои.
Вот и все. Спасибо за внимание
Эти работы полезны новичкам, можно заработать немного. Сделаем работу "Перевозчик".
Начнем
1. Добавляем new
PHP:
new Per1[MAX_PLAYERS];//
2. Находим public OnPlayerConnect(playerid)
и добавляем:
PHP:
Per1[playerid] = 0;
3. Находим public OnPlayerEnterCheckpoint(playerid)
И Вот уже здесь нам будут нужны координаты чекпоинтов.
Координаты вы можете поменять на свои, добавляем:
PHP:
else if(Per1[playerid]==1)
{
new newcar = GetPlayerVehicleID(playerid);
if(newcar == per_[0] || newcar == per_[1] || newcar >= per_[2] && newcar <= per_[3])//машины на которых будем работать
{
if(PlayerToPoint(4,playerid,-2085.1606,-2562.6553,30.6906))//Если наехали на 1 чекпоинт.(он будет в команде)
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, COLOR_YELLOW, "[Диллер]: Слезай со своего драндулета, бери грузовик и вези пушки.");//после того как мы наезжаем на 1 чекпоинт появляется текст
SetPlayerCheckpoint(playerid,-2016.2191,-2500.9663,32.6959,4.0);//2 чекпоинт появился
}
else if(PlayerToPoint(4,playerid,-2016.2191,-2500.9663,32.6959))Если мы наехали на 2 чекпоинт появляется следующий.
{
DisablePlayerCheckpoint(playerid);//после того как наехали удаляет чекпоинт и появляется следующий
SetPlayerCheckpoint(playerid,-1917.0990,-2435.6841,30.6175,4.0);
}
else if(PlayerToPoint(4,playerid,-1917.0990,-2435.6841,30.6175))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1762.2949,-2311.3877,43.1182,4.0);
}
else if(PlayerToPoint(4,playerid,-1762.2949,-2311.3877,43.1182))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1684.7728,-2253.8816,37.9066,4.0);
}
else if(PlayerToPoint(4,playerid,-1684.7728,-2253.8816,37.9066))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1507.5942,-2156.5483,2.3617,4.0);
}
else if(PlayerToPoint(4,playerid,-1507.5942,-2156.5483,2.3617))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1293.6171,-2216.1965,22.3500,4.0);
}
else if(PlayerToPoint(4,playerid,-1293.6171,-2216.1965,22.3500))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1197.3005,-2352.2869,18.4956,4.0);
}
else if(PlayerToPoint(4,playerid,-1197.3005,-2352.2869,18.4956))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1002.6347,-2371.8411,64.4744,4.0);
}
else if(PlayerToPoint(4,playerid,-1002.6347,-2371.8411,64.4744))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-959.1919,-2315.1907,58.6605,4.0);
}
else if(PlayerToPoint(4,playerid,-959.1919,-2315.1907,58.6605))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-899.9105,-2184.0835,30.3098,4.0);
}
else if(PlayerToPoint(4,playerid,-899.9105,-2184.0835,30.3098))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-784.9277,-2132.7161,25.4791,4.0);
}
else if(PlayerToPoint(4,playerid,-784.9277,-2132.7161,25.4791))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-751.6136,-2128.7585,25.1774,4.0);
}
else if(PlayerToPoint(4,playerid,-751.6136,-2128.7585,25.1774))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-617.3354,-2033.3344,36.7837,4.0);
}
else if(PlayerToPoint(4,playerid,-617.3354,-2033.3344,36.7837))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-497.2985,-2026.8340,50.1807,4.0);
}
else if(PlayerToPoint(4,playerid,-497.2985,-2026.8340,50.1807))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-405.7028,-1922.3386,6.9367,4.0);
}
else if(PlayerToPoint(4,playerid,-405.7028,-1922.3386,6.9367))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-247.8871,-2077.4221,36.4288,4.0);
}
else if(PlayerToPoint(4,playerid,-247.8871,-2077.4221,36.4288))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-259.2059,-2181.5681,29.0083,4.0);
}
else if(PlayerToPoint(4,playerid,-259.2059,-2181.5681,29.0083))
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, COLOR_YELLOW, "[Диллер]: Отлично, орудие разгружено, возьмем деньги и возвращаемся в деревню.");//наезжаем на чекпоинт появляется текст
SendClientMessage(playerid, COLOR_RED, "***Фермер достал деньги и передал их Диллеру***");
SetPlayerCheckpoint(playerid,-411.2212,-2262.9612,48.1845,4.0);//
}
else if(PlayerToPoint(4,playerid,-411.2212,-2262.9612,48.1845))//
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-654.2556,-2480.6492,34.7358,4.0);
}
else if(PlayerToPoint(4,playerid,-654.2556,-2480.6492,34.7358))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-735.8536,-2651.9043,83.6829,4.0);
}
else if(PlayerToPoint(4,playerid,-735.8536,-2651.9043,83.6829))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-840.5416,-2680.2444,96.7009,4.0);
}
else if(PlayerToPoint(4,playerid,-840.5416,-2680.2444,96.7009))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1052.3419,-2678.2585,41.1369,4.0);
}
else if(PlayerToPoint(4,playerid,-1052.3419,-2678.2585,41.1369))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1164.3860,-2639.0437,11.7479,4.0);
}
else if(PlayerToPoint(4,playerid,-1164.3860,-2639.0437,11.7479))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1393.0970,-2631.9333,32.3107,4.0);
}
else if(PlayerToPoint(4,playerid,-1393.0970,-2631.9333,32.3107))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1770.9169,-2496.7207,9.8719,4.0);
}
else if(PlayerToPoint(4,playerid,-1770.9169,-2496.7207,9.8719))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1917.1509,-2438.9282,30.6174,4.0);
}
else if(PlayerToPoint(4,playerid,-1917.1509,-2438.9282,30.6174))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-1977.6746,-2478.7478,30.7554,4.0);
}
else if(PlayerToPoint(4,playerid,-1977.6746,-2478.7478,30.7554))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,-2078.9619,-2548.1968,30.6073,4.0);
}
else if(PlayerToPoint(4,playerid,-2078.9619,-2548.1968,30.6073))
{
{
DisablePlayerCheckpoint(playerid);//удаляется чекпоинт
Per1[playerid] = 0;//закнчивается работа
GivePlayerMoney(playerid, 15000);//выдача денег за работу
SetVehicleToRespawn(GetPlayerVehicleID(playerid));//машина на котрой работал спавнится на место
SendClientMessage(playerid, COLOR_YELLOW, "[Диллер]: *Спасибо за работу. Держи свою долю $15 000.");//текст на завершении работы
}
}
}
}
И добавляем:
PHP:
if(strcmp(cmd, "/per", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new newcar = GetPlayerVehicleID(playerid);
if(PlayerToPoint(50.0, playerid, -1703.9105,15.6887,3.5547))//место, откуда можно начать работу.
{
if(newcar == per_[0] || newcar == per_[1] || newcar >= per_[2] && newcar <= per_[3])//машины на которых можно работать.
{
SendClientMessage(playerid, COLOR_YELLOW, "[Незнакомец]: Езжай в деревню и загрузи орудие.");
SendClientMessage(playerid, COLOR_LIGHTRED, "[Незнакомец]: Я на карте отметил как ехать(красные маяки)");//прописали команду, появляется текст и 1 чекпоинт
SetPlayerCheckpoint(playerid,-2085.1606,-2562.6553,30.6906,4.0);//1 чекпоинт
Per1[playerid] = 1;//начинается работа
}
}
}
printf("Использовалась команда %s",cmd);//если использовалась эта команда.(не обязательно)
return 1;
}
к new добавляем:
PHP:
new per_[4];
и добавляем:
PHP:
if(newcar == per_[0] || newcar == per_[1] || newcar >= per_[2] && newcar <= per_[3])//сами машины
{
if(PlayerInfo[playerid][pLevel] > 2)//Если уровень игрока больше 2, выкидывает из машины(я делал работу только для новичков)
{
ShowPlayerDialog(playerid,3000,DIALOG_STYLE_MSGBOX,"Сообщение:","Эта работа только для 1-2 лвл!"," Ок"," ОК ");//если игрок больше 2 лвл вылезает это диалоговое окно.
RemovePlayerFromVehicle(playerid);//выкинуло из машины.
}
}
В public OnGameModeInit добавляем:
PHP:
per_[0] = AddStaticVehicle(459,-1718.3655,12.8253,3.7342,312.0233,0,0);
per_[1] = AddStaticVehicle(459,-1714.9069,8.8416,3.7759,312.5128,0,0);
per_[2] = AddStaticVehicle(478,-2086.1196,-2570.8796,31.5845,319.3761,1,3);
AddStaticVehicle(478,-2082.5498,-2574.0730,31.4674,319.4086,1,3);
per_[3] = AddStaticVehicle(478,-2079.2261,-2577.0295,31.3384,317.8540,1,3);
Вот и все. Спасибо за внимание
Последнее редактирование: