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

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

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

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

Друзья, помогите создать торговца, не прописывая его в all.spawn что для этого нужно и как это сделать?

 

Потрите пост все нашел, поиск рулит =)

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

Подскажите, в каком файле содержится описание функции function map_add_object_spot(number, string, string);?

Она декларирована в scripts/lua_help.ltx, и служит для добавления маркеров на карту... декларацию нашел, а само тело функции - нет...

 

Либо помогите разобраться со вхождением переменных...

 

Вот например добавление маркера на кровососа:

level.map_add_object_spot(self.id, "bloodsucker_spot", "кровосос")

А вот - маркер перехода на др. локацию:

level.map_add_object_spot(obj.id, "level_changer", "to_agroprom")

 

Я правильно понимаю, что

первая переменная - это идентефикатор объекта, над которым поместить маркер (как узнать id, например, непися или итема, лежащего на земле?)

вторая - изображение маркера (где поглядеть весь список изображений под маркер?)

--нашел, где содержатся все маркеры: config\ui\map_spots.xml

третья - текст маркера...

 

я правильно понял?

 

ЗЫ: тапками только не кидайтесь...

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

Monnoroch,

Действительно, машины, как и кнопка запуска двигателя были вырезаны из финалки. А потом это все просто восстановили. Да фиг с ними, с кнопками. Где их обработку перехватить можно?

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

_______________________________________________________________

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

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

Вопрос: в каком файле находится бартер Дена за запчасти монстров и Ворона за оружие?

 

СКРИПТ

Это файлы торговли, в них я разбираюсь. Мне интересно по бартеру т.е. приносишь хвосты-дают патроны. И прочее в этом духе. Спасибо что попытался помочь.

 

Всем кто пытался помочь спасибо. Получил подсказку:

wawka_dialog.script - скрипт по обмену Ворона

new_dialog.script - Дэна (и не только)

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

ABS в папке

gamedata\config\misc\

есть файлы trade_***, где *** это название торговца. Существуют их несколько :

trade_dolg
trade_svoboda
trade_barmen
trade_ecolog
trade_freedom
trade_generic
и
trade_trader

если ты играешь с модами, то у тебя скорее всего есть и другие.

для ворона файл trade_dolg(вроде-бы) в нем есть такие строки, как

af_medusa     = 1,    0.3

я точно не помню, но вроде-бы 1 это максимальная стоимость, за которую он может купить\продать товар, а 0.3 это минимальная цена.

В других файлах так-же. Твори! Мне кажется, ты разберёшься!

 

P.S Камрады, если я что-то напутал, то исправьте меня.

Thank you for your honesty.

Now fuck off and die.

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

ABS, это не стандартный трэйд, а диалоговый... соответственно и находится в диалогах. За этот трэйд отвечает несколько файлов (оглавление диалогов, описание диалогов, перевод в текст, скрипты)

У Дэна, например, это файлы:

\config\gameplay\character_desc_escape.xml (ищи <specific_character id="esc_dan" team_default = "1"> это оглавление диалогов, в случае торговли Дэна - это <actor_dialog>prinesi_hvost</actor_dialog>)

\config\gameplay\dialogs_new.xml (ищи <dialog id="prinesi_hvost"> - это нужная часть описания диалога)

\config\text\rus\stable_dialogs_new.xml (ищи <string id="prinesi_hvost_0"> и далее - это перевод в текстовый вид)

\scripts\new_dialog.script (ищи function prines_kopyto(first_speaker, second_speaker) - это скриптовая проверка)

 

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

а вобще... качай и устанавливай прогу Total Commander - удобный файловый менеджер, с ОЧЕНЬ удобным поиском (Alt+F7)

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

Чтобы вывести на худ некий статис необходимо прописать следующую последовательность команд:

    volume_wnd_i_1 = CUIStatic()
    volume_wnd_i_1:SetAutoDelete(true)
    self:AttachChild(volume_wnd_i_1)
    volume_wnd_i_1:SetWndRect(-340, 367, 200,20)    --337, 200)       
    volume_wnd_i_1:SetFont(GetFontLetterica16Russian())
    volume_wnd_i_1:SetTextColor(255, 255, 255, 255)
    volume_wnd_i_1:SetText(inst)

Выведена будет одна строка. А вот как сделать, чтобы строк было не одна, а больше? Пробовал в стринговую переменную inst вводить конструкцию "\n", но она здесь не срабатывает.

================================

Johnson, стрингформат не пойдет. Мне надо четко задавать новую строку. А что за конструкция "/r"?

================================

Johnson,

Спасибо. Я такую фичу видел у Сяка в функции времени, но там это было под стрингформатом и не работало. А на чистый стринг я не пробовал. Сейчас испытаем :)

================================

Испытал :( Нифига не вышло. И "\\" пробовал и "\n\r" пробовал.

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

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

_______________________________________________________________

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

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

есть вопрос:

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

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

Gonarh,

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

 

очень жаль

Но можно сделать переход с помощью скриптов. Тогда его можно будет задействовать в любое время. На этом принципе сделан Hand Teleport. Посмотри в файлах мода. Там все просто.

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

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

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

Подскажите, кто знает:

1. а как спавнятся патроны? Пачкой? Но тогда как существует неполная пачка. Или каждый патрон в отдельности?

2. Как сделать предмет, заспавненный через скрипт, непродоваемым ни торговцам, ни неписям. Типа как флешка Стрелка.

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

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

_______________________________________________________________

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

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

Vergas

 

Создай предмет и в каждом файле

trade_dolg
trade_svoboda
trade_barmen
trade_ecolog
trade_freedom
trade_generic
и
trade_trader

Пропиши его и рядом поставь

;NO TRADE

ВЕЗДЕ, ГДЕ ОН ЕСТЬ! (твой предмет)

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

Thank you for your honesty.

Now fuck off and die.

Ссылка на комментарий
1. а как спавнятся патроны? Пачкой? Но тогда как существует неполная пачка. Или каждый патрон в отдельности?

Патроны спауняться пачками, а не полные пачки функцией:

alife():create_ammo(section, position, lvi, gvi, pid, num)

Но при ее использовании num не должен быть больше патронов в пачке.

Гораздо удобнее пользоваться функцией сделаной разрабами:

se_respawn.create_ammo(section, npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id(), number)

number - общее количество патронов, если больше патронов в пачке то спауниться полная пачка и из остатков неполная.

но это только в инвентарь, чтобы в мир заспаунить попробуй вместо npc:id() поставить nil

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

Сделать этот предмет квестовым. Квестовые предметы не продаются.

 

а как его сделать квестовым?

В конфиге предмета дописать:

quest_item = true

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

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

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

SCRIPT,

спасибо, про это я знаю,но этот путь не есть хороший. А если завтра ещё торговцев добавят, опять прописывать надо.

 

8push5,

благодарствую! Как всегда четко и по делу.

 

Kostya V,

Буду обязан! Тогда сразу вопрос: а как его сделать квестовым? Мысль такая была, но сразу спросить природная стеснительность не позволила

========================

Руся, все сработало. Спасибо

Kostya V, последний вопрос соответственно снят :)

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

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

_______________________________________________________________

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

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

Я незнаю ошибка это или нет, но почему то переносимый вес ГГ после того как поставил 1.4.1 и + 2 патча, перестал меняться до этого не один раз это проделовал...

Извините если не в ту тему просто не один день на решение этой проблемы потратил...

Очень, очень,нужно...

 

Может быть уже писали ответ на мой вопрос и решение, но я физически не успею все это перекопать... До 17 страничке прочитал...

За ранее благодарен...

Balto.

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

Vergas, глянь в конфигах квестовых предметов - там есть особая строка что-то вроде quest_item = true или как-то так.

есть вопрос:

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

 

МОЖНО. Конкретно, нужно его включать и отключать скриптом после спауна. Например - после начала новой игры точка перехода правда появится. но при выходе из бункера Сидорыча она исчезнет. А после получения какого-нибудь инфопоршн нужного снова появится, затем снова исчезнет... и так далее. Можно например, заспаунить в одном месте несколько переходов на разные локации, но включать только один, а остальные выключать. Таким образом можно например, создать точку перехода с "разными" выходами, хотя по сути это несколько точек. Например, добавил в al.spawn две точки перехода и дал им уникальный исторический ИД, не путать с игровым ID. Чтобы не запутаться - например, номерами с миллиона. И убрать их можно так:

 

    local objt = alife():story_object(1000001)
    if objt then
      alife():release(objt)
    end
    local objt = alife():story_object(1000009)
    if objt then
      alife():release(objt)
    end

 

Как видно, story_object(1000001) - это объект у которого стори ИД равен 1000001 в файле al.spawn. При такой конструкции точка перехода "исчезнет" с карты. Обратно спауним их так, и одновременно ставим на них метки с подсказкой -

 

function exit_agroprom_secret()
         local objt = alife():story_object(1000001)
               if not objt then
                  alife():create(9053)
         end
    
         local obj = alife():story_object(1000001)
               if obj then
                  level.map_add_object_spot(obj.id, "level_changer", "Секретный путь на Агропром, если Шустрому верить.")
         end
end

function exit_military_secret()
         local objt = alife():story_object(1000009)
               if not objt then
                  alife():create(9054)
         end

         local obj = alife():story_object(1000009)
               if obj then
                  level.map_add_object_spot(obj.id, "level_changer", "Секретный путь на Армейские Склады, Волк рассказал.")
         end
end

 

alife():create(9053) - тут надо создавать объект из all.spawn не по стори ИД, а по НОМЕРУ в спауне. У меня эта точка перехода была под номером 9053, а вторая - номер 9054. При этом их story_id были равны большим числам, за миллион. Номер в спауне при компиляции спауна меняется, и становится индивидуальным, так что смотреть его надо ПОСЛЕ сборки all.spawn.

 

Ну а map_add_object_spot - функция известная, ставит на объект метку типа "level_changer" и подписывает название. Можно и метку и название поставить другие.

Изменено пользователем Руся
ANViL & Rusya Conception, или просто
-=[ARC Team]=-


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

Ильяс, Максимальный вес прописан в gamedata/config/creatures/actor.ltx строчка max_walk_weight

Отображение веса в инвентаре (выше этого значения нельзя бегать): gamedata/config/inventory_sect.ltx строчка max_weight

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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