HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Блокирование сейва
Как зделать так, чтоб в определённые моменты игры нельзя было сохранятся?
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Maxwel
Software Engineer

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

Рейтинг



Half-Life Блокирование сейва

Как зделать так, чтобы в определённые моменты игры нельзя было сохранятся? Ну например чтобы при этом вместо Saved... было выведено Can not save at this time.
Кто знает помогите плиз

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

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

Дата регистрации: Mar 2007
Проживает: (void)
Сообщений: 327

Рейтинг



Мда... Тут ничего на ум не приходит кроме как на клиенте снять бинд со всех клавиш и забиндить клавы из другого файла скрипта. Типа:

C++ Source Code:
ClientCmd("unbindall\n");
и
ClientCmd("exec config.cfg\n");

А потом перебиндить назад.

Дежавю- просматривал недавно старые темы хлру и видел http://www.half-life.ru/forum/showt...=&threadid=1107

__________________
Хотелось бы, чтобы не только хотелось...

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

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

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

Рейтинг



Maxwel никак. Все хитрые методы в этом направлении либо приводят к порче предидущих сохранялок, либо легко обходятся юзером.
Единственное что я помню на этот счет - это отбирать у игрока здоровье при каждой сохранялке.

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

Старое сообщение 16-01-2008 15:30
-
 XaeroX
Crystice Softworks

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

Рейтинг



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


Цитата:
Тренсфер писал:
Тут ничего на ум не приходит кроме как на клиенте снять бинд со всех клавиш и забиндить клавы из другого файла скрипта

escape -> выход в меню -> Save Game
Так что судя по всему, никак.
Разве что попробовать сделать __asm int 3 в какой-то из функций сейва, и try/catch блок, это отлавливающий.

__________________

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

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

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

Рейтинг



способ с try/catch откровенно стремный.

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

Старое сообщение 16-01-2008 18:50
-
Scrama
СССР с интернетом и олигархами!

Дата регистрации: May 2006
Проживает: Прииртышье
Сообщений: 3737

Рейтинг



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


Во-первых, опять не понятно зачем это нужно?
Во-вторых, можно старательно изучить конкурсную карту Scream'a - там сохранение работает, но вот загрузиться никак...
В-третьих, Дядя Миша сказал правильно - лучше стимулировать игрока быть аккуратным, чем просто запрещать ему сэйвы. Это можно сделать отбиранием здоровья на сохранении, лишения на пару секунд движения при работающих монстрах, или задержкой между нажатием и сохранением секунд на 10, опять же при рабочей игре.

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran

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

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

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

Рейтинг



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


Цитата:
Scrama писал:
Это можно сделать отбиранием здоровья на сохранении,

Это мега-маразм...
Цитата:
Scrama писал:
лишения на пару секунд движения при работающих монстрах

Как в хлфх-сингл? тоже не ахти... К тому же тоже легко обходится (по крайней мере, та реализация, что у меня).
Лучше всего - как в деус ексе, на сейв тратится несколько секунд (при этом замирает вся игра, в т.ч. монстры). Так что игрока просто будет раздражать частый сейв из-за "медленного процесса сохранения".
Или опять же, как в хитмане - сейв только через меню, никаких квиксейвов. Но этот вариант мне импонирует меньше.

__________________

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

Старое сообщение 17-01-2008 04:59
-
Maxwel
Software Engineer

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

Рейтинг



Цитата:
Во-первых, опять не понятно зачем это нужно?

Ну например, если сохранится в время того как происходит fade и загрузится, то окажется, что то, на каком месте был фейд не запоминается и он начинается сначала...
хм... хотя ко мне начинает подкрадыватся мысль это дело пофиксить на сервере... пока незнаю как...
Цитата:
Это можно сделать отбиранием здоровья на сохранении, лишения на пару секунд движения при работающих монстрах, или задержкой между нажатием и сохранением секунд на 10, опять же при рабочей игре.

хм... посмотрим

На данный момент вопрос исчерпан.

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

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

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

Рейтинг



ну вот, вот вам яркий пример, блин!
когда человек решил проблему по-своему наполовину, а на деле хотел совсем другое:
сравните - начали с блокировки сейва, а закончили тем, что фейд и камера не сохраняются на сервере.
Так вот товарищи - в Xash 0.39\0.40 и камера и фейд сохраняются!!!

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

Старое сообщение 17-01-2008 08:25
-
Maxwel
Software Engineer

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

Рейтинг



Дядя Миша дело то тут в том, что несохраниение фейда - это только один из примеров... Просто еще хотелось, чтобы когда игра начиается с чёрного экрана и показывается лого игры, то сохранение было отключено, а когда это закончится, чтобы тогда уже включалась возможность сохранятся... Просто как то не вяжется с логикой, да и сохранятся в этом моменте нету смысла........ Хотя я всё дальше думаю, что смысла нет в том, что я задумал...

Ладно пойду фиксить глюки с фейдом и лого...

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

Старое сообщение 17-01-2008 08:47
- За что?
BUzer
Pills here!

Группа: Опытный
Дата регистрации: Oct 2005
Проживает: Владивосток
Сообщений: 349
Возраст: 40

Рейтинг



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

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

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

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

Рейтинг



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


BUzer там тупо pev->health проверяется?

__________________

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

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

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

Рейтинг



code:
if (cl.intermission) { Con_Printf ("Can't save in intermission.\n"); return; } if (svs.maxclients != 1) { Con_Printf ("Can't save multiplayer games.\n"); return; }

Блин, как же я раньше не сообразил!
ведь можно сделать вид, что мы включили интермиссию и тогда сохраненние тоже будет невозможно.
А она работает в хл (я в ксаше её включал).

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

Старое сообщение 17-01-2008 11:22
-
Maxwel
Software Engineer

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

Рейтинг



Дядя Миша вот за это спасибо, это пригодится

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

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

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

Рейтинг



Maxwel одна маленькая деталь - выйти из режима интермисии можно только changlevel, если память мне не изменяет. Поэтому имеет смысл клепать целиком карты-демки.
Впрочем это активно юзалось в RTCW, там даже флажок был у ворлдспавна - кинематографическая это карта или игровая,
так что я думаю проблем не будет.
Интермисиия включается мессагой на клиент, камеру можно привязать любую (в view.cpp есть код для нее).

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

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



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


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

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