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

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

  • Страница 1 из 1
  • 1
Виден ли игрок
rasav Дата: Воскресенье, 15.09.2013, 08:10:51 | Сообщение # 1
Сообщений: 58
Репутация: 0 [ +/- ]
Здравствуйте
Скажите есть ли функция определяющая видит ли Игрок 1 Игрока 2 ?
Например : Я стою за стенкой рядом с игроком 1 , нужно узнать видит он меня или нет !
 
TEIN Дата: Воскресенье, 15.09.2013, 08:15:19 | Сообщение # 2
Сообщений: 563
Репутация: 78 [ +/- ]
пробуй http://docs.sourcemod.net/api/index.php?fastload=show&id=233&
 
rasav Дата: Воскресенье, 15.09.2013, 08:46:40 | Сообщение # 3
Сообщений: 58
Репутация: 0 [ +/- ]
Цитата (TEIN)
пробуй http://docs.sourcemod.net/api/index.php?fastload=show&id=233&

Нет это не совсем подходит
 
iEx Дата: Воскресенье, 15.09.2013, 11:11:00 | Сообщение # 4
Сообщений: 304
Репутация: 23 [ +/- ]
У античита сорсмода есть доп.модуль анти вх,который скрывает игрока(не виден за стеной,якобы не сущ.) ,почитай его,может поможет...
 
rasav Дата: Воскресенье, 15.09.2013, 11:50:28 | Сообщение # 5
Сообщений: 58
Репутация: 0 [ +/- ]
Пробую так но не как не работает
Код

new Handle:trace = TR_TraceRayFilterEx(origin, targetOrigin, MASK_ALL, RayType_Infinite, FilterTarget, i);
GetEdictClassname(TR_GetEntityIndex(trace), classname, sizeof(classname));  
if(StrContains(classname, "worldspawn")!=0){
/// Ничего не мешает
}
 
iEx Дата: Воскресенье, 15.09.2013, 12:01:11 | Сообщение # 6
Сообщений: 304
Репутация: 23 [ +/- ]
Что по идее делаешь ты - именно если смотрит На игрока,а не видит его.
 
rasav Дата: Понедельник, 16.09.2013, 11:18:55 | Сообщение # 7
Сообщений: 58
Репутация: 0 [ +/- ]
Цитата (iEx)
Что по идее делаешь ты - именно если смотрит На игрока,а не видит его.

Есть функция проверяющая игроков в радиусе 250 юнитов . Если игрок оказался в радиусе то его например трясет . Я хочу доделать функцию и установить если игрок в радиусе 250 юнитов но за стенкой (либо за стеклом либо за коробкой большой ) то его трясти не будет !

Код

new Float:origin[3];
         GetClientAbsOrigin(client, origin);
          
         origin[2] += 15.0;
         new clientteam = GetClientTeam(client);
         new String:classname[64];  
         TE_SetupBeamRingPoint(origin, 10.0, 200.0, g_beamsprite, g_halosprite, 1, 1, 0.2, 100.0, 1.0, {255,75,75,255}, 0, 0);
         TE_SendToAll();
          
         new Float:targetOrigin[3];
         for (new i = 1; i <= MaxClients; i++)
         {
             if (!IsClientInGame(i) || !IsPlayerAlive(i) || GetClientTeam(i) == clientteam)
             {
                 continue;
             }
         GetClientAbsOrigin(i, targetOrigin);
         targetOrigin[2] += 130.0;
             if (GetVectorDistance(origin, targetOrigin) <= 250)
             {
                 new Handle:trace = TR_TraceRayFilterEx(origin, targetOrigin, MASK_ALL, RayType_Infinite, FilterTarget, i);
                 GetEdictClassname(TR_GetEntityIndex(trace), classname, sizeof(classname));  
                 if(ЕСЛИ МЕЖДУ ИГРОКОМ И МНОЙ НИЧЕГО НЕТ ЗНАЧИТ ВЫПОЛНЯЕМ ФУНКЦИЮ){
                     /// ФУНКЦИЯ
                 }
                 CloseHandle(trace);
             }     
         }

Добавлено (16.09.2013, 11:18:55)
---------------------------------------------
Все всем спасибо решение нашел !

 
  • Страница 1 из 1
  • 1
Поиск: