Hикита
Умник
Для запуска ракеты необходимо открыть огонь из любого оружия, при столкновении взорвётся и удалится.
Летит ровно и прямо.
PHP:
// by Nikifor (Ferjkee)
#include <a_samp>
#define SPEED 30.0
#define RADIUS 10.0
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if (!hittype && fX)
{
new
Float: coor[4],
object;
GetPlayerPos (playerid, coor[0], coor[1], coor[2]);
GetPlayerFacingAngle (playerid, coor[3]);
object = CreateObject(1636, coor[0] + ( -floatsin(coor[3], degrees) * 2.5),
coor[1] + ( floatcos(coor[3], degrees) * 2.5), coor[2], 0, 0, coor[3]);
MoveObject (object, fX, fY, fZ, SPEED);
}
return 1;
}
public OnObjectMoved(objectid)
{
new
Float: coor[3];
GetObjectPos (objectid, coor[0], coor[1], coor[2]);
CreateExplosion (coor[0], coor[1], coor[2], 7, RADIUS);
DestroyObject (objectid);
return 1;
}
PHP:
// by Nikifor (Ferjkee)
#include <a_samp>
new Float: speed = 30.0;
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if (!hittype && fX)
{
new
Float: coor[6],
object;
GetPlayerLastShotVectors (playerid, coor[0], coor[1], coor[2], coor[3], coor[4], coor[5]);
new
Float: angle = asin ( VectorSize (coor[0] - coor[3], 0, coor[2] - coor[5]) /
VectorSize (coor[0] - coor[3], coor[1] - coor[4], coor[2] - coor[5]));
if (coor[0] > coor[3] && coor[1] > coor[4]) angle = 180.0 - angle;
else if (coor[0] < coor[3])
{
if (coor[1] < coor[3]) angle += 180.0;
else angle = 360.0 - angle;
}
GetPlayerPos (playerid, coor[0], coor[1], coor[2]);
GetPlayerFacingAngle (playerid, coor[3]);
object = CreateObject(1636, coor[0] + ( -floatsin(coor[3], degrees) * 2.5),
coor[1] + ( floatcos(coor[3], degrees) * 2.5), coor[2], 0, 0, angle);
MoveObject (object, fX, fY, fZ, speed);
}
return 1;
}
public OnObjectMoved(objectid)
{
new
Float: coor[3];
GetObjectPos (objectid, coor[0], coor[1], coor[2]);
CreateExplosion (coor[0], coor[1], coor[2], 7, 10.0);
DestroyObject (objectid);
return 1;
}
PHP:
CMD:speed(playerid, params[])
{
if (!sscanf(params, "f", params[0]))
{
speed = params[0];
}
return 1;
}
CMD:weapons(playerid, params[])
{
GivePlayerWeapon(playerid, 31, 100000);
GivePlayerWeapon(playerid, 29, 100000);
GivePlayerWeapon(playerid, 38, 100000);
return 1;
}
Последнее редактирование:
