-Рубрики

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в AniSoTRopIc

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.09.2007
Записей: 562
Комментариев: 2804
Написано: 9294


stalker

Пятница, 18 Апреля 2008 г. 23:02 + в цитатник
хех)) распробовал игру) сижу гамаю потихоньку... графон только что-то напрягает только.. стрёмный какой-то о______О я ожидал большего((( в перспективе *может быть* будет страйкбольная игра по сталкеру.. если я решусь туда кучу денег вбухать..
Рубрики:  Everyday
Метки:  



nightshadow   обратиться по имени Пятница, 18 Апреля 2008 г. 23:11 (ссылка)
Не знаю... Я не ролевик по натуре... Какие правила, когда в тебя стреляют?.. ))) Наверное, я ПАС...
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Пятница, 18 Апреля 2008 г. 23:15 (ссылка)
нуууу... как это какие правила? банально какие вещи можно, а какие незя с трупов снимать ^_________^, как аномалии будут сделаны, какие фракции учавствуют в игре, какое оружие используется и т.п.)
Ответить С цитатой В цитатник
nightshadow   обратиться по имени Пятница, 18 Апреля 2008 г. 23:18 (ссылка)
Не знаю... не очень представляю как два взрослых дядьки доказывают друг другу в кого попал шарик, а в кого нет... и у кого из них бессмертие )))
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Пятница, 18 Апреля 2008 г. 23:27 (ссылка)
а хз))) это ж страйкболл, там правила уже давно отработаны) между прочим у них в играх есть и автоматы и пулемёты))) прочитать в нете нада вот и всё)
Ответить С цитатой В цитатник
nightshadow   обратиться по имени Пятница, 18 Апреля 2008 г. 23:30 (ссылка)
не, вот сам прикинь... ГРАНАТА - 150 шариков... И кто там смотрит в кого попало, а в кого нет? Я ж почитал правила... ЕСЛИ В ВАС ПОПАЛ ШАРИК - ВЫ УБИТЫ. Кто докажет что в меня попал/не попал шарик??? Лучше уж тогда в квазар поиграть )))
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Пятница, 18 Апреля 2008 г. 23:37 (ссылка)
квазар - срань, я в него играл...
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Суббота, 19 Апреля 2008 г. 23:13 (ссылка)
Пабло, я тебе настойчиво рекомендую скачать АМК-Мод версии 1.4
Игра тогда еще лучше будет. Залезь на сайт amk-team.ru
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Суббота, 19 Апреля 2008 г. 23:43 (ссылка)
это чтобы к оригинальным глюкам добавились глюки домашних мододелов?))) нет спасибо
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Суббота, 19 Апреля 2008 г. 23:53 (ссылка)
да да) мод вылетает на 1.0005, а у меня вообще 1.0006 стоит
Ответить С цитатой В цитатник
D_Rumyantsev   обратиться по имени Воскресенье, 20 Апреля 2008 г. 00:59 (ссылка)
AniSoTRopIc,
ваще не догнал про какую игруху речь?!?!))
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Воскресенье, 20 Апреля 2008 г. 01:51 (ссылка)
S.T.A.L.K.E.R.
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 01:53 (ссылка)
АМК-Мод рассчитан только на версию 1.0004
Я играю, и у меня не вылетает.
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Воскресенье, 20 Апреля 2008 г. 01:59 (ссылка)
не охота с нуля начинать... вообще смысл игры пока не сильно понимаю)) лажу, глушу бандюг, собираю артефакты, продаю.. денег дофига, а торговцев то только один, и то где то в жопе остался..
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:03 (ссылка)
Пабло, ты прям как мой дядька - тот тоже не любит сюжетные ветки пережевывать, его только стрельбой сманить можно. Скачай прохождение, что ли...
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:13 (ссылка)
да не в том дело... там бага вылезла... не могу переключать указатель на побочные квесты, он постоянно на основном висит.. да и как бы я лично обычно как игру прохожу - сначала первоначальное накопление капитала, а потом вперёд и с песней)) чтобы по 10 раз не грузитсся из-за того что где-то нехватило десятка патронов или пары аптечек))
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:16 (ссылка)
А ты действуй моим методом - добавляешь Сидоровичу в ассортимент Пустынного Орла, ставишь ему мощность на 10 единиц, нулевую цену, и вперед! Если в файлах сможешь разобраться...
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:18 (ссылка)
ну бля.. это уже читерство)) тогда лучше ему какую нить снайперку добавить и самый лучший броник)
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:21 (ссылка)
А ты думаешь, добавление пустынного орла так сильно облегчает жизнь? Это не читерство, а вынужденная уступка
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:30 (ссылка)
)))))))))))))))))))) как он тама называется кстати?
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:34 (ссылка)
wpn_desert_eagle

Изменять надо не только файл sidr_trade.ltx но и sidr_supl.ltx
И не забудь добавить патроны 45АСР, ато без патронов ходить вредно
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:36 (ссылка)
Вот как надо редактировать файл sidr_supl:
________________________

/// Сдесь товары которые должны быть в продаже, их колличество и шанс появления
/// ammo_9x18_fmj = 10, 0.6
/// патроны 9х18 в колличестве 10 пачек и с шансом 60%.
/// Причем шанс расчитывается для КАЖДОЙ пачки, так что кол патронов могет быть разным.
/// Если поставить
/// ammo_9x18_fmj = 10, 1
/// То всегда будет 10 пачек.

[supplies_start]

;AMK
amk_metka = 5, 5
detector_simple = 2, 1

;Аммуниция
ammo_9x18_fmj = 20, 1
ammo_9x19_fmj = 20, 1
ammo_12x70_buck = 20, 1
grenade_gd-05 = 5, 1
ammo_11.43x23_fmj = 20, 1



;Оружие
wpn_pm = 1, 1
wpn_fort = 1, 1
wpn_bm16 = 1, 1
wpn_mp5 = 1, 1
wpn_desert_eagle = 1, 1


;Броники
bandit_outfit = 1, 1
novice_outfit = 1, 1
neytral_novice_outfit_m1 = 1, 1


;Медикаменты
bandage = 5, 1
medkit = 5, 1
antirad = 2, 1

;Еда
bread = 10, 1
kolbasa = 10, 1
conserva = 10, 1
vodka = 10, 1
energy_drink = 10, 1



[supplies_after_fabric]

;AMK
amk_metka = 5, 5
detector_simple = 2, 1

;Аммуниция
ammo_9x18_fmj = 20, 1
ammo_9x19_fmj = 20, 1
ammo_12x70_buck = 20, 1
grenade_gd-05 = 5, 1
ammo_11.43x23_fmj = 20, 1

;Оружие
wpn_pm = 1, 1
wpn_fort = 1, 1
wpn_bm16 = 1, 1
wpn_mp5 = 1, 1
wpn_toz34 = 1, 1
wpn_desert_eagle = 1, 1

;Апдейты
wpn_addon_silencer = 3,1

;Броники
bandit_outfit = 1, 1
novice_outfit = 1, 1
neytral_novice_gaz_outfit_m1 = 1, 1
neytral_novice_outfit_m1 = 1, 1
bandit_veteran_outfit_m1 = 1, 1
bandit_gaz_outfit_m1 = 1, 1

;Медикаменты
bandage = 5, 1
medkit = 5, 1
antirad = 2, 1

;Еда
bread = 10, 1
kolbasa = 10, 1
conserva = 10, 1
vodka = 10, 1
energy_drink = 10, 1
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:36 (ссылка)
А вот Sidr_trade:
__________________________

/// В этих секциях задается цена и ее разброс
/// ammo_5.45x39_fmj = 1, 3
/// Так торговец продаст патроны и цена может быть от 100% до 300%( рандомно )
/// Если поставить так:
/// ammo_5.45x39_fmj = 10, 10
/// То расброса цен не будет и цена составляет 1000%, т.е в 10 раз больше реальной цены.


[trader_start_sell]
matras ;NO TRADE
treasure_item ;NO TRADE
gorelka ;NO TRADE
manometr ;NO TRADE
trubka ;NO TRADE
flamethrower_bad ;NO TRADE
amk_kanistra ;NO TRADE
amk_ballon ;NO TRADE
wpn_flame ;NO TRADE

;AMK
amk_metka = 10, 10
detector_simple = 1, 1

;Аммуниция
ammo_9x18_fmj = 4, 6
ammo_9x19_fmj = 4, 6
ammo_12x70_buck = 4, 6
grenade_gd-05 = 5, 5
ammo_11.43x23_fmj = 1, 1



;Оружие
wpn_pm = 10, 10
wpn_fort = 10, 10
wpn_bm16 = 10, 10
wpn_mp5 = 10, 10
wpn_desert_eagle = 1, 1


;Броники
bandit_outfit = 3.5, 3.5
novice_outfit = 3.5, 3.5
neytral_novice_outfit_m1 = 3.5, 3.5


;Медикаменты
bandage = 5, 5
medkit = 5, 5
antirad = 5, 5

;Еда
bread = 2, 2
kolbasa = 2, 2
conserva = 2, 2
vodka = 2, 2
energy_drink = 2, 2



;Артефакты
af_medusa ;NO TRADE
af_cristall_flower ;NO TRADE
af_night_star ;NO TRADE
af_vyvert ;NO TRADE
af_gravi ;NO TRADE
af_gold_fish ;NO TRADE
af_blood ;NO TRADE
af_mincer_meat ;NO TRADE
af_soul ;NO TRADE
af_electra_sparkler ;NO TRADE
af_electra_flash ;NO TRADE
af_electra_moonlight ;NO TRADE
af_rusty_thorn ;NO TRADE
af_rusty_kristall ;NO TRADE
af_rusty_sea-urchin ;NO TRADE
af_ameba_slime ;NO TRADE
af_ameba_slug ;NO TRADE
af_ameba_mica ;NO TRADE
af_drops ;NO TRADE
af_fireball ;NO TRADE
af_cristall ;NO TRADE
af_dummy_glassbeads ;NO TRADE
af_dummy_pellicle ;NO TRADE
af_dummy_battery ;NO TRADE
af_dummy_dummy ;NO TRADE
af_dummy_spring ;NO TRADE
af_fuzz_kolobok ;NO TRADE

af_buliz ;NO TRADE
af_spirit_1 ;NO TRADE
af_spirit_2 ;NO TRADE
af_spirit_3 ;NO TRADE
af_spirit_4 ;NO TRADE
af_cry_1 ;NO TRADE
af_cry_2 ;NO TRADE
af_cry_3 ;NO TRADE
af_babka_1 ;NO TRADE
af_babka_2 ;NO TRADE
af_babka_3 ;NO TRADE
af_pudd_1 ;NO TRADE
af_pudd_2 ;NO TRADE
af_pudd_3 ;NO TRADE
af_pudd_4 ;NO TRADE
af_dik_1 ;NO TRADE
af_dik_2 ;NO TRADE
af_dik_3 ;NO TRADE
af_dik_4 ;NO TRADE
af_kol_1 ;NO TRADE
af_kol_2 ;NO TRADE
af_kol_3 ;NO TRADE
af_kol_4 ;NO TRADE
af_armor_1 ;NO TRADE
af_armor_2 ;NO TRADE
af_armor_3 ;NO TRADE
af_armor_4 ;NO TRADE
af_simbion ;NO TRADE

;Детали монстров
mutant_flesh_eye ;NO TRADE
mutant_boar_leg ;NO TRADE
mutant_dog_tail ;NO TRADE
mutant_psevdodog_tail ;NO TRADE
mutant_krovosos_jaw ;NO TRADE
mutant_burer_hand ;NO TRADE
mutant_zombie_hand ;NO TRADE
mutant_snork_leg ;NO TRADE



[trader_after_fabric_sell]

matras ;NO TRADE
treasure_item ;NO TRADE
gorelka ;NO TRADE
manometr ;NO TRADE
trubka ;NO TRADE
flamethrower_bad ;NO TRADE
amk_kanistra ;NO TRADE
amk_ballon ;NO TRADE
wpn_flame ;NO TRADE

;AMK
amk_metka = 10, 10
detector_simple = 1, 1

;Аммуниция
ammo_9x18_fmj = 4, 6
ammo_9x19_fmj = 4, 6
ammo_12x70_buck = 4, 6
grenade_gd-05 = 5, 5
ammo_11.43x23_fmj = 1, 1

;Оружие
wpn_pm = 10, 10
wpn_fort = 10, 10
wpn_bm16 = 10, 10
wpn_mp5 = 10, 10
wpn_toz34 = 10, 10
wpn_desert_eagle = 1, 1

;Апдейты
wpn_addon_silencer = 10, 10

;Броники
bandit_outfit = 3.5, 3.5
novice_outfit = 3.5, 3.5
neytral_novice_gaz_outfit_m1 = 3.5, 3.5
neytral_novice_outfit_m1 = 3.5, 3.5
bandit_veteran_outfit_m1 = 3.5, 3.5
bandit_gaz_outfit_m1 = 3.5, 3.5

;Медикаменты
bandage = 5, 5
medkit = 5, 5
antirad = 5, 5

;Еда
bread = 2, 2
kolbasa = 2, 2
conserva = 2, 2
vodka = 2, 2
energy_drink = 2, 2

;Артефакты
af_medusa ;NO TRADE
af_cristall_flower ;NO TRADE
af_night_star ;NO TRADE
af_vyvert ;NO TRADE
af_gravi ;NO TRADE
af_gold_fish ;NO TRADE
af_blood ;NO TRADE
af_mincer_meat ;NO TRADE
af_soul ;NO TRADE
af_electra_sparkler ;NO TRADE
af_electra_flash ;NO TRADE
af_electra_moonlight ;NO TRADE
af_rusty_thorn ;NO TRADE
af_rusty_kristall ;NO TRADE
af_rusty_sea-urchin ;NO TRADE
af_ameba_slime ;NO TRADE
af_ameba_slug ;NO TRADE
af_ameba_mica ;NO TRADE
af_drops ;NO TRADE
af_fireball ;NO TRADE
af_cristall ;NO TRADE
af_dummy_glassbeads ;NO TRADE
af_dummy_pellicle ;NO TRADE
af_dummy_battery ;NO TRADE
af_dummy_dummy ;NO TRADE
af_dummy_spring ;NO TRADE
af_fuzz_kolobok ;NO TRADE

af_buliz ;NO TRADE
af_spirit_1 ;NO TRADE
af_spirit_2 ;NO TRADE
af_spirit_3 ;NO TRADE
af_spirit_4 ;NO TRADE
af_cry_1 ;NO TRADE
af_cry_2 ;NO TRADE
af_cry_3 ;NO TRADE
af_babka_1 ;NO TRADE
af_babka_2 ;NO TRADE
af_babka_3 ;NO TRADE
af_pudd_1 ;NO TRADE
af_pudd_2 ;NO TRADE
af_pudd_3 ;NO TRADE
af_pudd_4 ;NO TRADE
af_dik_1 ;NO TRADE
af_dik_2 ;NO TRADE
af_dik_3 ;NO TRADE
af_dik_4 ;NO TRADE
af_kol_1 ;NO TRADE
af_kol_2 ;NO TRADE
af_kol_3 ;NO TRADE
af_kol_4 ;NO TRADE
af_armor_1 ;NO TRADE
af_armor_2 ;NO TRADE
af_armor_3 ;NO TRADE
af_armor_4 ;NO TRADE
af_simbion ;NO TRADE

;Детали монстров
mutant_flesh_eye ;NO TRADE
mutant_boar_leg ;NO TRADE
mutant_dog_tail ;NO TRADE
mutant_psevdodog_tail ;NO TRADE
mutant_krovosos_jaw ;NO TRADE
mutant_burer_hand ;NO TRADE
mutant_zombie_hand ;NO TRADE
mutant_snork_leg ;NO TRADE
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:41 (ссылка)
Да, и еще одно - увеличим количество предметов в тайниках. Не забудь поставить в АМК-опциях (верхняя строка меню) пункт "случайные тайники".
Потом найди файл treasure_manager.script и отредактируй его так:
________________________________________________________

