[CoP] Ковыряемся в файлах - Страница 313 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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


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

@Rozben, чтобы генератор псевдослучайных чисел нормально заработал, надо где-нибудь на загрузке вызвать math.randomseed(device():time_global())

Либо os.time()..

А чтобы не повторялось, можно сделать что-то вроде этого:

function update_spam()
  local t = {}
  for a=1, #news do
    if tmp[i] == nil then
      t[#t+1] = a
    end
  end
  if #t == 0 then
    t = news
    tmp = {}
  end
  local i = t[math.random(#t)]
  tmp[i] = true
  
  actor:give_game_news(news_caption, news[i], news_icons[i], 0, 10000)
  xr_sound.set_sound_play(actor:id(), "pda_alarm")
end
Изменено пользователем naxac
  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

@naxac

Что ж, сработало, но частично:
Игра вылетала на загрузке с логом

 

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ....e.r. - Çîâ Ïðèïÿòè\gamedata\scripts\dyn_mess.script:92: attempt to index global 'tmp' (a nil value)
function update_spam()

 

Пока методом научного тыка не добавил local tmp = {} сюда:

...
local t = {}
for a=1, #news do
...

Ну и сообщения все же повторяются, но не так часто:

 


Но это уже скорее от того, что сообщений всего 33 и около четверти сообщений игра уже отослала - будем увеличивать количество. Но по сути - все работает, благодарю.

ROZBEN.gif

Игра вылетала на загрузке

Пардон, писал в спешке. Выше функции надо добавить:

local tmp = {}

Это таблица для хранения индексов уже отправленных сообщений.

И в самой функции исправить:

for a=1, #news do

if tmp[a] == nil then

t[#t+1] = a

end

end

Изменено пользователем naxac
  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

@Rozben

Не нужно хранить сообщения и исконки в разных местах.
Во первых сложно сопоставлять какому сообщению соответствует какая иконка.
Во-вторых можешь добавишь новое сообщение и забыть добавить иконку (или наоборот)
 
Храни данные в одной таблице :
local news ={
    {"%c[255,249,223,206]Вова Тихий:%c[default] \\nВидел кровососа у заправки в Темной Долине. Осторожнее там.", "ui_iconsNpc_green_stalker_11"},
    и т.д.

Вот с таким вариантом сообщения не станут повторяться, пока не будут показаны все из таблицы news :

 


local start_rnd, end_rnd = 1, #news

function update_spam()
	local idx = math.random(start_rnd, end_rnd)
	local res = news[idx]
	news[start_rnd], news[idx] = news[idx], news[start_rnd]
	start_rnd = start_rnd==end_rnd and 1 or start_rnd + 1
	
	actor:give_game_news(news_caption, res[1], res[2], 0, 10000)
	xr_sound.set_sound_play(actor:id(), "pda_alarm")
end

 

 

Изменено пользователем Nazgool
  • Спасибо 1

А что будет если поставить af_rank = 1, ну или af_rank = 2?


 
В секции соответствующего артефакта находим af_rank и меняем его значение на 0. Однако следует иметь ввиду, что после данной манипуляции он станет видимым изначально (находясь в аномалии), а не только при выбросе из инвентаря.

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

af_rank = 0 ; изначально видны без детекторов.

af_rank = 1 ; засвечиваются детектором "Отклик" и более совершенными моделями.

af_rank = 2 ; засвечиваются детектором "Медведь" и более совершенными моделями.

af_rank = 3 ; засвечиваются детектором "Велес" и его модификацией "Сварог".

  • Согласен 1
  • Полезно 1

«There is no spoon»

Jurok, когда-то обращался по поводу такой ситуации: ближе к концу путепровода отряд Дегтярёва атакует снорк, сидящий на трубах под потолком, но никто на него не реагирует (часто из-за этого кто-нибудь из отряда гибнет).

Подскажи, как исправить логику отряда в том месте?

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

 

 

но никто на него не реагирует

С AI Additions прекрасно реагируют. А вообще, в путепроводе, лично у меня команда бессмертная, так на всякий случай )

DarkSatellite, единственное, что могу посоветовать - это подкрутить combat_ignore_cond в configs\scripts\underpass\pas_b400_tunnel.ltx

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

«There is no spoon»

Space.Marine, не, я играю честно  :rolleyes:

Jurok, посмотрю... Спасибо.

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

Полтеры не подчиняются логике - улетают в рандомном направлении.

[smart_terrain];esc_polter_smart
squad_id = 6
max_population = 3
def_restr = esc_polter_smart_def_restr

[exclusive]
esc_polter_1 = escape\exclusives\esc_polters_logic.ltx
esc_polter_2 = escape\exclusives\esc_polters_logic.ltx
esc_polter_3 = escape\exclusives\esc_polters_logic.ltx

 

 

[logic@polters]
prior = 200
monster_job = true 

[mob_home@polters]
aggressive = true

[logic@esc_polter_1]:logic@polters
active = mob_home@esc_polter_1
suitable = {=is_monster_polter} true

[mob_home@esc_polter_1]:mob_home@polters
path_home = polter_home_walk_1
home_min_radius = 5
home_max_radius = 10

[logic@esc_polter_2]:logic@polters
active = mob_home@esc_polter_2
suitable = {=is_monster_polter} true

[mob_home@esc_polter_2]:mob_home@polters
path_home = polter_home_walk_2
home_min_radius = 5
home_max_radius = 10

[logic@esc_polter_3]:logic@polters
active = mob_home@esc_polter_3
suitable = {=is_monster_polter} true

[mob_home@esc_polter_3]:mob_home@polters
path_home = polter_home_walk_3
home_min_radius = 5
home_max_radius = 10

 

 

Я им и рестриктор в смарте указал. Не помогает. Из-за чего могут не поддаваться логике?

 

Ранее был известен под ником BoBaH_671.

Кто в курсе как в ЧН и ЗП можно правильно настроить пробиваемость преград? Есть ли у кого точные цифры пробития преград?

Вот допустим в ТЧ

k_pierce = коэффициент бронебойности.
; 1.1 - не пробивается забор и жесть.
; 1.12 - пробивается забор и застревает в первой стенке халупы.
; 1.15 - пробивается забор и застревает в первой стенке халупы.
; 1.2 - пробивается забор и застревает в первой стенке халупы.
; 1.25 - ствол толстого дерева не пробивается. пробивается забор и первая стенка, застревает во второй стенке халупы.
; 1.35 - ствол толстого дерева не пробивается.
; 1.4 - ствол толстого дерева не пробивается.
; 1.45 - ствол толстого дерева пробивается
; 1.5 - ствол толстого дерева пробивается
; бетон не пробивается никогда

А какие циферки ставить в ЗП?

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

Хотя в ТЧ бетонный забор не пробивается вообще, а вот в ЗП прошивается насквозь, за бетонным забором уже не спрячешься. 

Просто охота настроить по реалистичней как-то. Но не могу поймать цифру, чтоб была такая же реалистичность по пробитию как в ТЧ. 

@alex5773, по-моему, если даже были бы точные данные - объекты все равно нужно тестить на пробиваемость на тестовой карте.

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

-

@BoBaH_671, а почему их нужно удерживать логикой? Просто не достаточно указать нужный смарт как цель в распавнере?

@warwer, у меня в скваде прописан target_smart, я немного не догоняю, что нужно сделать-то? Подробнее, пожалуйста. И это полтеры на 1 раз, так сказать, респавн мне не нужен.

Ранее был известен под ником BoBaH_671.

 

 

это полтеры на 1 раз, так сказать, респавн мне не нужен

 

тебе нужен стандартный квад монстров на один распавн. Создаёшь свою секцию в папке misc  squad_descr_....

Теперь нужно создать вызов распавна данной секции. Это делается в логике. Либо логике нпс, либо в логике уровня.

Если нужно очистить смарт от ненужных нпс: %=clear_smart_terrain(имя_смарта)%

Чтобы заспавнить: %=create_squad(твой_сквад : имя_смарта)%

 

Пример для логики нпс:

[remark@rac1]
anim = wait_rac
no_move = true
on_timer = 5000| walker@xodok %=create_squad(твой_сквад : имя_смарта)%

или on_info = {+инфо}  %=create_squad(твой_сквад : имя_смарта)%

 

 

%=create_squad(твой_сквад : имя_смарта)%

Так я и делаю. Через рестриктор. Вопрос заключается в том, почему они улетают за пределы установленных для них границ?

Ранее был известен под ником BoBaH_671.

почему они улетают за пределы установленных для них границ?

Каких границ?

Полтергейстам пишешь логику mob_home

На точку path_home ставишь OUT рестриктор.

В логике прописываешь out_restr = имя_рестриктора

 

И никуда он за радиус рестриктора не улетит.

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

 

 

out_restr = имя_рестриктора

За радиус не улетает и остается в точке спавна. :nea:

Ранее был известен под ником BoBaH_671.

@BoBaH_671, понятно. У тебя происходит спавн монстров в смарте, но логика их не берёт под контроль смарта?

Внимательнее смотри все записи в конфигах. Советую на собаке Ноя потренироваться. У меня было так же, как у тебя. Пока я еще не нашел файлы, где эта собака зарылась.

andreyholkin.gif

rod_cccp.gif

 

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

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

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

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

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

Войти

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

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

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