Ku2zoff, а зачем флаги? Оружие и так прекрасно подбирается, мне просто надо сделать, чтобы на экране появлялся спрайт оружия которое игрок возьмет, если нажмет на USE. Основной код при этом находиться в CBasePlayerWeapon::AddToPlayer. Т.к. благодаря новым проверкам, игрок не может взять оружие, пока не нажмет на USE.
Вот сфера в 512 "чвототам", вот только я не знаю как сделать проверку не на все название класса, а только на его начало, т.е. сделать такую проверку...
code:
if (FClassnameIs(pEntity->pev, "weapon_mp5")
...я могу, а как проверить только на наличие в названии класса слова "weapon_"? Что то мне подсказывает, что если я напишу FClassnameIs(pEntity->pev, "weapon_"), то работать не будет.
>>Что то мне подсказывает, что если я напишу FClassnameIs(pEntity->pev, "weapon_"), то работать не будет.
[)r0n UTIL_FindEntityInSphere работает в определённом радиусе, игрок будет задом к оружию стоять, к тому же оружие будет за стенкой/ящиком/дверью/ещёчемто, а в ХУДе спрайт загорится. Нехорошо. Лучше сделать трейс по взгляду игрока. Ещё можно "подсветить" модель оружия, на которую направлен прицел или сделать "скобки" как в Деус Эксе, но второе сложнее.
А по поводу проверки на оружие как класс энтить вообще, придётся задать всем оружиям какую-нибудь переменную (её придётся объявить в классе CBaseEntity и по умолчанию сделать нулевой или FALSE, а для оружия единичкой или TRUE) и проверять её типа вот так:
Ku2zoff писал: Лучше сделать трейс по взгляду игрока.
угу и сидеть часами целится, чтобы трейс и оружие совпали.
Нахрен там трейс не нужен, лучше сделать проверку на FViewInCone, по типу trigger_onsight фспирите.
ты бы ему еще "рембытспецстройхимтресттехмонтаж" вбил, чтобы уж наверняка. Открывай combat.cpp на строчке 1170 и ога.
Правда его придется слегка переделать, поскольку он находится в классе монстров.
Я вот что подумал: а нельзя ли сделать все это посылом сообщения клиенту от оружия через Touch оружия? К оружию прикасается игрок - оружие посылает сообщение игроку для включения элемента HUD с информацией о самом себе. Касание прекращается/игрок умирает - элемент HUD отключается.