Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

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

  • Страница 1 из 1
  • 1
Радиус Entity
zig_Ro Дата: Вторник, 18.03.2014, 16:07:17 | Сообщение # 1
Сообщений: 15
Репутация: 0 [ +/- ]
Предмет ломается, и кто был рядом с предметов в "radius" - выполнить действия - Убить

Как такое сделать?

HookSingleEntityOutput(entity, "OnBreak", OnBreak);

Код
public OnBreak(const String:output[], entity, client, Float:delay)
{
        if (0 < client <= MaxClients && IsPlayerAlive(client))
        {
            radius = 30;

            for(new i = 1; i <= MaxClients; i++) //проходим всех игроков
           {
                //если игроки в радиусе 30 от ломания предмета то,
                 ForcePlayerSuicide(i);
           }
        }
}


Сообщение отредактировал zig_Ro - Вторник, 18.03.2014, 16:26:39
 
nailllain Дата: Вторник, 18.03.2014, 17:11:39 | Сообщение # 2
Сообщений: 14
Репутация: 2 [ +/- ]
http://world-source.ru/forum/100-2385-1 Второй пост.
 
zig_Ro Дата: Вторник, 18.03.2014, 17:23:09 | Сообщение # 3
Сообщений: 15
Репутация: 0 [ +/- ]
nailllain, Там пример с отловом HookEvent, здесь же по другому.
 
nailllain Дата: Вторник, 18.03.2014, 17:41:37 | Сообщение # 4
Сообщений: 14
Репутация: 2 [ +/- ]
zig_Ro, Посмотри еще раз внимательно второй коментарий, первый код. Там HookEvent даже ненужен.

Код
stock Float:GetDistance(Float:pos1[3], Float:pos2[3]) //получает дистанцию между двух точек. (В 2д пространстве).  
{  
       return SquareRoot( Pow(pos2[0] - pos1[0], 2.0) + Pow(pos2[1] - pos1[1], 2.0) );  
}  

stock IsClientInRangeOfPoint(client, Float:radius, Float:cpos[3]) //проверяет предыдущей функцией, в радиусе ли игрок от определенной точки.  
{  
       new Float:ppos[3];  
       GetClientAbsOrigin(client, ppos);  
       if(GetDistance(ppos, cpos) <= radius) return true;  
       return false;  
}
 
  • Страница 1 из 1
  • 1
Поиск: