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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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


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

 

 

сообщение не выдается

Ну вообще-то, send_tip ожидает строку, а get_population возвращает число. Попробуй так:

send_tip(db.actor, tostring(population), nil, nil, 30000)

 

У меня такой вопрос: есть ф-ция пространства game_object - character_name(). Она естественно только для клиентской части\он-лайна. А какой-то аналог для серверной части\офф-лайна имеется ?

@UnLoaded, функции нет, но можно прочитать через нетпакет.







function get_npc_name(obj)
	local m_s_name = ""
	if (obj) then
		if (isGameObject(obj)) then
			if (obj.character_name) then
				m_s_name = obj:character_name()
			end
		else
			local ob = get_obj(obj.id)
			if (ob and ob.character_name) then
				m_s_name = ob:character_name()
			else
				if (amk and amk.read_stalker_params and IsNpcStalker(obj)) then
					local tbl = amk.read_stalker_params(obj)
					if(tbl and tbl.charname) then
						m_s_name = tbl.charname
					end
				end
			end
		end
	end
	if (m_s_name == nil) then
		m_s_name = ""
	end
	if (m_s_name == "") then
		--m_s_name = get_npc_community(obj)
	end
	return m_s_name
end

 

 

Здрасти. Подскажите, что за беда. Играю на динамике. Все текстуры и бампы есть, прописаны, а вояка все равно с черными очками. В Зоне не так солнечно, чтоб черные очки примерять. :D

 

a9885b9994e41970e07384d869c5bd14.jpg

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

 

 

send_tip(db.actor, tostring(population), nil, nil, 30000)

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

 

if population == 0 then

  news_manager.send_tip(db.actor, "любой текст", nil, nil, 30000)

end

 

работает, значит, population как раз и равна нулю, что не есть хорошо.


 

 

Попробуй так: send_tip(db.actor, tostring(population), nil, nil, 30000)

Пробовал, выдает 0.

Сталкер - наше всё!

Функция есть - name, как, к слову, и ранг.

Ага, есть. Только возвращает совсем не то, что character_name...

 

Такое вот получилось, с использованием модуля нет-пакетов от Artos'а:

     local pk = m_netpk.get(серверный_объект)
     if pk:isOk() then
          local data = pk:get()
          if data then
               npc_name = tostring(data.checked_characters)
          end
     end
а именно число знать

Чтоб получить данные по смарту, находящемуся в офф-лайне, бессмысленно дергать методы "приписанного" к нему гулага - они работают только в он-лайне. Смотри в сторону smart_terrain.script, он как я понимаю обрабатывает смарт и в офф-лайне. Там кстати есть ф-ция se_smart_terrain:stat(), а в ней

local pop   = self.gulag:get_population()

может это то, что тебе нужно.

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

Для всех подобных функций предусмотрен севрерный аналог. Посмотри функционал серверных объектов.

 

По поводу гулагов смотрите xr_gulag, там есть функции и они подробно описаны. Корректную работу в оффлайне гарантируют отладочные системы многих модов.

Для смартов есть такой инструмент:

Автор: dez0wave

«Инструмент для смарт-террейнов и патрулей-вейпойнтов. Смарт-террейн дебаг утилита + отображение на КПК»

http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=199 (24 Кб .zip)

Показывает много чего про них на карте

2fff8a9ee1e09d4579b26c2f758e0092.jpg

 

Изменено пользователем Eugen81
  • Полезно 1
 

10.png

 

 

Чтоб получить данные по смарту, находящемуся в офф-лайне, бессмысленно дергать методы "приписанного" к нему гулага - они работают только в он-лайне.

Это я уже и сам понял...

 

 

 

Смотри в сторону smart_terrain.script, он как я понимаю обрабатывает смарт и в офф-лайне.

Спасибо, буду пробовать.

Сталкер - наше всё!

@Возрождённый, Если у тебя все по дефолту, то так сложились звезды :pardon:

Возможно на текстуру очков наложили эффект отражений (на подобии такого у игровых стекол) и под определенном углом они становятся черными

а возможно банальный косяк текстуры/модели.

Мы по аномалиям зону разберём!

Сидора повесим, а Бармена убьём!

Ну а вояк мы смоем в унитаз!

Пускай плывет в канализации спецназ!

 

 

кстати есть ф-ция se_smart_terrain:stat(), а в ней local pop = self.gulag:get_population()

Я так и не понял, как мне эту функцию вызвать, а примеров ее вызова не нашел.

Сталкер - наше всё!

Подскажите пожалуйста такой вопрос :

- вот создал я смарт-террейн. Поместил туда 3 кровососов. Побегал по локации, нащёлкал скринов с координатами точек путей для каждого. Ну точек по 4-5. Переписал их в вэй-файл.

 

Собственно меня интересует такая штука : вот сработал поршень, появились эти 3 сосыча. 

1. Где они появятся ? В координатах смарт-террейна ? А потом будут идти до своих путей ?

2. Или они появятся каждый на начальных точках своего пути ?

3. А как узнать какой из них на какой путь будет назначен ? Это случайное распределение ?

4. Насколько далеко ( в метрах ) можно делать пути мобов от центра смарт_террейна ? 

5. Если я в кастом_дате СТ, не буду ставить строку cond = {+поршень}, значит они у меня там будут прямо с НИ ?

Спасибо.

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

"Кругом зомби.....у меня кончаются патроны...."

как мне эту функцию вызвать

Ну чисто так, навскидку:

 - в smart_terrain.script добавь ф-цию типа:

function se_smart_terrain:get_capacity()
     return self.gulag.capacity
end

 - к примеру нам нужен смарт в Деревне новичков на Кордоне, обзывается он "esc_lager":

for a=1,65535 do
     local s_obj = alife():object(a)
     if s_obj then
          if s_obj:section_name() == "smart_terrain" and s_obj:name() == "esc_lager" then
               local text = "Население: "..tostring(s_obj:get_capacity()).." человек"
               news_manager.send_tip(db.actor, text, nil, nil, 30000)
               break
          end
     end
end

У меня выдает 14(у меня в нем действительно 14 душ), вызывал ф-цию на Свалке, т.е. Кордон стопудово офф-лайн, значит это вроде то что тебе нуно...

 

@BFG

"Где они появятся ? В координатах смарт-террейна ?" - появятся они в координатах своих точек спавна, которые им в all.spawn'е будут прописаны.

"Это случайное распределение ?" - если не будет в назначении работ предикатов(которые будут четко рулить кому куда), то естественно случайно.

"Насколько далеко ( в метрах ) можно делать пути мобов от центра смарт_террейна ? " - да хоть на другом конце локации.

"Или они появятся каждый на начальных точках своего пути ?" - тут много буков, будет под

Из того, что мне удалось понять\узнать: после спавна мобов и назначения их на какую-то работу в каком-то гулаге(иже смарте), движок переместит их на первые точки путей, даже если это будет в офф-лайне. После выхода в он-лайн, мобы начнут отрабатывать логику и пойдут к следующим точкам путей. Опять-же, есть работы для которых не предусмотрены четкие пути - mob_home к примеру, там моб будет работать в установленных радиусах от точки home. В таких случаях(тут могу быть не прав) мобы в офф-лайне будут сидеть на ближайшем к точке home граф-поинте(гейм-вертексе), а по выходу в он-лайн начнут работать вокруг указанной точки.

 

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

 

 

У меня выдает 14(у меня в нем действительно 14 душ), вызывал ф-цию на Свалке, т.е. Кордон стопудово офф-лайн, значит это вроде то что тебе нуно...

Огромное спасибо, вечерком попробую.

Сталкер - наше всё!

У меня выдает 14(у меня в нем действительно 14 душ), вызывал ф-цию на Свалке, т.е. Кордон стопудово офф-лайн, значит это вроде то что тебе нуно...

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

 

 

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

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

 

function gulag:get_population()

 return self.population

end

 

из xr_gulag?

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

Сталкер - наше всё!

@AndrewMor, в task_manager для этого используется get_population_comed():

local obj = alife():object("имя_смарта")
if obj.gulag:get_population_comed() > 0 then...
Как-то так, насколько помню. Вполне себе работает с оффлайновыми смартами. Изменено пользователем naxac

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

naxac.gif

 

 

в task_manager для этого используется get_population_comed():

Да вроде не работала, когда смарт в оффлайне, выдавала живое население 0. В онлайне - все было нормуль.

 

Или у меня не получилось ее правильно использовать.

Сталкер - наше всё!

Capacity - константа, которая читается из базовых настроек

Не спорю, видимо так оно и есть. Тогда можно попробовать:

function se_smart_terrain:get_population()
     return self.gulag:get_population() -- или get_population_comed()
end

@AndrewMor

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

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

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

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

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

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

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

Войти

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

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

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