Перейти к содержанию

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

 
 

ian98 Какой вылет? Я про вылет ни слова не сказал...

  • Смех 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

I am dead Сайт не оч удобный с телефона. Чтоб егр


76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
6 часов назад, ian98 сказал:

чтобы гг не умирал при 2+ убийствах одновременно

уменьшать количество отнимаемого здоровья. Или запоминать time_global()  последнего убийства и делать проверку на time_global() + ... . А почему этот скрипт в статистике, а не в коллбеке смерти нпс (и монстров)? 


Дополнено 9 минуты спустя
11 часов назад, Manool сказал:

В одном моде как-то нашёл итерацию инвентаря на апдейте

это еще ладно, мне как-то попался мод с двумя подряд циклами на апдейте for i = 1, 65тыс do (и без прерывания))

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

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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


76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 просто очень непривычно. Если кто-то решит поковырять мод (или вы сами забросите, забудете, где что добавлялось), зайдет в коллбек смерти - там сразу не прописано, и придется выполнять очень интересный квест - пройдись по скриптам, прописанным в коллбеке, а в тех скриптах еще по другим вызывающимся скриптам пройдись, очень интересно. Не говорю, что это неправильно, просто неудобно) И в функции в файле статистики идет return в самом начале, то есть, при добавлении группировок и монстров надо еще смотреть, чтобы нормально условия выполнялись, больше телодвижений. В коллбеке на смерть от любых рук, но нет проблемы добавить проверку на актора (проще, чем смотреть выполнение условий, чтобы не срабатывал return). Это так, ворчание на ночь глядя, не обращайте внимания)

  • Хабар 1

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 это тот который в xr_motivator death(who,victim)? 

Вот тут я вижу такое

	if rx_ai then rx_ai.npc_death(self.object,who) end -- тут смерть любого нпс? 

	if who:id() == db.actor:id() then
		xr_statistic.addKillCount(self.object)
												-- вот сюда можно вставить вместо статистики скрипт? 
	end

 

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

76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 ai additions? Да, любого

Изменено пользователем vader_33
  • Мастер! 1

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Есть такой скрипт.

Спойлер

-- Счетчик смертей

function on_actor_death(who)

set_death_count("death", get_death_count("death")+1)
end


-- универсальный независимый от сейвов счетчик, реализованный на файлах
-- - считает количество смертей гг а также время прохождения
function get_death_count( what )
  local f = getFS()
  local flist = f:file_list_open_ex(
    "$game_saves$", bit_or( FS.FS_ListFiles, FS.FS_RootOnly ), "*." .. what
  )
  if flist:Size() > 0 then
    return tonumber( string.match( flist:GetAt( 0 ):NameFull(), "(.+)[.]" ) )
  else
    local f1 = f:update_path( "$game_saves$", "game_setup.ltx" )
    local f2 = f:update_path( "$game_saves$", "0." .. what )
    f:file_copy( f1, f2 )
    return 0
  end
end


function set_death_count( what, value )
  local f = getFS()
  local flist = f:file_list_open_ex(
    "$game_saves$", bit_or( FS.FS_ListFiles, FS.FS_RootOnly ), "*." .. what
  )
  local fileName    = flist:GetAt( 0 ):NameFull()
  local fileNameNew = tostring( value ) .. "." .. what
  if fileNameNew ~= fileName then
    local f1 = f:update_path( "$game_saves$", fileName    )
    local f2 = f:update_path( "$game_saves$", fileNameNew )
    f:file_rename( f1, f2, true )
  end
end


function on_new_game()
  get_death_count( "death"    )
  set_death_count( "death", 0 )
end

Вот как его можно повесить, это ж не должно быть очень сложно? 100% что-нибудь простое, но гайдов не найти.

Момент с анлоком счетчика, его переименование в принципе понятен, но это первый шаг. А дальше как?

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

76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Снова я с аналогичным вопросом. В оригинале есть переход Радар-Припять, а в моде-отсутствует, хотя сама Припять имеется. Вопрос, где в файлах хранятся переходы и как вернуть его? Думаю, что где-то стерли пару строчек или закомментировали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Hunter Если в моде спавн, то переходы могли там просто не добавить? 

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


76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 чтобы счетчик работал, нужно добавить  "on_actor_death(who)" в коллбек смерти актора. Он в движке есть, но в оригинальном биндере не прописан, надо добавить. В "actor_binder:net_destroy()" это:

      self.object:set_callback(callback.death, nil)

В "actor_binder:reinit()" это:

      self.object:set_callback(callback.death, self.death_callback, self)

И куда-нибудь саму функцию:

      function actor_binder:death_callback(victim, who)

      end

И в нее уже добавлять. А вот это "function on_new_game()" видимо добавляется куда-то, что вызывается один раз при новой игре, но в оригинале готового такого места нету. Лучше посмотреть в моде, с которого этот код взят (если там не моддвижок с каким-нибудь новым коллбеком).

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


Дополнено 11 минуты спустя

Hunter обычно переходы в all.spawn "section_name = level_changer" (по строчке "dest_level_name =" можно понять, куда переход). Если его вообще удалили с оллспауна - два варианта: или редактировать оллспаун и добавлять его (новая игра потребуется) или спавнить скриптом, ссылку выше скинул ian98 (без новой игры, но если мод на измененном движке, в котором меняли нетпакеты - надо его подгонять под эти изменения). Лучше через оллспаун делать, если это не для одного прохождения в середине мода. Если переход не удалили с оллспауна - можно заспавнить так:  alife():create(spawn_id)

Изменено пользователем vader_33
  • Хабар 1

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Hunter В all.spawn добавлять точку перехода, ну или скриптами спавнить ее.


Дополнено 1 минуту спустя
1 час назад, vader_33 сказал:

если там не моддвижок с каким-нибудь новым коллбеком

Именно от туда, а момента старта новой игры можно и по поршню проверить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

I am dead уже после своего комментария нашел этот код в оп-2, там он вызывается в "ui_main_menu.script" в "function main_menu:StartGame()". Да, можно и поршнем, если мод не тяжелый


В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 Вообще пример кода взял dsh мода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Повесил, наверное, только он если и считает, то не показывает.

В bind_stalker калбеки добавил, не буду их показывать, но там точно не накосячил.

Спойлер

image.thumb.png.79df2ae9d9c41471710223dcc8549684.png

Спойлер

image.thumb.png.1f0513800e90ac9f9fa15298e0cc8676.png
 

main menu

Спойлер

image.thumb.png.848166dfa10ecca7ca25b49b60dc9516.png

 


76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 ian98 ну ешкин кот, что с телефона обращение не удаляется. Скрины неудобно смотреть, выкладывайте текстом. Не знаю, куда actor_stats сохраняет данные, не в сохранку случайно? Если в сохранку-при откате не сохранится количество. Наверно не просто так в оп сделали счётчик отдельным файлом в папке с сохранками. Этот код создаёт в папке с сохранками файл с количеством смертей (название файла=количество), наверно надо читать это название. Проверю когда до дома доберусь. Там ещё в коде используется файл game setup (в коде правильное название посмотрите), его создали в папке с сохранками?

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

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 все, что могу сказать по actor.stats, это какая-то связь с конфигом actor_statistic из папки ui. Game_setup создал и закинул в папку с сейвами никак не заполняя. Если это необходимо, то даже не представляю как.

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

76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 я его пустым оставлял, файл с количеством смертей нормально создавался


В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 два раза начинал новую игру, бегал там, умирал, перезагружался. Ничего. И файл пустой. Скрипт к нему даже не обращался судя по дате изменения 

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

76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 сам файл не должен меняться, рядом должен быть файл число.death


В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 только сейвы ?


76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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


В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 vader_33 I am dead чем можно распаковать all.spawn?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Hunter ACDC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

I am dead а запаковать обратно тем же?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу