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

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

 
 

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


Самоуверенность ничто. Болты наше всё.

Скиталец, бродящий в поисках модов.

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


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

Здравствуйте, у меня вот такая проблема с картой:

Спойлер

ss_user_10-04-24_23-29-21_(darkvalley).thumb.jpg.72777a55561032beb50813992bbef3e1.jpg

Общая карта ужалась, а при наведении на ТД не высвечивается название, хотя в game_maps_single всё прописал


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

Vint_the_stalker_ Посмотри на ютубе шеву сталкера (старые видео) и Бориса Шепелёва. Так же тут на сайте есть тема с вопросами по СДК

  • Лайк 1

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


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

Общая карта ужалась, а при наведении на ТД не высвечивается название, хотя в game_maps_single всё прописал

А что вы делали до того, как стало так Вы меняли общую карту на ТЧ? Мне кажется тогда ей нужно тоже прописать отдельно правильные настройки в game_maps_single.

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

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


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

Mawrak У меня мод для конкурса на ЗП. Я в чновском game_maps_single скопировал секцию с тд и вставил в game_maps_single из моей геймдаты. Скопировал ui_global_map.dds из чн к себе в геймдату, тоже сделал и с картой тд.

 

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


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

@Skala, советую воспользоваться Map Dragger.

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


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

Skala а эти секции тоже перенесли?  

image.png.0b9723642036980ddefbf53b7c5ac7d4.png

  • Лайк 1

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


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

Skala а эти секции тоже перенесли?  

image.png.0b9723642036980ddefbf53b7c5ac7d4.png

Нет


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

Скопировал, всё заработало

 

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


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

Здравствуйте.
На локации есть монстр c логикой mob_walker, по инфопоршню он должен пробежать с одного вейпоинта на другой. В точках walk я указал "r=true", чтобы монстр именно бежал. Но в игре результат другой, монстр и вправду по инфопоршню идет на нужную точку, но делает это медленной походкой, хотя в вейпоинте указывал r=true, тобишь бег.
 

Спойлер

image.png

Спойлер

[logic@dv_a2_going_flash]
active = mob_walker@idle
suitable = {=check_npc_name(dv_a2_going_flash)} true
prior = 75
monster_job = true

[mob_walker@idle]
path_walk = fls_2_walk
path_look = fls_2_look
actor_friendly = true
combat_ignore_cond = {=check_enemy_name(military_start_1)} true, {=check_enemy_name(military_start_2)} true, {=check_enemy_name(actor)} true
aggressive = false
friendly = true
npc_friendly = true
on_info = {+lejt_came} mob_walker@attack

[mob_walker@attack]
path_walk = atk_1_walk
path_look = atk_1_look
actor_friendly = true
combat_ignore_cond = {=check_enemy_name(military_start_1)} true, {=check_enemy_name(military_start_2)} true, {=check_enemy_name(actor)} true
aggressive = true
friendly = true
npc_friendly = true

 

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

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


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

На локации есть монстр c логикой mob_walker

У вас все смешалось в логике.

Не путайте ТЧ и ЗП. Где вы этого всего насмотрелись?

1 час назад, vasyan54636 сказал:

aggressive = false
friendly = true
npc_friendly = true

Эти параметры не используется в логике mob_walker в ЗП. Сразу "в топку".

 

1 час назад, vasyan54636 сказал:

actor_friendly = true

Это туда же.

Для перемещения монстра из одной точки в другую лучше использовать не скриптовую mob_walker, а движковую логику mob_home.

В этом случае:

1. Если параметр aggressive равен true - бежим в точку. 

2. Если параметр aggressive равен false - идем в точку.

 

  • Мастер! 1
  • Спасибо 1

Терпение... И все получится.

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 04.10.2024 в 13:13, Flanceton сказал:

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

Посидел на досуге и придумал, как добавить тайники в ящиках, для схемы тайников в ЗП.
Для этого меняем скрипт treasure_manager.script.
Функция CTreasureManager:initialize() должна принять такой вид:

Спойлер

