Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
midichs 1 Опубликовано 24 Февраля 2011 Поделиться Опубликовано 24 Февраля 2011 Помогите пож. разобрать алл.спавн 3 версии, сколько не пробовал версий acdc не работает, хотя его же можно разобрать :ny_rolleyes: Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-569596
Disord 1 Опубликовано 24 Февраля 2011 Поделиться Опубликовано 24 Февраля 2011 midichs, всё возможно. Разбирал много раз. Что ACDC выдаёт? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-569601
=VENOM= 51 Опубликовано 24 Февраля 2011 Поделиться Опубликовано 24 Февраля 2011 Как и предполагал, mob_walker наличествует . Задержку я имел в виду, чтобы зомби не сразу падал, а через некоторое время после окончания "тревоги" - тут можно после окончания действия условий тревоги переключиться, например, на схему mob_remark, а в ней задать условие on_timer = 10000 | mob_fake_death. А как сделать, чтобы не сразу падал, а "медленно"... даже не знаю . И ещё у тебя есть условие (on_actor_dist_le = 5 | nil), по нему, если игрок приблизится к зомби менее, чем на 5 м., монстр уйдёт из-под логики, и обратно его под управление уже не взять. К тому же, по этому условию зомби будет реагировать только на игрока - рекомендую всё же использовать dist_to_enemy_le, и переключаться не на nil (выход монстра из-под логики), а на какую-нибудь существующую схему. Вдруг к "отдыхающему" зомби подберётся какой-нибудь "природный" враг (или сталкер), а не игрок, тогда on_actor_dist_le не сработает. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-569612
midichs 1 Опубликовано 24 Февраля 2011 Поделиться Опубликовано 24 Февраля 2011 Разобрался уже- нашел рабочую acdc для 3-ки. но появился другой вопрос: хочу разобрать all от vehicles and monster pack. пишет data left in ammo at C://perl/bin/acdc.pl line 2549. (я так понял надо дописать строку в acdc.pl?) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-569613
Disord 1 Опубликовано 24 Февраля 2011 Поделиться Опубликовано 24 Февраля 2011 midichs, лучше закомментируй. Я так делал - комментируешь на время разбора, потом обратно. Вот мой ACDC, 3 разбирает вроде: http://rghost.ru/4525829 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-569789
midichs 1 Опубликовано 25 Февраля 2011 Поделиться Опубликовано 25 Февраля 2011 да, 3-й разбирает, а 3-й от этого мода - никак: update data left in explosive barrel at acdc.pl line 2306. Может подробнее расскажеш, что делать, а то я в этом не разбираюсь Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570160
Disord 1 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 midichs, http://rghost.ru/4540270 Качай. Я попробовал - разобрало. Но не уверен, что без лагов. Вроде бы разобрал хорошо - не сбивалось ничего. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570191
=VENOM= 51 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 (изменено) @"StreloK", по поводу активации точки респона. Сама точка респона у тебя настроена работать безо всяких условий. То есть, она будет спонить неписей через положенные промежутки времени, независимо от рестриктора-"активатора". Для того, чтобы респоновая точка (я так понимаю, функция, которая у тебя прописана в кустодате рестриктора должна была активировать не только респон, но и включить смарт впридачу?) действительно начала работать только после вхождения игрока в рестриктор, в кустодате точки респона, как уже было упомянуто, нужно добавить вот такое условие: conditions = {+infoportion} 100, 0 А для активации смарта (в кустодате смарттеррейна) вот такое: cond = {+infoportion} Функция, указанная у тебя в кустодате рестриктора (=cit_gulag_1_restavn), действительно не нужна, нужен только "эффект" с получением инфопоршна: on_actor_inside = nil %+infoportion% Тогда, как только игрок войдёт в рестриктор, будет получен инфопоршн, который автоматически активирует точку респона и смарт (если нужно). Смарт включится, а респоновая точка начнёт плодить неписей в соответствии с глобальными настройками респона. А сам рестриктор "уйдёт в nil", чтобы не обрабатывать в дальнейшем условия этого рестриктора. Кстати, правильно условия указываются перед именем новой схемы, а эффекты - после: on_actor_inside = {условия +(-)инфопоршны и (или) =(!)функции} новая схема %эффекты +(-)инфопоршны и (или) =функции% Конечно, можно указывать вообще одни только эффекты, если условие не для переключения на другую схему, а только для получения нужного инфопоршна и (или) запуска нужной функции. Изменено 26 Февраля 2011 пользователем =VENOM= Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570200
SibireaStalker 0 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 Скажите пожалуйсто, как заспавнить огонь в керосиновой лампе. Ulman, пробуй это: [80] ; cse_abstract properties section_name = lights_hanging_lamp name = light_gas_4m position = 237.878204345703,9.45947265625,-8.03389835357666 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 0 distance = 0 level_vertex_id = 293223 object_flags = 0xffffff3a ; cse_visual properties ; cse_ph_skeleton properties ; cse_alife_object_hanging_lamp properties main_color = 0xffffcb81 main_brightness = 0.600000023841858 main_color_animator = koster main_range = 3 light_flags = 0xa health = 100 main_virtual_size = 0.100000001490116 ambient_radius = 1 ambient_power = 0.100000001490116 main_cone_angle = 2.09439492225647 glow_radius = 0.699999988079071 cse_alife_object_hanging_lamp__unk1_f32 = 1 cse_alife_object_hanging_lamp__unk2_f32 = 1 cse_alife_object_hanging_lamp__unk3_f32 = 1 Рандомит!!! В большинстве случаев - когда берёшь банку энергетика на Затоне... FATAL ERROR [error]Expression : error handler is invoked! [error]Function : invalid_parameter_handler [error]File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp [error]Line : 815 [error]Description : stack trace: Что надо ввести в консоли, чтобы ГГ стал бессмертным, мне в тестах нужно. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570213
AKKK1 6 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 (изменено) В консоли нечего не поучится Засунь зто в \S.T.A.L.K.E.R. - Shadow of Chernobyl\gamedata\config\creatures\actor.ltx (замени то что там на это) [actor_terrain] 255,255,000,255 [actor]:common_ph_friction_params_on_npc_death GroupControlSection = spawn_group $spawn = "actor" $ed_icon = ed\ed_actor $player = on $prefetch = 16 cform = skeleton class = O_ACTOR money = 40; rank = 3; script_binding = bind_stalker.actor_init visual = actors\hero\stalker_novice.ogf destroyed_vis_name = physics\Dead_Body\skelet_crash terrain = actor_terrain max_item_mass = 200.0 jump_speed = 6. crouch_coef = 0.45 climb_coef = 0.7 run_coef = 2.1 sprint_koef = 2.6 run_back_coef = 1.8 walk_back_coef = 0.8 air_control_param = 0.1 walk_accel = 17 ;радиус в котром над предметами выводятся их названия pickup_info_radius = 5 ;3 ef_creature_type = 17 ; option for evaluation functions ; attach params attachable_items = device_torch,attachable_item,hand_radio ph_box0_center = 0.0, 0.9, 0.0 ph_box0_size = 0.35, 0.9, 0.35 ph_box1_center = 0.0, 0.75, 0.0 ph_box1_size = 0.35, 0.75, 0.35 ph_box2_center = 0.0, 0.6, 0.0 ph_box2_size = 0.35, 0.6, 0.35 stalker_restrictor_radius = .05;0.55;0.75;0.9 stalker_small_restrictor_radius = .05; medium_monster_restrictor_radius = 0.1 ph_crash_speed_min = 14 ph_crash_speed_max = 30 ph_collision_damage_factor = 1.0 ph_mass = 80 weapon_bone0 = bip01_r_finger1 weapon_bone1 = bip01_l_finger1 weapon_bone2 = bip01_r_finger11 damage = actor_damage hit_probability_gd_novice = 0.20 hit_probability_gd_stalker = 0.30 hit_probability_gd_veteran = 0.40 hit_probability_gd_master = 0.50 hit_sounds = actor_hit_snds ;actor condition immunities_sect = actor_immunities_gd_master condition_sect = actor_condition heavy_breath_snd = actor\breath_1 ;звук тяжелого дыхания при усталости heavy_blood_snd = affects\heartbeat; heart\8 material = creatures\actor camera_height_factor = 0.85 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-----(AMK SNIPER ADDON v1.0)----- ;дисперсия стрельбы с учетом ходьбы и бега disp_base = 0.51 ;угол (в градусах) разлета пуль, когда актер стоит на месте disp_aim = 0.04 ;0.51 disp_vel_factor = 1.0 ;на сколько увеличится дисперсия при скрости в 10 м/с (не обязательно при беге) disp_accel_factor = 2.0 ;еще на сколько увеличится, если актер бежит (+ скорость) disp_crouch_factor = -0.3 ;уменьшение если актер сидит disp_crouch_no_acc_factor = -0.6 ;уменьшение если актер сидит + no acceleration ;disp_jump_factor = 2.0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;----- missile_throw_offset = 0.3, 0.5, 0.5 body_remove_time = 30000 ;время уничтожения трупа (с учетом TimeFactor) sleep_time_factor = 1000 ;400 ;во сколько раз время идет быстрее, когда актер спит max_sleep_hours = 12 ;species of monster species = actor ;---STEP MANAGER------------------------------------------------------ LegsCount = 2 step_params = stalker_step_manager foot_bones = stalker_foot_bones memory_update_time = 100 ; visibility parameters DynamicObjectsCount = 32 min_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 1.0 ; значение, при достижении суммой которого объект считается видимым always_visible_distance = 1.0 time_quant = 0.005 decrease_value = 0.1 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 0.5 luminocity_factor = 0.5;0 ; фактор освещения (только для Актёра) transparency_threshold = 0.4 ; 0.25 still_visible_time = 5000 ; время, которое объект всё ещё считается видимым, даже если он уже не во фрустуме [actor_immunities_gd_novice] burn_immunity = 0.0 ;коэффициенты иммунитета strike_immunity = 0.0 shock_immunity = 0.0 wound_immunity = 0.0 radiation_immunity = 0.0 telepatic_immunity = 0.0 chemical_burn_immunity = 0.0 explosion_immunity = 0.0 fire_wound_immunity = 0.0 [actor_immunities_gd_stalker] burn_immunity = 0.65 ;коэффициенты иммунитета strike_immunity = 0.65 shock_immunity = 0.65 wound_immunity = 0.65 radiation_immunity = 0.65 telepatic_immunity = 0.65 chemical_burn_immunity = 0.65 explosion_immunity = 0.3 fire_wound_immunity = 0.65 [actor_immunities_gd_veteran] burn_immunity = 0.8 ;коэффициенты иммунитета strike_immunity = 0.8 shock_immunity = 0.8 wound_immunity = 0.8 radiation_immunity = 0.8 telepatic_immunity = 0.8 chemical_burn_immunity = 0.8 explosion_immunity = 0.6 fire_wound_immunity = 0.8 [actor_immunities_gd_master] burn_immunity = 1.0 ;коэффициенты иммунитета strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 1.0 radiation_immunity = 1.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 1.0 fire_wound_immunity = 1.0 [actor_condition] satiety_v = 0.000001 ;скорость уменьшения сытости со временем radiation_v = 0.001 ;скорость уменьшения радиации satiety_power_v = 0.000055 ;увеличение силы при уменьшении сытости satiety_health_v = 0.0001 ;увеличение здоровья при уменьшении сытости satiety_critical = 0.0 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться radiation_health_v = 0.0001 ;уменьшение здоровья при воздействии радиации morale_v = 0.0001 ;скорость восстановления морали psy_health_v = 0.001 ;скорость восстановления psy-здоровья alcohol_v = -0.0005 health_hit_part = 1.0 ;процент хита, уходящий на отнимание здоровья power_hit_part = 0.1 ;процент хита, уходящий на отнимание силы max_power_leak_speed = 0.0 ;накопление усталости (макс граница, до которой восстанавливается сила) в секунду игрового времени max_walk_weight = 90 bleeding_v = 0.00001 ;потеря крови при номинальной ране в секунду wound_incarnation_v = 0.3 ;скорость заживления раны min_wound_size = 0.00001 ;минимальный размер раны, после которого она считается зажившей ;--when actor in sleep satiety_v_sleep = 0.00001 radiation_v_sleep = 0.0003 satiety_power_v_sleep = 0.0001 satiety_health_v_sleep = 0.00001 radiation_health_v_sleep = 0.001 morale_v_sleep = 0.0 psy_health_v_sleep = 0.0 alcohol_v_sleep = -0.0005 bleeding_v_sleep = 0.0 wound_incarnation_v_sleep = 0.0 max_power_leak_speed_sleep = -0.00001; ;health_restore_v = 0.0001 ;;;;;;;; ;actor_condition only jump_power = 0.01 ;0.005 ;умешьшение силы с прыжком без учета веса ноши jump_weight_power = 0.05 ;0.045 ;умешьшение силы с прыжком с учетом веса ноши, для максимального допустимого веса overweight_jump_k = 5;10 ;10 ;коэффициент влияние перегрузки прыжок с весом (умножается на jump_weight_power) stand_power = -0.01 walk_power = 0.00002 ;умешьшение силы за секнду во время ходьбы без учета веса ноши walk_weight_power = 0.0001; ;умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса overweight_walk_k = 5;9 ;10 ;коэффициент влияние перегрузки ноши (умножается на walk_weight_power) accel_k = 3;5 ;коэффициент на бег (умножается walk_power, walk_weight_power) sprint_k = 75;150;185;180;200; ;коэффициент на "sprint" бег (умножается walk_power, walk_weight_power) ; хромота limping_health_begin = 0.1 ;порог здоровья меньше которого актер начинает хромать limping_health_end = 0.2 ;порог здоровья больше которого актер перестает хромать limping_power_begin = 0.1 ;порог силы меньше которого актер начинает хромать limping_power_end = 0.2 ;порог силы больше которого актер перестает хромать use_limping_state = on cant_walk_power_begin = 0.01 ;порог силы меньше которого актер не может двигаться cant_walk_power_end = 0.10 ;порог силы больше которого актер сможет двигаться cant_sprint_power_begin = 0.20 ;порог силы меньше которого актер не может бежать в спринте cant_sprint_power_end = 0.30 ;порог силы больше которого актер сможет бежать в спринте can_sleep_callback = dream.can_sleep_callback sleep_video_name_callback = dream.sleep_video_name_callback [actor_damage] ;bone_name = <hit_scale>,<fwd_damage_anim_index>,<wound_scale> ;<hit_scale> - коэфф. изменения хита (уменьшения здоровья) ;<wound_scale> - коэфф. изменения величины открытой раны ;-1 - нет анимаций, четный номер - спереди, нечетный номер - сзади, УКАЗЫВАЕТСЯ ТОЛЬКО ПЕРЕДНИЙ!!! ЗАДНИЙ НА АВТОМАТЕ default = 1.0, -1, 1.0 bip01_pelvis = 1.0, 10, 1.5 bip01_spine = 1.0, 10, 1.5 bip01_spine1 = 1.0, 0, 1.5 bip01_spine2 = 1.0, 0, 1.5 bip01_neck = 1.0, 0, 1.5 bip01_head = 0.2, 0, 1.5 eyelid_1 = 0.0, 0, 0.0 eye_left = 0.0, 0, 0.0 eye_right = 0.0, 0, 0.0 jaw_1 = 0.0, 0, 0.0 bip01_l_clavicle = 1.0, 4, 1.5 bip01_l_upperarm = 1.0, 4, 1.5 bip01_l_forearm = 1.0, 4, 1.5 bip01_l_hand = 1.0, 4, 0.5 bip01_l_finger0 = 0.0, 4, 0.0 bip01_l_finger01 = 0.0, 4, 0.0 bip01_l_finger02 = 0.0, 4, 0.0 bip01_l_finger1 = 0.0, 4, 0.0 bip01_l_finger11 = 0.0, 4, 0.0 bip01_l_finger12 = 0.0, 4, 0.0 bip01_l_finger2 = 0.0, 4, 0.0 bip01_l_finger21 = 0.0, 4, 0.0 bip01_l_finger22 = 0.0, 4, 0.0 bip01_r_clavicle = 1.0, 2, 1.5 bip01_r_upperarm = 1.0, 2, 1.5 bip01_r_forearm = 1.0, 2, 1.5 bip01_r_hand = 1.0, 2, 0.0 bip01_r_finger0 = 0.0, 2, 0.0 bip01_r_finger01 = 0.0, 2, 0.0 bip01_r_finger02 = 0.0, 2, 0.0 bip01_r_finger1 = 0.0, 2, 0.0 bip01_r_finger11 = 0.0, 2, 0.0 bip01_r_finger12 = 0.0, 2, 0.0 bip01_r_finger2 = 0.0, 2, 0.0 bip01_r_finger21 = 0.0, 2, 0.0 bip01_r_finger22 = 0.0, 2, 0.0 bip01_l_thigh = 1.0, 8, 1.5 bip01_l_calf = 1.0, 8, 1.5 bip01_l_foot = 1.0, 8, 1.5 bip01_l_toe0 = 1.0, 8, 1.5 bip01_r_thigh = 1.0, 6, 1.5 bip01_r_calf = 1.0, 6, 1.5 bip01_r_foot = 1.0, 6, 1.5 bip01_r_toe0 = 1.0, 6, 1.5 [actor_animation] ;углы дворота ног актера во время стрейфов (в градусах) fwd_l_strafe_yaw = 45 back_l_strafe_yaw = 45 fwd_r_strafe_yaw = 45 back_r_strafe_yaw = 45 l_strafe_yaw = 0 r_strafe_yaw = 0 [actor_hit_snds] burn =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 shock =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 strike =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 wound =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 radiation =monsters\biting\def_0; actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4 telepatic =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 fire_wound =actor\bullet_hit_1,actor\bullet_hit_2,actor\bullet_hit_3,actor\bullet_hit_4 ; actor\pain_1,actor\pain_3,actor\pain_4,actor\pain_5,actor\pain_6,actor\pain_7,actor\pain_8 chemical_burn =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 explosion =affects\tinnitus3a wound_2 =actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4 physic_strike =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4 ЗЫ . Для ТЧ Изменено 26 Февраля 2011 пользователем AKKK1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570225
Gektor 0 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 Доброго времени суток. У меня такой вопрос: Можно ли заставить динамический объект проигрывать анимацию после получения определенного события? Если можно то как ему это прописать? Например - чтобы вентилятор работал только когда актор находится в комнате с этим вентилятором. Заранее спасибо. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570236
TRAMP14 1 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 Вот создал непися через спавн (третьего) Первый и второй появляются но 3 никак. прописывал везде похоже. Только 1 и 2 на кордоне а 3 в подземельи агропрома. Но он не появляется. Вот его секция [2097] ; cse_abstract properties section_name = stalker name = provodnik position = 38.078643798828, -3.8874468803406, 19.942394256592 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 5000 character_profile = esc_ag_prov ; cse_alife_object properties game_vertex_id = 725 distance = 0 level_vertex_id = 4869 object_flags = 0xffffffbf custom_data = <<END [logic] cfg = scripts\provodnik_logic.ltx ; cse [smart_terrains] none = true END story_id = 10002 ; cse_visual properties visual_name = actors\bandit\stalker_bandit_master ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 2 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = 38.078643798828, -3.8874468803406, 19.942394256592 upd:o_model = 0 upd:o_torso = 0.028013030067086,0,0.9996075630188 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 2 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 1,2,2,1,2 predicate4 = 0,1,1,1 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties Скажите пожалуйста что сделать чтобы он появился! Очень надо! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570348
Disord 1 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 (изменено) Ulman, может так? Spawn_Inventory_Item_Section = mutant_krovosos_jaw, mutant_flesh_eye Сам не знаю, не делал... TRAMP14, хм... Должен появится, попробуй заново коодинаты снять, может нолик не дописал или - + перепутал... Не забывай указывать level_vertex и game_vertex, от них тоже многое зависит... Изменено 26 Февраля 2011 пользователем Disord Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570362
AKKK1 6 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 (изменено) Некоторое время назад было предложение верней возмушение почему меченый безнаказанно хватает все с столов в баре ? ну и вот в свете новых знаний а именно ковыряния схемы ph_idle практически не документированной всего одна строчка в описании Для всех физических объектов есть секция ph_idle, поддерживающая кондлист в которую можно при необходимости переводить объекты. В общем научился вызывать любю функцию при юзе обьекта для этого достаточно прописать обьекту следующее (секция болон в алл спавне ). ; cse_abstract properties section_name = physic_object name = trader_physic_object0007 position = -250.935073852539,-24.7987232208252,-135.995330810547 direction = 0,4.36330795288086,0 ; cse_alife_object properties game_vertex_id = 0 distance = 0 level_vertex_id = 594270 object_flags = 0xfffffffa custom_data = <<END [collide] ignore_static [logic] cfg = scripts\esc_balon.ltx END ; cse_visual properties visual_name = physics\balon\balon_01 ; cse_ph_skeleton properties skeleton_name = ; cse_alife_object_physic properties physic_type = 0x3 mass = 10 логика [logic] active = ph_idle [ph_idle] tips = tip_bolon используем добавляем свой тип в snring_table_ui.xml типа так <string id="tip_bolon"> <text>ПОГОВОРИ СО МНОЙ ($$ACTION_USE$$)</text> показываемый текст </string> on_use = %=функция_запускаемая_при_юзе% нажатии f или enter у меня Думаю с этим все понятно вернемся к нашим баранам так вот хлеб водка консервы являются итемами (короче их можно брать выкидывать пользовать из инвенторИ). а нужно чтоб при попытке взять сьесть (была отдача ха ха) соответственно добавил новый тип в snring_table_ui.xml ну и изменил секцию консервы(в баре на столе перед новичком) так (выделенное) [4593] ; cse_abstract properties section_name = physic_object name = bar_conserva position = 129.616775512695,-3.60408997535706,28.8814792633057 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 1168 distance = 0 level_vertex_id = 76465 object_flags = 0xfffffffa custom_data = <<END [logic] cfg = scripts\bar_bread.ltx END ; cse_visual properties visual_name = food\conserv1 ; cse_alife_item properties condition = 1 upd:num_items = 0 логика scripts\bar_bread.ltx [logic] active = ph_idle [ph_idle] tips = tip_bar_bread on_use = %=act_punch% функция act_punch получаем удар в рожу теряем 80% денег (при попытке взять сьесть чужую консерву) а именно лежащую на столе перед новичком function act_punch(npc) if db.actor:position():distance_to_sqr(npc:position()) > 4 then return end local active_slot = db.actor:active_slot() if active_slot ~= 1 and active_slot ~= 2 then return end local active_item = db.actor:active_item() if active_item then db.actor:drop_item(active_item) end set_inactivate_input_time(30) local snd_obj = xr_sound.get_safe_sound_object([[affects\hit_fist]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "") test_script.out_money_and_dream() end ну и test_script function out_money_and_dream() local money = db.actor:money() local money_out = money * (math.random(5,8)/10) db.actor:give_money(-money_out) end Спасибо Allender АМК-2 Спасибо Stalk 15 ------- Видео http://video.yandex.ru/users/krepishev-al/view/1/ Изменено 27 Февраля 2011 пользователем Cyclone Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570363
=VENOM= 51 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 TRAMP14, по крайней мере гейм- и левелвертексы в норме (для подземелья Агропрома). Непись вообще не спонится (то есть при запуске игры сам игрок уже находится в подземке Агропрома) или когда игрок через некоторое время добирается до подземки, непися там нет? Что у него в логике? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570367
TRAMP14 1 Опубликовано 26 Февраля 2011 Поделиться Опубликовано 26 Февраля 2011 У него в логике прописано стоять на месте. Я прописал одне логику на всех троих, те двое стоят. С помощью "мобилы модмэйкера" от сингапура я использовал координаты и появился точно там где должен появится непись, всё отлично. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570372
amik 256 Опубликовано 27 Февраля 2011 Поделиться Опубликовано 27 Февраля 2011 Привет. Заспавнил зомбика [664] ; cse_abstract properties section_name = vodjanoj name = jup_vodjanoj position = 250.87719726563,-28.507953643799,97.133178710938 direction = 0.180322349071503,-0.275118470191956,-0.294997245073318 ; cse_alife_object properties game_vertex_id = 3740 distance = 25.1999988555908 level_vertex_id = 1139318 object_flags = 0xffffffff custom_data = <<END [smart_terrains] none = true [spawner] cond = none END ; cse_visual properties visual_name = monsters\vodjanoj\vodjanoj ; cse_alife_creature_abstract properties g_team = 0 g_squad = 0 g_group = 0 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = 250.87719726563,-28.507953643799,97.133178710938 upd:o_model = 0 upd:o_torso = -0.275118470191956,0.180322349071503,0 upd:g_team = 0 upd:g_squad = 0 upd:g_group = 0 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_ph_skeleton properties ; cse_alife_monster_base properties ; se_monster properties Хочу сделать ему лагерь радиусом 30-40м. Прочитал что можно сделать так: [665] ; cse_abstract properties section_name = smart_terrain name = jup_gen_lager position = 250.87719726563,-28.507953643799,97.133178710938 direction = 0.0,0.0,0.0 ; cse_alife_object properties game_vertex_id = 3740 distance = 2.0 level_vertex_id = 1139318 object_flags = 0xffffffff custom_data = <<END [smart_terrain] type = general_lager capacity = 1 communities = zombie END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 35.55957102775574 ; cse_alife_space_restrictor properties restrictor_type = 3 ; se_smart_terrain properties С зомбиком все окей, а вот ограничение на 30-40м нету. Как сделать правильно? У меня одна локация пока чистая. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570654
Disord 1 Опубликовано 27 Февраля 2011 Поделиться Опубликовано 27 Февраля 2011 (изменено) amik, У зомбика ты должен в: [smart_terrains] none = true Поставить вместо none название своего смарта. А также можешь убрать: [spawner] cond = none Она не нужна тебе в таком виде, нужна, если есть нужные поршни. Также советую почитать это: Логика Там с 0 по 2 части говорят про смарттеррейны. Во второй части - про монстровые. А также в последней части по смарттеррейнам есть много нужного. P.S. Если что - обращайся в ЛС. Я сейчас как раз гулаги и смарты учу, пока получается делать... Ну, если не понятно - спрашиваю у друзей Изменено 27 Февраля 2011 пользователем Disord Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570661
@"StreloK" 2 Опубликовано 27 Февраля 2011 Поделиться Опубликовано 27 Февраля 2011 amik лучше сделай так [smart_terrains] none = true [logic] active = mob_home [mob_home] path_home = path1 - точка лагеря home_min_radius = 10 - мин радиус от дома home_max_radius = 30 - макс радиус от дома Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570681
ColR_iT 171 Опубликовано 27 Февраля 2011 Поделиться Опубликовано 27 Февраля 2011 (изменено) amik, (да и для других тоже будет полезным) от себя могу добавить, что радиус смарта или, по другому, гулага - не на что не влияет, лично я его ставлю в две еденицы. Раньше, в более ранних билдах, гулаг "захватывал" НПС под свою логику и дальность "захвата" был именно радиус, сейчас же это делается иначе. Изменено 27 Февраля 2011 пользователем Куфзук Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/77/#findComment-570851
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти