Четверг, 17.08.2017, 22:26
 
Приветствую Вас Guest | RSS
Главная страница | Ironsights - Форум | Регистрация | Вход
[Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Игровая мастерская » Программирование » Ironsights
Ironsights
ResidentEvilДата: Вторник, 07.12.2010, 23:20 | Сообщение # 1
Newbie
Группа: Пользователи
Сообщений: 9
Репутация: 0
Статус: Offline
Настроил Ironsights по тутору: http://developer.valvesoftware.com/wiki/Ironsights
Всё работает, но после смены уровня оружие улетает из экрана.
Ну и ладно, всё равно он не функциональный.

Начал делать по тутору http://developer.valvesoftware.com/wiki/Adding_Ironsights
И там сначала вылезли ошибки, я их пофиксил, но игра стала вылетать при запуске.

Кто смог запустить этот код, скиньте 3 сорс файла пожалуйста.
basecombatweapon_shared.cpp
basecombatweapon_shared.h
baseviewmodel_shared.cpp

 
StriderДата: Вторник, 07.12.2010, 23:44 | Сообщение # 2
Spy
Группа: Проверенные
Сообщений: 1465
Репутация: 51
Статус: Offline
Как я уже говорил, хрен. Руками, руками


Ох и сложная эта работа, из болота тащить два вмода...
 
AndreazzzДата: Среда, 08.12.2010, 14:20 | Сообщение # 3
Spy
Группа: Проверенные
Сообщений: 996
Репутация: 55
Статус: Offline
ResidentEvil, какие были ошибки, Сделай откат изменений и отпишись

 
ResidentEvilДата: Среда, 08.12.2010, 22:19 | Сообщение # 4
Newbie
Группа: Пользователи
Сообщений: 9
Репутация: 0
Статус: Offline
..\shared\basecombatweapon_shared.cpp(138) : error C2653: 'C_BasePlayer' : is not a class or namespace name
..\shared\basecombatweapon_shared.cpp(138) : error C3861: 'GetLocalPlayer': identifier not found
..\shared\basecombatweapon_shared.cpp(148) : error C2039: 'ServerCmd' : is not a member of 'IVEngineServer'
c:\Documents and Settings\Home\Рабочий стол\test\mymod\public\eiface.h(79) : see declaration of 'IVEngineServer'

Переписал по тутору. Вылезают эти ошибки.

Добавлено (08.12.2010, 21:43)
---------------------------------------------
Первые две пофиксил. Там тутор кривой.
void CC_ToggleIronSights( void )
{
#if defined( CLIENT_DLL )
CBasePlayer* pPlayer = C_BasePlayer::GetLocalPlayer();
if ( pPlayer == NULL )
return;

CBaseCombatWeapon *pWeapon = pPlayer->GetActiveWeapon();
if( pWeapon == NULL )
return;
pWeapon->ToggleIronsights();
#endif

engine->ServerCmd( "toggle_ironsight" ); //forward to server
}

С ServerCmd проблему не получается нормально решить.

Добавлено (08.12.2010, 22:19)
---------------------------------------------
Все, разобрался. Перетащил servercmd в if

Было отредактированно - ResidentEvil - Среда, 08.12.2010, 22:22
 
AndreazzzДата: Четверг, 09.12.2010, 18:34 | Сообщение # 5
Spy
Группа: Проверенные
Сообщений: 996
Репутация: 55
Статус: Offline
ResidentEvil, нет некривой. C_BasePlayer - клиентский класс. Нужно пихать в конец клиентского c_baseplayer

Мой вариант:

Code
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
void CC_ToggleIronSights( void )
{
C_BasePlayer* pPlayer = C_BasePlayer::GetLocalPlayer();
if ( pPlayer == NULL )
return;

CBaseCombatWeapon *pWeapon = pPlayer->GetActiveWeapon();
if( pWeapon == NULL )
return;

pWeapon->ToggleIronsights();

engine->ServerCmd( "toggle_ironsight" );
}

static ConCommand toggle_ironsight("toggle_ironsight", CC_ToggleIronSights);

Пиши ошибки которые ты фиксил. Тутор притом не битый




Было отредактированно - Andreazzz - Четверг, 09.12.2010, 18:37
 
Форум » Игровая мастерская » Программирование » Ironsights
Страница 1 из 11
Поиск:

Помощь в разработке форума: HOMiE7