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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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

Тема для обсуждения скриптов всего и всех в серии игр 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/

@Купер Спасибо большое! 

Добавил так:

    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

Ещё бы добавить что бы с кусачками, снижался шанс заминировании тайника!

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

  • Нравится 1
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 / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

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? Уже долго голову ломаю, что это за переменная такая. Во многих модах её используют, а как она используется, разобраться никак не получается.

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

@Zander_driver, большое пребольшое спасибо, теперь понятно всё!

а как реализовать объединение и разъединение двух предметов в один, например, как сделано в Мизери с контейнерами артов? Мы наводим арт на контейнер и он туда кладётся. Потом нажимаем по контейнеру с артом ПКМ и у нас высвечивается окно "извлечь", нажимаем, и арт извлекается. Мне интересен именно такой способ, по большей части - как высветит это окно "извлечь".

"Вывести окно извлечь" Если не ошибаюсь это движковая правка.

Скрытый текст

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)"

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

Да работает спасибо!

@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

Можно ли при определённых условиях заспавнить заданных размеров бокс, защищающий от выброса ? Какие есть способы ?

Только что, DMT сказал(а):

заданных размеров бокс, защищающий от выброса ?

Вообще-то, это зависит от местной реализации выброса в "там, о чем вы спрашиваете"

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

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

3 минуты назад, Zander_driver сказал(а):

Вообще-то, это зависит от местной реализации выброса в "там, о чем вы спрашиваете"

Маленькое уточнение: вопрос о том, как вкрутить спавн бокса в оригинал ЗП.

3 часа назад, Купер сказал(а):

И ведь не поправит никто. Все сидят

Ну откуда же нам знать - может, у человека этот obj глобальный. Там еще неплохо бы убедиться, что это именно клиентский объект получен, т.к. емнип, у серверных это читается через section_name(), а :section() - для клиентских.

А во-вторых, @ted.80  - как раз на один такой пример указал, там уже и ежики догадаются )
По-хорошему - неплохо бы  _в начале_  функции проверять даже наличие и тип переданных  в нее параметров.
И на время отладки - все это в лог выводить. 
Мало ли - может передается совсем не то, что ожидается. 

  • Согласен 2

След от кругов на воде - это тоже след (с)

@Купер  печаль ситуации в том, что прецеденты были, и без всяких стараний ) Создавался серверный объект, выдерживалось время, необходимое для выхода в онлайн клиентского,   я даже тут же успешно получала из него клиентский...  и спустя буквально пару инструкций ниже получить _этот же_  серверный объект было невозможно. Он не существовал ) 
И нет, движок (NLC-ный) даже не падал - он просто не делал того, что от него ожидалось (

След от кругов на воде - это тоже след (с)

Привет. Господа, кто пользует модули Артоса от сюда: 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
 

 

 Моя нычка, Нычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

@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 парсер

Вот такие дела кракозябры в в текстовом поле, пытаюсь при инициализации окна в текстовое поле забить информацию.

Делаю так.

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

 

Изменено пользователем Stalkersof
Только что, Colder сказал(а):

подскажите функцию

actor:iterate_inventory

Только что, Stalkersof сказал(а):

Русский кракозябрами

А исходный код, в файле какой кодировки сохраняете?

 

  • Нравится 2

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

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

6 минут назад, Zander_driver сказал(а):

actor:iterate_inventory

А исходный код, в файле какой кодировки сохраняете?

 

Не понял о чем речь. Скрипт просто текстовый файл с рашерением script. XML в <?xml version="1.0" encoding="windows-1251"?>

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

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

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

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

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

Войти

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

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

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