Пользователь
- Регистрация
- 9 Май 2022
- Сообщения
- 7
- Автор темы
- #1
В open.mp есть возможность создать пикап, который будет виден определенному игроку, но в SA-MP такой функции нет.
Также я добавил возможность создавать актера, видимого только для конкретного игрока.
В open.mp пока такого нет и за проблемы со стримером, так как актеры для игроков ломают работу динамических актеров.
Мой вариант реализован с использованием стримера, поэтому никаких проблем с ним не будет.
Также я добавил возможность создавать актера, видимого только для конкретного игрока.
В open.mp пока такого нет и за проблемы со стримером, так как актеры для игроков ломают работу динамических актеров.
Мой вариант реализован с использованием стримера, поэтому никаких проблем с ним не будет.
player_pickups
Зависимости: Pawn.RakNet, streamer и foreach.
Callback: Вызывается когда игрок подбирает player pickup
PHP:
forward OnPlayerPickUpPlayerPickup(playerid, pickupid);
Функции: Думаю, по названию и так все понятно.
PHP:
CreatePlayerPickup(playerid, modelid, type, Float:x, Float:y, Float:z, worldid = -1, Float:streamdistance);
DestroyPlayerPickup(playerid, pickupid);
IsValidPlayerPickup(playerid, pickupid);
SetPlayerPickupVirtualWorld(playerid, pickupid, worldid);
SetPlayerPickupPos(playerid, pickupid, Float:x, Float:y, Float:z);
SetPlayerPickupModel(playerid, pickupid, modelid);
SetPlayerPickupType(playerid, pickupid, typeid);
GetPlayerPickupVirtualWorld(playerid, pickupid);
GetPlayerPickupPos(playerid, pickupid, &Float:x, &Float:y, &Float:z);
GetPlayerPickupModel(playerid, pickupid);
GetPlayerPickupType(playerid, pickupid);
player_actors
Зависимости: Pawn.RakNet, streamer и foreach.
Callback: Вызывается когда игрок наносит урон player actors
PHP:
forward OnPlayerGiveDamagePlayerActor(playerid, actorid, Float:amount, weaponid, bodypart);
Функции: Думаю, по названию и так все понятно.
PHP:
CreatePlayerActor(playerid, modelid, Float:x, Float:y, Float:z, Float:rotation, Float:health = 100.0, bool:invulnerable = true, worldid = -1);
DestroyPlayerActor(playerid, actorid);
ApplyPlayerActorAnimation(playerid, actorid, const animlib[], const animname[], Float:fdelta, loop, lockx, locky, freeze, time);
ClearPlayerActorAnimations(playerid, actorid);
IsValidPlayerActor(playerid, actorid);
IsPlayerActorInvulnerable(playerid, actorid);
IsPlayerActorStreamedIn(playerid, actorid);
SetPlayerActorVirtualWorld(playerid, actorid, worldid);
SetPlayerActorFacingAngle(playerid, actorid, Float:rotation);
SetPlayerActorPos(playerid, actorid, Float:x, Float:y, Float:z);
SetPlayerActorHealth(playerid, actorid, Float:health);
SetPlayerActorInvulnerable(playerid, actorid, invulnerable = true);
GetPlayerActorVirtualWorld(playerid, actorid);
GetPlayerActorFacingAngle(playerid, actorid, &Float:rotation);
GetPlayerActorPos(playerid, actorid, &Float:x, &Float:y, &Float:z);
GetPlayerActorHealth(playerid, actorid, &Float:health);
GetPlayerActorAnimation(playerid, actorid, animlib[], animname[], &Float:fdelta, &loop, &lockx, &locky, &freeze, &time, maxanimlib = sizeof animlib, maxanimname = sizeof animname);
Также пикапы и актёры автоматически удаляются после выхода игрока.
Пример:
PHP:
new gPlayerPickupId[MAX_PICKUPS];
new gPlayerActorId[MAX_PLAYERS];
CMD:createpickup(playerid, params[])
{
new
Float:x,
Float:y,
Float:z;
GetPlayerPos(playerid, x, y, z);
gPlayerPickupId[playerid] = CreatePlayerPickup(
playerid,
1314,
2,
x,
y,
z,
GetPlayerVirtualWorld(playerid),
10.0
);
return 1;
}
new gPlayerActorId[MAX_ACTORS];
CMD:createactor(playerid, params[])
{
new
Float:x,
Float:y,
Float:z;
GetPlayerPos(playerid, x, y, z);
gPlayerActorId[playerid] = CreatePlayerActor(
playerid,
23,
2,
x,
y,
z,
0.0,
true,
GetPlayerVirtualWorld(playerid)
);
return 1;
}
Возможно, эксперты спросят: "Зачем это нужно, если в стримере можно указать playerid?"
Дело в том, что в стримере это реализовано иначе.
Вы можете указать playerid, но пока указанный игрок не окажется в зоне стрима, актёр или пикап будут невидимы для других игроков.
Однако, как только playerid войдёт в зону стрима, объект станет видимым для всех игроков.
Ссылка на пикапы: https://github.com/i...ckups/tree/main
Ссылка на актеров: https://github.com/i...t/player_actors
Автор: Saibot
Последнее редактирование модератором: