Автор |
Сообщение |
| 20-08-2010 22:24 GMT3 час. #1323000 |
erlik
С заниливанием тоже нужно быть по-внимательн |
|
|
Artos
Посты: 4176
Откуда:
Возраст: 66
| 20-08-2010 22:27 GMT3 час. #1323004 |
erlik
А все в недостатке исходных данных, что собственно и приводит к фантазиям в интерпретациях :-) |
"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени |
|
erlik
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
| 20-08-2010 22:36 GMT3 час. #1323009 |
Darien Fx
Насчет того, что длина таблицы не изменяется при заниливании табличного значения это я знаю. Но когда с удалением значений получаются такие вот странные накладки, приходится выбирать наименьшее "зло'.
Artos
Согласен. :-G |
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ" |
|
Gun12
Посты: 773
Откуда: СССР
Возраст: 52
| 20-08-2010 22:40 GMT3 час. #1323013 |
erlik
Покажи конкретный пример, когда table.insert (table, [pos,] value) работает некорректно.
У меня вставляет как п |
Не стань номинантом премии Дарвина. |
|
erlik
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
| 20-08-2010 22:51 GMT3 час. #1323021 |
Gun12
эта функция работает ТОЛЬКО с целочисленными ключами, следуюшими ПО-ПОРЯДКУ!
А вот этот момент я честно говоря вообще упустил. Так что спасибо что разъяснил.
Теперь понятно - что в моем коде она и не должна работать.
А насчет table.insert() - пример кода я приводил. Собственно в SCITE то все работает как надо.
Но не в сталке.
Да и тот пример работал в моем коде некорректно не всегда - однако примерно в 30% случаев наблюдались сбои при записи айдишек в нужные поля таблицы - при проверке их там просто не оказывалось. Когда я применил по совету Artos'a способ прямого назначения - глюки исчезли. Все нужные айди стали писаться в нужные поля. |
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ" |
|
Artos
Посты: 4176
Откуда:
Возраст: 66
| 20-08-2010 22:55 GMT3 час. #1323027 |
singapur22
Все же для меня не до конца ясна "привязка к алайфу". Для трансфера предметов требуются клиентские объекты (в нашем случае актора и ящика). Если ящик появился в игре после спавна как клиентский объект, и трансфер стал возможен, то о какой привязке идет речь?
Также насчет ажура я бы не стал именно так делать.
sobj:can_switch_online(true) - вероятно излишне, иначе бы ящики не юзались бы без указания для каждого из них данного разрешения.
а вот set_switch_online(id,true)' не помешает для гарантированного перевода в он-лайн, хотя и требует отложенного выполнения после спавна.
Сейчас заспавню своим вариантом ящик на дальний край Кордона и проверю доступность для трансфера ...
P.S. Проверил: Актор на старте игры в деревне новичков. Инвентори-бокс спавнится у перехода на Свалку (даже за пределами огороженной локации). Алайф = 150.
При спавне ящика используется отложенный перевод в он-лайн ( alife():set_switch_online(id, true) ), без него ящик не доступен в качестве клиентского объекта.
Как только ящик появляется в он-лайне как клиентский объект (первые циклы апдейта актора) - трансфер предмета от актора в ящик проходит без проблем.
После сэйв-лоада, т.е. в игре уже ящик не спавнится заново, а появляется на уже заспавненном месте и без каких-либо принудительных переводов офф-он-лайн, трансфер между актором и ящиком проходит без проблем.
Т.о. зависимости возможности трансфера от алайфа не обнаружено.
Прим: Хотел попробовать, но ... почему-то для фейк-ящика (класс O_INVBOX) недоступны методы can_switch_online/can_switch_offline. Пока не стал вникать в подробности ... |
отредактировал(а) Artos: 21-08-2010 00:07 GMT3 час.
"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени |
|
MRN$
Посты: 114
Откуда:
Возраст: 17
| 21-08-2010 01:13 GMT3 час. #1323085 |
Про сохранение данных в сейвах.
**50016ea8aab1bb10eeba**% 400 == 0 then
return true
else
return false
end
end
else
return false
end
end
function days_per_mount(yy,mm)
local tmp = 31
if mm == 4 or 6 or 9 or 11 then tmp = 30
elseif mm == 2 and leap_year(yy) then tmp = 29
elseif mm == 2 then tmp = 28
end
return tmp
end
[/code] , даже формат CТime упаковал в одно число, но всё равно есть неуверенность из-за известной возможности "переполнения" данных в объекте ГГ. Правда я пока с этим не сталкивался, но если эта проблема есть, то скорее всего столкнусь...
Существует-ли вариант попробовать сохранять данные в других объектах.
Посоветуйте, как такое можно организовать?
Надеюсь, это никого сильно не отвлечёт от собственных задач. |
всё легко |
|
singapur22
Посты: 2089
Откуда: Рубцовск
Возраст: 45
| 21-08-2010 09:01 GMT3 час. #1323286 |
Artos На счёт sobj:can_switch_online(true). Если указать его как положительное значение, то объект будет находиться в онлайн, пока не указать противоположное. |
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта. |
|
erlik
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
| 21-08-2010 09:24 GMT3 час. #1323314 |
MRN$
Я сохраняю данные через биндер своих инвентарных ящиков(пример создания своего биндера давал маландринус) - в их объектах.
Ничего сложного. Более подробно объяснять некогда. |
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ" |
|
MRN$
Посты: 114
Откуда:
Возраст: 17
| 21-08-2010 09:44 GMT3 час. #1323340 |
Спасибо erlic - направление понял.
... своих инвентарных ящиков...
Имеются в виду инв.ящики создаваемые "специально для целей сохранения данных" или произвольные, существующие в игре, и в которых могут находиться другие предметы?. Требуется-ли, что-бы эти ящики были свободны от своих "прямых обязанностей"? |
всё легко |
|
| 21-08-2010 10:07 GMT3 час. #1323365 |
Люди как редактировать файл .object или как его конвертировать например в ogf а потом обратно? |
|
|
| 21-08-2010 11:55 GMT3 час. #1323512 |
MRN$
Это необязательно может быть ящик, можно создать какой-нибудь предмет и повесить на него свой биндер, т.е. в конфиге итема указать 'script_binding = файл.init', и в дальнейшем производить операции именно в новом биндере. |
|
|
| 21-08-2010 14:20 GMT3 час. #1323673 |
Чувак на болоте, через SDK, через Actor Editor экспортишь в ogf. А обратно через конвертер от бардака. |
|
|
erlik
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
| 21-08-2010 16:52 GMT3 час. #1323989 |
MRN$
Делай как Darien Fx написал. Объект\предмет может быть любой. У меня например есть предмет "флешка" в биндере которого сохраняются тексты сообщений на коммуникаторе - то бишь выходит она используется по своему прямому**50036ea8aab1bb10eeba**m = 1000000
for i = 1, lim do a = i end
print(collectgarbage("count"))
for i = 1, lim do a = nil end
print(collectgarbage("count"))
for i = lim + 1, 2*lim do a = nil end
print(collectgarbage("count"))
end
[/code]
вывод дал следующее результаты по выделяемым ресурсам для lua кода в кб
16413.560546875 --заполнение таблицы
16414.388671875 --заниливание значений таблицы
30.451171875 --создание доп. полей со значением nil
Как видно из показателей после третьего круга память резко освободилась. Выходит что заниливание вполне полноценная операция. И проход по таблице, в которой некоторые значения занилены, выдает только полноценные пары.
Интересно а имеет смысл в сталкере использовать луашный сборщик мусора?
В C# я помню как то в одной проге применил на пару мусорщик дотнетовский и один хитрый метод из WinAPI - поставив их вызов на односекундный таймер - так как расход ресурсов упал аж в 10-20 раз. |
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ" |
|
singapur22
Посты: 2089
Откуда: Рубцовск
Возраст: 45
| 21-08-2010 17:13 GMT3 час. #1324036 |
Хехе. Я вспомнил тут...
В связи с тем, что скриптовые файлы в Сталкере являются субтаблицами, метатаблицы _G, а функции --элементами этих субтаблиц, то вызывать их можно как обычное обращение к таблице со строковыми |
отредактировал(а) singapur22: 21-08-2010 17:40 GMT3 час.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта. |
|
| 21-08-2010 17:26 GMT3 час. #1324068 |
Artos а где можно прочитать про это?
Как получить серверный объект юзедаты по имени или по ID? Скажите плиз. |
|
|
singapur22
Посты: 2089
Откуда: Рубцовск
Возраст: 45
| 21-08-2010 17:34 GMT3 час. #1324083 |
Mehanik Yar
alife():object( id )
Юзай класс alife_simulator, в файле lua_help. Там ты найдёшь не мало полезного. |
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта. |
|
| 21-08-2010 17:36 GMT3 час. #1324087 |
как удалить затем этот объект с помощью reliase? |
|
|
singapur22
Посты: 2089
Откуда: Рубцовск
Возраст: 45
| 21-08-2010 17:38 GMT3 час. #1324094 |
Mehanik Yar
Удаление по**50016ea8aab1bb10eeba**e)
end[/code] |
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта. |
|
erlik
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
| 21-08-2010 17:39 GMT3 час. #1324102 |
singapur22
А что делают эти два метода sobj:can_switch_online() и sobj:can_switch_offline() без булевского аргумента? Возвращают установленное состояние - true\false? |
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ" |
|
singapur22
Посты: 2089
Откуда: Рубцовск
Возраст: 45
| 21-08-2010 17:42 GMT3 час. #1324112 |
|
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта. |
|
Мудрец
Посты: 370
Откуда: Ростов-На-Дону
Возраст: 28
| 21-08-2010 17:47 GMT3 час. #1324123 |
как создать костюм на основе сущаствующего? |
|
|
| 21-08-2010 17:48 GMT3 час. #1324128 |
Народ, а как можно непися заставить подойти\отойти на определенную дистанцию от цели? |
Хочешь работать нормально, работай один! |
|
Мудрец
Посты: 370
Откуда: Ростов-На-Дону
Возраст: 28
| 21-08-2010 17:49 GMT3 час. #1324129 |
как создать костюм на основе сущаствующего? |
|
|
| 21-08-2010 18:05 GMT3 час. #1324157 |
singapur22
О, это интересная инфа, молодец что догадался :-).
SkyLoader
Насколько я знаю, движением неписей через скрипт управлять нельзя (изменение логики не в счёт, вей-точки всё равно нужно прописывать заранее). К перемещению он никак не относится. |
|
|
| 21-08-2010 18:07 GMT3 час. #1324162 |
Darien Fx, а через стейт_менеджер? |
Хочешь работать нормально, работай один! |
|
Мудрец
Посты: 370
Откуда: Ростов-На-Дону
Возраст: 28
| 21-08-2010 18:08 GMT3 час. #1324164 |
кто небуть ответит как создать костюм на основе сущаствующего!!!!!!!!!!!!!!! |
|
|
Shape
Посты: 34
Откуда: Запорожье
Возраст: 49
| 21-08-2010 18:18 GMT3 час. #1324180 |
Darien Fx , SkyLoader
Вот вам ф-ция для *насильного* пе**50016ea8aab1bb10eeba**(move.line)
end
end
end[/code] |
|
|
singapur22
Посты: 2089
Откуда: Рубцовск
Возраст: 45
| 21-08-2010 18:20 GMT3 час. #1324182 |
Darien Fx Насколько я знаю, движением неписей через скрипт управлять нельзя (изменение логики не в счёт, вей-точки всё равно нужно прописывать заранее).
Но на сколько я помню, от логики отключить сталкера вроде как можно. А далее уже дело метода:
stalker:set_dest_level_vertex_id(level_vertex_id)
И других с ним связанных.
Правда проблем ту не оберёшся. Слишком всё тесно связанно. |
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта. |
|
| 21-08-2010 18:21 GMT3 час. #1324183 |
А если Movement manager?
_________________
В моде "Напарники" я видел в коде, что там прописано неписям, чтобы те держались на расстоянии 20 метров от ГГ.
_________________
Shape, спасибо. Но только не понятно ничего.
_________________
singapur22, эта функция метод (спс) там используется, кстати.
Я и думаю насчет схем, но пока об этом ничего не знаю. В xStream'овских схемах ничО не понятно.
Спасибо, поищу. |
отредактировал(а) SkyLoader: 21-08-2010 18:35 GMT3 час.
Хочешь работать нормально, работай один! |
|
Эта тема закрыта, публикация новых сообщений недоступна.