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

Народная 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

Ссылка на комментарий

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

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

 

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

 

Ссылка на комментарий

По поводу глючного гулага, 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 пользователей

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

AMK-Team.ru

×
×
  • Создать...