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

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


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

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

 

Добавлено через 2 мин.:

karavan, я сталкивался с проблемой появления сообщений,привязанных к инфопоршнам-при загрузки новой локации они появлялись снова...у тебя такого не происходило?

 

 

Изменено пользователем Костя.н.ы.ч

Иду по болоту,темно и гроза+туман...играет страшная музыка...черт аномалия...ф7...странные звуки в кустах...очередь и бежать...догоняет...чертова экза наемников...слышу его вой,сомнений нет-кровосос...на ходу вставляю батарейки в фонарик,включаю...передо мной стоит ОН!...как же он красив при освещении молнии...черт с ним,ф7...как бы до бара добраться?...удается модик...

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

 

Добавлено через 2 мин.:

karavan, я сталкивался с проблемой появления сообщений,привязанных к инфопоршнам-при загрузки новой локации они появлялись снова...у тебя такого не происходило?

 

 

А в самой солянке немогли ввести какие либо ограничения на такое читерство. Архара чего-то говорил про какие-то новые "гадости"

Там, где пехота не пройдет, и бронепоезд не промчится

Pilot на пузе проползет, и ничего с ним не случится

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

Не знаю,я не играл в моды,кроме прибоя и своих....А как они это сделали???Все берется в каких то внутренних архивах?По-моему,это очень сложно реализовать,да и зачем тратить лишние метры на ненужные вещи?Они думают что таким способом уберегут свое детище от рук "плагиатщиков"?Все равно кто нибудь взломает из систему,насколько она бы не была сложна.

 

Добавлено через 36 мин.:

Помогите с менеджером продаж тайников для ТЧ-я создаю таблицу с названиями,прописываю в выдаче:

 

.....(treasure_table[match.random(1)])

 

Но не работает:(.Почему то всегда выдает первый тайник из списка-кто работает с таблицами,помогите пжл)

Изменено пользователем Костя.н.ы.ч

Иду по болоту,темно и гроза+туман...играет страшная музыка...черт аномалия...ф7...странные звуки в кустах...очередь и бежать...догоняет...чертова экза наемников...слышу его вой,сомнений нет-кровосос...на ходу вставляю батарейки в фонарик,включаю...передо мной стоит ОН!...как же он красив при освещении молнии...черт с ним,ф7...как бы до бара добраться?...удается модик...

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

Костя.н.ы.ч, делай рандом тогда правильный.. match.random(1) рандомить единицу, а вот если match.random(1,15) тогда будет рандом от одного до 15...

 

По проверке в солянке, они могли сделать проверку некоторых вещей через функции. Но такое занятие слишком помой-му муторно.

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

 

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

 

На придмет можно по идеи наложить колбэк, а можно уточнить.. При каком моменте функция должна заработать. Можно к примере сделать при выбросе, можно при съедение, можно обычном подборе объекта. Куча вариантов, определитесь.

 

dan, не согласен.. Не все "профи" берут деньги. Точнее, редко кто... И то по очень определенным вопросам.

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

Жизнь определение, и не каких целей у нее нету. Жизнь безсмысленна.

Смысл вкладываем мы, и цели придумамываем...

И в подписи у меня не красный. а иной цвет.

Ссылка на комментарий
Nekt, Спасибо огромное,дома попробую!(А то что я рандом делал неправильный,оно и понятно-скрипты я изучаю без всякой сторонней помощи,а в моддинге всего три месяца).А таким способом выдавать точно всегда будет один тайник?

Иду по болоту,темно и гроза+туман...играет страшная музыка...черт аномалия...ф7...странные звуки в кустах...очередь и бежать...догоняет...чертова экза наемников...слышу его вой,сомнений нет-кровосос...на ходу вставляю батарейки в фонарик,включаю...передо мной стоит ОН!...как же он красив при освещении молнии...черт с ним,ф7...как бы до бара добраться?...удается модик...

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

Костя.н.ы.ч, будет одно число рандомиться.. Оно и возьмется как порядковый номер в таблицы.

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

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

Жизнь определение, и не каких целей у нее нету. Жизнь безсмысленна.

Смысл вкладываем мы, и цели придумамываем...

И в подписи у меня не красный. а иной цвет.

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

но не кто мне не мешает прописать,что когда заканчиваются рандомные,менеджер=нил

Думаю проблем быть не должно:)

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

 

Добавлено через 2 мин.:

а когда я писал

.....(treasure_table[match.random(5)])

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

Иду по болоту,темно и гроза+туман...играет страшная музыка...черт аномалия...ф7...странные звуки в кустах...очередь и бежать...догоняет...чертова экза наемников...слышу его вой,сомнений нет-кровосос...на ходу вставляю батарейки в фонарик,включаю...передо мной стоит ОН!...как же он красив при освещении молнии...черт с ним,ф7...как бы до бара добраться?...удается модик...

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

local npc = level.object_by_id(k) 
local cst = npc:cost()
cst*math.random(1,4)

Если не получиться, можно попробовать узнать цену так.

tonumber(system_ini():r_float(npc:section(), "cost"))

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

Жизнь определение, и не каких целей у нее нету. Жизнь безсмысленна.

Смысл вкладываем мы, и цели придумамываем...

И в подписи у меня не красный. а иной цвет.

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

Спрашивать буду много и всегда)))

Через биндер актера можно как нибудь запустить обрабодчик клавиш,пусть и удаленно?И у меня почему то не работает проверка предмета по слоту,как правильно записать?

Иду по болоту,темно и гроза+туман...играет страшная музыка...черт аномалия...ф7...странные звуки в кустах...очередь и бежать...догоняет...чертова экза наемников...слышу его вой,сомнений нет-кровосос...на ходу вставляю батарейки в фонарик,включаю...передо мной стоит ОН!...как же он красив при освещении молнии...черт с ним,ф7...как бы до бара добраться?...удается модик...

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

Кажется так. db.actor:item_in_slot(2) == "wpn_vintorez"

Про обработчик, если хочешь отловить кнопки нажатые пользователем - не получиться.. Но ANViL и Руся, интересный метод сделали... Почитай, он вроде статью выкладывал тут на форуме.

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

Жизнь определение, и не каких целей у нее нету. Жизнь безсмысленна.

Смысл вкладываем мы, и цели придумамываем...

И в подписи у меня не красный. а иной цвет.

Ссылка на комментарий
Кажется так. db.actor:item_in_slot(2) == "wpn_vintorez"

 

Я пробовал,у меня почему то не заработало...только я задавал локальную:

 

local actor:item_in_slot = db.actor:item_in_slot(2)

 

и писал собственно функцию

 

if actor:item_in_slot == "antigas" then

....

if actor:item_in_slot ~= "antigas" then

....

end

end

end

 

кстати,проверку на nil внедрять не нужно?

Изменено пользователем Костя.н.ы.ч

Иду по болоту,темно и гроза+туман...играет страшная музыка...черт аномалия...ф7...странные звуки в кустах...очередь и бежать...догоняет...чертова экза наемников...слышу его вой,сомнений нет-кровосос...на ходу вставляю батарейки в фонарик,включаю...передо мной стоит ОН!...как же он красив при освещении молнии...черт с ним,ф7...как бы до бара добраться?...удается модик...

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

Немного не прально сделал.. Зачем двоеточние сделал?

сделай actor_item_slot это в название локали

Если хочешь проверку на нул. то сделай так..

if actor_item_slot then , но я считаю это лишнем..

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

Жизнь определение, и не каких целей у нее нету. Жизнь безсмысленна.

Смысл вкладываем мы, и цели придумамываем...

И в подписи у меня не красный. а иной цвет.

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

Nekt,

dan, не согласен.. Не все "профи" берут деньги. Точнее, редко кто... И то по очень определенным вопросам.

Само определение профессионал подразумевает, что человек работает в определенной области за деньги. Все остальные, работающие в этой области за просто так, ради собственного удовольствия - любители.

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

