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

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


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

AndreySol, смотри escape_tasks.script и все будет понятно.

Неважно – сколько у тебя друзей. Важно - сколько из них помогут тебе в трудную минуту и сколько вспомнят о тебе когда им хорошо.

"Худ" и "Умное выпадание частей монстров" для Народной солянки

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

Comador

Если я правильно разобрался, то связка ф-ций:

info_callback в bind_stalker.scipt -> process_info_portion в level_tasks.scipt -> process_info_portion в скрипте локации из таблицы level_scripts в начале level_tasks.scipt предназначена для выполнения нужных действий на локациях при активации инфо-порций ?

Если я правильно понял, то тогда сразу непонятка - в level_tasks.scipt в ф-ции process_info_portion присутствует следующее:

for k, v in pairs(level_scripts) do
	if v.process_info_portion(info_id) then
		return
	end
end 

т.е если process_info_portion из скрипта локации вернет true, то перебор таблицы прерывается. Просматривая имеющиеся в таблице скрипты, обнаружил в darkvalley_tasks.script:

 

function process_info_portion(info_id)
	if info_id == "val_sos_give_tip" then
		level_tasks.add_location(422, "val_sos_location")
	elseif info_id == "val_sos_actor_near_wounded" then
		level_tasks.remove_location(422, "val_sos_location")
	elseif info_id == "val_show_zones" then
		level_tasks.add_location(427, "crlc_big", "val_zone_bandits_hint")
		level_tasks.add_location(428, "crlc_big", "val_zone_monolith_hint")
		level_tasks.add_location(429, "crlc_mdl", "val_zone_robbers_hint")
		level_tasks.add_location(430, "crlc_small", "val_zone_south_gate_hint")
	elseif info_id == "val_show_pipe_zone" then
		level_tasks.add_location(431, "crlc_mdl", "val_zone_pipe_hint")
	elseif info_id == "val_show_farm_zone" then
		level_tasks.add_location(435, "crlc_big", "val_zone_farm_hint")
	else
		return false
	end

	return true -- !!!!
end

Получается, что после обработки этого скрипта дальнейший перебор таблицы будет тупо прерван ? И нарушится обработка активации инфо-порций для других локаций ?

Изменено пользователем ColR_iT
Не цитируй предыдущие посты целиком.
  • Нравится 1
Ссылка на комментарий
@AndreySol, правильно. Как бы очень логично: одна инфопорция - одна метка на карте. Нашёл где ставить метку - перебирать дальше таблицу не имеет смысла.
Ссылка на комментарий

Там не только метки расставляются - для Военных складов есть и управление инфо-порциями...


перебирать дальше таблицу не имеет смысла

Видно не всегда - в escape_tasks

 

 

function process_info_portion(info_id)
	--' пометки на карте

	if info_id == "esc_tutorial_secret_place" then
		level_tasks.add_location(025, "green_location", "tutorial_secret_place1")

	elseif info_id == "esc_tutorial_secret_place_found" then
		level_tasks.remove_location(025, "green_location")

	elseif info_id == "esc_kolyan_lost" then
		level_tasks.add_location(028, "crlc_big", "esc_mill")

	elseif info_id == "esc_kolyan_found" then
		level_tasks.remove_location(028, "crlc_big")

	elseif info_id == "esc_bridge_soldiers" then
		level_tasks.add_location(031, "crlc_big", "soldiers_bridge")

	elseif info_id == "esc_tutorial_secret" then
		level_tasks.add_location(026, "crlc_small", "tutorial_secret")

	elseif info_id == "esc_tutorial_secret_find" then
		level_tasks.remove_location(026, "crlc_small")

	elseif info_id == "esc_shustryi_secret" then
		level_tasks.add_location(027, "crlc_small", "tutorial_secret_shustryi")

	elseif info_id == "esc_shustryi_secret_find" then
		level_tasks.remove_location(027, "crlc_small")
		return false
	end
end

 

 

прерывания дальнейшего перебора таблицы похоже не будет

Изменено пользователем AndreySol
  • Нравится 1
  • Не нравится 1
Ссылка на комментарий

Привет всем. Подскажите пожалуйста возможно ли каким нибудь способом сделать так что бы НПС на карте и в ПДА не отображался, не в списке контактов, короче не где.

Если возможно, то скажите как плиз)

АМК..1.4.1..+..Народная..Солянка..от..19.04.10..дополнение..14.08.10..+..патч..3.09.10..+..DMX..1.3.5..+..ADDON..BY..SARUMAN

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

Всем привет.У меня  появилась проблема с алл.спавном.
Пытаюсь заспавнить смарт терейн на новой локации, но all.spawn не хочет собираться.

[11519]
; cse_abstract properties 
section_name = smart_terrain
name         = nato_exit_kordon
position     = -554.54,16.40,255.76
direction    = 0,0,0

; cse_alife_object properties 
game_vertex_id  = 3880
distance        = 9.09999942779541
level_vertex_id = 98568
object_flags    = 0x==3e
custom_data     = <<END
[smart_terrain]
type     = nato_exit_kordon
capacity = 3
END

; cse_shape properties
shapes        = shape0
shape0:type   = sphere
shape0:offset = 0,0,0
shape0:radius = 20.55957102775574

; cse_alife_space_restrictor properties 
restrictor_type = 3

; se_smart_terrain properties 

 

 

 

 

Illegal hexadecimal digit '=' ignored at stkutils/ini_file.pm line 142, <GEN34> line 14097.

 

 

 

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

Пытаюсь создать глобальный мод с новым сюжетом,буду рад любой оказанной помощи

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

такой трабл: делаю свой инвентарь, вроде все сделал,НО в самом рюкзаке вещи располтженные в крайних ячейках сетки некликабельны,как только выходят из той зоны,начинают кликаться...

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

Здравствуйте! Помогите пожалуйста настроить прицеливание у оружия, а то у меня коряво выходит
http://s2.ipicture.ru/uploads/20131219/2sDG11dM.jpg

 

Скачай методичку по настройке прицеливания от Сольвадора.

http://www.amk-team.ru/forum/index.php?showtopic=8216&p=300204

Под 4-ым спойлером найдёшь.

BFG


Благодарствую.

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

Всем привет, кто подскажет как ускорить время вставания зомби. В общем зомби когда падает, кривляется, а потом встает, так вот, как это время кривляния уменьшить. В xr_wounded, или где искать? Зомби не который мутант, а сталкеры зомбированные, т.е. с оружием.

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

Встаёт он скорее всего потому что у него здоровье успевает восстановится, и он выходит из состояния "раненый". Настрой в конфиге зомби регенерацию здоровья быстрее, ну или иначе тока скриптами шаманить. 

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

@GEDRO, просто там, так сказать, две "зоны"(или правильнее - два статика)

1 - активная зона(статик в котором предметы кликабельны)

2 - зона сетки(статик где отрисовываются сетка и соот-но иконки предметов)

У тебя 1-я меньше или смещена относительно 2-й.

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

Как-бы сделать так, что-б этот народ встал на коленки? Да забыл про то, как можно встать на дыбы.
(с) АлисА

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

При убийстве НПС. Вылет рандомный. ТЧ.

 

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ....a.l.k.e.r #ТЧ\gamedata\scripts\death_manager.script:145: attempt to index field '?' (a nil value)

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

Открой свой (или с оригинала если не менял) death_manager.script и скопируй строчек 10-15 вокруг 145 строки (или сам посмотри что там в скрипте по этой строке). Вылет вроде как связан с тем что в какой то таблице нету вызываемого поля.Если дополнительно в скриптах не шаманил, то скорее всего в death_manager.ltx что то не так настроил. 

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

@Потенциал, в дид.менеджер около 145 строки находятся функции на удаление трупа и спаун предметов в труп. Скорее всего в твоём моде есть не регистрированные предметы и оружие. Открой файл: config\mp\mp_ranks.ltx - исправляется вылет при выкидывании оружия на землю, и пропиши новое оружие сюда и сюда: config\misc\death_generic.ltx на 50-90% - вылет как раз для трупов, тут недочёт может. И по предметам тоже надо покопаться тщательнее. Возможно новая группировка не доделана до конца, это тоже вариант. Хотя я не уверен полностью. Со временем разберёшься.

andreyholkin.gif

rod_cccp.gif

 

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

Всем привет, возникла проблема.

Потребовалось заспавнить в моде на основе ТЧ кота через all.spawn. Ни одной секции с котом в ТЧ нету, но котов можно заспавнить и скриптом. написал свою секцию в all.spawn и получил вылет при сборке

 

; cse_abstract properties


section_name = cat_normal
name = swa_cat01
position = 133.11943054199, 8.5584344863892, -14.657176971436
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6
spawn_id = 2236

; cse_alife_object properties
game_vertex_id = 4019
distance = 0
level_vertex_id = 1152766
object_flags = 0xffffffff
custom_data = < END
[smart_terrains]
none = true
END

; cse_visual properties
visual_name = monsters\cat\cat

 

 

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 1
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

; cse_alife_monster_abstract properties
 

; cse_ph_skeleton properties

; cse_alife_monster_base properties

; se_monster properties
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 133.11943054199, 8.5584344863892, -14.657176971436
upd:g_squad = 1
upd:g_group = 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

 

лог вылета

FATAL ERROR:
Function: stkutils::scan::get_class
Line: 1919
Description: cannot find clsid for class cat_normal at stkutils/debug.pm line 58

 

 

Дальше написано из какой функции вызывается и прочее, но вопрос не в этом.

ACDC ругается на недопустимое имя секции в строке section_name - cat_normal отпадает. Пробовал подобрать другое имя - то же самое. Не подскажет кто, какое имя секции нужно писать? Или где посмотреть эти самые классы или как их там, чтобы не тыкаться подбором, а найти нужное?

 


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

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

@AndrewMor, ну, не знаю. Странная какая-то у тебя секция для спавна кота. Какое-то "безумное" ID и такой же "level_vertex_id = 1152766" и остальное такое же. Ты хоть сам понимаешь, что там у тебя наворочено? Взял бы секцию любой другой "нормальной" зверюги и откопипастил с нужными правками. А уж, как ты адаптировал кошку в чистый ТЧ, уже другой вопрос будет. Попробовал бы сначала скриптовых кошек отспавнить.

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

@AndrewMor, В ACDC acdc.pl открываешь блокнотом и вписываешь новый класс.

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

andreyholkin.gif

rod_cccp.gif

 

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

Добавил новый диалог всем новайсам в лагерь новичков на кордоне. При попытке разговора - безлоговый вылет. Но, если добавить тот же диалог уникальным НПС (Волк, Шустрый), то вылета нет.

 


GENERATE_NAME_bandit
ui_npc_u_stalker_bandit_4
esc_bandit_novice_bio

esc_bandit_novice
banditstalker_bandit_terrain

59
-60

characters_voice\human_01\bandit\
1

0

actors\bandit\stalker_bandit_4

[spawn] \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
device_torch \n
wpn_bm16 \n
ammo_12x70_buck \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_drugs.xml" \n
#include "gameplay\character_food.xml"

dm_gop_stop_dialog_1
#include "gameplay\character_criticals_3.xml"
#include "gameplay\character_dialogs.xml"

 

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

@Потенциал, #include "gameplay\character_dialogs.xml" -  удали для эксперимента, эту строчку. 

 

Добавь вместо #include "gameplay\character_dialogs.xml",

 

<start_dialog>hello_dialog</start_dialog>, и ниже свои диалоги.

 

Смотри еще вот что. На вылет влияет, различие в группировках с собеседником. Это серьёзная тема, править не помню как, но что влияет это точно 100%.

.

andreyholkin.gif

rod_cccp.gif

 

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

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

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

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

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

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

Войти

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

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

×
×
  • Создать...