Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
alex5773 1 330 Опубликовано 15 Декабря 2014 Поделиться Опубликовано 15 Декабря 2014 --[[ ---------------------------------------------------------------------------------------------- File : bind_trader.scriptDescription: Trader binding (Sidorovich)Copyright : 2012 © LA-teamAuthor : ...Editors :Last edit : 11.07.2013 [...]--]] ------------------------------------------------------------------------------------------------/ -------------------------------------------------------------------/ VARIABLEs--/ -----------------------------------------------------------------local tDbgName = {}local bDebug = false --/ false|true enabled\disabled debug mode--/ --------------------------local sModule = script_name()--/ -----------------------------------------------------------------local log = function(fmt, ...) _G.log(sModule..":"..tostring(fmt), ...) end--/ -----------------------------------------------------------------function InitDebug() --/#+#if db.tDbgName thentDbgName = db.tDbgNamebDebug = trueendend--/ -------------------------------------------------------------------/ Trader binding - registering of objects in binder--/ -----------------------------------------------------------------function bind(obj)if obj:clsid() == clsid.script_trader thenobj:bind_object( trader_binder(obj) )endend--/ -----------------------------------------------------------------------------------------------class "trader_binder" (object_binder)--/ -----------------------------------------------------------------------------------------------function trader_binder:__init(obj) super(obj)self.loaded = falseself.first_update = trueself.obj_id = obj:id() --/#+#self.obj_cid = obj:clsid() --/#+#self.log = bDebug and tDbgName[obj:name()] --/#+# for debug!endfunction trader_binder:reload(section)object_binder.reload(self, section)endfunction trader_binder:reinit()object_binder.reinit(self)db.storage[self.obj_id] = {}self.st = db.storage[self.obj_id]db.add_obj(self.object,self.obj_id,self.obj_cid)endfunction trader_binder:net_spawn(server_object)if not object_binder.net_spawn(self, server_object) thenreturn false --/>endlocal se_obj = alife():object(self.obj_id) --/ full server objectif not se_obj thenabort("%s:net_spawn:NPC=[%s/%s],server_object=NIL:<%s>", sModule, self.object:name(), self.obj_id, "Error!")return true --/>end--if self.log then log("net_spawn:NPC=[%s/%s],ID=[%s],alive=(%s)", self.object:name(), Get_CharName(self.object), self.obj_id, self.object:alive(), "") end --/#~#if self.object:alive() thenself:set_callbacks() --/< all CALLBACKs set herexr_gulag.setup_gulag_and_logic_on_spawn(self.object, self.st, se_obj, modules.stype_trader, self.loaded)endevent("npc_spawn"):trigger({obj=self.object,obj_id=self.obj_id,obj_cid=self.obj_cid,se_obj=se_obj,binder=self}) --/#+#>return true --/>endfunction trader_binder:net_destroy()if self.st thenevent("npc_destroy"):trigger({obj=self.object,obj_id=self.obj_id,obj_cid=self.obj_cid}) --/#+#>if self.st.active_scheme thenxr_logic.issue_event(self.object, self.st[self.st.active_scheme], "net_destroy")endendself:clear_callbacks()db.del_obj(self.object,self.obj_id,self.obj_cid)object_binder.net_destroy(self)endfunction trader_binder:update(delta)object_binder.update(self, delta)local oNPC = self.objectif self.first_update thenself.first_update = falseif not oNPC:alive() thenself:clear_callbacks()endendevent("mob_update_dbg"):trigger({binder=self}) --/#+#> for debugif oNPC:alive() thenif oNPC:is_talk_enabled() thenoNPC:set_tip_text("character_use")elseoNPC:set_tip_text("")endtrade_manager.update(oNPC) --/ trading updateif self.st.active_section thenxr_logic.issue_event(oNPC, self.st[self.st.active_scheme], "update", delta)endelseoNPC:set_tip_text_default()endevent("npc_update"):trigger({obj=self.object,obj_id=self.obj_id,delta=delta}) --/#+#>endfunction trader_binder:net_save_relevant()return trueendfunction trader_binder:save(packet)event("npc_save"):trigger({obj=self.object,obj_id=self.obj_id}) --/#+#>set_save_marker(packet, "save", false, sModule, self.object)object_binder.save(self, packet)xr_logic.save_obj(self.object, packet)trade_manager.save(self.object, packet)set_save_marker(packet, "save", true, sModule, self.object)endfunction trader_binder:load(reader)self.loaded = trueset_save_marker(reader, "load", false, sModule, self.object)object_binder.load(self, reader)if reader:r_eof() thenabort("load:SAVE_FILE_IS_CORRUPT:Obj=[%s],ID=[%s]:<%s>", self.object:name(), self.object:id(), "Error!")endxr_logic.load_obj(self.object, reader)trade_manager.load(self.object, reader)set_save_marker(reader, "load", true, sModule, self.object)event("npc_load"):trigger({obj=self.object,obj_id=self.obj_id}) --/#+#>end--/--------------------------------------------------------------------/ CALLBACKs--/------------------------------------------------------------------function trader_binder:set_callbacks()self.object:set_callback(callback.patrol_path_in_point, self.waypoint_callback, self) --/#?# do we need it?endfunction trader_binder:clear_callbacks()self.object:set_callback(callback.patrol_path_in_point, nil)endfunction trader_binder:waypoint_callback(obj, action_type, index)if self.st.active_section then-- log("waypoint_callback:action_type=[%s/%s]:[%s]", action_type, index, ">") --/#~#xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "waypoint_callback", obj or self.object, action_type, index)endend--/------------------------------------------------------------------------------------------------ Этого хватит, или всё перечисленное надо. Всё перечисленное не входит в одно сообщение Если что надо, предоставим 2 Ссылка на комментарий
alex5773 1 330 Опубликовано 15 Декабря 2014 Поделиться Опубликовано 15 Декабря 2014 (изменено) LA http://rghost.ru/private/59682551/f8d6d58ea059f21bbbdc2b91d2df996b Кстати вот если бы кто убрал лишнею пачку пистолетных патронов выпадающею с трупов, было бы вообще здорово Сюрпрайз от алпака Пистолетные патроны всего навсего надо вписать в предметы запрещённые в выпадения с трупов.Тогда бы выпадало сколько прописано.Обычно в Сталкере это в death_manager.script пишут.Ну это в Сталкере, а тут фиг его знает куда и как писать. Изменено 15 Декабря 2014 пользователем alex5773 Ссылка на комментарий
Macromelyan 0 Опубликовано 16 Декабря 2014 Поделиться Опубликовано 16 Декабря 2014 (изменено) Существует ли такая функция - "Проверка, есть ли у ГГ определенный инфопоршень?" db.actor:has_info( "определенный_инфопоршень" )И, соответственно, db.actor:dont_has_info()А также alife():has_info( 0, "определенный_инфопоршень" ) - даже когда самого актора нет. dc Изменено 16 Декабря 2014 пользователем Dennis_Chikin Ссылка на комментарий
Bobenich 2 Опубликовано 16 Декабря 2014 Поделиться Опубликовано 16 Декабря 2014 (изменено) Надо. Можно архивом куда-нибудь положить. upd: Мда... Это надолго... Причем где у них файл логики торговца - непонятно. Тоже искал без толку косякнул где то и Lost Alpha стала вылетать при загрузки самой игры Удалил всю gamedata и установил ранее сохранённую. Новую игру начал и прошёл основные КВ на Кордоне без сохранений. И о чудо!!! Всякий раз проходя границу полигона ассортимент у Сидора менялся. Проверял скупая бинты и делал скрины. Получается что игрок прописывая сейв блокирует логику торговца? Видимо Дэзик и Ко специально так сделали (или косяк) Изменено 16 Декабря 2014 пользователем Bobenich Ссылка на комментарий
AndrewMor 527 Опубликовано 16 Декабря 2014 Поделиться Опубликовано 16 Декабря 2014 (изменено) Кто может подсказать, в чем дело.Ставлю метку на рестриктор через нажатие кнопки в главном меню, все прекрасно работает, метка ставится. function test() local obj = alife():object( "generators_mess_doc_2" ) if obj then level.map_add_object_spot_ser(obj.id, "find_item_location", "Неизвестный КПК") endend Пытаюсь сделать то же самое, вызвав функцию в xr_effects из рестриктора:function end_peleng() local obj = alife():object( "generators_mess_doc_2" ) if obj then level.map_add_object_spot_ser(obj.id, "find_item_location", "Неизвестный КПК") end amk.g_start_timer("pel",0, 0, 3)end метка не ставится, хоть убей, хотя таймер прекрасно отрабатывает. Пробовал в функцию таймера совать сии строки - не работают. Все остальные - работают, а эти -нет. Кто подскажет, в чем дело?Вывести в лог что-нибудь сразу после if obj thendc Изменено 16 Декабря 2014 пользователем Dennis_Chikin Сталкер - наше всё! Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 16 Декабря 2014 Поделиться Опубликовано 16 Декабря 2014 (изменено) По вопросу об LA: Ну, то есть, понятно, что либо config\scripts, либо config\scripts\escape, cordon_sidor.ltx, но вытаскивать конкретный вариант надо из allspawn. сам конфиг торговли - скорее всего trade_trader.ltx - если выше я с логикой угадал. В файле вроде правильно все. Скрипты они, конечно, тупо переписали "венгеркой", оставив все основные глюкобаги, но зато теперь кто попытается разобраться - конкретно затрахается. Добрые люди... А ведь могли и через обфускатор прогнать, чтоб невосстановимо было. И вообще db* банально триплдесом зашифровать, а в движке расшифровывать. Сеансовым ключом, получаемым по инету при запуске... Однако, вопрос к залу: там логи совсем отключены, что-ли ? Было б что не так в конфигах - должен был бы сругаться. Изменено 16 Декабря 2014 пользователем Dennis_Chikin 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Eugen81 1 008 Опубликовано 17 Декабря 2014 Поделиться Опубликовано 17 Декабря 2014 (изменено) @stalk9r, для модов на основе АМК function fghegdg() get_console():execute("demo_record 1") --// вкл amk.start_timer("demo_off",30) --// 30 сек get_console():execute("demo_record 0") --// выкл amk.remove_timer("demo_off") endНе проверял. Изменено 17 Декабря 2014 пользователем Eugen81 1 1 Ссылка на комментарий
stalk9r 135 Опубликовано 17 Декабря 2014 Поделиться Опубликовано 17 Декабря 2014 (изменено) @Eugen81, увы, не работает. запускает демо, а выключать не хочет Вопрос по ОП-2 Как таймер установить? amk.start_timer("test1", 120.0, "") - не работает amk.start_timer("test1", 120, "") - не работает amk.start_timer("test1", 120) - не работает on_timer = 5000 - не работает function teleport() news_manager.send_tip(db.actor, "timer", nil, "nano", 3000) on_timer = 5000 news_manager.send_tip(db.actor, "timer 5000", nil, "nano", 3000) end Изменено 17 Декабря 2014 пользователем stalk9r Есть хабар - пойдёт базар Ссылка на комментарий
Eugen81 1 008 Опубликовано 17 Декабря 2014 Поделиться Опубликовано 17 Декабря 2014 Ага. Как-то с кондачка я подошел к вопросу. Прошу прощения. С таймером разобрался, в amk.script дописать ниже local func_by_string = {} func_by_string["имя_таймера"] = function (params_string) скрипт.функция() endа уже в скрипт.функция() писать что запускать таймером. Только с демо_рекорд проблема - не выключить его никак. Казалось бы- чего проще demo_record off, а такой команды нет. 1 Ссылка на комментарий
Overfirst 630 Опубликовано 19 Декабря 2014 Поделиться Опубликовано 19 Декабря 2014 Ребят, помогите плиз, знаю, что не та тема, но нигде не отзываются: мне нужно снять ограничение на распитие алкоголя и таскать много стволов в АМК, помогите пожалуйста! Добавлено Dennis_Chikin, 19 Декабря 2014 Вот ЭТА тема была та, которая надо. Следовало лишь правильно задать вопрос. Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 19 Декабря 2014 Поделиться Опубликовано 19 Декабря 2014 (изменено) amk_utils.script: --Callback на взятия предмета в инвентарь гг из ящика function actor_item_from_box(box, item) if item ~= nil then restriction_stock.restriction_of_stock(item) end end-- ограничение на количество предметов. Убрать if item ~= nil then restriction_stock.restriction_of_stock(item) end аналогично - для function actor_item_take(obj) amk_alcohol.script: function alcohol_drink(game_time) ... --если превысили порог в макс. кол-во бутылок, то смерть if ap.a >= alc_max_drink_bottles_to_death then reset_dream() reset_sober() reset_lose_hp() ap.a = 0 ap.b = 0 ap.f0 = 1 ap.f1 = game_time + 5 --minute amk.send_tip(game.translate_string("alc_too_much_die"),nil,nil,5) end -- убрать. Изменено 19 Декабря 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
ツМаLinK@ツ 35 Опубликовано 19 Декабря 2014 Поделиться Опубликовано 19 Декабря 2014 (изменено) amk_utils.script: amk_alcohol.script: у меня нет этих файлов Это AMK. Автор поста про него спрашивал. В оригинале ограничений вообще нет. dc Изменено 19 Декабря 2014 пользователем Dennis_Chikin Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 19 Декабря 2014 Поделиться Опубликовано 19 Декабря 2014 Может кто подскажет, что может означать вот эта строка Cannot find saved game ~~~ on_spawn_group_-_empty_community_name_for_bratok Перевод я делал. Вернее из-за чего она может появится. Группировки добавлял уже, такая вылазит первый раз. Вылета нет, просто неприятно. Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 19 Декабря 2014 Поделиться Опубликовано 19 Декабря 2014 Могу только телепатически... Не news_main.script -ли, часом, чего-то хочет ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
AndrewMor 527 Опубликовано 20 Декабря 2014 Поделиться Опубликовано 20 Декабря 2014 (изменено) Подскажите, кто знает, каким образом можно отловить момент обыска конкретного трупа? Если в биндере - то в какой функции?xr_motivator/bind_monster: function motivator_binder:use_callback( obj, who )dc Изменено 20 Декабря 2014 пользователем Dennis_Chikin Сталкер - наше всё! Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 20 Декабря 2014 Поделиться Опубликовано 20 Декабря 2014 Может кто объяснит, что не так. Заспавнил стол на Свалке. ; cse_abstract properties section_name = physic_object name = gar_stol_potap position = -75.8089981079102,1.79499995708466,8.79100036621094 direction = 0,0,0 version = 118 script_version = 6 ; cse_alife_object properties game_vertex_id = 329 distance = 0 level_vertex_id = 129048 object_flags = 0xffffff3a custom_data = <<END [collide] ignore_static END ; cse_visual properties visual_name = physics\decor\stol_sher ; cse_ph_skeleton properties ; cse_alife_object_physic properties physic_type = 0x3 mass = 100 Как только к нему подходишь и толкаешь, он разваливается, но такой же стол на Агро, заспавнен также, ни каких проблем, стоит крепко как вкопанный. Почему он тогда на Свалке разваливается? 1 Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
AndreySol 215 Опубликовано 21 Декабря 2014 Поделиться Опубликовано 21 Декабря 2014 подходишь и толкаешь, он разваливаетсяМогу ошибаться, но чтоб объект в игре разваливался он должен быть на классе P_DSTRBL. А для "physic_object" прописан класс O_PHYS_S(у меня по крайней мере).Визуала такого "physics\decor\stol_sher" у меня нет, не могу потестить. Возьми другой для пробы из physics\stol. Ссылка на комментарий
AndrewMor 527 Опубликовано 21 Декабря 2014 Поделиться Опубликовано 21 Декабря 2014 Всем привет, прошу помощи. Почему работает такая логика переключателя: [logic] active = ph_button@active[ph_button@active]on_info = {+warlab_antenna_1_off} ph_idle@nilanim = lab_primary_switcher_idletooltip = tips_warlab_presson_press = ph_button@deactivate %=yan_gluk%[ph_button@deactivate]anim = lab_primary_switcher_offon_timer = 500 | ph_idle@nil %+warlab_antenna_1_off =play_snd_from_obj(908:ambient\switch_1) %[ph_idle@nil] и не работает вот такая: [logic]active = ph_button@active[ph_button@active]on_info = {+generators_message_doctor_2} ph_button@activate[ph_button@activate]on_info = {+warlab_antenna_1_off} ph_idle@nilanim = lab_primary_switcher_idletooltip = tips_warlab_presson_press = ph_button@deactivate %=yan_gluk% [ph_button@deactivate]anim = lab_primary_switcher_offon_timer = 500 | ph_idle@nil %+warlab_antenna_1_off =play_snd_from_obj(908:ambient\switch_1) %[ph_idle@nil] хотя поршень "generators_message_doctor_2" выдается совершенно точно? В чем тут дело? PS: мне нужно, чтобы изначально переключатель был неактивен, а становился активным только после выдачи нужного поршня. Могу ошибаться, но чтоб объект в игре разваливался он должен быть на классе P_DSTRBL. А для "physic_object" прописан класс O_PHYS_S(у меня по крайней мере). Визуала такого "physics\decor\stol_sher" у меня нет, не могу потестить. Возьми другой для пробы из physics\stol. Такая же байда и у меня. Стол, стул, кровать разваливаются. Для всяких кружек, тарелок, ложек еще пишу строку "fixed_bones = link", но для стола, стула, кровати такой способ не катит - вылет с руганью на wrong fixed bones, видать, без костей модели. Сталкер - наше всё! Ссылка на комментарий
AndreySol 215 Опубликовано 21 Декабря 2014 Поделиться Опубликовано 21 Декабря 2014 (изменено) и не работает вот такая А как именно не работает ? Переключатель не становится активным ? Или что там у тебя происходит ? Стол, стул, кровать разваливаютсяНу вообще-то, если я не ошибаюсь, для того чтоб объект в игре мог развалиться, недостаточно ему класс P_DSTRBL прописать. Еще вроде должна быть дополн. папка типа "prt" в которой должны запчасти лежать от этого объекта - движку ведь надо знать что заспавнивать на место разрушенного объекта.А с твоим столом все-же не понятно - если после разрушения на его месте появляются обломки явно подходяшие для него, значит он P_DSTRBL и папка "prt" имеется. Хотя может я не все правильно понимаю... А на счет костей в объектах - так они вроде к разрушаемости\не разрушаемости отношения не имеют ? Изменено 21 Декабря 2014 пользователем AndreySol Ссылка на комментарий
Charsi 440 Опубликовано 21 Декабря 2014 Поделиться Опубликовано 21 Декабря 2014 Визуалы запчастей разрушаемого объекта пишутся в секцию [destroyed] в юзердате модели. Кроме того в настройке кости имеется флажок breakable, чтобы указывать что она может отрываться от модели. Но это работает только лишь для объектов некоторых классов (P_DSTRBL, SCRPTCAR). 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти