Gonarh 5 Опубликовано 2 Декабря 2009 Бандерос объяснил все просто и понятно 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 3 Декабря 2009 Не хочется что-то для одной единственной сценки 20 лишних уникальных неписей в аллспавн записывать. и это не проблема, добавь их в gamedata\config\creatures\spawn_sections.ltx и спавни себе на здоровье скриптом Добавлено через 2 мин.: Хотя... могешь воспользоваться функцией read_stalker_params из amk.script прочесть нет-пакет сталкера и получить его профиль и класс и сделать проверку условия по нему 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 4 Декабря 2009 (изменено) Так что спавн в произвольном месте на произвольном уровне представляет собой пока нерешённую проблему. Разве? Вот вам функция генерации необходимых данных для спавна на любом уровне в рандомной точке: в функцию передаём имя левела, возвращает таблицу в которую передается позиция, левелвертекс, геймвертекс для спавна, учтите что данные в таблицах для этой функции сняты с моего game.graph, который перекомпилен, и координаты и количество геймвертексов и левелвертексов могут не совпадать с оригиналом игры level_vertexes = { l01_escape = 595465, l02_garbage = 382655, l03_agroprom = 437418, l03u_agr_underground=4921, l04_darkvalley=390121, l04u_labx18=7565, l05_bar=99523, l06_rostok=67707, l07_military=418264, l08_yantar=141442, l08u_brainlab=8002, l10_radar=227176, l10u_bunker=8801, l11_pripyat=261218, l12_stancia=477876, l12_stancia_2=264570, l12u_control_monolith=3971, l12u_sarcofag=10670 } local game_vertexes = { l01_escape={0,251}, l02_garbage={252,415}, l03_agroprom={416,702}, l03u_agr_underground={703,810}, l04_darkvalley={811,1108}, l04u_labx18={1109,1167}, l05_bar={1168,1307}, l06_rostok={1308,1437}, l08_yantar={1438,1528}, l08u_brainlab={1529,1544}, l07_military={1545,1861}, l10_radar={1862,2116}, l11_pripyat={2117,2272}, l12_stancia={2273,2401}, l12u_sarcofag={2402,2466}, l12u_control_monolith={2467,2516}, l12_stancia_2={2517,2660}, l10u_bunker={2661,2791} } function get_random_coordinates(lname) local gvn, gvx, lvx = game_vertexes[lname][1], game_vertexes[lname][2], level_vertexes[lname] local min_dist = 100000 local data = {} data.lvid = math.random(1, lvx) data.pos = level.vertex_position(data.lvid) data.gvid = 0 for a = gvn, gvx do g1 = game_graph():vertex(a):game_point() if g1:distance_to(data.pos) < min_dist then min_dist = g1:distance_to(data.pos) data.gvid = a end end return data end Изменено 4 Декабря 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 4 Декабря 2009 Яфно почему я не смог доделать свой мод с динамическими рандомными левелчейнджерами, именно по этой причине 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 4 Декабря 2009 (изменено) Народ, никто не ловил такой вылет при квиксейве? C чего он может возникать? [error]Expression : (m_tClassID == CLSID_SPECTATOR) || (size > sizeof(size)) [error]Function : CSE_Abstract::Spawn_Write [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_Object_Base.cpp [error]Line : 226 [error]Description : object isn't successfully saved, get your backup :( [error]Arguments : wpn_addon_scope45577 ЗЫ. То, шо оптика не сохранена корректно, переводить не надо, я и так понял шо размер чего-то больше чем общий размер чего-то Изменено 4 Декабря 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 8 Декабря 2009 (изменено) Вот здесь то что не так? obj:iterate_inventory(function (obj, item) а то что ты поставил obj туда куда не следует ставить local tbl = {} obj:iterate_inventory(function (tmp, item) table.insert(tbl, {item:id(), item:section()}) end,obj) for i, data in ipairs(tbl) get_console():execute("load ~~~ id=" .. tostring(data[1]) .. " name="..data[2]) end Изменено 8 Декабря 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 8 Декабря 2009 дык ему ж не просто в лог вывести, а тейбл заполнить 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 8 Декабря 2009 Я так понимаю для дебага? Или нас ждут какие новые вкусности? 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 9 Декабря 2009 Добавь неписю такую логику [logic] active = remark1 [remark1] anim = wait on_info = {+my_info} remark2 combat_ignore_cond = always [remark2] anim = binocular combat_ignore_cond = always сталк будет стоять и ничего не делать, кады выдаш инфопоршень my_info - начнет глядеть в бинокль 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 9 Декабря 2009 когда мораль падает до уровня panic_threshold неписи начинают орать типа: не стреляй я без оружия, а монстряки сваливают. Небось сам замечал: нападает стая собак, гавкают, кусают, перебиваешь всех, остаётся одна - скулит и валит куды подальше 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 9 Декабря 2009 (изменено) конечно, вот допустим мне дать литра три пива - у мну мораль знаешь как поднимется а по сабжу - нет у НПС есть psy_health - так вот какие нибудь эффекты оно имеет?И когда изменяется? не знаю, не интересовался Изменено 9 Декабря 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 11 Декабря 2009 (изменено) function inventory_npc() local general_table = {} for k, v in pairs (db.storage) do local npc = level.object_by_id(k) if npc and IsStalker(npc) then local tbl_inv = {} npc:iterate_inventory( function (tmp, item) if tbl_inv[item:section()] then tbl_inv[item:section()] = tbl_inv[item:section()] + 1 else table.insert(tbl_inv, item:section()) end end, npc) table.insert(general_table, {npc:id(), tbl_inv}) end end for i, data in pairs (general_table) do local npc_obj = level.object_by_id(data[1]) if npc_obj and IsStalker(npc_obj) then local str for j, item in pairs (data[2]) do if str == nil then str = "" end str = str .. string.format("\\n%s=%d", item ,j) end if str then level.map_add_object_spot(npc_obj.id, "alife_presentation_smart_ready", str) end end end all_spawn.showmessage("done") end Изменено 11 Декабря 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 11 Декабря 2009 Мне нужно понять почему не читаются все элементы из таблицы (не поняв это - я не смогу работать с многоуровневыми таблицами). гоу курить маны 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 11 Декабря 2009 это пси-атака найди в файле бинд_монстер строку level.add_pp_effector("radiation.ppe".... и закомментарь её 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 11 Декабря 2009 файл gamedata\config\weapons\имя_оружия.ltx параметр condition_shot_dec 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 11 Декабря 2009 Попробую включить телепатический отдел мозга. Тебе нужно чтобы кады неписи дохнут, менялся кондишн их оружия или где? 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 11 Декабря 2009 это давно реализовано во многих модах, внимательно рассмотри работу дефменеджера, скрипт death_manager.script конкретнее функция keep_item 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 11 Декабря 2009 (изменено) Для начала, скажу только один раз и больше повторяться не буду. Я никого никуда не посылал, я тебе (равно как и ты мне) ничего не должен и ничем не обязан, поэтому недовольные идут лесом. Если ты всерьез хочешь заняться программированием, читай мануалы на английском а не ищи переводы. Потому как все равно практически вся тех. документация на нем. По сабжу: когда я делал трехуровневую таблицу - там все итемсы выводились как надо - но полным списком - если у непися 20 пачек патронов - то все 20 пачек построчно и выводились - хотелось бы избавиться от этого, чтобы было только имя предмета и его кол-во. они у тебя и будут выводится построчно, потому что у каждой пачки свой :id() а ты добавляешь в свою таблицу айдишник для каждого итема, своего рода ключ, тут уже придётся выбирать или показывать все 20 пачек с их айдишниками или добавлять в таблицу без айдишника, либо завесть подтаблицу и упаковать по имени секции количество итемов, выбирать тебе Добавлено через 20 мин.: Как такового понятия многомерного массива в lua вообще не существует (как например в паскале или визуал бейсике) в паскале и визуалбейсике реализации n-мерного массива, через array как таковой тоже не существует. Есть коллекции, деревья, но не аррэй. Про си не скажу, я его знаю на уровне "хэлловорд". Кстате знаю что в ЛУА есть связанные списки(linked lists если Иерусалимский не врет), я про них не читал, попробуй посмотри в их сторону - может пригодится Изменено 11 Декабря 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 12 Декабря 2009 (изменено) В Паскале как раз имеются родные многомерные массивы. ты сможешь при помощи них создать n-мерный массив? Т.е массив с заранее неизвестным количество измерений. Вот смотри при n=2 это матрица, при n=3 - это куб. Покажи код создания n-мерного массива с заранее неизвестным n. Можно в личку, просто интересно ЗЫ. Как жаль что нам не преподавали в свое время теорию графов Изменено 12 Декабря 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение
Gonarh 5 Опубликовано 12 Декабря 2009 добавить в список исключаемых из обхода аномалий - zone_flame_small 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Поделиться этим сообщением Ссылка на сообщение