Старлей 88 Опубликовано 9 Марта 2013 Поделиться Опубликовано 9 Марта 2013 Скажите пожалуйста, как по нет-пакету получить имя профиля сталкера? и можно ли его получить так: function get_npc_character(p_obj) if p_obj then local params = read_stalker_params(p_obj) character_profile = params.character_profile return character_profile end end Или вот так: function get_npc_name(p_obj_id) local obj = alife():object(p_obj_id) if not obj then return "none" end stpk:w_begin(0) stpk:r_seek(2) obj:STATE_Write(stpk) local game_vertex_id = stpk:r_u16() local distance = stpk:r_float() local direct_control = stpk:r_s32() local level_vertex_id = stpk:r_s32() local object_flags = stpk:r_s32() local character_profile = stpk:r_stringZ() if not character_profile then return "none" end return character_profile end Ray Of Hope - кооператив сталкера OldStory Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 17 Марта 2013 Поделиться Опубликовано 17 Марта 2013 level.prefetch_sound() в SOC вообще работает ? То, что он там есть, при вызове как минимум не вылетает, и даже что-то пытается делать - вижу. Но результатов от того, что он там делал - не вижу. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Shredder 49 Опубликовано 17 Марта 2013 Поделиться Опубликовано 17 Марта 2013 Кажется да, в ТЧ не работает. Проверял на чистой версии 1.004 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager1] time 151900.640625 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager2] time 76861.28125 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager3] time 6158.66796875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager4] time 6098.7456054688 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager5] time 49973.76953125 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager6] time 5801.388671875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager7] time 5827.8383789063 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_wolf] time 51055.2109375 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz1] time 120311.9296875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz2] time 6131.2065429688 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz3] time 6202.162109375 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz4] time 6135.0942382813 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz5] time 6163.4208984375 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz6] time 6137.5444335938 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier1] time 120561.21875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier2] time 6199.7275390625 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier3] time 7081.654296875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier4] time 6173.3525390625 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier5] time 6077.3876953125 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier6] time 6117.654296875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier7] time 6213.7060546875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier8] time 6071.0737304688 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier9] time 6168.5727539063 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_commander] time 6136.7456054688 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_shustryi] time 5780.669921875 ! Cannot find saved game ~#i#:#timer [prefetch_sounds] send [end] time 8899533 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager1] time 215009.796875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager2] time 37829.171875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager3] time 81040.7421875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager4] time 7518.0048828125 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager5] time 5922.2114257813 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager6] time 59345.6171875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_lager7] time 5590.4750976563 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_wolf] time 5426.0971679688 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz1] time 93804.1171875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz2] time 5843.2153320313 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz3] time 5842.4467773438 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz4] time 5840.8466796875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz5] time 5830.0473632813 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_specnaz6] time 5896.013671875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier1] time 49885.50390625 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier2] time 5872.9169921875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier3] time 6959.5307617188 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier4] time 6058.220703125 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier5] time 5916.9033203125 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier6] time 5829.4350585938 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier7] time 5931.599609375 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier8] time 5905.4916992188 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_soldier9] time 5933.857421875 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_blokpost_commander] time 5909.751953125 ! Cannot find saved game ~#i#:#timer [load_sound] send [esc_shustryi] time 5658.0590820313 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 17 Марта 2013 Поделиться Опубликовано 17 Марта 2013 звуки грузились через npc:add_sound() ? Вообще, если взять какую-то тушку, и скормить ей ВСЕ - будет вполне себе кэширование. Но я не разобрался, что должно быть в параметрах. Там в скриптике была попытка сделать тупо (вместо prefetch в preload() было тупо add_sound по всем подкаталогам, но оно грузит только первый, от остальных отказывается. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Shredder 49 Опубликовано 17 Марта 2013 Поделиться Опубликовано 17 Марта 2013 (изменено) Кэширование пытался сделать через level.prefetch_sound, потом попробовал через db.actor:add_sound(), но там во втором случае вообще ничего не происходило, т.к. даже по вермени проходило всег 0,3 сек. против 9 сек через level.prefetch_sound. Больше не копал. Изменено 17 Марта 2013 пользователем Shredder Ссылка на комментарий
x202 1 Опубликовано 17 Марта 2013 Поделиться Опубликовано 17 Марта 2013 Делал тоже самое, вот только результат не очень понравился. После 5-ти минут игры она пытается востановить кеш, и сразу же происходит вылет. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 17 Марта 2013 Поделиться Опубликовано 17 Марта 2013 Подозреваю, что для второго варианта должны быть какие-то "идеологически правильные" id. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Wookie 7 Опубликовано 19 Марта 2013 Поделиться Опубликовано 19 Марта 2013 Можно ли с помощью класса IO посчитать кол-во строк в файле, в ЧН\ЗП? https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Ссылка на комментарий
ColR_iT 171 Опубликовано 19 Марта 2013 Поделиться Опубликовано 19 Марта 2013 (изменено) Wookie, для класса io существует метод lines, принимающий в качестве аргумента имя файла, и возвращает функцию итератор, которая при вызове возвращает по одной строку из указанного файла, как только достигнет конца файла - вернёт nil, при этом файл будет закрыт.Точно не помню, но кажется можно вызывать и без аргумента, в таком случае будет обрабатываться стандартный поток ввода, по окончании итерации ничего закрываться не будет. for line in io.lines("filenNme") do ... end Это работает на чистом Lua, но и на ЗП должно работать. Изменено 19 Марта 2013 пользователем ColR_iT 1 Ссылка на комментарий
Снайпер56 2 Опубликовано 22 Марта 2013 Поделиться Опубликовано 22 Марта 2013 (изменено) Всем привет. Можете подсказать, у меня ничего не получается. Я пытаюсь сделать удаление заспавненного скриптом телепорта, при поднятии предмета. Подскажите пожалуйста что и куда прописывать нужно. Заранее благодарен. Функцию checking_taken_item я изучил он делает все, спавнит нпс и т.д. НО никак я с ее помощью не могу удалить телепорт заспавненный скриптом вот моя функция удаления телепорта: function delete_teleport_kastet(story_id) local se_obj = alife():story_object(97125) if se_obj then alife():release(se_obj) news_manager.send_tip(db.actor, "Телепорт отключен", nil, nil, 30000) endendfunction checking_taken_item77(obj) if obj:section()=="quest_case_kastet" then delete_teleport_kastet(obj) endend Извиняюсь но спойлер что то не работает. Удивительно, но работает не только спойлер, но и остальные теги. ColR_iT Изменено 23 Марта 2013 пользователем ColR_iT АМК..1.4.1..+..Народная..Солянка..от..19.04.10..дополнение..14.08.10..+..патч..3.09.10..+..DMX..1.3.5..+..ADDON..BY..SARUMAN Ссылка на комментарий
Shredder 49 Опубликовано 23 Марта 2013 Поделиться Опубликовано 23 Марта 2013 Покажи функцию, которой спавнишь телепорт. Споллер работает Ссылка на комментарий
Снайпер56 2 Опубликовано 23 Марта 2013 Поделиться Опубликовано 23 Марта 2013 Вот моя функция спавна телепорта: function spawn_tele_kastet1() local se_obj = alife():create("m_teleport_esc_kastet1",vector():set(-4.934,0.633,267.286),272133,183) local t = amk.get_anomaly_data(se_obj) t.sid = 97128 amk.set_anomaly_data(t, se_obj) end И еще, в функции что я писал выше я сделал опечатку, там СИД не 97125 а 97 128. Как удалить телепорт подскажите пожалуйста. АМК..1.4.1..+..Народная..Солянка..от..19.04.10..дополнение..14.08.10..+..патч..3.09.10..+..DMX..1.3.5..+..ADDON..BY..SARUMAN Ссылка на комментарий
panzyuza 41 Опубликовано 30 Марта 2013 Поделиться Опубликовано 30 Марта 2013 Небольшой вопрос. Какая функция лучше для определения текущей игровой локации на апдейте? Проверять локации через level.name()== "l01_escape" или может по alife():level_name("l01_escape")? AVS_LOCATION_MOD Ссылка на комментарий
Shredder 49 Опубликовано 31 Марта 2013 Поделиться Опубликовано 31 Марта 2013 Первой конечно. Вторая используется по-другому: alife():level_name(level_id), где level_id можно получить несколькими способами, один из них:game_graph():vertex(obj:game_vertex_id()):level_id() Ссылка на комментарий
Снайпер56 2 Опубликовано 1 Апреля 2013 Поделиться Опубликовано 1 Апреля 2013 (изменено) В arhara_dialog.skript телепорт удаляется через такую функцию: function delete_teleport_baza_vxod(story_id) local se_obj = alife():story_object(17000) if se_obj then alife():release(se_obj) news_manager.send_tip(db.actor, "Телепорт на входе в базу отключен", nil, nil, 30000) end end function checking_taken_item45(obj) if obj:section()=="kluch_dell_teleport" then delete_teleport_baza_vxod(obj) end end Я делаю такую же функцию, но у меня телепорт не удаляется. Подскажите пожалуйста может быть я что то не так делаю? P.S. Вот моя функция СПАВНА телепорта : function spawn_tele_kastet2() local se_obj = alife():create("m_teleport_esc_kastet2",vector():set(21.189,0.585,256.948),299742,182) local t = amk.get_anomaly_data(se_obj) t.sid = 97129 amk.set_anomaly_data(t, se_obj) end Используй тег [cоdе] для выделения кода в тесте. В шапке об этом написано. В следующий раз удалю пост. ColR_iT Изменено 1 Апреля 2013 пользователем ColR_iT АМК..1.4.1..+..Народная..Солянка..от..19.04.10..дополнение..14.08.10..+..патч..3.09.10..+..DMX..1.3.5..+..ADDON..BY..SARUMAN Ссылка на комментарий
Старлей 88 Опубликовано 4 Апреля 2013 Поделиться Опубликовано 4 Апреля 2013 Есть вылет: FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp [error]Line : 180 [error]Description : <no expression> [error]Arguments : LUA error: ...stalker clear sky\gamedata\scripts\os_respawn.script:49: attempt to call method 'alive' (a nil value) stack trace: Вот фрагмент из os_respawn: local obj = alife():object(k) --получаем объект по его Id local name = oldstory.get_npc_character(obj) --тут получаем имя профиля сталкера(100% работает) if obj and name==p_name then -- if obj это типа проверка что obj не равен nil? Вылет > if obj:alive() then --по вылету выходит, что не может применить alive к obj = nil ? cnt = cnt+1 else И что же тут не так? Ray Of Hope - кооператив сталкера OldStory Ссылка на комментарий
Shredder 49 Опубликовано 4 Апреля 2013 Поделиться Опубликовано 4 Апреля 2013 (изменено) Странно как-то. Должно работать. Попробуй так: if obj.alive and obj:alive() then cnt = cnt + 1 Возможно obj не имеет метода alive, т.е. это какой-то объект, который живым быть не может, автомат например. Хотя тогда бы и лог другой был. Ещё функцию oldstory.get_npc_character показал бы. Изменено 4 Апреля 2013 пользователем Shredder Ссылка на комментарий
*Shoker* 322 Опубликовано 11 Апреля 2013 Поделиться Опубликовано 11 Апреля 2013 (изменено) Давно со скриптами сталкера не работал, мозги немного заплыли жиром. Хочу попробовать "грубо" реализовать тело игрока от первого лица через физ объект с анимациями, но для этого нужно решить некоторые проблемы, в частности ни у кого нет идей каким образом можно двигать физ. объект (коллизия у него будет отключена) вместе с игроком? Функции телепортации для физ. объектов вроде как нету, пока рассматриваю вариант пытаться двигать объект за игроком через физику, но это будет то ещё извращение. Работаю на ЧН, но сойдёт и ЗП вариант. Как вариант - посмотри реализацию грави-пушки. ColR_iT Изменено 11 Апреля 2013 пользователем ColR_iT Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Nostrik 0 Опубликовано 11 Апреля 2013 Поделиться Опубликовано 11 Апреля 2013 А подскажите плз, можно ли сделать так, чтобы каждый раз при заходе на уровень (для ЗП) один раз выполнялся определенный скрипт. Пробовал по вот этому методу http://www.amk-team.ru/forum/index.php?act=findpost&pid=472142, но наверное в ЗП это не работает, у меня не получилось. Ссылка на комментарий
OFF_ender 33 Опубликовано 14 Апреля 2013 Поделиться Опубликовано 14 Апреля 2013 Подскажите, пожалуйста.Ситуация такая: нужно сохранять 2 таблицы:table1 = {[1] = {id_a=<1..65535>, numb=<1..8>, id_b=<1..65535>}, [2] = {id_a=<1..65535>, numb=<1..8>, id_b=<1..65535>} ...}table2 = {[1] = {id=<1..65535>, c=<1..1000> }, [2] = {id=<1..65535>, c=<1..1000> } ...}Запас по числу элементов [1],[2]... желательно 40+.Пробовал использовать функции amk.save_table, amk.load_table. Я так понимаю, они переводят таблицы в строку, затем обратно.По мере заполнения таблиц получаю либо зависание при сохранении, либо вылет при попытке загрузки (чаще).С нет-пакетами знаком плохо.Может есть другие готовые и более подходящие функции для хранения таблиц? Или можно на упомянутых как-то по-другому организовать таблицы (разбить, исключить подтаблицы...)?Или, если единственный вариант - разбираться с нет-пакетами, - подскажите, какие функции и где (из каких модов) посмотреть.Спасибо. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти