speczadanie 0 Опубликовано 15 Апреля 2011 Это я только здесь пропустил, в скрипт-файле END имеется, но вылет остаётся. Что такое? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 2 Мая 2011 Подскажите, в каком файле находится логика Семёнова\Круглова с Янтаря. Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 19 Июня 2011 Такой вопрос. Допустим у игрока в руках в данный момент оружие из 3-го слота. Как скриптом сменить на 2-й? Или если в руках ничего нет, то 2-й. Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 20 Июня 2011 Актёру присвоено ar_sleep.set_scheme(db.actor, sleep_ltx, "ar_sleep", logic) Как сделать проверку, что это действительно так? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 21 Июня 2011 Такая проблема. Использую метод "db.actor:activate_slot(1)". Но он действует только в случае, если у игрока в момент активации никакой слот вообще не активен. Если какой-то активен - действие не срабатывает. Как исправить? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 21 Июня 2011 Disord, не помогает. db.actor:hide_weapon() делает полностью недоступными все слоты, пока не будет отменён. если сделать так: db.actor:hide_weapon() db.actor:activate_slot(1) db.actor:restore_weapon() то в итоге активируется слот, который был изначально. Добавлено через 25 мин.: Ещё вопрос к предыдущему. Есть таблица "{a,b,c}". Как скриптом проверить, равно ли значение X хотя бы одному значению из таблицы. Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 22 Июня 2011 Как можно скриптом получить последние три символа в слове? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 22 Июня 2011 Можно сменить игроку группировку на "с тем же названием и изменёнными отношениями". Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 23 Июня 2011 Ребята, помогите. Целый день маюсь - безуспешно. Вот: -- инициализация class "ms" (CUIScriptWnd) function ms:__init(owner,action) super() self.action = action self.owner = owner self:InitControls() self:InitCallBacks() end function ms:__finalize() end function ms:InitControls() -- здесь определяем координаты левого верхнего угла и ширину-высоту self:Init(50,50,550,450) -- файл-описатель наших элементов local xml = CScriptXmlInit() xml:ParseFile("ui_ms.xml") -- видео на заднем плане xml:InitStatic("back_video", self) -- рамка xml:InitStatic("background", self) self:Register(xml:Init3tButton("caption", self),"caption") self:Register(xml:Init3tButton("caption1", self),"caption1") self:Register(xml:Init3tButton("btn_quit", self),"btn_quit") self.btn_1 = xml:Init3tButton("btn_1", self) self:Register(self.btn_1, "btn_1") self.btn_2 = xml:Init3tButton("btn_2", self) self:Register(self.btn_2, "btn_2") self.btn_3 = xml:Init3tButton("btn_3", self) self:Register(self.btn_3, "btn_3") self.btn_4 = xml:Init3tButton("btn_4", self) self:Register(self.btn_4, "btn_4") end function ms:InitCallBacks() -- тут интерактивные элементы, при определенном действии выполняется заданная ф-ия self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self) self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.btn_1, self) self:AddCallback("btn_2", ui_events.BUTTON_CLICKED, self.btn_2, self) self:AddCallback("btn_3", ui_events.BUTTON_CLICKED, self.btn_3, self) self:AddCallback("btn_4", ui_events.BUTTON_CLICKED, self.btn_4, self) end function ms:OnKeyboard(dik, keyboard_action) CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) if keyboard_action == ui_events.WINDOW_KEY_PRESSED then -- на выход повесим Esc if dik == DIK_keys.DIK_ESCAPE then self:on_quit() end end return true end function ms:on_quit() self:GetHolder():start_stop_menu (self,true) end function ms:btn_1() self.btn_1:Show(false) end function ms:btn_2() end function ms:btn_3() end function ms:btn_4() end Вылетает при попытке клика по BTN_1 с логом типа "нулевое значение 'btn_1'". В чём проблема? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 23 Июня 2011 Переделал всё так: -- инициализация class "ms" (CUIScriptWnd) function ms:__init(owner,action) super() self.action = action self.owner = owner self:InitControls() self:InitCallBacks() end function ms:__finalize() end function ms:InitControls() -- здесь определяем координаты левого верхнего угла и ширину-высоту self:Init(50,50,550,450) -- файл-описатель наших элементов local xml = CScriptXmlInit() xml:ParseFile("ui_ms.xml") -- видео на заднем плане xml:InitStatic("back_video", self) -- рамка xml:InitStatic("background", self) self:Register(xml:Init3tButton("caption", self),"caption") self:Register(xml:Init3tButton("caption1", self),"caption1") self:Register(xml:Init3tButton("btn_quit", self),"btn_quit") self:Register(xml:Init3tButton("btn_1", self),"btn_1") self:Register(xml:Init3tButton("btn_2", self),"btn_2") self:Register(xml:Init3tButton("btn_3", self),"btn_3") self:Register(xml:Init3tButton("btn_4", self),"btn_4") end function ms:InitCallBacks() -- тут интерактивные элементы, при определенном действии выполняется заданная ф-ия self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self) self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.btn_1, self) self:AddCallback("btn_2", ui_events.BUTTON_CLICKED, self.btn_2, self) self:AddCallback("btn_3", ui_events.BUTTON_CLICKED, self.btn_3, self) self:AddCallback("btn_4", ui_events.BUTTON_CLICKED, self.btn_4, self) end function ms:OnKeyboard(dik, keyboard_action) CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) if keyboard_action == ui_events.WINDOW_KEY_PRESSED then -- на выход повесим Esc if dik == DIK_keys.DIK_ESCAPE then self:on_quit() end end return true end function ms:on_quit() self:GetHolder():start_stop_menu (self,true) end function ms:btn_1() self.btn_1:Show(false) end function ms:btn_2() end function ms:btn_3() end function ms:btn_4() end Теперь вылетает с логом при попытке клика по первой кнопке: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...\games\s.t.a.l.k.e.r.-1-1\gamedata\scripts\ms.script:72: attempt to index field 'btn_1' (a function value) Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 24 Июня 2011 Как можно скриптом проверить, является ли значение переменной "num" числом? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 27 Июня 2011 Помогите написать скрипт: Если NPC с сидом 1 враг игроку, то npc удаляется. Добавлено через 179 мин.: Что не так в этом скрипте? function director_war() local npc = level_object_by_sid(8800) local npc_position = npc:position() local npc_game_vertex = npc:game_vertex_id() local npc_level_vertex = npc:level_vertex_id() if amk.get_npc_relation(npc,db.actor)=="enemy" then alife():release(alife():object(npc:id()), true) alife():create("m_controller_old",npc_position,npc_level_vertex,npc_game_vertex,65535) end end Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 7 Августа 2011 Как заставить пистолет переместиться из слота в рюкзак? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 7 Августа 2011 (изменено) При попытке вызова: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ....l.k.e.r.-1-1\gamedata\scripts\test.script:13: attempt to index local 'obj' (a nil value) Изменено 7 Августа 2011 пользователем speczadanie Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 7 Августа 2011 13 строка = local sect = obj:section() В слоте был артефакт (у меня есть активация артефактов). Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 14 Августа 2011 for i = 0, 65534 do local sobj = alife():object(i) if sobj then if my_script.IsAnoArt(sobj) then Есть такой кусок кода. Помогите написать скрипт "IsAnoArt" (на который указана ссылка в коде), который возвращал бы true, если sobj - это артефакт или аномалия. Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 15 Августа 2011 Ещё такой вопрос - как можно "телепортировать" непися? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 16 Августа 2011 for i = 0, 65534 do local sobj = alife():object(i) Как определить название секции объекта "sobj"? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 24 Августа 2011 Есть таблица: local can_upgrade_table = {"stalker_outfit", "wpn_ak74"} Как скриптом, находящимся в этом же файле, проверить: равно ли значение переменной "NUM" хотя бы одному из значений таблицы? Поделиться этим сообщением Ссылка на сообщение
speczadanie 0 Опубликовано 24 Августа 2011 Ещё такой вопрос. С помощью btn_1:SetWidth(10) мы можем изменить ширину кнопки. А как по аналогии изменить координату X ? Поделиться этим сообщением Ссылка на сообщение