HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Как запретить годмод?
Или сделать подставу=)
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Scream
Житель форума

Дата регистрации: Sep 2007
Проживает: Москва
Сообщений: 192
Возраст: 39

Рейтинг



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


Как запретить годмод?

Вобщем хочу давно убрать godmode из мода, а ещё лучше заменить его действие на получение в руки флажка с надписью "Читер!"=)
Но скока не искал, ничего не нашёл...

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

Старое сообщение 08-01-2008 12:42
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Scream ищи флаг FL_GODMODE в combat.cpp
если флаг есть - значит движок врубил godmode

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

Старое сообщение 08-01-2008 13:40
-
Scream
Житель форума

Дата регистрации: Sep 2007
Проживает: Москва
Сообщений: 192
Возраст: 39

Рейтинг



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


Дядя Миша
Ну этот находил, а откуда он произрастает? Всмысле где функция, которая активируется при вводе в консоль god? С impulse разобрался, а вот god не находит поиск(

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

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

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

Рейтинг



Scream просто убери из combat.cpp вот это:

C++ Source Code:
1
// check for godmode or invincibility
2
if ( pev->flags & FL_GODMODE )
3
{
4
  return 0;
5
}


Единственный синглплеерный мод с неработающим годом, который я видел это Invasion - там игра вылетает при вводе года, когда естественно св_читс = 1.
C++ Source Code:
1
// check for godmode or invincibility
2
if ( pev->flags & FL_GODMODE )
3
{
4
  exit(0);
5
}


А насчёт флага это ты смешно придумал. У тебя модель есть? Если нет, я могу сделать в свободное время. А вот как дать этот флаг игроку:

client.cpp, функция ClientCommand:
C++ Source Code:
1
if ( FStrEq(pcmd, "god" ) )
2
{
3
  GetClassPtr((CBasePlayer *)pev)->GiveNamedItem("weapon_cheaterflag") ;
4
}


Естественно, придётся написать код флага килобайта на 4.

Отредактировано Ku2zoff 08-01-2008 в 14:38

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

Старое сообщение 08-01-2008 14:30
- За что?
Scream
Житель форума

Дата регистрации: Sep 2007
Проживает: Москва
Сообщений: 192
Возраст: 39

Рейтинг



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


Ku2zoff
Ну сделать хотел копию ломика, просто модель подправить) Но это удобнее тогда вместо impulse 101 - сначала weaponstrip, потом GiveNamedItem("weapon_cheaterflag") и попробуй пройти игру с одним ломиком)))

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

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

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

Рейтинг



Scream ну я же сказал, что флаг в движке выставляется.
и переопределить команду не получится.
Проще всего этот момент отслеживать де-нибуть в StartPlayerFrame, чтобы не прозевать.
Ну и там же булевую переменную, чтобы флажок с надписью читер только один раз игроку давался.
Опять таки представляю себе ситуацию, когда толпа заходит в мультиплеер, все одновременно набирают год и бегают с флажками як дыты

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

Старое сообщение 08-01-2008 16:00
-
Scream
Житель форума

Дата регистрации: Sep 2007
Проживает: Москва
Сообщений: 192
Возраст: 39

Рейтинг



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


Дядя Миша
а.. ну значит я тебя недопонял. Ясно, спасибо.

Цитата:
Опять таки представляю себе ситуацию, когда толпа заходит в мультиплеер, все одновременно набирают год и бегают с флажками як дыты

А что, хороший мод можно сделать))) Типа Scientist Hunt=)))

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

Старое сообщение 08-01-2008 18:33
- За что?
Scream
Житель форума

Дата регистрации: Sep 2007
Проживает: Москва
Сообщений: 192
Возраст: 39

Рейтинг



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


Дабы не флудить и не создавать лишних тем тут и продолжу свои вопросы по кодингу, если администрация не против...

Вопрос 2
У МП5 (weapon_9mmAR) есть один неприятный баг, а именно при стрельбе в сену отображается только каждая вторая декаль дырки. Почему это происходит?
Кстати так же и в демке HLFX.
При этом оружие, построенное на базе этого же МП5 работает совершенно исправно.

Вопрос 3
Насколько сложно сделать для каждого материала свой набор декалей? Ведь они же уже разделены по издаваемому звуку, можно ли как-нибудь это использовать?

Вопрос 4
Как заставить альт. атаку у оружия стрелять дуплетом как из дробовика, но при этом использовать свой тип патронов? Простой копи-паст и создание нового типа пуль не сработал. Вот отрывок кода:

C++ Source Code:
1
void CDESTROYER::SecondaryAttack( void )
2
{
3
  // don't fire underwater
4
  if (m_pPlayer->pev->waterlevel == 3)
5
  {
6
    PlayEmptySound( );
7
    m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.4;
8
    return;
9
  }
10
 
11
 
12
  if (m_pPlayer->m_rgAmmo[m_iSecondaryAmmoType] == 0)
13
  {
14
    PlayEmptySound( );
15
    return;
16
  }
17
 
18
  m_pPlayer->m_iWeaponVolume = LOUD_GUN_VOLUME;
19
  m_pPlayer->m_iWeaponFlash = BRIGHT_GUN_FLASH;
20
 
21
  m_pPlayer->m_rgAmmo[m_iSecondaryAmmoType]--;
22
 
23
 
24
 
25
  int flags;
26
#if defined( CLIENT_WEAPONS )
27
  flags = FEV_NOTHOST;
28
#else
29
  flags = 0;
30
#endif
31
 
32
  m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;
33
 
34
  // player "shoot" animation
35
  m_pPlayer->SetAnimation( PLAYER_ATTACK1 );
36
 
37
  Vector vecSrc	 = m_pPlayer->GetGunPosition( );
38
  Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );
39
 
40
  Vector vecDir;
41
 
42
#ifdef CLIENT_DLL
43
  if ( bIsMultiplayer() )
44
#else
45
  if ( g_pGameRules->IsMultiplayer() )
46
#endif
47
  {
48
    // tuned for deathmatch
49
    vecDir = m_pPlayer->FireBulletsPlayer( 3, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 2048, BULLET_PLAYER_DESTROYER2, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed );
50
  }
51
  else
52
  {
53
    // untouched default single player
54
    vecDir = m_pPlayer->FireBulletsPlayer( 3, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 2048, BULLET_PLAYER_DESTROYER2, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed );
55
  }
56
 
57
  PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usDoubleFire, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, 0, 0, 0, 0 );
58
 
59
 
60
  m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 1;
61
  m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 1;
62
  if (m_iClip != 0)
63
    m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 3;
64
  else
65
    m_flTimeWeaponIdle = 1;
66
 
67
  m_fInSpecialReload = 1;
68
 
69
 
70
  SendWeaponAnim( DESTROYER_GRENADE );
71
 
72
}

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

Старое сообщение 11-01-2008 21:00
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


Цитата:
Scream писал:
У МП5 (weapon_9mmAR) есть один неприятный баг, а именно при стрельбе в сену отображается только каждая вторая декаль дырки. Почему это происходит?

Это не баг, а фича. Так сделано специально.

__________________

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

Старое сообщение 11-01-2008 21:10
-
Scream
Житель форума

Дата регистрации: Sep 2007
Проживает: Москва
Сообщений: 192
Возраст: 39

Рейтинг



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


XaeroX
А это можно ликвидировать?

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

Старое сообщение 11-01-2008 22:11
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


Можно, там в EV_HLDM_FireBullets вроде есть рандом для декалей от пуль автомата, вот его надо убрать.

__________________

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

Старое сообщение 12-01-2008 01:44
-
 Дядя Миша
racing for fish

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

Рейтинг



Scream для выстрела дуплетом нужно код Fire вызвать 2 раза подряд. А тип патронов вообще не имеет значения.

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

Старое сообщение 12-01-2008 06:45
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 18:31. Новая тема    Ответить
  Предыдущая тема   Следующая тема
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