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

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

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Создать круг видный только одной команде (Как создать подобное ?)
Создать круг видный только одной команде
OXIZ Дата: Вторник, 27.05.2014, 17:21:34 | Сообщение # 1
Сообщений: 13
Репутация: 2 [ +/- ]
Как создать круг который будет виден только одной команде ?
 
хвостег Дата: Вторник, 27.05.2014, 17:36:12 | Сообщение # 2
Сообщений: 161
Репутация: 53 [ +/- ]
SDKHook_SetTransmit гугли...
 
BarD Дата: Среда, 28.05.2014, 11:39:37 | Сообщение # 3
Сообщений: 943
Репутация: 137 [ +/- ]
Зачем же так?
Легким движением мозга создаем круг :D

Код
public OnMapStart()
{
g_BeamSprite = PrecacheModel("materials/sprites/glow08.vmt");//Готовим спрайты для круга
g_HaloSprite = PrecacheModel("materials/sprites/glow08.vmt"); //И свечения
}

//тут блок, который тебе нужен.
new Float:pos[3];
GetClientAbsOrigin(client, pos);//Получаем позицию игрока под ногами

TE_SetupBeamRingPoint(pos, 150.0, 150.1, g_BeamSprite, g_HaloSprite, 0, 15, 1.0, 2.0, 0.0, {255, 0, 0, 255}, 10, 1);
//pos - позиция  игрока
//150.0 - начальный диаметр
//150.1 - конечный диаметр. Как ты мог заметить, начальный и конечный диаметры совпадают. Это нужно для получения стабильного круга.
//g_BeamSprite - спрайт маяка
//g_HaloSprite - спрайт свечения
//1.0 - время жизни маяка
//2.0 - ширина линии
//0.0 - колебания
//{255, 0, 0, 255} - цвет
//10 - скорость мерцания

for new (i = 0; i <= MaxClients; i++) //Вычисляем для каждого игрока его команду. И если она совпадает с командой  вызывавшего круг игрока, то делаем для него видимым круг.
{
   if (GetClientTeam(client) == GetClientTeam(i)) //Здесь client - это тот, кто вызывает круг.
   {
    TE_SendToClient(i);
   }
}
 
«SeReGa»☆ Дата: Пятница, 13.06.2014, 20:52:21 | Сообщение # 4
Сообщений: 395
Репутация: 37 [ +/- ]
а как показать Trail только одной команде???

Добавлено (13.06.2014, 20:52:21)
---------------------------------------------

Код
new Trail=CreateEntityByName("env_spritetrail");   
     DispatchKeyValueVector(Trail,"origin",pos);  //Подготавливаем спавн в точке ног  
     DispatchKeyValue(Trail,"lifetime","1"); //Время жизни  
     DispatchKeyValue(Trail,"startwidth","5.0"); //Начальная ширина 1.0  
     DispatchKeyValue(Trail,"endwidth","2.0");  //Конечная тоже  
     DispatchKeyValue(Trail,"spritename","materials/sprites/laserbeam.vmt");  //Спрайт такой. Заранее прекэшнутый.  
     DispatchKeyValue(Trail,"rendermode","1"); //Видимый  
     DispatchKeyValue(Trail,"rendercolor",Rcol);   
     DispatchKeyValue(Trail,"renderamt","100");  //Полностью непрозрачен  
     DispatchSpawn(Trail);  //Спавним  
     SetVariantString("!activator");
     AcceptEntityInput(Trail,"SetParent", entity, Trail, 0);
     AcceptEntityInput(Trail,"TurnOn");
     SetVariantString("OnUser1 !self:kill::10.1:1");
     AcceptEntityInput(Trail,"AddOutput");
     AcceptEntityInput(Trail,"FireUser1");
 
Darkeneez Дата: Пятница, 13.06.2014, 21:07:58 | Сообщение # 5
Сообщений: 221
Репутация: 18 [ +/- ]
Код
    new Trail=CreateEntityByName("env_spritetrail");    
  DispatchKeyValueVector(Trail,"origin",pos);  //Подготавливаем спавн в точке ног   
  DispatchKeyValue(Trail,"lifetime","1"); //Время жизни   
  DispatchKeyValue(Trail,"startwidth","5.0"); //Начальная ширина 1.0   
  DispatchKeyValue(Trail,"endwidth","2.0");  //Конечная тоже   
  DispatchKeyValue(Trail,"spritename","materials/sprites/laserbeam.vmt");  //Спрайт такой. Заранее прекэшнутый.   
  DispatchKeyValue(Trail,"rendermode","1"); //Видимый   
  DispatchKeyValue(Trail,"rendercolor",Rcol);    
  DispatchKeyValue(Trail,"renderamt","100");  //Полностью непрозрачен   
  DispatchSpawn(Trail);  //Спавним   
  SetVariantString("!activator");  
  AcceptEntityInput(Trail,"SetParent", entity, Trail, 0);  
  AcceptEntityInput(Trail,"TurnOn");  
  SetVariantString("OnUser1 !self:kill::10.1:1");  
  AcceptEntityInput(Trail,"AddOutput");  
  AcceptEntityInput(Trail,"FireUser1");
   
  SetEntPropEnt(Trail, Prop_Send, "m_hOwnerEntity", client); //Создаем "Хозяина" для трейла
   
  SDKHook(Trail, SDKHook_SetTransmit, Hide);//Хукаем трейл, для передачи игрокам
   
   
  public Action:Hide(entity, client)
  {
   new owner = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");//Получаем userid хозяина
   if (owner != -1 && GetClientTeam(owner) != GetClientTeam(client)) //Если команды не равны блокируем
    return Plugin_Handled;
   return Plugin_Continue;
  }
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Создать круг видный только одной команде (Как создать подобное ?)
  • Страница 1 из 1
  • 1
Поиск: