MrPochan
Ученик
Искал на просторах инета и находил примерные мануалы, но очень не понятные. Что-то не то или не так там. Вот решил свою версию, может БАЯН, но кому-то пригодится.
2-ой вариант решения проблемы:
Вуаля и всё работает!
Всем пикапам ставим 23 тип.
Если было - то извиняюсь! Не нашел )
1) Меняем обычные CreatePickup например на CreatPickup2
2) В начала кода пишем:
Мы получили следующие. Мы знаем координаты всех пикапов по pickupid;
3) Добавляем в OnPlayerPickUpPickup
4) Добавляем в секундный таймер:
P.S.: Можно и без CreatePickup2
Просто через GetPlayerPos. Но тут я сделал так, так как у меня в моде еще проверка на анти-чит, что не брали из далека пикап )
2) В начала кода пишем:
PHP:
enum PickInfo { Float: PickX, Float: PickY, Float: PickZ};
new PickupInfo[MAX_PICKUPS][PickInfo];
CreatePickup2(model, type, Float:X, Float:Y, Float:Z, virtualworld = 0)
{
new TempID = CreatePickup(model, type, X, Y, Z, virtualworld);
PickupInfo[TempID][PickX] = X;
PickupInfo[TempID][PickY] = Y;
PickupInfo[TempID][PickZ] = Z;
return TempID;
}
3) Добавляем в OnPlayerPickUpPickup
PHP:
if(GetPVarInt(playerid,"PICKUP") == 1 && pickupid == GetPVarInt(playerid,"PICKUPID")) return 1;
SetPVarInt(playerid,"PICKUP",1);
SetPVarInt(playerid,"PICKUPID",pickupid);
SetPVarFloat(playerid,"PICKUPX",PickupInfo[pickupid][PickX]);
SetPVarFloat(playerid,"PICKUPY",PickupInfo[pickupid][PickY]);
SetPVarFloat(playerid,"PICKUPZ",PickupInfo[pickupid][PickZ]);
PHP:
foreach(Player, a)
{
if(GetPVarInt(a,"PICKUP") == 1 && floatround(GetPlayerDistanceFromPoint(a,GetPVarFloat(a,"PICKUPX"),GetPVarFloat(a,"PICKUPY"),GetPVarFloat(a,"PICKUPZ"))) > 3)
{
DeletePVar(a,"PICKUP");
DeletePVar(a,"PICKUPID");
DeletePVar(a,"PICKUPX");
DeletePVar(a,"PICKUPY");
DeletePVar(a,"PICKUPZ");
}
}
P.S.: Можно и без CreatePickup2
Просто через GetPlayerPos. Но тут я сделал так, так как у меня в моде еще проверка на анти-чит, что не брали из далека пикап )
2-ой вариант решения проблемы:
1) Добавляем в начало OnPlayerPickUpPickup
2) В сек. таймер:
Всё так же работает, но без CreatePickUp2
PHP:
if(GetPVarInt(playerid,"PICKUP") == 1 && pickupid == GetPVarInt(playerid,"PICKUPID")) return 1;
SetPVarInt(playerid,"PICKUP",1);
SetPVarInt(playerid,"PICKUPID",pickupid);
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPVarFloat(playerid,"PICKUPX",X);
SetPVarFloat(playerid,"PICKUPY",Y);
SetPVarFloat(playerid,"PICKUPZ",Z);
PHP:
foreach(Player, a)
{
if(GetPVarInt(a,"PICKUP") == 1 && floatround(GetPlayerDistanceFromPoint(a,GetPVarFloat(a,"PICKUPX"),GetPVarFloat(a,"PICKUPY"),GetPVarFloat(a,"PICKUPZ"))) > 3)
{
DeletePVar(a,"PICKUP");
DeletePVar(a,"PICKUPID");
DeletePVar(a,"PICKUPX");
DeletePVar(a,"PICKUPY");
DeletePVar(a,"PICKUPZ");
}
}
Вуаля и всё работает!
Всем пикапам ставим 23 тип.
Если было - то извиняюсь! Не нашел )
Последнее редактирование:
