Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
андрей дронав 17 Опубликовано 17 Января 2022 Поделиться Опубликовано 17 Января 2022 (изменено) Всех приветствую! Сталкер ТЧ, добавил телепортатор и звуки приема пищи, но работает только что то одно, в зависимости от порядка строк, например: Скрытый текст self.object:set_callback(callback.use_object, self.use_object, self) self.object:set_callback(callback.use_object, self.on_use_object, self) self.object:set_callback(callback.death, self.death_callback, self) end Сейчас телепорт работает, но звуков нет, меняю верхние строки местами работает наоборот... Что можно сделать чтобы все работало? Вижу что калбэки одинаковые, я не знаю как их правильно переписать. Изменено 17 Января 2022 пользователем андрей дронав Ссылка на комментарий
Norman Eisenherz 304 Опубликовано 17 Января 2022 Поделиться Опубликовано 17 Января 2022 Одно событие, два обработчика – учитывается только последний. Можно в самом обработчике указать оба действия, с делением по ситуации, если действия не происходят совместно. 1 1 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
AndrewMor 527 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 10 часов назад, Norman Eisenherz сказал: Можно в самом обработчике указать оба действия, с делением по ситуации, если действия не происходят совместно. Любопытно посмотреть, как это сделать. Сталкер - наше всё! Ссылка на комментарий
Купер 2 804 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 @AndrewMor , в данном случае это просто один и тот же callback, только по-разному именованный. В оригинале, как известно, отсутствовал, хоть и подразумевался, поэтому каждый восстанавливал его в меру своего разумения. Отсюда и различия в синтаксисе. Пример: Народная Солянка: self.object:set_callback(callback.use_object, self.on_use_object, self) Фотограф: self.object:set_callback(callback.use_object, self.use_object, self) 2 Ссылка на комментарий
Zander_driver 10 333 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 (изменено) 23 минуты назад, Купер сказал: только по-разному именованный. Строго говоря, в приведенном примере по-разному называются только исполняющие функции - что как бы и не важно. Хоть горшком назови, лишь бы вызывалось. А колбек один и тот же используется, и одинаково называется. 23 минуты назад, Купер сказал: callback.use_object Изменено 18 Января 2022 пользователем Zander_driver 3 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Купер 2 804 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 @Zander_driver , неудачно сформулировал, хотя ключевое и постарался выделить. В данном случае получается, что для одного и того же события (callback-а) последовательно вызываются два обработчика события: сначала self.use_object, затем self.on_use_object 1 Ссылка на комментарий
Zander_driver 10 333 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 13 минут назад, Купер сказал: для одного и того же события (callback-а) последовательно вызываются два обработчика события И где же можно увидеть эти два вызова? Тут ошибка не формулировки, а фактическая. Обработчик вызывается один раз. 55 минут назад, Купер сказал: self.object:set_callback(callback.use_object, self.on_use_object, self) self.object:set_callback(callback.use_object, self.use_object, self) Если. Регистрировать обработчики колбеков вот так - в одном файле, оба вместе - то, емнип, вызываться будет только один из них. Второй затрется. Так что, по отдельности эти строки верны, а будучи написаны подряд в одном файле - нет. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Купер 2 804 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 (изменено) Всё, сдаюсь. В схоластике не силён. Главное в ситациии всё уже, наверно, поняли: function actor_binder:on_use_object (obj) --* действия раз end function actor_binder:use_object (obj) --* действия два end Изменено 18 Января 2022 пользователем Купер Ссылка на комментарий
ted.80 251 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 (изменено) @Купер Л = логика, нужно просто встряхнуть холодец в голове, а по существу вопроса - оставь один коллбек и одну функцию, а все действия и условия перенеси в неё - профит. P.S. почему всё так сложно то function actor_binder:on_use_object (obj) --* действия раз --* действия два end типа так Изменено 18 Января 2022 пользователем ted.80 3 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
Купер 2 804 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 @ted.80 , нет желания ни вспоминать, ни пробовать, какой именно вызов коллбека в итоге сработает в итоге: первый или последующий, но 2 обработчика на одно событие совместно работать не будут. self.object:set_callback(callback.use_object, self.on_use_object, self) ... function actor_binder:on_use_object (obj) --* действия раз --* действия два end А дальше уже домысливать желаемую задумку. Ссылка на комментарий
mole venomous 3 336 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 @андрей дронав коллбеки это хорошо, конечно, но я бы вообще телепорт туда не вешал Здесь могла быть ваша реклама. Ссылка на комментарий
UriZzz 1 004 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 @mole venomous почему? Смотря что за телепорт. К стати, а что за телепорт? Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
mole venomous 3 336 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 @UriZzz я не знаю, какая схема у пользователя. А я использую скриптовую систему переходов. С модулем от артоса она надёжно работает. Я не говорю, что она лучше или хуже, но главное, надежная, стабильная и простая. Здесь могла быть ваша реклама. Ссылка на комментарий
андрей дронав 17 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 (изменено) 33 минуты назад, UriZzz сказал: @mole venomous а что за телепорт? UNIVERSAL TELEPORT V2.0 Автор: naxac Ставлю на Ivg_brest скрипт приёма пищи из OGSM ТЧ Изменено 18 Января 2022 пользователем андрей дронав Ссылка на комментарий
mole venomous 3 336 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 @андрей дронав скинь ссылочку, если не затруднит. Буду за компом, гляну. Хотя у этого автора всегда качественные работы Здесь могла быть ваша реклама. Ссылка на комментарий
андрей дронав 17 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 (изменено) 7 минут назад, mole venomous сказал: @андрей дронав У этого автора всегда качественные работы. Согласен! Телепорт работает отлично! Вот проблема неожиданно в одинаковых калбэках... https://synthira.ru/load/s_t_a_l_k_e_r/ten_chernobylja_mody/universal_teleport_v2_0/19-1-0-3239 Изменено 18 Января 2022 пользователем андрей дронав Ссылка на комментарий
Купер 2 804 Опубликовано 18 Января 2022 Поделиться Опубликовано 18 Января 2022 (изменено) @андрей дронав , а что мешает или не работает в таком варианте? function actor_binder:net_destroy() ... self.object:set_callback(callback.use_object, nil) ... end function actor_binder:reinit() ... self.object:set_callback(callback.use_object, self.use_object, self) ... end function actor_binder:use_object(obj) sound_for_eat.use_snd(obj) --* озвучка еды teleportator.use_tele(obj) --* 'полетушка' end Вместо: function actor_binder:reinit() ... self.object:set_callback(callback.use_object, self.use_object, self) --* 2 одинаковых self.object:set_callback(callback.use_object, self.on_use_object, self) --* вызова одного коллбека ... end function actor_binder:use_object(obj) sound_for_eat.use_snd(obj) end function actor_binder:on_use_object(obj, who) teleportator.use_tele(obj) end А, вообще, прицепить использование телепорта к верхней функции. Изменено 18 Января 2022 пользователем Купер 1 1 Ссылка на комментарий
AndrewMor 527 Опубликовано 19 Января 2022 Поделиться Опубликовано 19 Января 2022 @Купер Про разно поименованный колбек - понятно. Вопрос был в другом: "Можно в самом обработчике указать оба действия, с делением по ситуации, если действия не происходят совместно." - имелось в виду, использовать один синтаксис колбека, а уже в обработчике обрабатывать ситуации по-разному, так? 1 Сталкер - наше всё! Ссылка на комментарий
Купер 2 804 Опубликовано 19 Января 2022 Поделиться Опубликовано 19 Января 2022 @AndrewMor , прошу пардону, вышесказанное больше к @андрей дронав относится. Скрытый текст Как видишь, даже после всего, что накропали, у камрада определённые вопросы всё-таки остались. А по поводу "...использовать один синтаксис колбека, а уже в обработчике обрабатывать ситуации по-разному"(c). Вот перевели бы вы всё это на хотя бы русский алгоритмический. Терминология - она такая . Тут вон за один только метод вызова коллбека целая дискуссия разгорелась. Ссылка на комментарий
андрей дронав 17 Опубликовано 19 Января 2022 Поделиться Опубликовано 19 Января 2022 (изменено) Всем спасибо за помощь! Без вас яб ни как!!! Скрытый текст function actor_binder:net_destroy() ... self.object:set_callback(callback.use_object, nil) ... end function actor_binder:reinit() ... self.object:set_callback(callback.use_object, self.use_object, self) ... end function actor_binder:use_object(obj) sound_for_eat.use_snd(obj) --* озвучка еды teleportator.use_tele(obj) --* 'полетушка' end Изменено 19 Января 2022 пользователем андрей дронав 4 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти