XaeroX писал: Лучше напиши тутор по инфракрасному зрению
А вот эта фигня мне никогда не нравилась, и нигде я её юзать не хочу. Хотя, кажется, есть идея, где применить. Если сильно захочется, попробую. Пока что в приоритете зажигалка.
Добавлено 24-03-2015 в 15:10:
***FantoM*** с прицелом есть два варианта решения. Одно сложное, другое простое. Сложное, это где надо новые анимации оружию делать и смену этих анимаций учитывать. Как в паранойе. А простое - как в файр армс, менять вьюмодель на модель прицела. Это можно в коде сатчела подглядеть.
***FantoM*** писал: а ну ка давай второй способ подробнее
Цитата:
Ku2zoff писал: Это можно в коде сатчела подглядеть.
Посмотри, как там меняются вьюмодели с взрывпакета на пульт и обратно. Вот и сделай у себя так же, меняй пушку на прицел и обратно. При смене можно сделать скринфейд на полсекунды, чтобы не было заметно. И модели прицелов можешь из FireArms стащить. Или сам намоделить. У тебя ситуация проще, чем с сатчелом, никаких дополнительных переменных не надо заводить.
***FantoM*** задержки перед выстрелом не слишком большие при переключении? При убирании оружия прицел выключается? Видео залей, мне интересно. Был бы дома, скомпилил бы сам и проверил.
***FantoM*** писал: вызывать серверные функций с клиента
Правильно - никак. Но можно отправлять с клиента команду на сервер, типа:
C++ Source Code:
gEngfuncs.pfnClientCmd( "mycommand\n" );
или
gEngfuncs.pfnServerCmd( "mycommand\n" );
Клиентская и серверная соответственно. Не знаю, в чём разница, не проверял.
Ну а на сервере эту команду обрабатывать в client.cpp, в функции ClientCommand, типа:
C++ Source Code:
elseif ( FStrEq( pcmd, "mycommand" ) )
{
ClientPrint( pev, HUD_PRINTCONSOLE, "Received a client command.\n" );
}
А вообще, все манипуляции с логикой надо делать на сервере. А на клиенте делать только то, что не должно влиять на сервер.
Что тебе надо сделать? Может быть можно и без извращений обойтись?
Тут не надо ничего серверного вызывать с клиента. Наоборот надо сделать отправку мессаги или эвента на клиент при разбивании брейкабли, при условии, что материал == matGlass. При создании карты указывать в качестве модели гибсов такой брейкабле невидимую модель, например null.mdl. Ну а сам эффект кодить на клиенте. При написании клиентской части я бы ориентировался на код "разбрызгивания" искр гаусса, там как раз спрайты-темпэнтити заюзаны. А вообще, стоит покопаться в структуре pEfxAPI, там много полезных эффектов есть, которые в халфе не заюзаны, или заюзаны не на 100%.