-
Публикаций
834 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные ian98
-
-
Только что, ian98 сказал:function remove_random_item() local important_objects = { -- Здесь предметы, которые нельзя удалять [ "bolt" ] = true, [ "device_pda" ] = true, } local tbl = {} local cnt = 0 db.actor:iterate_inventory( function( dummy, obj ) if obj and not important_objects[ obj:section() ] then cnt = cnt + 1 table.insert( tbl, obj:id() ) end end ) if cnt == 0 then return end local rnd = tbl[ math.random( table.getn( tbl ) ) ] local sobj = alife():object( rnd ) if sobj then news_manager.relocate_item( db.actor, "out", sobj:section_name() ) alife():release( sobj, true ) end end
подскажите, как удалить сразу 10 предметов этим скриптом? Прощупать не могу, а по знаниям 0. Умею только таблицы заполнять, если они есть)
Подскажите
-
Спойлерfunction remove_random_item() local important_objects = { -- Здесь предметы, которые нельзя удалять [ "bolt" ] = true, [ "device_pda" ] = true, } local tbl = {} local cnt = 0 db.actor:iterate_inventory( function( dummy, obj ) if obj and not important_objects[ obj:section() ] then cnt = cnt + 1 table.insert( tbl, obj:id() ) end end ) if cnt == 0 then return end local rnd = tbl[ math.random( table.getn( tbl ) ) ] local sobj = alife():object( rnd ) if sobj then news_manager.relocate_item( db.actor, "out", sobj:section_name() ) alife():release( sobj, true ) end end
подскажите, как удалить сразу 10 предметов этим скриптом? Прощупать не могу, а по знаниям 0. Умею только таблицы заполнять, если они есть)
-
А знает кто как цветным текстом писать? Вот, я делаю так: <text>\n%c[01,255,128,0]ТЕКСТ%c[01,255,128,0]</text>
Ловлю вылет. Что не так?
Спойлер-
1
-
-
билды какие-то не прикольные. В тех же билдах тч можно было бегать, прыгать, стрелять, пить водку и торговать, проходить миссии. Можно было миссии и не проходить. В общем, было весело.
-
Mopa Я посносил их. Попробую внимаиельнее все выключить еще раз. Новая игра была. Я ее постоянно начинаю после каждой правки.
-
Andrimal эх, не мой нубский уровень) Там что-то по скриптам. https://www.amk-team.ru/forum/faq/question/120-line-748/. Может легкая опечатка, стоит проверить я думаю. У меня такого вылета никогда не было, кстати. Играл много.
-
-
Mopa Хорошо, что я и не пробовал с
[spawner]
cond = never
А по аномалиям, то обязательно нужно менять строчку
spawn_blowout_artefacts = on/off
В случае, если просто выкрутить все пропы на ноль, игра будет крашить ссылаясь на нулевые значения в спавне.
-
-
Mopa т.е, если я не хочу их спавнить, то мне выкрутить пропы на 0? Я уже замучался с этим спавном. Удалить из него ничего не получается - в 100% случаев вылет. Прятать под землю, блин, оно иногда вылазит в разных местах. Ужас. В зп почему-то не было таких проблем вообще. Удалил что-то из спавна и удалил. Здесь же... Хотя, вот прям сейчас мысль пришла, можно ли прописывать всему в спавне вот такое, как с машинами:
[spawner]
cond = neverМожет хоть так уберу эти горы лута по всей чзо?
-
Alex Kireev Не понял, на какой карте? Аномалии рандомно все-таки рожают артефакты? И как этим управлять можно?
Дополнено 30 минуты спустяСпойлер[zone_mosquito_bald] GroupControlSection = spawn_group_zone $spawn = "zones\mosquito bald" $prefetch = 16 class = ZS_MBALD hit_impulse_scale = 0.3;0.5 ;0.1 effective_radius = 0.85 ;размер радиуса в процентах от оригинального, где действует зона actor_blowout_radius_percent = 0.75 ef_anomaly_type = 1 ef_weapon_type = 13 sound = zone_mosquito_bald postprocess = mosquito_bald BirthProbability = 0.1 hit_type = strike ;----------- Anomaly settings ----------------------- min_start_power = 0.99 max_start_power = 1.00 attenuation = 1 period = 1 min_artefact_count = 0 max_artefact_count = 0 idle_particles = anomaly2\bold_idle blowout_particles = anomaly2\gravity_blast_01 hit_small_particles = hit_fx\hit_metal_02 hit_big_particles = anomaly2\gravity_damage_02_blood2 idle_small_particles = anomaly2\gravity_damage_01_smoke idle_big_particles = anomaly2\gravity_damage_02_smoke entrance_small_particles = anomaly2\gravity_entrance_small entrance_big_particles = anomaly2\gravity_entrance_big ;anomaly2\gravity_entrance_big idle_sound = anomaly\gravi_rumble1; ambient\fx2 ;постоянный звук blowout_sound = anomaly\anomaly_gravy_blast1; anomaly_gravy_blast01 ;во время выброса(удара) в центре аномалии hit_sound = anomaly\anomaly_gravy_hit1 ;на персонаже, когда тот получает хит entrance_sound = anomaly\anomaly_gravy_hit1 ;при попадании объекта в аномалию awaking_time = 50;100 blowout_time = 500 accamulate_time = 1000 ;10;200 blowout_light_time = 200 blowout_explosion_time = 200 blowout_particles_time = 200 blowout_sound_time = 100 disable_time = 5000 ;время игнорирования неживого объекта в зоне (-1 если не нужно) disable_time_small = 5000 ;время игнорирования маленького неживого объекта в зоне (-1 если не нужно) disable_idle_time = 100 ;время отключения idle партиклов ignore_nonalive = false ignore_small = true ignore_artefacts = true blowout_light = on light_color = 0.5,0.4,0.3 light_range = 30.0 light_time = 0.9;0.35 light_height = 1.5 ;подъем источника света на высоту idle_light = off visible_by_detector = on ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;рождение артефактов artefacts = af_medusa,0.7, af_cristall_flower, 0.25,af_night_star, 0.05 ;;во время срабатывания в online spawn_blowout_artefacts = on artefact_spawn_probability = 0.09 ;вероятность, что во время срабатывания аномалии будет рожден артефакт artefact_spawn_particles = anomaly2\pux_blast ;партиклы, которые отыграются на месте рождения артефакта (опционально) artefact_born_sound = anomaly\pux_blast ;звук, который отыграются на месте рождения артефакта (опционально) throw_out_power = 50 ;импульс с которым артефакт будет выброшен из зоны в произвольном направлении artefact_spawn_height = 3 ;(м) высота на центром зоны где будет рожден артефакт ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ветер blowout_wind = on blowout_wind_time_start = 0 blowout_wind_time_peak = 300 blowout_wind_time_end = 501; 899 blowout_wind_power = 0.5 ;сила поднимаего ветра (от 0 до 1), в момент blowout_wind_time_peak [zone_mosquito_bald_weak]:zone_mosquito_bald $spawn = "zones\mosquito bald_weak" awaking_time = 80;100 blowout_time = 500 hit_impulse_scale = 0.1 effective_radius = 0.65 actor_blowout_radius_percent= 0.6 artefacts = af_medusa,0.8, af_cristall_flower, 0.2,af_night_star, 0.0 BirthProbability = 0.1 spawn_blowout_artefacts = on ;----------- Anomaly settings ----------------------- min_start_power = 0.49 max_start_power = 0.5 attenuation = 1 period = 1 min_artefact_count = 0 max_artefact_count = 1 artefact_spawn_idle = 24 ;насколько часто спонить артефакты в офлайне, в часах artefact_spawn_rnd = 50 ;вероятность заспавнить артефакт в процентах. accamulate_time = 1000 ;10;200 ignore_nonalive = false ignore_small = false ignore_artefacts = true blowout_wind_power = 0.2 ; Не производящая артефактов слабая аномалия [zone_mosquito_bald_weak_noart]:zone_mosquito_bald_weak $spawn = "zones\mosquito bald_weak_noart" spawn_blowout_artefacts = off min_artefact_count = 0 max_artefact_count = 0 artefact_spawn_idle = 24 ;насколько часто спонить артефакты в офлайне, в часах [zone_mosquito_bald_average]:zone_mosquito_bald $spawn = "zones\mosquito bald_average" awaking_time = 50 blowout_time = 500 hit_impulse_scale = 0.2 effective_radius = 0.75 actor_blowout_radius_percent= 0.8 artefacts = af_medusa,0.6, af_cristall_flower, 0.4,af_night_star, 0.0 BirthProbability = 0.1 spawn_blowout_artefacts = on ;----------- Anomaly settings ----------------------- min_start_power = 1.19 max_start_power = 1.20 attenuation = 1 period = 1 min_artefact_count = 1 max_artefact_count = 1 artefact_spawn_idle = 24 ;насколько часто спонить артефакты в офлайне, в часах artefact_spawn_rnd = 70 ;вероятность заспавнить артефакт в процентах. accamulate_time = 1000 ;10;200 ignore_nonalive = false ignore_small = false ignore_artefacts = true blowout_wind_power = 0.5 [zone_mosquito_bald_strong]:zone_mosquito_bald $spawn = "zones\mosquito bald_strong" awaking_time = 30 blowout_time = 500 accamulate_time = 49 hit_impulse_scale = 0.2 effective_radius = 0.8 actor_blowout_radius_percent= 0.85 artefacts = af_medusa,0.2, af_cristall_flower, 0.6,af_night_star, 0.2 BirthProbability = 0.1 spawn_blowout_artefacts = on ;----------- Anomaly settings ----------------------- min_start_power = 1.99 max_start_power = 2.00 attenuation = 1 period = 1 min_artefact_count = 1 max_artefact_count = 2 artefact_spawn_idle = 24 ;насколько часто спонить артефакты в офлайне, в часах artefact_spawn_rnd = 90 ;вероятность заспавнить артефакт в процентах. accamulate_time = 1000 ;10;200 blowout_wind_power = 1 ; Не производящая артефактов слабая аномалия [zone_mosquito_bald_strong_noart]:zone_mosquito_bald_strong $spawn = "zones\mosquito_bald_strong_noart" spawn_blowout_artefacts = off min_artefact_count = 0 max_artefact_count = 0 artefact_spawn_idle = 24 ;насколько часто спонить артефакты в офлайне, в часах [zone_sarcofag] GroupControlSection = spawn_group_zone $spawn = "zones\sarcofag zone" $prefetch = 16 class = Z_MBALD hit_impulse_scale = 0.3;0.5 ;0.1 effective_radius = 0.85 ;размер радиуса в процентах от оригинального, где действует зона actor_blowout_radius_percent = 0.75 ef_anomaly_type = 1 ef_weapon_type = 13 sound = zone_mosquito_bald postprocess = mosquito_bald ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;рождение артефактов artefacts = BirthProbability = 0.0 spawn_blowout_artefacts = off hit_type = strike ;----------- Anomaly settings ----------------------- min_start_power = 1.69 max_start_power = 1.70 attenuation = 1 period = 1 min_artefact_count = 0 max_artefact_count = 0 idle_particles = anomaly2\bold_idle_sarkofag blowout_particles = anomaly2\bold_sarkofag_blast hit_small_particles = hit_fx\hit_metal_02 hit_big_particles = anomaly2\gravity_damage_02_blood2 idle_small_particles = anomaly2\gravity_damage_01_smoke idle_big_particles = anomaly2\gravity_damage_02_smoke entrance_small_particles = anomaly2\gravity_entrance_small entrance_big_particles = anomaly2\gravity_entrance_big ;anomaly2\gravity_entrance_big idle_sound = anomaly\gravi_rumble1; ambient\fx2 ;постоянный звук blowout_sound = anomaly\anomaly_gravy_blast1; anomaly_gravy_blast01 ;во время выброса(удара) в центре аномалии hit_sound = anomaly\anomaly_gravy_hit1 ;на персонаже, когда тот получает хит entrance_sound = anomaly\anomaly_gravy_hit1 ;при попадании объекта в аномалию awaking_time = 50;100 blowout_time = 500 accamulate_time = 1000 ;10;200 blowout_light_time = 200 blowout_explosion_time = 200 blowout_particles_time = 200 blowout_sound_time = 100 disable_time = 5000 ;время игнорирования неживого объекта в зоне (-1 если не нужно) disable_time_small = 5000 ;время игнорирования маленького неживого объекта в зоне (-1 если не нужно) disable_idle_time = 100 ;время отключения idle партиклов ignore_nonalive = false ignore_small = true ignore_artefacts = true blowout_light = on light_color = 0.5,0.4,0.3 light_range = 30.0 light_time = 0.9;0.35 light_height = 1.5 ;подъем источника света на высоту idle_light = off visible_by_detector = on artefact_spawn_probability = 0.00 ;вероятность, что во время срабатывания аномалии будет рожден артефакт artefact_spawn_particles = anomaly2\pux_blast ;партиклы, которые отыграются на месте рождения артефакта (опционально) artefact_born_sound = anomaly\pux_blast ;звук, который отыграются на месте рождения артефакта (опционально) throw_out_power = 50 ;импульс с которым артефакт будет выброшен из зоны в произвольном направлении artefact_spawn_height = 3 ;(м) высота на центром зоны где будет рожден артефакт ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ветер blowout_wind = off blowout_wind_time_start = 0 blowout_wind_time_peak = 300 blowout_wind_time_end = 501; 899 blowout_wind_power = 0.5 ;сила поднимаего ветра (от 0 до 1), в момент blowout_wind_time_peak
Походу рождается часть артов через них. Если кто знает работают они или нет, отпишите, может их нет смысла ковырять и они не работают. Я просто четко слышал много раз, что в тч все арты через спавн
-
Nick Proxy получается аномалии рожают)? Если да, то как управлять этим? Как я понял, вот аномальная зона, тут вроде радиация, а снизу что-то про количество артефактов, а что такое position_ofset могу только предположить по первому слову. Для меня это кракозябры. Я давно слышал, что арты из аномалий, но также давно я слышал, что это миф...
; cse_abstract properties section_name = zone_radioactive_average name = val_zone_radioactive_average_0001 position = -58.2888565063477, -1.92057704925537, -131.032012939453 direction = 0, 0, 0 id = 65535 version = 118 script_version = 6 spawn_id = 2536 ; cse_alife_object properties game_vertex_id = 880 distance = 23.799999 level_vertex_id = 108660 object_flags = 0xffffff3e ; cse_shape properties shapes = 1 shape_0:type = sphere shape_0:offset = 0,0,0 shape_0:radius = 4.41640090942383 ; cse_alife_space_restrictor properties restrictor_type = 3 ; cse_alife_custom_zone properties max_power = 0.0099999998 ; cse_alife_anomalous_zone properties offline_interactive_radius = 30 artefact_spawn_count = 32 artefact_position_offset = 0x3c32
-
Nick Proxy НО он единственный, а там целые поля. Ночные звезды, медузы и каменные цветки, но где они?
-
Nick Proxy Ну, вот у меня спавн, файл alife_l03_agroprom, где целые поля этих артов, ничего нет по запросу section_name = af
-
-
Артефакты в игре спавнятся с самого начала. Часть из них прописана в файле all.spawn, но только часть. Так вот, интересно мне, а где же прописаны остальные? Знает кто?
-
Sergey_Belichenko блин, я легко бы отдал тебе свой галиль из кс гов за 50 баксов, только бы избавить себя от страданий с бесконечным ctrl+c ctrl+v в character_desc конфигах. В закрепе примерно то, что я планирую и очень медленно реализую. Я скинул его на случай, если ты принял мое предложение, вызвался помочь подарив мне этот чудоскрипт
-
Sergey_Belichenko так что, это, получается только character_desc клонировать профили?
И еще вопрос, вот ты мне подарил эту замечательную функцию на удаление случайного предмета, она работает отлично, но есть несколько вопросов. Первый, а можно ли сделать проверку к этой функции на общее кол-во предметов в инвентаре, например 10, чтобы только от 10 предметов в инвентаре гг ее включать?
Второй, я клянусь, изменив вот эту строчку
Спойлерnews_manager.relocate_item( db.actor, "out", sobj:section_name() )
я какое-то время вместо потери случайного предмета ПОЛУЧАЛ случайный предмет. Причем это было абсолютно реально, я этим предметом мог пользоваться, и это очень странно, ибо строчка отвечает за уведомление по моим недалеким представлениям. Ключевое здесь это какое-то время. Сейчас я не получаю, а также теряю предмет, а мне просто пишет типо я получил его и все, т.е скрипт заработал как надо. Так вот, вопрос, можно ли выдавать подобной функцией предмет? А то я сейчас пользуюсь, эх, вот этой длиннющей функцией
Спойлерfunction thank_you_old (npc, npz) local reward_item = math.random(1,191) if reward_item == 1 then dialogs.relocate_item_section(npc, "wpn_abakan", "in") end if reward_item == 2 then dialogs.relocate_item_section(npc, "wpn_ak74", "in") end ...
-
23 минуты назад, Sergey_Belichenko сказал:Можно заспаунить ему ствол с патронами, а выберет ли он его или нет, не знаю.
а там можно указывать вероятности? По аналогии с character_desc только одним файлом для всех нпс разом, или выборочно. А то я в попытке дать всем нпс больше выбора в вооружении уже растратил все свои силы. Я делаю это с помощью клонирования и молюсь найти способ легче) Мое безобразие в закрепе.
Дополнено 0 минут спустяТолько что, ian98 сказал:По аналогии с character_desc только одним файлом для всех нпс разом, или выборочно
-
10 часов назад, Sergey_Belichenko сказал:function remove_random_item() local important_objects = { -- Здесь предметы, которые нельзя удалять [ "bolt" ] = true, [ "device_pda" ] = true, } local tbl = {} db.actor:iterate_inventory( function( dummy, obj ) if obj and not important_objects[ obj:section() ] then table.insert( tbl, obj:id() ) end end ) local rnd = tbl[ math.random( table.getn( tbl ) ) ] local sobj = alife():object( rnd ) if sobj then news_manager.relocate_item( db.actor, "out", sobj:section_name() ) alife():release( sobj, true ) end end
Столкнулся с проблемой, когда игра вылетает в случае полного отсутствия хоть какого-нибудь предмета в инвентаре гг. Решил ее вот такой
Спойлерfunction if_actor_has_items(first_speaker, second_speaker)
return first_speaker:object("wpn_abakan") ~= nil or
first_speaker:object("wpn_ak74") ~= nil or и т.дОднако, даже не обращая внимания на геморрой с наполнением предметов в эту проверку, игрок может скинуть свой важный хабар на землю и считерить отдав какой-нибудь мусор со 100% шансом, что расстраивает, наверное, и игрока(ему кажется, что это какая-то нелепая дыра), что расстраивает и меня(мне кажется, что это какая-то дыра). Поэтому, вопрос, можно ли устроить проверку общего количества предметов в инвентаре не зацикливаясь на конкретных предметах? Есть какая-то идеальная строчка? А то я нашел вот такую проверку, она не подходит... Ну, и я ее не очень понимаю, так что может ее можно как-то поправить и будет в самый раз
Спойлерfunction название функции(first_speaker, second_speaker) local item_sections = { ["medkit"] = 5, -- к примеру 5 аптечек ["bandage"] = 2} -- и два бинта local function calc(temp, item) local sect = item:section() if item_sections[sect] and item_sections[sect]>0 then if item_sections[sect]==1 then item_sections[sect] = nil else item_sections[sect] = item_sections[sect] - 1 end end end db.actor:iterate_inventory(calc, db.actor) return next(item_sections)==nil end
-
Sergey_Belichenko заработало! Большое спасибо
Дополнено 51 минуты спустяSergey_Belichenko А можно ли перевооружить нпс с помощью скрипта? Без чехарды с character_desc.
-
Sergey_Belichenko чет не вышло. Подключал через диалог
<action>sweet_rewards.remove_random_item</action>
-
Sergey_Belichenko попробую. Болт может удалиться? Спрашиваю, ибо болт дается не через character_desc или all.spawn, и я не знаю как он дается гг, скриптом наверное. Да и там вроде стол есть, можно туда вбить список предметов на удаление?
-
vader_33 да я просто забил на реализацию той идеи своей. У меня такой вопрос, есть представление но геморное и долгое и мб как-то быстрее можно это сделать, возможно ли диалогом забрать случайный предмет из инвентаря гг?
[SoC] Модострой: вопросница
в Уроки, вопросы и советы по созданию модов
Опубликовано
vader_33 10 разных