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

[SoC] Ковыряемся в файлах


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

elfog

Простой alife():create тут не спасет, надо в нет-пакете в момент спавна поковыряться.

Например вот так: (взято из старой темы давным-давно, автора к сожалению не помню, не со всеми аномалиями работает 100% корректно, но с какими именно - тоже не помню)

  Функция спавна аномалий (Показать)

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Братья Сталкеры!!!

Уж простите что задаю сей вопрос не проситав всю тему (может подобный вопрос уже был), но просто на работе нет возможности прочитать её всю.

Вопрос:

Каким образом неписям можно присвоить свои имена? Тоисть, насколько я понимаю в файлах character_desc_.....xml прописаны сами неписи, а вот где находяться их имена и как их можно заменить на свои?

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

Буду примного благодарен за подробную инструкцию!!!

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

crezyhohol, лучше менять имена только для тех сталкеров, которые спавнятся в одном экземпляре.

Описания есть в папке /config/text/rus. Там как для не уникальных есть специальный генератор имен (большое количество

сталкеров имеют однотипный конфиг). Поэтому если ты не хочешь иметь кучу "Васек Резаных" лучше

создать отдельного персонажа (см. статью добавление сталкера в игру), в т.ч. скриптом и дескрипшне

уже пишешь его уникальное имя.

Изменено пользователем AK-103
  Мой конфиг (Показать)
Ссылка на комментарий

Вот наконец-то руки дошли

 

  Код (Показать)
Изменено пользователем elfog

morda. cod4 player

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

elfog

Как уже было сказано, спавнить через create аномалию без правки пакетов нельзя. Спавни через функцию, которую выложил Kirag, с передачей параметров.

Если непонятно, что передавать, то поясню -

anom_name - название аномалии

plosh - радиус аномалии

position - позиция по x y z, передавать вот так - vector():set(x, y, z)

level_vertex_id - левел вертекс

game_vertex_id - гейм вертекс

powers_a - мощность аномалии

time_dangeros - это передавать необязательно, пользы от него я не заметил.

 

Вот пример такого вызова:

anoms.an_spawn("zone_witches_galantine", 4, vector():set(100, -20, 50) , 16437, 16, 1)

 

Собсно, тоже самое я писал в теме КоП на предпоследней странице.

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

Я спавню через спавн меню, которое вызывается походу игры через F1. Мне надо чтобы аномалия спавнилась в нескольких метрах от ГГ. Значит position не подходит - аномалия будет спавнится каждый раз в одном и том-же месте.

 

За радиус появления предмета (аномалии), наверное отвечают эти строки

 

  наврное вот это (Показать)

morda. cod4 player

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

Сталкеры, подскажите, пожалуйста, как сделать так, чтобы после каждого выброса в определенных мною местах, спаунилось определенное колличество каких-нибудь монстров?

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

elfog

 

Ну, приступим. Не знаю, что за спавн-мод у тебя стоит, но не важно, работаем с тем, что есть :)

 

Ты создал функцию

function spawner:spawn_zone_mincer_weak()
    self:spawn_item("zone_mincer_weak", 3)
end

запускающуюся при нажатии на кнопку. Допустим, до этого момента все правильно - с меню у меня хуже, чем преотвратно, проверить не могу.

Обрати внимание, что параметры спавна - секция объекта и расстояние перед носом актора, на котором появится объект - задаются прямо здесь. Вот здесь же и зададим все остальные нужные аномалии параметры. Первым делом убираем из нее строку self:spawn_item("zone_mincer_weak", 3) - спавнить будем другой функцией: an_spawn(anom_name,plosh,position,level_vertex_id,game_vertex_id,powers_a,time_d

angeros)

 

Пойдем по пунктам:

  Раскрывающийся текст (Показать)

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Kirag

Небольшая поправочка. Аномалии zone_mincer_weak в ЗП нету. Я проверил все файлы аномалии, вот такая табличка существующих у меня вышла:

local zones_mine = {
    "zone_mine_acidic", -- зелёный пар с кислотой
    "zone_buzz", -- тоже кислота
    "zone_mine_electric", -- электра, только видно хуже (как в 'Железном лесу')
    "zone_witches_galantine", -- электра из тч
    "zone_mine_gravitational_strong", -- ну тут понятно
    "zone_mine_thermal", -- жарка
    "zone_zharka_static" -- тоже самое
}

Также есть ещё и поля (4 вида), не атакуют, но придают эффект при приближении.

 

Vano_Santuri

Всё это конечно хорошо, только смысла от этих weak, average и strong в этом случае нету. Ведь сила аномалии и радиус и так указываются скриптом.

 

Тфу блин, тема то по ТЧ. Kirag извиняюсь за ложную поправку.

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

Может мою табличку посмотришь?

 

local anomalies = {"zone_mine_acidic_weak","zone_mine_acidic_average","zone_mine_acidic_strong",
"zone_mine_acidic_big","zone_mine_chemical_weak","zone_mine_chemical_average","zone_mine_chemical_strong",
"zone_buzz_weak","zone_buzz_average","zone_buzz_strong","zone_mine_electric_weak","zone_mine_electric_average",
"zone_mine_electric_strong","zone_witches_galantine_weak","zone_witches_galantine_average","zone_witches_galantine_strong",
"zone_mine_gravitational_average","zone_mine_gravitational_weak","zone_mine_gravitational_big","zone_gravi_zone",
"zone_mine_thermal_weak","zone_mine_thermal_average","zone_mine_thermal_strong","zone_mine_steam_weak",
"zone_mine_steam_average","zone_mine_steam_strong","zone_zharka_static_weak","zone_zharka_static_average",
"zone_zharka_static_strong"}

Ну как?

Что-то кончается, что-то начинается...

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

Я походу уже всех утомил, но что писать в an_spawn. Просто у меня снова встал вопрос с position.

Можете привести конкретный пример для zone_mincer_weak значениями, а не

an_spawn(anom_name,plosh,position,level_vertex_id,game_vertex_id,powers_a,time_danger
os)

 

 

Ворос № 2, что делать со строкой

self:AddCallback("btn_zone_mincer_weak", ui_events.BUTTON_CLICKED, self.spawn_zone_mincer_weak, self)

morda. cod4 player

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

Darien В ЗП, возможно, аномалии другие, я в нем не копался, но тема ж про ТЧ! По умолчанию, и вопрос считаем про ТЧ.

 

elfog, я ж именно конкретный пример и привел в последнем спойлере, все эти local там стоят неспроста - именно в них и задаются параметры аномалии перед спавном. Имена переменных в них абсолютно намеренно совпадают с именами аргументов функции, это сделано именно затем, чтобы значения, ранее определенные, сами подставились в функцию спавна.

В переводе на русский, с моими цифрами, результат выполнения функции "spawner:spawn_zone_mincer_weak()

" будет следующий: "заспавнить аномалию "zone_mincer_weak" радиусом 4 метра и мощностью 500 у.е. перед носом актора так, чтобы ближайший край аномалии был от него на расстоянии 4 метра" Если хочешь все то же самое, но в одну строчку, это будет выглядеть так:

an_spawn("zone_mincer_weak",4,vector():mad(db.actor:position(),db.actor:direction(),8),db.actor:level_vertex_id(),db.actor:game_vertex_id(),500,nil)

 

 

По второму вопросу - хоть я и плохо понимаю в создании меню, но по-моему тут все нормально, оставь ее как есть. Эта строка гласит "при нажатии на кнопку "btn_zone_mincer_weak" выполнить функцию "spawner:spawn_zone_mincer_weak()

" "

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Kirag, Сделал, вроде, всё как надо

  То что вышло у меня (Показать)
Изменено пользователем elfog

morda. cod4 player

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

elfog

Если вот эта строка у тебя должна вызывать спавн аномалии, то замени её

self.ui_anomalii_menu_dlg = ui_anomalii_menu.spawner()

На вот эту

self.ui_anomalii_menu_dlg = ui_anomalii_menu.spawn_zone_mincer_weak()

 

Вариант "чисто попробовать", я не знаю, как у тебя там сейчас функции называются, и не видя полного кода, который у тебя в данный момент, не особо то что скажешь.

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

Darien, Скоро совсем запутаюсь. Итак...

 

в ui_spawner могут быть интересны строки: конец строк self:register.... ,конец строк self:addcallback... и самый почти самый конец, где фигурирует функция function spawner:OnButton_anomalii_menu()...

 

Извеняюсь что очень много

 

function spawner:OnButton_anomalii_menu()

 

  ui_spawner (Показать)

morda. cod4 player

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

elfog, да-а-а... Прикольнулся ты знатно в функции spawner:spawn_zone_mincer_weak() :) Либо не нужны все local, либо не нужно те же значения задавать в вызове функции an_spawn. Впрочем, плевать, работать будет и в таком виде.

 

Но, посмотрел файл ui_anomali_menu.script, а где же сама функция an_spawn? Ты пытаешься вызвать несуществующую функцию, как результат - должно послать, правда, не уверен, что именно в той форме, что послало тебя. Но функцию допиши обязательно, без нее работать 100% не будет.

 

Лог переводится (на понятный, а не дословно на русский!) так, что какая-то лажа с файлом ui_anomalii_menu, из-за которой файл не воспринимается. Внимательно проверь, все ли скобки правильно закрыты, end-ы проставлены, везде ли стоит then после if, не перепутал ли операторы сравнения и присваивания. Может еще какой вариант найдется...

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

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Так?

 

  Функция (Показать)
Изменено пользователем elfog

morda. cod4 player

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

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

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

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

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

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

Войти

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

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

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...