Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Ракетная атака на игрока

Статус
В этой теме нельзя размещать новые ответы.

Rikitan

Умник
мы научимся делать ракетную оборону,ну или атаку на игрока!
работает это так: админ(можно и сменить на фракцию,лидер армии к примеру) наберает команду /flyattack id и на введеный ид с неба полетят 3 ракеты.

Приступим
ко всем new
PHP:
new pRocket[3],
    Float:X,
    Float:Y,
    Float:Z,
    Aimer = INVALID_PLAYER_ID,
    Timer[MAX_PLAYERS],
    bool:Attack = false;
В OnPlayerCommandText
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;
}
И эти 2 нестандартные функции в конец мода
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
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу