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

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


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

Форумчане, день добрый!

Остался ли у кого-нибудь скрипт ударных гранат (взрыв при ударе или контакте с поверхностью, без разницы)?

Если нет, попрошу подсказать по собственноручной реализации, спасибо!

Ps: для тч 1.0004

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

Всем добра!
Заранее извиняюсь, если пишу не в ту тему. У меня вопрос: Если запущен таймер (к примеру)
amk.g_start_timer("ts1",0,2,0)
Как его остановить до того, как он сработает?

 

Pir%40t%40s.gif

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

@Pir@t@s дописать и использовать свои функции, например что-то вроде такого:

Скрытый текст
function stop_timer(name)
  for a = 1,100,1 do
    if load_variable("xt"..a, nil) == name then
      del_variable("xt"..a)
      del_variable("xd"..a)
      del_variable("xp"..a)
      return true
    end
  end  
  return false
end
function stop_g_timer(name)
  for a = 1,100,1 do
    if load_variable("gt"..a, nil) == name then
      del_variable("gt"..a)
      del_variable("gd"..a)
      del_variable("gp"..a)
      return true
    end
  end  
  return false
end

 

 

  • Спасибо 1
  • Нравится 2
  • Полезно 1
Ссылка на комментарий

Всем привет! Попытался написать программку для вывода координат в txt файл, однако столкнулся с тем, что отсутствует (вроде-бы стандартная) библиотека io, кто сталкивался?

  • Нравится 1

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий
11 минут назад, Colder сказал:

items = items1, items2, items3... 

	local item = system_ini():r_string(item_wpn:section(), "ammo_class")
		item = string.gsub(item,"[,]"," ")
		for k, v in string.gmatch(item,"[%p0-z]+") do
		-------- k 
	end

первое что пришло в голову - как узнать какие патроны использует оружие 

ищем в секции оружия строку "ammo_class" и разбираем её, ну как-то так

  • Спасибо 1
  • Согласен 1
Ссылка на комментарий
8 часов назад, Balavnik сказал:

кто сталкивался?

Да все сталкивались, в оригинале вроде как выпилена/сломана была она.

8 часов назад, Balavnik сказал:

для вывода координат в txt файл

Но ведь у сталкера есть штатный лог-файл. Почему бы не записать координаты туда? Используя штатные же функции printf, log.

  • Согласен 4

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

День добрый, форумчане
Возник такой вопрос:  в билде 2588 была система установки/удаления своих меток (посмотреть можно на этом видео https://www.youtube.com/watch?v=lrhNla-6BcY на 8:35)
В релизе остатки от этой функции есть (некоторые значения просто переименованы на "unused" или что-то на подобии того), но восстановить не вышло: даже после редактирования ui файлов как итог ничего не появлялось и ни одна кнопка не появилась 
Никто не восстанавливал такую фичу ? Сможет кто-то объяснить, как это восстановить до полностью рабочего состояния ?

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

Intel Xeon E5-2689 2.60GHz, Radeon RX 480, ОЗУ 12 GB DDR3, Sata M2 500 GB, 3.5 HDD 500 GB + 2.5 HDD 500 GB

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

@Dimazig228 восстановлено в OGSR движке, ещё скриптами в RMA Shadows Addon.

  • Согласен 1

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

Ссылка на комментарий
4 часа назад, Dimazig228 сказал:

даже после редактирования ui файлов как итог ничего не появлялось и ни одна кнопка не появилась

движок многое из конфигов xml не читает, а использует жёстко прописанные значения в движке, даже в ОГСР например ширину скрола текста с описанием задания в ПДА и подробным описанием, которое переключается вместо карты, я как-то взялся заменить основный ПДА статик с нестандартным размером картинки, думая если что поправлю текст и картинки в конфигах, ага:) игра вообще не реагировала на их изменения, и пару дней пришлось убить на то, чтоб весь текст в заданиях править под новое окно ПДА ,если бы знал что там такой гемор оставил бы дефолтный ПДА)

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

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

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

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

Гайд по... передаче инфы в лог? :blink: стесняюсь спросить, а какой информации ты ждешь от такого гайда? Ответы на какие вопросы хочешь там найти?

Я честно, без стеба или чего такого, не понимаю. Может быть, конкретизируй свой вопрос?

printf(твое_сообщение) // или

log(твое сообщение) // или

log1(твое сообщение) // в OGSR почему-то называется так, или на худой конец

console():execute('load ~~~'..твое сообщение) // так делали в древних модах на 1.0004

Вот и все, вроде бы. В консоли их тоже видно. Все 4 варианта. В коде любого мода и оригинала, примеров море. Какие вопросы здесь возникают?

 

  • Полезно 1
  • Смешно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Пытаюсь вернуть часть денег за покупку у торговцев. Но функция срабатывает со 2 покупри. Может кто посмотреть что не так.

Скрытый текст

function round(amount)
    return math.floor(amount + 0.5)
end

local actor_last_money = 0

function actor_binder:on_trade(item, sell_bye, money)
    if sell_bye == true then
    game_stats.money_trade_update(money)
    else
    game_stats.money_trade_update(-money)
end
    if sell_bye then
    actor_last_money = db.actor:money()
    return
end
    local function cashback()
    local money = db.actor:money()
    local cashback = round((actor_last_money - money) * 0.3)

    if cashback < 1 then
    actor_last_money = money
    return true
end
    db.actor:give_money(cashback)
    local news_text = gts(tostring(cashback))
    local msg = "\\n"..news_text
    db.actor:give_game_news(msg, "ui\\ui_iconstotal", Frect():set(581,376,83,47), 0, 10000)
end
end

 

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

@Colder 1. форматируй код так, чтобы закрывающий элемент был на одном уровне с открывающим. Трудновато читать твои примеры взглядом, лишний раз это делать не хочется.
2. Где вызывается функция cashback()? В какой момент? Ни малейших следов вызова не представлено, опять с тобой приходится играть в гадалки.
3. По существу: при первой итерации у тебя local actor_last_money = 0, поэтому ты сваливаешься в условие "if cashback < 1 then" со всеми вытекающими.

  • Нравится 2
Ссылка на комментарий

@Zander_driver Видимо, я чего-то не догоняю, но не могу понять в какой лог printf выводит информацию. В логе _appdata_\logs\xray_user.log ничего не появилось после исполнения функции и выхода из игры.

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

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

@Balavnik именно в тот лог и выводит. А вообще, было предложено 4 варианта (3 без модифицированных движков), но вопрос почему-то возник только по одному из них. Остальные, видимо, не пробовал?

В конце концов, если приспичило использовать именно printf, но штатный вариант по каким-то причинам не срабатывает, можно сделать переопределение самым топорным и древним вариантом, на который уже указывал @Zander_driver.

local console
printf = function(fmt,...)
  if not console then console = get_console() end
  console:execute("load ~:"..string.format(fmt,...))
end

И добавить это в самый конец _g.script.

  • Нравится 3
  • Полезно 1
Ссылка на комментарий

Гайс, ай хэв а проблемс.

Заспавнил(через скрипт) я значит НПС, в деревне новичков. 

Всё прописал как надо, по народному:russian_ru:. В spawn_sections.ltx прописал ему custom_data = esc_torgash.ltx, но она не работает. Персонаж тупо идёт в разрушенный домик, где толик должен сидеть, и стоит там. Диалоги тоже, от охранников из деревни новичков(что-то вроде "Меченый вали с глаз долой...").

Вероятно это происходит из-за "присасывания" к свободной работе в террейне. Но решения я так и не нашёл. Что бы ни делал, и террейн деревни удалял и много чего ещё. Хеелп!

Вот из spawn_sections.ltx:

Цитата
[esc_torgash]:stalker
$spawn				=  "respawn\esc_torgash"
character_profile	= esc_torgash
spec_rank = regular
community = stalker
custom_data = scripts\esc_torgash.ltx

 

Вот логика из esc_torgash.ltx:

Цитата
[logic]
active = walker@torg

[walker@torg]
path_walk = walker_stay_at_position_walk	; 
path_look = walker_stay_at_position_look	; Эти строки взял на форуме в теме по созданию НПС
meet = meet@start

[meet@start]
meet_state		= 15|guard@wait
meet_state_wpn	= 15|backoff@threat_weap
victim		= 15|actor
victim_wpn		= 15|actor
use			= true
use_wpn		= false
syndata		= backoff@threat_weap
meet_dialog = {-trader_shurik_start_end} trader_shura_start, hello_dialog
  • Не нравится 1

"Do you like what you see?" © Billy Herrington

Boneset-HQ.gif

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

@boneset-hq надо запретить ему заходить в смарты.
Это пишется в кастом дате персонажа в all.spawn, но никак не в ltx файле.

То бишь надо написать:
[smart_terrains]

none = true

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

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

@imcrazyhoudini 

Проблема в том что я спавню НПС через скрипт, поэтому в all.spawn у меня его нету. Другого способа нету? Или придётся мучиться с all.spawn'ом?

"Do you like what you see?" © Billy Herrington

Boneset-HQ.gif

Ссылка на комментарий
4 минуты назад, boneset-hq сказал:

я спавню НПС через скрипт

И кастом-дату можно записать через скрипт.

В OGSR напрямую, а в более древних движках через нетпакет.

  • Нравится 1
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

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

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

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

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

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

Войти

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

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

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