HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (264): « Первая ... « 21 22 23 24 [25] 26 27 28 29 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


XaeroX по кол-ву багов интел никто ещё не обошёл. FDIV - только ОДИН баг. Из тыщ мильонов.

Кажись, у фантома каникулы Или творческий кризис. Или наоборот - стало всё понятно

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

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

Старое сообщение 22-05-2015 10:39
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35043
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


~ X ~
Ну понятное дело, у AMD багов нет.

__________________

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

Старое сообщение 22-05-2015 10:49
-
***FantoM***
Житель форума

Дата регистрации: Nov 2014
Проживает: Да
Сообщений: 392

Рейтинг



нужна помощь
не могу создать первичную атаку в medkit как в sven coop
что делать ?

Вложение: medkit.cpp.rar (0.9 кб)
Этот файл был скачан 128 раз.

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

Старое сообщение 22-05-2015 14:27
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



***FantoM*** я тебе сейчас дам кусочек кода от инженерного ключа, который добавляет броню союзникам и бьёт врагов.

C++ Source Code:
1
float CWPNSpanner::Attack(BOOL bSecondary)
2
{
3
  TraceResult tr;
4
 
5
  UTIL_MakeVectors(m_pPlayer->pev->v_angle);
6
  Vector vecSrc = m_pPlayer->GetGunPosition();
7
  Vector vecEnd = vecSrc + gpGlobals->v_forward * SPANNER_DISTANCE;
8
 
9
  UTIL_TraceLine(vecSrc, vecEnd, dont_ignore_monsters, ENT(m_pPlayer->pev), &tr);
10
 
11
#ifndef CLIENT_DLL
12
  if (tr.flFraction >= 1.0)
13
  {
14
    UTIL_TraceHull(vecSrc, vecEnd, dont_ignore_monsters, head_hull, ENT(m_pPlayer->pev), &tr);
15
    if (tr.flFraction < 1.0)
16
    {
17
      CBaseEntity *pHit = CBaseEntity::Instance(tr.pHit);
18
 
19
      if (!pHit || pHit->IsBSPModel())
20
        FindHullIntersection(vecSrc, tr, VEC_DUCK_HULL_MIN, VEC_DUCK_HULL_MAX, m_pPlayer->edict());
21
 
22
      vecEnd = tr.vecEndPos;
23
    }
24
  }
25
#endif
26
 
27
  m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;
28
  m_pPlayer->SetAnimation(PLAYER_ATTACK1);
29
 
30
  // переменные для эвента и времени атаки
31
  int m_iHit;
32
  int m_iHitWorld;
33
  int m_iAllyPlayer = FALSE;
34
  float m_flDelay = 1;
35
 
36
  if (tr.flFraction >= 1.0) // мимо
37
  {
38
    m_iHit = FALSE;
39
    m_iHitWorld = FALSE;
40
    m_flDelay = 0.6;
41
  }
42
  else // удар
43
  {
44
    m_iHit = TRUE;
45
    m_iHitWorld = TRUE;
46
 
47
#ifndef CLIENT_DLL
48
    CBaseEntity *pEntity = CBaseEntity::Instance(tr.pHit);
49
 
50
    if (bSecondary)
51
    {
52
      CBasePlayer *pPlayer = (CBasePlayer *)pEntity;
53
 
54
      if (pPlayer && (pPlayer->pev->team == m_pPlayer->pev->team))
55
        m_iAllyPlayer = TRUE;
56
    }
57
 
58
    if (m_iAllyPlayer)
59
    {
60
      CBasePlayer *pPlayer = (CBasePlayer *)pEntity;
61
 
62
      pPlayer->i_ArmorHelmet += SPANNER_ARMOR_ADD;
63
      pPlayer->i_ArmorVest += SPANNER_ARMOR_ADD;
64
      pPlayer->i_ArmorScutes += SPANNER_ARMOR_ADD;
65
 
66
      if (pPlayer->i_ArmorHelmet > 100)
67
        pPlayer->i_ArmorHelmet = 100;
68
      if (pPlayer->i_ArmorVest > 100)
69
        pPlayer->i_ArmorVest = 100;
70
      if (pPlayer->i_ArmorScutes > 100)
71
        pPlayer->i_ArmorScutes = 100;
72
 
73
      if (pPlayer->i_ArmorHelmet == 100 &&
74
      pPlayer->i_ArmorVest == 100 &&
75
      pPlayer->i_ArmorScutes == 100)
76
      m_iHit = FALSE;
77
    }
78
    else
79
    {
80
      // нам не нужно кускование с одного удара по башке
81
      int bitsDamage;
82
 
83
      if (pEntity->IsAlive())
84
        bitsDamage = DMG_CLUB | DMG_NEVERGIB;
85
      else
86
        bitsDamage = DMG_CLUB;
87
 
88
      ClearMultiDamage();
89
      pEntity->TraceAttack(m_pPlayer->pev, SPANNER_DMG, gpGlobals->v_forward, &tr, bitsDamage);
90
      ApplyMultiDamage(m_pPlayer->pev, m_pPlayer->pev);
91
    }
92
 
93
    if (pEntity)
94
    {
95
      if (pEntity->Classify() != CLASS_NONE && pEntity->Classify() != CLASS_MACHINE)
96
        m_iHitWorld = FALSE;
97
    }
98
#endif
99
    m_flDelay = 0.4;
100
  }
101
 
102
  PLAYBACK_EVENT_FULL(0, m_pPlayer->edict(), m_usSpannerAttack, 0.0, (float *)&g_vecZero, (float *)&g_vecZero,
103
  0.0, 0.0, 0, m_iAllyPlayer, m_iHit, m_iHitWorld);
104
 
105
  if (m_iHit && m_iHitWorld)
106
    UTIL_DecalTrace(&tr, DECAL_GUNSHOT1 + RANDOM_LONG(0, 4));
107
 
108
  m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + m_flDelay + 0.5;
109
 
110
  return m_flDelay;
111
}

