mole venomous 3 377 Опубликовано 10 Октября 2020 Зачем эктив-слот? Вот проверка наличия брони в слоте Скрытый текст local actor = db.actor local item = actor and actor:item_in_slot(6) return item 1 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 11 Октября 2020 При отсутствии в оллспаун указанных для объекта путей получаю зависание объекта и сообщение в лог: Скрытый текст Scheduler tried update object <имя_объекта> Возможно ли в этот момент отловить косяк и проинформировать сообщением на худ? Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 11 Октября 2020 Только что, AndreySol сказал: Данное сообщение движковое Я так и думал. Ф-ии abort и правки xr_logic в лучшем случае позволяют получать СМС при сохранении... Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 14 Октября 2020 (изменено) 9 часов назад, Libery сказал: Не получается Я бы посоветовал применить рекомендацию, которую дал @AndreySol и протестить на самом простеньком и безобидном коде, что бы понять на практике самому, "как надо, что бы работало". Изменено 14 Октября 2020 пользователем mole venomous 1 2 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 14 Октября 2020 10 минут назад, Libery сказал: что бы человек не мучился Я не просто так посоветовал попробовать самому применить на практике, взяв за основу простой скрипт. На практике понимаешь, что делаешь. Это в дальнейшем пригодится, это личный опыт. 4 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 14 Октября 2020 5 минут назад, Libery сказал: Моды это как хобби Если меня сейчас поволочёт, модераторы переместят к чертям это. Я думаю, с моддингом и спортом можно провести параллели. Это как хобби, к этому есть привыкание. Застойное состояние снижает интерес, а успехи вдохновляют ещё больше. Понятно, что во всём сам не разберёшься. Тебя подталкивают, а дальше сам. В итоге ты благодарен за помощь, но успех вдвойне приятен, потому что "дальше сам". Тебе вот такое посоветовали Скрытый текст if item:clsid() ~= clsid.obj_bolt and item:clsid() ~= clsid.device_pda then -- пример для болта и ПДА actor:transfer_item(item, box) end А следующий твой пост без этого. Выходит, ты не использовал? Как тогда оно будет работать? 2 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 30 Октября 2020 (изменено) Решил по быстрому заспавнить освещение скриптом. Использовал код из AEM (для смены освещения на арене). Всё спавниться и работает, но после сейв/лоада объекты меняют свой direction. По висячим лампам "ильича" этого не видно, а несимметричные объекты, типа настольной лампы, доставляют. Думаю, в коде нужны дополнительные манипуляции с direction и если так, то какие? Код почти без правок, добавил аргументы lvid и gvid: Скрытый текст function v3f(x,y,z) return vector():set(x,y,z) end пример спавна add_lamp(v3f(139.67343139648,-6.1285934448242,180.18035888672),1203772,3686,v3f(0,-1.0,0),"physics\\light\\lampa_01_on",0.8,true) function add_lamp(pos, lvid, gvid, dir, visual, brightness, shadow, color) local light_flags = 56 if shadow then light_flags = light_flags + 2 end local packet = net_packet() packet:w_u16(gvid) packet:w_float(0.0) packet:w_s32(1) packet:w_s32(lvid) packet:w_s32(-70) packet:w_stringZ("") packet:w_s32(-1) packet:w_s32(-1) packet:w_stringZ(visual) packet:w_u8(0) packet:w_stringZ("$editor") packet:w_u8(0) packet:w_u16(-1) if color ~= nil then packet:w_s32(color) packet:w_float(brightness) packet:w_stringZ("") else packet:w_s32(-1) packet:w_float(brightness) packet:w_stringZ("light\\light_omni_white_idle") end packet:w_float(14.0) packet:w_u16(light_flags) packet:w_stringZ("$editor") packet:w_stringZ("link") packet:w_float(100.0) packet:w_float(0.1) packet:w_float(4.0) packet:w_float(0.3) packet:w_stringZ("") packet:w_stringZ("") packet:w_stringZ("bone_lamp") packet:w_float(1.0) packet:w_stringZ("") packet:w_float(0.7) packet:w_stringZ("bone_omni") local se_obj = alife():create("aem_lamp", pos, lvid, gvid) se_obj:STATE_Read(packet, packet:w_tell()) if dir ~= nil then se_obj.direction = vector():set(dir) end end После спауна (как запланировано): https://yadi.sk/i/Wqubj3MUGLwvhA После сейв/лоада(повёрнута): https://yadi.sk/d/aqF7QfAZH5y5GQ Изменено 30 Октября 2020 пользователем mole venomous Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 8 Декабря 2020 (изменено) 4 часа назад, UriZzz сказал: _g.script:1382: attempt to call global 'exit' А что это за эксит? Начни с него. Я хелпера не сразу подключил, тоже из _g на него ругань сыпалась. Правда на 1.0006 всё было, но уже со значительными вмешательствами в глобальное пространство. Ругался, вроде, на функцию log или abort... 4 часа назад, UriZzz сказал: Scheduler tried to update object А это и всё остальное из скриптов следом идёт. @Colder, Вот ссылка: Скрытый текст https://synthira.ru/load/s_t_a_l_k_e_r/ten_chernobylja_mody/artefact_respawner_1_01_by_kstn/19-1-0-4790 Там респаунер артефактов, который до сих пор я использую. Многовероятно, код идентичен с тем, что у приложенного тобой скрипта. Так или иначе, должен отметить, что этот аддон замечательно работает у меня в сборке, где полно всяческих дополнений, правок и костылей. У тебя, видимо, что то где то очень круто пересекается, раз такие дела творятся... Изменено 8 Декабря 2020 пользователем mole venomous Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 11 Декабря 2020 20 минут назад, UriZzz сказал: Помогите с одной функцией Может, я не так понял вопрос, но если использовать флаг enemy и оператор break? Для примера оригинальный код АМК: Скрытый текст if alife():object(oid)==nil then local enemy=false for a=0,65534 do local obj=level.object_by_id(a) if obj then if (( IsStalker(obj) and amk.get_npc_relation(obj,db.actor)=="enemy" ) or IsMonster(obj)) and obj:position():distance_to(db.actor:position())<40 and obj:see(db.actor) then enemy=true break end end end if enemy==true then amk.send_tip(game.translate_string("not_need_sleep_enemy"),nil,nil,5) else if amk.load_variable("blowout",-1)>-1 and amk.load_variable("blowout",-1)<5 then amk.send_tip(game.translate_string("blowout_not_sleep"),nil,nil,5) else if amk.load_variable("block_sleep_menu",0)==0 then if amk.load_variable("gg_need_sleep",0)>10 then local spwn=ui_cheat.cheat(get_hud()) level.start_stop_menu(spwn,true) else amk.send_tip(game.translate_string("not_need_sleep"),nil,nil,5) end else amk.send_tip(game.translate_string("not_need_sleep_nrg"),nil,nil,5) end end end amk.spawn_item_in_inv("matras") end 1 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 12 Декабря 2020 Возник вопрос по GPS-меткам с хабаром от Idler'а. Вернее, по их работе на движке OGSR. С переходом на новый движок они стали работать только до перезагрузки. Т.е. метка ставиться, список хабара или имя НПС отмечены, после сейв/лоада ничего уже нет. Просмотр отладочной информации мне даёт понять, что при загрузке "найдено 0 маячков и метка удалена". Кто-нибудь сталкивался с подобным при адаптации? Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 10 Января 2021 @Jekyll насчёт последствий не знаю наверняка. Но в НС2016 (вероятно и не только там) есть способ удаления, цитата: "функция удаляющая объект с неверным вертексом(определение на валидность не только game, но и level вертекса)" Если имеются ввиду именно такие объекты, то это как способ (костыль) решения возможных последствий. 1 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 10 Января 2021 7 минут назад, Zander_driver сказал(а): Может быть, все же раскроете секрет? Нет, не раскрою. Это лишь предположение, основанное на том, что раз есть способ принудительного удаления, он для чего то нужен. Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 10 Января 2021 @Zander_driver я бы вообще ничего не писал, но аномалии он удалять может. @Jekyll поинтересовался о возможных проблемах, я выразил своё предположение (у меня всегда удаляет на НИ одни и те же зоны). А заодно у меня есть вариант положить в свою копилочку маленько знаний на очередном мини-заседании. Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 28 Января 2021 (изменено) @Colder обозначь аномалию, как объект и установи условие, при котором между ГГ и объектом будет меньше указанного расстояния для выполнения необходимого действия. И, как и обозначил Zander, это перебор 65 тысяч объектов, но способ рабочий. Если движок 10006 и ранее, посмотри в файлах амк-мода (amk_anoms.script), как определить аномалию. Дальше методом научного тыка тебе станет уже понятнее. Изменено 28 Января 2021 пользователем mole venomous 1 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 9 Февраля 2021 @h0N0r Может, поможет такая проверка? if (obj.parent_id and obj.parent_id == 65535) 1 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 13 Февраля 2021 По поводу артефактов. С самого начала использую скрипт art_mgr и всё мне нравится, кроме того, что порой арты спаунятся где-нибудь в недоступности для ГГ (за колючкой, например). ГГ их взять не может, мобы тоже там не ходят, вот и лежит артефакт там всё время. Но по легенде, на открытом воздухе он "тратится" и когда его condition менее нижнего предела, попросту удаляется. И вот тут моих знаний не хватает, что бы пользоваться стандартными ф-иями, банальные методы condition() и set_condition() приводят к вылету. Пришлось средствами m_netpk через биндер net_spawn отнимать у валяющихся артов понемногу кондиции (плюс-минус рандом) каждые несколько часов. 1 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 15 Февраля 2021 @AndrewMor так из конфигурации ствола, вроде, биндинг Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 15 Февраля 2021 @Colder function check_community(community) if db.actor then return db.actor:character_community() == community end return false end Скрытый текст if check_community("actor") then action 1 else action 2 end 1 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 19 Февраля 2021 (изменено) Не поленился и проверил. Конкретно эта лампочка (light_uglovaya_1_glass_0006) замечательно удаляется, как источник света. Оставшийся светильник это декор на локации. @I am Dead , способ вполне рабочий, что предложил@AndreySol , только , как уже указали, там кавычки нужны. Скрытый текст local sim = alife() local s_obj = sim:object("light_uglovaya_1_glass_0006") if s_obj then sim:release(s_obj, true) end Сам всё проверил, поставил вызов ф-ии при загрузке левела. Изменено 19 Февраля 2021 пользователем mole venomous 2 1 1 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение
mole venomous 3 377 Опубликовано 19 Февраля 2021 (изменено) Думаю, проверки на наличие s_obj достаточно, но если нужна проверка поршня, лучше сделать из bind_stalker, биндер net_spawn что-то вроде: Скрытый текст if not has_alife_info(инфо) then self.object:give_info_portion(инфо) экшн end Изменено 19 Февраля 2021 пользователем mole venomous 1 Здесь могла быть ваша реклама. Поделиться этим сообщением Ссылка на сообщение