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

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

  • Страница 1 из 1
  • 1
Почему не запускает функцию аптечки, при ее подборе
DEMO-Stalker Дата: Суббота, 22.03.2014, 14:07:34 | Сообщение # 1
Сообщений: 49
Репутация: 0 [ +/- ]
Просьба подсказать. Аптечки создаются, но не подбираются. Что делать?
Код
//Ставим аптечки
public SetMedkit(client)
{  
  decl Float:Pos[3];
  GetLookPos(comrad, Pos);
  new index = CreateEntityByName("prop_physics_override");
  SetEntProp(index, Prop_Data, "m_CollisionGroup", 11);  
  SetEntProp(index, Prop_Send, "m_nSolidType", 6);
  SetEntityModel(index, "models/items/healthkit.mdl")
  DispatchKeyValueVector(index, "origin", Pos);      
  DispatchKeyValue(index, "solid", "0");  
  HookSingleEntityOutput(index, "OnBreak", EntityOutput:OnBreak_Func, true);  
  DispatchSpawn(index);
}
GetLookPos(client, Float:Pos[3])
{
  decl Float:EyePosition[3], Float:EyeAngles[3], Handle:h_trace;
  GetClientEyePosition(client, EyePosition);
  GetClientEyeAngles(client, EyeAngles);
  h_trace = TR_TraceRayFilterEx(EyePosition, EyeAngles, MASK_SOLID, RayType_Infinite, GetLookPos_Filter, client);
  TR_GetEndPosition(Pos, h_trace);
  CloseHandle(h_trace);
}
public bool:GetLookPos_Filter(ent, mask, any:i)
{
       return i != ent;
}

public OnBreak_Func(const String:output[], caller, activator, Float:delay)
{
     if (activator > 0 && a <= MaxClients && GetClientTeam(a) == 3)
     {
   if(IsClientInGame(a) && IsPlayerAlive(a) && GetClientHealth(a) < 100)
   {  
    PrintToChatAll("\x04[Jail] Игрок \x05%N \x04вылечен", a);
    SetEntProp(a, Prop_Send, "m_iHealth", 100);
   }
   else if (IsClientInGame(a) && IsPlayerAlive(a) && GetClientHealth(a) >= 100)
   {    
    PrintToChatAll("\x04[Jail] Игрок \x05%N \x04взял аптечку будучи здоров", a);
   }
     }
}
 
_wS_ Дата: Суббота, 22.03.2014, 14:42:48 | Сообщение # 2
spawnflags

16 : Break on Touch
32 : Break on Pressure
 
DEMO-Stalker Дата: Воскресенье, 23.03.2014, 16:22:00 | Сообщение # 3
Сообщений: 49
Репутация: 0 [ +/- ]
_wS_, не помогло :C

Добавлено (23.03.2014, 16:22:00)
---------------------------------------------
Тема пока еще актуальна



Сообщение отредактировал DEMO-Stalker - Суббота, 22.03.2014, 19:14:49
 
ThRunningMan Дата: Воскресенье, 23.03.2014, 16:42:59 | Сообщение # 4
Сообщений: 140
Репутация: 12 [ +/- ]
ты сначала задаешь твердость 6, а потом 0

Код
SetEntProp(index, Prop_Send, "m_nSolidType", 6);
DispatchKeyValue(index, "solid", "0");


это одинаковый код и причем взаимоисключающий, просто в первом случае через оффсет, а во втором случае через ключ к этому оффсету, а делают они одно и тоже
если ты поставил 0 это значит что объект не имеет твердости, а если 6 то это считается физическим объектом

у ws есть тема по объектам
http://world-source.ru/forum/100-2291-1


Сообщение отредактировал ThRunningMan - Воскресенье, 23.03.2014, 16:46:32
 
DEMO-Stalker Дата: Понедельник, 24.03.2014, 12:04:51 | Сообщение # 5
Сообщений: 49
Репутация: 0 [ +/- ]
ThRunningMan, У меня аптечка без твердости, я по очереди ставил эти строки со значением 6, но плотности так и не было (1 из строк в то время была не активна, чтобы не было конфликта)
 
  • Страница 1 из 1
  • 1
Поиск: