Скриптование - Страница 234 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

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

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
https://www.amk-team.ru/forum/topic/6185-skriptovanie/

Хотя пожалуй мой вопрос не снимается :) .

Мне нужно отследить факт того что объект мы подняли с земли.

Делаю вот так:

 

local sobj = alife():object(obj:id())
if sobj and sobj.parent_id and sobj.parent_id == 65535 then
sendtip("подобрали")
end

 

Типс вообще не вылетает, какой тогда parent у объекта лежащего на земле?(parent_id всегда возвращает "0", parent() - "userdata")

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

Struck, убедительная просьба прекратить "ковыряние в детской песочнице аля СП".

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

 

 

Struck: Как получить факт того, что объект был поднят с земли?
Так и хочется посоветовать в игре, перед взятием предмета, пригласить парочку понятых-сталкеров, дабы те перед Сидоровичем удостоверили, что действительно с земли был поднят. Ну а Сидорович может выдать справку заверенную у начальника блок-поста, что мол действительно с земли взято ... :crazy:

 

По сути:

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

Во-вторых, у нормальных модмейкеров бесхозные предметы имеют (как правило) именно parent_id == 65535, а не '0', и метод parent() возвращает 'nil'.

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

В-третьих, не путай понятия для серверного объекта и клиентского. В переходные моменты вполне допустимы ситуации, когда parent_id ~= 65535 для серверного, но клиентский уже не имеет владельца, и наоборот.

Ну и последнее, к сожалению не всегда предмет "валяющийся на земле", т.е. вроде как бесхозный, не имеет владельца. Для некоторых ситуаций предмет сам себе владелец (parent_id == item_id), или имеет parent_id последнего владельца. А порой даже имеет в качестве parent() того, кто только еще "собрался брать" предмет...

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Artos,

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

 

Я привел тот код, который я вставляю напрямую в коллбек на обретение предмета, сторонних махинаций я(пока) не делаю. Выдает он мне то, что я написал. Что еще нужно для прояснения ситуации?

 

давай оперировать понятием "безхозный", т.е. не имеющий владельца.

Согласен.

Struck, вот это, не указанное тобою в вопросе: "код,который я вставляю напрямую в коллбек на обретение предмета" и является необходимым пояснением, которое и проясняет причину ерунды твоих результатов.

Неужели до тебя самого не доходит, что в коллбэке на взятие актором предмета (callback.on_item_take) - предмет УЖЕ принадлежит актору (взят, а не валяется "на земле"). Глупо проверять безхозность тогда, когда хозяин уже в наличии.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Artos, и как же быть? Я просто пока не представляю как свзяать 'бесхозный' предмет и инвентарь нпс/актора.

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

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

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

Способов проверки и тем более реализации, великое множество, но все зависит от исходных данных и от цели, для чего все это делается.

Не знаешь как, начни с самого простого: итерацией по всем объектам (их ID) в Зоне, и определяй бесхозный предмет иль нет.

Захотелось "взять" предмет - ну так в модах предостаточно и примеров, да и в каждой ситуации для НПС или вктора реализации различаются. На "едино и простенько" не надейся. ;-)

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Ситуация: Использую данный дебаг-модуль в разработке своего мода. Все нормально работало до какого то времени, нужная информация исправно отправлялась в лог. Наверно я слишком широко стал использовать эти возможности... короче, количество различных скриптов, которые что-то пишут в лог, росло, периодически стали происходить вылеты при синхронизации.

В дебаг-логе сохранялось вот это:

[22:39:01] 001B:006DBD38 xrLUA_GSC.dll, lua_yield()
[22:39:01] 001B:006DBEF6 xrLUA_GSC.dll, lua_yield()
[22:39:01] 001B:006D2367 xrLUA_GSC.dll, lua_gc()
[22:39:01] 001B:0046ACAC XR_3DA.exe, CRenderDevice::End()

