PDA

Просмотр полной версии : [Мануал] Выброс гранат из транспортного средства



L0ndl3m
03.08.2014, 22:25
Всем привет. Недавно Salvacore выкладывал скрипт (http://pro-pawn.ru/showthread.php?9731), суть которого соответствует названию темы. Я немного решил "усовершенствовать" его.

Сравнения с прошлой версией:

Гранаты летят плавно и взрываются тогда, когда достигнут своего падения.
Никаких таймеров, задействован только стандартный паблик OnObjectMoved.


Ко всем глобальным переменным ( ко всем new ):


new
grenade_obj[MAX_PLAYERS] = { INVALID_OBJECT_ID, ... };


В public OnPlayerKeyStateChange:


if((newkeys & KEY_FIRE) != 0 && IsPlayerInAnyVehicle(playerid) && grenade_obj[playerid] == INVALID_OBJECT_ID)
{
new
p_weaponid,
p_ammo;

GetPlayerWeaponData(playerid, 8, p_weaponid, p_ammo);
if(p_weaponid == 16 && p_ammo != 0)
{
new
veh_id = GetPlayerVehicleID(playerid),
Float: veh_pos_x,
Float: veh_pos_y,
Float: veh_pos_z,
Float: veh_pos_a;

GetVehiclePos(veh_id, veh_pos_x, veh_pos_y, veh_pos_z);
GetVehicleZAngle(veh_id, veh_pos_a);

veh_pos_x -= 1.0 * floatsin(-(veh_pos_a + 90.0), degrees);
veh_pos_y -= 1.0 * floatcos(-(veh_pos_a + 90.0), degrees);

grenade_obj[playerid] = CreateObject(342, veh_pos_x, veh_pos_y, veh_pos_z + 1.0, 0.0, 0.0, 0.0);

veh_pos_x += 3.0 * floatsin(-(veh_pos_a - 270.0), degrees);
veh_pos_y += 3.0 * floatcos(-(veh_pos_a - 270.0), degrees);

ApplyAnimation(playerid, "PED", "CAR_closedoor_LHS", 4.1, 0, 0, 0, 0, 0, 1);

MoveObject(grenade_obj[playerid], veh_pos_x, veh_pos_y, veh_pos_z - 1.0, 5.0);

GivePlayerWeapon(playerid, 16, -1);
}
}


В public OnObjectMoved:


new
i = GetMaxPlayers();

do
{
if(objectid == grenade_obj[--i])
{
new
Float: obj_pos_x,
Float: obj_pos_y,
Float: obj_pos_z;

GetObjectPos(grenade_obj[i], obj_pos_x, obj_pos_y, obj_pos_z);
DestroyObject(grenade_obj[i]);
CreateExplosion(obj_pos_x, obj_pos_y, obj_pos_z, 0, 10.0);
grenade_obj[i] = INVALID_OBJECT_ID;

break;
}
}
while(i);



http://www.youtube.com/watch?v=2RYhefeS-B0


Автор: Londlem (http://pro-pawn.ru/member.php?2057-Londlem)

Специально для: Pro-Pawn.Ru (http://pro-pawn.ru)

Копирование данной статьи без разрешения автора запрещено!

Salvacore
03.08.2014, 23:00
http://i1.ytimg.com/vi/8Hdetk98L-U/hqdefault.jpg

Osetin
04.08.2014, 20:06
Не плохая задумка, молодец.