_Призрак_ 11 Опубликовано 21 Декабря 2011 Нет, такое не получится. У тебя есть только два варианта реализации твоей задумки 1. Написать на ассемблере функцию позволяющую скачивать интернет страницы. На практике это практически невозможно 2. Написать dll, которая при помощи перехватчика от alpet/отредактированных длл будет выходить в интернет и скачивать страницу. Оба варианта сложны и мало кто это может сделать Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 6 Января 2012 С одной стороны - да, ошибка, т.к. судя по аргументам, action_remark_activity должен принимать имя НПС. С другой стороны - имя НПС ни где не юзается, поэтому первый аргумент может быть любым; Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 8 Января 2012 (изменено) Тебе же написано: ! Cannot find saved game ~abort:there is no patrol path esc_blokpost_sniper1_smart_escape_blokpost_chasovoy_walk Признайся, сувал под гулаг непися? Если да то пути должны называться так: имя_смарта_имя_пути Изменено 8 Января 2012 пользователем ColR_iT Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 22 Февраля 2012 Озадачился я сегодня такой проблемой. Есть текст произвольной длинны. Нужно узнать сколько строк он займет при выводе на статик. У статика задан параметр компекс_мод=1 У меня было несколько идей: 1. Посчитать какой размер текста и сколько в нем символов \n. Но проблема в том что из-за переменоса слов на другую строку этот метод дает погрешность в несколько строк при большом объеме текста. 2. Фактически переписать метод SetText. Идея такая - резать строку по словам и смотреть помещается ли это слово на эту строку. заодно посчитать символы \n. Но при больших текстах такая система будет работать очень долго, а там как у меня и так много чего в этот момент обрабатывается это не есть хорошо. Заранее спасибо Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 26 Февраля 2012 ColR_iT id в двигателе обозначается чилом типа unsigned short int (2 байта), которое ну никак не может быть равно -1. id у актора = 0 Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 3 Марта 2012 (изменено) Стоит такая задача - нужно из файла (с расширением .xml) считать все. Собственно у Kirag'a был такой вариант в его парсере .xml файлов: local str = r:r_stringZ() if r:r_tell() > size then str = string.sub(str,1,size) end Все логично, но если файл упакован в архив, то я получаю вылет без лога, т.к. в архивах у файлов нет \0 символа, обозначающего конец файла. Тогда я попытался сделать так: local str = "" for i=1,size do str=str..string.char(r:r_u8()) end где size - размер файла в байтах Все работает, но работает невероятно медленно. Если раньше был небольшой лаг, то сейчас у меня игра зависает на пол минуты. Может у кого нибудь есть универсальное решение? Изменено 3 Марта 2012 пользователем _Призрак_ Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 4 Марта 2012 Есть более элегантное решение. Установите себе X-Ray extensions, там есть метод (в каком то из последних ревизий добавили), который возвращает вес инвентаря Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 9 Марта 2012 Видимо проблема в том что почему то Sender - не сталкер. Поэтому я бы тебе посоветовал вставить эту строку перед получением character_name: get_console():execute("news:name="..Sender:name()) И я готов поспорить что имя будет принадлежать не сталкеру Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 15 Марта 2012 (изменено) olaf1 Sorry for English:) Firstly, you have logical error in your timer. You have used level.get_time_hours() and time_global() which return not the same type of time. If you open the Referenceща Function and classes (you can find it on our forum) you will see, that level.get_time_hours() returns time in hours,which show which hour now in game, but time_global() returns time in milliseconds,which show how many milliseconds have passed since starting the program. So, you must change underlying code: if timer == nil then timer = level.get_time_hours() + math.random(3, 6) if timer > 23 then timer = timer - 24 end end if time_global() > timer then on this code: if timer == nil then timer = level.get_time_hours() + math.random(3, 6) if timer > 23 then timer = timer - 24 end end if level.get_time_hours() = timer then Secondly, what this code must do? It so.... I can't translate what I think, but it's realy strange code: for npc,spwan in pairs(respwan_npc)do if spwan == true then respwan_table[alife():create("mar_clear_sky_respawn_1", pos, lvi, gvi).id] = true table.insert(respwan_npc,2,false) end end Please, explain:) And the last for now, May be I now why you have crash witout log. In for construction you use 'spwan' which already name of function. Change for npc,spwan in pairs(respwan_npc)do if spwan == true then on for npc,myspwan in pairs(respwan_npc)do if myspwan == true then and try again. Replay after check Изменено 15 Марта 2012 пользователем _Призрак_ Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 4 Апреля 2012 (изменено) Здравствуйте. Хотел бы прояснить вот какой момент - можно ли в лист вставлять объект не в конец, а в середину. Поясняю: Есть объект типа CUIListBox (тот же CUIListWnd только в ЗП) и нужно в его середину вставить строку с текстом. На Qt есть отличная функция insert, которой можно указать куда вставлять обьект. Однако в сталкере я такого не нашел. Может я слепой? Больно уж не хочится очищать и заного добавлять все обьекты для того чтобы вставить пару строк текста в лист. Изменено 5 Апреля 2012 пользователем ColR_iT Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 2 Мая 2012 А вы уверенны, что вертолет будет в онлайне и его можно будет отловить при помощи таблички db.* или функций level.* ? Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 2 Мая 2012 Да, но обьекты находят в онлайне не в пределе одной локации, а в пределе 150 метров по дефолту (не помню как называется параметр, который отвечает за дистанцию алайфа). Получается что если обьект будет дальше 150 метров то функция не удалит обьект Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 2 Мая 2012 Artos "В онлайне" - зачастую употребляют в смысле "на одной локации", что далеко не всегда одно и то же. А еще обезьяну часто называют человеком. Давайте сразу приучаться говорить правильно. Таблицы db.storage (и иже) хотя и зависят от онлайновых появлений в игре об'ектов, но как раз никак не отражают - в онлайне или в офлайне об'ект. Смотря где. Если смотреть по чистым скриптам то отображают, т.к. обьект записывается в табличку при вызове net_spawn() и удаляется при net_destroy(). Следовательно обьект в таблице, пока он в онлайне. Не так ли? Ну а если кто-то неаккуратно работает с обьектом, то тут уж ничего не поделаешь. Как, в прочем, и не оговорено вообще что за вертушки и при каких условиях собрался удалять panzyuza. Если включить логику и понять что локации сталкера в большенстве своем гораздо больше 150 метров по длине, поэтому тут нужно всегда помнить о том что обьект может быть в оффлайне. И тогда при попытке получить обьект при помощи функций пространства level ничего не даст. *Shoker* Спасибо не знал. Точнее не замечал этого момента Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 5 Мая 2012 (изменено) Как вариант: local id = obj:id() if alife():object(id) then --Существует серверный обьект end Пример взят из оригинальных скриптов Перепрочти вопрос и процитированное в нем, обратив внимание на: "При попытке вызвать любой метод этого объекта будет вылет. ", и в последующем не спеши с ответами из серии "В огороде бузина, а в киеве дядька". --/Artos [x] Изменено 6 Мая 2012 пользователем Artos Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 19 Мая 2012 Buusty А не проще разобраться почему непись зависает и удаляется этим скриптом? Потому как костыль сделать можно, но ты уверен что этот костыль не приведет к вылетам Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 7 Июня 2012 Получить значение поля bio не представляется возможным через функции. Можно конечно написать движковую функцию для того чтобы получать биографию, но врядли ты это осилишь. Поэтому придется парсить весь файл. Есть отличный парсер xml от Kirag, который отлично распарсивает весь файл в табличку, откуда я вынимал значения поля bio. Поищи на этом форуме Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 7 Июня 2012 SkyLoader Да, вполне, но не для всех. Например для ворон не работает Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 14 Июня 2012 Проконсультируйте по такому вопросу: У меня в моде получается очень много рестрикторов, который срабатывают один раз, а потом лежат мертвых грузом. Хотел бы узнать, как правильно удалить спейс_рестриктор чтобы не получить после удаления осложнений. Спейсы не прописаны в in/out рестрикторах у НПС. Подойдет ли здесь простое получение серверного объекта и его удаление через alife():release()? Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 17 Июля 2012 Z3oM О_о На C++ в рантайм можно подключать нескомпилированный код? local sactor = alife():actor() local cactor = level.object_by_id(sactor.id) cactor:give_game_news( "Тест Сообщение\\nЯ вывожу его!!!1", "", Frect():set(0,0,0,0), 1000, 8000 ) Такого крутого получения актора я давно не видел. Наверное никогда На будущее - используй вместо: local sactor = alife():actor() local cactor = level.object_by_id(sactor.id) просто: local actor = db.actor Кстати почитать построчно (если у тебя ЗП) проще так: for line in io.lines("путь_до_файла") do ... do something with line end NaslednikTutti А нельзя просто узнать где выдается инфо и вместе с выдачей инфо выводить сообщение? Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 17 Июля 2012 Там не хендлер. Его нет в Луа. Там нужен именно путь до файла Freedom Поделиться этим сообщением Ссылка на сообщение