Larry76 0 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 Всем здравствуйте! Изъюзал весь поиск,но так и не нашёл ответа на,казалось бы простой вопрос: Что такое мины?Как их спаунить? Какие конфиги за них отвечают. Я имею ввиду простые стационарные мины,спавнящиеся с началом игры. Правильно заданный вопрос- уже половина ответа! Ссылка на комментарий
DiXares 1 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 Larry76, простые мины палочкой вверх? Если да, то это аномалии такие, типа мины. В состоянии idle имеют партикл палочки, а в активном состоянии, когда актор вошёл в зону мины, активное, тоесть хит и партикл взрыва, звук. Спавнить их в sdk или all.spawn, или скриптом. Также спавнить, как и аномалии. Ссылка на комментарий
Larry76 0 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 (изменено) TREWKO.А поподробнее, с примером? Я,в принципе понял,что они действуют наподобии аномалий.Но вот примерчик спавна одиночной мины не помешал бы конечно... Интересно,а в Сигерусе мины как сделаны? (те,которые с началом игры по локации разбросаны.) Изменено 12 Июня 2010 пользователем Larry76 Правильно заданный вопрос- уже половина ответа! Ссылка на комментарий
rnm_016 54 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 Здрасьте. Хотел бы узнать, как спаунить непися на определенной локации (желательно торговца) к примеру на свалке. И через какой инфопоршень его желательно вызывать? FWR modОбитаю здесь и здесь Так же известен, как: ~<Red>~ Где то на компе лежит куча стволов, и весьма хороших, фишка в том, буду ли я выкладывать их еще Ссылка на комментарий
DiXares 1 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 (изменено) Как можно сделать не большую зону, пр наведении на которую курсор будет надпись и при нажатии кнопки действия мы получим функцию. Добавлено через 14 мин.: Larry76, спавнятся как и аномалии. Скриптом я аномалии так и не научился спавнить, скрипт у меня не пашет. Секция мины = zone_mine_field Но вот: function create_anom(section,rad_anom,x,y,z,lv,gv,mode) -- con(section) if gv==nil then gv=db.actor:game_vertex_id() end if lv==nil then lv=db.actor:level_vertex_id() end if pos==nil then pos=db.actor:position() end local p_obj = alife():create(section,vector():set(x,y,z),lv,gv) local packet = net_packet() packet:w_begin(0) p_obj:STATE_Write(packet) packet:r_seek(2) local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local cse_alife_object__unk3_u32 = packet:r_s32() local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then local center = packet:r_vec3() local radius = packet:r_float() else local box = packet:r_matrix() end end local restrictor_type = packet:r_u8() local cse_alife_custom_zone__unk1_f32 = packet:r_float() local cse_alife_custom_zone__unk2_u32 = packet:r_s32() local on_off_mode_enabled_time = packet:r_s32() local on_off_mode_disabled_time = packet:r_s32() local on_off_mode_shift_time = packet:r_s32() local offline_interactive_radius = packet:r_float() local artefact_spawn_places_count = packet:r_u16() local cse_alife_anomalous_zone__unk1_u32 = packet:r_s32() local last_spawn_time_present = packet:r_u8() -- if packet:r_elapsed() ~= 0 then abort("left=%d", packet:r_elapsed()) end packet:w_u16(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_u32) packet:w_s32(level_vertex_id) packet:w_s32(object_flags) if mode~=nil then custom_data = mode end packet:w_stringZ(custom_data) packet:w_s32(story_id) packet:w_s32(cse_alife_object__unk3_u32) packet:w_u8(1) packet:w_u8(0) local sphere_center = vector() sphere_center:set(0, 0, 0) packet:w_vec3(sphere_center) radius = rad_anom packet:w_float(radius) packet:w_u8(restrictor_type) packet:w_float(cse_alife_custom_zone__unk1_f32) cse_alife_custom_zone__unk2_u32 = bit_not(0) packet:w_s32(cse_alife_custom_zone__unk2_u32) packet:w_s32(on_off_mode_enabled_time) packet:w_s32(on_off_mode_disabled_time) packet:w_s32(on_off_mode_shift_time) packet:w_float(offline_interactive_radius) packet:w_u16(artefact_spawn_places_count) packet:w_s32(cse_alife_anomalous_zone__unk1_u32) if mode == nil then packet:w_u8(last_spawn_time_present) end p_obj:STATE_Read(packet, packet:w_tell()-packet:r_tell()) -- add_spot_on_map(p_obj.id,"red_location","Аномалия") return p_obj end Вызвать так: Ниже этого скрипта пиши: function anm_cr() create_anom("zone_mine_field",radius,x,y,z,lv,gv, nil) -- пропиши координаты и радиус. end Сам толком не проверял. Изменено 12 Июня 2010 пользователем TREWKO Ссылка на комментарий
iDreD 5 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 ~<Red>~, function spawn_vintorez() alife():create("имя_нпс_из_файла_character_descr_***",vector():set(-179.04676818848,9.4119186401367,76.59033203125),582891,145) end Где *** имя локации. (-179.04676818848,9.4119186401367,76.59033203125),582891,145) Координаты. В нашём случае спаун на затоне в одном из домов сгоревшего хутора. И через какой инфопоршень его желательно вызывать?Хм... Это как? Вызвать функцию можешь из диалога тегом <action>имя_скрипта.имя_функции_спауна</action> Всё. ЗЫ: И вот это прочти. Много нового узнаешь. Добавлено через 5 мин.: А как удалить предмет из инвентаря скриптом? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 Как и любой другой объект в игре . в цикле по инвентарю ищешь название и удаляешь по id либо просто отбираешь у игрока (посмотри в сторону dialogs.script или amk_mod.script) Ссылка на комментарий
Гость max_max_08 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 alife():create("имя_нпс_из_файла_character_descr_***",vector():set Насколько я знаю секция берется из спавн_секции, а не из character_descr_*** Ссылка на комментарий
iDreD 5 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 А, да, сори, опечатка . Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
rnm_016 54 Опубликовано 12 Июня 2010 Поделиться Опубликовано 12 Июня 2010 а тогда как? FWR modОбитаю здесь и здесь Так же известен, как: ~<Red>~ Где то на компе лежит куча стволов, и весьма хороших, фишка в том, буду ли я выкладывать их еще Ссылка на комментарий
ZeeK 57 Опубликовано 13 Июня 2010 Поделиться Опубликовано 13 Июня 2010 Здрасте народ! Никто не подскажет возможен ли какой нибудь счетчик диалогов? Например если один и тот же диалог например прошел 3 раза то чего нибудь делаем... Не соответствует. N6260 Ссылка на комментарий
sapsan 336 Опубликовано 13 Июня 2010 Поделиться Опубликовано 13 Июня 2010 (изменено) Подскажите, кто знает: 1. как узнать использован ли в данный момент оптический прицел главным героем ? 2. как убрать/вернуть весь индикаторный худ как по клавишам "серый минус"/"серый плюс" ? malandrinus, это для ТЧ. 1. оружие с оптическим прицелом в состоянии прицеливания. 2. level.hide_indicators()/level.show_indicators() эквивалентны -/+, hud_weapon on/off убирает руки с оружием, hud_info on/off не заметил изменений на экране, а остальное не пробовал из-за ненадобности. Изменено 14 Июня 2010 пользователем sapsan Ссылка на комментарий
Malandrinus 615 Опубликовано 14 Июня 2010 Поделиться Опубликовано 14 Июня 2010 Никто не подскажет возможен ли какой нибудь счетчик диалогов? В диалогах можно завести тег action. Вписываешь туда свою функцию и делаешь там что надо. Можно и счётчик завести. 1. как узнать использован ли в данный момент оптический прицел главным героем ? 2. как убрать/вернуть весь индикаторный худ как по клавишам "серый минус"/"серый плюс" ? 1. Уточнить бы вопрос. Надет прицел на текущем оружии или оружие в состоянии прицеливания? Если установленность прицела, то в ТЧ это только через нетпакеты. Начиная с ЧН есть вроде функция у ствола weapon_is_scope 2. Для манипуляции элементами худа можно использовать консольные команды (через get_console():execute()): hud_crosshair on/off hud_crosshair_dist on/off hud_info on/off hud_weapon on/off и функции: level.hide_indicators() level.show_indicators() Что из этого заменяет +/- уже не помню. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
iDreD 5 Опубликовано 14 Июня 2010 Поделиться Опубликовано 14 Июня 2010 Подскажите пожалуйста, АМК таймеры от ТЧ подойдут к ЗП? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
Министр 3 Опубликовано 14 Июня 2010 Поделиться Опубликовано 14 Июня 2010 кровоSTALKER, а почему не пойдут-то? Это всего лишь проверка времени (с последствиями в виде запуска нужных событий) повешенная на апдейт актора. Ссылка на комментарий
ФеНиКс 2 Опубликовано 15 Июня 2010 Поделиться Опубликовано 15 Июня 2010 Как сделать чтобы при подходе ГГ к НПС с определенным SIDом ближе чем на 10метров его(ГГ) бил хит(слабенький) + постэффект и появлялось сообщение что ближе мол нельзя убьёт. Ссылка на комментарий
DiXares 1 Опубликовано 15 Июня 2010 Поделиться Опубликовано 15 Июня 2010 (изменено) ФеНиКс: Впервые я могу что-то предложить: Ну во-первых тебе надо сделать проверку на дистанцию: local flobals = false function bind_hit_static() for a=1,65635,1 do local obj=level.object_by_id(a) if obj and string.find(obj:name(),"имя нпс") and not flobals then if obj:position():distance_to(db.actor:position()) < 10 then local h = hit (); h.power = 1; h.direction = vector():set (0, 0, 0); h.impulse = 0; h.draftsman = obj; h.type = hit.explosion; obj:hit (h); flobals = true end end end end Вот мы и получили хит... по моему))) Теперь надо сделать сообщение, получаем такое: local flobals = false function bind_hit_static() for a=1,65635,1 do local npc=level.object_by_id(a) if npc and string.find(npc:name(),"имя нпс") and not flobals then if npc:position():distance_to(db.actor:position()) < 10 then local h = hit (); h.power = 1; h.direction = vector():set (0, 0, 0); h.impulse = 0; h.draftsman = obj; h.type = hit.explosion; npc:hit (h); flobals = true local sactor = alife():actor() local cactor = level.object_by_id(sactor.id) cactor:give_game_news( "%c[255,255,1,1]Имя того, кто это скажет\\n%c[255,1,255,1]Дальше подойти нельзя! Опасная зона!", "ui\\ui_iconstotal", Frect():set(1245,517,83,47), math.random(1000, 2000), -- задержка появления сообщения. корейский рандом))) 5000 -- сколько продержится это сообщение. ) end end end end Но вот я не понял, эффект какой, пост эффект? Или аним? К сожалению не врубился, как прописать sid... Может: level.object_by_sid(номер сида)? Кстати: Засунул в скрипт test.script это: local lamps_marsh_vr_on = false function bind() local id, obj for id=0, 65535 do obj = level.object_by_id(id) if obj ~= nil and obj:section() == "lights_hanging_lamp" and string.find(obj:name(), "light_alarm_glass_0001") then local hl = obj:get_hanging_lamp() if hl ~= nil then if lamps_marsh_vr_on then hl:turn_on() else hl:turn_off() end end end end end Прописал в биндер сталка: test.bind() То есть, при запуске игры выключается лампочка в подвале у сидора. Но как только запускаю игру, игра идёт нормально... как только сидор махнул рукой - бац вылет! Вылет без лога. Удаляю скрипт--> игра работает без проблем. Результат выключения лампочки увидеть не могу, так как слишком быстро всё происходит. Изменено 15 Июня 2010 пользователем TREWKO Ссылка на комментарий
sapsan 336 Опубликовано 15 Июня 2010 Поделиться Опубликовано 15 Июня 2010 (изменено) Ещё вопрос по худу - как узнать был ли убран худ пользователём с помощью "-"? Если нет явного способа, то можно ли сделать это неявно - проверкой наличия какого-то стандартного элемента худа (например миникарты)? Проверил с помощью проверки на наличие часов: get_hud():GetCustomStatic("hud_show_time") так они всегда присутствуют... malandrinus, а сам элемент есть такой ? "hud_show_time" - это в Солянке часы выводятся... Код local guiHidedManually = not cs get_console():execute("load ~#I#: guiHidedManually="..tostring(guiHidedManually)) get_console():execute("load ~#I#: cs:wnd():IsEnabled()="..tostring(cs:wnd():IsEnabled())) get_console():execute("load ~#I#: cs:wnd():IsShown()="..tostring(cs:wnd():IsShown())) get_console():execute("load ~#I#: cs:wnd():GetWidth()="..tostring(cs:wnd():GetWidth())) get_console():execute("load ~#I#: cs:wnd():GetHeight()="..tostring(cs:wnd():GetHeight())) get_console():execute("load ~#I#: cs:wnd():GetTextX()="..tostring(cs:wnd():GetTextX())) get_console():execute("load ~#I#: cs:wnd():GetTextY()="..tostring(cs:wnd():GetTextY())) всегда возвращает: ! Cannot find saved game ~#i#: guihidedmanually=false ! Cannot find saved game ~#i#: cs:wnd():isenabled()=true ! Cannot find saved game ~#i#: cs:wnd():isshown()=true ! Cannot find saved game ~#i#: cs:wnd():getwidth()=98 ! Cannot find saved game ~#i#: cs:wnd():getheight()=19 ! Cannot find saved game ~#i#: cs:wnd():gettextx()=22 ! Cannot find saved game ~#i#: cs:wnd():gettexty()=1 Изменено 16 Июня 2010 пользователем sapsan Ссылка на комментарий
Malandrinus 615 Опубликовано 16 Июня 2010 Поделиться Опубликовано 16 Июня 2010 sapsan, странно, у меня эта же проверка стабильно выдаёт nil. Но если есть статик, то можно попытаться проверить видимость или положение окна, связанного с ним. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Gektor 0 Опубликовано 16 Июня 2010 Поделиться Опубликовано 16 Июня 2010 Привет всем. Люди добрые, подскажите мне пожайлуста как прикрутить аномалию(например - электра) к конкретному объекту(например - бочка с бензином)? Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти