Перейти к контенту

proper70

Жители
  • Число публикаций

    89
  • Регистрация

  • Последнее посещение

  • Дней в топе

    5
  • AMKoin

    61 [Подарить AMKoin]

Весь контент пользователя proper70

  1. proper70

    Скриптование

    Господа, вопрос: можно ли в ТЧ скриптово сделать ГГ неуязвимым к хитам на короткое время? Если да, то как? Как вариант, сделать конфиг арта со 100% защитами от всего, и вешать его на пояс. Но как скриптово повешать арт на пояс? Может, есть еще какие варианты? С броником такой вариант не проходит, т.к. броник в ТЧ защищает только сам себя...
  2. proper70

    Скриптование

    Кстати, по звукам и по скорости загрузки игры. По звукам: Очень странно, что у ПЫСов нет обьекта звук, который можно создать через alife():create(). Как с рестрикторами и прочими вспомогательными фичами. А ведь как было бы просто: сделал alife():create("sound_object") с его логикой, как у рестриктора, указанием пути к файлу и когда играть, а когда замолчать - и все)) Я тут просто в .ОП-2 делал сюжет по поиску тайников по звуку и реально пришлось изобретать велосипед, реализуя запуск и отключение звуков по сюжету) Но копаясь в скриптах, я понял, что ПЫСам это просто было не нужно - нет у них таких квестов - вот они и не сделали) А насчет быстродействя: Buusty сегодня наконец-то вычистил алспаун от дублирующих путей (их просто невероятное количестово было) и он пишет, что ОП1 стал грузиться чуть ли не быстрее чем оригинал ТЧ. А у меня оригинал ТЧ вообще грузится 10-15 секунд. Так что вот так, уважаемые Господа) А классы... они только ПОВЫШАЮТ производительность, и никак не понижают - это основы ООП)
  3. proper70

    Скриптование

    Господа! Может не в тему, но вот я иногда заглядываю в эту тему и просто восторгаюсь терпению Артоса и иже с ним. Можно я скажу тем кто не может разобраться со спикерами, передачей предметов и прочими я бы сказал, очевидными вещами: вы просто скачайте последнюю солянку а лучше оп1, перенесите в отдельную папку папку config и scripts, поставьте себе notepad++ и используйте поиск фразы по файлам. И смотрите, как ваши пожелания сделаны у пысов или в солянке. Проблемы со спикерами? Поиск по файлам фразы first_speaker ответит на все ваши вопросы. Просто скопируйте уже рабочий код и поправьте на свои значения. Не перекладывается предмет из гг к неписю или в нычку - поиск по фразе transfer_item решит ее. А если не знаете с чего начать поиск - вспомните, где в игре есть подобное, найдите этот код по любой фразе, по диалогу например, или по описанию и дальше по цепочке поиском по ключевым словам. А если вы хотите научиться азам ООП на сталкере, просто ковыряя файлы - то у вас ничего не выйдет - вы начали с конца. Настоятельно рекомендую купить книгу основы ООП или похожую и внимательно изучить ее. Без этих знаний вы простоянно будете блудить в очевидных вещах, так ничему и не научитесь, и только зафлуживаете тему. Чтобы научиться читать - нужно как минимум выучить алфавит. Чтобы научиться считать - нужно как минимум выучить цифры. Чтобы научиться программировать в сталкере - нужно как минимум понять что такое объект, класс, наследование и чем конфиги отличаются от скриптов, а также чем серверный объект отличается от клиентского. Иначе у вас ничего не выйдет и для вас только один вариант - тупое копирование уже рабочих скриптов. Я не хочу хвастаться, но я 99% всех своих проблем решил простым поиском по скриптам и конфигам. Конечно, я знаком с основами ООП и это очень сильно мне помогало в пониманиии скриптов. Это поможет и вам)
  4. proper70

    Скриптование

    Вобщем, опять не знаю, куда лучше написать, решил написать сюда) В процессе изготовления ОП-2 неоднократно возникала мысль попробовать сделать так, чтобы неписи не уходили в оффлайн при достижении лимита switch_distance. Например, для снайперского задания. Чтобы неписей валить не со 150 м, а с 300, а то и больше. В описании к СВД ведь написано, что эффективная дальность 700 м, а реально только на 150 пострелять есть возможность... Можно сказать, что совершенно случайно на АС был обнаружен сталкер на вышке на базе Свободы, который в оффлайн никогда не уходил - все время был виден в бинокль, с любого места локи. Это mil_freedom_stalker0004 в alife_l07_military.ltx. Анализ его конфига показал, что у него уникальный набор предикатов: Второго такого набора нет ни в чистом ТЧ, ни в НС. Подстановка его конфига другим неписям привела к восхитительному результату: все эти неписи постоянно оставались в онлайне - на любом удалении от гг. И их логика полностью обрабатывалась как нужно. Благодаря этому в ОП-2 уже будет отличный квест, в котором нужно ликвидировать участников в определенном порядке с расстояния не менее 300 м. Но почему-то по этому конфигу в онлайне не оставались неписи группировки Монолит. Экологи, Бандиты, Военные - без проблем, а вот Монолитовцы - не хотят. И это сподвигло меня провести основательное исследование факта неухода некоторых неписей в оффлайн при удалении на расстояние, большее алайфа. И результатами этого исследования я хочу здесь с вами поделиться) Все действия выполнялись на алспауне последней Солянки. Я сделал следующее: поставил switch_distance = 0, выставил неуязвимость, начал НИ, заспавнил себе кучу телепортов и биорадар, подкрутил биорадар, чтобы он показывал всех на расстоянии 1000м и пошел гулять по Зоне) И при switch_distance=0 (в оффлайне) я обнаружил на локациях следующих неписей: Так что, используя эти конфиги, вполне реально делать снайперские квесты на отстрел неписей на большом расстоянии. А чтобы гг не подбирался к ним ближе, обозначаем ему рестриктором зону, из которой он должен выполнить задание, и проваливаем задание при выходе из рестриктора)
  5. Обновился потому что систему переустановил. А старая версия на оффсайте недоступна. Кто может скиньте версию Perl 5.12.00 build1200, с ним я работал
  6. Вобщем, подмена xrGameSpy на аналогичный из ЧН не проходит. Дело в том, что в этом файле содержится версия игры, и, во первых, в меню показывается версия ЧН а нет ТЧ, и, во вторых, в скриптах кое-где стоят проверки на текущую версию, и версия определяется некорректно, что приводит, в частности, к вылету при попытке поговорить с Арни. Поэтому всем, кто заменил этот файл на ЧН, настоятельно рекомендуется откатиться назад. А решением этой проблемы пока остается отключение для игры доступа в интернет.
  7. Привет! такой вопрос: Установил с оффсайта последний Actile Perl - при сборке алспауна от последней Народной Солянки появился такой лог: Раньше все было чисто. Алспаун собирается, игра вроде работает. Поясните плиз, что это значит? Я ничего не сломал?
  8. Найдено самое простое решение проблем с сервером GameSpy, из-за которого не запускалась игра. Просто замените оригинальный файл xrGameSpy.dll в папке bin на аналогичный из сталкера ЧН. Сейчас серевер уже заработал и проверить нет возможности, но человек, который мне это написал, сказал, что после подмены у него все заработало) просьба желающих потестить эту подмену на версиях 1.0004 и 1.0006 и отписаться мне в личку, если будут какие проблемы с игрой) Если все ок, то подмененный xrGameSpy.dll будет включен в релиз ОП-2. Народ iFolder
  9. Уважаемый, вы (как и многие другие здесь) забыли по п.9.1 правил: Честно говоря, вы, уважаемые игроки, уже поднадоели со своими советами, как и что нам лучше делать в модерировании и курировании форума. Просите новостей по ОП-2 - хорошо - идем на встречу - выкладываем. И в итоге что? Зафлудлили тему на несколько страниц, да еще и учите нас, как нам правильно выполнять функции кураторов и модераторв. Открыть тему новостей ОП-2 - или не открыть... Думаю, мы сами в состоянии разобраться, как лучше это делать - без ваших советов. Для этого нас и назначили.Поэтому вердикт такой: будете дальше флудить здесь про ОП-2 - больше не выложим ни одного видео, и даже скрина. Когда выйдет ОП-2 тогда и увидите. Еще раз напоминаю: здесь обсуждается прохождение ОП-1 а не будущее ОП-2. Будущее ОП-2 на этом форуме не обсуждается нигде - какой ОП-2 будет - такой и будет. Не нравится что-то - милости просим - сделайте свой мод, каким вы его видите сами. Прошу извинить за резкость, но мягкие намеки, к сожалению, не действуют. Я пишу это как модератор и как один из авторов выкладываемых видео. Уважаемый bubulyka: замечание не вам лично а всем конкретно. Хотя и вам, тоже)
  10. Господа! Кто служит или работает в армии и может сделать так, чтобы взвод солдат на построении громко прокричал одну-две фразы, записать их на любой цифровой носитель, кроме смартфона - на что-нибудь поприличнее, и прислать мне ее - прошу откликнуться в личку)
  11. Господа, вопрос: есть бессмертный перс, на конфиге сахарова. Мне нужно сделать, чтобы он полностью игнорировал все бои и не рвался валить врагов. Я сделал логику ему: но он срывается в бой сразу после спавна... чтобы он стоял на месте - нужно полностью зачищать территорию вокруг него... может, можно как-то без этого обойтись? ЗЫ на секцию meet не смотрите - это анимация и автоначало разговора - она на бой не влияет... Artos, да, спасибо, разобрался) только для меня это еще пока не "штатная" логика, я в ней недавно, поэтому и спросил тут)) спасибо за ответ) Код убрал под спойлер)
  12. proper70

    Скриптование

    Господа, подскажите. Хочу заспавнить труп непися вне аи сетки (в подвале - там нет аи сетки) Я прочитал про назначения флажков, нашел этот: flUsedAI_Locations (8-й бит) и написал так:
  13. proper70

    Скриптование

    Еще раз привет! В алспауне есть параметр direction. Как я понял, он разворачивает объект относительно сетки координат при спавне. А можно ли как-то задавать этот параметр через нетпакет при скриптовом спавне? Мне нужно разворачивать рюкзаки-тайники в пространстве. Для актора есть функция set_actor_direction, а для объектов, так понимаю, нету... ЗЫ: Пример задавания story_id при скриптовом спавне я нашел в НС:
  14. proper70

    Скриптование

    Здравствуйте! Не знаю, куда лучше написать, поэтому написал сюда. Понадобилась Ваша помощь, т.к. сам не смог разобраться) Ковыряю Народную Солянку в попытке сделать ОП-2. Впервые спавню скриптом квестовика. Он стоит в Баре, где Долговязый и Доцент.
  15. То о чем ты говоришь - это уже сама атака, ее механизм. А мне нужно отследить момент когда монстр увидел первый раз ГГ и только начал атаку, момент переключения его логики с прогулочной (или какой там еще) на атаку.
  16. Господа! Кто подскажет, как можно проверить атакует ли монстр ГГ или нет? Включился у него режим Данжер или нет? Т.е. атакует ли он ГГ или просто сидит на месте спокойно? Инетересуют только монстры и только атака на ГГ. Это первое и втроое: вообще включился ли у них режим данжер на другого непися или монстра, не только на ГГ?
  17. proper70

    Работа с текстурами

    Здравствуйте! Нужна помощь по моделям и текстурам. Если вкратце, то для ОП-2 мне нужно сделать несколько иконок инвентаря из jpeg. Картинки есть готовые, их нужно только в иконки конвертировать и добавить и иконэквипмент. Модели не нужны, только иконки. Я сам попробовал в фотошопе, но ничего не вышло. И еще нужно сделать одну модель простую до ужаса) и одну - немного переделать. Кто сможет помочь - черканите в личку - скину подробности.
  18. proper70

    Работа с текстурами

    Здравствуйте! Подскажите чайнику: имею win7 64x.Скачал и поставил Photoshop CS5 extended, скачал DDS плагин NVIDIA отсюда, все поставил 64х - Фотошоп не открывывает DDS файлы пишет, что неподдерживаемый формат. и в окне сохранить как нет расширения DDS. Что я сделал не так? Какие версии фотошопа и плагина лучше использовать, чтобы все заработало?
  19. proper70

    shoc keylogger ver.1.0

    Здравствуйте! В силу того, что изготовление ОП-2 повело меня в неисследованные ранее дебри скриптов, которые не используются совсем в Солянке, а некоторые - даже у ПЫСов - то постоянные вылеты при экспериментировании вынудили меня переделать кейлоггер через pcall, дабы уменьшить количество загрузок и запусков игры. Не буду вдаваться в подробности - кому надо, тот поймет. Вот мой код из keylogger.script, который по нажатию клавиш F3 и F4 выполняет скритпы из двух разных файлов:
  20. Здравствуйте! Не буду объяснять, для чего, но мне нужно сделать следующее: Спавним 10 объектов класса inventory_box с разными визуалами. А-ля рюкзаки-тайники в НС. Их логика содержится в файле treasure_inventory_box.ltx: [logic] active = ph_idle@enable [ph_idle@enable] nonscript_usable = true;можно ли обыскивать тайник tips = st_search_treasure;всплывающий текст "Проверить тайник" при приближении к тайнику так вот: мне нужно, чтобы при приближении к каждому из 10 объектов выдавалось разное всплывающее сообщение. Можно ли это сделать функцией? Или только прописывать каждому объекту свою отдельную логику с жестко прописанным текстом? Я пробовал конструкции вида %=...% но ничего не работает - просто выводится название прописанной функции, но она не выполняется. Ответ лучше в личку, если не трудно.
  21. Сообщение от модератора proper70 Обновил фикс в шапке. Отключен автосейв при запущенной варке артов. Вместо автосейва будет просто выдаваться сообщение, что запущена варка артов. Также предпринята еще одна попытка победить проваливание артов под текстуры. Сообщение от модератора proper70 Вновь обновил фикс. Забыл учесть одновременно несколько запущенных варок) теперь все ок. Кто успел скачать - перекачайте еще раз)
  22. proper70

    Autosave

    Здравствуйте! Решил и я поделиться своими экспериментами с автосейвом. Вроде удалось-таки добиться того, чтобы автосейв стал полностью безглючным. Другими словами, все сейвы рабочие и в них сохраняется ВСЯ информация (все нужные поршни, задания, переходы, спавн и прочее). [spoiler=Как-то так: ]Выкинуто сохранение при обновлении задания. Сейвов и так полно - хватит на все случаи. Сейв делается при взятии и сдаче задания. Название файла состоит из заголовка задания, не из первого подзадания, как в оригинале. news_manager.script: local news_text_save = game.translate_string(task_title) if type == "new" then amk.start_timer("autosave", 3, news_text_save) elseif type == "complete" then amk.start_timer("autosave", 3, news_text_save.." - завершено") end Автосейв перед переходом на локу сделать пока не удается, но похоже, это и не нужно - достаточно того, что есть. Сделан автосейв при использовании ручных телепортов. spawn_level_changer.script: в описание телепортов добавляем строку autosave с указанием локации, на которую телепортируемся (на примере телепорта Стрелка): ["arhara_obman"] = { keep = true, sjedobniy = true, pay = 20000, autosave = "l07_military", goto_func = { "exit_as2" } далее, в функцию teleport_start: function teleport_start(obj_sect, obj_id, sjeli) local sim = alife() local actor = db.actor -- autosave local to_level = teleports[obj_sect].autosave if to_level and to_level ~= level.name() then u3_utils.savegame_lc(to_level) end ........ остальной код и спавн телепорта выносим в еще один таймер, чтобы сейв успел создаться: -- jumpTo(teleports[obj_sect].goto_func[math.random(#(teleports[obj_sect].goto_func))]) amk.start_timer("teleport_jumpto", 0.2, teleports[obj_sect].goto_func[math.random(#(teleports[obj_sect].goto_func))]) в u3_utils.script пишем функцию: function savegame_lc(to_level) savegame("Телепорт "..game.translate_string(level.name()).." - "..game.translate_string(to_level)..". День "..amk.game_days()) end которая создает сейв с указанием, откуда и куда телепортировались. Например, если использовать телепорт Стрелка сразу по взятии, в Саркофаге, то будет создан сейв с именем "Телепорт Саркофаг - Армейские Склады. День 23" День - это игровой день нахождения ГГ в зоне. И, наконец, в amk.script пишем наши таймеры: func_by_string["teleport_jumpto"] = function (params_string) spawn_level_changer.jumpTo(params_string) end func_by_string["autosave"] = function (params_string) if u3_utils.can_save() then u3_utils.savegame(params_string) else start_timer("autosave", 3, params_string) end end Обратите внимание, что во второй функции таймер вызывает сам себя. Это нужно, чтобы обойти один редкий, но неприятный момент. В некоторых диалогах поршни и спавн идут после разных фраз. Достоверно известное место в НС - первый диалог с Клыком в пещере на НЗ. Там поршень на задание выдается после последней фразы клыка, когда он посылает гг в варлаб, а переходы спавнятся после ответа гг на эту фразу Клыка. и возникает рандомная пауза между выдачей задания (стартом таймера на автосейв) и спавном переходов. И если автосейв произойдет до того, как гг ответит на фразу Клыка, то, как вы понимаете, переходы еще не заспавнятся и в сейве их не будет. Чтобы обойти эту проблему - автосейв не выполнится, пока диалог не будет закончен. Для этого стоит вызов функции can_save, которая проверяет, можно ли сохраняться. Если нет - то сейв передвигается еще на 3 секунды. И так до тех пор, пока гг не закончит разговор. В u3_utils.script функция can_save имеет следующий вид: function can_save() -- не сохраняем во время открытых окон, когда нельзя сделать квиксейв return not (db.actor:is_talking() or has_alife_info("ui_car_body") or has_alife_info("ui_inventory") or has_alife_info("ui_pda")) end тут на всякий случай отсечены все возможные открытые окна: диалог/торговля/инвентарь/нычка/пда. т.е. те места, где и квиксейв не сделаешь. В этом случае получается гарантия, что в сейв попадет весь нужный спавн и вся нужная инфа. Получается полная эмуляция, как будго гг закончил диалог и нажал квиксейв. Единственный момент здесь - это когда игрок за один диалог берет/сдает несколько заданий. тогда в очередь становятся несколько автосейвов, и по окончании диалога они будут все одинаковые, т.е. содержать все выданные за время диалога поршни и спавн. Это, конечно, лишнее, но лучше, пусть будет лишнее, чем будет чего-то не хватать)) Вот вроде и все. По аналогии можно сделать сейв преед/после любого события, в частности, в ОП-2 я сделал сейв после выброса, перед сном и ЧУ. ЗЫ: да, еще один момент: функция формирования списка сейвов в окне загрузки почему-то не любит запятую в имени файла. Она вполне допустима в виндоус, а вот в Сталкере - нет) причем сейв создается с запятой в названии, а вот в списке он обрабатывается криво, причем через раз) Я не стал с этим разбираться, просто нужно выкинуть запятую из имени сейва, и все. Поэтому команды отсева левых символов в u3_utils должны выглядеть так: save_param = string.gsub(save_param,"[><|?*/\\,:\"%b/n]","") save_param = string.gsub(save_param,"[%%][c][\[][%a%d%p%s]*[\]]","") Вроде, ничего не забыл) Надежных вам автосейвов!
  23. Сообщение от модератора proper70 Обновил фикс в шапке. Адаптировал и сильно переработал Autosave для ОП. Решил выложить сейчас для тестирования, дабы потом в ОП-2 спокойно играть не боясь переигрывать из-за глюка пол-игры. НИ не нужна - все заработает сразу после установки. Автосейв происходит при каждой выдаче/сдаче/обновлении задания, кроме доков Воронина. Кто сейчас собирает доки: автосейв по докам сначала будет работать при подборе каждой бумажки, затем отключится при получении следующей локи. Также автосейв происходит перед каждым сном, выбросом, ЧУ, а также перед использованием ручных телепортов. В названии сейвов, где это нужно, пишется название локи и игровой день, в который был создан сейв. При телепортации в названии указывается, откуда и куда телепортировались. Много тестировал, проверил разные варианты, какие смог - сейвы не бьются и всё спавнится. Просьба игроков потестить автосейвы, попользоваться ими и все замеченные глюки или пожелания писать мне в личку с пометкой "Автосейв". Так как в связи с автосейвом перед сном был несколько переработан менеджер сна, то сюда также вошла небольшая правочка по сну для будущего ОП-2. Теперь можно вздремнуть 10 минут. Это будет очень полезно при варке артов, а варить их в ОП-2 придется. И очень много. Очень хочется сделать автосейв непосредственно перед переходом с локи на локу - крайне полезная вещь, если поймал глюк и нужно переигрывать. Но есть большие технические трудности в отлавливании момента срабатывания level_changer. Если кто сможет помочь и подсказать, как это можно надежно сделать - буду очень признателен. Всё пишем мне в личку. Вобщем, потестите и отписывайтесь о косяках)
×
×
  • Создать...