Dennis_Chikin 3 658 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 (изменено) Он передает в свою функцию ссылку на копию стека, привязанную к объекту. Точнее, неудачно пытается. И что он хочет с ней сделать ? А в данной конкретной нотации - даже не ее, а вообще неизвестно что. Но в стеке зачем-то хранит ссылку на функцию. P.S. А вообще я не понимаю этот ваш ООП от слова совсем. Когда-то давно, когда была возможность объявлять статические переменные, копирование контекста было осмысленным. Но где и когда последний раз вы видели статическую переменную ? Изменено 4 Ноября 2014 пользователем Dennis_Chikin 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Barmolini 1 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 (изменено) Он передает в свою функцию ссылку на копию стека А есть другой способ вызывать в классе собственный метод, не создавая отдельно объект? @stalk9r, кстати да! Вызывать то метод нужно через двоеточие, не через точку! Изменено 4 Ноября 2014 пользователем Barmolini Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 (изменено) И опять же, покажите мне кто-нибудь хоть один объект, в котором зачем-то надо было бы хранить свои уникальные для каждого объекта функции. И как вы их там собираетесь описывать, чтобы были уникальными ? Изменено 4 Ноября 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Barmolini 1 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 (изменено) @Dennis_Chikin, я же писал: Зачем - это другой вопрос. Какой-то смысл автор в этом увидел. Хозяин - барин. Изменено 4 Ноября 2014 пользователем Barmolini Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 (изменено) Ну, так-то да. Только оно у него не работает.Хотя, в принципе self.func() - вызов вполне рабочий. Вот только с переменными будет все странно, и зачем таким образом забивать стек и устраивать тормозилово - я все равно не понял.В общем, если вы зачем-то хотите передать в функцию ссылку на копию стека стек объекта, лучше так и писать:function f( obj ) ... endmyobj:myfunc()f( self )end- и будет вам счастье. Если хотите передать конкретные аргументы - предавайте аргументы.Исключение - если модифицируете чей-то курсач, и не хотите перелопачивать весь код. Изменено 4 Ноября 2014 пользователем Dennis_Chikin 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Barmolini 1 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 @Dennis_Chikin, да там банальная опечатка. Вызов нужно делать через двоеточие: self:pokupka({"bread","vodka","kolbasa"})И всё будет чудно. 1 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 А теперь берем в руки profile_timer(), смотрим на результаты, и проникаемся... Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
stalk9r 135 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 @Barmolini, @Dennis_Chikin, Двоеточие помогло, спасибо! А то 2 часа как об стенку лбом А заморачиваюсь я только с целью уменьшения размера скрипта. Зачем повторять одни и те же строки 50 раз подряд, когда можно вызвать функцию (или метод?) и передать ей таблицу для обработки. Есть хабар - пойдёт базар Ссылка на комментарий
Struck 61 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 @stalk9r, пфф, что мешает это делать без ООП? Зачем его применять там, где оно абсолютно не нужно? У тебя же нет разветвленной системы классов, ты ничего не наследуешь, я не понимаю хоть убей. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 Вспоминается один древний разговор: - А это вообще ЧТО ? - Это - дипломный проект. Он - чтобы диплом получить. Ну, может, у человека тоже курсовая, как у ПЫСов, когда они начинали это все делать... А на кафедры ТАУ в общем-то всегда извращенцев в преподы набирали. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
stalk9r 135 Опубликовано 4 Ноября 2014 Поделиться Опубликовано 4 Ноября 2014 @Struck, да у меня и нету там ООП (ну по крайней мере я так думаю), задумка была такая: делаем функцию для спавна и вызываем её из разных функций с передачей ей разных наборов аргументов, дабы не повторять каждый раз local a = vector() local vid, gvid, i, aid, se_namea = db.actor:position()vid = db.actor:level_vertex_id()gvid = db.actor:game_vertex_id()aid = db.actor:id()for i, se_name in ipairs(object_names) doalife():create(se_name, a, vid, gvid, aid)endaem_manager.manage_money(1, "out") Есть хабар - пойдёт базар Ссылка на комментарий
Egor4ikModMaker 8 Опубликовано 5 Ноября 2014 Поделиться Опубликовано 5 Ноября 2014 (изменено) Я прошу прощения если нарушаю правила форума_(я не нашел темы по вылету именно с моим логом или проблема с таким же файлом)._Ув._администрация, прошу не удалять мое сообщение и рассмотреть как просьбу о помощи._Я столкнулся с вылетом в файле - "_g.script". Expression : ai().script_engine().functor(start_game_callback,functor) Function : CALifeSimulator::CALifeSimulatorFile : E:\stalker\patch_1_0004\xr_3da\xrGame\alife_simulator.cppLine : 64Description : failed to get start game callback Я понимаю что вылет связан с строчками вызова новой игры,_но что именно - не понимаю. Слезно прошу помочь потому что как я ни удалял файл, ошибка есть,_я даже пытался его изменить, но ошибка снова наведалась... (Заранее извиняюсь и каюсь в том что написал тут,_простите народ,_я здесь новичок._Ваш форум мне хорошо помог,_надеюсь поможете еще._Заранее спасибо и еще раз извиняюсь за свою невнимательность,_если есть тема по моему логу направьте меня туда._Заранее спасибо.) Изменено 6 Ноября 2014 пользователем Kirgudu Добавлено Kirgudu, 6 Ноября 2014 Прошу соблюдать правила пунктуации. [Eger.Overkill] // Ⓐ // Eкьюалити / Uнити // ☮ "Burn the rich // eat the rich" О себе : Какой-то Ноунэйм с олд форума , заядлый нарушитель общественного порядка и правил , рецидивист. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 5 Ноября 2014 Поделиться Опубликовано 5 Ноября 2014 (изменено) Не нарушает. Хотя вопрос в принципе ни разу не новый. Либо синтаксическая ошибка в упомянутом файле, либо в тех, на которые он ссылается. Проверяем внимательно то, что меняли. Если не получается - идем на lua.org, качаем компилятор, и пытаемся откомпилить упомяутые файлы. Если менял кто-то другой - вопросы к этому другому. Если проблема - результат попытки собрать в одном месте файлы из разных источников, то так делать не надо. Изменено 6 Ноября 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Romann 619 Опубликовано 8 Ноября 2014 Поделиться Опубликовано 8 Ноября 2014 (изменено) Доброго времени суток, я адаптировал нанокостюм, всё шикарно работает, но у пульта есть глюк, при перекладке, продаже или просто если выложить он активируется, а потом опять в инвентаре, из-за этого вылетают ахтунги, при принудительной чистке инвентаря(к примеру после снотворного Доктора или разрыва рюкзака). Чтоб было понятней вот здесь видно ахтунги при разрыве рюкзака Я не прошу взять и сделать за меня, просто подскажите какую и куда функцию прописать, чтоб этот пульт юзался как обычный предмет. Изменено 8 Ноября 2014 пользователем Romann Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 8 Ноября 2014 Поделиться Опубликовано 8 Ноября 2014 (изменено) Ну вот говорили же об этом уже... Какой костюм ? Куда адаптирован ? Как адаптирован ? Что вообще за пульт ? С точки зрения банальной эрудиции, в bind_stalker есть коллбэк на использование предмета - function actor_binder:on_use_object( item ), и есть на потерю function actor_binder:on_item_drop( item ). Вот куда и зачем прицеплен этот самый пульт, и почему он "опять в инвентаре" - это может сказать только телепат 80-го уровня. А они, как известно, всегда все в отпуске. Запилил, кстати, начало статьи в "академию". Далее будет дописываться. Изменено 8 Ноября 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Romann 619 Опубликовано 8 Ноября 2014 Поделиться Опубликовано 8 Ноября 2014 (изменено) Dennis_Chikin Калбек я уже пробовал, не помогает, (ну я не спец, может не правильно пробовал.), скрипты, как я понял, писал Монорох, так я не объясню что нано костюм, вот скрипты ( https://yadi.sk/d/HXyb9AXDcZtNa),там ориг. версия и адаптация скриптов, адаптировал на ОП-2 , ссылки на другие сайты не льзя, но вот описание , где качал : "Костюм работает в 5-ти режимах: Маскировка, броня, сила, регенерация, мобильность. Маскировка позволит быть невидимым на некоторое время. Сила - временно сможете переносить 250 кг. Мобильность позволяет бегать не теряя выносливости даже если вы немного перегружены. Регенерация - быстрое восстановление здоровья. Броня - максимальная защита от повреждений и восстановление состояния костюма, т.к остальные режимы его тратят и очень слабо защищают. Костюм озвучен.. В разных режимах разный худ масок, отсутствие звука шагов (стелссс..) Разное отображение иконок в инвентаре. Костюм в продаже у Сахарова, стоит ДОРОГО, заработать эти деньжища вполне реально, это все что я скажу.. И еще в конце содержимого вашего файла outfit.ltx в самом низу допишите строку #include "monnoroch_items.ltx" http://post-stalkera.ru/load/katalog_fajlov_dlja_ns_dmx_mod/adapted_nano_suit_crysis/1-1-0-60 Сейчас закоментировал в amk.script эти строчки : -- func_by_string["sleep_mon_nano_pult"] = function (params_string)-- mod_call("mon_nano_pult",params_string)-- end пульт стал нормально выкладываться, но перестал выполнять свои функции - при использовании исчезает. Изменено 8 Ноября 2014 пользователем Romann Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 8 Ноября 2014 Поделиться Опубликовано 8 Ноября 2014 (изменено) Пока шрифты с фоном не поправишь - даже смотреть не буду.Ссылки, кстати, очень даже льзя, но не вместо, а именно как указание на цитируемый оригинал. Всякие там аффтарские права и элементарная вежливость.Ну и кто теперь мешает перевесить вызов с потери предмета на использование ? А вообще, опять же, писал, что не надо всякую бяку в рот тянуть вместо того, чтобы тащить себе чужие скрипты, непонятно что делающие, взять нужные функции, и аккуратно добавить. То есть, вместо идиотского mod_call("mon_nano_pult",params_string) - которое когда-то было засshitой от модификаций, сразу проверить в on_use, и вызвать monnoroch.mon_nano_pult(). Изменено 8 Ноября 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Romann 619 Опубликовано 8 Ноября 2014 Поделиться Опубликовано 8 Ноября 2014 Dennis_ChikinЯ просто не скриптер, особо не разбираюсь, всё делаю с помощью проб и шибок. А можно подробнее , как сделать эту проверку и вызов? Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 8 Ноября 2014 Поделиться Опубликовано 8 Ноября 2014 тупо в лоб function actor_binder:on_use_object( item ) - добавляем if item:section() == "nano_pult" then monnoroch.mon_nano_pult(); return end Ну или что там вместо item. Если "я не скриптер", то тогда вообще не понимаю, как можно стыковать между собою кучу всякого странного винегрета, чтобы оно при этом еще и как-то работало. А если не в лоб - вообще давно пора перейти на динамические вызовы и динамические апдейты. 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 207 Опубликовано 10 Ноября 2014 Это популярное сообщение. Поделиться Опубликовано 10 Ноября 2014 (изменено) Для тех, кто пользуется модулем m_netpk от Artos.В прошлогодней (последней, выложенной автором здесь на форуме) версии модуля обнаружена и исправлена ошибка, которая приводила к вылету во время работы с абстрактной частью нет-пакета, а именно при срабатывании коллбэка, читающего абстрактную часть в момент её доступности.Кроме того, было уточнено название одного из флагов фонаря, но это на общую функциональность модуля не влияет. Ссылка на скачивание исправленной версии:https://yadi.sk/d/qVBvicSdQPHra За обнаружение ошибки и помощь в её исправлении спасибо @Charsi. Изменено 10 Ноября 2014 пользователем Kirgudu 3 4 Инструмент Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти