Скрипт который позволяет нам двигать подводную лодку, что в доках Сан-Фьерро.
Команды:
/submarine - телепортирует нас к позиции рулевого
/test - телепортироваться к порту Сан-Фьерро
- Код
Код: Выделить всё
#include <a_samp>
#include <zcmd>
main()
{
print("Autor: KaLu\nPomysł: Jingles");
}
new submarine, submarine_object;
public OnFilterScriptInit()
{
submarine = CreateVehicle(484, -1899.1563, 1476.7891, 5.7422, 0, 0, 0, 0);
submarine_object = CreateObject(9958, 0, 0, 0, 0, 0, 180), AttachObjectToVehicle(submarine_object, submarine, 0, 0, 5.7422, 0.00000, 0.00000, 180.00000);
LinkVehicleToInterior(submarine, (submarine * MAX_PLAYERS));
return 1;
}
public OnFilterScriptExit()
{
DestroyVehicle(submarine), DestroyObject(submarine_object);
return 1;
}
public OnPlayerConnect(playerid)
{
RemoveBuildingForPlayer(playerid, 9958, -1899.1563, 1476.7891, 5.7422, 0.25);
RemoveBuildingForPlayer(playerid, 10285, -1899.1563, 1476.7891, 5.7422, 0.25);
return 1;
}
CMD:submarine(playerid, params[])
{
if(!IsPlayerInRangeOfPoint(playerid, 30.0, -1899.1563, 1476.7891, 5.7422) || GetPlayerVirtualWorld(playerid) != 0)
{
SendClientMessage(playerid, 0xBA1010FF, "Нужно быть в порту, в котором пришвартована подводная лодка.");
return 1;
}
new Float:submarine_pos[3]; GetVehiclePos(submarine, submarine_pos[0], submarine_pos[1], submarine_pos[2]);
if(!IsPlayerInRangeOfPoint(playerid, 30.0, submarine_pos[0], submarine_pos[1], submarine_pos[2]) || IsVehicleInUse(submarine) != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xBA1010FF, "Судно не в вашем районе или занято другим игроком.");
return 1;
}
SendClientMessage(playerid, 0xBA1010FF, "Оставайтесь на месте в подводной лодке.");
return PutPlayerInVehicle(playerid, submarine, 0);
}
CMD:test(playerid, params[])
{
SetPlayerPos(playerid, -1899.1563, 1476.7891, 10.7422);
return 1;
}
stock IsVehicleInUse(vehicleid)
{
for(new i; i != MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == vehicleid)
{
return i;
}
}
return INVALID_PLAYER_ID;
}