Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Stalk15 27 Опубликовано 24 Июня 2010 Поделиться Опубликовано 24 Июня 2010 malandrinus Ну-у...Его секция известна и профиль... Вот, что у меня пока что имеется: Основная функция erlik'а: local count = 0 function uni_spawn_mnogo_itemsov(tab_items,tab_where) local pos, lvid, gvid, id for k, v in pairs(tab_items) do if type(tab_where)=='table' then for k, v in pairs(tab_items[k]) do count = k for i=1, count do alife():create(v,vector():set(tab_where['x'], tab_where['y'],tab_where['z']), tab_where['lv'],tab_where['gv']) end end elseif type(tab_where)=='string' then for k, v in pairs(tab_items[k]) do count = k for i=1, count do alife():create(v, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end elseif type(tab_where)=='number' then local obj = level_object_by_sid(tab_where) if obj ~= nil then id = obj:id() pos = obj:position() lvid = obj:level_vertex_id() gvid = obj:game_vertex_id() elseif obj == nil then obj = alife():story_object(tab_where) id = obj.id pos = obj.position lvid = obj.m_level_vertex_id gvid = obj.m_game_vertex_id for k, v in pairs(tab_items[k]) do count = k for i=1, count do alife():create(v, pos, lvid, gvid, id) end end end end end end И "вызывная" есть(только работает, когда Id определен): function spawn_pda_in_killer() local tab_items ={{[1]="PDA"} local tab_where = 006 this.uni_spawn_mnogo_itemsov(tab_items,tab_where) end Нужно преобразовать 2 функцию, чтоб спавнила "Без Id'ному НПС", я подумал, но ни чего толкового не пришло в голову...Зная, что не смогу, все равно попробовал.:-).Вот, что получилось(не полностью - как дальше - не знаю): function spawn_pda_in_killer() for a=1,65534 do --наверно надо добавить Перебор айди local obj = alife():object(a) if obj and obj:section_name() == "Секция нужного НПС" then local tab_items ={{[1]="PDA"} local tab_where = 006 this.uni_spawn_mnogo_itemsov(tab_items,tab_where) end Незнаю куда деть local tab_where = 006 - может просто стереть и аргумент tab_wherе убрать...Да и ваще, в правильную "сторону" я копаю... Дальще не знаю, как делать.Знаю, что написал полную лажу, но старался ...Не подскажете, как дельше правильно сделать? Ссылка на комментарий
DiXares 1 Опубликовано 24 Июня 2010 Поделиться Опубликовано 24 Июня 2010 Товарищи! Есть что нибудь, что запускается при запуске игры? Нужно вызвать функцию при появлении меню. Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 24 Июня 2010 Поделиться Опубликовано 24 Июня 2010 (изменено) TREWKO, Есть, меню . Просто сделай некий флаг который будет запрещать выполнение функции в последующие разы . ui_mainmenu.script Изменено 24 Июня 2010 пользователем меченый(стрелок) Ссылка на комментарий
DiXares 1 Опубликовано 24 Июня 2010 Поделиться Опубликовано 24 Июня 2010 Вот из него пробовал вызывать... но получаю вылет: ui_main_menu.script:15: attempt to call field 'DiXarALLVersion' (a nil value) Вот что вызываю: function DiXarALLVersion() if ReadGameVersion then DiXarALLVersionPrefetch = VerGame.."Мод: "..ReadModSolution.."Версия: "..ReadModVersion.."Фикс: "..ReadFixVersion else DiXarALLVersionPrefetch = "Мод: "..ReadModSolution.."Версия: "..ReadModVersion.."Фикс: "..ReadFixVersion end return DiXarALLVersionPrefetch end Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 24 Июня 2010 Поделиться Опубликовано 24 Июня 2010 (изменено) TREWKO, а как вызывал и ,собственно, из какого метода? Если ты вызываешь как self:DiXarALLVersion() То тогда он тебе верно ошибку выдал . В этом случае нужно сделать DiXarALLVersion() методом класса ну или убрать из вызова self: ************* function main_menu:InitControls() ... IIDiXarGetVersion.DiXarALLVersion ... end В общем ничего "такого" я не заметил.Без сталкера помочь не могу,увы. Странно это . Думаю быстрее будет взять код из любого другого мода(+добавить чтение ini файлика,как ты у себя сделал - если я правильно понял Read.. это функции).Из того же Amk. **************** Где self? Я думал что твоя функция находится в самом ui_mainmenu.script , поэтому предположил возможные варианты вызова. Первый "предложенный" мною вариант работает железно,хотя и не вижу явных причин почему у тебя не находит твою функцию. Изменено 24 Июня 2010 пользователем меченый(стрелок) Ссылка на комментарий
DiXares 1 Опубликовано 24 Июня 2010 Поделиться Опубликовано 24 Июня 2010 (изменено) меченый(стрелок), function main_menu:InitControls() ... IIDiXarGetVersion.DiXarALLVersion ... end Так оно выглядит. Потом и вызывал так: function main_menu:__init() super() ... IIDiXarGetVersion.DiXarALLVersion ... end Где self? Вобщем взял, и перенёс всю функцию в ui_main_menu.script... заработало.~! Спасибо за помощь! Изменено 24 Июня 2010 пользователем TREWKO Ссылка на комментарий
ФеНиКс 2 Опубликовано 24 Июня 2010 Поделиться Опубликовано 24 Июня 2010 как отыграть рандомный звук из таблицы, с позиции НПС находящемся на расстоянии 1 метра от ГГ. самое главное для меня узнать вот это: "...с позиции НПС находящемся на расстоянии 1 метра от ГГ" Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 24 Июня 2010 Поделиться Опубликовано 24 Июня 2010 (изменено) ФеНиКс, local tbl={"music3","music2","music1"} *** if npc:position():distance_to(db.actor:position())<1 then sndname=tbl[math.random(#tbl)] --создание саунд_обьекта и проигрывание(см. lua_help.script) end Изменено 24 Июня 2010 пользователем меченый(стрелок) Ссылка на комментарий
Kirag 39 Опубликовано 24 Июня 2010 Поделиться Опубликовано 24 Июня 2010 (изменено) Starter А можно ли добавить несколько фонарикоф? Купил один он светит желтоватым ну обычной лампочкой, Купил по дороже уже светит галогенкой ярко и дальше, Купил третий светит в разброс а не в даль. Как такое сделать? Вполне возможно. Почему конфиг фонарика находится по адресу config\models\objects\light_night.ltx? Правильно, он прописан инклудом в модели фонарика! Сделать копию модели фонарика, но прописать другой файл конфига. Вуаля! Остаются мелочи - подменить фонарик скриптом и прописать его в конфигах актора и НПС в attachable_items, чтобы работал. На акторе разница заметна сразу, на НПС, если выдать новый при уже включенном фонарике - после С/Л, и надо скрипты юза фонарика ковырять. max_max_08 Привет всем! Возможна ли проверка на то в каком режиме стрельбы сейчас находится оружие? Т.е. одиночными, по три, очередью. Это возможно через нет-пакет оружия, update-пакет. В функциях АМК параметр называется updcurrent_fire_mode Изменено 24 Июня 2010 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
sobaka 0 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 помогите! хочу засунуть в свой мод схему обыска трупов из АМК. но проблема скопировал файл watcher_act.script, и все ссылки на него в файлах - modules.script, xr_logic.script, xr_motivator.script проверил в игре. всё работает отлично, только одна маленькая проблемка. слева экрана постоянно высвечивается огромное количество разных сообщений (с виду похожи на какие-то логи - что где произошло на английском языке с техническими параметрами). как это убрать? Ссылка на комментарий
ФеНиКс 2 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 как сделать чтобы НПС ударил ГГ в Морду? (постпроцесс, просто постпроцесс не катит, надо чтобы с анимацией это всё произошло.) и как сделать, так чтобы ствол нельзя было выкинуть? Ссылка на комментарий
Гость max_max_08 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 Попробуй в консоли(~) вписать rs_stats off Ссылка на комментарий
RvP 1 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 ФеНиКс, 1 смотри как скриптово в модах удар по лицу при диалоге с оружием 2 аля нож Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
-=Krovosos=- 64 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 Не подскажите, почему при спавне скриптом нельзя писать такую логику в params.custom... [smart_terrains]\nnone = true\n[logic]\nactive = remark\n[remark]\npath_walk = td_attack_st_walk_start_7\non_info = {+td_st_attack} attack_start\n[attack_start]\npath_walk = td_attack_st_walk_start_6 Ключевой кусок выделен... Просто когда получаю этот самый инфопоршень - вылет с руганью на скрипт xr_logic... Почему полюбому можно только так: on_info = {+td_st_attack} nil??? И как можно всеже заставить непися идти по новой точке по получению инфопоршня? Карусель-карусель - это радость для нас, прокатись на нашей ка-ру-се-ли!-=Krovosos Mod=- 4.0 Final для S.T.A.L.K.E.R. SHoC 1.0004 (336 Мб): Мод Финальный патч для -=Krovosos Mod=- (1 Мб): Патч Адаптация -=Krovosos Mod=- под S.T.A.L.K.E.R. SHoC 1.0006 (1 Мб): Адаптация Ссылка на комментарий
sobaka 0 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 нет. там совсем другое. это как на пда сообщения приходят - так всё выглядит. но их бесконечно много и в тексте их как раз примерно то, что отображается в rs_Stats Ссылка на комментарий
SanekKZN 0 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 (изменено) Vovan0792, проще в params.custom не заполнять логику, а сделать ссылку на файл и уже его заполнять логикой. Так удобнее гораздо. Но вылет, как я могу предположить, из-за того, что не существует в игре такого поведения, как [attack_start] Есть [walker], [remark], [camper] и иже с ними. Исправь [attack_start] на [walker], либо на [walker@attack_start] - как удобнее. Вот: [smart_terrains]\nnone = true\n[logic]\nactive = remark\n[remark]\npath_walk = td_attack_st_walk_start_7\non_info = {+td_st_attack} walker\n[walker]\npath_walk = td_attack_st_walk_start_6 Хм, да и в ремарке как-таковом не предусмотрены точки путей - где заспавнил, там и будет стоять. Вот так будет правильнее: [smart_terrains]\nnone = true\n[logic]\nactive = walker@1\n[walker@1]\npath_walk = td_attack_st_walk_start_7\non_info = {+td_st_attack} walker@2\n[walker@2]\npath_walk = td_attack_st_walk_start_6 Если эти пути, по которым непись ходит, то всё нормально, но для стоячих путей, обязательно нужно добавить координаты path_look - куда будет смотреть. Изменено 25 Июня 2010 пользователем SanekKZN Ссылка на комментарий
-=Krovosos=- 64 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 SanekKZN, спасибо, помог... честно - вообще думал что как назвать это [attack_start] или [walker] без разницы... Для меня открытие)))) А вот теперь такая проблемка... Как поставить чтобы непись начинал "боевые действия" когда враг от него на расстоянии не больше допустим 15 метров... Знаю, что там есть различные игноры, которые можно поставить, но точно не понимаю что надо писать... Карусель-карусель - это радость для нас, прокатись на нашей ка-ру-се-ли!-=Krovosos Mod=- 4.0 Final для S.T.A.L.K.E.R. SHoC 1.0004 (336 Мб): Мод Финальный патч для -=Krovosos Mod=- (1 Мб): Патч Адаптация -=Krovosos Mod=- под S.T.A.L.K.E.R. SHoC 1.0006 (1 Мб): Адаптация Ссылка на комментарий
Garry_Galler 7 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 (изменено) malandrinus Огромнейшее спасибо за пример но требуется еще немного твоих пояснений. Вариант с деаттачем на каждое закрытие инвентаря мне не подходит - у меня кнопки нужны не просто для нажатия и произведения определенных действий но и как визуальные указатели что данная опция включена\отключена. При деаттаче и повторном аттаче на открытие инвентаря кнопки разумеется принимают дефолтное состояние (выключены). Что совершенно не нужно - они должны хранить свое состояние в течение всей игры до перезагрузки. Поэтому деаттач я поставил на net_destroy в биндер эктора. Проблем Show(false\true) ни каких - теперь все работает: ствол в слоте - кнопки показываются, ствола нет в слоте - кнопки (весь статик с приаттачеными к нему кнопками) исчезает. Но вот при перезагрузке опять получаю сразу вылет - на это раз еще в процессе самой загрузки. Как деаттачу: -- внешние локальные переменные local inventory = nil local stat = nil local rec_wnd = nil local initial = false local inventory_open = false local update_wnd = true function DetachWnd() --if inventory~= nil and rec_wnd~= nil and stat~= nil then if inventory~= nil then inventory:DetachChild(stat) rec_wnd = Gravi() -- на всякий случай получим объект окна заново - хотя разницы не было - вылет и так и сяк rec_wnd:AttachChild(stat) -- приаттачиваем статик к пустому окну stat = nil rec_wnd = nil end end ну это для наглядности как проверяю условия: function OnOpenInventory(info_id) if info_id == "ui_inventory" then inventory_open = true inventory = level.main_input_receiver() -- на всякий случай будем обновлять объект инвентаря на каждое открытие elseif info_id == "ui_inventory_hide" then inventory_open = false end end function UpdateInventory() -- на апдейте if inventory_open then if CheckWeaponInSlot() then -- если вещь слоте if update_wnd then if not initial then -- если аттача статика еще не было InitialWnd() --[[ приаттачим - это практически аналог твоей функции on_show() только у меня там сначала создается статик, затем кнопки и кнопки аттачатся к статику, а сам статик уже к инвентарю inventory:AttachChild(stat) ]] end if not stat:IsShown() then -- если статик не виден ShowWnd() -- покажем end update_wnd = false -- закроем блок от апдейта end else -- в слоте нет нужного ствола if initial and stat:IsShown() then -- если было приаттачивание и статик показывается HideWnd() -- прячем статик end update_wnd = true end elseif not inventory_open then update_wnd = true end end в общем хочется понять - в чем проблема? в логе ничего информативного кроме кроме стека вызовов. PS: конечно еще остается вариант с запоминанием текущего состояния кнопок и их восстановлением после каждого деаттача и аттача на закрытие\открытие инвентаря. Что я и попробую сделать. Изменено 25 Июня 2010 пользователем Garry_Galler Ссылка на комментарий
ФеНиКс 2 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 RvP не имею я такой возможности=( трафик не резиновый=( ___________________________________________ как скриптово в морду удар сделать? т.е. не с анимациями НПСов и со всем прилежащим. при использовании предмета. Т.Е. сделать такое условие: Если ГГ использовал предмет и он на расстоянии удара, то ударить в морду. Ссылка на комментарий
Garry_Galler 7 Опубликовано 25 Июня 2010 Поделиться Опубликовано 25 Июня 2010 ФеНиКс а по твоему удар в морду это что? Это и есть анимация нпыса. Плюс анимация камеры. И что тебе мешает объединить в одном скрипте вызов этой анимации у NPC , звуковой эффект удара и анимацию камеру fusker.anm и прочие нужные тебе условия? ты загляни в функцию actor_punch - файл xr_effects. Условия твои очень неясные - какой нпыс должен бить? (любой\не любой) .Как должна определяться его юзердата (через логику или методы)? И прочие нюансы. ...ну сколько Artos может вас учить формулировать вопросы максимально точно... Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти