Народ подскажите, как мне получить координаты атачмента у оружия (например, Glock) в данный момент времени. Я не понимаю, как получить доступ к нужной мне модели - v_9mmhandgun.md. Пробовал функциеей GetAttachment(int, Vector, Vector) из CGlock, но я так понял что моделью CGlock является w_9mmhandgun.mdl, которая не имеет атачмента, что приводит к вылетанию из игры. Через m_pPlayer тоже ничего не выходит. Как быть?
Если ты хочешь прицепить к модели лучи, это нужно делать именно на клиенте. Или скажем, mullzeflash - смотри ф-ю HUD_StudioEvent в entity.cpp на клиенте.
Спасибо! Теперь понял. А не знаешь где можно найти хоть какое-нибудь описание SDK (Иерархия классов, назначение функций, переменных), а то прилагаемые комментарии бывают достаточно скудными? И еще мне интересно, по каким правилам они именуют переменные.
Fox писал: А не знаешь где можно найти хоть какое-нибудь описание SDK (Иерархия классов, назначение функций, переменных), а то прилагаемые комментарии бывают достаточно скудными?
Вообще такого вроде нет, по крайней мере я не встречал. Так из названия и описания классов вроде понятна их иерархия. И в cbase.h есть неплохой комментарий.
Цитата:
Fox писал: И еще мне интересно, по каким правилам они именуют переменные
В каком смысле? Как таковых правил нет, как хочешь, так и именуй.
Правил конечно нет, но есть же соглашение об именах, определенные стили кодирования.
Ну типа: имена переменных типа int начинаются с "i", Переменных-членов класса с префикса "m_", глобальных переменных - с префикса "g_", ... ну и так далее.
Называть переменные, конечно, можно как угодно, но лучше все-таки придерживаться этих простых правил (имхо).
Government-Man вот именно - стили. У каждого программиста свой стиль (хотя он меняется со временем)
Мой например таков - локальные переменные как можно короче (s, x, y), приватные члены классов - начинать с "_", публичных и глобальных переменных стараться избегать.
ЗЫ. В СДК переменные именуются согласно "венгерской нотации". Перед указателем ставится префикс m_p или p.
Перед интегром - m_i или i. Перед флоатом m_f или f.
Глобальные переменные обзначаются как gp.
Вообщем-то все просто и логично, однако у этого метода есть свои противники.
А эффекты надо создавать через евенты, посмотри как лучи егона делаются на клиенте. Хотя зависит от того, что за эффект ты делаешь. Скажи - подумаем как лучше.
На самом деле я не то что бы делаю эффекты, я просто изучаю SDK, но в данный момент я делаю луч лазерного прицела. С сервером было попроще я сделал пятно прицела и вернул глоку возможность загнать в ствол 18 патрон. Так как особых идей пока нет, буду добивать луч.
return [COLOR=deeppink]viewmodel->attachment[0];[/COLOR] //Иначе не компилируется.
5
}
Пробовал:
C++ Source Code:
1
vec3_t GetWeaponAttachment()
2
{
3
//...
4
return viewmodel->model->submodels->origin; //Также пробовал делать, но здесь, видимо, я совсем что-то не то намудрил. <img src="images/smilies/biggrin.gif" border="0" alt="">
Проблема в том, что гильзы выпадают с того МЕСТА, с которого я включаю thirdperson (вид от третьего лица) в моде HLWE (думаю, это не существенно).
Также, есть p_ модель с двумя аттачментами (перекомпилированная).
Т.е. вместо координат, в которые входит "ориджин, вперёд и т.д.", у меня стоит вектор аттачмента. Но, тем не менее, координата "замораживается".