aqraccy 0 Опубликовано 16 Марта 2011 Поделиться Опубликовано 16 Марта 2011 (изменено) Помогите с функцией, пожалуйста! function some_spawn() local shit = {"wpn_ak74", "wpn_abakan", "kolbasa", "bread", "vodka", "medkit", "bandage"} alife():create([math.random(table.getn(shit))], -- здесь я хочу, чтобы актору заспавнилось что-то из "shit" db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end В общем, поставил пока функцию в диалог с неписем, но в инвентарь абсолютно ничего не спавнится. Какая здесь ошибка? Изменено 16 Марта 2011 пользователем aqraccy Ссылка на комментарий
eXiu 7 Опубликовано 16 Марта 2011 Поделиться Опубликовано 16 Марта 2011 (изменено) Вот скрипт. lite_treshold = 0.05 --'насколько должно уменьшиться здоровье с предыдущего обновления, чтобы экран окрасился в красный crit_treshold = 0.30 --'насколько должно уменьшиться здоровье с предыдущего обновления, чтобы ГГ начало шатать drop_item_on_crit_prob = 0.20 --'вероятность того, что ГГ выронит оружие effector_power_coeff = 0.7 prev_health = -1 chk_h_t = 0 function wounded_pp_update() if (chk_h_t or 0) < time_global() then chk_h_t = time_global()+1000 if prev_health > (db.actor.health + lite_treshold) then level.add_pp_effector("fire_hit.ppe", 2011, false) local effector_power = (prev_health - db.actor.health)*100*effector_power_coeff level.set_pp_effector_factor(2011, effector_power) if prev_health > db.actor.health + crit_treshold then level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "") local snd_obj = xr_sound.get_safe_sound_object([[actor\pain_3]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) if math.random() < drop_item_on_crit_prob then local active_item = db.actor:active_item() if active_item and active_item:section() ~= "bolt" and active_item:section()~= "wpn_knife" then db.actor:drop_item(active_item) end end end end prev_health = db.actor.health end end Ну по такому случаю, тебе можно и не создавать новый скрипт, а подправить и этот, вот только как именно ты представляешь экран в крови, постэфектом или текстурой. Постэфект, если такой и есть делаеться аналогично, я думаю ты уже догадался, но вот есть ли он? Текстурой... грубовато будет, текстура будет резко появляться и так же резко изчезать. А вот про какой конфиг ты говорил - загадка. Куфзук Изменено 16 Марта 2011 пользователем Куфзук Ссылка на комментарий
TRAMP14 1 Опубликовано 16 Марта 2011 Поделиться Опубликовано 16 Марта 2011 (изменено) function some_spawn() local shit = {"wpn_ak74", "wpn_abakan", "kolbasa", "bread", "vodka", "medkit", "bandage"} alife():create(shit[math.random(7)], db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end А вот так? Изменено 16 Марта 2011 пользователем TRAMP14 Ссылка на комментарий
Капрал Хикс 532 Опубликовано 18 Марта 2011 Поделиться Опубликовано 18 Марта 2011 Такой вопрос, надеюсь, в нужной теме спрашиваю. Если что, пост под снос. Есть АМК 1.4.1 и новые локации. Для спавна динамических аномалий на новых локах вписать их в amk/anoms/anoms.ltx по точкам спавна, это вроде понятно, а вот как указывать вертексы в amk_anoms.script? Заранее спасибо. Ссылка на комментарий
=VENOM= 50 Опубликовано 18 Марта 2011 Поделиться Опубликовано 18 Марта 2011 Вот так : function some_spawn(first_speaker, second_speaker) local shit = {"wpn_ak74", "wpn_abakan", "kolbasa", "bread", "vodka", "medkit", "bandage"} local item = shit[math.random(table.getn(shit))] alife():create(item,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) end Капрал Хикс, в amk/anoms/anoms.ltx прописываются "противоаномальные" зоны - то есть места, где динамические аномалии спониться не будут. Ссылка на комментарий
TRAMP14 1 Опубликовано 18 Марта 2011 Поделиться Опубликовано 18 Марта 2011 Напишите пожалуйста как сделать ввод текста на тип "Меток с хабаром". Очень надо но найти не могу Ссылка на комментарий
FSX 0 Опубликовано 18 Марта 2011 Поделиться Опубликовано 18 Марта 2011 Делаю смарт на ЗП для новой локации.Получаю следущее: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...l.k.e.r. - Зов Припяти\gamedata\scripts\utils.script:469: bad argument #1 to 'gsub' (string expected, got nil) Ссылка на комментарий
_Призрак_ 11 Опубликовано 18 Марта 2011 Поделиться Опубликовано 18 Марта 2011 у тебя смарт с логикой. Но игра не может или найти прописанный файл с логикой или не может найти в этом файле саму секцию логики, или не прописана актив = логика Freedom Ссылка на комментарий
=VENOM= 50 Опубликовано 18 Марта 2011 Поделиться Опубликовано 18 Марта 2011 А у меня вот какой вопрос: возможно ли как-то изменить отношение непися к игроку в оффлайне? Ссылка на комментарий
Ulman 5 Опубликовано 18 Марта 2011 Поделиться Опубликовано 18 Марта 2011 Люди, вот такая у меня проблема, при старте игры на Кордоне такой вылет [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...game$\s.t.a.l.k.e.r\gamedata\scripts\xr_logic.script:126: attempt to index local 'st' (a nil value) . Скажите как исправить, если надо могу залить свои скрипты. Ссылка на комментарий
TASTAN 1 Опубликовано 18 Марта 2011 Поделиться Опубликовано 18 Марта 2011 Подскажите как мне зделать чтоб група НПС перешла из одного смарта в другой(он на другой локации), но чтоб они туда бежали и были группой, а не разбегались? Ссылка на комментарий
allshaddad 0 Опубликовано 19 Марта 2011 Поделиться Опубликовано 19 Марта 2011 Не подскажете, как заставить вызвать окно диалога между мутантом и ГГ? Хотя бы как в диалоге с О-Сознанием? Или же сделать сталкера на модели мутанта? При всех моих попытках получались либо мутанты-инвалиды, окно не не вызывалось, либо значительно уменьшенный вариант нупса, чем-то напоминающий говорящий рюкзак.... Ссылка на комментарий
Полтергейст 37 Опубликовано 19 Марта 2011 Поделиться Опубликовано 19 Марта 2011 (изменено) возможно ли как-то изменить отношение непися к игроку в оффлайне? Можно сделать, чтобы его отношение изменилось при ближайшем переходе в онлайн - в его биндере сделать строку с условиями и результатами их выполнения (которая condlist). Но смысла нет - из оффлайна он игрока всё равно не подстрелит. В крайнем случае, в оффлайне можно сделать примерно то же самое, только перегрузить функцию community() в se_stalker и подставлять ей принудительные значения. Не знаю правда, как это понравится движку. Можно через net_packet'ы, в amk.script есть соотв. функции. Вообще непонятно, зачем разрабы сделали такие параметры, как health, community и т.п. в виде функций - проще же сделать в виде переменной, и менять её удобнее. xr_logic.script:126: attempt to index local 'st' Это бывает, когда для какого-то npc не создана таблица db.storage. Бороться с этим бесполезно, надо искать изменения, повлёкшие эти последствия. Изменено 19 Марта 2011 пользователем Полтергейст Ссылка на комментарий
=VENOM= 50 Опубликовано 19 Марта 2011 Поделиться Опубликовано 19 Марта 2011 Полтергейст, кто ищет, тот найдёт . Для одной локации я уже всё решил и написал. А вот если непись находится на другой - тут по-моему уже ничего не поделать. Дело не в стрельбе, а в изменении отношений по условию, в другом месте. Именно для того, чтобы не париться с нетспоном - переходом в онлайн и обратно. Зачем весь этот геморрой? Вот есть же очень удобные функции для изменения отношений группировок, хоть онлайн, хоть оффлайн - без разницы... А с отдельными неписями, независимо от того, в какой он группировке, вот так мудрить приходится ... Ссылка на комментарий
TRAMP14 1 Опубликовано 20 Марта 2011 Поделиться Опубликовано 20 Марта 2011 Может глупый вопрос но: local tbl = {13, 95, 14, 96, 15, 97, 16, 98, 28, 99, 17, 100, 19, 22, 103, 23, 24, 104, 105, 29, 30, 107, 26, 108, 21, 20, 101, 102, 31, 109, 36, 110, 37, 111} Значения таблицы будут k или v? Ссылка на комментарий
_Призрак_ 11 Опубликовано 20 Марта 2011 Поделиться Опубликовано 20 Марта 2011 v k - номер числа Freedom Ссылка на комментарий
TRAMP14 1 Опубликовано 20 Марта 2011 Поделиться Опубликовано 20 Марта 2011 v - значение, к - порядковый номер в таблице? Так? А где можно получить полную таблицу clsid? Ссылка на комментарий
_Призрак_ 11 Опубликовано 20 Марта 2011 Поделиться Опубликовано 20 Марта 2011 Полтергейст Разве не применимы? Хм. По идее в k будет находится порядковый номер, а в v значение. Но можно как ты сказал перебрать такие таблицы так: for num = startn, endn do if tbl[num] == clsid.script_stalker then printf("This is stalker clsid") end end Но тогда уж лучше написать так: for num = startn, #tbl do if tbl[num] == clsid.script_stalker then printf("This is stalker clsid") end end верь часто не знаешь сколько значений в таблице Freedom Ссылка на комментарий
TRAMP14 1 Опубликовано 20 Марта 2011 Поделиться Опубликовано 20 Марта 2011 А вот ещё вспомнил: Давно хотел спросить - что значит next(название таблицы)? Всю голову сломал, никак додуматься не могу Ссылка на комментарий
Malandrinus 615 Опубликовано 20 Марта 2011 Поделиться Опубликовано 20 Марта 2011 TRAMP14, А где можно получить полную таблицу clsid? Это не таблица, а userdata. Проще говоря, это такой же класс, как и все остальные экспортированные из движка классы, только содержащий одни константы. Нет способа узнать скриптом, сколько там полей. С другой стороны, там только те константы, которые зарегистрированы движком (и их там фиксированное количество) и те, которые добавлены туда скриптом class_registrator.script. Так что можно составить их список вручную. Полтергейст, Циклы "for k,v in pairs(tbl) do" неприменимы к одномерным таблицам (вместо k и v можно написать всё, что угодно). Признаться, не понял, что такое "одномерные таблицы". Функция pairs применима к абсолютно любой таблице. TRAMP14, что значит next(название таблицы)? это основы Lua. Значит надо смотреть здесь www.lua.ru Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти