Продвинутая работа с пикапами в Pawn

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

8

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

Пикапы создают интерактивность. Разберем продвинутые техники.

Динамические пикапы
Код:
enum PickupInfo
{
    pModel,
    pType,
    Float:pX,
    Float:pY,
    Float:pZ,
    pWorld,
    pPickupID,
    pRespawnTime
}

new PickupData[100][PickupInfo];
new TotalPickups = 0;

CreateDynamicPickup(modelid, type, Float:x, Float:y, Float:z, worldid, respawnTime)
{
    if(TotalPickups >= sizeof(PickupData))
    {
        return -1;
    }
    
    PickupData[TotalPickups][pModel] = modelid;
    PickupData[TotalPickups][pType] = type;
    PickupData[TotalPickups][pX] = x;
    PickupData[TotalPickups][pY] = y;
    PickupData[TotalPickups][pZ] = z;
    PickupData[TotalPickups][pWorld] = worldid;
    PickupData[TotalPickups][pRespawnTime] = respawnTime;
    PickupData[TotalPickups][pPickupID] = CreatePickup(modelid, type, x, y, z, worldid);
    
    TotalPickups++;
    return TotalPickups - 1;
}

Автоматический респавн
Код:
public OnPlayerPickUpPickup(playerid, pickupid)
{
    for(new i = 0; i < TotalPickups; i++)
    {
        if(PickupData[i][pPickupID] == pickupid)
        {
            // Удаление пикапа
            DestroyPickup(pickupid);
            
            // Респавн через указанное время
            if(PickupData[i][pRespawnTime] > 0)
            {
                SetTimerEx("RespawnPickup", PickupData[i][pRespawnTime] * 1000, false, "i", i);
            }
            
            break;
        }
    }
    return 1;
}

forward RespawnPickup(pickupindex);
public RespawnPickup(pickupindex)
{
    PickupData[pickupindex][pPickupID] = CreatePickup(
        PickupData[pickupindex][pModel],
        PickupData[pickupindex][pType],
        PickupData[pickupindex][pX],
        PickupData[pickupindex][pY],
        PickupData[pickupindex][pZ],
        PickupData[pickupindex][pWorld]);
}

Важные моменты:
- Управляйте пикапами централизованно
- Реализуйте систему респавна
- Оптимизируйте проверки
- Сохраняйте данные пикапов

Продвинутые пикапы улучшают интерактивность!
 

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

Сверху