PDA

Просмотр полной версии : [Мануал] Работа перевозчика



YouJeen
30.05.2014, 05:22
Привет бандиты-оптимизаторы, выкладываю работу для того, чтоб может кто взялся довести до ума, основа заложена и идея, стоит из нее сделать только конфету оптимизированную.


Суть: Грузовики уже с оградой, после получения груза - цепляется объект.
Получаем груз, везем в указанное место.

http://rghost.ru/55929759/image.pnghttp://rghost.ru/55929987/image.png
http://rghost.ru/55930984/image.png


Код разбит по пабликам сразу


new PickUp;

public OnGameModeInit()
{
for(new i=0; i<MAX_VEHICLES; i++) VehSpawn(i);
PickUp = CreatePickup(1275, 23, -77.9037,-1136.1981,1.0781, 0);
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 23)
{
if(!response) return 1;
if(GetPVarInt(playerid, "carrier") == 0)
{
SetPVarInt(playerid, "carrier",1);
DeletePVar(playerid, "load");
SetPVarInt(playerid, "char", GetPlayerSkin(playerid));
SetPlayerSkin(playerid, 16);
SendClientMessage(playerid,-1, "Рабочий день начат. Cадитесь в машину");
}
else DeletePVar(playerid, "load"),DeletePVar(playerid, "carrier"),SetPlayerSkin(playerid,GetPVarInt(playerid, "char"));
}
if(dialogid == 24)
{
if(!response) return 1;
if(listitem == 0)
{
SetPVarInt(playerid, "load",1);
SetPVarInt(playerid, "carid",GetPlayerVehicleID(playerid));
SetPVarInt(playerid, "cabine",CreateObject(967,0.0,0.0,0.0, 0.000000,0.000000,0.000000));
SetPVarInt(playerid, "cabineone",CreateObject(967,0.0,0.0,0.0, 0.000000,0.000000,0.000000));
SetPVarInt(playerid, "cabinetwo",CreateObject(967,0.0,0.0,0.0, 0.000000,0.000000,0.000000));
AttachObjectToVehicle(GetPVarInt(playerid, "cabine"),GetPlayerVehicleID(playerid), -0.381190,1.047714,-0.2,0,0,0);
AttachObjectToVehicle(GetPVarInt(playerid, "cabineone"),GetPlayerVehicleID(playerid),0.563816,-0.859311,-0.2,0,0,0);
AttachObjectToVehicle(GetPVarInt(playerid, "cabinetwo"),GetPlayerVehicleID(playerid), -0.360608,-2.638458,-0.2,0,0,0);
SetPlayerRaceCheckpoint(playerid,2,132.2981,1945.9371,19.3538 ,0.0,0.0,0.0,3.0);
SendClientMessage(playerid,-1, "Рабочий день начат. Cадитесь в машину");
}
}
return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
if(GetPVarInt(playerid, "load") == 1)
{
DestroyObject(GetPVarInt(playerid, "cabine"));
DestroyObject(GetPVarInt(playerid, "cabineone"));
DestroyObject(GetPVarInt(playerid, "cabinetwo"));
SendClientMessage(playerid, -1, "Груз доставлен! Возращайтесь на базу.");
SetPVarInt(playerid, "load",2);
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid,2,-77.9037,-1136.1981,1.0781 ,0.0,0.0,0.0,5.0);
}
if(GetPVarInt(playerid, "load") == 2 && IsPlayerInRangeOfPoint(playerid, 20.0,-77.9037,-1136.1981,1.0781) && GetPVarInt(playerid, "carid") == GetPlayerVehicleID(playerid))
{
SendClientMessage(playerid, -1, "Вы заработали за груз: 560$");
GivePlayerMoney(playerid, 560);
DeletePVar(playerid, "load");
DisablePlayerRaceCheckpoint(playerid);
}
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmd, "/load", true) == 0)
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0,-71.9037,-1117.1981,1.0781)) return SendClientMessage(playerid, -1, "Вы должны находится на базе");
if(GetPVarInt(playerid, "load") > 0) return SendClientMessage(playerid, -1, "Вы уже взяли груз!");
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 578 && GetPVarInt(playerid, "carrier") == 1) ShowPlayerDialog(playerid,24,DIALOG_STYLE_LIST,"{ffcc00}Выберите груз:","{FFFFFF}Кабины (Место сдачи: Зона 51) {000000}Оплата: 560$","Купить","Отмена");
return 1;
}
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == PickUp)
{
if(GetPVarInt(playerid, "carrier") == 1) SPD(playerid,23,0,"Работа \"Грузоперевозчик\"","{ffffff}Вы хотите уволиться с работы?","Да","Нет");
else SPD(playerid,23,0,"Работа \"Грузоперевозчик\"","{ffffff}Вы хотите устроится на работу?","Да","Нет");
}
return 1;
}

