xaker7771
Умник
Помогите настроить ракетный залп, чтоб было не 2 ракеты, а 6.
Вроде переменные все сделал. Вылетает 6 ракет, но приземляется всего 2.
Вроде переменные все сделал. Вылетает 6 ракет, но приземляется всего 2.
PHP:
#include <a_samp>
#pragma tabsize 0
//Обновлено 28 февраля 2012
new F;//фаза ракеты
new GenDor;//дверка люка
new Nuc;//ракета 1
new Nuc2;//ракета 2
new Nuc3;
new Nuc4;
new Nuc5;
new Nuc6;
new Gen;//ид для таймера
new Ex[MAX_PLAYERS];
new Float: ex[12];
new bool: PosOk = false;
new Bang;
public OnFilterScriptInit()
{
print("\n----------------------------------");
print(" Rocket by BRICS loaded");
print("----------------------------------\n");
GenDor = CreateObject(3095,268.64181518555,1884.2023925781,16.048055648804,0,0,0);
Nuc = CreateObject(3790,267.12322998047,1885.4362792969,-28.058870315552,0,90,0);
Nuc2 = CreateObject(3790,270.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc3 = CreateObject(3790,272.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc4 = CreateObject(3790,274.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc5 = CreateObject(3790,276.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc6 = CreateObject(3790,278.89688110352,1884.4702148438,-28.058870315552,0,90,0);
return 1;
}
public OnFilterScriptExit()
{
DestroyObject(Nuc);
DestroyObject(Nuc6);
DestroyObject(GenDor);
for(new i; i < MAX_PLAYERS; i++)RemovePlayerMapIcon(i,15);
return 1;
}
public OnPlayerConnect(playerid)
{
Ex[playerid] = 0;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/expos", cmdtext, true, 10) == 0)
{
if(F != 0)return SendClientMessage(playerid,0x808080FF,"Ракеты уже в пути");
Ex[playerid] = 1;
SendClientMessage(playerid,0x9ACD32FF,"Задайте кординаты удара, поставив красный маркер на карте");
return 1;
}
if (strcmp("/startnuc", cmdtext, true, 10) == 0)
{
if(F != 0)return SendClientMessage(playerid,0x808080FF,"Ракеты перезаправляются");
if(!PosOk)return SendClientMessage(playerid,0x808080FF,"Не заданы кординаты (/expos)");
MoveObject(GenDor,268.64181518555,1893.2023925781,16.048055648804,1,0,0,0);
F = 1;
PosOk = false;
Gen = SetTimer("General",4000,0);
//270.89688110352,1884.4702148438,-28.058870315552,0,90,0
return 1;
}
return 0;
}
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
if(Ex[playerid] == 1)
{
Ex[playerid] = 0;
ex[0] = fX;
PosOk = true;
ex[1] = fY;
ex[2] = fZ;
SendClientMessage(playerid,0x9ACD32FF,"Кординаты заданы. Для запуска ракеты введите /startnuc");
SetPlayerMapIcon(playerid,15,fX,fY,fZ,23,0,MAPICON_GLOBAL);
}
return 1;
}
forward General();
public General()
{
if(F == 1)
{
KillTimer(Gen);
F = 2;
MoveObject(Nuc,267.12322998047,1885.4362792969,600,20,0,90,0);
MoveObject(Nuc2,270.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc3,271.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc4,272.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc5,273.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc6,274.89688110352,1884.4702148438,600,20,0,90,0);
Gen = SetTimer("General",2000,0);
SendClientMessageToAll(0xFF0000FF,"Обнаружен запуск крылатой ракеты!");
}
else if(F == 2)
{
KillTimer(Gen);
F = 3;
MoveObject(Nuc,267.12322998047,1885.4362792969,600,30,0,90,0);
MoveObject(Nuc2,270.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc3,271.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc4,272.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc5,273.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc6,274.89688110352,1884.4702148438,600,20,0,90,0);
Gen = SetTimer("General",2000,0);
SendClientMessageToAll(0xFF0000FF,"Обнаружен запуск крылатой ракеты!");
}
else if(F == 3)
{
KillTimer(Gen);
F = 4;
MoveObject(Nuc2,270.89688110352,1884.4702148438,600,30,0,90,0);
Gen = SetTimer("General",2000,0);
}
else if(F == 4)
{
KillTimer(Gen);
F = 5;
MoveObject(Nuc,267.12322998047,1885.4362792969,600,30,0,90,0);
MoveObject(Nuc2,270.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc3,271.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc4,272.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc5,273.89688110352,1884.4702148438,600,20,0,90,0);
MoveObject(Nuc6,274.89688110352,1884.4702148438,600,20,0,90,0);
Gen = SetTimer("General",7000,0);
}
else if(F == 5)
{
DestroyObject(Nuc);
DestroyObject(Nuc2);
DestroyObject(Nuc2);
DestroyObject(Nuc3);
DestroyObject(Nuc4);
DestroyObject(Nuc5);
DestroyObject(Nuc6);
KillTimer(Gen);
F = 6;
Gen = SetTimer("General",2000,0);
}
else if(F == 6)
{
F = 7;
Nuc = CreateObject(3790,ex[0]+6,ex[1],ex[2] + 700,0,270,0);
Nuc2 = CreateObject(3790,ex[0],ex[1]+6,ex[2] + 700,0,270,0);
Nuc3 = CreateObject(3790,ex[0],ex[1]+6,ex[2] + 700,0,270,0);
Nuc4 = CreateObject(3790,ex[0],ex[1]+6,ex[2] + 700,0,270,0);
Nuc5 = CreateObject(3790,ex[0],ex[1]+6,ex[2] + 700,0,270,0);
Nuc6 = CreateObject(3790,ex[0],ex[1]+6,ex[2] + 700,0,270,0);
MoveObject(Nuc,ex[0]+6,ex[1],ex[2],70,0,270,0);
MoveObject(Nuc2,ex[0],ex[1]+6,ex[2],60,0,270,0);
MoveObject(Nuc3,ex[0],ex[1]+6,ex[2],60,0,270,0);
MoveObject(Nuc4,ex[0],ex[1]+6,ex[2],60,0,270,0);
MoveObject(Nuc5,ex[0],ex[1]+6,ex[2],60,0,270,0);
MoveObject(Nuc6,ex[0],ex[1]+6,ex[2],60,0,270,0);
Gen = SetTimer("General",500,1);
}
else if(F == 7)
{
new Float: n1[3];
GetObjectPos(Nuc,n1[0],n1[1],n1[2]);
new Float: n2[3];
GetObjectPos(Nuc2,n2[0],n2[1],n2[2]);
new Float: n3[3];
GetObjectPos(Nuc3,n3[0],n3[1],n3[2]);
new Float: n4[3];
GetObjectPos(Nuc4,n4[0],n4[1],n4[2]);
new Float: n5[3];
GetObjectPos(Nuc5,n5[0],n5[1],n5[2]);
new Float: n6[3];
GetObjectPos(Nuc6,n6[0],n6[1],n6[2]);
if(n1[2] <= ex[2] && Bang == 0)
{
Bang = 1;
SendClientMessageToAll(0x008000FF,"Был нанесен ракетный удар!");
for(new i; i < MAX_PLAYERS; i++)SetPlayerMapIcon(i,16,ex[0],ex[1],ex[2],19,0,MAPICON_GLOBAL);
CreateExplosion(ex[0]+6,ex[1],ex[2],6,90.0);
CreateExplosion(ex[0],ex[1]+6,ex[2],2,90.0);
CreateExplosion(ex[0]+2,ex[1]+12,ex[2],6,90.0);
CreateExplosion(ex[0]+5,ex[1]+5,ex[2],6,90.0);
CreateExplosion(ex[0]+3,ex[1]+6,ex[2],6,90.0);
CreateExplosion(ex[0]+9,ex[1]+4,ex[2],2,90.0);
CreateExplosion(ex[0]+12,ex[1]+7,ex[2],6,90.0);
CreateExplosion(ex[0]+1,ex[1]+2,ex[2],6,90.0);
DestroyObject(Nuc);
}
if(n2[2] <= ex[2])
{
for(new i; i < MAX_PLAYERS; i++)RemovePlayerMapIcon(i,15);
CreateExplosion(ex[0],ex[1]-6,ex[2],6,90.0);
CreateExplosion(ex[0],ex[1]-6,ex[2],2,90.0);
CreateExplosion(ex[0]-12,ex[1]-2,ex[2],6,90.0);
CreateExplosion(ex[0]-6,ex[1]-3,ex[2],2,90.0);
CreateExplosion(ex[0]-5,ex[1]-5,ex[2],6,90.0);
DestroyObject(Nuc2);
KillTimer(Gen);
Nuc = CreateObject(3790,267.12322998047,1885.4362792969,-28.058870315552,0,90,0);
Nuc2 = CreateObject(3790,270.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc3 = CreateObject(3790,271.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc4 = CreateObject(3790,272.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc5 = CreateObject(3790,273.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc6 = CreateObject(3790,274.89688110352,1884.4702148438,-28.058870315552,0,90,0);
F = 8;
Gen = SetTimer("General",8000,1);
Bang = 0;
}
if(n3[2] <= ex[2] && Bang == 0)
{
Bang = 1;
SendClientMessageToAll(0x008000FF,"Был нанесен ракетный удар!");
for(new i; i < MAX_PLAYERS; i++)SetPlayerMapIcon(i,16,ex[0],ex[1],ex[2],19,0,MAPICON_GLOBAL);
CreateExplosion(ex[0]+6,ex[1],ex[2],6,90.0);
CreateExplosion(ex[0],ex[1]+6,ex[2],2,90.0);
CreateExplosion(ex[0]+2,ex[1]+12,ex[2],6,90.0);
CreateExplosion(ex[0]+5,ex[1]+5,ex[2],6,90.0);
CreateExplosion(ex[0]+3,ex[1]+6,ex[2],6,90.0);
CreateExplosion(ex[0]+9,ex[1]+4,ex[2],2,90.0);
CreateExplosion(ex[0]+12,ex[1]+7,ex[2],6,90.0);
CreateExplosion(ex[0]+1,ex[1]+2,ex[2],6,90.0);
DestroyObject(Nuc);
DestroyObject(Nuc2);
DestroyObject(Nuc2);
DestroyObject(Nuc3);
DestroyObject(Nuc4);
DestroyObject(Nuc5);
DestroyObject(Nuc6);
}
if(n4[2] <= ex[2])
{
for(new i; i < MAX_PLAYERS; i++)RemovePlayerMapIcon(i,15);
CreateExplosion(ex[0],ex[1]-6,ex[2],6,90.0);
CreateExplosion(ex[0],ex[1]-6,ex[2],2,90.0);
CreateExplosion(ex[0]-12,ex[1]-2,ex[2],6,90.0);
CreateExplosion(ex[0]-6,ex[1]-3,ex[2],2,90.0);
CreateExplosion(ex[0]-5,ex[1]-5,ex[2],6,90.0);
DestroyObject(Nuc2);
DestroyObject(Nuc2);
DestroyObject(Nuc2);
DestroyObject(Nuc3);
DestroyObject(Nuc4);
DestroyObject(Nuc5);
DestroyObject(Nuc6);
KillTimer(Gen);
Nuc = CreateObject(3790,267.12322998047,1885.4362792969,-28.058870315552,0,90,0);
Nuc2 = CreateObject(3790,270.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc3 = CreateObject(3790,271.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc4 = CreateObject(3790,272.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc5 = CreateObject(3790,273.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc6 = CreateObject(3790,274.89688110352,1884.4702148438,-28.058870315552,0,90,0);
F = 8;
Gen = SetTimer("General",8000,1);
Bang = 0;
}
if(n5[2] <= ex[2] && Bang == 0)
{
Bang = 1;
SendClientMessageToAll(0x008000FF,"Был нанесен ракетный удар!");
for(new i; i < MAX_PLAYERS; i++)SetPlayerMapIcon(i,16,ex[0],ex[1],ex[2],19,0,MAPICON_GLOBAL);
CreateExplosion(ex[0]+6,ex[1],ex[2],6,90.0);
CreateExplosion(ex[0],ex[1]+6,ex[2],2,90.0);
CreateExplosion(ex[0]+2,ex[1]+12,ex[2],6,90.0);
CreateExplosion(ex[0]+5,ex[1]+5,ex[2],6,90.0);
CreateExplosion(ex[0]+3,ex[1]+6,ex[2],6,90.0);
CreateExplosion(ex[0]+9,ex[1]+4,ex[2],2,90.0);
CreateExplosion(ex[0]+12,ex[1]+7,ex[2],6,90.0);
CreateExplosion(ex[0]+1,ex[1]+2,ex[2],6,90.0);
DestroyObject(Nuc);
DestroyObject(Nuc2);
DestroyObject(Nuc2);
DestroyObject(Nuc3);
DestroyObject(Nuc4);
DestroyObject(Nuc5);
DestroyObject(Nuc6);
}
if(n6[2] <= ex[2])
{
for(new i; i < MAX_PLAYERS; i++)RemovePlayerMapIcon(i,15);
CreateExplosion(ex[0],ex[1]-6,ex[2],6,90.0);
CreateExplosion(ex[0],ex[1]-6,ex[2],2,90.0);
CreateExplosion(ex[0]-12,ex[1]-2,ex[2],6,90.0);
CreateExplosion(ex[0]-6,ex[1]-3,ex[2],2,90.0);
CreateExplosion(ex[0]-5,ex[1]-5,ex[2],6,90.0);
DestroyObject(Nuc2);
DestroyObject(Nuc2);
DestroyObject(Nuc2);
DestroyObject(Nuc3);
DestroyObject(Nuc4);
DestroyObject(Nuc5);
DestroyObject(Nuc6);
KillTimer(Gen);
Nuc = CreateObject(3790,267.12322998047,1885.4362792969,-28.058870315552,0,90,0);
Nuc2 = CreateObject(3790,270.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc3 = CreateObject(3790,271.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc4 = CreateObject(3790,272.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc5 = CreateObject(3790,273.89688110352,1884.4702148438,-28.058870315552,0,90,0);
Nuc6 = CreateObject(3790,274.89688110352,1884.4702148438,-28.058870315552,0,90,0);
F = 8;
Gen = SetTimer("General",8000,1);
Bang = 0;
}
}
else if( F == 8)
{
KillTimer(Gen);
F = 0;
for(new i; i < MAX_PLAYERS; i++)RemovePlayerMapIcon(i,16);
}
return 1;
}
