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

Форуму нужна фаша помощь!

https://www.amk-team.ru/forum/topic/15150-amk-nuzhna-vasha-pomoshh/

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

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

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

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


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

Добрый вечер!

У меня проблема с моими неписями, Спавн НПС проимходит через smart_terrain, они не работают по логике что я им пишу, а тупо сидят на карточках периодически вставая (при этом странно подергиваясь) и потом снова садятся.

Когда спавнил через all.spawn все работало.

[smart_terrains]

none = true

 

[logic]

active = remark1

danger = danger_ignore

 

[danger_ignore]

ignore_distance = 5

 

[remark1]

no_move = true

 

 

Может в конфигах у меня ошибка, посмотрите пожалуйста.

Вот конфиг одного из нпс:

[escape_187]

; cse_abstract properties

section_name = smart_terrain

name = esc_blokpost_soldier1_smart

position = -131.503113,-30.139643,-382.223450

direction = -0.991485774517059,0,-0.130215004086494

 

; cse_alife_object properties

game_vertex_id = 951

distance = 9.80000019073486

level_vertex_id = 123660

object_flags = 0xffffff3e

custom_data = <<END

[smart_terrain]

cfg = scripts\escape\smart\esc_blokpost_soldier1.ltx -----Здесь же файл с логикой непися нужно прописать?

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 5

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties

 

 

[esc_blokpost_soldier1]:stalker

$spawn = "respawn\esc_blokpost_soldier1"

character_profile = esc_blokpost_soldier1

spec_rank = regular

community = army

story_id = esc_blokpost_soldier1

custom_data = scripts\escape\smart\esc_blokpost_soldier1.ltx -----Позже, мне подсказали и вписал сюда. Все ровно не работает

 

 

[esc_blokpost_soldier1_squad]:online_offline_group

faction = stalker

npc = esc_blokpost_soldier1

target_smart = esc_blokpost_soldier1_smart

story_id = esc_blokpost_soldier1_squad

 

 

 

И еще вот вопрос, для ЗП будет работать такое? С этим я пока еще не очень дружу, но попробывал написать, получилось вот это :blush: (Проверить просто не получается, т.к. неписи не слушается, сидят только на корточках .):

 

Пример:

[esc_blokpost_sniper1]
points = p0,p1
p0:name = wp00 
p0:flags = 0x1      
p0:position = -169.194595,-25.436274,-353.493927
p0:game_vertex_id = 1021
p0:level_vertex_id = 79995
p0:links = p1(1) 

p1:name = wp01 
p1:flags = 0x2            
p1:position = -166.526138,-25.435808,-355.219055
p1:game_vertex_id = 1021
p1:level_vertex_id = 83334
p1:links = p0(1)

 

Логика НПС:

[logic] 
active = walker 

[walker] 
path_walk = esc_blokpost_sniper1

 

 

Не соответствует правилам.

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

NaslednikTutti

Так ты все таки для ЗП или ТЧ делаешь???

 

Если непись под гулагом, это одно, если он со своей логикой, то необходимо в файле с логикой дописать:

[smart_terrains]
none = true; что бы не брался смартом
[logic] 
active = walker 

[walker] 
path_walk = esc_blokpost_sniper1; путь НПС

Относительно путей в all.spawn, это зачем у тебя? На что они стоят???

p0:flags = 0x1

p1:flags = 0x2

Ты полем look пользуешься, исходя из представленной логики нет, тогда к чему флаги, на что они указывают?

 

 

А вообще поскольку НПС через all.spawn рожден, то и логику можно там же и прописать, прямо в секции НПС тобою созданного!

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

Жизнь следует измерять поступками, а не временем...

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

Просто на заметку, заметил в ЧН (а может он и не только там) не очень приятный баг с инвенторём монстров. Если заспавнить напрямую что то в инвентаре монстра через alife() (в моём случае это происходит в момент смерти монстра), то после Save\Load эти вещи пропадают. С НПС такого не замечено.

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

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

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

death_generic не используется для монстров. Пропадает любая вещь, пришлось сперва спавнить её на земле а потом в инвентарь переносить, тогда уже нормально.

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

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

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

С какой частотой вызывается update для серверных классов(se_)?

И как узнать под какой схемой находится в данный момент НПС?

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

Доброго времени суток!

Работаю на Зов Припяти 1.6.02.

Хочу сделать снайпера часового (я в этом полным нуб), вот, начеркал для него базовую схему walker.

* phase time: 16935 ms

* phase cmem: 350251 K

* phase time: 27 ms

* phase cmem: 350251 K

* [win32]: free[1918640 K], reserved[188516 K], committed[2087084 K]

* [ D3D ]: textures[1149492 K]

* [x-ray]: crt heap[350251 K], process heap[13906 K], game lua[36780 K], render[114 K]

* [x-ray]: economy: strings[25402 K], smem[10192 K]

compiling shader model_env_lq

compiling shader model_env_lq_2

compiling shader model_distort4glass_2

compiling shader model_def_lplanes_0

compiling shader model_def_lplanes_1

compiling shader deffer_model_bump_d-hq_1

! Unknown command: dump_infos

! Cannot find saved game ~abort-raw:there is no patrol path %s

* Log file has been saved successfully!

! Cannot find saved game ~abort:there is no patrol path esc_blokpost_sniper1_smart_escape_blokpost_chasovoy_walk

* Log file has been saved successfully!

stack trace:

 

0023:0844E8B3 xrGame.dll, CDialogHolder::CDialogHolder()

0023:0844FB45 xrGame.dll, CDialogHolder::CDialogHolder()

0023:055F2EA3 lua.JIT.1.1.4.dll, luaopen_io()

 

[error][ 183] : Невозможно создать файл, так как он уже существует.

 

 

 

Вот конфиги схемы.

[escape_blokpost_chasovoy_look]
points = p0,p1
p0:name = name00|a=guard_chasovoy
p0:flags = 0x2
p0:position = -158.486877,-30.824171,-286.253876
p0:game_vertex_id = 1091
p0:level_vertex_id = 92831

p1:name = name01|a=guard_chasovoy
p1:flags = 0x1
p1:position = -149.406265,-29.899168,-363.256896
p1:game_vertex_id = 1026
p1:level_vertex_id = 103521


[escape_blokpost_chasovoy_walk]
points = p0,p1
p0:name = name00
p0:flags = 0x1
p0:position = -168.318710,-25.436260,-353.395844
p0:game_vertex_id = 1021
p0:level_vertex_id = 80829
p0:links = p1(1)

p1:name = name01
p1:flags = 0x2
p1:position = -166.309357,-25.436119,-354.571533
p1:game_vertex_id = 1021
p1:level_vertex_id = 83334
p1:links = p0(1)

 

 

 

[smart_terrains]
none = true

[logic@esc_blokpost_sniper1]
active = walker1
danger = danger_ignore 

[danger_ignore] 
ignore_distance = 5 

[walker1] 
path_walk = escape_blokpost_chasovoy_walk
path_look = escape_blokpost_chasovoy_look
team = escape_blocpost

 

 

 

Посмотрите пожалуйста, что тут не так? Что нужно добавить, изменить. Два дня мучаюсь с этим :(

 

 

[esc_blokpost_sniper1]:stalker

$spawn = "respawn\esc_blokpost_sniper1"

character_profile = esc_blokpost_sniper1

spec_rank = regular

community = army

story_id = esc_blokpost_sniper1

 

 

<specific_character id="esc_blokpost_sniper1" team_default = "1">

<name>Солдат</name>

<icon>ui_inGame2_Soldier_2</icon>

<map_icon x="1" y="0"></map_icon>

<bio>Рядовой. Детальная информация отсутствует.</bio>

 

<class>Sniper</class>

<community>army</community>

<terrain_sect>stalker_terrain</terrain_sect>

<snd_config>characters_voice\human_01\military\</snd_config>

 

<rank>40</rank>

<reputation>0</reputation>

 

<visual>actors\stalker_soldier\stalker_soldier_2</visual>

<supplies>

 

[spawn] \n

wpn_svd \n

ammo_7.62x54_7h1 = 2 \n

wpn_pm \n

ammo_9x18_fmj = 1 \n

grenade_rgd5 = 2 \n

 

#include "gameplay\character_items_2.xml"

#include "gameplay\character_food.xml"

#include "gameplay\character_drugs_2.xml"

</supplies>

#include "gameplay\character_criticals_4.xml"

#include "gameplay\character_dialogs.xml"

</specific_character>

 

 

<character id="esc_blokpost_sniper1">

<class>Sniper</class>

</character>

 

 

[start_position_escape]

esc_blokpost_sniper1_squad = esc_blokpost_sniper1_smart

 

 

[esc_blokpost_sniper1_squad]:default_squad

sim_avail = false

 

 

[esc_blokpost_sniper1_squad]:online_offline_group

faction = stalker

npc = esc_blokpost_sniper1

target_smart = esc_blokpost_sniper1_smart

story_id = esc_blokpost_sniper1_squad

 

 

[smart_terrain];esc_blokpost_sniper1

squad_id = 1

max_population = 1

 

[exclusive]

esc_blokpost_sniper1 = escape\esc_blokpost_sniper1_logic.ltx

 

 

 

 

Не соответствует правилам.

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

Тебе же написано:

! Cannot find saved game ~abort:there is no patrol path esc_blokpost_sniper1_smart_escape_blokpost_chasovoy_walk

Признайся, сувал под гулаг непися? Если да то пути должны называться так: имя_смарта_имя_пути

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

Freedom

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

Чаще всего - прилетел game_object туда, где ждали что-нибудь другое. Как правило - строку или number.

 

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

> ! Unknown command:

Обозначает что введенеа неверная консольная команда (у тебя ж в лог выводится, вот игра и воспринимает каждый текст как команду коносли, ничего страшного)

 

> nil говорит о том, что сообщение, которое ты выводил в консоль = nil, тоесть его попросту нету.

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

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

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

Нет в консоль ничего не вводилось

 

Добавлено через 1 мин.:

Из-за этого могут биться сейвы?

Создаю глобальный мод с новыми локациямЭ

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

Real Wolf

как узнать под какой схемой находится в данный момент НПС?

Попробуй

db.storage[npc:id()].active_scheme

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

strelok200,

1. если ты пользуешься логовыми функциями, то первое, что они делают - это выводят твой текст-лог в консоль, а двиг читает любую введенную консольную строку как команду... Посему и пишет Unknown command, а nil - это ты видимо пытаешься выдать в консоль команду nil

2. на платформах ЗП/ЧН: в отличии от ТЧ, на этих двух платформах(как я заметил) если просто выводить текст-лог в консоль, то в консоли тоже пишется Unknown command: твоя строка, но такое возможно от силы 2 раза, в последствии чего происходит фатальная ошибка, после чего лог не выводиться в консоль вообще, да и сама игра/скрипты начинают дико тупить, потому обычно перед своей строкой для вывода в лог приписывают такое: "load ~~~ " -- Заметка на будущее если что)

Изменено пользователем Viнt@rь
Ссылка на комментарий

Скажите прописать story_id предметам это реально?

(для квеста нужно чтоб, предмет был отмечен в ПДА)

 

Интересно, что ты ожидаешь увидеть в ответ? Например, Andrey07071977 тебе ответил более чем исчерпывающе, исходя из твоего вопроса.

ColR_iT

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

Реально

 

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

Спасибо за понимание.

ColR_iT

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

Я и рассчитывал на такой ответ просто хотел узнать возможно или нет, а на счет темы вроде попал, вопрос та мой вроде относится к скриптам. Если не прав прошу прощения.

 

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

P.S. Про разговор "не в ту тему", я обращался к Andrey07071977, потому как его ответ мог вызвать не нужный флуд.

ColR_iT

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

Wik

Ты не обозначил какой объект (сталкер, НПС, рестриктор, ящик и т. д.)

Вот пример из оригинала в all.spawn

[649]

; cse_abstract properties

section_name = inventory_box ; название секции

name = level_prefix_inventory_box_0018 ; твое произвольное название

position = -140.973648071289,-29.689302444458,-354.325927734375 ; координаты

direction = 0,1.60919880867004,0 ; как будет повернут

 

; cse_alife_object properties

game_vertex_id = 0

distance = 0

level_vertex_id = 594270

object_flags = 0xffffff3f ; флаг объекта

custom_data = <<END ; кастом дата

[logic]

cfg = scripts\treasure_inventory_box.ltx ; ссылка на файл с логикой если таковой имеется

END

story_id = 5014 ; то что тебе нужно числовой идентификатор

 

; cse_visual properties

visual_name = physics\equipment_cache\equipment_box_02_case ; визуал

 

После этого регестрируешь в файле gamedata\config\game_story_ids

по типу: 5014 = "esc_secret_0014"

 

 

Извините если это уже флуд, не успел за модератором... :)

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

Жизнь следует измерять поступками, а не временем...

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

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

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

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

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

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

Войти

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

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

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