Влад 9 Опубликовано 3 Марта 2010 TREWKO с диалогом: сделай выдачу поршня "my_info" в твоей функции,а в диалоге сделай <has_info>my_info</has_info> -------------------- Описание "class ini_file" от меченый(стрелок): C++ class ini_file { ini_file (string); --создать объект класса ini_file/за место string прописываем путь до файла function line_count(string); --возвращает количество ключей в секции string/ return ini:line_count("my_section") function r_bool(string, string); --возвращает логическое(булево) значение/(секция,ключ) function section_exist(string); --"проверка" существует ли секция string/if ini:section_exist("my_section") function r_float(string, string); --возвращает значение с плавающей точкой function r_clsid(string, string);********************* function r_s32(string, string); --возвращает целое число function r_line(ini_file*, string, number, string&, string&); --возвращает полностью "линию" т.е. key1 = value1 function r_token(string, string, const token_list&); ********** function r_vector(string, string);******** function r_u32(string, string);--возвращает целое число(чуть-чуть медленне чем s32) function r_string_wq(string, string);--возвращает строку function r_string(string, string);--возвращает строку function line_exist(string, string);--"проверка" существует ли ключ /if ini:line_exist("my_section","key1") }; Примеры работы с ним: ... local ini = ini_file("my_folder\my.ltx") if ini:section_exist("my_section") then ... end ---------------------------------------- local ini = ini_file("my_folder\my.ltx") ini:r_float("my_section", "my_line") --возвращает значение с плавающей точкой ... ---------------------------------------- local ini = ini_file("my_folder\my.ltx") ini:r_s32("my_section", "my_line") --возвращает целое число ... ---------------------------------------- local ini = ini_file("my_folder\my.ltx") ini:r_u32("my_section", "my_line") --возвращает целое число ... Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 3 Марта 2010 (изменено) кровоSTALKER юзай так: function wpn_class() local hud = get_hud() local custom_static = hud:GetCustomStatic("din_pric") local active_item=db.actor:active_item() if active_item then if (active_item:section() == "wpn_vintorez" or active_item:section() == "wpn_svu" or active_item:section() == "wpn_svd") and math.ceil(db.actor:accuracy()*1000) == 1 then if custom_static == nil then hud:AddCustomStatic("din_pric", true) end end end end апдейт в bind_stalker.script - function actor_binder:update(delta) Изменено 3 Марта 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 5 Марта 2010 function din_scope() local hud = get_hud() local custom_static = hud:GetCustomStatic("din_pric") local active_item=db.actor:active_item() if active_item then if active_item:section() == "wpn_vintorez" or active_item:section() == "wpn_svu" or active_item:section() == "wpn_svd" then if math.ceil(db.actor:accuracy()*1000) == 1 then if custom_static == nil then hud:AddCustomStatic("din_pric", true) end end end end end Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 5 Марта 2010 кровоSTALKER не ври!я проверил - всё работает! Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 5 Марта 2010 (изменено) кровоSTALKER в bind_stalker.script, function actor_binder:update(delta) ... self.bCheckStart = false end test.active_weapon() end ... и как у тебя может не работать,если я у себя изменял только название кастом статика,скрипт не трогал? function active_weapon() local hud = get_hud() local custom_static = hud:GetCustomStatic("ait") local active_item=db.actor:active_item() if active_item then if active_item:section() == "wpn_vintorez" or active_item:section() == "wpn_svu" or active_item:section() == "wpn_svd" then if math.ceil(db.actor:accuracy()*1000) == 1 then if custom_static == nil then hud:AddCustomStatic("ait", true) end end end end Изменено 5 Марта 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 5 Марта 2010 Renson function check_level() local current_level = "" if level.name() == "l01_escape" then current_level = "esc" end if level.name() == "l02_garbage" then current_level = "gar" end if level.name() == "l04_darkvalley" then current_level = "dv" end if level.name() == "l05_bar" then current_level = "bar" end if level.name() == "l06_rostok" then current_level = "rost" end if level.name() == "l07_military" then current_level = "mil" end if level.name() == "l08_yantar" then current_level = "yan" end if level.name() == "l10_radar" then current_level = "rad" end if level.name() == "l11_pripyat then current_level = "pri" end if level.name() == "l12_stancia" then current_level = "stan" end if level.name() == "l11_pripyat then current_level = "pri" end return current_level end для добавления уровня делай так: if level.name() == "название_локи" then current_level = "любой_текст" end Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 6 Марта 2010 (изменено) кровоSTALKER Так я не экстрасенс.Не могу я знать,что тебе на ЗП надо. сейчас попробую на ЗП,потом отпишусь. ----upd. ну вот,проверил на ЗП.Всё работает. только строчку if math.ceil(db.actor:accuracy()*1000) == 1 then измени так if math.ceil(db.actor:accuracy()*1000) == 0 then Изменено 6 Марта 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 6 Марта 2010 max_max_08 на,держи function spawn() alife():create("item1", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) alife():create("item2", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end function update() local tim = game.time() local timer = 100000 if (game.time() - tim) >= timer and db.actor:object("item1") and db.actor:object("item2") then alife():release(alife():object(db.actor:object("item1"):id()), true) alife():release(alife():object(db.actor:object("item2"):id()), true) tim = game.time() timer = 100000 end alife():create("item1", vector():set(x,y,z),level_vertex_id,game_vertex_id) alife():create("item2", vector():set(x,y,z),level_vertex_id,game_vertex_id) end функцию update() пихай в bind_stalker.script, function actor_binder:update(delta). my.update() ---------- функцию spawn() пихай в bind_stalker.script, function actor_binder:update(delta),между level_tasks.add_lchanger_location() и self.bCheckStart = false т.е. так: level_tasks.add_lchanger_location() my.spawn() self.bCheckStart = false Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 7 Марта 2010 кровоSTALKER не знаю..у себя раза 2-3 точно проверял - работало.как ты всё это делал - не знаю.в ПМ стучи.Расскажешь. Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 14 Марта 2010 (изменено) zubr14 пропиши в диалоге <action>killactor</action> и,если тебе надо на ЗП,в xr_effects.script пропиши. function killactor (actor, npc) npc:set_relation (game_object.enemy, actor) end не проверял,но должно работать. или как?! я разве не ясно написал? <action>killactor</action> Изменено 14 Марта 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 20 Марта 2010 (изменено) Вопрос по кастом статикам в ЗП: cust_static:wnd():SetWidth(num) cust_static:wnd():SetHeight(cw) cust_static:wnd():SetWndPos(pos) custom_static:wnd():SetColor(col) Не один из методов не работает.В ТЧ всё работало..Собсно ПЫС это полностью вырезали,или чем-то заменили? Изменено 20 Марта 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 20 Марта 2010 (изменено) Galil [spoiler=Делай работу над ошибками ] local ? = level.get_weather() не задано имя локальной переменной ... if weather == ? then чему они должны равнятся? ... if not self.particles then self.particles=particles_object("anomaly2\\snow_vuga") self.particles:play_at_pos( db.actor:position() ) || \/ что такое self.? откуда его взял? ... need_play = true end end local need_play = false ... сначала задаём переменную,а только потом юзаем.т.е.,так: local need_play = false ... проверка/действия ... need_play = true end end Вопрос по кастом статикам в ЗП: cust_static:wnd():SetWidth(num) cust_static:wnd():SetHeight(cw) cust_static:wnd():SetWndPos(pos) custom_static:wnd():SetColor(col) Не один из методов не работает.В ТЧ всё работало..Собсно ПЫС это полностью вырезали,или чем-то заменили? Изменено 20 Марта 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 20 Марта 2010 malandrinus Спасибо.А про lua_help.script совсем забыл . Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 20 Марта 2010 (изменено) dimka.qwer можно ли в скрипте прописать две и более функции alife():create да,можно. как автоматически запускать скрипт при старте игры через bind_stalker.script находим: function actor_binder:on_item_drop (obj) для проверки итема на выброс из инвентаря. function actor_binder:on_item_take (obj) на взятие итема function actor_binder:update(delta) "общий апдейтер". Изменено 20 Марта 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 21 Апреля 2010 (изменено) Повесил выполнение ф-ции на кнопку: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...s\s.t.a.l.k.e.r\gamedata\scripts\ui_main_menu.script:315: attempt to call method 'kill' (a nil value) ob = alife():create(section,pos,db.actor:level_vertex_id(),db.actor:game_vertex_id()) ob:kill(ob) Кто знает,в чём трабла? malandrinus Спасибо! Изменено 21 Апреля 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 22 Апреля 2010 (изменено) Работаю с юи-элементами: Кнопка: self.W = xml:Init3tButton("test", self) self:Register(self.W,"test") self.W:Enable(true) Ф-ция,которая срабатывает при нажатии на эту кнопку: function ui_test:testButton() ... self.W:Enable(false) ... end Только вот при нажатии на кнопку,она не исчезает.Как быть? malandrinus Спасибо!Снова помог) Изменено 22 Апреля 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 24 Апреля 2010 (изменено) Хотел выести текст в мессаг-боксе, local xml = CUIScriptWnd() xml:GetMessageBox("ТЕСТ") но ничего не произошло.. Или такой вариант не катит? Изменено 24 Апреля 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 25 Апреля 2010 bill_gates В ТЧ не получится,а вот в ЧН\ЗП - да,получится. function funcname() local file = io.open("C:\\Test.ltx","w") local text = "ТЕКСТ" file:write(text) file:close() end Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 9 Июня 2010 (изменено) ... local actor = db.actor local wpn_sec = actor:item_in_slot(slot):section() ... function GC(wpn_sec) if wpn_sec == nil then return nil end return wpn_sec:clsid() end При обращении к ней вылетает с логом: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: c:\games\s.t.a.l.k.e.r\gamedata\scripts\_g.script:773: attempt to call method 'clsid' (a nil value) Что тут не так? Kolmogor,спасибо,работает Изменено 9 Июня 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение
Влад 9 Опубликовано 27 Июня 2010 (изменено) TREWKO, не знаю правильно,или нет,но пробуй так: local tbls = {"wpn_pm_1","wpn_fn2000","wpn_ksvk","wpn_ak74"} local sec = "wpn_fn2000" function test() for i=1,#tbls do if tbls[i] == sec then --'действия end end end Изменено 27 Июня 2010 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Поделиться этим сообщением Ссылка на сообщение