Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 13
  1. #1
    Аватар для YouJeen
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.10.2013
    Сообщений
    13
    Репутация:
    1 ±

    Работа перевозчика

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


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





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

    PHP код:
    new PickUp;

    public 
    OnGameModeInit()
    {
        for(new 
    i=0i<MAX_VEHICLESi++) VehSpawn(i);
        
    PickUp CreatePickup(127523, -77.9037,-1136.1981,1.07810);
        return 
    1;
    }

    public 
    OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
            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(playerid16);
                        
    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.00.000000,0.000000,0.000000));
                        
    SetPVarInt(playerid"cabineone",CreateObject(967,0.0,0.0,0.00.000000,0.000000,0.000000));
                        
    SetPVarInt(playerid"cabinetwo",CreateObject(967,0.0,0.0,0.00.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") == && IsPlayerInRangeOfPoint(playerid20.0,-77.9037,-1136.1981,1.0781) && GetPVarInt(playerid"carid") == GetPlayerVehicleID(playerid))
        {
            
    SendClientMessage(playerid, -1"Вы заработали за груз: 560$");
            
    GivePlayerMoney(playerid560);
            
    DeletePVar(playerid"load");
            
    DisablePlayerRaceCheckpoint(playerid);
        }
        return 
    1;
    }

    public 
    OnPlayerCommandText(playeridcmdtext[])
    {
        if(
    strcmp(cmd"/load"true) == 0)
        {
            if(!
    IsPlayerInRangeOfPoint(playerid15.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") == 1ShowPlayerDialog(playerid,24,DIALOG_STYLE_LIST,"{ffcc00}Выберите груз:","{FFFFFF}Кабины (Место сдачи: Зона 51) {000000}Оплата: 560$","Купить","Отмена");
            return 
    1;
        }
        return 
    1;
    }

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

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

    Автор: Y.Jeen
    Последний раз редактировалось YouJeen; 31.05.2014 в 19:18.

  2. #2
    Аватар для A N D R E Y
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.12.2013
    Сообщений
    149
    Репутация:
    14 ±
    Вырезано не полностью...

  3. #3
    Аватар для YouJeen
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.10.2013
    Сообщений
    13
    Репутация:
    1 ±
    Цитата Сообщение от A N D R E Y Посмотреть сообщение
    Вырезано не полностью...
    О да, откуда же интересно?

  4. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от A N D R E Y Посмотреть сообщение
    Вырезано не полностью...
    Цитата Сообщение от YouJeen Посмотреть сообщение
    О да, откуда же интересно?
    SCM, SPD, gray - эти макросы сами собой не объявятся.
    Вообще интересен факт того, что SCM используется вперемешку с SendClientMessage. То же самое и для SPD. ТС, Вы уж определитесь, что хотите использовать.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. #5
    Аватар для underwoker
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    А еще лучше не врать.
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

    Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE

  6. #6
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Автор, приложите к теме недостающие функции. У вас на это 3 дня.

  7. #7
    Аватар для YouJeen
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.10.2013
    Сообщений
    13
    Репутация:
    1 ±
    Готово, Автор - я, писал в своем моде, от того и макросы такие, исправил. Кто готов поспорить о том что я вырезал откуда-то - давайте док-ва

  8. #8
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Вот вам совет: проверяйте код перед публикацией.

  9. #9
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Цитата Сообщение от YouJeen Посмотреть сообщение
    Готово, Автор - я, писал в своем моде, от того и макросы такие, исправил. Кто готов поспорить о том что я вырезал откуда-то - давайте док-ва
    Не готово, "SPD" - нет такого.

  10. #10
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от wAx Посмотреть сообщение
    Вот вам совет: проверяйте код перед публикацией.
    Не только код, но и свои знания, прежде чем что-то писать. Например, циклы на авто.... ID авто на сервере начинается с единицы, а не с 0
    И "else if", похоже, не для вас сделали
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •