Система сбора ресурсов на точке

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Идея и назначение

Игрок может собирать ресурсы в определённой зоне, получая предметы или деньги.

Подходит для шахты, лесопилки и других работ.


Суть реализации

1. Задаём координаты точки сбора.

2. Команда /gather проверяет нахождение в зоне.

3. При успешном сборе выдаём ресурс и ставим небольшой откат.


Реализация

Код:
#define MINE_X  1000.0
#define MINE_Y -1000.0
#define MINE_R  5.0

new GatherCooldown[MAX_PLAYERS];


CMD:gather(playerid)
{
    new t = GetTickCount();

    if(t - GatherCooldown[playerid] < 5000)
        return SendClientMessage(playerid, -1, "Нужно подождать перед следующим сбором.");

    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);

    new Float:dx = x - MINE_X;
    new Float:dy = y - MINE_Y;

    if(floatsqroot(dx * dx + dy * dy) > MINE_R)
        return SendClientMessage(playerid, -1, "Ты не в зоне сбора ресурсов.");

    GatherCooldown[playerid] = t;

    GivePlayerMoney(playerid, 200);

    SendClientMessage(playerid, -1, "Ты добыл ресурсы и получил 200$.");

    return 1;
}


Дополнительные идеи

1. Делать разные зоны с разными ресурсами.

2. Выдавать предметы вместо денег.

3. Ограничить общее количество сборов в день.
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху