HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (260): « Первая ... « 231 232 233 234 [235] 236 237 238 239 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
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: Записан
Сообщение: 210669

Старое сообщение 11-08-2022 19:24
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 250
Возраст: 17

Рейтинг



Мне Ku2zoff подсказал что можно под глянуть ограничение пушек в кс 1.6, я ограничение сделал, но как теперь сделать так что бы при юзе пушки которая лежит на полу она попадала в инвентарь, а та что занимала этот же слот легла на её же место

__________________
И главное, Артём, помни: не ешь желтый снег!

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

Старое сообщение 12-08-2022 07:03
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



hgrunt_2020 у тебя команда Drop работает? Ну то есть, если выкинуть пушку, то подбирается другая? Поищи в player.cpp вот этот комментарий:

C++ Source Code:
// if we land here with a valid pWeapon pointer, that's because we found the
  // item we want to drop and hit a BREAK;  pWeapon is the item.

Там код выкидывания веапонбокса. Убери return для сингла, чтобы можно было выбрасывать пушки в одиночной игре. После вызова pWeaponBox->PackWeapon( pWeapon ); назначай веапонбоксу модель оружия, которое выкидывается, например так:
C++ Source Code:
1
switch (pWeapon->m_iId)
2
{
3
case WEAPON_CROWBAR:
4
    SET_MODEL(ENT(pWeaponBox->pev), "models/w_crowbar.mdl");
5
  break;
6
}

Ниже код выкидывания патронов. Тут думай сам как лучше, я бы его закомментил, и оставлял весь боезапас игроку.

Как только это наладишь, чтобы пушки нормально заменялись при выбрасывании, убери функцию Touch у пушек и сделай им Use. В юзе делай проверку на наличие у игрока пушки такого же класса, и если она есть, вызывай DropPlayerItem с аргументом, где будет название выкидываемой пушки:
C++ Source Code:
pPlayer->DropPlayerItem("weapon_crowbar");

Чтобы случайно не менять пушки, ставь им флаг FCAP_CONTINUOUS_USE и считай время в функции юза. Если игрок жмёт кнопку например секунду, пушка сменяется. Когда дублирующей пушки нет, то можно время не считать, и подбирать пушку сразу.
Наверное, напишу себе такой код, потому что планирую делать глок и беретту, дигл и питон. Может быть ещё что-то. Чтобы не забивать слоты, а заставить игрока делать выбор. Например, глок с глушителем для стелс-прохождения.

Отредактировано Ku2zoff 12-08-2022 в 08:31

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

Старое сообщение 12-08-2022 08:29
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 250
Возраст: 17

Рейтинг



Ku2zoff она работает но криво, некоторые пушки не подбирает а подбирает только их патроны

__________________
И главное, Артём, помни: не ешь желтый снег!

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

Старое сообщение 12-08-2022 09:43
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



У меня работает. Хоть и жуткий говнокод, написанный на коленке.

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

Старое сообщение 12-08-2022 10:09
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 250
Возраст: 17

Рейтинг



Ku2zoff вот дроп что у мен

C++ Source Code:
1
void CBasePlayer::DropPlayerItem ( char *pszItemName )
2
{
3
  if ( !strlen( pszItemName ) )
4
  {
5
    // if this string has no length, the client didn't type a name!
6
      // assume player wants to drop the active item.
7
    // make the string null to make future operations in this function easier
8
    pszItemName = NULL;
9
  }
10
 
11
  CBasePlayerItem *pWeapon;
12
  int i;
13
 
14
  for ( i = 0 ; i < MAX_ITEM_TYPES ; i++ )
15
  {
16
    pWeapon = m_rgpPlayerItems[ i ];
17
 
18
    while ( pWeapon )
19
    {
20
      if ( pszItemName )
21
      {
22
        // try to match by name.
23
        if ( !strcmp( pszItemName, STRING( pWeapon->pev->classname ) ) )
24
        {
25
          // match!
26
          break;
27
        }
28
      }
29
      else
30
      {
31
        // trying to drop active item
32
        if ( pWeapon == m_pActiveItem )
33
        {
34
          // active item!
35
          break;
36
        }
37
      }
38
 
39
      pWeapon = pWeapon->m_pNext;
40
    }
41
 
42
 
43
    // if we land here with a valid pWeapon pointer, that's because we found the
44
      // item we want to drop and hit a BREAK;  pWeapon is the item.
45
    if ( pWeapon )
46
    {
47
      g_pGameRules->GetNextBestWeapon( this, pWeapon );
48
      if (pWeapon->iSlot() <= 2)
49
        Slots[pWeapon->iSlot()] = false;
50
 
51
      UTIL_MakeVectors ( pev->angles );
52
 
53
      pev->weapons &= ~(1 << pWeapon->m_iId);// take item off hud
54
 
55
      CWeaponBox *pWeaponBox = (CWeaponBox *)CBaseEntity::Create( "weaponbox", pev->origin + gpGlobals->v_forward * 10, pev->angles, edict() );
56
      pWeaponBox->pev->angles.x = 0;
57
      pWeaponBox->pev->angles.z = 0;
58
      pWeaponBox-&gt<img src="images/smilies/pp2.gif" border="0" alt="">ackWeapon( pWeapon );
59
      pWeaponBox->pev->velocity = gpGlobals->v_forward * 300 + gpGlobals->v_forward * 100;
60
 
61
      // drop half of the ammo for this weapon.
62
      int	iAmmoIndex;
63
 
64
      iAmmoIndex = GetAmmoIndex ( pWeapon->pszAmmo1() ); // ???
65
 
66
      if ( iAmmoIndex != -1 )
67
      {
68
        // this weapon weapon uses ammo, so pack an appropriate amount.
69
        if ( pWeapon->iFlags() & ITEM_FLAG_EXHAUSTIBLE )
70
        {
71
          // pack up all the ammo, this weapon is its own ammo type
72
          pWeaponBox-&gt<img src="images/smilies/pp2.gif" border="0" alt="">ackAmmo( MAKE_STRING(pWeapon->pszAmmo1()), m_rgAmmo[ iAmmoIndex ] );
73
          m_rgAmmo[ iAmmoIndex ] = 0;
74
 
75
        }
76
        else
77
        {
78
          // pack half of the ammo
79
          pWeaponBox-&gt<img src="images/smilies/pp2.gif" border="0" alt="">ackAmmo( MAKE_STRING(pWeapon->pszAmmo1()), m_rgAmmo[ iAmmoIndex ] / 2 );
80
          m_rgAmmo[ iAmmoIndex ] /= 2;
81
        }
82
 
83
      }
84
 
85
      return;// we're done, so stop searching with the FOR loop.
86
    }
87
  }
88
}


Добавлено 12-08-2022 в 14:05:

Ku2zoff а не, эт мой косяк, в AddPlayerItem у меня
C++ Source Code:
if (pItem->iSlot() > 1 && pItem->iSlot() <= 4)

а в DropPlayerItem
C++ Source Code:
if (pWeapon->iSlot() <= 2)

оно не обнуляется, вот и не берётся новая пушка

Добавлено 12-08-2022 в 14:19:

Ku2zoff странно, то он нормально подбирает то черти что
https://youtu.be/lYGF6EmvLbA

__________________
И главное, Артём, помни: не ешь желтый снег!

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

Старое сообщение 12-08-2022 11:19
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Цитата:
hgrunt_2020 писал:
то он нормально подбирает то черти что

Оружие положенное на карту маппером != оружие, выброшенное игроком. Игрок выбрасывает веапонбоксы, в которых внутри содержатся пушки. Соответственно, нужно либо делать проверку для массива внутри веапонбокса, либо выбрасывать энтити пушек, а не веапонбоксы.

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

Старое сообщение 12-08-2022 11:55
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 250
Возраст: 17

Рейтинг



Ku2zoff а что по поводу того что не отображаются иконки вентиля и сайги?

__________________
И главное, Артём, помни: не ешь желтый снег!

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

Старое сообщение 12-08-2022 12:48
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 250
Возраст: 17

Рейтинг



Ku2zoff Я наконец то починил ограничение и дроп)
https://youtu.be/3wHnsDy9W-g

__________________
И главное, Артём, помни: не ешь желтый снег!

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

Старое сообщение 13-08-2022 13:43
- За что?
Luciferchik
Whatever...

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

Рейтинг



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

__________________
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: Записан
Сообщение: 210683

Старое сообщение 13-08-2022 21:23
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 250
Возраст: 17

Рейтинг



Luciferchik перемещать их относительно screenheight и screenwidth, глянь расположение спрайтов в хл 1, именно их x и y в коде

__________________
И главное, Артём, помни: не ешь желтый снег!

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

Старое сообщение 13-08-2022 23:14
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Цитата:
Luciferchik писал:
чтобы при смене расширения они оставались на задуманном месте?

XRES(число) и YRES(число), вроде бы.

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

Старое сообщение 14-08-2022 01:33
- За что?
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 250
Возраст: 17

Рейтинг



Почему не на весь экран?

Почему текстура не отрисовывается на весь экран, при чем не важно спрайт это или тга(скрин https://yapx.ru/v/TUrMT ), вот код отрисовки

C++ Source Code:
1
void DrawNV()
2
{
3
  if (g_iNvg == 0) return;
4
  if (ScopeTex < 0)
5
    ScopeTex = glLoadTgaFromPak("/gfx/ui_nv.tga");
6
  glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
7
  glBindTexture(GL_TEXTURE_2D, ScopeTex);
8
  glEnable(GL_BLEND);
9
  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
10
  glBegin(GL_QUADS);
11
  //top left
12
  glTexCoord2f(0.0f, 1.0f);
13
  glVertex3f(0, 0, 0);
14
 
15
  //bottom left
16
  glTexCoord2f(0.0f, 0.0f);
17
  glVertex3f(0, ScreenHeight, 0);
18
 
19
  //bottom right
20
  glTexCoord2f(1.0f, 0.0f);
21
  glVertex3f(ScreenWidth, ScreenHeight, 0);
22
 
23
  //top right
24
  glTexCoord2f(1.0f, 1.0f);
25
  glVertex3f(ScreenWidth, 0, 0);
26
 
27
 
28
  glEnd();
29
}


Добавлено 14-08-2022 в 08:25:

починил методом подбора, ScreenWidth и ScreenHeight умножил на 1.5525 и встало на свои места

__________________
И главное, Артём, помни: не ешь желтый снег!

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

Старое сообщение 14-08-2022 05:25
- За что?
Luciferchik
Whatever...

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

Рейтинг



Цитата:
hgrunt_2020 писал:
Luciferchik перемещать их относительно screenheight и screenwidth, глянь расположение спрайтов в хл 1, именно их x и y в коде

благодарю, как раз по screenheight и screenwidth получилось что надо

__________________
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: Записан
Сообщение: 210687

Старое сообщение 14-08-2022 10:06
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



А вы как определяете где говнокод, а где нет?
Вот как раз таинственный множитель на 1.5525 это и есть говнокод.
Как вы это число получили? Ни деление 16/9 ни 16/10 его не даёт.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

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

Старое сообщение 15-08-2022 16:44
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 19:15. Новая тема    Ответить
Страницы (260): « Первая ... « 231 232 233 234 [235] 236 237 238 239 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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