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

Народная 2010 разработка


Рекомендуемые сообщения

"Что у нее внутри, и как это сделать лучше". Для тех, кто уже разбирается в скриптах, конфигах, текстурах и "других страшных словах" ©, и имеет желание и время действительно делать их лучше.
См. подробности в первом посте.

Тема НЕ является ни столом заказов, ни службой техподдержки, ни справочным бюро.

Изменено пользователем Dennis_Chikin
  • Нравится 2
  • Полезно 1

Посмотрел сегодня еще раз "народное творчество" и "ООП + много", и возникло как бы пожелание.

 

Изменения, не затрагивающие совместимость сэйвов, не увеличивающие требования к железу, и не меняющие все-все-все глобально ("не совместим с модами, затрагивающими скрипты xxx") - сюда, остальное - в народное творчество.

 

Там, где идет ветвление - делать правки следющим образом: делить на неизменяемую часть (по прежнему совместимую с чистой солянкой и другими модами) - и эту часть - сюда, а меняемую - то есть, отдельный скрипт, конфиг, поключающийся инклудом с непустым содержимым, и т.д. - в творчество/темы модов.

 

То есть, скажем, пачку новых стволов оформляем как weapons.ltx:

#include vasya_pupkin_kewl_weapons.ltx

 

и пустой vasya_pupkin_kewl_weapons.ltx

 

- и это кладем сюда. Остальное - в творчество. Аналогично с файлами торговли и прочим.

Правки Рэя по глушителям - однозначно сюда.

 

Ну и в скриптах не правим в 10 местах списки голубых бандитских курточек с целью добавить еще 20 видов (в крапинку, в полосочку, в горошек, в цветочек), а выносим все что есть в отдельную таблицу, и кладем скрипты и солянковские чистые таблицы отдельно сюда, а с 20 новыми голубыми бандитскими курточками - в творчество.

 

 

По идее должно сэкономить всем кучу времени.

По тому что ну я вот не знаю, как кто собирается правки того же мотиватора сейчас интегрировать в тот же ООП. Если, конечно, собирается.

 

 

P.S. И ради бога, перестаньте уже плодить сложносочиненные пути к моделям и текстурам. Изрядная часть вылетов и тормозов соли вызвана этими самыми путями. В скриптах надо править минимум в 5 местах - это что я посмотреть уже успел и для новой допы поправили. Скорости работы введение дополнительных проверок, кстати, явно не добавляет.

Проще класть текстуры с моделями туда, где для них место изначально отведено.

 

Насчет стволов - это ты не по адресу обращаешься.

Надо начинать с оружейной темы, хотя там уже об этом говорили. Но для особых ленивых личностей не является предупреждением, они даже незаметят того что ты там накарябаешь в теме.

Единственное решение - взять всю инициативу на себя, но кто за такое возьмется?

Я как бы уже понял как сокращать кол-во текстур у стволов, но это еще тот геморой.

 

А насчет разделения я бы внес корректив - после длительного накопления важных модов, переносить их в основу. А то если так порядочно накопиться, то тормозить будет сильнее чем сейчас.

Это как насчыпать в чашку чая сахар и неразмешать. Вроде сахар сладкий, а чай все равно горький(во понесло меня :P )

http://www.sendspace.com/file/sui525

 

Поправлено 2 ошибки: неработающая на 1.0004 "универсальная адаптация" (потерялась одна строчка), и поганейший "благоприобретенный" глюк с как правило безлоговым вылетом при встрече с собаками (простыми).

upd: да, потери ножей и бинокля выключены нафиг, и да будет так. По той причине, что "а у меня выбивали, и ничего за это не было" - не аргумент, пока не будут просмотрены все внутренности. Я вот уверен, что в парочке мест те же неписи вполне могут попытаться из них пострелять, если подберут. Ну или еще что-нибудь странное сделать.

 

Galil, изряднейшая часть глюков и тормозов соли - результат нагромождения минимодиков и миниаддончиков один поверх другого. Вылеты по e-parent - классический тому пример. Когда один и тот же предмет, не проверяя его существования, удаляют 4 минимодика подряд.

Ну или хватание/переодевание сталкерами костюмов - там вообще пэстня народная, слова нецензурные...

 

Что бывает при "глобальном" добавлении всего подряд в основу - демонстирует свежевыложенный фикс. Оба бага возникли при "тотальном" совмещении "кумулятивов", перевыпускаемых по 4 раза в день.

 

 

Геморрой с текстурами даже не просто в сокращении, а в тотальном перелопачивании всего, начиная с оригинала.

Изменено пользователем Dennis_Chikin
Посмотрел сегодня еще раз "народное творчество" и "ООП + много", и возникло как бы пожелание.

Увы, но утопия.

Новых "больших" разработок под Соль нет. Все сделано уже давно, включая сам ООП и прочее. Далее идут лишь разные адаптации одного с другим.

Чтоб реализовать предложенное, надо начинать почти все с "0". Будет ли этим кто заниматься - очень большой вопрос.

Ну и, как известно, модели оружия практически полностью берутся из темы Ааз`а, "пожелалки" насчет стволов действительно лучше туда - может тогда их и услышат.

Но опять же - будет ли кто-то заново переделывать то, что создано за годы - очень большой вопрос.

Гм... Похоже, тему борьбы с багами стоит открыть.

 

Вылеты в Припяти кроме собственно контролерских (по зомбированию), еще дают 3 лишних сталкера - нейтрала.

До нужных правок таки придется на минимальном радиусе алайфа их убивать.

 

Верно для всех солянок и всех модов на основе.

 

MAV, судя по сложившейся культуре мододелания - уверен даже, что не только исправляться не будет - ни где, но и будет продолжаться все в том же духе. По тому как всеми авторитетами авторитетно сказано, что во всем всегда виновато либо несертифицированное лично авторитетами железо, либо заведомо "левые" правки и чужие моды.

Изменено пользователем Dennis_Chikin
Какие именно монстры были глючные? В чем это проявлялось? Что изменилось с предлагаемыми правки? Монстры стали добрее и легче убиваются?

Они теперь на своих местах, и не грозят вылетом "из-за слабого железа и посторонних правок"

В каком моде была глючная химера в Лабиринте? В техподдержке 1408 не было ни одного сообщения об этой химере.

Разумеется, в чистой солянке 14.08 как минимум. Были просто вылеты без лога. Техподдержкой принципиально не рассматриваемые. Ибо рэндом. То, что причиной была химера, насильно впихиваемая с периодичностью цикла апдейтов в чужой смарт - я увидел уже при работе над новой допой.

 

Тот же самый вопрос. О каком моде речь? В чем проблема со свободовцами в Варлабе? Есть примеры?

Вообще-то было полезнее всем знать хоть краткое, но четкое описание существующей проблемы (вылета) и соответствующую правку, решающую эту проблему.

"Народная Солянка" от 14.08, она же от 3.09. Проблема: в смарт емкостью 19 неписей назначено 20. Результат - повисание смарта либо непися (что успеет раньше) с вылетом "stack overflow" или вообще отсутствием лога.

 

Изменено пользователем Dennis_Chikin

Ага, дошло. Я ж там в итоге проще сделал, чем думал сначала. Вот дифф ТОЛЬКО по варлабу:

--- 14_08/gamedata/scripts/gulag_escape.script    Tue Dec 13 02:02:27 2011
+++ 14_08_new/gamedata/scripts/gulag_escape.script    Sat Dec 24 14:46:00 2011
@@ -829,6 +829,12 @@
             in_rest = "", out_rest = ""
         }
         table.insert(sj, t)
+    t = { section = "logic@warlab_svobodovzu_walker19",
+            idle = 0,
+            prior = 1, state = {0}, online = false,
+            in_rest = "", out_rest = ""
+        }
+        table.insert(sj, t)
        end

А вот в xr_gulag ищем ручками: много их развелось.

-- загрузка работ
function gulag:load_jobs()
...
-  self.capacity               = math.min( capacity, self.capacity )
+ if self["name"] == "warlab_svobodovzu" then self["capacity"] = 20
+ else self.capacity               = math.min( capacity, self.capacity )
+ end
    self.capacity_non_exclusive = self.capacity

Это, то что под спойлерами, для пуристов, и для вставки в моды на основе соли.

 

По результатам разбора полетов с "универсальной адаптацией" наверное стоит написать коротенькую справку:

Итак, что это такое: это попытка подружить 1.0004, 1.0005 и 1.0006. То есть, теперь не надо ставить ни каких дополнительных скриптов, и сэйвы с одной версии должны работать на другой версии. Не важно с какой на какой.

 

НО. По-прежнему должна стоять правильная dll для FN2000 с компьютерным прицелом и т.д. - фоторужье там (кстати, это последнее надо переделать, и отвязать нафиг от dll - на самом деле довольно просто), винотрезы всяческие из творчества...

Кроме того, в system.ltx должна стоять правильная версия - в строке current_server_entity_version = 6 для 1.0004 и current_server_entity_version = 7 - для последующих. (Вообще, кстати, изменения system.ltx и user.ltx модами - плохая идея. Есть тьма мест, куда все нужное засовывается, не трогая оригинал.)

 

Эти два пункта не имеют отношения к скриптам - это требования движка. То есть, определенные шаманские действия предпринять можно, но будет еще менее удобно, чем сейчас.

Изменено пользователем Dennis_Chikin
Dennis_Chikin, а не пробовали решить проблему разоружения НПС? Постоянно с этим сталкиваюсь на разных этапах игры. Вот и сейчас половина Свободы и Долга без оружия ходят. Где-то ведь "собака зарыта"?

Выхожу один я на дорогу, АКМ при мне — и слава Бoгу!

Несколько слов о скорости и оптимизации:

 

в цикле проверяем:

    local v = { ["x"] = 1, ["y"] = { ["y"] = 1 } }
    local x = v.x
    local y,z
    for i = 1, 65535 do y = x end
    for i = 1, 65535 do y = v["x"] end
    for i = 1, 65535 do y = v["y"]["y"] end

y = x: 260.15713500977, y = v.x: 553.06848144531, y = v.y.y: 952.81982421875

    for i = 1, 65535 do y = v["x"]; y = v["x"] end
    for i = 1, 65535 do z = v["x"]; y = z; y = z end
    for i = 1, 65535 do y = v["y"]["y"]; y = v["y"]["y"] end
    for i = 1, 65535 do z = v["y"]["y"]; y = z; y = z end

y = v.x: 931.75006103516, y = z: 698.38153076172, y = v.y.y = 1820.8509521484, y = z: 1122.001953125

 

Ну и так далее... Сложносочиненные таблицы на надцать уровней вложенности с надцатью обращениями в цикле на 100500 итераций - сами понимаете...

Изменено пользователем Dennis_Chikin
Dennis_Chikin, Конечно не стол заказов,но было бы неплохо из meet_scripts убрать вообще понятие visibiliti(извините если ошибся -английский знаю плохо) оставить только usabilti ,тупящие ,недающие прохода неписи просто достают иногда,я уменьшил время ожидания ответа в 10 раз и то играть намного комфортней стало,Ну или оставался бы визибл параметр,но реакция на него была бы не остановка,а допустим просто фраза приветствия(в реальной жизни мы же не останавливаемся перед каждым встречным)

Я им где-то уже подкручивал. Не помню где.

К сожалению, это не спасает от бреда, прописанного в логике явно. Ага, самого Волк, зазывно машущий руками с 10 метров, не то, чтобы раздражает, а даже, я бы сказал, несколько пугает...

 

Однако по проблеме терминаторов имею сказать следующее:

кроме супер-регенерации имеем еще и суперлечение.

 

Первое - это значения регенерации в конфигах, согласно которым непись менее чем за секунду регенерируется полностью. Это правится просто. Полтора года назад описывалось в подробностях, и не понимаю, почему ни кто не сделал, вместо написания гневных спасланий "этого не может быть, по тому что не может быть никогда".

 

Второе - это непись, один раз вылечившись при помощи аптечки, затем лечится мгновенно, со скоростью спавна этих самых аптечек. А спавнятся они со страшной скоростью.

Ковыряю. Оторвать само лечение - не проблема, но хочется, чтобы оно было, но при этом всегда показывались анимации.

 

Изменено пользователем Dennis_Chikin

Обнаружил куча ошибок в all.spawn

например в файле alife_garbage неправильно прописаны чуваки в смартах

 

[smart_terrains]

killer_garbage_larger = true

 

А должно быть

 

[smart_terrains]

killer_garbage_lager = true

 

на радаре у чувака radar_svoboda_reyd3

 

прописан почему-то смарт на варлабе

 

[smart_terrains]

warlab_svobodovzu = true

 

Изменяем на:

 

[smart_terrains]

none = true

 

и вообще оч много всяких разных описок9ошибок) и недочетов. проще выложить all.spawn куда-нить, но дело в том что скорее всего вы запутаетесь т к я на 100% уверен что all.spawn поменялся в новой допе. P.S могу помочь исправить то что нашел, единственное мне нужен all.spawn новой версии

каким образом в солянке можно сменить визуал который примет нпс при одевании костюма, где это все записано и как добавить туда новый костюм, чтобы неписи его тоже одевали?

Ошиблись темой.

 

Никак. Ждать, когда я этот кошмар с переодеваниями, размазанный по всей гэмдэйте, переделаю полностью.

Но там будет скорее жесткое сокращение всего и вся, и отдельная табличка, куда можно будет чего-нибудь добавить.

Однако для добавления надо модели с текстурами, и желательно, чтобы они при этом были хоть чуть менее кривыми, чем сейчас.

 

Mass, да. Ошибок в олспавне - куча.

Вот, кстати, часть фиксов из того, что здесь выкладывается, не трогая собственно олспавн:

smart_terrain.script:

    if self["nm"] == "radar_svoboda_reyd3" then
result = true
field  = "none"
str    = "true"
end

и при загрузке работ:

function get_gulag_fixes()    -- попытка заткнуть глюк в олспавне; таблицы актуальны для all.spawn 14.08/03.09 2010
    local capacity = {    -- емкости гулагов
        ["warlab_svobodovzu"] = 20,
        ["esc_boars_dogs"] = 9 }
    local type = {    -- имя смарта vs тип гулага
        ["av_chimera_verx"] = "av_chimera_verx" }
    return capacity, type
end

- ну, то есть, именно что как-то заткнуть. Хоть как-нибудь.

 

Есть еще куча кривых и дублирующихся путей, дублирующихся имен, кривых спавнов и т.д.

Кстати, новый олспавн мне тоже категорически не нравится, хотя там часть и поправлена.

 

Можете помочь - так да, сделайте и выложите. В "народном творчестве" такая попытка лежит, но она тоже не совсем удачна. В идеале, хорошо, если олспавн соли будет браться универсальным acdc. Поскольку тот, которым делалось, можно считать скорее утерянным.

 

P.S. Кстати, кампы, где их нет, пути вида center_kamp_task и ограничения на емкость - где их нет - таки стоило бы добавить. Будет все заметно меньше дергаться и тормозить.

Изменено пользователем Dennis_Chikin

Доброго ночера.

Очень часто слышишь от Сталкеров, что ГГ умирает во время сна (особенно если сделать чтобы Меченый питался хотя бы 2 раза в сутки). К сожалению так и не понял, какая переменная отвечает за "текущую" сытость. Есть идея "кормить" товарища перед сном скриптом (в sleep_manager). Подскажите 2 вещи: переменную с сытостью и сколько % оттуда убавляется за час... (второе необязательно, сам пойму).

Это не совсем сюда (скорее в "Скриптование, спавн и логика"), но отвечу - скорми ГГ еду из рюкзака. Воспользуйся функцией eat и скорми разок что-то съедобное:

local eda = {"bread", "conserva", "kolbasa" --[[и т.д.]]}
local obj
for i = 1, #eda do
    obj = db.actor:object(eda[i])
    if obj then
        db.actor:eat(obj)
        return
    end
end

 

Посыпаю голову пеплом. Не пишите так! Пишите вот так:

local eda = {["bread"]=true, ["conserva"]=true, ["kolbasa"]=true --[[и т.д.]]}
local sobj
local sim = alife()
db.actor:iterate_inventory(
    function(obj, item)
        if db.actor.satiety < 1 and eda[item:section()] then
            sobj = sim:object(item:id())
            if sobj then
               db.actor:eat(item)
            end
        end
    end
, db.actor)

 

sapsan

 

P.S. (и не в тему) Давно хотел заметить небольшую "странность" при первом диалоге в начале игры. Мне кажется что в диалоге со Звездочетом правильней было бы вставить такую фразу "Неделю назад я тебя из этого грузовика вытащил, а ты опять к нему полез." А то потом при первом разговоре с Сидором этот толстяк утверждает что он Меченного уже лечил и тот ему должен.

Изменено пользователем sapsan

От меня ушла Марта...

AlexanderZh.gif

По диалогам - ага, что-то такое. Да и новичкам в деревне до Сидоровича тоже эту же тему можно развить.

Вообще, диалоги ждут своего героя.

 

По кормлению - ну, на самом деле, надо наверное сон просто прерывать. Не только по голоду.

 

Dennis_Chikin,

хорошо, если олспавн соли будет браться универсальным acdc

Так ведь берется же.

По поводу глючного гулага, val_watchtower на ТД, может надо добавить строчку capacity? в смарты где этот гулаг разбросан (да и в другие смарты val_prisoner например), такой ж смарт есть в Припяти (pri_wave). кстати в файле gulag_dark_valley.script есть ошибка, нужно удалить запятые после строчки in_rest = "", out_rest = gname .. "_nedostroyka_restrictor"

 

Теперь gulag_military.script, ест такие строчки idle_after_death = 36000, наскока я понимаю должно быть idle_after_death_end = 36000 или я ошибаюсь?

Изменено пользователем Mass

Парни, мастера и гении, подскажите мне пожалуйста, откуда ноги ростут у вылета по e_parents, может и не правильно нап...л , но смысл данного вылета давно многим понятен, но нам нет. Просто мы вахтовики очень многое время находимся вдали от инета, вот нас и мучает этот вопрос, сами исправляли, но не получается.Подскажите нам, больше не у кого спросить.

Mass, ограничения на емкость крайне желательны, да.

Если раскомментировать строчку

-- self:validate_jobs() -- dc -- А таки надо поправить ВЕЗДЕ !

в xr_gulag.script - в логе будет много интересного.

 

В оригинале - неправленной соли вообще имеет место связка операций, ведущих к вылетам по нехватке работ.

Поле правок вылет вроде ушел, но есть характерные "дергания" по периодическому выгонянию неписей из смарта/добавлению обратно.

 

По запятым - на самом деле, можно, но некрасиво, да. Но вообще будет правиться. Банально как мусор.

idle_after_death - по-моему, ошибочно - как раз наоборот. Это - период времени. А idle_after_death_end - это собственно время после смерти:

if job then job["idle_after_death_end"] = amk.game_milliseconds()
+ ( job["idle_after_death"] or job_idle_after_death ) * 1000
end

 

Вообще, готовлю большую пачку скриптов, где при появлении странного (в основном - в путях) неписи будут ругаться в лог, вместо того, чтобы молча виснуть. Но их, блин, много...

 

2ma666y, ну так выше же писалось: чаще всего - при попытке скриптов из разных плохо интегрированных аддонов последовательно удалить один и тот же предмет без проверки его существования.

Скажем, аптечка удаляется сначала из xrs_medic (в стадии исправления), xrs_ai/xrs_bandage (оторвано нафиг, выложено вместе с "наркоманским" xrs), death_manager (исправлено ), да еще и где-нибудь в диалогах. А если труп попал в аномалию - будет еще и удаление всего(включая ту же аптечку) вместе с трупом.

 

То же самое по патронам, оружию, гранатам, и еще куче всякого.

 

Также, несколько ошибок в amk_offline_alife: сначала один и тот же предмет оказывается в базе, потом в "торговле" делается попытка несколько раз его удалить. Также неписю может попасть чужой предмет, и тоже удалиться. Кстати, с этим, и с удалением оружия без патронов связано пропадание оружия у неписей вообще (сначала удаляются "ненужные" патроны, потом - "бесполезный" ствол - хорошо, если не чужой).

 

Изменено пользователем Dennis_Chikin
Гость
Эта тема закрыта для публикации сообщений.
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...