![]() |
Показать все 15 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Блокирование сейва (https://hlfx.ru/forum/showthread.php?threadid=1112)
Блокирование сейва
Как зделать так, чтобы в определённые моменты игры нельзя было сохранятся? Ну например чтобы при этом вместо Saved... было выведено Can not save at this time.
Кто знает помогите плиз
Мда... Тут ничего на ум не приходит кроме как на клиенте снять бинд со всех клавиш и забиндить клавы из другого файла скрипта. Типа:
ClientCmd("unbindall\n"); |
и |
ClientCmd("exec config.cfg\n"); |
__________________
Хотелось бы, чтобы не только хотелось...
Maxwel никак. Все хитрые методы в этом направлении либо приводят к порче предидущих сохранялок, либо легко обходятся юзером.
Единственное что я помню на этот счет - это отбирать у игрока здоровье при каждой сохранялке.
__________________
способ с try/catch откровенно стремный.
Во-первых, опять не понятно зачем это нужно?
Во-вторых, можно старательно изучить конкурсную карту 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
__________________
ну вот, вот вам яркий пример, блин!
когда человек решил проблему по-своему наполовину, а на деле хотел совсем другое:
сравните - начали с блокировки сейва, а закончили тем, что фейд и камера не сохраняются на сервере.
Так вот товарищи - в Xash 0.39\0.40 и камера и фейд сохраняются!!!
Дядя Миша дело то тут в том, что несохраниение фейда - это только один из примеров... Просто еще хотелось, чтобы когда игра начиается с чёрного экрана и показывается лого игры, то сохранение было отключено, а когда это закончится, чтобы тогда уже включалась возможность сохранятся... Просто как то не вяжется с логикой, да и сохранятся в этом моменте нету смысла........ Хотя я всё дальше думаю, что смысла нет в том, что я задумал...
Ладно пойду фиксить глюки с фейдом и лого...
Была идея, но на практике я так и не удосужился её опробовать. В движке есть одно условие, при котором сейв невозможнен - это ноль жизней у игрока. Правда может быть проблема с автоматической загрузкой автосейва.
BUzer там тупо pev->health проверяется?
__________________
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; }
Дядя Миша вот за это спасибо, это пригодится
Maxwel одна маленькая деталь - выйти из режима интермисии можно только changlevel, если память мне не изменяет. Поэтому имеет смысл клепать целиком карты-демки.
Впрочем это активно юзалось в RTCW, там даже флажок был у ворлдспавна - кинематографическая это карта или игровая,
так что я думаю проблем не будет.
Интермисиия включается мессагой на клиент, камеру можно привязать любую (в view.cpp есть код для нее).
Временная зона GMT. Текущее время 09:44. | Показать все 15 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024