Welcome, guest. You can be a Login или register
Author
Topic title
DOOMer
Offline
Хранитель и могильщик Врат
1557 posts
Karma 103
Сегодня работая над одной картой для Q3 обнаружил странную вещь. Итак:

1. Ставим на карту где-нить trigger_multiple (вызывает какое либо событие при пересечениии его игроком).
2. Привязываем сей триггер к обекту target_give (возможность дать игроку любой итем, веапон или пауэр-ап).
3. Привязываем этот target-give к пачке патронов, лежащей где-нить в недоступном игроку месте.
4. В свойствах данной упаковки патронов (в моём случае было ammo_bfg) ставим количество патронов ОТРИЦАТЕЛЬНЫМ - например -50.
5. Компилируем карту и...

Игрок проходит триггер, ему дают патроны счётчик которых убирается с экрана. И скольуо не стреляй - они не кончатся... по крайней мере я так и не смог достичь этого, хотя мож на 999 оно бы и остановилось.

Вот мне интересно стало - баг это или фича? (можете попробовать на спецаиально собранной тест-мапе)

А карту ту, которую делал скорее всего придётся не релизить в итоге... накрылась нужныая мне фича.

Вертексы должны образовывать конвексный браш
My Quake Maps

Core i5 4210U 1.7 Ghz, 8 Gb RAM, GeForce 840M
Ubuntu 15.04 x86_64 [



сохранись перед дверью...два раза =)
Orel
Offline
131 posts
Karma 6
Фича.
Дело в том, что имхо в коде игры отрицательное число патронов означает бесконечность (ведь у Gauntlet патроны не заканчиваются!). Опять-таки имхо по умолчанию у Gauntlet -1 патрон. Если дать игроку (через target_give или просто выложить на карту) еще Gauntlet, то по правилам игры он получит +1 патрон, соответственно патронов станет 0 - Gauntlet недоступен! Дадим еще - получим Gauntlet с ограниченным числом ударов (хотя жужжать этой штукой вхолостую можно сколько угодно).
Я давно подумывал об использовании отрицательного числа патронов для лишения игрока доступа к конкретному оружию. Но чтобы оно становилось бесконечным - такого не ожидал.
Отсюда вытекает такая система: при респавне тебе выдается одно оружие с бесконечным боезапасом, на карте оружия нет. Если убъешь врага - получишь его пушку, но боезапас будет ограничен (сколько дается по умолчанию).

Эту фичу имхо можно заюзать так:
а) создать классы.
б) создать one-weapon арену. Респаунишься в комнате без всего, вокруг лежат пушки. Берешь одну - телепортишься на арену с этой пушкой и бесконечным боеприпасом.

PS: А какая нужная тебе фича накрылась?
Винчестер - это инструмент для выполнения деструктивных действий с любыми типами органических вычислительных систем.
DOOMer
Offline
Хранитель и могильщик Врат
1557 posts
Karma 103
Да, прочитав твой ответ вспомнил что видел в коде игры при респавне количество патронов для Gauntlet именно -1. И сам ставил в своём моде, который делал года 3 назад, те же -1 для шафта, чтобы его сделать бесконечным. Правда сие не прокатило, боты сразу переключались на тот же gauntlet и кромсали друг друга. Пришлось поставить 9999 и всё. А потом разработка заглохла, ия так и не разобрался с этим.

Сейчас у меня не мод а карта. Фича планировалась такая:

1. Игрок бегает по карте с выданным ему ружьём при респавне (БФГ).
2. На карте есть несколько телепортов, которые телепортят игрока в некую закрытую область карты, в которой игрок тут же проходит сквозь target_multiple, который должен был ОТБИРАТЬ у игрока патроны (скидывать их количество на 0), через target_give с отрицательными патронами.
3. Чуть дальше ещё один trigger_multiple, который через target_give выдаёт игроку уже другое оружие (шафт к примеру).
4. И после этолго игрока телепорят в другую область карты, где уже надо беать с шафтами (патронов для БФГ там нет).

Попробую конечно щас сделать енмного иначе, после п.2 (в котором count у пачки патронов будет -1) давать ОДИН патрон на следующем target_multiple, а уже потом всё остальное. Но не факт что оно сработает.
Вертексы должны образовывать конвексный браш
My Quake Maps

Core i5 4210U 1.7 Ghz, 8 Gb RAM, GeForce 840M
Ubuntu 15.04 x86_64 [



сохранись перед дверью...два раза =)
Orel
Offline
131 posts
Karma 6
Можно сделать так.
При телепорте давать много патронов (например 300), ведь больше 200 игрок не получит. Потом давать -200, соответственно останется 0. Но тут есть риск - если игрок успеет выстрелить между первой и второй выдачей, у него останется отрицательное число=бесконечность.
Твой вариант тоже должен сработать, так как при отрицательном числе патронов оно не должно уменьшаться, а значит, если дал -1 патрон, то он и останется -1, имхо.

PS:Так это ты накатал Lightning Arena? А я-то ругался - через 5 минут игры патроны кончаются, а новые взять негде. Приходится дохнуть. >:(
Винчестер - это инструмент для выполнения деструктивных действий с любыми типами органических вычислительных систем.
UAC
Offline
Бывший UAC и Sodomizer
833 posts
Karma 27
А небо на скрине такое родное, строгосское ]:>
DOOMer
Offline
Хранитель и могильщик Врат
1557 posts
Karma 103
[quote author=UAC link=topic=63.msg750#msg750 date=1168282837]
А небо на скрине такое родное, строгосское ]:>
[/quote]
Самый симпатичный скайбокс из всех имеющихся в Q3 (ИМХО).. красиво смотрится, вот и ющаю его даж на тестовых картах.

Вертексы должны образовывать конвексный браш
My Quake Maps

Core i5 4210U 1.7 Ghz, 8 Gb RAM, GeForce 840M
Ubuntu 15.04 x86_64 [



сохранись перед дверью...два раза =)
DOOMer
Offline
Хранитель и могильщик Врат
1557 posts
Karma 103
-1 патрон увы не всегда именно ывдаёт игроку -1 патрон. Но в целом решение я нашёл, и карта скорее всего будете недели через полторы.
Вертексы должны образовывать конвексный браш
My Quake Maps

Core i5 4210U 1.7 Ghz, 8 Gb RAM, GeForce 840M
Ubuntu 15.04 x86_64 [



сохранись перед дверью...два раза =)
Orel
Offline
131 posts
Karma 6
[quote author=DOOMer link=topic=63.msg754#msg754 date=1168292384]
карта скорее всего будете недели через полторы.
[/quote]
Ну-ну. Может и я чего накатаю, на тему one-weapon arena...
Винчестер - это инструмент для выполнения деструктивных действий с любыми типами органических вычислительных систем.