HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Помогите исправить ошибку с прицелом
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Luciferchik
Whatever...

Дата регистрации: Jan 2016
Проживает: в гостях
Сообщений: 167
Возраст: 27

Рейтинг



Wink Помогите исправить ошибку с прицелом

Корочь делал прицел по этому тутору О разбросе оружия, отдаче и динамическом прицеле вылазит такая ошибка при компиле

code:
Creating library Release/client.lib and object Release/client.exp mp5.obj : error LNK2001: unresolved external symbol "public: void __thiscall CBasePlayer::UpdateClientSideSpread(int,float)" (?UpdateClientSideSpread@CBasePlayer@@QAEXHM@Z) C:\Documents and Settings\Administrator\Рабочий стол\Half-Life\valve\cl_dlls\client.dll : fatal error LNK1120: 1 unresolved externals
делал на спирите во норм было делаю на хл такая вот штука получается

__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.

Отредактировано Luciferchik 08-04-2016 в 22:41

Сообщить модератору | | IP: Записан
Сообщение: 154486

Старое сообщение 08-04-2016 22:33
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Про клиентские оружия слышал? В спирите их нет, поэтому у тебя там норм было. А в халфе нужно некоторые функции оружий дублировать на клиенте в файле hl_weapons.cpp, а на некоторые ставить заглушки в файле hl_baseentity.cpp. Вот у меня есть такой старый код:

weapons.cpp

C++ Source Code:
1
float CBasePlayerWeapon::GetSpread(void)
2
{
3
  float m_flValue = 0.0;
4
  float m_flPlayerSpeed = m_pPlayer->pev->velocity.Length2D();
5
 
6
  if (FBitSet(m_pPlayer->pev->flags, FL_DUCKING))
7
    m_flValue = m_flSpread / 2;
8
  else
9
  {
10
    //		if (m_flPlayerSpeed > PLAYER_SPEED_RUN)
11
    //			m_flValue = m_flPlayerSpeed / (m_flSpread * (m_flDivider * m_flPlayerSpeed));
12
    //		else
13
    m_flValue = (m_flPlayerSpeed / m_flDivider) * m_flSpread;
14
 
15
    if (m_flValue < m_flSpread)
16
      m_flValue = m_flSpread;
17
  }
18
 
19
  //	ALERT(at_console, "Spread: %f\n", m_flValue);
20
 
21
  if (!FBitSet(m_pPlayer->pev->flags, FL_ONGROUND))
22
    m_flValue *= 1.5;
23
 
24
  return m_flValue;
25
}


hl_weapons.cpp
C++ Source Code:
1
float CBasePlayerWeapon::GetSpread(void)
2
{
3
  float m_flValue = 0.0;
4
  float m_flPlayerSpeed = m_pPlayer->pev->velocity.Length2D();
5
 
6
  m_flValue = (m_flPlayerSpeed / m_flDivider) * m_flSpread;
7
 
8
  if (m_flValue < m_flSpread)
9
    m_flValue = m_flSpread;
10
 
11
  if (FBitSet(m_pPlayer->pev->flags, FL_DUCKING))
12
    m_flValue /= 2;
13
 
14
  if (!FBitSet(m_pPlayer->pev->flags, FL_ONGROUND))
15
    m_flValue *= 2;
16
 
17
  return m_flValue;
18
}

В этом примере функции одинаковые. Зачем дублировать серверную на клиенте? Чтобы у локального игрока (когда он не хост, а клиент) разброс (а соответственно размер прицела) менялся плавно, а не рывками при любом пинге.

Добавлено 09-04-2016 в 13:10:

Luciferchik либо ставь заглушку на UpdateClientSideSpread в hl_baseentity.cpp, либо в коде оружия оборачивай её вызов в #ifndef CLIENT_DLL. Из этой функции отправляется мессага на клиент, поэтому в клиентском коде она не нужна. А вообще тутор - жэсть. Особенно для мультиплеера.

Сообщить модератору | | IP: Записан
Сообщение: 154488

Старое сообщение 09-04-2016 07:10
- За что?
Luciferchik
Whatever...

Дата регистрации: Jan 2016
Проживает: в гостях
Сообщений: 167
Возраст: 27

Рейтинг



Во,спасибо,так и знал что вина всему клиенсткие пушки тож думал применить #ifndef CLIENT_DLL,но чет не заюзал вот и решил спросить совета, а можешь дать ссыль на тутор где можно клиет.пушки вырезать, а то з Xash weapon system чет не получается

__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.

Сообщить модератору | | IP: Записан
Сообщение: 154490

Старое сообщение 09-04-2016 07:46
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Luciferchik писал:
а то з Xash weapon system чет не получается

Это единственный тутор. Там не сложно. Сравнивай со спиритом по ходу работы с тутором, чтоб получилось нормально.

Сообщить модератору | | IP: Записан
Сообщение: 154491

Старое сообщение 09-04-2016 07:59
- За что?
Luciferchik
Whatever...

Дата регистрации: Jan 2016
Проживает: в гостях
Сообщений: 167
Возраст: 27

Рейтинг



Цитата:
Ku2zoff писал:
Это единственный тутор. Там не сложно. Сравнивай со спиритом по ходу работы с тутором, чтоб получилось нормально.

Ладный будем чаво то мудрить может и выйдет

__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.

Сообщить модератору | | IP: Записан
Сообщение: 154492

Старое сообщение 09-04-2016 08:05
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 12:53. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Помогите исправить ошибку с прицелом
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024