Ссылка на комментарий
На придмет можно по идеи наложить колбэк, а можно уточнить.. При каком моменте функция должна заработать. Можно к примере сделать при выбросе, можно при съедение, можно обычном подборе объекта. Куча вариантов, определитесь.

Именно при клике левой кнопкой по предмету(использовать)

Иду по болоту,темно и гроза+туман...играет страшная музыка...черт аномалия...ф7...странные звуки в кустах...очередь и бежать...догоняет...чертова экза наемников...слышу его вой,сомнений нет-кровосос...на ходу вставляю батарейки в фонарик,включаю...передо мной стоит ОН!...как же он красив при освещении молнии...черт с ним,ф7...как бы до бара добраться?...удается модик...

Ссылка на комментарий
Костя.н.ы.ч, Nekt. У вас каша в голове по поводу основ программирования. Судя по вашим постам вы азбуки не заете, а пытаетесь роман писать. Хотел помочь, но понял, что на разных языках говорить будем....

НЛС-6: У каждого своя зона

_______________________________________________________________

Не ищи легких путей и не возвращайся той же дорогой

Ссылка на комментарий
возможно в принципе создание перемешаюшегося рестриктора и возможноли его повесить на определенного НПС

чтоб рестриктор перемешался вместе с НПС ?

В принципе можно - просто рестриктор не преремещается а каждый раз создается заново, старый же уничтожается

и отслеживаешь периодически положение npc, например через bind_stalker

глянь был хороший пример - создание телепорта внутри уровня

function actor_update(delta)

local i,v,acter_poz,s

 

-- Получим позицию актера (что-бы каждый раз не запрашивать)

acter_poz = db.actor:position()

 

-- Проверяем наши телепорты

for i, v in pairs(teleport_binders) do

s = v.parametrs

 

local obj = level.object_by_id( i )

if obj ~= nil then

-- Наш телепорт в онлайне проверяем дальше

if s.teleporte ~= nil and s.teleporte ~= false then

-- Телепорт запущен

if ( time_global() <= s.time ) then

-- Если время отведенное на показ спецэфектов

-- прошло, производим телепортацию

teleportate(s.poz_x,s.poz_y,s.poz_z)

if s.rotate ~= nil then

db.actor:set_actor_direction(s.rotate)

end

s.teleporte = false

end

return

end

 

-- Пороверим не забрел-ли актер в наш телепорт

if (abs_comp(s.x, acter_poz.x)< v.parametrs.radius and

abs_comp(s.z, acter_poz.z)< v.parametrs.radius and

abs_comp(s.y, acter_poz.y)< v.parametrs.z_radius) then

-- Актер в зоне действия телепорта, запустим телепорт

s["teleporte"] = true

s["time"] = time_global() + 500

 

-- Запускаем спецэфекты телепортации

level.add_pp_effector ("teleport.ppe", 2006, false)

end

end

end

end

 

function bind( obj )

obj:bind_object( restrictor_teleport( obj ) )

end

 

----------------------------------------------------------------------------------------------------

class "restrictor_teleport" ( object_binder )

 

function restrictor_teleport:__init(obj, char_ini) super(obj)

end

 

function restrictor_teleport:net_spawn(data)

local char_ini = system_ini()

 

-- Если это телепорт то занесем его в специальный список телепортов

if self.teleport == true then

teleport_binders[self.object:id()] = self

 

-- Заполним таблицу параметров

self["parametrs"] = {}

if char_ini:line_exist(self.section, "radius") then

self.parametrs["radius"] = tonumber(char_ini:r_string(self.section, "radius"))

else

self.parametrs["radius"] = 2 -- Дефолтный радиус по xy

end

if char_ini:line_exist(self.section, "z_radius") then

self.parametrs["z_radius"] = tonumber(char_ini:r_string(self.section, "z_radius"))

else

self.parametrs["z_radius"] = self.parametrs["radius"] -- если радиус высоты не задан то задаем равным радиусу xy

end

 

-- Запомним позицию что-бы каждый раз не считать

local s_obj = alife():object(self.object:id())

self.parametrs["x"] = tonumber(s_obj.position.x);

self.parametrs["y"] = tonumber(s_obj.position.y);

self.parametrs["z"] = tonumber(s_obj.position.z);

 

-- Запомним координаты куда телепортимся

self.parametrs["poz_x"] = tonumber(char_ini:r_string(self.section, "poz_x"))

self.parametrs["poz_y"] = tonumber(char_ini:r_string(self.section, "poz_y"))

self.parametrs["poz_z"] = tonumber(char_ini:r_string(self.section, "poz_z"))

 

if char_ini:line_exist(self.section, "rotate") then

self.parametrs["rotate"] = tonumber(char_ini:r_string(self.section, "rotate"))

end

end

return true

end

 

function restrictor_teleport:net_destroy()

-- Удаляем наш телепорт

teleport_binders[self.object:id()] = nil

self.parametrs = nil

object_binder.net_destroy(self)

end

 

function restrictor_teleport:reload(section)

local char_ini = system_ini()

 

self.section = section

-- Если это телепорт то

if char_ini ~= nil and char_ini:line_exist(self.section, "teleport") then

self["teleport"] = true

end

end

 

Для постоянного обновления нужно прицепить функцию actor_update() к биндеру актера, для чего в файле bind_stalker.script найдем функцию:

function actor_binder:update(delta)

В ней найдем вызов обновления рестрикторов bind_restrictor.actor_update(delta) под которым вставим строку с вызовом нашей функции обновления: bind_mteleport.actor_update(delta)

 

 

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

Maks_K

 

Спасибо буду разбиратся

Была мысль

если это возможно то при перемешении рестриктора вместе с НПС Ппоявится возможность задавать (програмировать)реакцию НПС при попадании в зону этого рестриктора ГГ(либо любого другово )

 

Разве нет ?

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

Пытаюсь разобраться со скриптовым управлением сталкерами. Для этого есть набор классов:

anim - хранит параметры анимации

look - параметры направления и способа "глядения"

move - параметры пути перемещения

object - параметры объекта, который держит в руках сталкер и что с ним делаем

particle - партиклы

sound - озвучка

act - команды для монстров

cond - условия окончания действия

все эти объекты объединяются в одну, с помощью класса entity_action. Получается полное описание состояния: идёт туда-то, смотрит туда-то и так-то, держит в руках ствол и стреляет из него, отыгрываются партиклы и что-то там ещё звучит при этом.

Затем полученный объект типа entity_action указывается в методе command класса game_object. При этом команда ставится в очередь. Размер очереди можно посмотреть методом action_count, а обнулить очередь можно методом reset_action_queue. По моему разумению действия в очереди должны выполняться последовательно.

Есть ещё методы класса game_object, которые вроде как позволяют по отдельности менять все эти части состояния:

set_item - для установки предмета

set_sight - куда смотрим

set_patrol_path - путь

add_animation - анимация

play_sound, add_sound - звук

партиклы можно проигрывать отдельным объектом.

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

Вот только неписи ноль внимания на все эти действия =) Я так понимаю, их что-то держит.

Знает, кто-нибудь в чём здесь дело?

 

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

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

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

 

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

Vergas, И чего хотел сказать этим? Пост лишний набил? У тя может в голове и каша, а у меня серое вещество именуемом - мозгом.

 

Kostya V, Я знаю многих профессионалов в своей области.. Это не любители далеко. Но вот почему-то денег не берут, во всяком случае с меня.

Вообще они редко берут деньги. Всё зависит от человека... Насколько он жаден и алачен, скуп.

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

Жизнь определение, и не каких целей у нее нету. Жизнь безсмысленна.

Смысл вкладываем мы, и цели придумамываем...

И в подписи у меня не красный. а иной цвет.

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

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

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

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

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

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

Войти

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

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

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