stock VehSpawn(vehicleid)
{
if(GetVehicleModel(vehicleid) == 578)
{
AttachObjectToVehicle(CreateObject(983, 0.0,0.0,0.0, 0.000000,0.000000,0.000000),vehicleid, -1.410061,-0.879146,0.454786,0,0,0);
AttachObjectToVehicle(CreateObject(983,0.0,0.0,0.0, 0.000000,0.000000,0.000000),vehicleid, -1.410061,-2.454485,0.434786,0,0,0);
AttachObjectToVehicle(CreateObject(983, 0.0,0.0,0.0, 0.000000,0.000000,0.000000),vehicleid, 1.410061,-0.879146,0.454786,0,0,0);
AttachObjectToVehicle(CreateObject(983,0.0,0.0,0.0, 0.000000,0.000000,0.000000),vehicleid, 1.410012,-2.454485,0.434786,0,0,0);
}
}
public OnVehicleDeath(vehicleid, killerid)
{
DestroyObject(GetPVarInt(0, "cabine"));
DestroyObject(GetPVarInt(0, "cabineone"));
DestroyObject(GetPVarInt(0, "cabinetwo"));
return 1;
}



Автор: Y.Jeen

A N D R E Y
30.05.2014, 10:12
Вырезано не полностью...

YouJeen
30.05.2014, 16:42
Вырезано не полностью...

О да, откуда же интересно?

Daniel_Cortez
30.05.2014, 18:52
Вырезано не полностью...

О да, откуда же интересно?
SCM, SPD, gray - эти макросы сами собой не объявятся.
Вообще интересен факт того, что SCM используется вперемешку с SendClientMessage. То же самое и для SPD. ТС, Вы уж определитесь, что хотите использовать.

underwoker
31.05.2014, 04:28
А еще лучше не врать.

wAx
31.05.2014, 09:06
Автор, приложите к теме недостающие функции. У вас на это 3 дня.

YouJeen
31.05.2014, 19:19
Готово, Автор - я, писал в своем моде, от того и макросы такие, исправил. Кто готов поспорить о том что я вырезал откуда-то - давайте док-ва

wAx
31.05.2014, 21:17
Вот вам совет: проверяйте код перед публикацией.

Salvacore
31.05.2014, 23:06
Готово, Автор - я, писал в своем моде, от того и макросы такие, исправил. Кто готов поспорить о том что я вырезал откуда-то - давайте док-ва
Не готово, "SPD" - нет такого.

DeimoS
01.06.2014, 07:55
Вот вам совет: проверяйте код перед публикацией.

Не только код, но и свои знания, прежде чем что-то писать. Например, циклы на авто.... ID авто на сервере начинается с единицы, а не с 0
И "else if", похоже, не для вас сделали

Mr.Dark
19.10.2016, 11:16
Не только код, но и свои знания, прежде чем что-то писать. Например, циклы на авто.... ID авто на сервере начинается с единицы, а не с 0
И "else if", похоже, не для вас сделали

Данный человек автор мода Awake-Rp (Копия Advance-rp) Если я не ошибаюсь то на его основе сейчас такие проекты как Arizona и Deamond ещё не говоря о том с кока мелких :acute: Когда все хотели создать копию Advance он выпустил Awake если найти этот орг фаил в rghost то там наверно скачиваний больше чем у RLS а у тебя есть такие знаменитые основы ?

DeimoS
19.10.2016, 11:51
Данный человек автор мода Awake-Rp (Копия Advance-rp) Если я не ошибаюсь то на его основе сейчас такие проекты как Arizona и Deamond ещё не говоря о том с кока мелких :acute: Когда все хотели создать копию Advance он выпустил Awake если найти этот орг фаил в rghost то там наверно скачиваний больше чем у RLS а у тебя есть такие знаменитые основы ?

А благодаря Гитлеру погибло около 6 миллионов евреев. Что, теперь, пока я сам не убью столько же, нельзя осуждать Гитлера за содеянное им зло?

То, что автор сделал основу, которая понравилась большинству, не делает его хорошим скриптером. Тут осуждают не идеи, а реализацию этих идей. RLS тоже был популярен, но это не изменяет того факта, что в нём полно говнокода, а автор RLS писал свой мод будучи полным нубом в скриптинге.
Не путай тёплое с мягким

Mr.Dark
19.10.2016, 17:37
А благодаря Гитлеру погибло около 6 миллионов евреев. Что, теперь, пока я сам не убью столько же, нельзя осуждать Гитлера за содеянное им зло?

То, что автор сделал основу, которая понравилась большинству, не делает его хорошим скриптером. Тут осуждают не идеи, а реализацию этих идей. RLS тоже был популярен, но это не изменяет того факта, что в нём полно говнокода, а автор RLS писал свой мод будучи полным нубом в скриптинге.
Не путай тёплое с мягким

Сори не тебе хотел ! А насчет Гитлера попробуй )))):pleasantry: