Пользователей: 0
Гостей: 323
Всего: 323

» Подробно
Привет, гость!








Автор Сообщение
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
21-08-2010 18:23 GMT3 час. #1324187   
SkyLoader Это уже отдельный эвалуатор и схема поведения, на которую сталкер переключается при особых условиях. А если схему сталкеру не задавать, то управлять им будет невероятно сложно. Слишком многое нужно учитывать. Прошли уже через это.

-----

Поправлю. Не функция, а метод.

----

Это достаточно всё сложно. Но на вики можно найти статью, которая достаточно подробно всё описывает. Вплоть до создания схемы напарника.

отредактировал(а) singapur22: 21-08-2010 18:34 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
21-08-2010 20:15 GMT3 час. #1324361   
Продолжу насчет INSERT и REMOVE.
Целый день с ними**50236ea8aab1bb10eeba**e]t = {[2]=2,[3]=3,[4]=4}[/code]
то длина таблицы будет равна 0
Любой insert (кроме 1) в такую таблицу поле то вставит, но длина останется равной 0.
А если записать то же но через :
[code]for i=2,4 do
table.insert(t,i,i)
end[/code]
То длина таблицы окажется равна 4
Т.е., забегу вперед, при определенных условиях подобная таблица (без фактической установки некоторых полей) начинает считаться числовым массивом.
И теперь если написать :
[code]table.insert(t,1,1)[/code]
то, как по хэлпу, остальные значения сдвинуться вниз. Т.е. Перестраивается дерево ссылок.
А это значит, что теперь ключу 2 будет соответствовать значение NIL(бывшее значение для ключа 1), ключу 3 значение 2(бывшее значение ключа 2), 4 - 3 и т.д.
При удалении будет сдвигаться в обратную сторону.
Теперь интереснее.
Если 2 раза подряд удалить поле 3 через remove, в таблице перестает читаться это поле(с уже новым значением), с которым шаг назад прекрасно работало.
Т.е. При определенных условиях таблица снова переходит в разряд хэша.
Так, для дальнейшего не будем удалять второй раз поле 3 и вставим
[code]table.insert(t,6,6)[/code]
Поле вставиться, но длина таблицы останется равной 4.
А если следом вставить
[code]table.insert(t,7,7)[/code]
то длина таблицы окажется равной 7 при как бы отсутствующих(мы их даже не упоминали при конструировании таблицы) полях 2 и 4.
Получается что функция remove идет "на поводу" у insert. Если та определит таблицу числовын массивом, тогда и remove будет корректно работать даже про отсутствующем поле с индексом 1(и как выяснилось и с другими)
Определить зависимость построения полей при которых таблица начинает считаться числовым массивом у меня пока не вышло.
Однако выяснил что ключевую роль играют поля, как бы назвать, переходных битов что ли.
Это поля :
1 - первый бит(2 но не 0, а 1)
4 - два бита (4)
8 - три бита (8)
16 - 4 бита (16)
и т.д. до 65536
В общем если нет уверенности что таблица - это целочисленный, последовательно нумерованый массив, начинающийся с ключа с индексом 1, то лучше этими функциями не пользоваться.

отредактировал(а) Gun12: 21-08-2010 20:42 GMT3 час.

Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 66
21-08-2010 20:27 GMT3 час. #1324442   
singapur22
что-то у нас некий пинг-понг получается из диалогов ...
Говорим о трансфере предмета (сепаратор) в ящик - всплывает некий алайф.
Я о том, что трансфер идет между клиентскими объектами (game_object), ты - о 'can_switch_online'.
Я о том что использую 'set_switch_online' и о том, что для инвентори боксов не обнаружил метода 'can_switch_online', ты - о том, что 'set_switch_online' переволит в он-лайн.

singapur22: На счёт sobj:can_switch_online(true). Если указать его как положительное значение, то объект будет находиться в онлайн, пока не указать противоположное.


1. Наверное мне не нужно пояснять что делают упомянутые методы, тем более ... считаю делаешь это некорректно. Поясню:

'can_switch_online' - собственно свойство, позволяющее получить информацию о возможности перевода объекта в он-лайн или передать флаг о возможности такого перевода.

'set_switch_online' - собственно команда перевода объекта в он-лайн.
Ты применяешь 'can' и говоришь о переводе ("будет находиться") - хотя это только возможность перевода, в отличии от применяемого мною 'set' - собственно перевод в он-лайн.

2. Ты говоришь о 'sobj:can_switch_online(true)' для ящика и игнорируешь то, что я не обнаружил этого метола для инвентарных ящиков ... Зачем тогда поминать про этот метод или не пояснить как/к чему ты его применяешь?

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

А по поясу: Повспоминал свои давние изыскания и (ИМХО) более оптимального варианта для пояса на 'сейчас', чем имеющегося в Симбионе, не вижу.
Использование трансфера в ящик мало что даст в разгрузке ресурсов, т.к. собственно 'поясной' алгоритм задействуется только эпизодически (дроп/тэйк/трансфер).
Может быть использование некоего реального (например бандажа), а не фейкового объекта, и было бы покорректнее, однако могут быть коллизии в конкретных модах/схемах.
Я пока оставил 'как есть', до обнаружения других признаков для поясных предметов.



"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
21-08-2010 21:09 GMT3 час. #1324554   
Artos А теперь поясню я. :-)

1. 'can_switch_online' и 'can_switch_offline' --Имеются почти у всех классов объектов. В том числе и у класса 'CSE_InventoryBox'. IDA PRO это подтверждает.
Собсно именно она мне об этом и сообщила. И так же сообщает, что для данного класса эти методы были добавлены с патчем 1.0004.
2. При установке, возможностей переводов:

sobj:can_switch_online(true)
sobj:can_switch_offline(false)

offline становится не актуальным, и бокс автоматически переводится в онлайн, так как это единственное разрешённое состояние в данном случае.
Я не спорю, set_switch_online(...) был бы более оптимальным вариантом. Но как не странно, но и указанный пример даёт тот же результат.

А по поясу, я уже оставил это дело как есть (вполне применительно). Посему продолжил работу над детектором. Точнее детектор тоже готов. Осталось разобраться с артами.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Rat_Revenant
    
Посты: 174
Откуда: Куда
Возраст:
21-08-2010 22:06 GMT3 час. #1324750   
слушайте а зомби-призрак это задумка gsc или выдумка мододелов?

отредактировал(а) Rat_Revenant: 21-08-2010 22:07 GMT3 час.

Если ты долго вглядываешься в бездну, бездна начинает вглядываться в тебя. (М. Булгаков)
Artos
    
Посты: 4176
Откуда:
Возраст: 66
21-08-2010 22:32 GMT3 час. #1324989   
singapur22
Опять пинг-пог выходит

singapur22: 1. 'can_switch_online' и 'can_switch_offline' --Имеются почти у всех классов объектов.
Именно ПОЧТИ

В том числе и у класса 'CSE_InventoryBox'. IDA PRO это подтверждает
В завалах кодов от разрабов немало что можно найти ... Однако подтверждение работоспособности того или иного - пока мы можем найти только на практике.

Спаним инвентори бокс:
  local soInvBox = alife():create("inventory_box", vPos, iLvid, iGvid)
--/ где vPos, iLvid, iGvid берем хоть от актора хоть 'ручками'.

Применяем:
  if soInvBox then
    soInvBox:can_switch_online(true)
  end

Имеем: Фатальный вылет от отсутствия метода 'can_switch_online' для данного объекта.

Вопрос: К чему же и как ты применял указанные методы, говоря о том, что при этих условиях трансфер предмета от актора в ящик становится возможным? (сорри, не могу найти тот пост в топике ...).

Прим: Каких-либо упоминаний об этих методах/функциях для класса 'cse_alife_inventory_box' в 'lua_help.script' также не обнаружено.



Rat_Revenant
А какая разница?
Разрабами много чего задумывалось и много чего было вырезано. Многое из того, что было задумано разрабами было реализовано модмейкерами.
Если ты под призраками подразумеваешь фантомов - то это от разрабов.
Если некие 'полупрозрачные' ходячие ... - поделки модмейкеров.

отредактировал(а) Artos: 21-08-2010 22:45 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
blackraven6
    
Посты: 624
Откуда: СПб
Возраст: 32
21-08-2010 22:57 GMT3 час. #1325238   
Rat_Revenant Это ты про уродцев, которые встречаются во многих глобальниках? Типо обычные гражданские, только прозрачные и с как-будто налипшей грязью? Это мододелы шаманят.



Журнал
- модель M79
- модель HK SL-8
- модель Milkor m32 WIP
win win
    
Посты: 258
Откуда: о_О
Возраст: 12
21-08-2010 23:00 GMT3 час. #1325275   
а как *призраков* сделать?


Мои модельки NEW!
Максим Р.
    
Посты: 1025
Откуда:
Возраст:
21-08-2010 23:03 GMT3 час. #1325297   
Но реализовано, то это полностью разрабами, мододелам остаётся лишь расставить этих призраков по локациям, да пару строчек в конфиге поправить.

win win, если полупрозрачных зомби, то вот почитай статьи:
http://stalkerin.gameru.net/wiki/index.php/Новые_монстры
http://stalkerin.gameru.net/wiki/index.php/Спавн_через_скрипт

отредактировал(а) Максим Р.: 22-08-2010 00:03 GMT3 час.

SkyLoader
    
Посты: 755
Откуда: Москва
Возраст:
21-08-2010 23:32 GMT3 час. #1325571   
Это обычные гражданские, но с шейдером "призрака" на текстуре. Модель эта в архивах есть.
Поделки модмейкеров, это взрывающиеся зомби, зомби-блевуны и электро-химеры.


Хочешь работать нормально, работай один!
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
21-08-2010 23:39 GMT3 час. #1325587   
Artos Именно так и использовал!!! Всё работает, и никаких вылетов.
Это кстати не первый случай, где на практике в аналогичных ситуациях, у нас с тобой совершенно разные результаты. (взять например недавно обсуждаемый health).
Я начинаю сомневаться что мы обсуждаем одну и ту же игру. :-)
Ладно, закрыли тему. В любом случае, alife():set_... наиболее актуален, так как переводит сразу, в отличии от sobj:can_..., который только устанавливает требуемое значение, для следующего цикла апдейта.

отредактировал(а) singapur22: 21-08-2010 23:58 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 66
22-08-2010 00:03 GMT3 час. #1325603   
singapur22
Игра то одна (по названию), но ее модификации - конечно разные. ;-)
Хм, потеряю еще немного времени на проверку ... Неужели у меня так затронут класс, что 'штатные' методы отключились? Всеж это может аукнуться в сам

отредактировал(а) Artos: 22-08-2010 01:14 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
win win
    
Посты: 258
Откуда: о_О
Возраст: 12
22-08-2010 01:09 GMT3 час. #1325612   
Максим Р. там написанно про кошек
я уже восстановил всех монстров кроме химеры (дохлой рождается)


Мои модельки NEW!
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
22-08-2010 10:38 GMT3 час. #1325775   
singapur22
Дабы ваш пинг-понг с Artos'ом был более результативным - вот результат независимой **50016ea8aab1bb10eeba**actor, "Ошибка перевода в онлайн: "..tostring(switch), 0, "trader", 15000)
return end [/code]

--внешняя функцию которую вызываем
[code]
function CanSwitchOnline(sBox)
sBox:can_switch_online(true)
return sBox:can_switch_online()
end [/code]

Результат:


Вывод - то ли мы спавним разные (по классу) ящики - давай тогда искать разницу в конфигах, то ли есть какая то деталь отличия в том КАК и ГДЕ ты спавнишь свой ящик (у меня ящики спавнятся по разному - кто вне зоны алайфа, а кто и попадает в зону алайфа сразу поскольку по позиции спавна оказывается недалече от ГГ),
то ли это мистика какая то :-)
Ошибка вылезла в 8 случаях из 8 - перебил весь лагерь новичков и с каждого снимал инфу о схроне.
мой конфиг
[rukzak]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "devices\quest_items\rukzak"
;$prefetch = 32
class = O_INVBOX
cform = skeleton
script_binding = new_binder.init
visual = equipments\item_rukzak.ogf
description = item_quest_case_02_desc
inv_name = item_quest_case_02_name
inv_name_short = item_quest_case_02_name
inv_weight = 1
inv_grid_width = 2
inv_grid_height = 3
inv_grid_x = 23
inv_grid_y = 35

все прочие ящики просто наследуют эту секцию [rukzak], меняя только визуал.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
win win
    
Посты: 258
Откуда: о_О
Возраст: 12
22-08-2010 12:16 GMT3 час. #1325830   
erlik прикольно тебе сидор написал)


Мои модельки NEW!
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
22-08-2010 12:33 GMT3 час. #1325840   
erlik
Artos


Перепроверил очередной раз свой код на тесте.
Прошу извинения. Просьба не бить сильно. Оказалась ошибка в коде (взял не тот


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
MRN$
    
Посты: 114
Откуда:
Возраст: 17
22-08-2010 12:52 GMT3 час. #1325856   
Про level_vertex и game_vertex.

Знаю:
что level_vertex - это точка на некой "сетке" уровня,
что game_vertex - это точка на некой "сетке" игры,
и есть геометрические координаты точек локации.

Какие отношения между level_vertex, game_vertex и геометрическими координатами? Есть-ли иерархия или они независимые.
И что такое так называемая ai-сетка? Это самостоятельная сетка или это - сетка из точек на других сетках?

Если где-нибудь есть целостное описание этих понятий - буду благодарен за ссылку.


всё легко
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
22-08-2010 13:00 GMT3 час. #1325861   
singapur22
Ну вот, значит все таки обошлось без мистики :-)
Слушай я тут хотел уточнить один вещь:
е


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Rat_Revenant
    
Посты: 174
Откуда: Куда
Возраст:
22-08-2010 13:04 GMT3 час. #1325862   
SkyLoader blackraven6 я тоже модель zombi_ghost находил выходит разрабы эксперементировали...


Если ты долго вглядываешься в бездну, бездна начинает вглядываться в тебя. (М. Булгаков)
win win
    
Посты: 258
Откуда: о_О
Возраст: 12
22-08-2010 13:09 GMT3 час. #1325864   
Rat_Revenant скажи путь к модели


Мои модельки NEW!
Rat_Revenant
    
Посты: 174
Откуда: Куда
Возраст:
22-08-2010 13:13 GMT3 час. #1325867   
\meshes\monsters\zombi...кстати нашел текстуры карлика и темного сталкера


Если ты долго вглядываешься в бездну, бездна начинает вглядываться в тебя. (М. Булгаков)
FLIKER
    
Посты: 1047
Откуда: Краснодар
Возраст: 30
22-08-2010 13:24 GMT3 час. #1325875   
Скажите пожалуйста это что за лог?
Expression : SG
Function : CRender::model_CreateParticles
File : E:\stalker\patch_1_0004\xr_3da\xrRender_R1\FStaticRender.cpp
Line : 156
Description : Particle effect or group doesn't exist
Arguments : dyn_kfire\dyingfire


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
22-08-2010 13:33 GMT3 час. #1325879   
Gun12
По твоим тестам выходит, что практически любой вариант вставки**50076ea8aab1bb10eeba**x.id, {sec=taynik, day=spawn_time, level = lname, habar=true})[/code]
с ним проблем пока вроде не было (хотя может просто еще не столкнулся )
И думаю, что на всякий случай его тоже стоит переделать на такой
[code]if not secrets[sBox.id] then
secrets[sBox.id]={}
secrets[sBox.id]["sec"]= taynik
secrets[sBox.id]["day"]= spawn_time
secrets[sBox.id]["level"]= lname
secrets[sBox.id]["habar"]= true
end[/code]


кстати Колмогор в теме Народной соли (на АМК) писал, что обе эти табличные функции, а также table.getn() изначально работают в предположении, что таблица является упорядоченным числовым массивом без пропусков.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
win win
    
Посты: 258
Откуда: о_О
Возраст: 12
22-08-2010 13:50 GMT3 час. #1325892   
Rat_Revenant зомби гост это точная копия обычного зомби)


Мои модельки NEW!
Artos
    
Посты: 4176
Откуда:
Возраст: 66
22-08-2010 14:16 GMT3 час. #1325916   
singapur22
Теперь почти понятно ... Я опасался что в результате постоя**50216ea8aab1bb10eeba** = {sec=taynik, day=spawn_time, level = lname, habar=true})[/code] дабы не разводить код на несколько строк.

Я бы сформулировал для использования 'table.insert(...)' так:
Если требуется добавить/изменить эксклюзивную запись в массиве - НЕ применяй 'table.insert(...)'. Ведь собственно ключ 'sBox.id' у тебя эксклюзивен и не должно быть множественных записей для него в массиве. Т.о. используя прямую запись 'secrets[sBox.id] = {...}' ты получаешь нужный результат, исключая дублирование и коллизии множественности записи для одного и того же объекта.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
MRN$
    
Посты: 114
Откуда:
Возраст: 17
22-08-2010 14:31 GMT3 час. #1325931   
FLIKER

Description : Particle effect or group doesn't exist
Наверное ты неудачно заменил или изменил файл particles.xr

Arguments : dyn_kfire\dyingfire
наверное это Dynamic campfire mod


всё легко
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
22-08-2010 14:35 GMT3 час. #1325932   
Artos

т.к. он использовал 'свой' биндер для рюкзачков и не факт, что в этом биндер (код нам неизвестен) методы не отключались ...

А я проверял не только на своем биндере - я заспавнил по координатам эктора секцию "inventory_box" и и к ней тоже применил can_switch_online(true). Ошибка была идентичной.
----------------------------------------------------
Дублирование и коллизии множественности записи у меня (как мне кажется ) исключаются всегда проверкой на существование поля в таблице. А вот то, что insert и remove могут когда им заблагорассудится сдвигать табличные индексы(тем самым делая эксклюзивный ключ непригодным для использования) туда-сюда - вот это очень нехорошо с их стороны :-) И товарища Иерусалимского...
---------------------------------------------------------------------------------------
MRN$
Вот здесь malandrinus задвинул спич на эту тему. А вообще тебе лучше по интеу покопаться - из разных обрывков глядишь слепишь теорбазис для понимания.
_http://www.amk-team.ru/forum/index.php?showtopic=5525&st=3260


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Artos
    
Посты: 4176
Откуда:
Возраст: 66
22-08-2010 14:39 GMT3 час. #1325933   
MRN$
Я не достаточный дока в геометрии уровней и использую достаточный для меня базис понятий, поэтому стОит почитать вероятно статьи на википедиях ... Правда не встречал, у сожалению, достаточно внятных и профессиональных, поэтому ссылок не даю.

  level_vertex - это 'ячейка' на некой "сетке" уровня;
  game_vertex - это 'ячейка' на некой общей "сетке" из всех уровней игры;
  position - координаты точки на некой "сетке" уровня;

Позиция естественно может иметь различные координаты внутри level_vertex'а т.к. это собственно точка, а вертекс - площадь.
Связь между level_vertex и game_vertex тоже собственно очевидна.
game_vertex'ы - проиндексированные ячейки общей сетки всех локаций в игре. Индекс game_vertex'а ексклюзивен в игре, т.е. по нему всегда можно определить нужную область сетки.

level_vertex'ы - проиндексированные ячейки сетки конкретной локации. Кол-во индексов зависит от площади локации и естественно 'начальные' индексы всегда есть на всех локациях.

Условно: game_vertex - серия паспорта, а level_vertex - номер паспорта. Одни и те же номера могут быть внутри разных серий. Ну а position - место прописки. В одном паспорте их может быть несколько (смена места жительства), в разных паспортах - одна прописка (живут вместе) ...

отредактировал(а) Artos: 22-08-2010 14:46 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
22-08-2010 14:52 GMT3 час. #1325937   
Добавлю - гейм_вертексов в игре всего 3512 - от 0 до 3511-го. И они не повторяются, так как являются уникальными идентификаторами тех самых общеигровых ячеек на глобальной карте игры.
Для каждого уровня строго определен свой диапазон гейм_вертексов.
А левел_вертексов - никто не считал - так как их больше миллиона. Одни и те же номера левел_вертексов могут совпадать для разных уровней. Что, впрочем, очевидно.
PS: У меня в журнале есть тестовый скрипт для вывода значений игровых вертексов на худ в виде списка.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Rat_Revenant
    
Посты: 174
Откуда: Куда
Возраст:
22-08-2010 14:52 GMT3 час. #1325938   
текстуры просто одинаковы


Если ты долго вглядываешься в бездну, бездна начинает вглядываться в тебя. (М. Булгаков)


Форумы Архив » Свалка Вопросы и ответы (ТЧ по 11.09.10)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»