|
Статус: |
|
Отмычка: |
|
Сообщений: |
194 |
Награды: |
8 |
Регистрация: |
30.01.2013 |
|
Изменяемые файлы: treasure_manager.script Сложность: Средне
В самом начале файла пишем: Цитата local option_treasure = true Далее листаем вниз, до функции: Цитата function CTreasure:give_treasure(k) И после строчки Цитата level.map_add_object_spot_ser(obj.id, "treasure", text) Пишем Цитата if option_treasure == true and self:named_treasure(v) == false then v.items = self:give_item_list(v) end Тут мы указали на две функции, которые пока не создали. Исправим это. В самом конце файла пишем: Цитата function CTreasure:give_item_list(v) local tabla = {} local i = math.random(1, 2) local cnt = 0 local spawn = {} for j = 1, i, 1 do if string.find(v.name, "esc_" ) or string.find(v.name, "gar_" ) then spawn.section = subjects_list.level_C1[math.random(table.getn(subjects_list.level_C1))] elseif string.find(v.name, "agr_" ) or string.find(v.name, "val_" ) or string.find(v.name, "bar_" ) then spawn.section = subjects_list.level_C2[math.random(table.getn(subjects_list.level_C2))] elseif string.find(v.name, "ros_" ) or string.find(v.name, "yan_" ) or string.find(v.name, "mil_" ) then spawn.section = subjects_list.level_C3[math.random(table.getn(subjects_list.level_C3))] elseif string.find(v.name, "rad_" ) or string.find(v.name, "pri_" ) then spawn.section = subjects_list.level_C4[math.random(table.getn(subjects_list.level_C4))] else spawn.section = subjects_list.level_U0[math.random(table.getn(subjects_list.level_U0))] end end
if ammo_section[spawn.section] == true then local ini = system_ini() local num_in_box = ini:r_u32(spawn.section, "box_size" ) local h = math.random(1, 5) cnt = math.random(1, h) * num_in_box else local s = tostring(spawn.section) if string.find(s, "outfit" ) ~= nil or string.find(s, "wpn" ) ~= nil then cnt = 1 elseif string.find(s, "addon" ) ~= nil or string.find(s, "af" ) ~= nil or string.find(s, "mutant" ) ~= nil then cnt = math.random(1, 3) else cnt = math.random(1, 5) end end -- сохраняем инфу о текущем предмете spawn.prob = cnt table.insert(tabla, spawn)
return tabla end
function CTreasure:named_treasure(v) -- проверка, является ли тайник именным. Если да, то его наполнение не меняется if v.name == "agr_secret_0000_name" --Тайник Серого or v.name == "bar_secret_0011_name" --Тайник Арни or v.name == "esc_secret_0013_name" --Тайник Ворпала or v.name == "gar_secret_0002_name" --Вещи Гризли or v.name == "gar_secret_0011_name" --Склад группы Стрелка or v.name == "gar_secret_0021_name" --Рюкзак Дохляка or v.name == "pri_secret_0003_name" --Хабар Клыка or v.name == "pri_secret_0004_name" --Запасы лидера Свободы or v.name == "rad_secret_0000_name" --Клад Угрюмого or v.name == "rad_secret_0004_name" --Запас группы отчаянных or v.name == "ros_secret_0015_name" --Тайник Счастливчика or v.name == "ros_secret_0018_name" --Ящик с медикаментами or v.name == "val_secret_0028_name" --Тайник Борова or v.name == "x18_secret_0000_name" --Тайник Копченого or v.name == "yan_secret_0011_name" --Тайник учёного then return true else return false end end Далее создадим таблицы с секциями предметов которые будут выдаваться на тех или иных локациях. После local option_treasure = true пишем Цитата
local subjects_list = { --Подземные уровни level_U0 = { "af_ameba_mica", "af_soul", "af_cristall", "specops_outfit", "ammo_5.56x45_ap", "ammo_9x39_sp5", }, --Кордон, Свалка level_C1 = { "af_drops", "af_ameba_slime", "af_rusty_thorn", "af_electra_sparkler", "medkit", "vodka" }, --Агропром, Темная долина, Бар level_C2 = { "af_electra_flash", "af_rusty_kristall", "af_ameba_slug", "af_rusty_sea-urchin", "af_ameba_mica", "ammo_12x76_zhekan", "ammo_5.45x39_fmj", "ammo_5.45x39_ap", "wpn_fort", "wpn_ak74", "medkit", "antirad" }, --Росток, Янтарь, Милитари level_C3 = { "af_electra_moonlight", "af_rusty_sea-urchin", "af_ameba_mica", "af_cristall", "af_dummy_glassbeads", "ammo_9x19_fmj", "ammo_9x19_pbp", "ammo_vog-25p", }, --Припять level_C4 = { "af_dummy_glassbeads", "af_dummy_pellicle", "ammo_11.43x23_hydro", "ammo_12x76_dart", "ammo_7.62x54_ap", } } Содержимое таблиц можно поменять на нужное. Чтобы отключить рандомность тайников задайте значение option_treasure = false
|
|
Четверг, 14.11.2013, 17:27
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
30.01.2013 |
|
|
|
|
|
RETRIX
Четверг, 14.11.2013, 18:43 | Сообщение # 2
AP-Production
Статус: |
|
Ветеран: |
|
Сообщений: |
9439 |
Награды: |
12 |
Регистрация: |
24.08.2011 |
|
Stalker_Monstr, думаю, многим новичкам будет полезно
|
|
Четверг, 14.11.2013, 18:43
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
24.08.2011 |
|
|
|
|
|
Статус: |
|
Отмычка: |
|
Сообщений: |
194 |
Награды: |
8 |
Регистрация: |
30.01.2013 |
|
RETRIX, Я тоже, так думаю.
|
|
Четверг, 14.11.2013, 18:46
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
30.01.2013 |
|
|
|
|