Sidebar

Фиксированный одиночный дамаг в конкретном месте.

Blackcock

Active member
19.02.22
140
35
Всем привет.
Ситуация такая: пытаюсь в конкретном помещении сделать урон игроку.
Т.е. игрок заходит в комнату со 100хп, получает мгновенный дамаг -50хп и с оставшимися 50хп так и остается в этой комнате. А на выходе из комнаты игрок снова получает +50хп и со 100 хп уходит дальше. Если опять решит зайти в комнату, то получает опять дамаг -50хп и так по кругу. Вход = 100хп, в комнате=50хп, выход = 100хп.
Пытался сделать через game_player_hurt:
targetname = Room
dmg = 50
и trigger_multiple

target = Room
Но при попадании игрок сначала 50 получает, а потом снова 50 и умирает. Делать задержку в trigger_multiple delay_before тоже не вариант, т.к. след. игрок, зайдя следом за 1м игроком в комнату, не получит дамаг.
Пробовал multiple заменить на trigger_once, но раунд у меня бесконечный и одиночный триггер не подходит.

Может, как-то можно сделать, чтобы при прохождении триггера в комнату игроком game_player_hurt давал дамаг только один раз?
Или вообще возможно сделать так, что не важно, со скольким хп игрок зашел в комнату (20хп, 60хп), в комнате у него всегда будет 50хп?
Может, как-то через multi_manager это можно воспроизвести?

Или есть какие-то карты на примере, я бы глянул, как там устроены энтити.
 
Останнє редагування:

Blackcock

Active member
19.02.22
140
35
В общем, с дамагом не выходит.
Теперь пытаюсь выдать в этой комнате оружие (например ак47 - weapon_ak47), когда игрок через триггер проходит.
На карте при старте у игрока должен быть только нож.
Т.е. есть основное энтити game_player_equip weapon_knife = 1, и есть 2е энтити, что в комнате game_player_equip weapon_ak47 = 1

Создаю
1. trigger_multiple
- name = trigger_ak47
- target = ak47
2. player_weaponstrip
- name = stripper
3. game_player_equip
- name = equipment
- weapon_ak47 = 1
4. multi_manager
- name = ak47
- trigger_ak47 = 0.9
- stripper = 0.9
- equipment = 0.9

Но почему-то при старте срабатывает game_player_equip, что в комнате, и выдает ак47 . Если его выбросить и зайти в комнату, то все нормально, нож отбирается и ак47 выдается. Правда, он повторно выдается через значение, указанное в delay before reset trigger_multiple, если игрок продолжает находится в зоне триггера. Не могу придумать, как выдать один раз его игроку, который находится в зоне триггера. Т.е. выдача один раз только при вхождении в зону триггера.
И не могу понять, почему при старте ак47 тоже выдается?
 

v1c7or

Active member
20.10.13
428
28
trigger_once? А набивание и убавление здоровья только через amxx плагин делать , через хаммер всего аккуратно и без косяков не сделать!
 

Blackcock

Active member
19.02.22
140
35
В дэлэй бефор рэсэт -1 перед этим отобрать все через стрип
это тот же trigger_once получается. игрок получил оружие в зоне триггера, вышел из него, а потом снова зашел и триггер уже не срабатывает.
Чуть позже скину образец карты, может кто покопается с энтити через бсп эдит или гай.
Но меня больше всего смущает выдача в начале раунда оружия, которое привязано к триггеру. Баг движка, походу.
Post automatically merged:

Заливаю исходник.
Хз, ака автоматом выдается, хоть убейся.
И в триггере идет постоянная выдача ака, а нужна одиночная: зашел в триггер и там находишься - получил 1 раз ака, вышел и снова зашел - опять получил один раз ака.
 

Вкладення

  • 53 КБ Перегляди: 2
Останнє редагування:

npocTo_LaM

Well-known member
27.10.12
2 166
387
83
  • Золотая медаль 311
Попробую написать как понял:

1. "При старте у игрока только нож".
- сначала отбираем все оружие: ставим на карту энтитю player_weaponstrip
(name = game_playerspawn);
- выдаем нож: ставим энтитю trigger_relay (name = game_playerspawn, target - knife, delay before trigger - 0.1, trigger state - toggle) и энтитю game_player_equip (weapon_knife = 1, name - knife).

2. "Выдать в комнате АК47".
- создаем в комнате trigger_multiple (name - trigger, delay before reset - 2, target - give_ak47), в любом месте карты - game_player_equip (weapon_ak47 = 1, name - ak47, флаг - use only), multimanager (name - give_ak47, ak47 - 0, trigger_off - 0.1), info_target (name - null), trigger_changetarget (name - trigger_off, target - trigger, new target - null), trigger_changetarget (name - game_playerspawn, target - trigger, new target - ak47) .

Почему так сложно? Если просто поставить trigger_multiple, то после окончания задержки (delay) игроку, находящемуся в комнате, будет снова выдано оружие. Чтобы этого избежать меняем target для trigger_multiple на info_target с именем null.

Все выше описанное позволит один раз за раунд игроку, получившему в начале раунда нож, получить АК47, войдя в комнату.

Чтобы появилась возможность не один раз за раунд получать АК47, нужно добавить trigger_changetarget (name - trigger_on, target - trigger, new target - ak47), на "выходе" из комнаты поставить trigger_multiple (target - trigger_on, delay - вот тут нужно решать по обыгрыванию этого события (как и "выхода") на самой карте). Например игрок, падая вниз в колодце, будет получать АК47, или поставить trigger_push на выходе, недающий игроку вернуться через "выход" в комнату.

Игрок на выходе снова включит триггер на выдачу оружия.

Если где и ошибся, то не сильно :)
 

npocTo_LaM

Well-known member
27.10.12
2 166
387
83
  • Золотая медаль 311
Если обеспечить движение игрока только в одном направлении, то будет: заходишь в первый триггер - получаешь пушку, меняется таргет для первого триггера на null, выходишь, другой триггер возвращает возможность получить пушку для первого триггера. должно пахать. Заходит следующий игрок и все повторяется.
Если, как пример, поставить trigger_push, проталкивающий игрока (чтобы он не стоял в триггере) через первый триггер, то все проще: только первый триггер с небольшой задержкой перед последующей активацией и энтитя для выдачи пушки.
 

Blackcock

Active member
19.02.22
140
35
Попробую написать как понял:

1. "При старте у игрока только нож".
- сначала отбираем все оружие: ставим на карту энтитю player_weaponstrip
(name = game_playerspawn);
- выдаем нож: ставим энтитю trigger_relay (name = game_playerspawn, target - knife, delay before trigger - 0.1, trigger state - toggle) и энтитю game_player_equip (weapon_knife = 1, name - knife).

2. "Выдать в комнате АК47".
- создаем в комнате trigger_multiple (name - trigger, delay before reset - 2, target - give_ak47), в любом месте карты - game_player_equip (weapon_ak47 = 1, name - ak47, флаг - use only), multimanager (name - give_ak47, ak47 - 0, trigger_off - 0.1), info_target (name - null), trigger_changetarget (name - trigger_off, target - trigger, new target - null), trigger_changetarget (name - game_playerspawn, target - trigger, new target - ak47) .

Почему так сложно? Если просто поставить trigger_multiple, то после окончания задержки (delay) игроку, находящемуся в комнате, будет снова выдано оружие. Чтобы этого избежать меняем target для trigger_multiple на info_target с именем null.

Все выше описанное позволит один раз за раунд игроку, получившему в начале раунда нож, получить АК47, войдя в комнату.

Чтобы появилась возможность не один раз за раунд получать АК47, нужно добавить trigger_changetarget (name - trigger_on, target - trigger, new target - ak47), на "выходе" из комнаты поставить trigger_multiple (target - trigger_on, delay - вот тут нужно решать по обыгрыванию этого события (как и "выхода") на самой карте). Например игрок, падая вниз в колодце, будет получать АК47, или поставить trigger_push на выходе, недающий игроку вернуться через "выход" в комнату.

Игрок на выходе снова включит триггер на выдачу оружия.

Если где и ошибся, то не сильно :)
Спасибо, проверю вечером и отпишусь) Так же скину снова исходник.
 
VIP
12.08.04
18 877
462
83
  • Бронзовая медаль 103
  • Деревянный домик Скааржа
  • Серебряная медаль 213
  • Золотая медаль 136
  • Бронзовая медаль 141
  • Серебряная медаль 125
  • Золотая медаль 221
  • Золотая медаль 213
  • Золотая медаль 232
  • Серебряная медаль 132
Ситуация такая: пытаюсь в конкретном помещении сделать урон игроку.
Т.е. игрок заходит в комнату со 100хп, получает мгновенный дамаг -50хп и с оставшимися 50хп так и остается в этой комнате.
А если игроков скидывать в комнату с высоты через триггер?
 
  • Like
Reactions: Blackcock

Blackcock

Active member
19.02.22
140
35
А если игроков скидывать в комнату с высоты через триггер?
Кстати, очень хорошая идея) Попробую реализовать, но сначала уже с выдачей оружия разберусь.
Post automatically merged:

Попробую написать как понял:

ставим энтитю trigger_relay (name = game_playerspawn, target - knife, delay before trigger - 0.1, trigger state - toggle) и энтитю game_player_equip (weapon_knife = 1, name - knife).
Хз, почему, но trigger_relay с name = game_playerspawn крашит карту на обычном клиенте (ну, если запускать через Новая игра).
На моем серве тестовом она запускается, но у меня ДМ режим, там автоматом удаляется плагином trigger_relay, и автовыдача оружия идет плагином.

А если изменить trigger_relay name = 555, то спавнишься с пустыми руками.
Исходник прикрепил.
 

Вкладення

Останнє редагування:

npocTo_LaM

Well-known member
27.10.12
2 166
387
83
  • Золотая медаль 311
По "поводу урона":
Посидел-покумекал-попробовал различные варианты.
Казалось бы что сложного и энтити даже есть, но либо не работают, либо работают через пень-колоду и игра вылетает.
Вот довольно простой и неплохой вариант (в скобках или название или значение параметра, смотри карту-пример):
- делаем проем, в котором должно меняться значение ХП;
- ставим три тонких trigger_multiple, один средний (имя - hp, delay - 1, target - пусто) по кромке проема, два (delay - 0.5) на расстоянии 32 юнита от среднего внутрь (target - +100tct) и наружу (target - -50tct);
- ставим два game_player_hurt, один (имя - -50) будет уменьшать здоровье (damage = 50), другой (имя - +100) увеличивать (damage= -100);
- ставим два trigger_changetarget'a, которые будут менять target для среднего trigger_multiple при заходе внутрь (имя - -50tct, стоит снаружи) на (-50), при выходе наружу (имя - +100tct, стоит внутри) на (+100).
Есть одна особенность: :) в зоне среднего триггера стоять не нужно, а то в спектры попадешь.
Мысль сблизить триггеры посещала - умирает игрок от внешнего триггера.
По поводу возможности стояния в зоне среднего триггера есть идея, покумекаю еще.
p.s. посмотрел тестовую карту, помещение спавна и стрельбы, вопросов нет: заспавнился, отобрали все оружие, если какое было с прошлого раунда, получил нож. Два телепорта, кидающих игрока любой команды в другое помещение. Прилетел, от триггера запустился мультименеджер, который выдал снова нож и ак47, потом триггер выключился до следующей активации (прилета другого игрока. Первый прилетевший игрок получил ак47 и нож, остальные - мишени.
Собсна вопрос: зачем player_weaponstrip (имя - stripper)? Если с целью отобрать нож и выдать по новой нож, но уже с ак47, то его нужно было добавить в мультименеджер. Два обратных телепорта - летим домой. Еще вопрос: зачем телепортам давать имена? Было бы логично, если бы для телепортов менялись точки назначения.
Немного подредактировал (trigger_relay, выдающий нож в начале раунда, уже не нужен) - играбельно.
Собсвенно по "выдаче пушки" (карту качнул) - вопрос решен.
 

Вкладення

  • 14 КБ Перегляди: 2
  • 65.3 КБ Перегляди: 4
Останнє редагування:
  • Like
Reactions: Blackcock

Blackcock

Active member
19.02.22
140
35
npocTo_LaM спасибо большое, попробую вечером покумекать тоже и посмотреть, что у тебя получилось)
Имена телепортам я даю, чтобы потом не запутаться в них, т.к. телепортов и комнат много будет)

Идея такая у меня: решил сделать 35hp_2 карту, в которой будут телепорты, ведущие в комнату-карту 1хп, также будет телепорт, ведущий на гладиаторскую арену, где будет на входе выдаваться щит и игроки будут драться на ножах с 35хп+щит, потом будет комната, где сражения будут происходить со 100хп.

Конечно, с оружием, проще всего было раскидать его по земле, но захотелось более продвинуто сделать что ли))

Как карта будет готова, я сюда снова скину на тест.
 

crystallize

Well-known member
06.06.14
1 715
46
48
Я думаю триггер нужно выключать или сдвигать в стену после первого срабатывания. А по уходу игрока из комнаты включать или возвращать его обратно.
 

Blackcock

Active member
19.02.22
140
35
npocTo_LaM потестил выдачу оружия сейчас с твоими правками.
Выдача работает как триггер_once, т.е. я получил ака, вышел из комнаты, ака выбросил, снова вошел в комнату с триггером, но уже выдачи ака нет.
Может, сделать с выдачей оружия, как Скаарж советовал, типа сбрасывать с высоты и в полете выдавать оружие, чтобы игрок не мог долго находится в триггере.

Post automatically merged:

Я думаю триггер нужно выключать или сдвигать в стену после первого срабатывания. А по уходу игрока из комнаты включать или возвращать его обратно.
так не сработает, т.к. игроков на карте может быть много
 
Останнє редагування:

npocTo_LaM

Well-known member
27.10.12
2 166
387
83
  • Золотая медаль 311
npocTo_LaM потестил выдачу оружия сейчас с твоими правками.
Выдача работает как триггер_once, т.е. я получил ака, вышел из комнаты, ака выбросил, снова вошел в комнату с триггером, но уже выдачи ака нет.
Так ты сам так сделал: после того как первый игрок попадет в триггер, он получает нож и АК47 и триггер выключается. Меня это удивило, но писать о задумках карты должен автор, а не тот кто в ней колупается :)
Ты уж будь добр - напиши, что ты хочешь получить (сценарий как должна работать карта).
 

Blackcock

Active member
19.02.22
140
35
Так ты сам так сделал: после того как первый игрок попадет в триггер, он получает нож и АК47 и триггер выключается. Меня это удивило, но писать о задумках карты должен автор, а не тот кто в ней колупается :)
Ты уж будь добр - напиши, что ты хочешь получить (сценарий как должна работать карта).
да это я тестировал просто:) Меня больше беспокоило, что эквипмент2 выдавал оружие, хотя привязан к триггеру.
Поделаю пока саму карту, потом скину, как будет готова.
 

npocTo_LaM

Well-known member
27.10.12
2 166
387
83
  • Золотая медаль 311
Если и на карте будет один триггер на две точки телепортации - подели на два независимых триггера, со своими энтитями, которые от них работают. Просто как то пробовал делать нечто подобное, так при одном триггере два игрока одновременно его юзали и игра вылетала.
 
  • Like
Reactions: Blackcock

Blackcock

Active member
19.02.22
140
35
Если и на карте будет один триггер на две точки телепортации - подели на два независимых триггера, со своими энтитями, которые от них работают. Просто как то пробовал делать нечто подобное, так при одном триггере два игрока одновременно его юзали и игра вылетала.
Да вот больше всего и беспокоят меня краши. Придется потом карту тестить на разных сборках.
Начну пока делать саму карту, по ходу буду работать с энтити.
Потом готовую с исходником залью, если опять начнется байда с энтитями.
 

Game Server

Доноры Красавчики

Користувачі онлайн