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

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


n6260

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

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Shadowman, Ааа...ты так..

 

Короче я так понял есть 2 пути.

1)Апдейтом нетпакеты выслеживать битые и переписывать с помощью моей таблицы.

2)При загрузке сейва переспавнивать по олл.спавну непися.

 

Но почему ты не хочешь допустим в сейв мою табличку сунуть (убрав коллбэк на чистку через нет_дестрой и поставив коллбэк на чиску ВСЕЙ таблицы после отработки во время загрузки)?

 

Добавлено через 127 мин.:

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

 

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

 

Добавлено через 2 мин.:

Shadowman, я думаю в сейв не пойдет мегобайт.килобайт 200...там ж 1)не так много НПС - ну 20-25 максимум обычно + в сейве оно довольно плотненько поместится,ужато.

 

Добавлено через 42 мин.:

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

 

Добавлено через 52 мин.:

Shadowman, мда.

а как это ты размер ее смотреть умеешь? :)

нету в сталкере таких функций.

Сообщение от модератора меченый(стрелок)
Ошибаетесь :)

table.getn

===

ладно,в общем-то согласен...бред получается...

короче тогда способом с таблицей нпсей только и получится - без апдейта.

Изменено пользователем меченый(стрелок)

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Shadowman, мнээ,наверное не имеет.прикинь,потом все переделывать через пару дней.надо оно?все равно с НГ все будут играть с патчем.

сделай сейчас удаление НПСя - там ничо делать не надо.а с патчем полностью сделаешь с таблицей.

 

Стрелок,я имел ввиду колличество бит.

Сообщение от модератора меченый(стрелок)
Количество бит чего? table.getn - возвращает "длину" таблицы ...Сори если я не в тему

 

Добавлено через 20 мин.:

Ну квестовики и правда редко зависают.Так что я думаю проверки не надо бездумно убирать - на этом замешан сюжет бывает.Кое-кому можно,но не всем.

 

С другой стороны я не думаю,что если ты его удалишь и тут же в коде заспавнишь успеет пройти апдейт и выдаться ГГ инфопоршн о смерти.так что тем более не надо убирать проверки.

Изменено пользователем меченый(стрелок)

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

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

 

Добавлено через 9 мин.:

Про suits_to_visuals - она составлена на редкость странно.Как это понимать - если НПС надел экзу свободы,Юа сам он за долг,то наделась экза долга?Я не понимаю.

Я бы предложил убрать эту "фичу" - таблица упростится в десяток раз.Будет просто одномерный массив cекция броника = визуал

 

Будет все предельно просто и вероятность ошибки устремится к нулю.

 

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

 

=====

Был бы я неписей,я бы тоже во время переодевания запутался бы в этой таблице до зависа ...

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Shadowman, можешь удалять,потом проверять - если не удалился пихать в офф и удалять :)

 

а про таблицу что думаешь?

 

Добавлено через 32 мин.:

Shadowman, не сработает.выше уже есть проверка такая же.

тем более ниже проверка if suits_to_visuals[com][vis] then - все покрыть должна.

====

проверка на наличие в таблице визуала такого должна все покрыть.

====

тут придется построково проверять.

то есть после каждой строки сообщение в консоль - тут и увидишь,где обрушилось все...

===

Добавлено через 146 мин.:

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

сделай все-таки как я советую - построчный вывод в консоль.может натолкнет на какие мысли? :)

==

Добавлено через 15 мин.:

Shadowman, ахаха,она прячется :)

ну даешь,а)))

мпожет ты ненароком что еще написал и исправил?

 

Добавлено через 103 мин.:

================

 

Shadowman,

Из за загрузки пропадают Сяковы телепорты.Непорядок.

Предлагаю решение: коллбэк из спавн_левел_ченджер на функцию,которая в табличку будет писать каждый сделанный телепорт - всю инфу.А потом эту табличку на ПДА наш записывать.Как тебе? :)

Опять же коллбэк на удаление если удаляем телепорт тоже делать...

А при загрузке игры по табличке восстанавливаем утерянное.

 

Добавлено через 1 мин.:

=========

и еще я не понял - как это эффект остается,а телепорт пропадает?

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

Поделиться этим сообщением


Ссылка на сообщение

Shadowman, да переписать эту таблицу и все.делов то.

можно даже упрощенно - как я предлагал.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Shadowman, проверку на пустой пстор тоже можно сделать.

 

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

Поделиться этим сообщением


Ссылка на сообщение

Shadowman, а,ну так да,попробуй :)

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

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

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

Придется переписывать пакет :)

 

====

 

А ты не проверял - нельзя ли НПСу совсем рандомный нетпакет присвоить?То есть от любого другого НПС (неквестовика)

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

Поделиться этим сообщением


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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Shadowman, я вообще впервые о зависших монстрах слышу...

===

 

Но вообще главное - вейвы грузятся.Это то нам и надо.

==

Arhara, вово))

какбы БТРы не поназависли...

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Arhara, я во-первых свой же код и ругаю :)

А во-вторых это действительно по-хорошему неприемлемо - так вот мучать комп.

 

Добавлено через 1 мин.:

Arhara, Про вылеты при смерти - лучше исправь.Велет он на то и вылет,чтоб его убирать любой ценой.

 

Добавлено через 2 мин.:

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

 

Добавлено через 2 мин.:

Я бы вообще сделал глобальную таблицу регистрации всех онлайновых предметов и таблицу регистрации оффлайновых (с меньшим кол-вом инфы,чтоб весила поменьше) типа storage, только шире гораздо и получал бы оттуда всю нужную инфу.

Но это мечты-мечты...

 

Добавлено через 8 мин.:

====

З.Ы.

Ты покажи щас Меченому его "сон нпс" - он же лопнет от стыда,раз уж говорил,что ему даже за ЧУ стыдно :D

(это опять к слову о циклах)

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Shadowman, То не оптимизация - то полная переоаботка даже самого принципа работы механизма :)

Мы считай вырезали эмбрионы и сделали их с нуля (кроме иконок) :)

 

И вот я считаю - нафиг никакая классификация не нужна.Мы не бюрократы а вроде как программисты (ну хоть немного).

 

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

 

По поводу же

aem_bind.script

bind_monster.script

bind_stalker.script

xr_motivator.script

А зачем?

Это же все можно выяснить через тот же xr_logic.Ведь все данные,о том,что оно коррупт из него же и берутся,если я ничего не путаю.

А иначе - как там идет проверка на завис?

Неужто прямо из пстор??

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

Поделиться этим сообщением


Ссылка на сообщение
Shadowman, мм,а в чем тогда заключается проверка в вышеперечисленных скриптах?

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

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

 

Добавлено через 1 мин.:

sapsan, А вот в конфиг - не вариант.Потому что медленное это дело - из конфига читать.

 

Добавлено через 18 мин.:

sapsan, Ну просто не нужно.Лучше все-таки табличку.

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
можно убрать какую-нибудь запятую

лучше воспользоваться проверенным способом "ЖОПА" ;)

медитировать над кодом Бака

И тут ты прав,даже я над его менеджером только помедитировать могу часов n+1 ...

Это почти бессмысленно - надо знать где ошибка.Либо быть мега скриптером :)

Посему опытным путем придется...

 

Добавлено через 4 мин.:

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

 

Добавлено через 9 мин.:

======

 

А про случай со стволами - не понимаю,как оно связано.Ведь level.name то поменялся!

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

sapsan, нет.уровень он и есть уровень.так уж оно устроено.

 

Добавлено через 1 мин.:

На каждом уровне свой набор координат.

 

Добавлено через 1 мин.:

Shadowman, А про странность - чего только не бывает.Не у всех ж повально такое.

 

Добавлено через 72 мин.:

Shadowman, Даже если и не единичный - при чем тут менеджер?И почему именно радар?

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

sapsan, Мнэээ...хочется выразить свою огромнуб радость,что тут наконечцто собрался коллектив,занявшийся оптимизарией (рационализацией и утилизицией :D )

 

Добавлено через 2 мин.:

sapsan, Тех кто в онлайне:

for k,v in pairs(db.storage) do

object_all = level.object_by_id(k)

 

Тут даже проверку if obj and isStalker(obj) - не надо.но это ТОЛЬКО сталкеры,насколько я знаю...

 

====

 

Эту штуку надо по меньшей мере в сотне-другой мест в скриптах вставлять!

 

Добавлено через 3 мин.:

=====

 

Моожет создать архив "оптимизированные скрипты", кинуть в шапку и чтобы мы работали уже с ним?и не изобретали велосипеды каждый раз по невнимательности?

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Ray, Слушай,есть тема ковырялка.Там миллионы раз все рассказывалось.

 

db.actor.psy_health - это на чтение пси-здоровье,а на запись прирост пси-здоровья.

Учи матчасть.

 

И пиши

 

db.actor.psy_health=-0.5

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

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

sapsan,

есть привязка неписю "способа мышления"

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

 

Добавлено через 2 мин.:

sapsan, По сути я продолжаю иметь простое мнение - перепишем таблицу попроще,без перекрашивания в броню своей группировки и т.п. ,допишем все,что есть в солянке,но нет в этой таблиц - вот и решим проблему.

И никакие охотники в исклах сидеть не должны.

 

Добавлено через 2 мин.:

Ray, Короче как надо делать - вешаем на обычный квест документ.Как только выполняем - выдается инфопоршен конца квеста - а у нас коллбэк на выдачу инфо - и мы в этом коллбэке переделываем костюмчик.

Никакого апдейта,все счастливы.Комп доволен,юзеры не плачут.

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

 

Добавлено через 6 мин.:

При том делаем в бинд_сталкере таблицу:

 

(вери биг спасибо sapsan у :) )

 

local infos = {
"my_info_1" = true,
"my_info_2" = true,
}

local fncs_by_info = {
"my_info_1" =  function ()...... end,
"my_info_2" = function ()...... end
}

и вызываем:

function actor_binder:on_info(info)
if infos[info] then
 fncs_by_info[info]
end
end

 

И так же надо переделать все и в on_take и on_drop

ато вы посчитайте сейчас,сколько там проверок....

 

=====

 

угу,конечно,так бстренько сяк актора переназначил,ага...

 

==========

 

или так:

local fncs_by_info = {
"my_info_1" = {true, function ()...... end},
"my_info_2" = {true,function ()...... end)}
}

и вызываем:

function actor_binder:on_info(info)
if fncs_by_info[info][1] then
 fncs_by_info[info][2]
end
end

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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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