Заказать Сервер Заказать Плагин Контакты Поиск

[ вход ]
[ последние сообщения ]

Страница 1 из 11
Форум » SourceMod - Counter Strike Source && CS GO » Уроки/Статьи/Функции/Задачи » [Задача] Получаем позиции, вокруг заданной позиции.
[Задача] Получаем позиции, вокруг заданной позиции.
horr0r Дата: Суббота, 01.06.2013, 19:21:46 | Сообщение # 1
Сообщений: 149
Репутация: 40 [ +/- ]
Даны четыре точки (ABCD). И 1 центральная (O).
Допустим O - это игрок.
И нужно вокруг него создать четыре взрыва. Четыре угла по 90 градусов.
P.S. Сам, если что, знаю ответ, если нужно, напишу и все объясню)).

Прикрепления: 7817491.jpg(22Kb)
 
TEIN Дата: Воскресенье, 02.06.2013, 11:27:11 | Сообщение # 2
Сообщений: 550
Репутация: 73 [ +/- ]
Точки случайные? То есть просто сделать взрыв на этих точках?
 
horr0r Дата: Воскресенье, 02.06.2013, 12:39:24 | Сообщение # 3
Сообщений: 149
Репутация: 40 [ +/- ]
Нет, точки не случайные. Посмотри картинку, которую я прикрепил. Они должны быть вокруг игрока. Точка O - это сам игрок, а ABCD - взрывы.


Сообщение отредактировал horr0r - Воскресенье, 02.06.2013, 13:57:27
 
vanbka9 Дата: Воскресенье, 25.08.2013, 03:12:12 | Сообщение # 4
Сообщений: 11
Репутация: 2 [ +/- ]
Как-то так...

Прикрепления: Boom.sp(1Kb)


Сообщение отредактировал vanbka9 - Воскресенье, 25.08.2013, 19:27:40
 
хвостег Дата: Четверг, 08.05.2014, 17:41:10 | Сообщение # 5
Сообщений: 161
Репутация: 53 [ +/- ]
Так лучше будет....
Код

#include <sdktools>

public OnPluginStart()
{
    RegConsoleCmd("boom", Command_Boom);
}

public Action:Command_Boom(client, args)
{
    new Float:Orig[3], Float:Spawn[3];
    GetClientAbsOrigin(client, Orig);
       
    new Num      = 4; // Кол-во точек вокруг заданной позиции
    new Degrees = 360;
    new Coeff    = 0;
    new Mul      = 100;

    for(new I = 0; I < Num; I++)
    {
     new Float:OMG = DegToRad(float(I * (Degrees / Num) + Coeff));
        
     Spawn[0] = Orig[0] + Sine(OMG) * Mul;
     Spawn[1] = Orig[1] + Cosine(OMG) * Mul;
     Spawn[2] = Orig[2] + 0.0;
        
     boom(Spawn);
    }
}

stock boom(Float:pos[3])
{
    new bm = CreateEntityByName("env_explosion");
    DispatchSpawn(bm);
    TeleportEntity(bm, pos, NULL_VECTOR, NULL_VECTOR);
    AcceptEntityInput(bm, "Explode");
    AcceptEntityInput(bm, "Kill");
}


Сообщение отредактировал хвостег - Четверг, 08.05.2014, 17:43:03
 
horr0r Дата: Пятница, 13.06.2014, 12:52:22 | Сообщение # 6
Сообщений: 149
Репутация: 40 [ +/- ]
хвостег, верно. У меня похожий код. Тоже использовал тригонометрические функции).
 
Форум » SourceMod - Counter Strike Source && CS GO » Уроки/Статьи/Функции/Задачи » [Задача] Получаем позиции, вокруг заданной позиции.
Страница 1 из 11
Поиск: