Rikitan
Умник
мы научимся делать ракетную оборону,ну или атаку на игрока!
работает это так: админ(можно и сменить на фракцию,лидер армии к примеру) наберает команду /flyattack id и на введеный ид с неба полетят 3 ракеты.
Приступим
ко всем new
В OnPlayerCommandText
Дальше паблик(кто незнает куда вставлять,можете прям в конец мода)
И эти 2 нестандартные функции в конец мода
и эту
Спасибо за внимание!Кому пригодиться ставим +
Автор скрипта:Gameyer
Сайт: for**.pawno.ru
работает это так: админ(можно и сменить на фракцию,лидер армии к примеру) наберает команду /flyattack id и на введеный ид с неба полетят 3 ракеты.
Приступим
ко всем new
PHP:
new pRocket[3],
Float:X,
Float:Y,
Float:Z,
Aimer = INVALID_PLAYER_ID,
Timer[MAX_PLAYERS],
bool:Attack = false;
PHP:
new cmd[128],idx,tmp[128];
cmd = strtok(cmdtext, idx);
if(strcmp(cmd,"/flyattack",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFFFFFFFF,"Вы не Админ!");
if(!strlen(tmp)) return SendClientMessage(playerid,0xFFFFFFFF,"Используйте /flyattack [ID игрока]");
new pid = strval(tmp);
if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,0xFFFFFFFF,"> Игрок не подключен!");
if(GetPlayerInterior(pid) != 0) return SendClientMessage(playerid,0xFFFFFFFF,"> Игрока находится в доме!");
if(Attack) return SendClientMessage(playerid,0xF60000FF,"> Ракетная установка уже преведена в действие!");
pRocket[0] = INVALID_OBJECT_ID;
pRocket[1] = INVALID_OBJECT_ID;
pRocket[2] = INVALID_OBJECT_ID;
Attack = true;
Aimer = playerid;
GetPlayerPos(pid,X,Y,Z);
pRocket[0] = CreateObject(354,X,Y,Z+500.0,0.0,0.0,0.0);
pRocket[1] = CreateObject(354,X,Y,Z+510.0,0.0,0.0,0.0);
pRocket[2] = CreateObject(354,X,Y,Z+515.0,0.0,0.0,0.0);
MoveObject(pRocket[0],X,Y,Z-5,70.0);
MoveObject(pRocket[1],X,Y,Z-5,70.0);
MoveObject(pRocket[2],X,Y,Z-5,70.0);
Timer[pid] = SetTimerEx("ObjectUpdate",100,true,"dd",pid,pRocket[0]);
new Name[32],string[128];
GetPlayerName(pid,Name,sizeof(Name));
format(string,sizeof(string),"> Ракетная Атака на игрока %s запущена!",Name);
SendClientMessage(playerid,0xF60000AA,string);
return 1;
}
PHP:
forward ObjectUpdate(playerid,objectid);
public ObjectUpdate(playerid,objectid)
{
if(!Attack) return KillTimer(Timer[playerid]);
new Float:oX[6];
GetObjectPos(objectid,oX[0],oX[1],oX[2]);
GetPlayerPos(playerid,oX[3],oX[4],oX[5]);
if(oX[2] < oX[5])
{
DestroyObject(pRocket[0]);
DestroyObject(pRocket[1]);
DestroyObject(pRocket[2]);
CreateExplosion(X+RandomValue(-10,10),Y+RandomValue(-10,10),Z,6,10.0);
CreateExplosion(X+RandomValue(-10,10),Y+RandomValue(-10,10),Z,6,10.0);
CreateExplosion(X+RandomValue(-10,10),Y+RandomValue(-10,10),Z,6,10.0);
SendClientMessage(Aimer,-1,"> Ракетная атака ударила по цели!");
KillTimer(Timer[playerid]);
Attack = false;
}
return 1;
}
PHP:
stock strtok(const string[],&index,seperator=' ')
{
new length = strlen(string),offset = index,result[64];
while((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
if((index < length) && (string[index] == seperator))
{
index++;
}
return result;
}
PHP:
stock RandomValue(min, max)
{
return random(max - min) + min;
}
Автор скрипта:Gameyer
Сайт: for**.pawno.ru
Последнее редактирование:
