Перейти к содержанию
Авторизация  
#Rips

Аренда велосипеда

Рекомендуемые сообщения

#Rips

Доброе время суток, пользователи портала
Выкладываю систему "Аренды велосипедов". Итак, приступим..
Создадим переменную, которая будет отвечать за динамический checkpoint:

new ArendaPoint[MAX_PLAYERS];

Дальше нам нужно сделать показ динамического checkpoint'a в определенном радиусе. Переходи в OnGamemodeInit
Прописываем туда:

for(new i=0; i<MAX_PLAYERS; i++)
{
    ArendaPoint[i] = CreateDynamicCP(2235.0520,-1731.2727,21.9800, 1.0, 0, 0, i, 15.0); // Аренда велосипеда
}

- 2235.0520,-1731.2727,21.9800 - Координаты где будет появляться checkpoint
- 1.0 - Размер checkpoint'a
- 0, 0 | 0 - Virtual World | 0 - Interior
- i - Переменная игрока
- 15.0 - Радиус появления checkpoint'a

Когда все это прописали нам нужно перейти в public OnVehicleSpawn
Вставим это:

    foreach(new i: Player)
    {
        if(GetPVarInt(i, #arenda_took) == vehicleid && GetPVarInt(i, #arenda_took) && GetPVarInt(i, #check_arenda_moped))
        {
            DestroyVehicle(vehicleid);
            DeletePVar(i, #arenda_took);
            DeletePVar(i, #check_arenda_moped);
            Delete3DTextLabel(vehicle3Dtext);
            SCM(i,white,"{"cserver"}[Информация]{FFFFFF} : Ваш арендованый мопед был удален!");
            break;
        }
    }

- DestroyVehicle | Удаление автомобиля
- Delete3DTextLabel | Удаление 3D Текст над автомобилем
Данный код нужно повторить в public OnVehicleDeath.
Когда, мы все это сделали нам нужно сделать действие чекпоинта. Переходим в public OnPlayerEnterCheckpoint
Вставим этот код:

    if(IsPlayerInDynamicCP(playerid, ArendaPoint[playerid]))
    {
        if(GetPVarInt(playerid, "arenda_took") && GetPVarInt(playerid, "check_arenda_moped"))
        {
            DestroyVehicle(GetPVarInt(playerid, "arenda_took"));
            DeletePVar(playerid, "arenda_took");
            SCM(playerid,white,"{"cserver"}[Информация]{FFFFFF} : Ваш арендованый велосипед был удален!");
            Delete3DTextLabel(vehicle3Dtext);
            DeletePVar(playerid, "check_arenda_moped");
        }
        if(!GetPVarInt(playerid, "check_arenda_moped")) return ShowPlayerDialog(playerid, 200, DIALOG_STYLE_MSGBOX, "{"cserver"}Аренда велосипедов", "{FFFFFF}Вы действительно хотите арендовать велосипед?", "Арендовать", "Отмена");
    }

Теперь осталось сделать действие диалога, перейдем в public OnDialogResponse
И пропишем данный код:


{"cserver"} - Место "cserver" заменит на свой цвет
PlayerInfo[playerid][pCash]/PlayerInfo[playerid][pName] - Заменить на свои переменные игрока
2229.8323,-1735.4303,21.9800,331.8725 - Заменить координаты где будет спавниться велосипед
 

lFAbZUE.jpg

E1plUOP.jpg


Дефайны прописать после инклудов:

#define  SCM  SendClientMessage#define     SPD         ShowPlayerDialog

Теперь осталось сделать действие диалога, перейдем в public OnDialogResponse
И пропишем данный код:




			
		

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Avenax

Спасибо возьму

 

Стоп, а где остальной код?
в public OnDialogResponse и в public OnDialogResponse

Изменено пользователем Lev_Elistratov
Объединил посты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Rips

@Avenax, Из-за багов форума не могу залить код диалога


Полный код Аренда велосипедов, можете посмотреть тут Pastebin

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.