BadWolf что касается аномалий, обычной функцией ты их не заспавнишь, точнее заспавнишь, но результат тебе уже известен, а так вообще есть скрипт написанный уважаемым singapurom, специальный для спавна аномалий:
Создаём новый файл, например _new_create.script и в нём вписываем нашу функцию:
function create_anom(name_anom, posit_anom, lvid_anom, gvid_anom, radius_anom, power_anom)
local obj = alife():create(name_anom, posit_anom, lvid_anom, gvid_anom)
-----------------------write----------------------
local packet = net_packet()
obj:STATE_Write(packet)
-------------------------load---------------------
-- cse_alife_object
local game_vertex_id = packet:r_u16()
local distance = packet:r_float()
local direct_control = packet:r_u32()
local level_vertex_id = packet:r_u32()
local object_flags = packet:r_u32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_u32()
local spawn_story_id = packet:r_u32()
-- cse_shape
local shape_count = packet:r_u8()
for i=1,shape_count do
local shape_type = packet:r_u8()
if shape_type == 0 then
-- sphere
local center = packet:r_vec3()
local radius = packet:r_float()
else
-- box
local box = packet:r_matrix()
end
end
-- cse_alife_space_restrictor
local restrictor_type = packet:r_u8()
-- cse_alife_custom_zone
local max_power = packet:r_float()
local owner_id = packet:r_u32()
local enabled_time = packet:r_u32()
local disabled_time = packet:r_u32()
local start_time_shift = packet:r_u32()
-- cse_alife_anomalous_zone
local offline_interactive_radius = packet:r_float()
local artefact_spawn_count = packet:r_u16()
local artefact_position_offset = packet:r_u32()
-- se_zone_anom
local last_spawn_time_present = packet:r_u8()
local left = packet:r_elapsed()
if (string.find (name_anom, 'zone_zharka_static') ~= nil
or string.find (name_anom, 'zone_witches_galantine') ~= nil
or string.find (name_anom, 'zone_mosquito_bald') ~= nil
or string.find (name_anom, 'zone_mincer') ~= nil
or string.find (name_anom, 'zone_gravi_zone') ~= nil
or string.find (name_anom, 'zone_buzz') ~= nil )
and left ~= 0 then
abort("left=%d", left)
end
-- cse_shape
packet:w_u8(1) -- количество фигур
packet:w_u8(0) -- тип фигуры: сфера
packet:w_vec3(vector():set(0, 0, 0))
if radius_anom ~= nil then
packet:w_float(radius_anom)
else
packet:w_float(1.0)
end
-- cse_alife_custom_zone
if power_anom ~= nil then
packet:w_float(power_anom)
else
packet:w_float(max_power)
end
packet:w_u32(owner_id)
packet:w_u32(enabled_time)
packet:w_u32(disabled_time)
packet:w_u32(start_time_shift)
'name' --имя(тип) аномалии (в кавычках) pos --позиция спавна аномалии vector():set(x,y,z) lv --левел вертекс позиции спавна gv --гейм вертекс позиции спавна radius --радиус аномальной зоны (в метрах) power --сила действия аномалии (1.0 равняется силе, прописанной в конфиге типа аномалии)
отредактировал(а) Safick: 09-06-2015 19:13 GMT3 час.
Такой вопрос: читал что когда у нпс меняешь визуал, то характеристики костюма меняются(одеваешь на непися экз и он по характеристикам становится сильнее). Если я сделаю новый костюм и пропишу отдельную модельку, скажем вот сюда:
BadWolf данные характеристики защиты только у ботов работают, у главного героя они работать не как не смогут, для этого и настраивается иммунитет костюмов, по этому характеристики будут такие же как и у костюма новичка
Safick Спасибо, с этим я уже разобрался "кустарно"))
Теперь другой проблем: сделал для костюма иконку в новом файле ui_icons_npc1(оригинал ui_icons_npc ) на месте костюма новичка. В ui_icons_npc прописал так:
ui\ui_icons_npc1 --Мой файл
-- координаты текстуры в моём файле
ui\ui_icons_npc --оригинальный файл
-- координаты костюма новичка
Проблема в том что игра походу из двух файлов читать не могёт, и читает из моего нового т.к. он первый.
В итоге и мой костюм и костюм новичка имеют одинаковую иконку.
Можно ли что-нибудь с этим сотворить? Не хотелось бы увеличивать границы файла, заново вставлять иконку и снимать координаты.
З.Ы. В костюмах всё прописано соответственно
BadWolf не получится два файла одновременно воспроизводить, только один основной, с помощью SIE поменяй просто местоположение своей текстуры с новыми координатами, и всё
Ставлю нпс, в лог**50016c9725ff35736f77**k = tesk_look[/code]
Вот. В случае любй опасности, или если он просто сдвинется в другую точку, он обратно не идёт. Побегал, пострелял, и когда успокоился, остановился в точке и всё, на test_walk не идёт. Так же с сидящими, сидят, начали бегать, по бегали, и когда успокоились, тут же сели... как сделать, чтоб он шёл в его прописанную точку обратно?
отредактировал(а) voven: 20-06-2015 21:32 GMT3 час.
#voven : Fagot_ А, блин, не, у меня везде test_walk, test_look, и в way файлах имена такие же, всё совпадает.
Ну и?.. Исправил на test? Сталкер возвращается на место?
Пишу скрипт, надо чтоб несколько нпс удалились по story_id
Попробуй так:
function del_nah()
local sim = alife()
local se_obj = sim:story_object(сид№1)
if se_obj then
sim:release(se_obj, true)
end
local sim = alife()
local se_obj = sim:story_object(сид№2)
if se_obj then
sim:release(se_obj, true)
end
end
отредактировал(а) Fagot_: 23-06-2015 04:08 GMT3 час.
Я давно хотел вас спросить, как художник художника - вы рисовать умеете?..
Как сделать, чтоб нпс не боялись врагов. Не игнорили их, а просто не боялись, бежали вперёд, куда надо, стреляли, а не отбегали фиг знает куда, и не сидели по пол-часа в засаде...
Подскажите пожалуйста - хочу снять координаты в воздухе с помощью demo_record, что бы развесить ржавые волосы в разных местах. Проблема в том, что программы требуют выхода в меню, а если нажать Esc то демо_рекорд выключается. Чем можно снять координаты?
BadWolf, зачем мучиться с демо рекордом, когда на много проще через СДК это всё сделать ;-) А так программ по снятию координат в воздухе нет, только СДК
Fagot_
Посты: 283
Откуда: СССР, Владивосток.
Возраст: 131
Safick А СДК на Ubuntu пойдёт? Fagot_ Спасибо, попробую
1)Подскажите как можно сделать чтобы НПС поднимали полезные предметы в радиусе, ну скажем 10 метров. Иногда они стоят в трёх метрах от хорошей пушки и не поднимают её.
Я вижу это примерно так: в радиусе 10 метров НПС "сканирует" местность, если есть артефакт, оружие(даже если оно хуже чем у него), еда, аптечки и прочее, он разворачивается и идёт к предмету, подбирает, и возвращается к своим делам.
Сам я такое сделать не смогу, но может кто-то уже делал, или где-то было реализовано?
Fagot_
Посты: 283
Откуда: СССР, Владивосток.
Возраст: 131
Здравствуйте, знаю что тема побитая, но никак не могу найти ответа( запрос в гугл получается слишком длинным и он выдаёт уже готовые моды)
Есть где-нибудь урок как сделать что бы артефакты действовали из рюкзака, а так же создание контейнеров для них?
Заранее спасибо
Всем привет, ребзя :-) Такой вопрос: каким образом можно отключить бессмертие Сидоровича, и приведёт ли его убийство к вылету, как это происходит с Барменом? Заранее спасибо :)
Ximerа
Посты: 9103
Откуда: Посёлок Лесной (Рыжий лес)
Возраст: 34
#BesheniyBes :
Всем привет, ребзя :-) Такой вопрос: каким образом можно отключить бессмертие Сидоровича, и приведёт ли его убийство к вылету, как это происходит с Барменом? Заранее спасибо :)
Сидорович и так бессмертный. Это с бармэном делать надо.
Если пойду я долиною смертной тени, то не убоюсь я зла. Потому что я и есть самое страшное зло в этой долине. (с)
BesheniyBes, даже если ты поменяешь ему секцию с m_trader - на обычную stalker, то всё равно будет вылет, так как в его анимации не присутствуют элементы анимации смерти, следовательно при выстреле в него произойдёт вылет
Поставил мод S.T.A.L.K.E.R - Lost Alpha и на чистой игре вообщем спокойно прошел всю лаб Х-18.
Решил поставить патч - STALKER_LostAlpha_patch_1.30013 - вылет в начале загрузки новой игры:
Engine error. Last line in stack trace:
F:\GAMES\S.T.A.L.K.E.R - Lost Alpha\bins\xrRender_R1.dll
Переустановил чистую - но и она теперь не запускается с этим же вылетом..!
МОЙ ЯЩИК
Процессор AMD Athlon II X3 425 2.7GHz/1.5MB/2000MHz AM3
ASUS M3A-H/HDMI AMD 780G, 1xAM2+, 4xDDR2 DIMM, 1xPCI-E x16, встроенный звук: HDA, 7.1, встроенная графика,
Ethernet: 1000 Мбит/с, форм-фактор ATX, HDMI
Память DDR-II DIMM 1Gb PC2-6400 - 3 шт
ASUS Radeon HD 4870 ядро: 750 МГц, память: 512 Мб, GDDR5, 3600 МГц, 256 бит, DVI x2
HDD Samsung 1 TB 7200
HDD Western Digital 750 Гб Caviar Green 5400
БП OCZ 600W StealthXStream Power Supply *EOL
Что делать?
Самое гениальное - это самое простое - но чтобы зделать простое - нужно быть гениальным...
Алексеич попробуй удалить полностью папку с сохраненниями, в lost alphe встречал подобный косяк, вроде уже всё правильно сделал, исправил ошибку, но всё равно вылетает, папку с сохранками снёс и мне помогло. А судя по твоему вылету, игра ругается на рендер 1 (Статическое освещение) можешь попробовать ещё и на динамику поставить, есть вероятность что выкидывать не будет после этого
Но у меня по другому получилось...
Не запускалась то новая игра - и запустил без опций - как есть на англицком-
погонял пару квестов - перестрои опции - на пятый раз игра летать началаа....
Сейчас опять тормоза пошли - не вылетает но тяжко дышит...!
Но вот накопилась куча вопросов - просто файлы с настройками скриптов - потеряны....
Как и где правится оптика - видение врага (красный прямоугольник) как в бинокле..?
Как поправить время обновление ассортимента у торговцев. С (вроде 4 суток) до 1 ?
Как выключить музыку у Сидора - достала..?
* Как выставить оружие в слотах - перебрал кучу вариантов - не идет... зделал ща 40 ячеек...
но получилось несовпадение размера ячейки на рюкзаке и в слоте ствола - там больще -
как правится слот под оружие - начало строчки...
кто знает какая цифра и как отвечает за ствол или нож и т.п. ? № слота и как это выглядит - текст.
ну не могу найти - время перезарядки ствола..?
есть ли своя модель и шкурка на фамильное ружо - а также скрипт на него ?
(есть оригинальный декоративный ствол - делал еще на ТЧ)
добавлено спустя 1 минуту
Ну че ему надо опять...
Expression : fatal error
Function : CScriptEngine::lua_error
File : script_engine.cpp
Line : 75
Description :
Arguments : LUA error: ....r - lost alpha\gamedata\scripts\bind_stalker.script:278: attempt to index field 'object' (a nil value)
отредактировал(а) Алексеич: 14-08-2015 11:05 GMT3 час. Самое гениальное - это самое простое - но чтобы зделать простое - нужно быть гениальным...
Всем Привет!
Если кто знаком со схемой Напарники(не компаньоны) для ТЧ.
Подскажите как адаптировать под 6 патч.
Вылетает при вступлении в диалог с единственной строчкой stack trace.
Единственное что удалось выяснить, что это связано с веткой диалога actor_gives_commands. Если её удалить, то тогда вылета нет, но пропадает возможность отдавать команды отряду - а это важно.
Подозреваю, что это связано с тем , что сам диалог прописан не в XML диалогах , а в самом скрипте actor_need_help.script. Но на 4 патче всё работает без проблем.
Видимо на 6 есть какие то изменения которые влияют на этот кусок скрипта и в нём надо что то адаптировать. Но я даже не представляю что...
кусок скрипта в котором проблема
function init_commands_dialog(dlg)
mylog("init cmd dlg")
local phr, scr
phr=dlg:AddPhrase("Обращаюсь ко всем!",0,-1,0)
phr=dlg:AddPhrase("",1,0,0)
phr=dlg:AddPhrase("Двигаемся в таком порядке...",10,1,0)
phr=dlg:AddPhrase("Если увидел врага, то ",20,1,0)
phr=dlg:AddPhrase("Отбой. ",30,1,0)
phr=dlg:AddPhrase("",11,10,0)
phr=dlg:AddPhrase("",21,20,0)
phr=dlg:AddPhrase("я иду первым, вы за мной уступом.",100,11,0)
phr=dlg:AddPhrase("Никак нет, трщ командир. Выполнить не могу.",1000,100,0)
phr=dlg:AddPhrase("Это ещё почему?",10000,1000,0)
phr=dlg:AddPhrase("Не имею возможности! Туповат-с. Но обещаю исправится.",10001,10000,0)
phr=dlg:AddPhrase("идёте впереди, я сзади прикрываю.",101,11,0)
phr=dlg:AddPhrase("Товарищ командир разрешите обратиться!",1010,101,0)
phr=dlg:AddPhrase("Обращайтесь.",10100,1010,0)
phr=dlg:AddPhrase("Отставить разговорчики в строю!",10101,1010,0)
phr=dlg:AddPhrase("Команду выполнить не могу по причине мозговой травмы. Но скоро выздоровею.",10105,10100,0)
phr=dlg:AddPhrase("Есть!",10106,10101,0)
phr=dlg:AddPhrase("ждите меня здесь.",102,11,0)
phr=dlg:AddPhrase("Есть!",1020,102,0)
scr=phr:GetPhraseScript(phr)
scr:AddAction("actor_need_help.anh_set_state_wait")
phr=dlg:AddPhrase("как толпа баранов.",103,11,0)
phr=dlg:AddPhrase("Есть! Можно вопрос?",1030,103,0)
scr=phr:GetPhraseScript(phr)
scr:AddAction("actor_need_help.anh_set_state_normal")
phr=dlg:AddPhrase("Можно машку за ляжку. А тут... кх-кх. Спрашивай.",10300,1030,0)
phr=dlg:AddPhrase("Не 'можно', а 'разрешите обратиться'. Не разрешаю.",10301,1030,0)
phr=dlg:AddPhrase("А как это толпой баранов?",10395,10300,0)
phr=dlg:AddPhrase("Объясняю для тупых. Это значит организованно бегать вокруг меня взад-назад. Эта тактическая схема была разработана генш... Эээ... Разговорчики в строю! Выполнять приказ!",10396,10395,0)
phr=dlg:AddPhrase("Есть!",10397,10396,0)
phr=dlg:AddPhrase("без изменений, двигаемся как сейчас.",104,11,0)
phr=dlg:AddPhrase("Есть!",1040,104,0)
phr=dlg:AddPhrase("Рядовой, доложить порядок движения.",105,1,0)
phr=dlg:AddPhrase("Порядок движения - ждать здесь, трщ командир.",1050,105,0)
scr=phr:GetPhraseScript(phr)
scr:AddPrecondition("actor_need_help.anh_movstate_is_wait")
phr=dlg:AddPhrase("Молодец! Чего нам теперь ещё не хватает?",10500,1050,0)
phr=dlg:AddPhrase("Банки бодрящего и соленой рыбки, господин капрал! Э... Трщ командир!",10595,10500,0)
phr=dlg:AddPhrase("Ну мы это... как стадо баранов, в общем.",1051,105,0)
scr=phr:GetPhraseScript(phr)
scr:AddPrecondition("actor_need_help.anh_movstate_is_normal")
phr=dlg:AddPhrase("Никак нет! Приказа не имеем!",1052,105,0)
scr=phr:GetPhraseScript(phr)
scr:AddPrecondition("actor_need_help.anh_movstate_is_unknown")
phr=dlg:AddPhrase("убей вражину.",200,21,0)
phr=dlg:AddPhrase("открывай огонь только после меня.",201,21,0)
phr=dlg:AddPhrase("открывай огонь только если тебя заметили.",202,21,0)
phr=dlg:AddPhrase("реагируй как было сказано.",203,21,0)
phr=dlg:AddPhrase("Приказываю доложить ваши действия при появлении врага!",204,21,0)
-- scr=phr:GetPhraseScript(phr)
-- scr:AddAction("actor_need_help.show_dialog")
end
function show_dialog()
-- local spwn=ui_cheat.cheat(get_hud())
-- spwn:SetClGame(level.main_input_receiver())
-- level.start_stop_menu(spwn,true)
end
local cur_movstate=0
function anh_set_state_wait()
if db.tc then
db.tc:set_center_point(db.actor:position(),db.actor:level_vertex_id())
end
cur_movstate=1
xr_logic.pstor_store(db.actor,"wait_level",level.name())
store_movstate()
end
function anh_set_state_normal()
if db.tc then
db.tc:set_center_point(nil,nil)
end
cur_movstate=2
xr_logic.pstor_store(db.actor,"wait_level",nil)
store_movstate()
end
function anh_movstate_is_wait()
return cur_movstate~=nil and cur_movstate==1
end
function anh_movstate_is_normal()
return cur_movstate~=nil and cur_movstate==2
end
function anh_movstate_is_unknown()
return not (anh_movstate_is_wait() or anh_movstate_is_normal())
end
function store_movstate()
xr_logic.pstor_store(db.actor,"movstate",cur_movstate)
end
function get_movstate()
if db.actor then
return xr_logic.pstro_retrieve(db.actor,"movstate",0)
end
return 0 -- ХЗ
end
function restore_scheme_state()
local movstate=xr_logic.pstor_retrieve(db.actor,"movstate",0)
if movstate==1 then
anh_set_state_wait()
elseif movstate==2 then
anh_set_state_normal()
else
anh_set_state_normal()
end
end
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.