Маленькое пояснение: первичная атака всегда наносит урон, даже союзникам, когда mp_friendlyfire 1. Вторичная бьёт только врагов, а союзникам добавляет броню. Самое главное, что ты тут можешь посмотреть, это как определить врага/союзника, и как этим оперировать. Код старый, тебе стоило бы заменить
C++ Source Code:
if (pPlayer && (pPlayer->pev->team == m_pPlayer->pev->team))

на
C++ Source Code:
if (g_pGameRules->PlayerRelationship((CBaseEntity *)m_pPlayer, pEntity) == GR_TEAMMATE)

Остальное тебе надо додумать самому. Я в свен не играл, и не уверен, работает там аптечка так же как в TFC или нет. Но код вот этой атаки в режиме вторичной совпадает с логикой из TFC: своих лечим - врагов калечим.

Отредактировано Ku2zoff 22-05-2015 в 15:47

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

Старое сообщение 22-05-2015 15:42
- За что?
***FantoM***
Житель форума

Дата регистрации: Nov 2014
Проживает: Да
Сообщений: 392

Рейтинг



Ku2zoff
вот видео из свен купа https://www.youtube.com/watch?v=o8jRc7WbT8s

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

Старое сообщение 23-05-2015 05:31
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Ну так бы сразу и написал, что оживление нужно. Сложновато, но реализуемо. Придётся писать новые таски и скедьюлы для монстров. (Task и Schedule). Дерзай. schedule.cpp и monsters.cpp, там расположен этот код.

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

Старое сообщение 23-05-2015 08:28
- За что?
***FantoM***
Житель форума

Дата регистрации: Nov 2014
Проживает: Да
Сообщений: 392

Рейтинг



понятно

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

Старое сообщение 23-05-2015 08:40
- За что?
SteamPlay43
Житель форума

Группа: Неопытный
Дата регистрации: May 2012
Проживает: Барнаул
Сообщений: 273
Возраст: 27

Рейтинг



Ku2zoff А нельзя просто проверку на смерть сделать? Мне кажется, это тогда просто подбавит трупам здоровья и все)

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

Старое сообщение 24-05-2015 07:02
- За что?
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



И как вы собираетесь трупы оживлять? С помощью аптечки?! Не смешите!
Я уж молчу про то, что с фрагом делать? Отнимать при оживлении, да?!

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

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

Старое сообщение 24-05-2015 20:18
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Цитата:
SteamPlay43 писал:
А нельзя просто проверку на смерть сделать? Мне кажется, это тогда просто подбавит трупам здоровья и все)

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

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

Старое сообщение 24-05-2015 20:40
- За что?
Superuser8
Частый гость

Дата регистрации: Mar 2015
Проживает: Тюмень
Сообщений: 84
Возраст: 29

Рейтинг



Ku2zoff хотелось бы взглянуть на такую систему ( для игрока такое ещё бы было )

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

Старое сообщение 24-05-2015 21:33
- За что?
Vadiman
Клавиатурщик

Дата регистрации: Jun 2013
Проживает: Замок Димитреску
Сообщений: 81

Рейтинг



Ребят, раз тут нубские вопросы проскакивали, я бы хотел спросить: можно ли сделать так, что пока игрок держит оружие, на него не действовал определенный дамаг от trigger_hurt (dmg_nervegas, например) ?

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

Старое сообщение 25-05-2015 18:12
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Vadiman конечно. В функции триггера CBaseTrigger::HurtTouch делаешь проверку типа:

C++ Source Code:
1
if (pOther->isPlayer())
2
{
3
  CBasePlayer *pPlayer = (CBasePlayer*)pOther;
4
  if ((pPlayer->m_pActiveItem->m_iId == WEAPON_MP5) && (m_bitsDamageInflict & DMG_NERVEGAS))
5
  {
6
    твоё условие
7
  }
8
}

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

Старое сообщение 25-05-2015 20:23
- За что?
Vadiman
Клавиатурщик

Дата регистрации: Jun 2013
Проживает: Замок Димитреску
Сообщений: 81

Рейтинг



Ku2zoff спасибо большое
Сделал противогаз на основе оружия (либо он, либо ствол), потому как не смог разобраться как оно в параное работает.

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

Старое сообщение 25-05-2015 21:50
- За что?
***FantoM***
Житель форума

Дата регистрации: Nov 2014
Проживает: Да
Сообщений: 392

Рейтинг



нужна помощь
меня заинтересовал VGUI
у меня вопрос
как закруглить вгуи

[ Вложение ]
Безымянный.png

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

Старое сообщение 26-05-2015 10:37
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 20:33. Новая тема    Ответить
Страницы (264): « Первая ... « 21 22 23 24 [25] 26 27 28 29 » ... Последняя »   Предыдущая тема   Следующая тема
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