local rare_list = {
-- novice section (<1)
"wpn_mp5_m2",
"wpn_beretta",
"wpn_groza",
"ammo_vog-25p",
"ammo_m209",
"ammo_9x39_pab9",
"ammo_9x39_ap",
"ammo_9x39_sp5",
"af_fuzz_kolobok",
"af_rusty_sea-urchin",
"af_dummy_glassbeads",
"af_dummy_pellicle",
"af_dummy_battery",
"af_dummy_dummy",
"af_ameba_mica",

-- experienced section(1 - 2)
"af_dummy_spring",
"af_soul",
"af_cristall",
"af_gold_fish",
"af_night_star",
"af_electra_moonlight",
"ammo_7.62x54_7h1",
"ammo_7.62x54_ap",
"ammo_7.62x54_7h14",
"ammo_og-7b",
"outfit_svoboda_m1",
"protection_outfit",
"wpn_val",
"wpn_groza_m1",
"wpn_val_m1",
"wpn_rpg7",

-- veteran section(2 - 3)
"wpn_fn2000",
"specops_outfit",
"af_buliz",
"af_spirit_1",
"af_cry_1",
"af_babka_1",
"af_pudd_1",
"af_dik_1",
"af_kol_1",
"af_armor_1",
"af_spirit_2",
"af_cry_2",
"af_babka_2",
"af_pudd_2",
"af_dik_2",
"af_kol_2",
"af_armor_2",

-- master section(>3)
"ammo_gauss",
"wpn_vintorez",
"wpn_svu",
"wpn_rg-6",
"wpn_rg6_m1",
"wpn_svd",
"wpn_svd_m1",
"af_spirit_3",
"af_cry_3",
"af_babka_3",
"af_pudd_3",
"af_dik_3",
"af_kol_3",
"af_armor_3",
"af_simbion",
"exo_outfit",
"af_spirit_4",
"af_pudd_4",
"af_dik_4",
"af_kol_4",
"af_armor_4",
"outfit_exo_m1",
"wpn_gauss"
}

local solid_list = {
-- novice section (<1)
"bread",
"bandage",
"kolbasa",
"medkit",
"vodka",
"energy_drink",
"conserva",
"ammo_9x18_fmj",
"ammo_9x18_pmm",
"ammo_12x70_buck",
"novice_outfit",
"ammo_9x19_fmj",
"ammo_9x19_pbp",
"af_medusa",
"af_vyvert",
"bandit_outfit",
"ammo_11.43x23_fmj",
"ammo_11.43x23_hydro",
"ammo_12x76_zhekan",
"af_gravi",
"af_blood",
"amk_metka",
"af_fireball",
"wpn_pm",
"wpn_bm16",
"wpn_pb",
"wpn_fort",
"wpn_mp5",
"af_ameba_mica",
"af_cristall_flower",
"wpn_walther",
"grenade_rgd5",
"wpn_toz34",
"wpn_ak74u",

-- experienced section(1 - 2)
"ammo_5.45x39_fmj",
"ammo_5.45x39_ap",
"medkit_army",
"af_ameba_slime",
"af_ameba_slug",
"soldier_outfit",
"grenade_f1",
"wpn_ak74",
"af_drops",
"af_mincer_meat",
"antirad",
"ammo_5.56x45_ss190",
"wpn_addon_silencer",
"wpn_wincheaster1300",
"wpn_spas12",
"wpn_addon_scope",
"af_fuzz_kolobok",
"af_electra_sparkler",
"killer_outfit",
"grenade_gd-05",
"ammo_5.56x45_ap",
"wpn_abakan",
"af_rusty_thorn",
"stalker_outfit",
"wpn_hpsa",
"wpn_usp",
"wpn_addon_grenade_launcher",
"af_rusty_kristall",
"monolit_outfit",
"wpn_sig220",
"wpn_colt1911",
"ammo_vog-25p",
"ammo_vog-25",
"ammo_m209",

-- veteran section(2 - 3)
"medkit_scientic",
"wpn_addon_scope_susat",
"wpn_addon_grenade_launcher_m203",
"ammo_12x76_dart",
"military_outfit",
"af_dummy_pellicle",
"af_rusty_sea-urchin",
"wpn_desert_eagle",
"wpn_l85",
"wpn_sig550",
"ammo_9x39_pab9",
"wpn_beretta",
"af_electra_flash",
"af_soul",
"svoboda_light_outfit",
"ecolog_outfit",
"ammo_9x39_ap",
"ammo_9x39_sp5",
"wpn_lr300",
"wpn_g36",
"af_dummy_spring",
"af_gold_fish",
"wpn_groza",
"dolg_outfit",
"dolg_scientific_outfit",
"ammo_og-7b",
"af_dummy_battery",
"af_dummy_dummy",
"wpn_fn2000",

-- master section(>3)
"wpn_val",
"af_cristall",
"af_dummy_glassbeads",
"svoboda_heavy_outfit",
"scientific_outfit",
"af_night_star",
"af_electra_moonlight",
"protection_outfit",
"specops_outfit",
"wpn_vintorez",
"ammo_7.62x54_7h1",
"ammo_7.62x54_ap",
"ammo_7.62x54_7h14",
"wpn_rpg7",
"wpn_rg-6",
"wpn_svu",
"wpn_svd",
"ammo_gauss",
"exo_outfit",
"wpn_gauss"
}

local treasure_manager = nil
local n_rank

function parse_spawns(line)
if line == nil then
return {}
end

--' если default-ов больше, чем значений в ini, то забить недостающие последним значением из ini
local t = se_respawn.parse_names(line)
local n = table.getn(t)

local ret_table = {}
local k = 1

while k <= n do
local spawn = {}
spawn.section = t[k]
-- Проверяем что это не последняя запись
if t[k+1] ~= nil then
local p = tonumber(t[k+1])
-- проверяем что вторым числом задана вероятность, а не другая секция спавну
if p then
-- забиваем число
spawn.prob = p
k = k + 2
else
-- забиваем дефолт 1
spawn.prob = 1
k = k + 1
end
else
spawn.prob = 1
k = k + 1
end
table.insert(ret_table, spawn)
end
return ret_table
end


class "CTreasure"
function CTreasure:__init()
--' На конструкторе вычитываем LTX и создаем заготовки квестов.
self.ini = ini_file("misc\\treasure_manager.ltx")

--' Итерируемся по всем настройкам фраз
if not self.ini:section_exist("list") then
abort("There is no section [list] in treasure_manager.ltx")
end
local n = self.ini:line_count("list")
local id, value = "",""

--' начальная установка
self.treasure_info = {}

for i=0,n-1 do
result, id, value = self.ini:r_line("list",i,"","")

self.treasure_info[id] = {}

self.treasure_info[id].target = utils.cfg_get_number(self.ini, id, "target", nil, true)
self.treasure_info[id].name = utils.cfg_get_string(self.ini, id, "name", nil, true, "")
self.treasure_info[id].description = utils.cfg_get_string(self.ini, id, "description", nil, true, "")
self.treasure_info[id].items = parse_spawns(utils.cfg_get_string(self.ini, id, "items", nil, true, ""))

local community = parse_names(utils.cfg_get_string(self.ini, id, "community", nil, false, "", "stalker, bandit, dolg, freedom"))
self.treasure_info[id].community = {}
for k,v in pairs(community) do
self.treasure_info[id].community
end


if self.treasure_info[id].items == nil then
abort("cant find 'items' in %s", id)
end

self.treasure_info[id].condlist = xr_logic.parse_condlist(db.actor, "treasure_manager", "condlist", utils.cfg_get_string(self.ini, id, "condlist", nil, false, "", ""))

--' Отметим тайник как новый
self.treasure_info[id].active = false
self.treasure_info[id].done = false

--print_table(self.treasure_info)
end

--' Вспомогательные таблицы для облегчения поиска
self.treasure_by_target = {}
for k,v in pairs(self.treasure_info) do
self.treasure_by_target[v.target] = k
end
end
--' Юзание инициатора (возможность выдать тайник)
function CTreasure:use(npc)
printf("TREASURE USE")
local rarets

if npc ~= nil then
n_rank = npc:character_rank()
else
n_rank = 0
end

-- если выбран редкий тип тайников, то снизим овероятность его выпадения
if amk.load_variable("option_treasure", 0) == 2 then
rarets = 90
else
rarets = 65
end
if amk.is_debug then
rarets=0
end

if math.random(100) < rarets then
return
end

--' Нужно рандомно выбрать один из тайников.
local avail = {}
local tr_sum = 0

for k,v in pairs(self.treasure_info) do
if v.done == false and v.active == false and v.community[npc:character_community()] == true then
local treasure_prob = xr_logic.pick_section_from_condlist(db.actor, npc, v.condlist)

if treasure_prob == "" or treasure_prob == nil then
treasure_prob = 0
end

if tonumber(treasure_prob) >= 0 and
v.community[npc:character_community()] == true and
v.active == false
then
if tonumber(treasure_prob) == 100 then
self:give_treasure(k)
else
table.insert(avail, {k = k, prob = treasure_prob})
tr_sum = tr_sum + treasure_prob
end
end
end
end

if tr_sum == 0 or
math.random(100) < 65
then
return
end

local tr_w = math.random(tr_sum)
for k,v in pairs(avail) do
tr_w = tr_w - v.prob
if tr_w <= 0 then
--' Выдать тайник
self:give_treasure(v.k)
break
end
end

end
--' Сохранение
function CTreasure:check()
--' Проверка тайников
for k,v in pairs(self.treasure_info) do
--' Выдать тайник
self:give_treasure(k)
end
end
--' Выдача тайника
function CTreasure:give_treasure(k)
local v = self.treasure_info[k]
local obj = alife():story_object(v.target)
if obj ~= nil then
news_manager.send_treasure(v.name)

--' Пометить на карте
local text = "%c[255,238,155,23]"..game.translate_string(v.name).."\\n".."%c[default]"..game.translate_string(v.description)
-- if not level.map_has_object_spot(obj.id,"treasure") then
level.map_add_object_spot_ser(obj.id, "treasure", text)
-- else
-- amk.mylog("Blocking mapspot for "..obj:name())
-- end

-- проверка, какой тип тайника выбран
-- если тайник не классический и не именной, то заменим содержимое
if amk.load_variable("option_treasure", 0) ~= 0 and self:named_treasure(v) == false then
v.items = self:give_item_list()
end

--' Сгенерить вещи
for kk,vv in pairs(v.items) do
if ammo_section[vv.section] == true then
se_respawn.create_ammo(vv.section,
obj.position,
obj.m_level_vertex_id,
obj.m_game_vertex_id,
obj.id,
vv.prob)
else
for i=1,vv.prob do
alife():create(vv.section,
obj.position,
obj.m_level_vertex_id,
obj.m_game_vertex_id,
obj.id)
end
end
end

--' Пометим тайник как выданный
self.treasure_info[k].active = true
self.treasure_info[k].done = true
-- Отправим тайник в оффлайн
local sim = alife ()
if sim ~= nil and obj.online then
sim:set_switch_online (obj.id, false)
sim:set_switch_offline (obj.id, true)
-- sim:set_switch_online (obj.id, true)
-- sim:set_switch_offline (obj.id, false)
amk.convert_npc[obj.id]=1 -- ставим в очередь на вывод в онлайн
end
else
printf("TREASURE %s, target doesnt exist", k)
end
end
--' Снимаем отметку с тайника
function CTreasure:treasure_empty(box, box_story_id)
printf("!!! treasure empty")
local k = self.treasure_by_target[box_story_id]

if k == nil or self.treasure_info[k] == nil then
return
end

self.treasure_info[k].active = false

-- если тайник не именной, то переведен его в онлайн для следующей выдачи
if self:named_treasure(self.treasure_info[k]) == false then
self.treasure_info[k].done = false
end

level.map_remove_object_spot(box:id(), "treasure")
end
--' Сохранение
function CTreasure:save(p)
--' Сохраняем размер таблицы
local size = 0
for k,v in pairs(self.treasure_info) do
size = size + 1
end
p:w_u16(size)
for k,v in pairs(self.treasure_info) do
p:w_u16(v.target)
p:w_bool(v.active)
p:w_bool(v.done)
end
end
--' Загрузка
function CTreasure:load(p)
local t = p:r_u16()
for i = 1,t do
local k = self.treasure_by_target[p:r_u16()]
self.treasure_info[k].active = p:r_bool()
self.treasure_info[k].done = p:r_bool()
end
end



function CTreasure:my_random(k, rank)
-- генериться случайное число диапазона с учетом ранга выдавшего
-- сколько пердметов попадает в список по рангам
local part = math.floor(k/4)-2
if part < 1 then part = 1 end
-- начало доступного рангу списка
local amin = (rank-1)*part+1

-- внесем немного хаоса
if rank < 4 then
-- если нам очень сильно повезет, то мы получим доступ к самым лучшим вещам
if math.random(100)>80 then
rank = 4
-- а если нам повезет чуть поменьше, то у непися в кладе могут выпасть вещи "не по рангу"
elseif math.random(100)>50 then
rank = rank+1
end
end
-- конец доступного рангу списка
local amax = math.floor((k/4)*rank)


-- не знаю точно, как работает floor, потому подстрахуюсь
if amax >= k-1 then amax = k end
-- совсем уж подстрахуюсь :)
if amin < 1 then amin = 1 end

-- выбор случайного номера из диапазона, доступного рангу
local i = math.random(amin, amax+2)
-- если номер попал в верхнюю часть диапазона, то снизим вероятность выпадения крутых вещей
-- в связи с переходом на систему рангов, может, это и не нужно, надо тестить
if i>(amin+amax)/2 then
i = math.random(amin, amax+2)
end
-- ну и по установившейся привычке подстрахуюсь
if i>amax then i = amax end
if i<1 then i = 1 end

return i
end



function CTreasure:give_item_list()

local rank = 1
local tabla = {}
-- сколько наименований предметов будет в тайнике
local i = math.random(14, 15)


-- считаем настройку пользователя
local opt = amk.load_variable("option_treasure", 0)

--~ -- определим ранг непися
--~ if nepis~= nil then
-- rank = n_rank --nepis.character_rank ()
if n_rank == nil then n_rank = math.random(14, 15)*100 end
if n_rank <= 300 then
rank = 1
elseif n_rank <=600 then
rank = 2
elseif n_rank <= 900 then
rank = 3
else
rank = 4
end
--~ else
--~ rank = 4
--~ end


for j = 1, i, 1 do
local cnt = 0
local spawn = {}
-- определим, из какой секции брать предметы, и какие именно
if opt == 1 then
spawn.section = solid_list[self:my_random(table.getn(solid_list), rank)]
else
spawn.section = rare_list[self:my_random(table.getn(rare_list), rank)]
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(14, 15)
-- патроны выдаем не штуками, а пачками
cnt = math.random(1, h) * num_in_box
else
local s = tostring(spawn.section)
if string.find(s, "outfit") ~= nil then
cnt = 1
elseif string.find(s, "addon") ~= nil or string.find(s, "af_") ~= nil then
cnt = math.random(1,2)
elseif string.find(s, "wpn") ~= nil then
cnt = 1
else
cnt = math.random(14, 15)
end
end

-- сохраняем инфу о текущем предмете
spawn.prob = cnt
table.insert(tabla, spawn)
end
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

function get_treasure_manager()
if treasure_manager == nil then
treasure_manager = CTreasure()
end
return treasure_manager
end

function take_item_from_box(box, box_story_id)
printf("!!! take item from box %s", tostring(box:is_inv_box_empty()))
-- if box:is_inv_box_empty() == true then
get_treasure_manager():treasure_empty(box, box_story_id)
-- end
end

function save(p)
get_treasure_manager():save(p)
end
function load(p)
get_treasure_manager():load(p)
end
function clear_treasure_manager()
treasure_manager = nil
end
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:42 (ссылка)
Но потом придется начать новую игру, ато изменения не вступят в силу.
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:42 (ссылка)
бляяяяяяяяяяя, да не буду я этого делать..... а эти посты длинные нада под кат уберать!
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:44 (ссылка)
Я ЧЕ, ЗРЯ СТАРАЛСЯ ТУТ ЧТО-ЛИ, ЗРЯ ИСКАЛ ВСЕ ЭТО???!!!
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:46 (ссылка)
а х. тебя знает. я спросил как он в игре называется, а не в файлах. я думал в игре они названия переколбасили чтобы за лицензию не платить
Ответить С цитатой В цитатник
Ronnie_Magnum   обратиться по имени Воскресенье, 20 Апреля 2008 г. 02:48 (ссылка)
В АМК-Моде стволам возвращены реальные имена, в оригинальной игре он называется Черный Ястреб.
Ответить С цитатой В цитатник
AniSoTRopIc   обратиться по имени Воскресенье, 20 Апреля 2008 г. 12:25 (ссылка)
бесит что унести на себе можно только 50 кг.. ну типа реалистично.. но бесит..
Ответить С цитатой В цитатник
Lazu_Ritt   обратиться по имени Вторник, 22 Апреля 2008 г. 21:43 (ссылка)
Да ладно))) Зато какие там монстрики) ИИ хороший,не самого высокого уровня,но иногда приколы отмачивают)

А вот как меня бесит миссия с этим придурком,снимающим показания радиации...дебил несется вперед под пули,как будто его просят...
Ответить С цитатой В цитатник
К дневнику Страницы: [1] 2 [Новые]