strong 2 Опубликовано 24 Марта 2010 Поделиться Опубликовано 24 Марта 2010 Спасибо за разьяснения, после правки телепорты-фантомы исчезли. Но непонятки с количеством телепортов остались. Я еще раз говорю, я в програмировании ноль, но руководствуясь только логикой и остатками английского я пришел к такому выводу. За количество телепортов на локе отвечают две строки в скрипте, вот эти: min_lc = level_number[lname]*2 lc_cnt = math.random(min_lc,min_lc+math.random(7,15)) Из первой строки ясно, что кол-во определяется номером левела(да еще умноженному на 2 кажется), а во второй к этому кол-ву прибавляется еще какое-то рандомное число. На начальных уровнях вроде все в порядке, но представте себе сколько спавнится телепортов на уровне Болото с порядковым номером 33 в MapPack-е. Но здесь хоть площадь локи позволяет, а на локе Госпиталь под номером 28 просто кошмар. Я немного переделал эти строки, вот так: min_lc = 3 lc_cnt = math.random(min_lc,min_lc+math.random(5,10)) И количество телепортов пришло в более-менее сносное состояние. И хочу задать еще пару вопросов. Что касается ТЧ, здесь все в порядке, все работает безупречно. Но я привинтил этот скрипт к сборке ЗП+MapPack. В принципе все работает как надо , только иногда вылетает в Винду вот с этими логами: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\scri pt_storage.cpp Line : 748 Description : ....r. - cop\gamedata\scripts\bind_level_changer.script:46: attempt to index field 's_obj' (a nil value) Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\scri pt_storage.cppLine : 748 Description : ....t.a.l.k.e.r. - cop\gamedata\scripts\xr_logic.script:1270: attempt to index local 'obj' (a nil value) Насколько я понял затык идет из присутствия в ЗП файла bind_level_changer.script , их просто надо развести по времени срабатывания. Как это сделать? И второй вопрос почему на локах ЧАЭС и ЧАЭС-2 отметки переходов не отображаются в пда? Как их включить? ЗОНА ДОЛЖНА БЫТЬ НЕПРЕДСКАЗУЕМОЙ !!! НЕТ ТАМ ЛОГИКИ И НЕ НУЖНА ОНА ТАМ !!! Ссылка на комментарий
Charsi 440 Опубликовано 25 Марта 2010 Поделиться Опубликовано 25 Марта 2010 кол-во определяется номером левела(да еще умноженному на 2 кажется) Не верно.Минимальное количество телепортов на локации с именем lname равно удвоенному числу,которое берется из таблицы level_number,описанной в начале файла. local level_number={ l01_escape = 1, l02_garbage = 2, l03_agroprom = 3, l03u_agr_underground=4, l04_darkvalley=5, l04u_labx18=6, l05_bar=7, l06_rostok=8, l07_military=9, l08_yantar=10, l08u_brainlab=11, l10_radar=12, l10u_bunker=13, l11_pripyat=14 } Ни Болот, ни Госпиталя в ней нет,и динамических телепортов на этих локациях не будет. почему на локах ЧАЭС и ЧАЭС-2 отметки переходов не отображаются в пда? По той же причине - динамических телепортов там нет. Можно к метке с телепортом приписать название локации, куда он ведёт. [spoiler=немного читерства ] function spawn_random_lc(lname) local src = get_random_coordinates(lname) local dd = get_dest_data(lname) --пункт назначения local obj = create_lc(src, dd, 0.01, lname.."_dynamic_lc_gonarh") if obj then table.insert(array_lc, obj) level.map_add_object_spot(obj.id, "red_location", "Телепорт на локацию "..(game.translate_string(dd.lname)) ) end local custom_data = "[logic] \nactive = sr_idle \n[sr_idle] \non_actor_inside = %+teleport_show%\non_actor_outside = %-teleport_show%" spawn_restrictor(lname.."_dynamic_lc_gonarh_restrictor", src.pos, src.lvid, src.gvid, 2, custom_data) end Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
strong 2 Опубликовано 25 Марта 2010 Поделиться Опубликовано 25 Марта 2010 (изменено) Не верно.Минимальное количество телепортов на локации с именем lname равно удвоенному числу,которое берется из таблицы level_number,описанной в начале файла. Ни Болот, ни Госпиталя в ней нет,и динамических телепортов на этих локациях не будет. Уже есть. Я расширил таблицу на весь MapPack. И чем твой ответ отличается от моего вопроса, я кажется тоже самое и написал. Цитата почему на локах ЧАЭС и ЧАЭС-2 отметки переходов не отображаются в пда? По той же причине - динамических телепортов там нет. См. ответ выше, телепорты есть и их видно на миникарте, но не видно в ПДА, т.ч. вопрос остался. Мне это нужно на момент отработки. Потом отметки от рестрикторов будут отключены. Изменено 25 Марта 2010 пользователем strong ЗОНА ДОЛЖНА БЫТЬ НЕПРЕДСКАЗУЕМОЙ !!! НЕТ ТАМ ЛОГИКИ И НЕ НУЖНА ОНА ТАМ !!! Ссылка на комментарий
Struck 61 Опубликовано 25 Марта 2010 Поделиться Опубликовано 25 Марта 2010 Gonarh, а можно так что бы телепорту прописать перекидывание в размерах одной локе?? Делать массив перекидываний и рандомно выдавать? Ссылка на комментарий
strong 2 Опубликовано 25 Марта 2010 Поделиться Опубликовано 25 Марта 2010 С этим вариантом скрипта не пробовал, а со старым вариантом у меня получалось. Вот в этом месте 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 min_dist = 100000 до 1000 прыгал по телепортам на одной локе ЗОНА ДОЛЖНА БЫТЬ НЕПРЕДСКАЗУЕМОЙ !!! НЕТ ТАМ ЛОГИКИ И НЕ НУЖНА ОНА ТАМ !!! Ссылка на комментарий
Charsi 440 Опубликовано 26 Марта 2010 Поделиться Опубликовано 26 Марта 2010 (изменено) strong,cейчас пришел на ЧАЭС и заспавнил телепорты.Они отображаются и на миникарте и на ПДА.Но их видно лишь частично,как и метку главного героя.Это глюк оригинальной игры.Как его решить - лучше спросить у картоделов. Struck,в пределах одной локации можно не заморачиваться с левелченджерами,а делать перенос скриптом. Делаешь массив векторов,указывающих куда можно телепортироваться.Для каждой локации будет свой подмассив.При попадании ГГ в локальный телепорт выбираешь случайный вектор из этого массива и переносишь куда надо. local massiv = { [l01_escape] = {vector1,vector2,vector3}, [l02_garbage] ={vector4,vector5} --и т.д. } local m = massiv[level.name()] --получаем подмаcсив векторов для текущего уровня if m then -- если есть локальные телепорты для текущей локации local vector = m[math.random(table.getn(m))] --выбираем случайный элемент из m db.actor:set_actor_position(vector) --переносим актора end Изменено 26 Марта 2010 пользователем Charsi Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Dabraleli 0 Опубликовано 3 Января 2011 Поделиться Опубликовано 3 Января 2011 (изменено) Классно получилось :вот путь который я "пролетел" Кордон-Агропром-Припять-Радар-Темная Долина-Кордон :ny_thumbsup: А на ЗП он работать будет? Изменено 3 Января 2011 пользователем Dabraleli Ссылка на комментарий
strong 2 Опубликовано 4 Января 2011 Поделиться Опубликовано 4 Января 2011 Работает и на ЗП. ЗОНА ДОЛЖНА БЫТЬ НЕПРЕДСКАЗУЕМОЙ !!! НЕТ ТАМ ЛОГИКИ И НЕ НУЖНА ОНА ТАМ !!! Ссылка на комментарий
DarkFace 0 Опубликовано 15 Апреля 2015 Поделиться Опубликовано 15 Апреля 2015 (изменено) Ссылка из поста http://www.amk-team.ru/forum/index.php?showtopic=7881&p=340018 умерла. Может кто обновить? Изменено 15 Апреля 2015 пользователем DarkFace Я вообще животных люблю. Кто-то там кошек любит, или собак, а я всех люблю без разбора. Людей только не люблю. Надоели, блин. Носятся и бегают, орут друг на друга, суетятся, злые все какие-то! Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти