DyrmanДа, и так, и так пробовал. Результат - одинаков.
Если в самой карте переопределяешь триггер - то всё работает. С другим параметром отправителя. Но скрипты же готовых карт не будешь переделывать...
Важно, чтобы переопределение Trigger происходило до выполнения скрипта карты и скрипта мода.
Также желательно добавить стандартный алиас функции Trigger:
SetTrigger = Trigger
в конец того большого куска кода переопределения.
Он, скорее всего, используется редко или вообще не используется, однако его тоже надо учитывать.
Ещё вопрос стоит обнуления триггера, чтобы обнулялся только нужный, так будет правильно:
Trigger("NHF", OBJECT_TOUCH_TRIGGER, mob, nil);?
Да, так верно.
А если в самой карте обнуляется Trigger( OBJECT_TOUCH_TRIGGER, mob, nil); , то не на все ли подействует?
Нет, по-умолчанию вызов триггера со стандартными параметрами (из руководства) будет интерпретирован как вызов от отправителя 0 (как число, не строка). То есть в данном случае обнулится только триггер, поставленный обычным способом, а все "специальные" останутся. Тем не менее, имитация через Trigger(0, ...) невозможна, т. к. это равносильно Trigger(NEW_DAY_TRIGGER, ...).
Как понимаю, если первый параметр = nil, это тоже является уникальным параметром отправителя.
Нет, первый параметр должен быть или числом (стандартный вызов), тогда оно будет принято как тип события, или строкой, тогда она будет принята как отправитель. Передача первым параметром nil вызовет ошибку attempt to concat a nil value.
При желании параметр отправителя можно поместить в конец как необязательный, тогда в качестве отправителя можно будет посылать любое значение, кроме nil (будет равнозначен незадаче параметра) и NaN (не индексируется в таблицах, так как не равен самому себе). Это потребует небольшой переделки кода.