function CTreasureManager:initialize()
	local ini = ini_file("misc\\secrets.ltx")
	local n = ini:line_count("list")
	for i=0,n-1 do
		local result, id, value	= ini:r_line("list",i,"","")
		if(ini:section_exist(id)) then
			if string.find(id,"_hiding_box_") then
				self.secrets[id] = {items = {}, given = false, empty = nil, refreshing = false, checked = false, to_find = 0, box = true}
			else
				self.secrets[id] = {items = {}, given = false, empty = nil, refreshing = false, checked = false, to_find = 0, box = false}
			end
					local items_count = ini:line_count(id)
					local item_section = ""
					for i=0,items_count-1 do
							result, item_section, str = ini:r_line(id,i,"","")
				if(item_section=="empty") then
									local parsed_condlist = xr_logic.parse_condlist(nil, "treasure_manager", "empty_cond", str)
					self.secrets[id].empty = parsed_condlist
				elseif(item_section=="refreshing") then
									local parsed_condlist = xr_logic.parse_condlist(nil, "treasure_manager", "refreshing_cond", str)
					self.secrets[id].refreshing = parsed_condlist
				else
									self.secrets[id].items[item_section] = {}
									local tbl = utils.parse_spawns(str)
									if(#tbl==0) then
											abort("There is no items count set for treasure [%s], item [%s]", id, item_section)
									end
					for i=1,#tbl do
						local tbl = {count = tonumber(tbl[i].section), prob = tonumber(tbl[i].prob or 1)}
						table.insert(self.secrets[id].items[item_section], tbl)
					end
				end
			end
		else
			abort("There is no section [%s] in secrets.ltx", tostring(id))
		end
	end
end

 

Функция CTreasureManager:spawn_treasure такой:

Спойлер

function CTreasureManager:spawn_treasure(treasure_id)
	if not(self.secrets[treasure_id]) then
		abort("There is no stored secret [%s]", tostring(treasure_id))
	end
	if(self.secrets[treasure_id].given) then
		printf("Secret [%s] already given!", treasure_id)
		return
	end
	for item_section,item_params in pairs(self.secrets[treasure_id].items) do
		for num = 1,#item_params do
					for i = 1,item_params[num].count do
							local prob = math.random()
							if(prob<item_params[num].prob) then
					if(item_params[num].item_ids and item_params[num].item_ids[i]) then
											local se_obj = alife():object(item_params[num].item_ids[i])
											local obj = alife():create( item_section, se_obj.position, se_obj.m_level_vertex_id, se_obj.m_game_vertex_id)
											obj.angle = se_obj.angle
											obj:use_ai_locations(se_obj:used_ai_locations())
											self.items_from_secrets[obj.id] = self.secret_restrs[treasure_id]
											self.secrets[treasure_id].to_find = self.secrets[treasure_id].to_find + 1
					end
					if (self.secrets[treasure_id].box) then
						
						local box_id = get_story_object_id(treasure_id)
						self.secret_restrs[treasure_id] = box_id
						local inv_box = alife():object(box_id)
						local obj = alife():create( item_section, inv_box.position, inv_box.m_level_vertex_id, inv_box.m_game_vertex_id, box_id)
							
						self.items_from_secrets[obj.id] = self.secret_restrs[treasure_id]
						self.secrets[treasure_id].to_find = self.secrets[treasure_id].to_find + 1
						
					end
					
							end
					end
		end
	end
end

 

Функция CTreasureManager:load такой:

Спойлер

function CTreasureManager:load(package)
	
	for k,v in pairs(self.secrets) do
		if (v.box) then
			local box_id = get_story_object_id(k)
			self.secret_restrs[k] = box_id
		end
	end
	
	set_save_marker(package, "load", false, "CTreasureManager")
	self.items_spawned = package:r_bool()
	self.items_from_secrets = {}
	local num = package:r_u16()
	for i=1,num do
		local k = package:r_u16()
		local v = package:r_u16()
		self.items_from_secrets[k] = v
	end

	local num = package:r_u16()
	for i=1,num do
		local id = package:r_u16()
		for k,v in pairs(self.secret_restrs) do
			if(v==id) then
				id = k
				break
			end
		end
		local given = package:r_bool()
		local checked = package:r_bool()
		local to_find = package:r_u8()
		local box = package:r_bool()
		if(id~=65535 and self.secrets[id]) then
			self.secrets[id].given = given
			self.secrets[id].checked = checked
			self.secrets[id].to_find = to_find
			self.secrets[id].box = box
		end
	end
 	set_save_marker(package, "load", true, "CTreasureManager")
end

 

Ящик используемый в качестве тайника должен называться в духе: zat_hiding_box_1 и иметь стори ид равный названию! А также логику обычного ящика, для того чтобы ГГ мог его лутать.
Ящик нужно внести в структуру secrets.ltx аналогично с остальными тайниками.

Изменено пользователем denis2000
  • Сталкерский лайк 1
  • Хабар 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


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

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

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


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

Skala 
bind_stalker.script, функция on_item_drop, там где тебе нужно пишешь

xr_sound.set_sound_play(db.actor:id(), "ПУТЬ до звука или название секции в misc\script_sound.ltx")

 

Изменено пользователем KILDIN
  • Жму руку 1

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


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

Как можно узнать текстуры у определенного партикла?

Изменено пользователем Крим

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


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

Крим Открыть в редакторе и посмотреть.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


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

denis2000 А точно, я забыл, что у партиклов свой редактор есть :)


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

Спасибо

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


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

KILDIN А как туда нужный мне предмет прописать? Мне это для одной вещи нужно

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

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


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

Всем добрый вечер. У меня вопрос к знатокам: есть ли возможность из ТЧ удалить каким-либо образом тайник? В смысле, вообще стереть его из игры полностью, как будто его и не было.

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 05.10.2024 в 23:02, denis2000 сказал:

Посидел на досуге и придумал, как добавить тайники в ящиках, для схемы тайников в ЗП.

безмерно благодарен, правда при заходе такая штука:

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ...\stalkercoc\gamedata\scripts\treasure_manager.script:140: 'for' limit must be a number

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


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

Flanceton Накосячили в конфигах.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 минуты назад, denis2000 сказал:

Flanceton Накосячили в конфигах.

конкретно в game_story_ids имя тайника указано, в secret_(локация) и лист и секция тайника - всё без ошибок

  • Жму руку 1

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


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

поставил на свой мод stalker 2k 

FATAL ERROR
 
[error]Expression    : Ran out of memory
[error]Function      : CRender::texture_load
[error]File          : D:\prog_repository\sources\trunk\Layers\xrRenderDX10\dx10Texture.cpp
[error]Line          : 502
[error]Description   : D3DX10CreateTextureFromMemory ( HW.pDevice,S->pointer(),S->length(), &LoadInfo, 0, &pTexture2D, 0 )
[error]Arguments     : f:\s.t.a.l.k.e.r\s.t.a.l.k.e.r. call of pripyat\gamedata\textures\veh\veh_vagon1_01_bump.dds
 

stack trace:

0023:69737365 nvwgf2um.dll

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 05.10.2024 в 18:02, denis2000 сказал:

                        local tbl = {count = tonumber(tbl.section), prob = tonumber(tbl.prob or 1)}
                        table.insert(self.secrets[id].items[item_section], tbl)

Ошибка в коде, вы не указали элемент массива tbl "i". Скорее всего возвратит nil значение. 

@Flanceton Решение вашей проблемы на скриншоте ниже:


P.S. Видимо не ошибка в коде, а почему-то не отображаются квадратные скобки с "i" в сообщении, c моим сообщением так-же, прикол)
 image.png.420da45e4b3150dcc233ad30f760a1a4.png

Изменено пользователем Drive
  • Жму руку 1
  • Хабар 1

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


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

Flanceton Drive Прошу прощения, из-за того, что текст из скрипта был вставлен без контейнера КОД его покорежило при сохранении сообщения. Добавил тег и снова скопировал код.
У меня все четко работает, будьте внимательны при вставке кода! Если снова возникают ошибки, вот ссылка на файл treasure_manager.script

 


Кадоре Не та тема!


 

В 06.10.2024 в 18:04, Flanceton сказал:

конкретно в game_story_ids имя тайника указано

Этот файл в ЗП не используется!


В 06.10.2024 в 22:49, Drive сказал:

отображаются квадратные скобки с "i"

Абсолютно точно движок форума считает, что это открывающий тег для курсива!

treasure_manager.script

Изменено пользователем denis2000
  • Жму руку 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


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

Как изменить группировку ГГ по скрипту? И можно ли это сделать через рестриктор? Например, был вольным сталкером, стал бандитом. В интернете нормальных гайдов именно для ЗП не нашёл.

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


Ссылка на сообщение
Поделиться на другие сайты
 
28 минут назад, Boomer сказал:

Как изменить группировку ГГ по скрипту?

db.actor:set_character_community("группировка", 0, 0)


Дополнено 2 минуты спустя
31 минуту назад, Boomer сказал:

И можно ли это сделать через рестриктор? 

попробуй функцию change_actor_community


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

on_actor_inside = %=change_actor_community(bandit)%

вот так примерно выглядеть будет.

  • Спасибо 1

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


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

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

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

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

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

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

Войти

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

Войти

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