LAW
Новичок
Всем доброго времени суток.
По скольку я начинающий пользователь на форуме, прошу без агрессии. Подсказки приветствуются... :df:
Хотелось бы отметить, что идея возникла поиграв на SVL, после чего была реализована для своего сервера.
Автор кода: LAW
1. Для начала, добавим ко всем enum:
2. Создадим функционал для создания pickup`ов на сервер:
3. Заменим на AddPickup такие ф-ции, как:
4.1. Перейдем к forward`ам, и добавим еще один:
6. Затем, поставим запись ID pickup`ов и сам антиподбор:
Для тех, кто создавал таймер вместе со мной:
Если забыл о каком-то моменте, говорите. Спасибо за внимание :dn:
По скольку я начинающий пользователь на форуме, прошу без агрессии. Подсказки приветствуются... :df:
Хотелось бы отметить, что идея возникла поиграв на SVL, после чего была реализована для своего сервера.
Автор кода: LAW
1. Для начала, добавим ко всем enum:
PHP:
enum PickInfo { Float: PickX, Float: PickY, Float: PickZ }
new PickupInfo[MAX_PICKUPS][PickInfo];
PHP:
stock AddPickup(model, type, Float:X, Float:Y, Float:Z, virtualworld = -1)
{
new TempID = CreatePickup(model, type, X, Y, Z, virtualworld); PickupInfo[TempID][PickX] = X, PickupInfo[TempID][PickY] = Y, PickupInfo[TempID][PickZ] = Z;
return TempID;
}
4. Поищите у себя в немалом коде таймер на 1 секунду. Если нету:а) CreatePickup
b) AddStaticPickup
PHP:
public OnGameModeInit() return SetPVarInt(playerid, "PlayerTimer", SetTimerEx("PlayerUpdate", 250, true, "i", playerid);
5. Поставим проверку на то, находится ли игрок на pickup`е:forward PlayerUpdate(playerid);
PHP:
public PlayerUpdate(playerid)
{
if(GetPVarInt(playerid, "PickupIDadd"))
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0, PickupInfo[GetPVarInt(playerid, "PickupIDadd")][PickX], PickupInfo[GetPVarInt(playerid, "PickupIDadd")][PickY], PickupInfo[GetPVarInt(playerid, "PickupIDadd")][PickZ]) && GetPVarInt(playerid, "Pickup.TAKED")) return DeletePVar(playerid, "Pickup.TAKED"), DeletePVar(playerid, "PickupIDadd");
}
return true;
}
PHP:
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, PickupInfo[pickupid][PickX], PickupInfo[pickupid][PickY], PickupInfo[pickupid][PickZ]) && GetPVarInt(playerid, "Pickup.TAKED")) return true;
SetPVarInt(playerid, "Pickup.TAKED", 1), SetPVarInt(playerid, "PickupIDadd", pickupid); return true;
}
Для тех, кто создавал таймер вместе со мной:
PHP:
public OnPlayerDisconnect(playerid, reason) return KillTimer(GetPVarInt(playerid, "PlayerTimer")), DeletePVar(playerid, "PlayerTimer");
Последнее редактирование:
