Перейти к контенту

Рекомендуемые сообщения

Народ кто знает как привязать к выбросу какую-нибудь функцию (например спавн плоти по координатам ..., ..., ...)? Сам скрипт спавна напишу легко, а привязать к выбросу не получается.

И ещё как заспавнить в определённую точку рандромные арты? Слышал о таблицах спавна но пользоватся не умею.

Ссылка на комментарий

bogdan.dm, на счет выбросов не знаю, а вот про спавн рандомных артов могу подсказать, тебе нужен к примеру такой скрипт:

 

function random_spawn()
local tab_art = {} -- сюда запишешь все секции артефактов, отсюда возьмешь artefacts.ltx
local sect_art = tab_art[math.random(1,#tab_art)]
alife():create(sect_art, вертексы и координаты сам пропиши)
end

Ссылка на комментарий

bogdan.dm, создай скрипт (например spawn_surge) и напиши в него свою функцию спавна "чего-либо" (пусть она будит называться spawn_mut). Далее открой файл в scripts/surge_manager. Найди это:

if(level.name()=="zaton") then

xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_2")

elseif(level.name()=="jupiter") then

xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_phase_2")

elseif not has_alife_info("pri_b305_fifth_cam_end") then

xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_surge_phase_2")

end

end

И поменаяй на это:

if(level.name()=="zaton") then

xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_2")

spawn_surge.spawn_mut()

elseif(level.name()=="jupiter") then

xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_phase_2")

spawn_surge.spawn_mut()

elseif not has_alife_info("pri_b305_fifth_cam_end") then

xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_surge_phase_2")

spawn_surge.spawn_mut()

end

end

 

 

P.S. Как-то так. ;)

Изменено пользователем Jurok
Ссылка на комментарий

Люди помогите столкнулся с такой проблемой скачал ai пак 3 в 1 с этого форума который содержит -АИ pack - xStream

-AI additions - Rulix (Bak) -AI modification - Monnoroch -Собирательство. - Red75 суть проблемы добавляю некоторые амкшные скрипты и идёт вылет я их не то что добавляю я их даже в bind_stalker.script не прописал но почемуто вылетает вот с таким логом

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ... of chernobyl\gamedata\scripts\blowout_scheme.script:80: attempt to call field 'blowout_type' (a nil value)

в скриптах я :dash2: так что сам догнать не могу

Изменено пользователем n6260

Реклама любых модов бесплатно на моём

сайте писать в личку

Ссылка на комментарий

:dash2:serega-gamer,

Ну, в скриптах я тоже дуб дубом, но посоветовать могу лишь одно - качай пак по этой ссылке (пост №453):

http://www.amk-team.ru/forum/index.php?sho...7726&st=440

И фикс к нему по этой:

http://narod.ru/disk/24452881000/xrs_grenade.script.html

Он более полный и лучший, чем 3 в 1.

А вылетает из-за скрипта amk_mod и функции в нём blowout_type, проблема в ней... Дальше я не знаю, ибо :dash2:

Изменено пользователем Disord
Ссылка на комментарий

Уважаемые, нужна помощь.

И так что хочу. – через диалог спавню рюкзак тайник ( treasure_1), а в нем ЗАПИСКА.( zapisk_1)

Дак вот, как сделать скриптом что б при взятии записки ГГ ( zapisk_1) из тайника ( treasure_1) спавнился следующий тайник ( treasure_2) и ещё нужна какая то проверка чтоб при вылаживании в нычку записки ( zapisk_...) и при её взятии опять – тайник ( treasure_...) НЕ СПАУНИЛСЯ.

Смысл затеи в том, что б тайники (рюкзаки) появлялись постепенно при нахождении записок, если не нашел zapisk_1 , то treasure_2 не заспаунится. Не нашел zapisk_2 , то treasure_3 не заспаунится и т.д. . Всего будет пока 14 или 15 тайников, соответственно и столько записок.

Я вообще в этом не понимаю, как написать такой скрипт и куда его вставлять. Конечно сделать это через диалоги проще (это могу), но не хочу задействовать НПС (всё должно зависить от игрока.)

П.С. Да и на счет проверки - может инфопоршн выдавать определённый, а при взятии его спрашивать, если есть не спавнить тайник, а нету спавнить. Но это всё нужно сделать именно скриптом.

Может кто знает, может где уже это реализованно - то ссылочку.

А так буду рад любой помощи.

 

Stalk15 , Garry_Galler - Спасибо (плюсы ушли в "репу"), дальше докумекаю, с помощью друга. Скрипты для меня - как покрытые мраком.

Изменено пользователем Valerich
Ссылка на комментарий

Valerich

if db.actor:object("zapisk_1") and not has_alife_info("take_zapisk_1_complete") then --  если мы взяли записку 1 тоько первый раз
--/Спавним тайник 2
   db.actor:give_info_portion("take_zapisk_1_complete")  --/выдаем инфопоршень, чтоб при следующем взятии этой записки тайник еще раз не спавнился
end
if has_alife_info("take_zapisk_1_complete") and db.actor:object("zapisk_2") and not has_alife_info("take_zapisk_2_complete") then --  если мы находили записку 1 и взяли записку 2 тоько первый раз
--/Спавним тайник 3
   db.actor:give_info_portion("take_zapisk_2_complete")  --/выдаем инфопоршень, чтоб при следующем взятии этой записки тайник еще раз не спавнился
end

И так же по аналогии с остальными тайниками.Не забудь создать инфопоршены take_zapisk_[номер записки]_complete.Функцию ставить на апдейт.

Изменено пользователем Stalk15
Ссылка на комментарий

Valerich

Я не знаю как ты там спавнишь свои тайники - но я бы так сделал:

 

Создаем такую вот табличку с данными:

local tTreasure={  -- //в качестве ключа пишем имя тайников по секции - число тайников неограничено
treasure_1 ={1,2,3,4,5},  -- //вместо пяти  данных цифр в каждой субтаблице  пишем последовательно координаты по x,y,z и два вертекса
treasure_2 ={1,2,3,4,5},
treasure_3 ={1,2,3,4,5},
treasure_4 ={1,2,3,4,5},
}

 

--// вызов данной функции ставим на каллбек on_take - то есть в тело метода function actor_binder:on_item_take (obj) в bind_stalker.script

--// вызов должен быть в таком виде имя_файла.TreasureSpawn(obj)

function TreasureSpawn(obj)
--// получаем взятый объект по секции
local section  = obj:section()
--// если наш объект и не был включен одноименный инфопоршень, то спавним тайник используя данные из таблицы
if section and string.find(section, "zapisk_") and not has_alife_info(section) then
local key = "treasure_"..string.sub(section, -1)+1   --// добавим +1  чтобы спавнился тайник номером на 1 больше
alife():create(tTreasure[key], 
tTreasure[key][1],
tTreasure[key][2],
tTreasure[key][3],
tTreasure[key][4],
tTreasure[key][5])
--// включаем поршень чтобы тайник не спавнился повторно
db.actor:give_info_portion(section)
end
end

 

--// инфопоршни для каждого тайника должны быть одноименными с именами записок- так проще будет ими оперировать

Изменено пользователем Garry_Galler
Ссылка на комментарий

Народ возникла проблема:

Через 3Д МАКС выщитал координаты расположения аномалий (хочу сделать большую аномалию в виде пузыря).

0_492c7_b464cf27_L.jpg

 

Как по XYZ посчитать lvid и gvid? Это вообще реально без беготни по локации и телепортации в каждую из 49 точек?

Ссылка на комментарий

Здравствуйте.

Ковырялся в скрипте bind_stalker

Там есть функция function actor_binder:update(delta)

внутри неё есть различные разделы if

Я хочу вынести

    if travel_func ~= nil then
        travel_func()
    end

в отдельный скрипт.

 

Как это правильно сделать?

Сколько я не пробовал, вылетает с ошибкой

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : .... - Зов Припяти\gamedata\scripts\v150.script:8: attempt to index global 'self'
(a nil value)

Срочно ищу опытного скриптёра и модельера, нужна помощь в создании мода.

Готовность мода Новый мир 85%.

Мод Огнемёт для ЗП v1.0 Скачать

 

 

Ссылка на комментарий

Люди, а каким образом можно реализовать ЕДИНИЧНОЕ высказывание сталкера при движении (Т.е. скажет он указанную фразу только 1 раз.)? Прописал "s=bridge_soldiers..." (БЕЗ |SC) , но в игре Непись идет и орет это постоянно. Обидно как бы.

Ссылка на комментарий

Приветствую всех.

Подскажите пожалуйста, как скриптово глав героя из машины выкинуть.

Заранее спасибо.


Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу.

 

Ссылка на комментарий

serega-gamer, возьми из амк мода(amk_mod.script если память не изменяет, там переписанные нет пакеты, ещё бери логику и сам файл с секцией спавна бтра)

 

Gektor...вроде никак, но не утверждаю

Ссылка на комментарий

Не подскажете как получить имя переменной как строку ?

Хочу усовершенствовать функцию дампа таблицы, чтобы она выводила имя таблицы, которая передается для вывода дампа.

 

Наверное проще добавить второй параметр и при вызове копипастить переменную-таблицу в него как строку по типу amk.dump_table(tbl, "tbl")

Изменено пользователем sapsan
Ссылка на комментарий

sapsan,

Уточни пожалуйста задачу. Ведь получить переменную, не указав её имя, невозможно. А имя - это и так строка.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Народ, такой вопрос: заход и выход из машины осуществляется клавишей действие, можно ли заставить сработать функцию действия без нажатия кнопки назначиной на эту функцию? Если можно, то как?

Заранее спасибо.


Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу.

 

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   2 пользователя

×
×
  • Создать...