Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3
  1. #1
    Аватар для Тузик
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.06.2016
    Сообщений
    26
    Репутация:
    0 ±

    Создание транспорта с 3 функциями + информация (/createvehicle)

    Не сказал бы, что это урок, потому сюда и отправил данный пост. Итак, приветствую, читатель.

    В данной теме я опубликую команду на ком.процессоре от Zeex'a (также подходит для DC_CMD).

    Во-первых добавим в начало мода:
    PHP код:
    #include <zcmd>
    #include <sscanf2>

    new aVehicle[MAX_PLAYERS]; 
    Во-вторых добавим удаление транспорта, если игрок выйдет
    PHP код:
    // В паблик о выходе игрока добавим:
    DestroyVehicle(aVehicle[playerid]); 
    Далее, советую, добавить в конец мода этот паблик:
    PHP код:
    public OnVehicleDamageStatusUpdate(vehicleidplayerid)
    {
        if(
    IsPlayerInAnyVehicle(playerid))
        {
            if(
    vehicleid == aVehicle[playerid])
            {
                new 
    Float:health;
                
    GetVehicleHealth(vehicleidhealth);
                if(
    health 300DestroyVehicle(aVehicle[playerid]);
               }
        }
        return 
    1;
    }
    // Он позволит удалить созданный этим же игроком транспорт при уровне здоровья машины меньше 300
    // ** на заметку, этот паблик не синхронизирован и иногда может не работать... 
     Команда
    PHP код:
    CMD:vehicle(playeridparams[])
    {
        new 
    modelidcolor[2], Float:XFloat:YFloat:ZFloat:Rvehicleid GetPlayerVehicleID(playerid);
        
        
    GetPlayerPos(playeridX,Y,Z);
        
    sscanf(params"ddd"modelidcolor[0], color[1]);
        if(
    modelid == && color[0] == && color[1] == 0)
        {
            if(!
    vehicleid && !aVehicle[playerid])
                return 
    SendClientMessage(playerid, -1"(( Введите: /vehicle [modelid] [color1] [color2] ))");
            else if(
    GetPlayerVehicleSeat(playerid) == 0)
            {
                if(
    vehicleid == aVehicle[playerid]) DestroyVehicle(aVehicle[playerid]), aVehicle[playerid] = 0;
                else
                {
                    
    SetVehicleToRespawn(vehicleid);
                    
    SendClientMessage(playerid, -1"(( Ваш транспорт был успешно перемещен на место появления ))");
                    return 
    1;
                }
            }
            else if(
    aVehicle[playerid])
            {
                
    DestroyVehicle(aVehicle[playerid]);
                
    aVehicle[playerid] = 0;
            }
            
    SendClientMessage(playerid, -1"(( Ваш транспорт был успешно удален ))");
        }
        else
        {
            if(
    aVehicle[playerid] && vehicleid != aVehicle[playerid])
                return 
    SendClientMessage(playerid, -1"(( Вы уже создавали транспорт. Для удаление введите: /vehicle ))");
            if(!(
    400 modelid 611)) return SendClientMessage(playerid, -1"(( Модель не может быть меньше 400 или больше 611! ))");
            if(!(
    <= color[0] <= 255) || !(<= color[1] <= 255))
                return 
    SendClientMessage(playerid, -1"(( Цвет не может быть меньше 0 или больше 255! ))");
            if(
    GetPlayerVehicleSeat(playerid) == 0)
            {
                
    GetVehicleZAngle(vehicleidR);
                if(
    vehicleid == aVehicle[playerid]) DestroyVehicle(aVehicle[playerid]);
                else 
    SetVehicleToRespawn(vehicleid);
                
    SendClientMessage(playerid, -1"(( Вы успешно пересоздали транспорт ))");
            }
            else if(!
    vehicleidGetPlayerFacingAngle(playeridR), SendClientMessage(playerid, -1"(( Вы успешно создали транспорт ))");
            
    aVehicle[playerid] = CreateVehicle(modelidX,Y,Z,Rcolor[0], color[1], 60000);
            
    PutPlayerInVehicle(playeridaVehicle[playerid], 0);
        }
        return 
    1;



    Не жду серьезной критики, есть ошибки - излагайте, подправлю/добавлю чего-нибудь.
    И как писал выше "Не сказал бы, что это урок, потому сюда и отправил данный пост" думаю для новичка вполне подойдет.

     Функции команды:
    1) Информация для правильного использования
    2) Создание транспорта
    3) Пересоздание транспорта
    4) Удаление транспорта


    Всем добра :3
    Последний раз редактировалось Тузик; 31.07.2016 в 15:28. Причина: Обновил команду

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    OnVehicleDamageStatusUpdate не подходит для отслеживания изменения здоровья.

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

    Статус
    Оффлайн
    Регистрация
    24.10.2015
    Сообщений
    3
    Репутация:
    0 ±
    Больше подойдёт для этого раздела http://pro-pawn.ru/forumdisplay.php?10-Команды

    //Перенесено || DeimoS
    Последний раз редактировалось DeimoS; 15.07.2016 в 17:20.

 

 

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

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

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

Ваши права

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