function НАЗВАНИЕ(position, total)
alife():create("что_хотим_заспаунить",vector():set(координаты_по_X, координаты_по_Y, координаты_по_Z),Левел_вертикс,Гейм_вертекс)
end
erlik
все сделал как ты сказал но серавно вылет
Expression : no_assert
Function : CXML_IdToIndex::GetById
File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h
Line : 112
Description : item not found, id
Arguments : storyline_actor_start
Все ,что то пишут в своих подписях а я возьму и не НАПИШУ!!!
04-10-2009 14:50 GMT1 час #1053448 Цитата Править Удалить:[x]
erlik
все сделал как ты сказал но серавно вылет
Expression : no_assert
Function : CXML_IdToIndex::GetById
File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h
Line : 112
Description : item not found, id
Arguments : storyline_actor_start
Все ,что то пишут в своих подписях а я возьму и не НАПИШУ!!!
пример функции для активации вызова по условию
function activate()
if level.name() ~= "l01_escape" and -- условие для спавна - имя загруженного уровня
not has_alife_info("info") then -- имя поршня, который будет ключом для вызова - выдаешь в диалоге - и
непись спавнится если уровень правильный.
return
else
имя_файла.имя_функции()
end
end
ставишь имя функции на апдейт в функцию эктор_биндер_апдейт (дельта)
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
все сделал как ты сказал но серавно вылет
Expression : no_assert
Function : CXML_IdToIndex::GetById
File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h
Line : 112
Description : item not found, id
Arguments : storyline_actor_start
Все ,что то пишут в своих подписях а я возьму и не НАПИШУ!!!
Сталкер Монолита
Сделай так:
1 Найди скрипт ui_main_menu
2 Открой скрипт блокнотом
3 Впиши в конце скрипта следующие
function main_menu:OnButton_credits_clicked()
local text
local vid
local gvid
local a = vector()
local text
a = db.actor:position()
vid = db.actor:level_vertex_id()
gvid = db.actor:game_vertex_id()
text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid
news_manager.send_tip(db.actor, text, nil, nil, 30000)
end
4 После этого сохраняешь скрипт и
5 Заходишь в игру и идешь на нужное место.
6 Потом заходишь в меню и нажимаешь кнопку создатели
7 После этого прозвучит звук.сигнал
8 После сигнала выходишь из меню
9 И видишь все нужные координаты
dan8
да нафиг это?!!!! Я тебе про info_portions , а ты мне что...
ну нельзя же просто тупо копировать все что написано в статье - статья вообще паршивая - куча ошибок и всякой лабуды.
там перепутаны местами имя функции и имя файла в примере вызова функции из файла info_portions -- или у тебя напутано - хрен разберешь. Думай прежде чем делать.
если у тебя esc_unik_npc - имя файла,
а esc_men_npc - имя функции то пиши так esc_unik_npc.esc_men_npc
и подчисти за собой на форуме.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
[H.O.Y]
я понятия не имею в каком виде у тебя твоя лока - рыжий лес - подключена она к игре или нет, есть на ней левел ченджеры или нет, скомпилирована или нет.
поэтому прочитай это и сам думай что тебе надо сделать, а что не надо:
Далее прописываем в конфигах свой уровень. Прописать надо в файлах game_graphs.ltx, game_levels.ltx, game_maps_single.ltx
4. Теперь переходим к работе с аиврапером. Можно или через команду cmd выйти в папку с аивраппером, или Тотал Коммандером открыть эту папку. И потом вводить в командную строку нужные команды.
5. Сначала надо ввести команду aiwrapper -split_spawns. Зачем - читаем ридми к аиврапперу.
6. А потом выполнить последовательно команды из ридми от Бардака для аивраппера.
Цитата
3) Сборка черновой сетки ИИ:
> aiwrapper -draft -f <имя_уровня>
На выходе: gamedata\levels\<имя_уровня>\level.ai.
4) Проверка связности сетки ИИ:
> aiwrapper -verify <имя_уровня>
В случае ошибки поправить ячейки в LE и повторить с п.2.
5) Просчёт укрытий для сетки ИИ. Предварительно необходимо произвести
сборку геометрии для получения build.cform (xrLC, здесь это не
рассматривается). Команда:
> aiwrapper -f <имя_уровня>
Вообще, этот шаг необязателен на ранних этапах тестирования карты.
6) Сборка ИИ-графа:
> aiwrapper -g <имя_уровня>
На выходе: gamedata\levels\<имя_уровня>\level.{graph|gct.raw}
7) Склейка ИИ-графов карт в глобальный игровой граф:
> aiwrapper -m
На выходе: gamedata\game.graph и gamedata\levels\*\level.gct
(см. ниже для случая с картами без исходников)
8) Сборка all.spawn
> aiwrapper -s
На выходе: gamedata\spawns\all.spawn
полная версия статьи здесь
http://www.amk-team.ru/forum/index.php?showtopic=5533
под спойлером
Подключение нового уровня к игре (небольшой тутор)
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
спасибо.
вот такой ещё вопрос:
есть логика. в логике есть такая строка:
on_actor_dist_ge = 30| %+passage_to_story_end%
она делает так, чтобы если игрок отошёл от НПС дальше чем на 30 метров, то нпс выдаёт инфопоршнь.
а мне надо сделать, чтобы при тех же условиях НПС инфопоршнь не выдавал а ЗАБИРАЛ.
как это сделать? что нужно изменить?
такой вопросец.
Можете показать на примере простой логики как сделать чтобы один раз проигрывалась анимация?
А другая скажем два раза.
Как это сделать.?
а можно какнить сделать нпса - обычного человека - с моделью монстра?
добавлено спустя 5 минут
есть такая функция:
function on_stalker_death(victim_, killer_)
if (victim_ == nil) then
return
end
local m_killer = ""
local m_killer_s = ""
local m_victim = ""
local victim
if (isGameObject(victim_)) then
victim = victim_
else
victim = get_obj(victim_.id)
end
local killer
local m_name = get_npc_name(victim)
local m_level = get_level_name(get_object_levelname(victim))
local m_comm = get_npc_community(victim)
local s_comm = ""
local m_post_message = ""
if m_comm and comm[m_comm] then
s_comm = " ("..comm[m_comm]..")"
end
if (killer_) then
if (isGameObject(killer_)) then
killer = killer_
else
killer = get_obj(killer_.id)
end
if (_g.IsMonster(killer)) then
m_killer_str = get_monster_name(killer, 2)
if math.random() < post_message_prob then
m_post_message = messages_monster[math.random(table.getn(messages_monster))]
end
elseif (IsAnomaly(killer)) then
m_killer_str = get_anomaly_name(killer, 1)
if math.random() < post_message_prob then
m_post_message = messages_anomaly[math.random(table.getn(messages_anomaly))]
end
elseif (_g.IsStalker(killer)) then
m_killer_str = "травма, несовместимая с жизнью"
if math.random() < post_message_prob then
m_post_message = messages_kill[math.random(table.getn(messages_kill))]
end
else
m_killer_str = "причина смерти - неизвестна"
end
end
if (m_killer_str==nil) then m_killer_str = "причина смерти - неизвестна" end
local m_string = m_name..s_comm..". "..m_level..", "..m_killer_str.."."
local news_text = "%c[255,160,160,160]".."Погиб сталкер:".."\\n".."%c[default]"..m_string
db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(0,658,83,47), 10*1000, 15*1000)
if (m_post_message ~= "" and filter(victim)==false) then
local fname = fnames[math.random(table.getn(fnames))]
local sname = snames[math.random(table.getn(snames))]
local from = fname.." "..sname
local news_text = "%c[255,160,160,160]"..from.."\\n".."%c[default]"..m_post_message
db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(0,658,83,47), math.random(15,40)*1000, 15*1000)
end
end
как сделать чтобы при её выполнении проигрывался заданный звук (в фоновом режиме)?
добавлено спустя 1 минуту
как можно сделать выполнение скрипта рандомно?
то есть существует скрипт. нужно чтобы примерно с заданной переодичностью он рандомно выполнялся.
как такое сделать?
на крайний случай можно не рандомно, а с чётко заданной переодичностью
отредактировал(а) moskvin: 04-10-2009 16:51 GMT3 час.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.