igor822605 22 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 (изменено) Не получается прописать болт в прадажу. Обьясните по чему. Прописывал бороде [trader] buy_condition = {+zat_b30_sultan_loose} buy_tier_2, trade_generic_buy sell_condition = trade_generic_sell buy_supplies = {=wealthy_functor +zat_b30_sultan_loose} supplies_tier_4, {=wealthy_functor +zat_b29_exclusive_conditions} supplies_tier_3, {+zat_b30_sultan_loose} supplies_tier_3, {+zat_b29_exclusive_conditions} supplies_tier_2, supplies_start [trade_generic_buy] ;Артефакты af_cristall = 1, 0.6 af_fireball = 1, 0.6 af_dummy_glassbeads = 1, 0.6 af_eye = 1, 0.6 af_fire = 1, 0.6 af_medusa = 1, 0.6 af_cristall_flower = 1, 0.6 af_night_star = 1, 0.6 af_vyvert = 1, 0.6 af_gravi = 1, 0.6 af_gold_fish = 1, 0.6 af_blood = 1, 0.6 af_mincer_meat = 1, 0.6 af_soul = 1, 0.6 af_fuzz_kolobok = 1, 0.6 af_baloon = 1, 0.6 af_glass = 1, 0.6 af_electra_sparkler = 1, 0.6 af_electra_flash = 1, 0.6 af_electra_moonlight = 1, 0.6 af_dummy_battery = 1, 0.6 af_dummy_dummy = 1, 0.6 af_ice = 1, 0.6 ;Аммуниция ammo_9x18_fmj ;NO TRADE ammo_9x18_pmm ;NO TRADE ammo_9x19_pbp ;NO TRADE ammo_9x19_fmj ;NO TRADE ammo_11.43x23_hydro ;NO TRADE ammo_11.43x23_fmj ;NO TRADE ammo_12x70_buck ;NO TRADE ammo_12x76_zhekan ;NO TRADE ammo_5.45x39_ap ;NO TRADE ammo_5.45x39_fmj ;NO TRADE ammo_9x39_ap ;NO TRADE ammo_9x39_pab9 ;NO TRADE ammo_5.56x45_ss190 ;NO TRADE ammo_5.56x45_ap ;NO TRADE ammo_7.62x54_7h1 ;NO TRADE ammo_og-7b ;NO TRADE ammo_vog-25 ;NO TRADE grenade_f1 ;NO TRADE grenade_rgd5 ;NO TRADE ammo_m209 ;NO TRADE ammo_pkm_100 ;NO TRADE ;Оружие wpn_pm ;NO TRADE wpn_pb ;NO TRADE wpn_fort ;NO TRADE wpn_hpsa ;NO TRADE wpn_beretta ;NO TRADE wpn_walther ;NO TRADE wpn_sig220 ;NO TRADE wpn_colt1911 ;NO TRADE wpn_usp ;NO TRADE wpn_desert_eagle ;NO TRADE wpn_bm16 ;NO TRADE wpn_toz34 ;NO TRADE wpn_wincheaster1300 ;NO TRADE wpn_spas12 ;NO TRADE wpn_protecta ;NO TRADE wpn_ak74u ;NO TRADE wpn_mp5 ;NO TRADE wpn_ak74 ;NO TRADE wpn_abakan ;NO TRADE wpn_l85 ;NO TRADE wpn_lr300 ;NO TRADE wpn_sig550 ;NO TRADE wpn_groza ;NO TRADE wpn_val ;NO TRADE wpn_vintorez ;NO TRADE wpn_svu ;NO TRADE wpn_svd ;NO TRADE wpn_rg-6 ;NO TRADE wpn_rpg7 ;NO TRADE wpn_g36 ;NO TRADE wpn_fn2000 ;NO TRADE wpn_pkm ;NO TRADE ;ADDONS wpn_addon_scope ;NO TRADE wpn_addon_scope_x2.7 ;NO TRADE wpn_addon_scope_detector ;NO TRADE wpn_addon_scope_night ;NO TRADE wpn_addon_scope_susat ;NO TRADE wpn_addon_scope_susat_x1.6 ;NO TRADE wpn_addon_scope_susat_custom ;NO TRADE wpn_addon_scope_susat_dusk ;NO TRADE wpn_addon_scope_susat_night ;NO TRADE wpn_addon_silencer ;NO TRADE wpn_addon_grenade_launcher ;NO TRADE wpn_addon_grenade_launcher_m203 ;NO TRADE ;Броники novice_outfit ;NO TRADE specops_outfit ;NO TRADE military_outfit ;NO TRADE stalker_outfit ;NO TRADE scientific_outfit ;NO TRADE exo_outfit ;NO TRADE svoboda_light_outfit ;NO TRADE svoboda_heavy_outfit ;NO TRADE cs_heavy_outfit ;NO TRADE dolg_outfit ;NO TRADE dolg_heavy_outfit ;NO TRADE ;Шлемы helm_respirator ;NO TRADE helm_hardhat ;NO TRADE helm_protective ;NO TRADE helm_tactic ;NO TRADE helm_battle ;NO TRADE ;Медикаменты bandage ;NO TRADE medkit ;NO TRADE medkit_scientic ;NO TRADE medkit_army ;NO TRADE antirad ;NO TRADE ;Бустеры drug_booster ;NO TRADE drug_coagulant ;NO TRADE drug_psy_blockade ;NO TRADE drug_antidot ;NO TRADE drug_radioprotector ;NO TRADE drug_anabiotic ;NO TRADE ;Еда bread = 0.6, 0.3 kolbasa = 0.6, 0.3 conserva = 0.6, 0.3 vodka = 0.6, 0.3 energy_drink = 0.6, 0.3 ;Предметы device_torch ;NO TRADE detector_simple ;NO TRADE detector_advanced ;NO TRADE detector_elite ;NO TRADE detector_scientific ;NO TRADE device_pda ;NO TRADE hand_radio ;NO TRADE guitar_a ;NO TRADE harmonica_a ;NO TRADE anomaly_scaner ;NO TRADE bolt = 0.7, 0.7 ;Квестовые предметы jup_a9_conservation_info ;NO TRADE jup_a9_power_info ;NO TRADE jup_a9_way_info ;NO TRADE jup_a9_evacuation_info ;NO TRADE jup_a9_meeting_info ;NO TRADE jup_a9_losses_info ;NO TRADE jup_a9_delivery_info ;NO TRADE jup_b10_ufo_memory ;NO TRADE jup_b10_ufo_memory_2 ;NO TRADE jup_b10_notes_01 ;NO TRADE jup_b10_notes_02 ;NO TRADE jup_b10_notes_03 ;NO TRADE jup_b205_sokolov_note ;NO TRADE jup_b206_plant ;NO TRADE jup_b209_monster_scanner ;NO TRADE jup_b200_tech_materials_wire ;NO TRADE jup_b200_tech_materials_acetone ;NO TRADE jup_b200_tech_materials_textolite ;NO TRADE jup_b200_tech_materials_transistor ;NO TRADE jup_b200_tech_materials_capacitor ;NO TRADE jup_b9_blackbox ;NO TRADE jup_b32_scanner_device ;NO TRADE jup_b46_duty_founder_pda ;NO TRADE jup_b207_merc_pda_with_contract ;NO TRADE jup_b47_jupiter_products_info ;NO TRADE toolkit_2 ;NO TRADE toolkit_1 ;NO TRADE zat_b33_safe_container ;NO TRADE zat_b57_gas ;NO TRADE zat_b12_key_1 ;NO TRADE zat_b12_key_2 ;NO TRADE zat_b12_documents_1 ;NO TRADE zat_b12_documents_2 ;NO TRADE device_pda_port_bandit_leader ;NO TRADE device_flash_snag ;NO TRADE jup_b202_bandit_pda ;NO TRADE zat_b40_notebook ;NO TRADE zat_b40_pda_1 ;NO TRADE zat_b40_pda_2 ;NO TRADE device_pda_zat_b5_dealer ;NO TRADE zat_b20_noah_pda ;NO TRADE zat_a23_access_card ;NO TRADE zat_a23_gauss_rifle_docs ;NO TRADE zat_b44_barge_pda ;NO TRADE zat_b39_joker_pda ;NO TRADE zat_b22_medic_pda ;NO TRADE toolkit_3 ;NO TRADE pri_b35_lab_x8_key ;NO TRADE pri_b306_envoy_pda ;NO TRADE pri_b36_monolith_hiding_place_pda ;NO TRADE pri_a25_explosive_charge_item ;NO TRADE pri_a19_american_experiment_info ;NO TRADE pri_a19_lab_x16_info ;NO TRADE pri_a19_lab_x10_info ;NO TRADE pri_a19_lab_x7_info ;NO TRADE pri_a19_lab_x18_info ;NO TRADE zat_a23_labx8_key ;NO TRADE lx8_service_instruction ;NO TRADE af_compass ;NO TRADE af_oasis_heart ;NO TRADE jup_b1_half_artifact ;NO TRADE af_quest_b14_twisted ;NO TRADE ;Уникальные предметы wpn_pm_actor ;NO TRADE wpn_sig550_luckygun ;NO TRADE wpn_pkm_zulus ;NO TRADE wpn_wincheaster1300_trapper ;NO TRADE wpn_desert_eagle_nimble ;NO TRADE wpn_groza_nimble ;NO TRADE wpn_mp5_nimble ;NO TRADE wpn_sig220_nimble ;NO TRADE wpn_spas12_nimble ;NO TRADE wpn_svd_nimble ;NO TRADE wpn_svu_nimble ;NO TRADE wpn_usp_nimble ;NO TRADE wpn_vintorez_nimble ;NO TRADE wpn_g36_nimble ;NO TRADE wpn_fn2000_nimble ;NO TRADE wpn_protecta_nimble ;NO TRADE stalker_outfit_barge ;NO TRADE helm_respirator_joker ;NO TRADE helm_hardhat_snag ;NO TRADE wpn_ak74u_snag ;NO TRADE wpn_fort_snag ;NO TRADE [buy_tier_2]:trade_generic_buy ;Артефакты af_cristall = 1.2, 0.6 af_fireball = 1.2, 0.6 af_dummy_glassbeads = 1.2, 0.6 af_eye = 1.2, 0.6 af_fire = 1.2, 0.6 af_medusa = 1.2, 0.6 af_cristall_flower = 1.2, 0.6 af_night_star = 1.2, 0.6 af_vyvert = 1.2, 0.6 af_gravi = 1.2, 0.6 af_gold_fish = 1.2, 0.6 af_blood = 1.2, 0.6 af_mincer_meat = 1.2, 0.6 af_soul = 1.2, 0.6 af_fuzz_kolobok = 1.2, 0.6 af_baloon = 1.2, 0.6 af_glass = 1.2, 0.6 af_electra_sparkler = 1.2, 0.6 af_electra_flash = 1.2, 0.6 af_electra_moonlight = 1.2, 0.6 af_dummy_battery = 1.2, 0.6 af_dummy_dummy = 1.2, 0.6 af_ice = 1.2, 0.6 [trade_generic_sell] ;Артефакты af_cristall = 1.2, 2 af_fireball = 1.2, 2 af_dummy_glassbeads = 1.2, 2 af_eye ;NO TRADE af_fire ;NO TRADE af_medusa = 1.2, 2 af_cristall_flower = 1.2, 2 af_night_star = 1.2, 2 af_vyvert = 1.2, 2 af_gravi ;NO TRADE af_gold_fish ;NO TRADE af_blood = 1.2, 2 af_mincer_meat = 1.2, 2 af_soul = 1.2, 2 af_fuzz_kolobok = 1.2, 2 af_baloon ;NO TRADE af_glass ;NO TRADE af_electra_sparkler = 1.2, 2 af_electra_flash = 1.2, 2 af_electra_moonlight = 1.2, 2 af_dummy_battery = 1.2, 2 af_dummy_dummy ;NO TRADE af_ice ;NO TRADE ;Аммуниция ammo_9x18_fmj ;NO TRADE ammo_9x18_pmm ;NO TRADE ammo_9x19_pbp ;NO TRADE ammo_9x19_fmj ;NO TRADE ammo_11.43x23_hydro ;NO TRADE ammo_11.43x23_fmj ;NO TRADE ammo_12x70_buck ;NO TRADE ammo_12x76_zhekan ;NO TRADE ammo_5.45x39_ap ;NO TRADE ammo_5.45x39_fmj ;NO TRADE ammo_9x39_ap ;NO TRADE ammo_9x39_pab9 ;NO TRADE ammo_5.56x45_ss190 ;NO TRADE ammo_5.56x45_ap ;NO TRADE ammo_7.62x54_7h1 ;NO TRADE ammo_og-7b ;NO TRADE ammo_vog-25 ;NO TRADE grenade_f1 ;NO TRADE grenade_rgd5 ;NO TRADE ammo_m209 ;NO TRADE ammo_gauss ;NO TRADE ammo_gauss_cardan ;NO TRADE ;Оружие wpn_pm ;NO TRADE wpn_pb ;NO TRADE wpn_fort ;NO TRADE wpn_hpsa ;NO TRADE wpn_beretta ;NO TRADE wpn_walther ;NO TRADE wpn_sig220 ;NO TRADE wpn_colt1911 ;NO TRADE wpn_usp ;NO TRADE wpn_desert_eagle ;NO TRADE wpn_bm16 ;NO TRADE wpn_toz34 ;NO TRADE wpn_wincheaster1300 ;NO TRADE wpn_spas12 ;NO TRADE wpn_protecta ;NO TRADE wpn_ak74u ;NO TRADE wpn_mp5 ;NO TRADE wpn_ak74 ;NO TRADE wpn_abakan ;NO TRADE wpn_l85 ;NO TRADE wpn_lr300 ;NO TRADE wpn_sig550 ;NO TRADE wpn_groza ;NO TRADE wpn_val ;NO TRADE wpn_vintorez ;NO TRADE wpn_svu ;NO TRADE wpn_svd ;NO TRADE wpn_rg-6 ;NO TRADE wpn_rpg7 ;NO TRADE wpn_g36 ;NO TRADE wpn_fn2000 ;NO TRADE ;ADDONS wpn_addon_scope ;NO TRADE wpn_addon_scope_x2.7 ;NO TRADE wpn_addon_scope_detector ;NO TRADE wpn_addon_scope_night ;NO TRADE wpn_addon_scope_susat ;NO TRADE wpn_addon_scope_susat_x1.6 ;NO TRADE wpn_addon_scope_susat_custom ;NO TRADE wpn_addon_scope_susat_dusk ;NO TRADE wpn_addon_scope_susat_night ;NO TRADE wpn_addon_silencer ;NO TRADE wpn_addon_grenade_launcher ;NO TRADE wpn_addon_grenade_launcher_m203 ;NO TRADE ;Броники novice_outfit ;NO TRADE specops_outfit ;NO TRADE military_outfit ;NO TRADE stalker_outfit ;NO TRADE scientific_outfit ;NO TRADE exo_outfit ;NO TRADE svoboda_light_outfit ;NO TRADE svoboda_heavy_outfit ;NO TRADE cs_heavy_outfit ;NO TRADE dolg_outfit ;NO TRADE dolg_heavy_outfit ;NO TRADE ;Шлемы helm_respirator ;NO TRADE helm_hardhat ;NO TRADE helm_protective ;NO TRADE helm_tactic ;NO TRADE helm_battle ;NO TRADE ;Медикаменты bandage ;NO TRADE medkit ;NO TRADE medkit_scientic ;NO TRADE medkit_army ;NO TRADE antirad ;NO TRADE ;Бустеры drug_booster ;NO TRADE drug_coagulant ;NO TRADE drug_psy_blockade ;NO TRADE drug_antidot ;NO TRADE drug_radioprotector ;NO TRADE drug_anabiotic ;NO TRADE ;Еда bread = 1, 2 kolbasa = 1, 2 conserva = 1, 2 vodka = 1, 2 energy_drink = 1, 2 ;Предметы device_torch ;NO TRADE detector_simple ;NO TRADE detector_advanced ;NO TRADE detector_elite ;NO TRADE detector_scientific ;NO TRADE device_pda ;NO TRADE guitar_a ;NO TRADE harmonica_a ;NO TRADE anomaly_scaner ;NO TRADE bolt = 1.7, 2.2 ;Квестовые предметы jup_a9_conservation_info ;NO TRADE jup_a9_power_info ;NO TRADE jup_a9_way_info ;NO TRADE jup_a9_evacuation_info ;NO TRADE jup_a9_meeting_info ;NO TRADE jup_a9_losses_info ;NO TRADE jup_a9_delivery_info ;NO TRADE jup_b10_ufo_memory ;NO TRADE jup_b10_ufo_memory_2 ;NO TRADE jup_b10_notes_01 ;NO TRADE jup_b10_notes_02 ;NO TRADE jup_b10_notes_03 ;NO TRADE jup_b205_sokolov_note ;NO TRADE jup_b206_plant ;NO TRADE jup_b209_monster_scanner ;NO TRADE jup_b200_tech_materials_wire ;NO TRADE jup_b200_tech_materials_acetone ;NO TRADE jup_b200_tech_materials_textolite ;NO TRADE jup_b200_tech_materials_transistor ;NO TRADE jup_b200_tech_materials_capacitor ;NO TRADE jup_b9_blackbox ;NO TRADE jup_b32_scanner_device ;NO TRADE jup_b46_duty_founder_pda ;NO TRADE jup_b207_merc_pda_with_contract ;NO TRADE jup_b47_jupiter_products_info ;NO TRADE toolkit_2 ;NO TRADE toolkit_1 ;NO TRADE zat_b33_safe_container ;NO TRADE zat_b57_gas ;NO TRADE zat_b12_key_1 ;NO TRADE zat_b12_key_2 ;NO TRADE zat_b12_documents_1 ;NO TRADE zat_b12_documents_2 ;NO TRADE device_pda_port_bandit_leader ;NO TRADE device_flash_snag ;NO TRADE jup_b202_bandit_pda ;NO TRADE zat_b40_notebook ;NO TRADE zat_b40_pda_1 ;NO TRADE zat_b40_pda_2 ;NO TRADE device_pda_zat_b5_dealer ;NO TRADE zat_b20_noah_pda ;NO TRADE zat_a23_access_card ;NO TRADE zat_a23_gauss_rifle_docs ;NO TRADE zat_b44_barge_pda ;NO TRADE zat_b39_joker_pda ;NO TRADE zat_b22_medic_pda ;NO TRADE toolkit_3 ;NO TRADE pri_b35_lab_x8_key ;NO TRADE pri_b306_envoy_pda ;NO TRADE pri_b36_monolith_hiding_place_pda ;NO TRADE pri_a25_explosive_charge_item ;NO TRADE pri_a19_american_experiment_info ;NO TRADE pri_a19_lab_x16_info ;NO TRADE pri_a19_lab_x10_info ;NO TRADE pri_a19_lab_x7_info ;NO TRADE pri_a19_lab_x18_info ;NO TRADE zat_a23_labx8_key ;NO TRADE lx8_service_instruction ;NO TRADE af_compass ;NO TRADE af_oasis_heart ;NO TRADE jup_b1_half_artifact ;NO TRADE af_quest_b14_twisted ;NO TRADE ;Уникальные предметы [supplies_start] ;Еда bread = 15, 0.8 kolbasa = 15, 0.8 conserva = 15, 0.8 vodka = 15, 0.8 energy_drink = 15, 0.8 bolt = 15, 0.8 [supplies_tier_2]:supplies_start af_cristall = 1, 0.4 af_dummy_glassbeads = 1, 0.4 af_medusa = 1, 0.4 af_cristall_flower = 1, 0.4 af_night_star = 1, 0.4 af_blood = 1, 0.4 af_soul = 1, 0.4 af_fuzz_kolobok = 1, 0.4 af_electra_sparkler = 1, 0.4 [supplies_tier_3]:supplies_start af_cristall = 2, 0.4 af_dummy_glassbeads = 2, 0.4 af_medusa = 2, 0.4 af_cristall_flower = 2, 0.4 af_night_star = 2, 0.4 af_blood = 2, 0.4 af_soul = 2, 0.4 af_fuzz_kolobok = 2, 0.4 af_electra_sparkler = 2, 0.4 af_fireball = 1, 0.4 af_vyvert = 1, 0.4 af_mincer_meat = 1, 0.4 af_electra_flash = 1, 0.4 af_electra_moonlight = 1, 0.4 af_dummy_battery = 1, 0.4 [supplies_tier_4]:supplies_start af_cristall = 3, 0.4 af_dummy_glassbeads = 3, 0.4 af_medusa = 3, 0.4 af_cristall_flower = 3, 0.4 af_night_star = 3, 0.4 af_blood = 3, 0.4 af_soul = 3, 0.4 af_fuzz_kolobok = 3, 0.4 af_electra_sparkler = 3, 0.4 af_fireball = 2, 0.4 af_vyvert = 2, 0.4 af_mincer_meat = 2, 0.4 af_electra_flash = 2, 0.4 af_electra_moonlight = 2, 0.4 af_dummy_battery = 2, 0.4 Cтрока в конфиге оружия: scope_zoom_factor = 90 степень приближения худа при прицеливании -чем больше значение -тем меньше зум. [ЯР], Покажи как. В ЛС. Ок? Изменено 2 Ноября 2009 пользователем igor822605 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320313
Guzerus 0 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 Небольшой вопрос. Смотрите,я хочу к ОНС прикрутить Death Zone. Как я понял,чтобы прикрутить только погоду,надо просто перенести из DZ папку weathers. Правильно? А то я просто накатил поверх,но у некоторых вылета при накатывании,вот я и хочу разобраться. Мой ник читается гузерус. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320369
n6260 150 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 [ЯР] - точность так же как в ТЧ - раздел дисперсии, угловых разбросов и отдачи в конфиге оружия. Зум - то же самое - строку "зум_фактор" никто не отменял. Игорь: 1. У болта класс "болт". 2. У него в конфиге может быть запрет к видимости в инвентаре. 3. Скорее всего неправильно прописал. Или он уже прописан как запрещенный к продаже. З.Ы. Конфиги болта не смотрел, и твой спойлер тоже (ты бы еще пару файлов туда вставил бы ) не охота искать строки с болтом. Ты бы их выделил чтоль... Гузерус - смотри на предмет пересекающихся файлов и совмещай их ручками в блокноте. Если пересекающихся файлов по погоде нет - по идее вылетов быть не должно. Проверить можно только путем эксперимента. 256 символов Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320373
monk 2 862 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 Доброго времени. Камрады, пожалуйста выложите дефолтный xr_kamp.script из распакованого ЗП. Спасибо. Раньше и меня вела дорога приключений, а потом вышел S.T.A.K.E.R 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320375
igor822605 22 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 (изменено) ---------------------------------------------------------------------------------------------------------------------- -- Схема лагерь. Чудак(и) у костра. -- автор: Диденко Руслан (Stohe) -- TODO: ---------------------------------------------------------------------------------------------------------------------- --function printf() --end kamps = {} kamp_stalkers = {} -- могут ли сталкеры в лагере юзаться игроком. -- Объявления итераторов local k,v,kk,vv = 0,0,0,0 --------------------------------------------------------------------------------------------------------------------- --Evaluators ---------------------------------------------------------------------------------------------------------------------- --' Условие завершения скрипта class "evaluator_kamp_end" (property_evaluator) function evaluator_kamp_end:__init(name, storage) super (nil, name) self.a = storage end function evaluator_kamp_end:evaluate() return not xr_logic.is_active(self.object, self.a) end --' Находимся ли мы на заданной позиции class "evaluator_on_position" (property_evaluator) function evaluator_on_position:__init(name, storage) super (nil, name) self.a = storage end function evaluator_on_position:evaluate() if self.object:level_vertex_id() == self.a.pos_vertex then return true end return false end ---------------------------------------------------------------------------------------------------------------------- --Actions ---------------------------------------------------------------------------------------------------------------------- --' Идет в заданную область class "action_go_position" (action_base) function action_go_position:__init (npc_name,action_name,storage) super (nil,action_name) self.a = storage end function action_go_position:initialize() action_base.initialize(self) -- self.object:set_node_evaluator() -- self.object:set_path_evaluator() self.object:set_desired_position() self.object:set_desired_direction() self.a.pos_vertex = nil self.a.npc_position_num = nil self.a.signals = {} end function action_go_position:execute () action_base.execute (self) -- Спрашиваем где сидеть local tmp_pos_vertex, npc_position_num = kamps[self.a.center_point]:getDestVertex(self.object, self.a.radius) if self.a.npc_position_num ~= npc_position_num then self.a.npc_position_num = npc_position_num self.a.pos_vertex = tmp_pos_vertex --' Определяем куда смотреть. self.a.pp = patrol(self.a.center_point):point(0) local dir = vector():set(math.random(-1,1), 0, math.random(-1,1)) dir:normalize() local delta_dist = math.random(0,0.5) self.a.pp.x = self.a.pp.x + dir.x * delta_dist self.a.pp.z = self.a.pp.z + dir.z * delta_dist self.object:set_dest_level_vertex_id(self.a.pos_vertex) --printf("vertex_position") local desired_direction = vector():sub(self.a.pp,level.vertex_position(self.a.pos_vertex)) --printf("desired_direction = %s", vec_to_str(desired_direction)) if desired_direction ~= nil and not utils.vector_cmp(desired_direction, vector():set(0,0,0)) then desired_direction:normalize() self.object:set_desired_direction(desired_direction) end self.object:set_path_type(game_object.level_path) state_mgr.set_state(self.object, self.a.def_state_moving) end end function action_go_position:finalize () action_base.finalize (self) end --' Просто сидит и втыкает class "action_wait" (action_base) function action_wait:__init (npc_name,action_name,storage) super (nil,action_name) self.a = storage end function action_wait:initialize() action_base.initialize(self) -- self.object:set_node_evaluator() -- self.object:set_path_evaluator() self.object:set_desired_position() self.object:set_desired_direction() kamps[self.a.center_point]:increasePops(self.object) end function action_wait:activate_scheme() self.a.signals = {} end function action_wait:execute() action_base.execute (self) --' повернуть его лицом к центру state_mgr.set_state(self.object, "sit", nil, nil, {look_position = self.a.pp}) end function action_wait:finalize() kamps[self.a.center_point]:decreasePops(self.object) action_base.finalize (self) end function action_wait:deactivate(npc) kamps[self.a.center_point]:removeNpc(npc) end function action_wait:death_callback(npc) kamps[self.a.center_point]:removeNpc(npc) end function action_wait:net_destroy(npc) kamps[self.a.center_point]:removeNpc(npc) end class "CKampManager" function CKampManager:__init(path) self.kamp_name = path self.patrol = patrol(path) --self.center = self.patrol:level_vertex_id(0) self.position = {{dir = vector():set(1, 0, 0), used = nil}, {dir = vector():set(1, 0, 1), used = nil}, {dir = vector():set(0, 0, 1), used = nil}, {dir = vector():set(-1, 0, 1), used = nil}, {dir = vector():set(-1, 0, 0), used = nil}, {dir = vector():set(-1, 0, -1),used = nil}, {dir = vector():set(0, 0, -1), used = nil}, {dir = vector():set(1, 0, -1), used = nil}} self.npc = {} self.population = 0 self.kamp_state = "idle" -- Где то здесь распарсим патрульный путь и проапдейтим вектор позиций. -- 0 вершина - центр лагеря. -- 1 флаг - сектор занят, в поинте можно сидеть. -- 2 флаг - сектор занят, в поинте нельзя сидеть. --[[ for k = 1, self.patrol:count() - 1 do -- если есть 1 или 2 флажок - отметить сектор как занятый if self.patrol:flag(k,1) or self.patrol:flag(k,2) then -- отметить сектор как занятый for key,value in pairs(self.position) do dir = vector():sub(level.vertex_position(self.patrol:level_vertex_id(k)), level.vertex_position(self.center)) if value.dir then yaw = yaw_degree(dir, value.dir) if yaw <=23 then --'printf("KAMP node[%s], sector[%s,] yaw[%s]", k, key, yaw_degree(dir, value.dir)) value.used = -1 break end end end end -- если есть 1 флажок - создать место для сидения в точке пути if self.patrol:flag(k,1) then -- создать точку для сидения table.insert(self.position, {vertex = self.patrol:level_vertex_id(k)}) end end ]] --print_table(self.position) --Таблица соответствий состояния лагеря и допустимых анимаций и звуков. self.avail_state = {idle = { directed = { "wait", "sit", "sit_ass", "sit_knee", "eat_kolbasa", "eat_vodka", "eat_energy", "eat_bread", "trans"}}, pre_harmonica = { directed = { "wait_harmonica"}, undirected = { "wait", "sit", "sit_ass", "sit_knee", "eat_kolbasa", "eat_vodka", "eat_energy", "eat_bread", "trans"}}, harmonica = { directed = { "play_harmonica"}, undirected = { "wait", "sit", "sit_ass", "sit_knee", "eat_kolbasa", "eat_vodka", "eat_energy", "eat_bread", "trans"}}, post_harmonica = { directed = { "wait_harmonica"}, undirected = { "wait", "sit", "sit_ass", "sit_knee", "eat_kolbasa", "eat_vodka", "eat_energy", "eat_bread", "trans"}}, pre_guitar = { directed = { "wait_guitar"}, undirected = { "wait", "sit", "sit_ass", "sit_knee", "eat_kolbasa", "eat_vodka", "eat_energy", "eat_bread", "trans"}}, guitar = { directed = { "play_guitar"}, undirected = { "wait", "sit", "sit_ass", "sit_knee", "eat_kolbasa", "eat_vodka", "eat_energy", "eat_bread", "trans"}}, post_guitar = { directed = { "wait_guitar"}, undirected = { "wait", "sit", "sit_ass", "sit_knee", "eat_kolbasa", "eat_vodka", "eat_energy", "eat_bread", "trans"}}, story = { directed = { "declarate"}, undirected = { "wait", "sit", "sit_ass", "sit_knee", "eat_kolbasa", "eat_vodka", "eat_energy", "eat_bread", "trans"}}} self.avail_sound = {idle = { directed = "idle"}, pre_harmonica = { directed = "pre_harmonica", undirected = ""}, harmonica = { directed = "", undirected = ""}, post_harmonica = { directed = "", undirected = "reac_harmonica"}, pre_guitar = { directed = "pre_guitar", undirected = ""}, guitar = { directed = "", undirected = ""}, post_guitar = { directed = "", undirected = "reac_guitar"}, story = { directed = "", undirected = ""}} -- Таблица таймаутов по состоянию. Если состояние установилось, то некоторое время оно не может быт изменено. self.timeout = {idle = { min = 30000 }, pre_harmonica = { min = 3000 }, harmonica = { min = 5000, soundstart = true }, post_harmonica = { min = 3000 }, pre_guitar = { min = 3000 }, guitar = { min = 5000, soundstart = true }, post_guitar = { min = 3000 }, story = { min = 1000, soundstart = true }} -- Таблица глобальных состояний лагеря. self.kamp_states = { idle = true, pre_harmonica = false, harmonica = false, post_harmonica = false, pre_guitar = false, guitar = false, post_guitar = false, story = true } -- Таблица допустимых переходов между состояниями с вероятностями. self.trans_kamp = { idle = { idle = 0, pre_harmonica = 0, pre_guitar = 50, story = 50}, pre_harmonica = { harmonica = 100 }, harmonica = { post_harmonica = 100 }, post_harmonica = { idle = 70, harmonica = 30 }, pre_guitar = { guitar = 100 }, guitar = { post_guitar = 100 }, post_guitar = { idle = 70, guitar = 30 }, story = { idle = 100 }} -- Хранилище для режиссера лагеря. Режиссерем является сталкер, затеявший необычное поведение self.director = nil --' Для теста создаем объект истории self.sound_manager = sound_manager.get_sound_manager("kamp_"..path) end function CKampManager:selectPosition(npc_id) -- создаем список доступных позиций --printf("KAMP. [%s] called select position", npc_id) local free = {} for k,v in pairs(self.position) do if v.used == nil then table.insert(free, k) end end --' затем из доступных позиций выбрать рандомно одну. if #free > 0 then --printf("KAMP [%s] free node > 0", npc_id) local rr = math.random(#free) self.position[free[rr]].used = npc_id self.npc[npc_id].position = free[rr] end --printf("KAMP [%s] npc table", npc_id) --print_table(self.npc) --printf("KAMP [%s] position table", npc_id) --print_table(self.position) end function CKampManager:getDestVertex(npc, radius) local npc_id = npc:id() --printf("get dest Vertex called [%s]", npc_id) if self.npc[npc_id].position == nil then --printf("-------debug_info------------- %s", self.kamp_name) --print_table(self.npc) --printf("-------debug_info------------- %s", self.kamp_name) --print_table(self.position) --printf("-------debug_info------------- %s", self.kamp_name) abort("get dest Vertex: nil [%s]", npc_id) return nil end -- высчитываем вертех по направлению -- Берем позицию в заданном направлении, затем берем ниарест точку от нее. local pp = self.patrol:point(0) local dir = self.position[self.npc[npc_id].position].dir -- Считаем рандомное отклонение направления. dir.x = dir.x + math.random(-1,1)/5 dir.z = dir.z + math.random(-1,1)/5 dir:normalize() radius = radius + math.random(-0.3,0.3) local dest_vertex = 4294967295 while dest_vertex == 4294967295 do local tmp_pos = vector():set(0,0,0) tmp_pos.x = pp.x + dir.x * radius tmp_pos.z = pp.z + dir.z * radius tmp_pos.y = pp.y dest_vertex = level.vertex_id(tmp_pos) if dest_vertex == 4294967295 then if radius < 1 then abort("Invalid AI map at kamp point [%s]", self.kamp_name) else radius = radius - 0.5 end end end if not npc:accessible(dest_vertex) then --printf("vertex_position %s", tostring(dest_vertex)) local vp = level.vertex_position(dest_vertex) --printf("Nearest for npc[%s] kamp [%s] position [%s:%s:%s]", npc:name(), tostring(self.kamp_name),tostring(vp.x), tostring(vp.y), tostring(vp.z)) local nearest_vertex = npc:accessible_nearest(vp, vector():set(0,0,0)) --printf("Nearest for npc[%s] kamp [%s] position [%s:%s:%s]", npc:name(), tostring(self.kamp_name), vec_to_str(nearest_vertex)) return nearest_vertex, self.npc[npc_id].position end return dest_vertex, self.npc[npc_id].position end function CKampManager:proceedState(npc) -- Проверка на таймаут local npc_id = npc:id() local active_sound_count = npc:active_sound_count() if self.npc[npc_id].need_sound_begin == true then if active_sound_count == 0 then return else self.npc[npc_id].need_sound_begin = false end end if self.begin ~= nil and time_global() - self.begin < self.timeout[self.kamp_state].min then return end --' Если режиссер не закончил говорить - ждем конца фразы. if active_sound_count > 0 then return end --' Если начали говорить какую то историю саунд-менеджера if not self.sound_manager:is_finished() then self.sound_manager:update() return end --printf("Proceed state for [%s]", npc_id) -- Определяются допустимые в данный момент переходы. local temp = {} local max_rnd = 0 for k,v in pairs(self.trans_kamp[self.kamp_state]) do -- Определяются допустимые состояния для лагеря. if self.kamp_states[k] == true then temp[k] = v max_rnd = max_rnd + v end end -- Осуществляется рандомный взвешенный переход. if max_rnd == 0 then -- Если переходить некуда - переходим в айдл temp["idle"] = 100 max_rnd = 100 end local p = math.random(0,max_rnd) for k,v in pairs(temp) do p = p - v if p <= 0 then --printf("Selected [%s]", k) if k == "idle" then self.director = nil if self.kamp_state ~= "idle" then self.npc[npc_id].begin = nil end elseif k == "story" then self.sound_manager:set_story("test_story") self.director = npc_id self.censor = nil else self.npc[npc_id].begin = nil if self.timeout[k].soundstart == true then self.npc[npc_id].need_sound_begin = true end self.director = npc_id self.censor = nil end self.kamp_state = k self.begin = time_global() for kk,vv in pairs(self.npc) do vv.new = true end return end end end function CKampManager:proceedRole(npc, director) --printf("Proceed Role for [%s]", npc:id()) -- Определить список доступных анимаций по состоянию лагеря. -- определить список доступных анимаций по наличию предметов -- выбрать одну из них (то же самое со звуком). local states = 0 local sound = "" local state = "" local npc_id = npc:id() -- Выбирать новое состояние только раз в какое то время. if self.npc[npc_id].begin == nil or time_global() - self.npc[npc_id].begin >= self.npc[npc_id].state_idle then if director then states = self.avail_state[self.kamp_state].directed else states = self.avail_state[self.kamp_state].undirected end --' Выбираем только те анимации, которые может играть НПС. local temp = {} for k,v in pairs(states) do --printf("npc community is [%s]", character_community(npc)) --print_table(self.npc[npc_id].states) if self.npc[npc_id].states[v] == true then table.insert(temp, v) end end self.npc[npc_id].begin = time_global() state = temp[math.random(#temp)] self.npc[npc_id].state_selected = state self.npc[npc_id].state_idle = math.random(15000,20000) else state = self.npc[npc_id].state_selected end if self.kamp_state == "story" then sound = "" else if director then sound = self.avail_sound[self.kamp_state].directed else sound = self.avail_sound[self.kamp_state].undirected end end --printf("Proceed Role state [%s] sound [%s]", state, sound) return state, sound end function CKampManager:updateNpc(npc) -- Проверка что сталкер может делать, а что нет. self:checkNpcAbility(npc) -- Просим лагерь выбрать текущее состояние. Менять состояние лагеря -- имеет право только режиссер. local npc_id = npc:id() local director = self.director == nil or self.director == npc_id if director then self:proceedState(npc) end -- Говорим чудаку выбрать себе состояние для текущего состояния лагеря. local state, sound = self:proceedRole(npc, director) local substate = nil if state == "wait_harmonica" then if sound == "pre_harmonica" and self.npc[npc_id].new == true then xr_sound.set_sound_play(npc:id(), "intro_music") self.npc[npc_id].new = false end state = "harmonica" xr_kamp.kamp_stalkers[npc_id] = false elseif state == "play_harmonica" then state = "harmonica" substate = 1 xr_kamp.kamp_stalkers[npc_id] = false elseif state == "wait_guitar" then if sound == "pre_guitar" and self.npc[npc_id].new == true then xr_sound.set_sound_play(npc:id(), "intro_music") self.npc[npc_id].new = false end state = "guitar" xr_kamp.kamp_stalkers[npc_id] = false elseif state == "play_guitar" then state = "guitar" substate = 1 xr_kamp.kamp_stalkers[npc_id] = false elseif state == "declarate" then if self.npc[npc_id].new == true then self.npc[npc_id].new = false end if character_community(npc) == "monolith" then local t = math.mod(npc_id, 2) if t == 0 then state = "trans_0" else state = "trans_1" end elseif character_community(npc) == "zombied" then state = "trans_zombied" else local t = math.mod(npc_id, 3) if t == 0 then state = "sit" elseif t == 1 then state = "sit_ass" else state = "sit_knee" end end xr_kamp.kamp_stalkers[npc_id] = false elseif state == "trans" then if character_community(npc) == "monolith" then local t = math.mod(npc_id, 2) if t == 0 then state = "trans_0" else state = "trans_1" end elseif character_community(npc) == "zombied" then state = "trans_zombied" end xr_kamp.kamp_stalkers[npc_id] = false else xr_kamp.kamp_stalkers[npc_id] = true end -- Выбор реальных звуков if sound == "idle" then sound = "state" elseif sound == "reac_guitar" then sound = "reac_music" elseif sound == "reac_harmonica" then sound = "reac_music" else sound = "" end --printf("Proceed Update Npc [%s] sound [%s]", state, sound) return state, sound, substate end function CKampManager:checkNpcAbility(npc) local npc_id = npc:id() if character_community(npc) ~= "monolith" and character_community(npc) ~= "zombied" then -- есть колбасу if npc:object("kolbasa") then self.npc[npc_id].states["eat_kolbasa"] = true else self.npc[npc_id].states["eat_kolbasa"] = false end -- пить водку if npc:object("vodka") then self.npc[npc_id].states["eat_vodka"] = true else self.npc[npc_id].states["eat_vodka"] = false end -- пить енергитический напиток if npc:object("energy_drink") then self.npc[npc_id].states["eat_energy"] = true else self.npc[npc_id].states["eat_energy"] = false end -- есть хлеб if npc:object("bread") then self.npc[npc_id].states["eat_bread"] = true else self.npc[npc_id].states["eat_bread"] = false end -- играть на гармошке -- if npc:object("harmonica_a") then -- self.npc[npc_id].states["play_harmonica"] = true -- self.npc[npc_id].states["wait_harmonica"] = true -- self.kamp_states["pre_harmonica"] = true -- self.kamp_states["harmonica"] = true -- self.kamp_states["post_harmonica"] = true -- else self.npc[npc_id].states["play_harmonica"] = false self.npc[npc_id].states["wait_harmonica"] = false self.kamp_states["pre_harmonica"] = false self.kamp_states["harmonica"] = false self.kamp_states["post_harmonica"] = false -- end -- играть на гитаре -- if npc:object("guitar_a") then -- self.npc[npc_id].states["play_guitar"] = true -- self.npc[npc_id].states["wait_guitar"] = true -- self.kamp_states["pre_guitar"] = true -- self.kamp_states["guitar"] = true -- self.kamp_states["post_guitar"] = true -- else self.npc[npc_id].states["play_guitar"] = false self.npc[npc_id].states["wait_guitar"] = false self.kamp_states["pre_guitar"] = false self.kamp_states["guitar"] = false self.kamp_states["post_guitar"] = false -- end end end function CKampManager:addNpc(npc) --printf("KAMP [%s] add npc", npc:name()) if self.npc[npc:id()] ~= nil then --printf("NPC is already exist") return end if character_community(npc) == "monolith" or character_community(npc) == "zombied" then self.npc[npc:id()] = {name = npc:name(), position = nil, current = nil, speak = 0, states = { stand_wait = false, sit = false, sit_ass = false, sit_knee = false, declarate = true, eat_kolbasa = false, eat_vodka = false, eat_energy = false, eat_bread = false, trans = true, play_harmonica = false, play_guitar = false}} else self.npc[npc:id()] = {name = npc:name(), position = nil, current = nil, speak = 0, states = { stand_wait = true, sit = true, sit_ass = true, sit_knee = true, declarate = true, eat_kolbasa = false, eat_vodka = false, eat_energy = false, eat_bread = false, trans = false, play_harmonica = false, play_guitar = false}} end self:selectPosition(npc:id()) self.sound_manager:register_npc(npc:id()) end function CKampManager:removeNpc(npc) --printf("KAMP [%s] remove npc", npc:name()) -- callstack() self.sound_manager:unregister_npc(npc:id()) local npc_id = npc:id() if self.npc[npc_id] ~= nil then -- Если удаляем режиссера - необходимо форсированно перевести лагерь в идловое состояние. if self.director == npc_id then self.director = nil self.npc[npc_id].begin = nil self.censor = nil self.kamp_state = "idle" self.begin = time_global() for kk,vv in pairs(self.npc) do vv.new = true end --' xr_sound.set_sound(npc, nil) stop_play_sound(npc) end self.position[self.npc[npc_id].position].used = nil self.npc[npc_id] = nil end end function CKampManager:increasePops(npc) self.population = self.population + 1 local campfire = bind_campfire.campfire_table[self.kamp_name.."_campfire"] if self.population > 0 and campfire ~= nil and not campfire:is_on() then campfire:turn_on() end end function CKampManager:decreasePops(npc) self.population = self.population - 1 local campfire = bind_campfire.campfire_table[self.kamp_name.."_campfire"] if self.population < 1 and campfire ~= nil and campfire:is_on() then campfire:turn_off() end end ---------------------------------------------------------------------------------------------------------------------- --Kamp binder ---------------------------------------------------------------------------------------------------------------------- function add_to_binder(object, ini, scheme, section, storage) local operators = {} local properties = {} local manager = object:motivation_action_manager() properties["kamp_end"] = xr_evaluators_id.stohe_kamp_base + 1 properties["on_position"] = xr_evaluators_id.stohe_kamp_base + 2 properties["contact"] = xr_evaluators_id.stohe_meet_base + 1 operators["go_position"] = xr_actions_id.stohe_kamp_base + 1 operators["wait"] = xr_actions_id.stohe_kamp_base + 3 -- Evaluators manager:add_evaluator (properties["kamp_end"], this.evaluator_kamp_end ("kamp_end", storage, "kamp_end")) manager:add_evaluator (properties["on_position"], this.evaluator_on_position ("kamp_on_position", storage, "kamp_on_position")) -- Actions local action = this.action_wait (object:name(),"action_kamp_wait", storage) action:add_precondition (world_property(stalker_ids.property_alive, true)) action:add_precondition (world_property(stalker_ids.property_danger,false)) action:add_precondition (world_property(stalker_ids.property_enemy, false)) action:add_precondition (world_property(stalker_ids.property_anomaly,false)) xr_motivator.addCommonPrecondition(action) action:add_precondition (world_property(properties["on_position"], true)) action:add_effect (world_property(properties["kamp_end"], true)) manager:add_action (operators["wait"], action) xr_logic.subscribe_action_for_events(object, storage, action) action = this.action_go_position (object:name(),"action_go_kamp", storage) action:add_precondition (world_property(stalker_ids.property_alive, true)) action:add_precondition (world_property(stalker_ids.property_danger,false)) action:add_precondition (world_property(stalker_ids.property_enemy, false)) action:add_precondition (world_property(stalker_ids.property_anomaly,false)) xr_motivator.addCommonPrecondition(action) action:add_precondition (world_property(properties["on_position"], false)) action:add_effect (world_property(properties["on_position"], true)) manager:add_action (operators["go_position"], action) action = manager:action (xr_actions_id.alife) action:add_precondition (world_property(properties["kamp_end"], true)) end -- включение лагеря function set_scheme(npc, ini, scheme, section, gulag_name) local st = xr_logic.assign_storage_and_bind(npc, ini, scheme, section) st.logic = xr_logic.cfg_get_switch_conditions(ini, section, npc) st.center_point = utils.cfg_get_string(ini, section, "center_point", npc, true, gulag_name) st.radius = utils.cfg_get_number(ini, section, "radius", npc, false, 2) if kamps[st.center_point] == nil then kamps[st.center_point] = CKampManager(st.center_point) end kamps[st.center_point]:addNpc(npc) st.pos_vertex = nil st.def_state_moving = utils.cfg_get_string(ini, section, "def_state_moving", npc, false, "", "walk") end Изменено 2 Ноября 2009 пользователем igor822605 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320392
St.Ser 0 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 (изменено) Доброго дня - не подскажите где поковырять дабы бандиты при встречи с ГГ в него начинали не стрелять а попробовали бы с начало обшмонать.(Как допустим при выкупе Вано) Из за зоны алайфа 400 метров постоянная пальба сталкеров и бандитов уже достала. Ставить другом или нейтралом бандитов то же не хочется - это ведь бандиты. И еще как заставить неписей быстрее стрелять (они видят гг, в него целятся но не стреляют) Кстати - обратите внимание, что наконец то в игре начала работать переменная k_air_resistance!!! (раньше работала только на сетевой игре) По непонятным мне причинам там стоит почти везде 1.5 (должно от 0.4) Из за этого траектория пули чрезвычайно крутая и самая главная что пуля на расстоянии уже в 150 м теряет 70% своей убойности (допустим непись держит по кораусу на расстоянии 200 метров больше 10 пуль из АК, на 50 метров ему хватает трех) Изменено 2 Ноября 2009 пользователем St.Ser Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320417
Vergas 11 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 Переделывая мед резинку под ЗП сталкнулся с такой фигней. Колбек на использование аптечки из инвентаря уже отработал. Из него поднимаю пересчет аптечек в этом самом инвентаре. Получается, что аптечка ещё там. Т.е было 4, одну использовал, считаю - 4 штуки.... Кто-нить знает, в чем тут дело? НЛС-6: У каждого своя зона _______________________________________________________________ Не ищи легких путей и не возвращайся той же дорогой Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320462
VlaS 0 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 St.Ser, Кстати - обратите внимание, что наконец то в игре начала работать переменная k_air_resistance!!! (раньше работала только на сетевой игре) Обратили. Как не работала с ТЧ, так и не работает в ЗП(для каждого типа пули). Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320473
LinK 31 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 Я так понял нету нормальной проги для ЗП для снятия координат с вертексами? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320563
St.Ser 0 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 (изменено) Еще одна непонятка с приоритетами у неписей. 1)Поставил себе бандитов врагами - 5000 2)Поставил неписям возможность воевать от 400 метров. Моделирую ситуацию 1)Группа бандитов 3 человека 2)Расстояние 50 метров 3)Открываю по ним огонь Их реакция!!! 1)Меня они видят 2)В меня они целятся 3)НЕ стреляют! 4)Продолжают идти по своим делам пока я их не перестреляю!!!! Моделирую ситуацию 1)Группа сталкеров 3 человека 2)Расстояние 300 метров 3)Открываю огонь на поражение Их реакция. 1)Голос внимание, Скадовск атакован! 2)Все сталкеры в радиусе 400 метров открывают по мне огонь!!! Вопрос - а как бы так сделать чтоб и бандиты так же начали по мне палить? Как бы не настраивал м_сталкер и отношения - бандиты начинают палить по ГГ только с 40 метров!! А если сделать сталкеров и бандитов врагами то друг по другу они палят с 400 метров при моих настройках!! Изменено 2 Ноября 2009 пользователем St.Ser Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320613
Смокер 5 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 1.По поводу времени.В некоторых скриптах, есть ремарки о том, что"....так как течение времени ускорено в 10 раз,то пользуем такую функцию...".Точно не помню в каком, но есть. 2.По поводу координат.Это положение ГГ на локации?Если да, то на WIKI вполне рабочий скрипт дается. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320631
ViRUS 2 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 Пытался запустить ЗП с моделью из ТЧ, и при обращении к ней вылетает с ошибкой Aplication is aborting. Как можно адаптировать модели из ТЧ на ЗП? Кто сможет подредактировать модели ГГ, напишите пожалуйста мне в ЛС. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320790
Shadowman 939 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 (изменено) нету нормальной проги для ЗП для снятия координат с вертексами? LinK, Position Informer чем не устраивает? Брал, кажется, на офф. форуме. Изменено 2 Ноября 2009 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320831
Fly-n-DiE 2 Опубликовано 3 Ноября 2009 Поделиться Опубликовано 3 Ноября 2009 Вышел патч 1.6.01. В шапке темы распаковщик подходит для распаковки пропатченной игры? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320904
Pihan13 9 Опубликовано 3 Ноября 2009 Поделиться Опубликовано 3 Ноября 2009 Fly-n-DiE, конечно. сам архивчик с патчем: S.T.A.L.K.E.R. - Зов Припяти\patches\xpatch_01.db Локация "Жилище Картографа" Хелп по созданию смарт террейнов Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-320998
ZeeK 62 Опубликовано 3 Ноября 2009 Поделиться Опубликовано 3 Ноября 2009 Вопрос: как забацать музон на скадовске и янове аля бар из ТЧ и Болот из ЧН? Тут как я понимаю одними конфигами не обойтись... Возможно прописать скрипт на вкл музыки в определенных секторах? Не соответствует. N6260 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-321351
McDragon 8 Опубликовано 3 Ноября 2009 Поделиться Опубликовано 3 Ноября 2009 Может здесь добрые люди подскажут как ворон из ЗП убрать?(( Гафно ваша мифология. (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-321358
перегар 94 Опубликовано 3 Ноября 2009 Поделиться Опубликовано 3 Ноября 2009 YUran Это надо править не в actor.ltx а в \configs\weapons\w_.... смотри секцию [wpn_...._hud]:hud_base hands_position = hands_orientation= item_position = item_orientation = Но лучше скопировать с оригинального конфига, если он от ЧН, как будет от ТЧ я незнаю. ЗЫ у меня такая же фигня была с AWM. Все мы могли бы быть разными, если не были бы так одинаковы.Нам что водка, что пулемёт - лишь бы с ног валило. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-321431
sprata 0 Опубликовано 4 Ноября 2009 Поделиться Опубликовано 4 Ноября 2009 Всем привет ! Возможно ли соединить центральную часть Припяти из ТЧ и восточную из ЗП в одну большую локацию ? Было бы очень здоровски (имхо). Вот только нигде пока не встречал подобных модов. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-321572
K-Lex 0 Опубликовано 4 Ноября 2009 Поделиться Опубликовано 4 Ноября 2009 Возможно ли соединить центральную часть Припяти из ТЧ и восточную из ЗП в одну большую локацию ? Было бы очень здоровски (имхо). Вот только нигде пока не встречал подобных модов. Может и можно , но работы вагон и маленькая тележка ибо доделывать надо очень много, очень по разному выглядят локации, и Припять в ЧН представляет собой "коридор" улиц по которому нужно просто пробиться, а интересных мест там очень мало (про тех. сложности не говорю). Я в этом конечно не спец, но могу сказать что появление такого мода маловероятно ибо результат будет меньше затраченных усилий, имхо. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/20/#findComment-321788
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти