Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
iDreD 5 Опубликовано 20 Января 2010 Поделиться Опубликовано 20 Января 2010 (изменено) Строгое предупреждение от модератора Halford Это к чему вообще? Превью что такое не знаем. Пред в шкалу. Может как-то так? Изменено 20 Января 2010 пользователем Halford Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
Гость max_max_08 Опубликовано 20 Января 2010 Поделиться Опубликовано 20 Января 2010 Товарищи скриптеры, у меня маленькая проблема. Нужна функция которая при вызове рандомно выдает один из 6ти инфопоршней. И проверка, если он выдан то его повторно не выдовать, а выдать другой поршен. 2е и функцию прекондишн, если выданы все 6 поршней то диалог не показывать. Ссылка на комментарий
Garry_Galler 7 Опубликовано 20 Января 2010 Поделиться Опубликовано 20 Января 2010 (изменено) max_max_08 как то так делай таблица поршней - оставляем вверху local info_random = {"info_1","info_2","info_3","info_4","info_5","info_6"} прекондишен типа так function check_info() if (has_alife_info("info_1") and has_alife_info("info_2") and has_alife_info("info_3") and has_alife_info("info_4") and has_alife_info("info_5") and has_alife_info("info_6")) then return false -- то есть если все поршни выданы то вернем ложь - прекондишен не выполняется - диалог не появляется end return true --иначе вернем правда end рандомные поршни так function info_rnd() if not check_info() then --проверим есть ли еще не выданные поршни - если нет то прекращаем чтение дабы не получить бесконечный вызов return end --выберем поршень по случайному индексу из всех индексов таблицы local info = info_random[math.random(#info_random)] if not has_alife_info(info) then --если нет поршня то включим db.actor:give_info_portion(info) else info_rnd() --делаем рекурсивный вызов если условие не выполняется end end функции местами не менять. Изменено 20 Января 2010 пользователем Garry_Galler Ссылка на комментарий
Starter 238 Опубликовано 20 Января 2010 Поделиться Опубликовано 20 Января 2010 Подскажите как настраивать мехонический прицел у оружий(при неажатие правой кнопки мыши прицеливание происходит через механический прицел оружия)? Добавлено через 92 мин.: В принцепе понял как делать но всё не попаду в точку, откос метор на метор. Нет ли спец-проги по такой части или урока по такой часте, или хотяб в каких единицах там измеряется? Заранее спасибо за ответы!) ЯДиск папка с крутым схроном! Ссылка на комментарий
Monnoroch 6 Опубликовано 20 Января 2010 Поделиться Опубликовано 20 Января 2010 (изменено) Garry_Galler, function check_info() return not (has_alife_info("info_1") and has_alife_info("info_2") and has_alife_info("info_3") and has_alife_info("info_4") and has_alife_info("info_5") and has_alife_info("info_6")) end Изменено 20 Января 2010 пользователем Monnoroch Ссылка на комментарий
Guzerus 0 Опубликовано 20 Января 2010 Поделиться Опубликовано 20 Января 2010 (изменено) Ищешь в папке scripts файл dialogs_*.scripts В него ,в конец файла, копируешь текст. И в диалоге с каким-то неписем пишешь. <action>Dialogs_*.ТВОЁ ИМЯ ФУНКЦИИ</action> * это не знак такой,а окончание имени файла. Изменено 20 Января 2010 пользователем Guzerus Мой ник читается гузерус. Ссылка на комментарий
Dimmer 0 Опубликовано 21 Января 2010 Поделиться Опубликовано 21 Января 2010 Ребят! подскажите как можно сделать поменьше монстров на локациях? или убрать некоторых совсем? внятного ответа никто дать не может... Сообщение от модератора n6260 Усыпить. Прописать им бодрствование с 00.00 до 01.00. В моей шпаргалке написано. Ссылка на комментарий
iDreD 5 Опубликовано 21 Января 2010 Поделиться Опубликовано 21 Января 2010 (изменено) se_respawn.script - этим всё сказано. Изменено 21 Января 2010 пользователем кровоSTALKER Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
lekzd 1 Опубликовано 21 Января 2010 Поделиться Опубликовано 21 Января 2010 _Призрак_, ну не злись - мне в отличие от тебя вообще никто ничего не подсказывал alife():create(section,position,levelvertex,gamevertex) со скриншота возьмешь данные: levelvertex - lvid gamevertex - gvid position: надо создать переменную "position" (имя может быть любое) local position = vector().set(СЮДА ПИШЕШЬ ТО, ЧТО НА СКРИНЕ ПОСЛЕ СЛОВА "POS" С ЗАПЯТЫМИ) section - не знаю какая секция может быть у тайника - придется тебе поискать + к этому тебе еще надо найти мануал по тайникам (где-то точно есть) + вот статья как спавнить, чтобы это появлялось в начале игры: http://stalkerin.gameru.net/wiki/index.php...D0%B7_db.script i-igroman.ru - Мой, принципиально новый сайт о компьютерных играх Ссылка на комментарий
alex991 0 Опубликовано 21 Января 2010 Поделиться Опубликовано 21 Января 2010 А где найти конфиги арены? Я хочу добавить новые бои и спавн монстров. Такое возможно? Ссылка на комментарий
RvP 1 Опубликовано 21 Января 2010 Поделиться Опубликовано 21 Января 2010 alex991, скачай арена екстеншион мод. смотри в мастерской Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Garry_Galler 7 Опубликовано 22 Января 2010 Поделиться Опубликовано 22 Января 2010 malandrinus на данный момент "сомнительная" с технической точки зрения идея работает. Проверил сохранение примерно 30 мессиджей - буду записывать дальше - интересно на каком по счету вылетит. ну и проверочку потом поставлю перед записью, что в пакете еще есть место для записи.. мне интересно у меня все данные только в один пакет пишутся? то есть если они сохраняются через биндер объекта схрона, то пакет выделяется только один? на объект-схрон вообще или на каждый схрон - вот этого я пока не уяснил... если на объект вообще - то можно я так понимаю создать несколько однотипных биндеров и каждый вписать в конфиг одного из схронов (пока биндер общий на все - вписан в базовую секцию - остальные наследуются от основной) и затем в каждом биндере сохранять только одну из таблиц - а у меня их сейчас четыре штуки для разных данных.Так? Ссылка на комментарий
Malandrinus 615 Опубликовано 22 Января 2010 Поделиться Опубликовано 22 Января 2010 Garry_Galler, уф... ну давай поговорим о базовых понятиях ООП. То, что написано в файле биндера и то, что указывается в секции - это класс. Класс - это не объект, это описание объекта, тип, если угодно (хотя здесь это не совсем тип). Когда создаётся онлайновый объект, то создаётся объект класса. И к онлайновому объекту прицеплен именно объект. Потому кстати и биндер (binder), что от слова bind (привязывать, присоединять). Ещё раз: у каждого клиентского объекта свой объект биндера, даже если эти объекты одного класса. С точки зрения синтаксиса дилемма "один класс / много объектов" решается просто. У каждого метода есть скрытый первый аргумент self, в котором методу передаётся ссылка на конкретный объект. Таким образом один и тот-же метод может обслуживать множество объектов. Это достаточно типичный подход, используемый в большинстве современных языков. Таким образом self - это всегда текущий объект биндера. self.object - это соответственно клиентский объект, к которому этот биндер прицеплен. С нетпакетами ситуация такая. У каждого объекта есть буфер на 8кб, в котором объект хранит своё состояние. Это не нетпакет, а просто буфер. Нетпакет - это просто средство получать и записывать туда информацию. Сам по себе нетпакет - это обычный объект, которой можно создать и который автоматом удалится сборщиком мусора. Ещё раз, данные сохраняются в объекте, через нетпакет они просто туда передаются, для чего имеются методы класса биндера. Если уж быть корректным до конца, то в биндере на чтение используется не нетпакет, а почему-то reader. На практике терминология постоянно смешивается. Биндером называют и класс и объекты, говорят "сохранить в нетпакете", "сохранить в биндере" и т.п. Это и понятно, трудно в обычном разговоре постоянно сохранять предельную точность. По поводу стиля сохранения. Таки желательно придерживаться верной стратегии: 1. Сохранять минимум информации 2. Сохранять там, где надо. По первому пункту самая общая рекомендация - избегайте избыточности. Если конкретнее: - если есть строка, выбираемая из заранее известного набора, то лучше сохранять её номер, а не целиком строку - если можно что-то вычислить на основе другого, то лучше вычислить - для логических переменных можно использовать двоичные флажки Отдельного разговора заслуживают строки. Вообще нужда сохранять именно строки возникает не так уж часто. Между тем, как я заметил, народ почему-то весьма злоупотребляет строками. Как-то видел сохранение массива с переводом его в строку вида "a,b,c,d", сохранением в виде строки, а при чтении элементы распарсивались обратно. Ужас! Нет как правило никакой необходимости сохранять не строковые данные в виде текста. Они при этом занимают больше места и тратится существенно больше времени. Особенно при чтении как в случае с массивом выше, где фактически использовались регулярные выражения (!). Дополнительная неприятность - что место под хранение нужно заранее непредсказуемого размера, что делает невозможным предварительную оценку свободного места в буфере. Насчёт второго пункта соображения простые. Если данные относятся к конкретному объекту, то в нём и надо сохранять ("в его биндере"). Точнее здесь не скажешь. В конкретном случае надо включать мозг и думать, где и как сохранить. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Struck 61 Опубликовано 22 Января 2010 Поделиться Опубликовано 22 Января 2010 дайте полный список гейм\левел вертексов всех уровней Сообщение от модератора Halford ОМГ! А зачем левелов? Геймвертексы можно еще с помощью ggtool.pl пробить... Ссылка на комментарий
Starter 238 Опубликовано 22 Января 2010 Поделиться Опубликовано 22 Января 2010 В общем вопрос насчёт активации артов: Вот есть у мня арт я его активировал, кинул, появилась ановалия, но аномалия не долго стоит на месте и исчезнает. Вопрос: что сделать чтобы аномалия стояла вечно на месте, (Ну хотябы побольше времени, примерно пол часа по реальному времени) и действовала? Спасибо заранее за ответы! Строгое предупреждение от модератора n6260 Попробуйте писать без ошибок. Добавлено через 38 мин.: n6260 ок, но главное чтобы было понятно. ЯДиск папка с крутым схроном! Ссылка на комментарий
Malandrinus 615 Опубликовано 22 Января 2010 Поделиться Опубликовано 22 Января 2010 дайте полный список гейм\левел вертексов всех уровней Про список геймвертексов я здесь писал. Или, как верно говорят, используй ggtool.pl. Левелвертексы можно для текущего уровня перебрать с помошью функции level.vertex_position(i). только так не узнать, сколько их, и это только для текущего. Можно пробежаться по уровням и перебирать до вылета. Если совсем сильно надо, то смотрим исходники Бардака, и разбираем ручками файл level.ai нужного уровня. Только в самом деле зачем нужен список из миллионов левелвертексов? Кроме того, от мода к моду списки гейм и левел вертексов меняются. P.S.: Комрады, а зацените, какая нынче мОлодежь пошла. Не как узнать, не какой функцией, не где посмотреть... Дай ему, вынь да положь =) Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Halford 21 Опубликовано 23 Января 2010 Автор Поделиться Опубликовано 23 Января 2010 Назрел вопрос. При заходе на локу выдаю инфопоршень и шлю типс. Типс срабатывает да только дважды - два идентичных сообщения. Все это "висит" на апдейте... Дык вот, куда его "перевесить" или как заставить типс высветится только один раз? Ссылка на комментарий
Gonarh 5 Опубликовано 23 Января 2010 Поделиться Опубликовано 23 Января 2010 P.S.: Комрады, а зацените, какая нынче мОлодежь пошла. Не как узнать, не какой функцией, не где посмотреть... Дай ему, вынь да положь =) Угу, зажрались товарищи Вопрос: что сделать чтобы аномалия стояла вечно на месте, (Ну хотябы побольше времени, примерно пол часа по реальному времени) и действовала? не знаю как правильно, но я в секции [artefact_spawn_zones] в файле config\misc\artefacts.ltx выставил силу аномалии в 10 раз больше оригинала, и она у меня довольно долго была 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
Malandrinus 615 Опубликовано 23 Января 2010 Поделиться Опубликовано 23 Января 2010 Типс срабатывает да только дважды - два идентичных сообщения. Все это "висит" на апдейте... Интересно, почему так? Реально выдаётся при следующем апдейте? Думаю, надо делать это в netspawn. По идее, что переход на другой уровень, что загрузка игры происходят одинаково. При этом актор переходит в онлайн и однократно срабатывает netspawn биндера. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Garry_Galler 7 Опубликовано 23 Января 2010 Поделиться Опубликовано 23 Января 2010 malandrinus за подробный пост большое спасибо. Не буду лукавить - ООП для меня пока темный лес. и пока сам не научусь создавать классы и методы классов - в голове полного понимания все равно не будет. PS: string.format конечно хорошая функция но...пока с этими модификаторами разберешься - плюнешь и конкатенацию сделаешь :ny_ph34r_1: вот как мне отформатировать строку из шести строк чтобы там и знаки препинания и пробелы были.. типа такой text = obj_name.." "..verb.." "..adjective.." "..substantive.." "..str.."."..habar.."." monnoroch решил я сделать девайс для сохранения - объект флешка, куда индивидуально сохраняю только таблицу мессиджей. Вылетает на охранении 50-го мессиджа (раньше на 45-ом когда сохранял общаком все таблицы в один объект). Не могу понять почему меня не срабатывает проверка перед записью в пакет, что в нем еще есть место. function flash_binder:save(packet) if 180 + packet:w_tell() > 8192 then news_manager.send_tip(db.actor, "Места для записи больше нет.", 0, "default", 10000) return end get_console():execute("flash_binder:save") object_binder.save(self, packet) taynik_rnd.message_save(packet) end Я что то не так сделал? вообще эту проверку сюда надо вписывать? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти