FANAT 117 Опубликовано 27 Мая 2012 ]snork[, Да всмысле, ты вот когда глобальный граф делаешь(гейм_граф), то заодно и редактируются level.gct в папках каждой локи, каждой! всех, которые у тебя есть.. Вот и нужо, что бы вместе с твоей новой локой, были и этот файл в папках локаций.. Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 3 Июля 2012 (изменено) Копаюсь тут в одном моде, так вот там у артефактов заменены классы, вот примеры.. class = AF_DUMMY class = AF_ZUDA;ARTEFACT class = AF_GRAVI Может кто нибудь обьяснить смысл этой замены, если раньше просто у всех был класс ARTEFACT.. Изменено 3 Июля 2012 пользователем FANAT Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 3 Июля 2012 А зачем, я все равно что то не догоняю.. Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 5 Июля 2012 (изменено) Такое дело, адаптировал себе мод Патроны на поясе, вот.. Все работает, но такая бяка, начинает фурычить все только если уйти на другую локацию, то есть просто перейти, или скажем если сохраниться и загрузить этот сейв, тогда патроны перестают юзаться с рюкзака, и начинают с пояса.. Как поправить это дело, что бы сразу с начала новой игры они использовались с пояса. Вроде бы апдейт надо куда прописать, но в скриптах не силен, поэтому не знаю куда и что.. Все что надо было, я все у себя прописывал, из этого мода, где положено.. Сообщение от модератора ColR_iT Из области: "А угадайте, что я сделал?". Ни кодов, ни ссылки на тему с модом, ни самого мода. За тебя и твой мод тоже помолиться? Изменено 5 Июля 2012 пользователем ColR_iT Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 5 Июля 2012 Да, что то я не подумал.. Мод патроны на поясе, автор Колмогор.. -- Патроны которые вешаются на пояс, а остальные используются как раньше local ammo_types = { ["ammo_9x18_fmj"] = true, ["ammo_9x18_pbp"] = true, ["ammo_9x18_pmm"] = true, ["ammo_9x19_pbp"] = true, ["ammo_9x19_fmj"] = true, ["ammo_5.45x39_ap"] = true, ["ammo_5.45x39_fmj"] = true, ["ammo_5.56x45_ap"] = true, ["ammo_5.56x45_ss190"] = true, ["ammo_5.7x28_fmj"] = true, ["ammo_5.7x28_ap"] = true, ["ammo_7.62x54_ap"] = true, ["ammo_7.62x54_7h14"] = true, ["ammo_7.62x54_7h1"] = true, ["ammo_9x39_sp5"] = true, ["ammo_9x39_ap"] = true, ["ammo_9x39_pab9"] = true, ["ammo_gauss"] = true, ["ammo_11.43x23_fmj"] = true, ["ammo_11.43x23_hydro"] = true, ["ammo_12x76_dart"] = true, ["ammo_12x76_zhekan"] = true, ["ammo_12x70_buck"] = true, ["ammo_og-7b"] = true, ["ammo_vog-25p"] = true, ["ammo_vog-25"] = true, ["ammo_m209"] = true, -- Народная Солянка ["ammo_5.45x39_izomorf"] = true, ["ammo_7.62x54_izomorf"] = true, ["ammo_9x39_izomorf"] = true, ["ammo_7.62x54r"] = true, ["ammo_5.7x28_ss190"] = true, ["ammo_super_gauss"] = true, ["ammo_zhekan_izomorf"] = true, ["ammo_7.62x39_fmj"] = true, ["ammo_7.62x39_ap"] = true, ["ammo_7.62x25_p"] = true, ["ammo_7.62x25_ps"] = true, ["ammo_arbolt"] = true, ["ammo_samopal"] = true, ["ammo_igl"] = true, ["ammo_igl_new"] = true, ["ammo_7.62x51box"] = true, ["ammo_12.7x108"] = true, ["ammo_minigun"] = true} local ammo_fake_types = {} local need_convert = false local need_init = true local need_update = false local before_update = true function on_update() if before_update then before_update = false need_convert = true end if not need_update then return end if not inventory.belt_status then return end local sim = alife() local t = {} db.actor:iterate_inventory( function(npc, item) local sect=item:section() .. "_fake" if ammo_fake_types[sect] and inventory.belt_id[item:id()] == nil then t[sect] = get_ammo_size(item) + (t[sect] or 0) sim:release(sim:object(item:id()), true) end end , db.actor) for sec, num in pairs(t) do spawn_ammo_in_inv(sec, num) end need_update = false end -- Перепаковываем еще и при обыске трупа или тайника function on_info(info_id) if info_id == "ui_trade" or info_id == "ui_car_body" then on_inventory_open() elseif info_id == "ui_trade_hide" or info_id == "ui_car_body_hide" then on_inventory_close() end end function on_inventory_open() need_convert = false local t = {} local sim = alife() db.actor:iterate_inventory( function(npc, item) local sect=item:section() if ammo_fake_types[sect] then t[sect] = get_ammo_size(item) + (t[sect] or 0) sim:release(sim:object(item:id()), true) end end , db.actor) for s, num in pairs(t) do spawn_ammo_in_inv(string.sub(s,1,-6), num) end end function on_inventory_close() need_convert = true need_update = true end function on_item_take(item) if need_init then init() end local section = item:section() if ammo_types[section] and need_convert then local cnt = get_ammo_size(item) if cnt > 0 then local sim = alife() sim:release(sim:object(item:id()), true) spawn_ammo_in_inv(section.."_fake", cnt) end end end function init() for k, v in pairs(ammo_types) do ammo_fake_types[k.."_fake"] = v end need_init = false end -- Возвращает колличество патронов в пачке function get_ammo_size(obj) local se_obj = alife():object(obj:id()) if se_obj == nil then return 0 end local packet = net_packet() cse_alife_item_ammo.STATE_Write(se_obj, packet) packet:r_seek(packet:w_tell() - 2) return packet:r_u16() end function spawn_ammo_in_inv(spawn_item,number,npc) if npc==nil then npc=db.actor end if number > 0 then return se_respawn.create_ammo(spawn_item, npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id(), number) end end local grenades_on_belt = {} local f = false function on_item_take(obj) local sec=obj:section() if (sec=="grenade_f1" or sec=="grenade_rgd5" or sec=="grenade_gd-05" or sec=="grenade_7643b" or sec=="grenade_an_m14" or sec=="grenade_m61" or sec=="w_dynamite") then del_item(obj:id()) spawn_in_inv("fake_"..sec) elseif (sec=="grenade_f1_1" or sec=="grenade_rgd5_1" or sec=="grenade_gd-05_1" or sec=="grenade_7643b_1" or sec=="grenade_an_m14_1" or sec=="grenade_m61_1" or sec=="w_dynamite_1") and not grenades_on_belt[obj:id()] then del_item(obj:id()) inventory.start() f=true end end function on_item_drop(obj) local id=grenades_on_belt[obj:id()] if id and has_alife_info("ui_inventory_hide") and not has_alife_info("ui_car_body") and not db.actor:is_talking() then grenades_on_belt[obj:id()]=nil del_item(id) end end function on_info(info_id) if info_id=="ui_inventory" or info_id=="ui_car_body" or info_id=="ui_trade" then db.actor:iterate_inventory(function(dummy,item) if item:section()=="grenade_f1_1" or item:section()=="grenade_rgd5_1" or item:section()=="grenade_gd-05_1" or item:section()=="grenade_7643b_1" or item:section()=="grenade_an_m14_1" or item:section()=="grenade_m61_1" or item:section()=="grenade_m67_1" or item:section()=="w_dynamite_1" then del_item(item:id()) end end,nil) elseif info_id=="ui_inventory_hide" or info_id=="ui_car_body_hide" or info_id=="ui_trade_hide" or info_id=="ui_talk_hide" then inventory.start() f=true end end function update_tbl() if f then grenades_on_belt={} local sect for id,v in pairs (inventory.belt_id) do if v then sect=level.object_by_id(id):section() if sect=="fake_grenade_f1" then grenades_on_belt[spawn_in_inv("grenade_f1_1")]=id elseif sect=="fake_grenade_rgd5" then grenades_on_belt[spawn_in_inv("grenade_rgd5_1")]=id elseif sect=="fake_grenade_gd-05" then grenades_on_belt[spawn_in_inv("grenade_gd-05_1")]=id elseif sect=="fake_grenade_7643b" then grenades_on_belt[spawn_in_inv("grenade_7643b_1")]=id elseif sect=="fake_grenade_an_m14" then grenades_on_belt[spawn_in_inv("grenade_an_m14_1")]=id elseif sect=="fake_grenade_m61" then grenades_on_belt[spawn_in_inv("grenade_m61_1")]=id elseif sect=="fake_grenade_m67" then grenades_on_belt[spawn_in_inv("grenade_m67_1")]=id elseif sect=="fake_w_dynamite" then grenades_on_belt[spawn_in_inv("w_dynamite_1")]=id end end end f=false end end function spawn_in_inv(sec) local obj = alife():create(sec,db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),0) return obj.id end function del_item(id) local sobj=alife():object(id) if sobj then alife():release(sobj,true) end end Прописано в бинд_сталкер, в функции function actor_binder:on_item_take (obj) belt_ammo.on_item_take(obj) -- амуниция на поясе belt = {} belt_id = {} belt_status = false local need_update = true local inventory_open = false local separator_spawned = false local separator = "separator" local debug = false local flag function update() if (need_update == false) then return end if debug == true and belt_status == true then get_console():execute("belt_status=false") end belt_status = false -- Спавним разделяющий елемент if (separator_spawned == false) then alife():create(separator, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) separator_spawned = true if debug == true then get_console():execute("separator_spawned") end return end belt = {} belt_id = {} flag = 0 -- Сканируем инвентарь db.actor:inventory_for_each(scan_inv) need_update = false -- Удаляем разделяющий елемент db.actor:inventory_for_each(del_separator) separator_spawned = false if debug == true and belt_status == false then get_console():execute("belt_status=true") end belt_status = true if debug == true then for i,k in pairs(belt) do get_console():execute(i.."="..k) end end -- патроны на пояс belt_ammo.on_update() belt_grenade.update_tbl() -- патроны на пояс remove_duplicate() end -- Перебор предметов инвентаря function scan_inv(item) local section = item:section() if section == separator then flag = 1 return end if flag == 1 then if slot_item(item) ~= nil then flag = 2 else insert_to_table(belt, section) belt_id[item:id()] = true end end end -- Добавление в таблицу function insert_to_table(tbl, section) if tbl[section] == nil then tbl[section] = 1 else tbl[section] = tbl[section] + 1 end end -- Удаление разделяющего предмета function del_separator(item) if item:section() == separator then alife():release(alife():object(item:id()), true) if debug == true then get_console():execute("separator_removed") end end end -- Определение налечия предмета в одном из слотов function slot_item(item) for i=0,12 do local obj = db.actor:item_in_slot(i) if obj and item:id() == obj:id() then return i end end return nil end -- Поднятие предмета function on_item_take(item) -- патроны на пояс belt_ammo.on_item_take(item) belt_grenade.on_item_take(item) -- патроны на пояс if item:section() == separator then return end if (inventory_open == false) then if (separator_spawned == true) then db.actor:inventory_for_each(del_separator) separator_spawned = false end need_update = true if debug == true then get_console():execute("item_take") end end end -- Выброс предмета function on_item_drop(item) -- патроны на пояс belt_grenade.on_item_drop(item) -- патроны на пояс if item:section() == separator then return end if (inventory_open == false) then if (separator_spawned == true) then db.actor:inventory_for_each(del_separator) separator_spawned = false end need_update = true if debug == true then get_console():execute("item_drop") end end end -- Открытие/закрытие инвентаря function on_inventory_info(info_id) -- патроны на пояс belt_ammo.on_info(info_id) belt_grenade.on_info(info_id) -- патроны на пояс if info_id == "ui_inventory" then inventory_open = true if debug == true then get_console():execute("inventory_open") end belt_ammo.on_inventory_open() -- патроны на пояс elseif info_id == "ui_inventory_hide" then inventory_open = false need_update = true if debug == true then get_console():execute("inventory_close") end belt_ammo.on_inventory_close() -- патроны на пояс end end function check_blood() -- if belt_status == true then if belt["af_blood"]~=nil and belt["af_blood"]>0 then -- то есть когда параметр пояса[af_blood] равен 1, 2, 3.. Сколько навесишь Камней. amk.send_tip("Кровь Камня на поясе") end -- end end local unique_sect = { ["af_caterpillar"] = true, ["af_arhara_globus"] = true, ["af_vyvert_green"] = true, ["af_blood_green"] = true, ["af_dummy_spring_red"] = true, ["af_dummy_battery_red"] = true, ["af_dummy_pellicle_red"] = true, ["af_babka_3"] = true, ["af_babka_4"] = true, ["af_armor_4"] = true, ["af_cry_3"] = true, ["af_dik_4"] = true, ["af_kol_3"] = true, ["af_kol_4"] = true, ["af_pudd_4"] = true, ["af_spirit_3"] = true, ["af_spirit_4"] = true, ["af_gold_fish"] = true, ["af_eye_voron"] = true } --оставляет на поясе по одному(фиг,теперь двум) артефакту каждого вида function remove_duplicate() local t = check_duplicate() for k, v in pairs(belt_id) do local sobj = alife():object(k) if sobj then local sect = sobj:section_name() -- if is_unique(sobj:clsid()) and t[sect] ~= nil and t[sect] > 0 then --if is_unique(sect) and t[sect] ~= nil and t[sect] > 0 then if unique_sect[sect] and t[sect] ~= nil and t[sect] > 0 then alife():release(sobj, true) local text="Убраны лишние артефакты "..game.translate_string(amk.get_inv_name(sect)).." с пояса" news_manager.send_tip(db.actor, text, nil, nil, nil) amk.spawn_item_in_inv(sect, db.actor) t[sect] = t[sect] - 1 end end end end --собирает инфу о дупликатах на поясе --возвращает таблицу вида [секция арта] = <количество лишних артов> function check_duplicate() local result = {} for k, v in pairs(belt) do if v > 2 then result[k] = v - 2 end end return result end function start() need_update = true end Добавлено через 1 мин.: Nickel1255, В ДМХ например до взятия ключа, двери заблокированы у машин.. Добавлено через 1 мин.: Вот я где то, что то забыл прописать, а что не пойму.. Добавлено через 2 мин.: Привел только скрипты, конфиги думаю не нужны.. Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 6 Июля 2012 Стрелоk, С партиклом че то, не хватает наверное какого то.. Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 10 Июля 2012 (изменено) Боягуз, Видимо донастраивался.. --- Подскажите, пожалуста, где правятся координаты надписи Новая Игра в главном меню.. Так будет понятнее. ColR_iT Изменено 10 Июля 2012 пользователем ColR_iT Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 14 Июля 2012 (изменено) Такой вопрос.. выставил разрешение на 4 патче, 1280x1024, опции в меню небольшие, не жирные, шрифт в игре нормальный, потом пропатчил до шестого патча, разрешение не менял, захожу в игру, там все опции жирные, версия игры жирная, вобщем увеличилось все, можно как нибудь это убрать..? Все разрешения пробовал, но такого так и не нашел, хотя стояло 1280x1024 и осталось, по сути должно было быть все так же.. Изменено 14 Июля 2012 пользователем FANAT Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 14 Июля 2012 И чего там..? Посмотрел, красиво все оформлено.. Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 23 Октября 2012 Вклеил новую погоду в мод, все нормально, но в логе светится вот это, что это и как исправить можно? ! Invalid 'hemi_color' in env-section 'default_weather_01' Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 23 Октября 2012 (изменено) stalkerok007 function create_sarchaes2_exit() -- создается переход c САРКОФАГА на ЧАЕС2 if (not has_alife_info( "level_newfive" )) then level_new.create_level_changer( 31610, -- STORY_ID нового level_changer; vector():set(77.10116577,58.2671585,51.8668289 ), -- вектор, координаты точки, в которой будет располагаться центр нового level_changer; 6406, -- level_vertext_id - идентифицируют уровень, на котором будет создан level_changer; 2417, -- game_vertext_id; 53648, -- -- level_vertex_id - идентифицируют уровень, на который level_changer будет перебрасывать игрока; 2537, -- game_vertex_id; vector():set( 67.8906097,5.04050731,97.7711 ), -- координаты точки, в которой на новом уровне окажется игрок; vector():set( -0.8196038,0,0.57293063 ), -- направрение взгляда игрока; "l12_stancia_2", -- название уровня, например; 0 -- задавать ли вопрос о смене уровня. 1 - да, 0 - нет. ) db.actor:give_info_portion("level_newfive") end Капрал Хикс А чего тут может быть некоретного? hemi_color = -1.00, -1.0, -1.0, 0.0 Оформляй, пожалуйста, посты так, чтобы это было вменяемое сообщение, а не набор слов. ColR_iT Изменено 23 Октября 2012 пользователем ColR_iT Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение
FANAT 117 Опубликовано 21 Января 2013 Интересует два вопроса 1. Как фурычат ранги НПС, ну вот как определяется что сталкеры, долг, свобода есть в двадцатке, а наемников и монолитовцев нет. 2. Может кто нибудь обьяснить как реализовано что НПС эти самые рангинабирают себе, то есть вначале у него например 1000, а через какое то время уже 1600 к примеру. Может мод такой есть небольшой? Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Поделиться этим сообщением Ссылка на сообщение