Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Roman_Dmitrov2 0 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 Подскажите кто нибудь, возможно ли сделать кнопу такую же как "Торговать" в диалоге рядом с ней и назначить на эту кнопку скрипт? Если можно, подскажите как. Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 Из "Справочника по ф-циям и классам": int rank() -- получить ранг сталкераint character_rank(); С первым методом понятно, а что тогда второй возвращает ? Или он для установки\изменения ? Ссылка на комментарий
Charsi 440 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 @UnLoaded, rank() это только для сталкеров, а character_rank() это тоже самое, но работает и для монстров. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 (изменено) @Charsi Сделал такую проверку для актера(ГГ): на входе на Свалку, сценка с Юриком. Перед началом сценки: rank = 0 и character_rank = 0. После удачного отстрела бандюков: rank = 0 и character_rank = 3. А это как понимать ? Что из этого тогда является рангом актера(ГГ)\НПСа ? Еще, в файле ranks.script в ф-ции get_obj_rank_name(obj) нашел такой момент: -- HACK if obj.m_story_id ~= nil then obj_rank = obj:rank() else obj_rank = obj:character_rank() end типа, если есть SID, то читаем rank(), а если нет - то character_rank(). Это то-же нифига не понял. Изменено 16 Августа 2015 пользователем UnLoaded Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 (изменено) Онлайновые и офлайновые. Изменено 16 Августа 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 Онлайновые и офлайновые. А подробнее все-же можно ? Что\кто\почему онлайновые, а что оффлайновые ? Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 obj.m_story_id есть только у серверного объекта. У game - :story_id() Соотвественно, rank() и character_rank() Ну lua_help.script же - он для кого лежит ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Vadyanchikus 5 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 Всё никак не могу добиться результата.В общем, повторяю: хочу сделать, что бы при взятии флешки у ГГ в КПК появлялась инфа в разделе Дневник. Инфопоршни и артиклы я забил, но, походу, не читается скрипт, отвечающий за выдачу поршня при взятии флешки.Вот скрипт: function proceed() local actor=db.actor if actor:object("borov_flash") and not has_alife_info("borov_flash_found") then actor:give_info_portion("borov_flash_found") **(тут я ещё хотел написать return true, но нужно ли?)** end end Это уже 3-ий вариант скрипта. У меня есть предположение, что скрипт не срабатывает из-за того, что флешку мне выдаёт Волк (в качестве теста конечно).Помогите, пожалуйста. Скрипт делал по подобию таких же ситуаций, как, например, флешка Стрелка или Круглова. Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 но, походу, не читается скрипт, отвечающий за выдачу поршня при взятии флешки. Ну так ты и должен обеспечить, чтоб он читался(хотя правильнее, наверное - выполнялся). В файле bind_stalker.script(лежит в gamedata\scripts) найди ф-цию: function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) --game_stats.update_take_item (obj, self.object) end Внутри нее добавь вызов своей ф-ции, как-то так: function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) --game_stats.update_take_item (obj, self.object) имя_файла_в_котором_твоя_ф-ция.proceed(obj) end Ф-цию свою немного измени, примерно так: function proceed(obj) if obj:section() == "borov_flash" and not has_alife_info("borov_flash_found") then db.actor:give_info_portion("borov_flash_found") end end Не забудь, что "borov_flash" должно быть именем секции твоей флешки в конфиг-файле(в items.ltx или в quest_items.ltx). Ссылка на комментарий
Vadyanchikus 5 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 @UnLoaded, так, ну допустим. Имя секции правильное, скрипты поправлю.Но вопрос всё равно остаётся: почему МОЙ скрипт не выполняется? Почему другие такие же работают, а мой нет? Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 Но вопрос всё равно остаётся: почему МОЙ скрипт не выполняется? Лично я не ясновидящий. Если бы ты показал все, что ты добавил в попытках заставить работать свой скрипт - можно бы было увидеть ошибку. А так, извини... Ссылка на комментарий
Vadyanchikus 5 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 Да не беда, покажу. Я перечислю названия файлов + приведу куски, которые я в них вставил.dialogs_darkvalley.script: function proceed() local actor=db.actor if actor:object("borov_flash") and not has_alife_info("borov_flash_found") then actor:give_info_portion("borov_flash_found") end end До этого была такая попытка: function borov_flash_found if db.actor:object("borov_flash") and not has_alife_info("borov_flash_found") then db.actor:give_info_portion("borov_flash_found") end end info_l05dark_valley.xml: <info_portion id="borov_flash_found"> <article>borov_flash_found</article> </info_portion> storyline_info_darkvalley.xml: <article id="borov_flash_found" name="Borov_flash" group="Found_PDA" article_type="journal"> <text>borov_flash</text> </article> На всякий пожарный выложу сам предмет.quest_items.ltx: [borov_flash]:identity_immunities GroupControlSection=spawn_group $spawn="devices\quest_items\borov_flash" ;$prefetch=32 class=II_ATTCH cform=skeleton visual=equipments\item_flash_2.ogf radius=1 ;script_binding=stalker.object_init quest_item=true description=borov_flash_desc inv_name=borov_flash_name inv_name_short=borov_flash_name inv_weight=.05 inv_grid_width=1 inv_grid_height=1 inv_grid_x=11 inv_grid_y=28 cost=1000 Плюс ко всему файлы типа stable_**, но они, я думаю, без надобности. Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 (изменено) @Vadyanchikus И шо ? А где-же сам вызов этих самых proceed() или borov_flash_found() ? Как игра(движок) должны узнать, что при появлении этой самой флэшки в инвентаре актера(ГГ) надо вызвать Вашу ф-цию ? Добавляй все, что я писал касаемо bind_stalker.script, и будет тебе счастье . P.S. имя_файла_в_котором_твоя_ф-ция.proceed(obj) замени на dialogs_darkvalley.proceed(obj) Изменено 16 Августа 2015 пользователем UnLoaded Ссылка на комментарий
Vadyanchikus 5 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 Хорошо, у меня нет выбора НО! Почему другие такие функции не требуют вызова? Почему они и так работают? Не понимаю!!!! Ссылка на комментарий
Карлан 1 049 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 @Vadyanchikus, потому что те файлы вызываются, если ты впишешь в proceed() darkvalley_tasks. то должно все пройти гладко, система терминально идиотская, советую всем ее переписать, и поделится, ибо мне самому лень . Я у себя только от явного ахтунга избавился. @UnLoaded, он имеет ввиду систему поддержки тасков оригинала, с ней работают немногие, но пусть будут они прокляты. Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 НО! Почему другие такие функции не требуют вызова? Почему они и так работают? Ты имеешь в виду ф-ции в файле dialogs_darkvalley.script ? Ссылка на комментарий
Vadyanchikus 5 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 Нет, например, agroprom_tasks.script: function proceed() local actor = db.actor if actor:object("agr_nii_security_shedule_file") then actor:give_info_portion("agr_nii_security_shedule_file_have") -- gunslinger's flash elseif actor:object("gunslinger_flash") then actor:give_info_portion("agr_find_ghost_start") return true end end Это функция на получение инфы из флешки Стрелка.Или bar_rostok.script: function proceed() local actor = db.actor -- Bar Rostok -- выдача информации с флешки профессора if not has_alife_info("bar_ecolog_research_normal") and not has_alife_info("bar_ecolog_research_corrupted") and actor:object("bar_ecolog_flash") then if has_alife_info("bar_rescue_research_corruped") then actor:give_info_portion("bar_ecolog_research_corrupted") else actor:give_info_portion("bar_ecolog_research_normal") end end end Они-то работают. Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 (изменено) Нет, например, agroprom_tasks.script: Ах вон ты о чем... Ну смотри: сначала в bind_stalker.script: function actor_binder:on_item_take(obj) level_tasks.proceed(self.object) end затем в level_tasks.script: for k, v in pairs(level_scripts) do v.proceed() -- здесь в одной из "v" будет скрипт agroprom_tasks.script end и затем в agroprom_tasks.script: function proceed() -- и все что в ней, уже описанное выше end А ты говоришь "не требуют вызова". Просто ты не знал, где они происходят, эти вызовы. Изменено 16 Августа 2015 пользователем UnLoaded 1 Ссылка на комментарий
Карлан 1 049 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 Ах вон ты о чем... он имеет ввиду систему поддержки тасков оригинала, с ней работают немногие, но пусть будут они прокляты. Таки да. Ссылка на комментарий
Vadyanchikus 5 Опубликовано 16 Августа 2015 Поделиться Опубликовано 16 Августа 2015 (изменено) А-а-а-а... Блин, мне ещё во многом стоит разобраться. Прям спасибо!!! Я понял, в чём была проблема: я пихал скрипт в файлы типа **локация**_dialog, а надо было в **локация**_tasks. Короче, всё заработало.Но парочка вопросов в догонку, если ты не против:1) я заметил одну проблему с Сидоровичем: если при первой его фразе сразу отвернуться, то мы будем слышать его монолог, а когда он закончит и повернуться обратно, то увидим, что он продолжает проигрывать свою анимацию. Короче говоря, если отвернуться от Сидора, то он продолжит базарить, но не будет отыгрывать анимацию, т. е. анимацию он отыгрывает только тогда, когда мы на него смотрим. При этом, пока он не отыграет анимацию, мы с ним не сможем заговорить. Как это исправить?2) если быстро выйти (выбежать) из бункера Сидора и он вдогонку что-то скажет типа "удачной охоты", то мы услышим его голос даже на улице и так, будто он стоит перед нами. Как это исправить? Изменено 16 Августа 2015 пользователем Vadyanchikus Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти