Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
Colder 12 Опубликовано 2 Февраля 2021 Поделиться Опубликовано 2 Февраля 2021 @Купер Спасибо большое! Добавил так: if not string.find(box_name, "active_ruck") and not string.find(box_name, "active_box") and not string.find(box_name, "active_system") and (math.random() < 0.75) then Ещё бы добавить что бы с кусачками, снижался шанс заминировании тайника! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367682
ARTLantist 16 Опубликовано 2 Февраля 2021 Поделиться Опубликовано 2 Февраля 2021 Как проверить характеристику бронежилетая надетого на гг в скрипте? Например, мне нужно проверить радиозащиту, и если она меньше то прибавлять гг радиацию. И сходу следующий вопрос: как сделать бесконечный таймер, по истечении которого прибавлялась бы эта радиация? (Из этого всего знаю только как прибавить радиацию) 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367702
Zander_driver 10 358 Опубликовано 2 Февраля 2021 Поделиться Опубликовано 2 Февраля 2021 1 час назад, ARTLantist сказал(а): Как проверить характеристику бронежилетая надетого на гг в скрипте? Привет. Если я не перепутал что-нибудь, и если речь идет об оригинальном движке, то, как то так. local outfit = db.actor:item_in_slot(6) -- получаем объект комбеза, если есть if outfit then local ocond = outfit:condition() -- выясняем состояние комбеза local ltx = system_ini() local osec = outfit:section() -- выясняем секцию конфига надетого комбеза local rdef = ltx:r_float(osec, "radiation_protection") -- читаем, на сколько этот комбез защищает от радиации local real_def = rdef * ocond -- вычисляем действующую защиту с учетом износа if real_def < 0.5 then db.actor.radiation = 0.1 -- например так) end end Надеюсь, пригодится для чего-нибудь 1 час назад, ARTLantist сказал(а): как сделать бесконечный таймер, по истечении которого Бесконечный, по истечении которого... почему-то мне кажется это словосочетание, странным. В биндерах многих объектов (И актора, т.е. в bind_stalker, тоже), есть метод update. А туда передается, в качестве входящего аргумента, переменная delta. Которая численно равна, количеству миллисекунд прошедших с прошлого вызова этого update. Может быть, это будет полезно для того, что на самом деле имелось в виду... А может быть, я "угадал" неправильно. А вообще, смотри тут: https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkciyam-i-klassam/ Много полезного найдешь. 1 3 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367734
ARTLantist 16 Опубликовано 2 Февраля 2021 Поделиться Опубликовано 2 Февраля 2021 (изменено) 17 минут назад, Zander_driver сказал(а): local outfit = db.actor:item_in_slot(6) -- получаем объект комбеза, если есть if outfit then local ocond = outfit:condition() -- выясняем состояние комбеза local ltx = system_ini() local osec = outfit:section() -- выясняем секцию конфига надетого комбеза local rdef = ltx:r_float(osec, "radiation_protection") -- читаем, на сколько этот комбез защищает от радиации local real_def = rdef * ocond -- вычисляем действующую защиту с учетом износа if real_def < 0.5 then db.actor.radiation = 0.1 -- например так) end end Надеюсь, пригодится для чего-нибудь Бесконечный, по истечении которого... почему-то мне кажется это словосочетание, странным. Извиняюсь, сам щас прочёл и не понял, что написал, заработался просто немного? Я хотел сказать, один таймер, длинною, например, одну секунду, по истечении которой будет происходить функция и этот таймер будет запущен заново, и так бесконечно. Как-то так. А как правильно работать с этой delta? Уже долго голову ломаю, что это за переменная такая. Во многих модах её используют, а как она используется, разобраться никак не получается. Изменено 2 Февраля 2021 пользователем ARTLantist Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367741
Это популярное сообщение. Zander_driver 10 358 Опубликовано 2 Февраля 2021 Это популярное сообщение. Поделиться Опубликовано 2 Февраля 2021 2 часа назад, ARTLantist сказал(а): А как правильно работать с этой delta? Ну например, как то так: 1) local t0 = 0 function какой_то_биндер:update(delta) ... t0 = t0 + delta if t0 > 1000 then // То, что мы напишем здесь, будет вызываться с примерной частотой 1 раз в секунду. Иногда интервал между вызовами может быть // чуть-чуть больше или чуть-чуть меньше секунды, но если мы будем считать целый час, то насчитаем 3600 вызовов. Столько секунд в одном часе. t0 = t0 - 1000 end end Или так: 2) function какой_то_биндер:update(delta) // Допустим, нам надо, чтобы у актора радиация росла на 10% за секунду. ... db.actor.radiation = (0.1 * delta / 1000) end Для реализации неких процессов, происходящих непрерывно с некоторой скоростью. Как например рост радиации, или реген здоровья, от неких условий. Удобно использовать второй подход. Он же, кстати, используется и в движке, что наверное, указывает на то, что не только я один, дурак такой, так считаю. Но и создатели движка - тоже. Для реализации же, каких-либо тяжеловесных проверок. Допустим нам надо раз в х времени, вызвать какую-то функцию, которая требует много процессорного времени, и нежелательно ее дергать на каждом апдейте, чтобы не вызывать тормоза. Но, тем не менее ее надо вызывать регулярно. То можно использовать для ее вызова первый подход. И примеры такого, в движке тоже есть Хотя помнится, @Artos лет 8 назад, спорил со мной, доказывая что так делать неправильно и вообще нельзя. Мнения разные есть, о том что правильно и что нет. Однако оно работает, вызывая надлежащий код в надлежащие интервалы времени. 1 1 4 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367780
ARTLantist 16 Опубликовано 2 Февраля 2021 Поделиться Опубликовано 2 Февраля 2021 @Zander_driver, большое пребольшое спасибо, теперь понятно всё! а как реализовать объединение и разъединение двух предметов в один, например, как сделано в Мизери с контейнерами артов? Мы наводим арт на контейнер и он туда кладётся. Потом нажимаем по контейнеру с артом ПКМ и у нас высвечивается окно "извлечь", нажимаем, и арт извлекается. Мне интересен именно такой способ, по большей части - как высветит это окно "извлечь". Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367787
Colder 12 Опубликовано 3 Февраля 2021 Поделиться Опубликовано 3 Февраля 2021 "Вывести окно извлечь" Если не ошибаюсь это движковая правка. Скрытый текст function start_repair_out(cond,num) local itm = db.actor:item_in_slot(num) local kit = kits[num] local s = cond-2 local sect = obj:section() local name = tostring(system_ini():r_string(obj:section(),"inv_name_short")) if itm ~= nil then axr_effects_data.devices_anim() alife():release(alife():object(itm:id()), true) axr_sounds.play_sound([[item_sounds\inv_repair_sewing]]) send_tip("%c[d_green]"..game.translate_string("st_dis_text_7").." "..game.translate_string(tostring(name))) create_repkit(kit..s) else send_tip("[d_red]Разбор невозможен!\\nОтсутствует объект для разбора!") create_repkit(kit..cond) end end Парни помогите вывести Сообщение разобраного обьекта! Сообщение не приходит а вылетает с "attempt to index global 'obj' (a nil value)" Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367892
Chypakabra 1 001 Опубликовано 3 Февраля 2021 Поделиться Опубликовано 3 Февраля 2021 4 часа назад, Colder сказал(а): local sect = obj:section() local name = tostring(system_ini():r_string(obj:section(),"inv_name_short")) obj:section() Это что и откуда? мне не понятно и движку тоже, вот он и ругается Скрытый текст function start_repair_out(cond,num) local itm = db.actor:item_in_slot(num) local kit = kits[num] local s = cond-2 local sect = itm:section() local name = tostring(system_ini():r_string(sect,"inv_name_short")) if itm ~= nil then axr_effects_data.devices_anim() alife():release(alife():object(itm:id()), true) axr_sounds.play_sound([[item_sounds\inv_repair_sewing]]) send_tip("%c[d_green]"..game.translate_string("st_dis_text_7").." "..game.translate_string(tostring(name))) create_repkit(kit..s) else send_tip("[d_red]Разбор невозможен!\\nОтсутствует объект для разбора!") create_repkit(kit..cond) end так попробуй 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367942
Colder 12 Опубликовано 3 Февраля 2021 Поделиться Опубликовано 3 Февраля 2021 Да работает спасибо! @ted.80 А нет! Не работает! Скрытый текст Arguments : LUA error: ...ü ×åðíîáûëÿ\gamedata\scripts\bind_stalker_ext.script:62: attempt to index global 'axr_sewing' (a nil value) Когда обьекта в слоте нету Ругаеться на сам скрипт Ой не то вот вылет Arguments : LUA error: ... - Òåíü ×åðíîáûëÿ\gamedata\scripts\axr_sewing.script:39: attempt to index local 'itm' (a nil value) 69 строка " if itm ~= nil then " 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367944
DMT 2 Опубликовано 3 Февраля 2021 Поделиться Опубликовано 3 Февраля 2021 Можно ли при определённых условиях заспавнить заданных размеров бокс, защищающий от выброса ? Какие есть способы ? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367962
Zander_driver 10 358 Опубликовано 3 Февраля 2021 Поделиться Опубликовано 3 Февраля 2021 Только что, DMT сказал(а): заданных размеров бокс, защищающий от выброса ? Вообще-то, это зависит от местной реализации выброса в "там, о чем вы спрашиваете" Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367963
DMT 2 Опубликовано 3 Февраля 2021 Поделиться Опубликовано 3 Февраля 2021 3 минуты назад, Zander_driver сказал(а): Вообще-то, это зависит от местной реализации выброса в "там, о чем вы спрашиваете" Маленькое уточнение: вопрос о том, как вкрутить спавн бокса в оригинал ЗП. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1367964
Okichi 981 Опубликовано 5 Февраля 2021 Поделиться Опубликовано 5 Февраля 2021 3 часа назад, Купер сказал(а): И ведь не поправит никто. Все сидят Ну откуда же нам знать - может, у человека этот obj глобальный. Там еще неплохо бы убедиться, что это именно клиентский объект получен, т.к. емнип, у серверных это читается через section_name(), а :section() - для клиентских. А во-вторых, @ted.80 - как раз на один такой пример указал, там уже и ежики догадаются ) По-хорошему - неплохо бы _в начале_ функции проверять даже наличие и тип переданных в нее параметров. И на время отладки - все это в лог выводить. Мало ли - может передается совсем не то, что ожидается. 2 След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1368286
Okichi 981 Опубликовано 5 Февраля 2021 Поделиться Опубликовано 5 Февраля 2021 @Купер печаль ситуации в том, что прецеденты были, и без всяких стараний ) Создавался серверный объект, выдерживалось время, необходимое для выхода в онлайн клиентского, я даже тут же успешно получала из него клиентский... и спустя буквально пару инструкций ниже получить _этот же_ серверный объект было невозможно. Он не существовал ) И нет, движок (NLC-ный) даже не падал - он просто не делал того, что от него ожидалось ( След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1368396
UriZzz 1 004 Опубликовано 5 Февраля 2021 Поделиться Опубликовано 5 Февраля 2021 Привет. Господа, кто пользует модули Артоса от сюда: https://www.amk-team.ru/forum/topic/13216-sborochnyy-ceh/?do=findComment&comment=971137 или просто в курсе, объясните, как запускать сохраняемые таймеры? В общем даны две такие тестовые функции: Скрытый текст function start_game_callbeck() if GetVar("start_game") == nil then SendTip("TEST Проверка на отсутствие переменной в хронилище","Сообщение",nil,5) start_game_timer(30*60, nil, "UriZzz_test.mecheny_mail") SetVar("start_game", 1) else SendTip("TEST Проверка на наличие переменной в хронилище","Сообщение",nil,5) end end function mecheny_mail() SendTip("Меченый, зайди ко мне, работа появилась","Сообщение",nil,5) end Таймер не запускается, в логе такая строка: ! Cannot find saved game ~:m_timers:set_callback: gametimer'g@1' id[1] action(timerhelper) timerest[30:00] timeend[06:02:22:180], args=[string]~not_table!:<warning!> Я и без кавычек прописывал функцию, бесполезно. Скрытый текст * Detected CPU: GenuineIntel Pentium-III, F6/M7/S10, 3005.00 mhz, 33-clk 'rdtsc' * CPU Features: RDTSC, MMX, SSE, SSE2 Initializing File System... using fs-ltx fsgame.ltx FS: 28687 files cached, 3935Kb memory used. Init FileSystem 0.632546 sec 'xrCore' build 7720, Mar 27 2020 Initializing Engine... Executing config-script "user.ltx"... [d:\s.t.a.l.k.e.r\stalker-shoc\user.ltx] successfully loaded. Starting INPUT device... Loading DLL: xrRender_R2.dll Loading DLL: xrGame.dll * [win32]: free[4059608 K], reserved[53828 K], committed[80804 K] * [ D3D ]: textures[0 K] * [x-ray]: crt heap[5875 K], process heap[669 K], game lua[0 K], engine lua[0 K], render[0 K] * [x-ray]: economy: strings[1033 K], smem[0 K] Executing config-script "d:\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx"... [d:\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx] successfully loaded. Executing config-script "user.ltx"... Executing config-script "d:\s.t.a.l.k.e.r\gamedata\config\rspec_default.ltx"... ! Unknown command: r__wallmark_ttl ! Unknown command: rs_skeleton_update [d:\s.t.a.l.k.e.r\gamedata\config\rspec_default.ltx] successfully loaded. Executing config-script "d:\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx"... [d:\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx] successfully loaded. [d:\s.t.a.l.k.e.r\stalker-shoc\user.ltx] successfully loaded. SOUND: OpenAL: enumerate devices... SOUND: OpenAL: EnumerationExtension Present devices Generic Hardware SOUND: OpenAL: system default SndDevice name is Generic Hardware SOUND: OpenAL: default SndDevice name set to Generic Software SOUND: OpenAL: All available devices: 1. Generic Software, Spec Version 1.1 (default) 2. Generic Software, Spec Version 1.1 (default) SOUND: OpenAL: SelectBestDevice is Generic Software 1.1 SOUND: OpenAL: Required device: Generic Software. Created device: Generic Software. * sound: EAX 2.0 extension: absent * sound: EAX 2.0 deferred: absent * sound : cache: 65538 kb, 7609 lines, 8820 bpl Starting RENDER device... * GPU [vendor:10DE]-[device:622]: NVIDIA GeForce 9600 GT (Microsoft Corporation - WDDM v1.1) * GPU driver: 8.15.11.8593 * CREATE: DeviceREF: 1 * Vertex Processor: PURE HARDWARE * Texture memory: 2784 M * DDI-level: 9.0 * GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30) * GPU vertex cache: recognized, 24 * DVB created: 6144K * DIB created: 1024K load time=58 ms * NULLRT supported * ...and used * HWDST/PCF supported and used * NV-DBT supported and used - r__tf_aniso 4 - r2_tf_mipbias 0. Starting engine... Loading DLL: xrGameSpy.dll ! Missing ogg-comment, file: d:\s.t.a.l.k.e.r\gamedata\sounds\characters_voice\scenario\video\intro_компания-разработчик (признана нежелательная)_wp_r.ogg * DVB created: 6144K * DIB created: 1024K - r__tf_aniso 4 - r2_tf_mipbias 0. * GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30) * GPU vertex cache: recognized, 24 *** RESET [418 ms] "d:\s.t.a.l.k.e.r\bin\xr_3da.exe" * phase time: 0 ms * phase cmem: 110516 K Кэширование объектов... Loading objects... Loading models... * [prefetch] time: 4578 ms * [prefetch] memory: 82510Kb * phase time: 4608 ms * phase cmem: 182160 K Сервер: Старт... * phase time: 73 ms * phase cmem: 182416 K Сервер: Загрузка симуляции жизни... * phase time: 7 ms * phase cmem: 182416 K Создание новой игры... * Creating new game... * Loading spawn registry... * 8641 spawn points are successfully loaded * Saving spawns... * Saving objects... * 16800 objects are successfully saved * Game all.sav is successfully saved to file 'd:\s.t.a.l.k.e.r\stalker-shoc\savedgames\all.sav' * New game is successfully created! * phase time: 3391 ms * phase cmem: 229424 K Сервер: Соединяемся... MaxPlayers = 32 * phase time: 20 ms * phase cmem: 229424 K Клиент: Соединение с localhost... # Player not found. New player created. * client : connection accepted - <> * phase time: 9 ms * phase cmem: 229449 K Открытие потока... * phase time: 15 ms * phase cmem: 233447 K Загрузка формы объектов... * phase time: 3236 ms * phase cmem: 306116 K Загрузка шейдеров... * phase time: 245 ms * phase cmem: 307515 K Загрузка геометрии... * [Loading VB] 65532 verts, 2047 Kb * [Loading VB] 65525 verts, 2047 Kb * [Loading VB] 65535 verts, 2047 Kb * [Loading VB] 65466 verts, 2045 Kb * [Loading VB] 17208 verts, 537 Kb * [Loading VB] 65533 verts, 2047 Kb * [Loading VB] 65534 verts, 2047 Kb * [Loading VB] 65534 verts, 2047 Kb * [Loading VB] 65531 verts, 2047 Kb * [Loading VB] 65535 verts, 2047 Kb * [Loading VB] 65535 verts, 2047 Kb * [Loading VB] 46595 verts, 1456 Kb * [Loading VB] 65534 verts, 2047 Kb * [Loading VB] 65533 verts, 2047 Kb * [Loading VB] 65535 verts, 2047 Kb * [Loading VB] 65532 verts, 2047 Kb * [Loading VB] 65533 verts, 2047 Kb * [Loading VB] 65533 verts, 2047 Kb * [Loading VB] 53181 verts, 1661 Kb * [Loading IB] 1048575 indices, 2047 Kb * [Loading IB] 1048572 indices, 2047 Kb * [Loading IB] 1048572 indices, 2047 Kb * [Loading IB] 1048572 indices, 2047 Kb * [Loading IB] 1048572 indices, 2047 Kb * [Loading IB] 1048572 indices, 2047 Kb * [Loading IB] 1048575 indices, 2047 Kb * [Loading IB] 1048572 indices, 2047 Kb * [Loading IB] 1048575 indices, 2047 Kb * [Loading IB] 228285 indices, 445 Kb * [Loading VB] 65533 verts, 767 Kb * [Loading VB] 65534 verts, 767 Kb * [Loading VB] 65534 verts, 767 Kb * [Loading VB] 65535 verts, 767 Kb * [Loading VB] 65535 verts, 767 Kb * [Loading VB] 65534 verts, 767 Kb * [Loading VB] 65535 verts, 767 Kb * [Loading VB] 14030 verts, 164 Kb * [Loading IB] 1048575 indices, 2047 Kb * [Loading IB] 1048575 indices, 2047 Kb * [Loading IB] 1048575 indices, 2047 Kb * [Loading IB] 718302 indices, 1402 Kb * phase time: 63 ms * phase cmem: 307890 K Загрузка базы пространств... * phase time: 562 ms * phase cmem: 312287 K Загрузка детальных объектов... * [DETAILS] VertexConsts(256), Batch(61) * [DETAILS] 40687 v(20), 26352 p * [DETAILS] Batch(61), VB(794K), IB(154K) * phase time: 52 ms * phase cmem: 320493 K Загрузка секторов и порталов... * Loading HOM: d:\s.t.a.l.k.e.r\gamedata\levels\l01_escape\level.hom * phase time: 15 ms * phase cmem: 320650 K Загрузка ИИ объектов... - Loading music tracks from 'l01_escape_musics'... * phase time: 12 ms * phase cmem: 316691 K Клиент: Создание... - Game configuring : Started - Game configuring : Finished * phase time: 206 ms * phase cmem: 324548 K Загрузка текстур... * t-report - base: 1437, 387210 K * t-report - lmap: 7, 7168 K * phase time: 1170 ms * phase cmem: 324548 K Клиент: Синхронизация... * phase time: 11 ms * phase cmem: 324548 K * [win32]: free[2927872 K], reserved[126556 K], committed[1139812 K] * [ D3D ]: textures[394378 K] * [x-ray]: crt heap[324548 K], process heap[7978 K], game lua[23618 K], engine lua[221 K], render[0 K] * [x-ray]: economy: strings[3691 K], smem[28221 K] ! Cannot find saved game ~:lua_helper:fget_inisection:ini=[<userdata>],not_found_section=[levels],type=[table]:<error!> ! Cannot find saved game ~:lua_helper:fget_inisection:ini=[<userdata>],not_found_section=[levels_underground],type=[true]:<error!> ! Cannot find saved game ~:lua_helper:correct_max_idlevelvertex:=[594270]=>[595499](+1229), map(1)=[l01_escape] :<info!> ! Cannot find saved game ~:m_timers:set_callback: gametimer'g@1' id[1] action(timerhelper) timerest[30:00] timeend[06:02:22:180], args=[string]~not_table!:<warning!> Intro start 4095 * MEMORY USAGE: 342948 K - Disconnect - Destroying level DestroySingleton::RefCounter: 0 DestroySingleton::RefCounter: 0 DestroySingleton::RefCounter: 0 DestroySingleton::RefCounter: 0 Input: 1 Config-file [d:\s.t.a.l.k.e.r\stalker-shoc\user.ltx] saved successfully Destroying Direct3D... * RM_Dump: textures : 0 * RM_Dump: rtargets : 0 * RM_Dump: rtargetsc : 0 * RM_Dump: vs : 0 * RM_Dump: ps : 0 * RM_Dump: dcl : 0 * RM_Dump: states : 0 * RM_Dump: tex_list : 0 * RM_Dump: matrices : 0 * RM_Dump: lst_constants: 0 * RM_Dump: v_passes : 0 * RM_Dump: v_elements: 0 * RM_Dump: v_shaders : 0 refCount:pBaseZB 1 refCount:pBaseRT 1 DeviceREF: 1 Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1368427
Kirgudu 1 370 Опубликовано 6 Февраля 2021 Поделиться Опубликовано 6 Февраля 2021 @UriZzz у тебя и подсказка в логе есть args=[string]~not_table! и пример в конце модуля start_game_timer(3*60, nil, {info_id = "my_infoportion"}) Грубо говоря, ты в качестве доп. аргумента передаёшь строку "UriZzz_test.mecheny_mail", а надо таблицу. То есть: start_game_timer(30*60, nil, {param1 = "UriZzz_test.mecheny_mail"}) -- аргумент - таблица Если же ты хотел вызвать функцию внешнего модуля (на что слегка намекает текст "UriZzz_test.mecheny_mail"), то для этого надо было воспользоваться вторым аргументом, который у тебя сейчас равен nil, и без кавычек. А именно: start_game_timer(30*60, UriZzz_test.mecheny_mail) -- аргумент - указатель на функцию внешнего модуля В общем, смотри внимательно примеры в конце модуля таймеров, там всё расписано. 1 1 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1368537
Stalkersof 232 Опубликовано 6 Февраля 2021 Поделиться Опубликовано 6 Февраля 2021 (изменено) Вот такие дела кракозябры в в текстовом поле, пытаюсь при инициализации окна в текстовое поле забить информацию. Делаю так. self.edit1:SetText(string.format("Сокол")) Английский текст воспринимает. Русский кракозябрами как поправить? Вот полный код. function NewUI3:InitControls() local xml = CScriptXmlInit() self:Init(0,0,1024,768) xml:ParseFile("NewUI3.xml") self.Static1 = xml:InitStatic("Static1", self) self.edit1 = xml:InitEditBox("Static1:edit1", self.Static1) self.edit1:SetText(string.format("Сокол")) self:Register(xml:Init3tButton("Static1:button1", self.Static1), "button1") self:Register(xml:Init3tButton("Static1:button2", self.Static1), "button2") end Изменено 6 Февраля 2021 пользователем Stalkersof Freeplay Graphic Mod(FGM) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1368623
Colder 12 Опубликовано 6 Февраля 2021 Поделиться Опубликовано 6 Февраля 2021 Парни подскажите функцию, что бы получить весь список оружия и брони имеющийся в инвентаре ГГ. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1368624
Zander_driver 10 358 Опубликовано 6 Февраля 2021 Поделиться Опубликовано 6 Февраля 2021 Только что, Colder сказал(а): подскажите функцию actor:iterate_inventory Только что, Stalkersof сказал(а): Русский кракозябрами А исходный код, в файле какой кодировки сохраняете? 2 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1368626
Stalkersof 232 Опубликовано 6 Февраля 2021 Поделиться Опубликовано 6 Февраля 2021 6 минут назад, Zander_driver сказал(а): actor:iterate_inventory А исходный код, в файле какой кодировки сохраняете? Не понял о чем речь. Скрипт просто текстовый файл с рашерением script. XML в <?xml version="1.0" encoding="windows-1251"?> Freeplay Graphic Mod(FGM) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/544/#findComment-1368627
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти