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

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


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

lekzd

Нет, не менял. И инклуды, записанные в нём, то же не менял.

Изменено пользователем Darien
Darien, значит ты вызвал из таск менеджера какое-то задание, которое записано в gameplay\game_tasks.xml c ошибкой

lekzd

Проблема в том, что любое задание(пробовал около 15 штук), которое я хочу получить, вылетает с такой ошибкой.

Кстати про однотипные задания упоминаются только в game_tasks_by_vendor.xml, и то там только названия и описания.

Незаю чё делать :ny_mellow:

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

malandrinus

Вот часть(другая часть ненужна, там таймер):

function f_1()
local rnd_tsk_1 = {} --\ Список тасков для Сидоровича
local rnd_1 = rnd_tsk_1[math.random(#rnd_tsk_1)]
local new_task_1 = CGameTask()
if db.actor:dont_has_info('info_1') then
	new_task_1:load(rnd)
	db.actor:give_task(new_task_1, 216*100000, false)
	db.actor:give_info_portion('info_1')
	tim_1 = time_global()
else
	news_manager.send_tip(db.actor, 'У меня сейчас нету заданий для тебя.', 0.5, 'trader', 3600)
end
end

 

Знающие люди подсказали парсить конфиг, секцию

  • , но всё равно вылетает с таким же логом.

Неужто придётся превращать все однотипные задание в "подобие неоднотипных"(всмысле писать их в task_level.xml)?

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

Gonarh

я тут твою таблицу вертексов (и скрипт тоже) для своего скрипта заюзал. Ты не против?

Не подскажешь можно ли вообще избавиться ситуаций от спавна объектов за пределами карты? я конечно понимаю что таблицу надо отредактировать - ты сам писал что там вертексы могут не совпадать с теми что будут скажем в моем allspawn - но это вообще реально?

пока у меня объекты когда как спавнятся - в основном на карте - но и определенный процент за ее пределами.

Вот часть(другая часть ненужна, там таймер):

По коду ошибки не видно. Может быть в таблице что не так, а её ты не показал. Зашли в личку весь набор.

2Garry_Galler та ради бога, для того и выкладал чтобы все юзали.

Не подскажешь можно ли вообще избавиться ситуаций от спавна объектов за пределами карты?

можно, я делал так: запущщял графвьювер открывал нужную локу, переходил в режим просмотра левелвертексов,

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

А кто-нибудь знает как определить, что актор бежит?

 

пока нашел способ определения по значению accuracy() но приходится подгонять его под каждое оружие

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

тоже самое с замером изменения силы актора - тоже резкие скачки значений

Сообщение от модератора n6260
Меряй по скорости ;)

Gonarh

понятно - все значит не так просто.

Ладно будем думать. Спасибо.

 

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

local x ={[123]={},[456]={},[777]={},[555]={}}

 

и еще один вопросик: вызов wait() имеет смысл только в апдейтовых функциях?

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

Всех с наступающим НГ! Подскажите пожалуйста, как в инвентаре тч можно реализовать разворот иконок оружия как в чн и зп?

как из из такой таблицы получить последний добавленный в нее ключ

хотиш сделать реализацию стека? :ny_biggrin:

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

вызов wait() имеет смысл только в апдейтовых функциях

крайне не рекомендую юзать тем более в апдейтовых функциях - имхо битые биндеры обеспечены(если оно действительно тормозит поток)

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

Gonarh

н-да то что это похоже на стек я как то не подумал.

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

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

 

проблема собственно в другом - спавню серверный объект - схрон - и в него одновременно генерю набор итемсов (серверным методом).

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

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

или wait использовать - но wait как я понял пашет тока при апдейте - в моей функции (запустил ее как подпрограмму) эффекта от него не было. К тому ж если wait действительно может навредить - тогда конечно вообще не стоит.

 

заставить например табличку лишний раз проитерировать

все равно не успеет перейти в онлайн, если ты пишешь мод на основе амк мода, присмотрись к табличке convert_npc, там как раз решена проблема выпихивания в оффлайн и засовывание в онлайн :grin2:

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

Gonarh

присмотрюсь. хотя я не основе АМК делаю - а как отдельную разработку для чистого ТЧ.

только странно что когда я делал скрипт для заполнения рандомным хабаром дефолтных тайников - все 481 разом за один вызов - все тайники игры нормально заполнялись. но видимо я пока еще не разобрался с переводом в оффлайн\онлайн объектов - для чего это надо и с чем это едят ;)

для чего это надо и с чем это едят

оффлайн, это когда объект на сервере (в сингле серваком явл. твой комп), а в онлайн - это на клиенте

то есть алайф():креате(... создает объект на серваке, и если его не перевести в онлайн (то есть какбе не синхронизировать клиента с серваком) он не появится в игре (обычно в онлайн переводит сам двигл игры, но можно и ручками пихать/выпихивать :crazy:), хотя через алайф():объект найти его можно

ЗЫ. Все вышенаписанное, глубоко личное имхо, понятое после курения манов, возможно и не правильно понятое :(

ЗЫЗЫ. Весь этот гемор создавался только лишь затем, чтобы прикрутить мультиплеер <_<

Изменено пользователем Gonarh
Строгое предупреждение от модератора n6260
Раз новенький - то внимательно изучите название тем в этом топике. И все найдете.

А что дает вот такая проверка?

box:is_inv_box_empty() == true then

 

Gonarh

Спасибо :ny_cool:

 

 

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

is_inv_box_empty ммм судя по названию это проверка на то что ящег инвентарный пуст

Gonarh

понятно. а я уж для этого дела - проверки что ящик заюзан (обобран) отдельную проверку сделал с занесением тоже true\false - неюзался\юзался в свою табличку.

а можно значит и так :ny_wink:

 

кстати а одномоментная пробежка по 65 тысячам объектов (для сверки парента одного итемса с айди ящика) не будет притормаживать игру? - я имею ввиду если пробежка будет на момент юзания ящика.

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

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

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

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

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

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

Войти

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

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

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