Juicy 3 Опубликовано 30 Января 2010 (изменено) Подскажите мне вот такую штуку: я хочу перевооружить NPC и переопределить еду с трупов. Пробовал в character_food.xml поставить нули, но еда продолжала падать; поставил prob = 0.000001 - еда теперь не падает с каждого трупа. А нельзя просто в character_desc_general.xml удалить все строчки вида #include "gameplay\character_food.xml" и прописать всю еду, медикаменты и прочие патроны в death_ файлы? Или подскажите, в какой скрипт ПЫСы подложили свинью? Vano_Santuri, спасибо! Нового ты ничего не сказал. Я спрашивал, можно ли ненужные строчки удалить вообще? Или аптечки из character_ учитываются при лечении NPC друг друга? Изменено 30 Января 2010 пользователем Juicy Athlon II 240/2048MB DDRII/Radeon 3850/500GB WinXP:ST-CoP|Ubuntu Linux 10.04:lots of stuff Поделиться этим сообщением Ссылка на сообщение
Juicy 3 Опубликовано 8 Февраля 2010 (изменено) Подскажите кто-нибудь, как иконки быстрого доступа с худа убрать? есть мини-мод. Погляди в ветке ЗП "Ваши правки" вот прямая ссылка - http://www.amk-team.ru/forum/index.php?sho...st&p=302606 Изменено 8 Февраля 2010 пользователем Juicy Athlon II 240/2048MB DDRII/Radeon 3850/500GB WinXP:ST-CoP|Ubuntu Linux 10.04:lots of stuff Поделиться этим сообщением Ссылка на сообщение
Juicy 3 Опубликовано 19 Февраля 2010 подскажите мне про ремонт снаряги! Вот я читаю скрипт inventory_upgrades.script и никак не могу найти функцию ремонта. Ту самую функцию, что приравнивает item_condition к единице. Где её искать? Есть функция effect_functor_a, которая непосредственно отымает у ГГ денюжку, но она вызывается напрямую из из xrGame.dll. Можно как-нибудь сделать, чтобы механик чинил не до 100%, а меньше. В каком месте ковырять? --' funtions for upgerade items ---------------------------------------------------- --' Made by Distemper ---------------------------------------------------------------- --' 03.08 -------------------------------------------------------------------------------- --' функция доступности апгрейда --' function precondition_functor_a( param1, section ) --' функция применения апгрейда (отнимание денег) --' function effect_functor_a( param2, section ) --' функция отображения нужных сдедств для апгрейда --' function prereq_functor_a( param3, section ) --' функция временно не используеться --' function prereq_tooltip_functor_a( param3 ) --' функции для отображения свойств апгрейдов --' function property_functor_a( param1, name ) --' function property_functor_b( param1, name ) --' function property_functor_c( param1, name ) --' функция для отображения специализации техника -------------------------------------------------------------------------------------------- cur_hint = nil local issue_condlist = true local mechanic_name = "" local char_ini = ini_file("item_upgrades.ltx") local param_ini = ini_file("misc\\stalkers_upgrade_info.ltx") local cur_price_percent = 1 function precondition_functor_a( param1, section ) if(param_ini:line_exist(mechanic_name.."_upgr", section)) then local param = param_ini:r_string(mechanic_name.."_upgr", section) if(param) then if(param=="false") then return 1 elseif(param~="true") then local possibility_table = xr_logic.parse_condlist(victim, mechanic_name.."_upgr", section, param) local possibility = xr_logic.pick_section_from_condlist(db.actor, victim, possibility_table) if not(possibility) or (possibility=="false") then return 2 end end end end if(db.actor) then local price = math.floor(char_ini:r_u32(section, "cost")*cur_price_percent) local cash = db.actor:money() if(cash<price) then return 2 end end return 0 end function effect_functor_a( param2, section, loading ) --( string, string, int ) if loading == 0 then local money = char_ini:r_u32(section, "cost") db.actor:give_money(math.floor(money*-1*cur_price_percent)) end end function get_upgrade_cost(section) if db.actor then local price = math.floor(char_ini:r_u32(section, "cost")*cur_price_percent) return game.translate_string("st_upgr_cost")..": "..price end return " " end function get_possibility_string(mechanic_name, possibility_table) local str = "" if(cur_hint) then for k,v in pairs(cur_hint) do str = str.."\\n - "..game.translate_string(v) end end if(str=="") then str = " - add hints for this upgrade" end return str end function prereq_functor_a( param3, section ) local str = "" if(param_ini:line_exist(mechanic_name.."_upgr", section)) then local param = param_ini:r_string(mechanic_name.."_upgr", section) if(param) then if(param=="false") then return str else cur_hint = nil local possibility_table = xr_logic.parse_condlist(victim, mechanic_name.."_upgr", section, param) local possibility = xr_logic.pick_section_from_condlist(db.actor, victim, possibility_table) if not(possibility) or (possibility=="false") then str = str..get_possibility_string(mechanic_name, possibility_table) end end end end if(db.actor) then local price = math.floor(char_ini:r_u32(section, "cost")*cur_price_percent) local cash = db.actor:money() if(cash<price) then return str.."\\n - "..game.translate_string("st_upgr_enough_money")--.." "..price-cash.." RU" end end return str end function property_functor_a( param1, name ) local prorerty_name = char_ini:r_string(name, "name") local t_prorerty_name = game.translate_string(prorerty_name) local section_table = utils.parse_names(param1) local section_table_n = #section_table local section = section_table[1] if(section_table_n==0) then return "" end local value = 0 local sum = 0 for i = 1,section_table_n do if not(char_ini:line_exist(section_table[i], "value")) or not(char_ini:r_string(section_table[i], "value")) then return t_prorerty_name end value = char_ini:r_string(section_table[i], "value") if(name~="prop_night_vision") then sum = sum + tonumber(value) else sum = tonumber(value) end end if(sum<0) then value = sum else value = "+"..sum end if(name=="prop_ammo_size" or name=="prop_artefact") then return t_prorerty_name.." "..value elseif(name=="prop_restore_bleeding" or name=="prop_restore_health" or name=="prop_power") then if(name=="prop_power") then value = "+"..tonumber(value)*2 end -- local str = string.format("%s %4.1f", t_prorerty_name, value) -- return str return t_prorerty_name.." "..value elseif(name=="prop_tonnage" or name=="prop_weightoutfit" or name=="prop_weight") then local str = string.format("%s %5.2f %s", t_prorerty_name, value, game.translate_string("st_kg")) return str elseif(name=="prop_night_vision") then if(tonumber(value)==1) then return t_prorerty_name else return game.translate_string(prorerty_name.."_"..tonumber(value)) end elseif(name=="prop_no_buck" or name=="prop_autofire") then return t_prorerty_name end return t_prorerty_name.." "..value.."%" end function property_functor_b( param1, name ) return issue_property( param1, name ) end function property_functor_c( param1, name ) return issue_property( param1, name ) end function need_victim(obj) victim = obj end function issue_property( param1, name ) local prorerty_name = char_ini:r_string(name, "name") local t_prorerty_name = game.translate_string(prorerty_name) local value_table = utils.parse_names(param1) local section = value_table[1] if section then if not char_ini:line_exist(section, "value") or not char_ini:r_string(section, "value") then return t_prorerty_name end local value = char_ini:r_string(section, "value") return t_prorerty_name.." "..string.sub(value, 2, -2) else return t_prorerty_name end end -- функция, возвращающая цену ремонта -- сделал разной цену для костюма и оружия. Juicy local function how_much_repair( item_name, item_condition ) local ltx = system_ini() local cost = ltx:r_u32(item_name, "cost") local class = ltx:r_string(item_name, "class") -- Стоимость ремонта (коэффициент) по умолчанию - 0.6 local cof_w = 2.5 --коэф.ремонта оружия local cof_o = 1.5 --коэф.ремонта брони if string.find(item_name, "wpn_") then return math.floor(cost*(1-item_condition)*cof_w*cur_price_percent) else return math.floor(cost*(1-item_condition)*cof_o*cur_price_percent) end end function can_repair_item( item_name, item_condition, mechanic ) --( string, float, string ) -- При уровне 0.6 чинить нельзя if(item_name=="pri_a17_gauss_rifle") or (item_condition < 0.6) then return false end local price = how_much_repair( item_name, item_condition ) if db.actor:money() < price then return false end return true end function question_repair_item( item_name, item_condition, can, mechanic ) --( string, float, bool, string ) if(item_name=="pri_a17_gauss_rifle") then return game.translate_string("st_gauss_cannot_be_repaired") end -- --------------------------- -- предупреждение при ремонте хлама if item_condition < 0.6 then return game.translate_string("st_cannot_repair_this") --посылаем в сад! end local price = how_much_repair( item_name, item_condition ) if db.actor:money() < price then return game.translate_string("st_upgr_cost")..": "..price.." RU\\n"..game.translate_string("ui_inv_not_enought_money")..": "..price-db.actor:money().." RU" end return game.translate_string("st_upgr_cost").." "..price.." RU. "..game.translate_string("ui_inv_repair").."?" -- return game.translate_string("st_upgr_cost").." "..item_condition.." RU. "..game.translate_string("ui_inv_repair").."?" end function effect_repair_item( item_name, item_condition ) if mechanic_name ~= "kat_cs_commander" then local price = how_much_repair( item_name, item_condition ) db.actor:give_money(-price) end end function can_upgrade_item( item_name, mechanic ) mechanic_name = mechanic setup_discounts() if param_ini:line_exist(mechanic, "he_upgrade_nothing") then return false end if not param_ini:line_exist(mechanic, item_name) then return false end return true end function setup_discounts() if param_ini:line_exist(mechanic_name, "discount_condlist") then local condlist = param_ini:r_string(mechanic_name, "discount_condlist") local parsed = xr_logic.parse_condlist(db.actor, nil, nil, condlist) xr_logic.pick_section_from_condlist(db.actor, nil, parsed) end end function mech_discount(perc) cur_price_percent = perc end Athlon II 240/2048MB DDRII/Radeon 3850/500GB WinXP:ST-CoP|Ubuntu Linux 10.04:lots of stuff Поделиться этим сообщением Ссылка на сообщение
Juicy 3 Опубликовано 25 Февраля 2010 (изменено) Carnagie начни новую игру! А еще покажи (под спойлером) фрагменты death_items_ файлов, где у тебя прописана жратва Предметы есть на продаже у Бородыторговля с трупами никак не связана вообще. Подскажите пожалуйста, можно ли к использованию бинта и аптечки привязать функцию, сбивающую выносливость гг в 0? Erfin, я в ТЧ и ЧН делал так: чтобы ГГ не лечился и не перевязывал раны на бегу (это чит, я считаю) я в конфиге соответствующего предмета (бинта) ставил параметр eat_power = -0.8 Почему именно 0.8? Да потомучто при силе 0.2 ГГ не может бежать спринтом, а переходит на шаг, но при этом не дышит как ^%$# (извините, но жутко бесит!). Можно вообще поставить (-1.0). Тогда он остановится. Не уверен, что работает в ЗП, попробуй. Изменено 25 Февраля 2010 пользователем Juicy Athlon II 240/2048MB DDRII/Radeon 3850/500GB WinXP:ST-CoP|Ubuntu Linux 10.04:lots of stuff Поделиться этим сообщением Ссылка на сообщение
Juicy 3 Опубликовано 28 Февраля 2010 PavelSnork, начни новую игру, делов-то! Они сразу все заспавнятся Athlon II 240/2048MB DDRII/Radeon 3850/500GB WinXP:ST-CoP|Ubuntu Linux 10.04:lots of stuff Поделиться этим сообщением Ссылка на сообщение
Juicy 3 Опубликовано 2 Марта 2010 Чем может быть вызван такой глюк с графикой: у меня отражение в воде мигает с частотой около 1 раз в секунду. Вообще вся вода мигает. Видно издалека, жутко мешает играть Играю на DX9, максимальные настройки, лучи. DirectX обновленный, драйвер видео - свежий. Может, консольная команда какая-то есть? Athlon II 240/2048MB DDRII/Radeon 3850/500GB WinXP:ST-CoP|Ubuntu Linux 10.04:lots of stuff Поделиться этим сообщением Ссылка на сообщение