В базовом пысовском, иногда то же самое, иногда он пуст оставался. Строки выше - были самыми разными, абсолютно мирными и не предвещающими какой то беды. Сначала вылеты были редко, теперь - очень часто. Заметил, что часто игра падает от запуска скриптовых функций которые разом вываливают в лог большие объемы данных. Еще заметил, что на более слабых машинах вылет происходит чаще.

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

Еще я совсем не уверен, что правильно истолковал причины вылета, и очень хотел бы чтобы кто-то поделился полезной информацией по данному поводу :)

Игра - ТЧ 1,0004, не амк...

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

 

Захотелось "взять" предмет

Можно поподробнее?

Допустим я начинаю вот так:

 

for i=1,65535 do
local obj = alife():object(i)
if obj and obj.online and obj.parent_id and obj.parent_id == 65535 then
--/ сюда что?
end
end

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

Struck,

Мне нужно отследить факт того что объект мы подняли с земли.

Не думаю, что есть простое решение. К моменту колбека на передачу потеряна уже вся информация о предыдущем владельце, причём и на серверной и на клиентской стороне. Напрашиваются всякие мерзкие варианты со слежением за владельцем для всех объектов. Для этого надо с начала загрузки сейва следить за всеми событиями передачи, тогда можно сказать точно, у кого был объект. В общем-то это реализуемо, видел подобное в пределах инвентаря, когда надо было определять, где был объект: в слоте, рюкзаке, на поясе. Однако, при такой реализации будут и проблемы, к примеру с ящиками, для которых нет колбека на получение предмета. Придётся также следить за потерей предметов. Но как тогда быть со спавном прямо в ящики? В общем морока ещё та.

 

 

Zander_driver,

Использую данный дебаг-модуль в разработке своего мода. ...

периодически стали происходить вылеты при синхронизации.

Напрашивается вывод о проблемах с памятью: фрагментация или просто исчерпание. Могу предложить просто чистить лог при старте нового сейва командой

get_console():execute("clear_log")

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

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Как же тяжко тащить из болота бегемота

Struck, 'факт' - в нашем контексте - это событие, а про него можно только узнать, а не взять иль получить.

К твоему сведению, практически невозможно "взять" НЕбесхозный предмет, т.к. даже при передаче от одного к другому иль взятии из ящика - предмет на период в пару апдейтов становится бесхозным и т.о. актор иль НПС всегда обретают именно бесхозные предметы. В итоге, тот же коллбэк callback.on_item_take собственно и дает информаци ю о свершившемся "факте" получения предмета, а уж был он до этого бесхозным иль нет - извини, но движек игры и штатные скрипты об этом не ведают, т.к. подобное не запоминается.

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

sv !ownership (entity already has parent) new_parent [0][actor:single_player] id_parent [0][actor:single_player] id_entity [18953][myitem:myitem18953] [3664]

- но это уже из области багов движка.

 

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

Какова конечная цель твоих попыток "получить факт" взятия бесхозного предмета? Это же не самоцель!

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

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

Если делаешь что-то типа схемы подбора предметов неписями - так и пиши для чего все эти извышления (т.е. цель) и смотри как в модах все эти взятия реализованы.

 

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

Судя по названию в строке лога "xrLUA_GSC.dll" - ты говоришь о модифицированной библиотеке на базе правок проекта "xrLuaFix by RvP".

Наверное мне более всех знакома именно эта тема, т.к. и развиваю ее и использую "на всю катушку" ;-)

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

Предполагаю, что тобою вносятся правки (как в скрипты, так и в движек), которые и провоцируют вылеты. Строка с упоминанием CRenderDevice наводит на размышления по рендерным правкакмам иль заменам соотв.библиотек.

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

Так же советую в логе отследить - а вообще сколько доступно памяти и не зашкаливают ли загруженные ресурсы твоего мода за предел доступного?

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Artos, у меня есть определенные предметы, ГГ бегает их и собирает, и как только он подбирает этот бесхозный(!) предмет происходит событие(единожды(!)(т.е. если мы выкинули этот предмет и подобрали опять(одругими словами - предмет побывал в инвентаре актора/нпс), то событие уже НЕпроисходит)), мне нужно запомнить id() в табличку(разумеется ее сохранив в псторе допустим) и вроде все просто, но ругается он у меня на строку с table.insert, когда я добавляю id предмета в свою табличку. Получаю id пердмета опять таки в коллбеке на обретение.

Добавляю разумеется как то так:

local id = obj:id()
table.insert(tbl,id)

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

Artos,

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

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

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

malandrinus, согласен не совсем удачно выразился,

Подразумевал конечно то, что нельзя в некоторых ситуациях (взятие/передача/...) однозначно говорить о владельце предмета или его отсутствии только по одному из свойств parent_id или parent() -> parent():id(), которые рассинхронизированы.

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

 

Struck, во-первых, если подобранный ранее предмет выбросить, то при его взятии (хоть в десятый раз) каждый раз будет событие "взят предмет", а не как ты описываешь.

Если же ты описываешь "что хотешь получить" - тогда становится понятнее для чего тебе 'безхозность' была нужна...

И, конечно же твои предыдущие попытки были бессмысленными, предмет каждый раз становился безхозным при выкидывании (или если в ящик - то принадлежал ящику).. Т.о. ты уже на верном пути, т.е. пытаешься запоминать "факт" былого взятия предмета. Однако, вновь по твоим "как то так" процитированным кускам кода невозможно указать тебе, почему у тебя вновь не получается. Делай правильно и все получится.

Замечу, что не стОит просто сыпать в свою табличку каждый раз идентификаторы предметов, как раз при повторном взятии в табличке будут дубли. Да и пользоваться такой табличкой несподручно... Может tbl[id] = true - будет удобнее? ;-)

И почему бы тебе в конце концов не воспользоваться советом и не посмотреть как это УЖЕ сделано?! и уже тогда изобретать велосипед и наступать на грабли, по которым уже кто-то до тебя прошелся. В том же Симбионе актор собирает КПК и их иды запоминаются - вот и взгляни. Заодно там и чистка таблицы и прочее. Запоминать же в pstor - ой как не советую...

Ну и если не прав, поправь, в том, что твоя цель: вести в Зоне учет подобранных определенных предметов актором (иль неписями), причем исключить дублирование одних и тех же (не учитывать взятые дважды и более раз).

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Предполагаю, что тобою вносятся правки (как в скрипты, так и в движек), которые и провоцируют вылеты. Строка с упоминанием CRenderDevice наводит на размышления по рендерным правкакмам иль заменам соотв.библиотек.

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

Так же советую в логе отследить - а вообще сколько доступно памяти и не зашкаливают ли загруженные ресурсы твоего мода за предел доступного?

В том то и дело что правками движка я (пока) не занимался вообще. А по скриптам... дело в том что одни и те же "новые" скрипты, на одной машине прекрасно работают не вызывая никаких сбоев, на другом же компе - 100% происходит вылет. Заполнение памяти - до предела еще далеко.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Zander_driver, к сожалению пока информации слишком мало и скорее на кофейной гуще гадаем.

Если уж пишешь про "модуль RvP", то на компе где "100% происходит вылет", без этого модуля (библиотеки) ошибка все равно проявляется?

Если нет - то ищи причину в модуле, т.е. и/или меняй его на более 'правильный' вариант. Если ошибка останется - копай железо/софт и т.п. на проблемном компе и это уже тема для иного топика.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Artos, :) да, именно это мне и нужно было(не изложив конечной цели запутал и вас, и себя), спасибо за помощь и наводку, все сделал и работает как надо.

 

Только осталось одно но(!), как сделать еще запоминание того, что предмет побывал и у непися в инвентаре? Т.к. когда я беру из рюкзака непися предмет у меня тоже происходит мое событие. Зарегестрировать оn_item_take в xr_motivator.script и вызывать там? Или только более геморройный вариант годится?(Типа перебирать инвентарь юзаемого трупа, если в нем есть мои предметы то заносить их в таблицу "побывавших в рюкзаке").

 

Типа как-то так:

function use(npc)
for i=0,npc:object_count()-1 do
local obj = npc:object(i)
local id = obj:id()
if npc:object(obj:section()) then
if founded_items[id] == nil then
if isMyItems(obj) then
founded_items[id] = true
end
else
if not isMyItems(obj) then
founded_items[id] = nil
end
end
end
end
end

 

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

direction - для серверного объекта можно прочитать только из его нет-пакета ('abstract'-параметры) или имея расширенный движек...

На всякий случай сообщаю, что в ЗП у серверного объекта есть свойство angle, которое как-раз и является тем самым direction. Это свойство к тому же доступно и на запись.

Предыдущий вопрос неактуален, все сделал!

 

Как можно проверить какая фраза была выбрана в скриптовом диалоге(без использования инфопоршней/функций)?

 

Обрисую что хочу в конечном итоге:

 

Мне выпадает три фразы для ответа:

Фраза 1
Фраза 2
Фраза 3

 

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

 

Постараюсь сейчас обрисовать свой диалог:

Фраза 1 => Сообщение с talk_message(1) => Фраза 4 Фраза 5 Фраза 6
Фраза 2 => Сообщение с talk_message(2) => Фраза 4 Фраза 5 Фраза 6
Фраза 3 => Сообщение с talk_message(3) => Фраза 4 Фраза 5 Фраза 6

У 4,5 и 6 фраз название одинаковое, но действия разнятся в зависимости от выбранного сообщения с talk_message.

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

Struck, Каждая строка-фраза при клике по ней вызывает соответствующую ветку диалога, передавая на вход аргументы: oSpeaker1, oSpeaker2, sDlgId, [idParent,] idPhase. 3-ий аргумент - текстовый идентификатор (название) выбранной фразы, последний - собственно числовой идентификатор фразы.

Возьми мод "Arena_Extension_Mod" (by kstn, IG-2007) и поизучай как там сделаны ветвления диалогов. Тебе придется очень тяжко, т.к. тема скриптовых диалонов очень не проста для понимания и реализации.

Также могу посоветовать посмотреть, например, как реализован скриптовой диалог обмена артефактов в dialogs_add.script (SIMBION-mod). В нем достаточно комментариев для самостоятельного разбора...

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Такой вопрос, вывожу статик в инвентарь, который по мере игры обновляется, все вроде хорошо, бегаем - собираем итемы, он обновляется, но(!) после save/load статик старый остается, причем сбрасывается параметр cnt на 0(изначально у меня local cnt = 0), а поверх него появляется новый(накладывается) и отсчет идет уже в наложенном статике, ввиду чего получается невозможно прочесть написанное.

 


local wnd = nil
local ca, cr, cg, cb = 255, 231, 153, 22

function show(cnt)
if wnd == nil then return end
wnd:SetText("Кол-во: "..cnt)
end

function init()
if wnd then return end
local inventory_wnd = level.main_input_receiver()
wnd = CUIStatic()
wnd:SetAutoDelete(true)
wnd:SetWndRect(190, 730, 108, 33)
wnd:SetText("Кол-во: ")
wnd:SetFont(GetFontGraffiti22Russian())
wnd:SetTextColor(ca,cr,cg,cb)
inventory_wnd:AttachChild(wnd)
end

 

 

Вызываю следующим образом, при переборе инвентаря методом iterate_inventory пишу show(cnt), в info_callback'e вызываю функцию init().

 

P.S. Смотрел m_backpack.script в SIMBION'e, но...мало что понял, хотя там вроде бы есть что мне нужно.

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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