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

Создание NPC "привязанного к точке" без редактирования all.spawn


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

здрасте. Поставил такую логику человеку:

[smart_terrains]
none = true
[logic]
active = remark
combat_ignore = combat_ignore
[combat_ignore]
[remark]
anim = sit_ass
combat_ignore_cond = always

 

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

Анимация запрещена. N6260

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

Попробуй так:

[smart_terrains]
none = true

[logic]
active = remark
combat_ignore = combat_ignore

[combat_ignore]

[remark]
anim = sit_ass
combat_ignore_cond = always
on_timer = 80000| remark@zanovo

[remark@zanovo]
anim = sit_ass
combat_ignore_cond = always
on_timer = 80000| remark

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

Здравствуйте товарищи. Недавно захотел отредактировать all.spawn в Priboy Story, но ACDC не хочет его декомпилировать. Помогите! Что мне делать?

Одна голова хорошо, две плохо, а три вообще труба!
Ссылка на комментарий

Blackcomb, привет. С наступающим Новым годом!

Создать можно, вот как-то так: http://www.amk-team.ru/forum/index.php?sho...st&p=430757

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

Jurok,

Лучше так:

[smart_terrains]

none = true

 

[logic]

active = валкер

 

Валкер

вак

лук

он_инфо, он таймер, он актор и прочее = ремарк

 

два ремарка подряд - вы увидите лишь в солянке. По одной причине - пока слишком сложно там всё подправить. Однако - глюки с 2 ремарками Вам обеспечены

 

 

Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка

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

Здравствуйте, на предыдущий странице заметил пост товарищя Arhara с таким содерханием:

а вот вот - с пропиской путей и логики без лтх

function спавним_Ваню()

local obj = alife():create("Ваня",vector():set(-373.1247253,-13.994354248,398.263183594),869,1848)

local params=amk.read_stalker_params(obj)

params.custom="[logic]\nactive=walker\n[walker]\npath_walk = Ваня_walk\npath_look = Ваня_look\ncombat_ignore_cond=always"

params.sid=9627

amk.write_stalker_params(params,obj)

end

Я правильно понял что можно прописать НПСу пути без all.spawn?

Если да то можно по подробнее куда прописывать координаты точек пути?

 

TRAMP14 У тебя проблемы с моделью. Я так понял ты в ТЧ сделать несколько чистонебовцев? Если надо могу скинуть рабочие модельки НПС.

Изменено пользователем @"StreloK"

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

Как правильно спавнить патроны в инвентарь НПС? ...

Добавляю через config/gameplay у НПС появляется 9 или 8 патрон, хотя я дабавлял : [ammo _9x39_ap = 15 \n]

Прописанное здесь количество измеряется в штуках или пачках?...

Подскажите пожалуста, почему для того чтобы изменения вступили в силу мне набо начать новую игру? Если загружаю сохранение изменений нет...

Спасибо...

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

Luch патроны НПСям посмертно раздаются в файлах death_generic.ltx, death_items_by_communities.ltx, death_items_by_levels.ltx и death_items_count.ltx.

А прописывая в config/gameplay они измеряются вроде в пачках,но непеси их толи тратят, толи количество обрезается по верхнему пределу назначенному в death_items_count.ltx.

 

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

Мда проблемы у меня смешные, но исправлять надо. Создал двух снайперов, прописал им уникальные имена (Ваня Борзый и Вася Сизый) Но вот проблема - на месте Васи стоит "труп" который лежит возле моста на кордоне а на месте етого трупа лежит Ваня1. Ваня2 (1 вопрос - откуда он взялся?) шастает по кордону туда-сюда. Ваня3 (опять же откуда?) стоит на месте спавна.

2 вопрос где Вася?

3 вопрос - как убрать Ваню1 и 2

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

Помогите не как не могу создать нпс, вылет и все :ny_unsure:

Подскажите, пожалуйста, где ошибки... Спасибо...

*1
Для начала создадим профиль!
Откроем фаил character_desc_escape.xml
и создаем там новый профиль
Пример:
<specific_character id="esc_luch" team_default = "1">
<name>Luchr</name>
<icon>ui_npc_u_stalker_neytral_balon_1</icon>
<map_icon x="1" y="0"></map_icon>
<bio>Опытный сталкер. Детальная информация отсутствует.</bio>

<class>esc_luch</class>
<community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
<snd_config>characters_voice\human_01\stalker\</snd_config>

<rank>100</rank>
<reputation>200</reputation>

<visual>actors\neytral\stalker_neytral_balon_1</visual>
<supplies>
[spawn] \n
wpn_ak74 \n
ammo_5.45x39_fmj = 5 \n
</supplies>
#include "gameplay\character_criticals_4.xml"
#include "gameplay\character_dialogs.xml"
</specific_character>

*2
Теперь нужно прописать класс нашего НПС в npc_profile.xml
Пример:
<character id="esc_luch">
<class>esc_luch</class>
<specific_character>esc_luch</specific_character>
</character>

*3
Теперь зарегистрируем Нашего НПС в spawn_section.ltx
[esc_luch_spawn]:stalker
$spawn = "respawn\esc_luch_spawn"
character_profile = esc_luch
spec_rank = regular 
community = stalker (esc_luch)
custom_data = scripts\sniper_addon\sniper_addon_friend_logic.ltx

Вопрос 1: куда здесь писать?... я писал после: ;------Escape------
                                                                      ;------neutrals-----
*4
Потом открываем xr_conditions.script
и добавляем вот такую функцию 

function is_sniper_enemy(enemy, object)
return enemy:id() ~= db.actor:id()
end

Вопрос 2: куда писать? я писал в самый конец дерективы: Special functions for Escape...
*5

5.1 - 5.2 : не выполнял поскольку координаты извесны...

*5.3
Далее создаём скрипт спавна
(создаётся с помощью блокнота)
scripts\Luch_add.script
В нём будем писать функции!

function start_add_spawn()
spawn_sniper_one()
end

function spawn_sniper_one()
local x= -181.15849
local y= -20.21801
local z= -151.88803
local level_vertex= 69494
local game_vertex_id= 52
alife():create("esc_luch_spawn",vector():set(x,y,z),level_vertex,game_vertex_id)
end

function save_variable(variable_name, value)
xr_logic.pstor_store(db.actor, variable_name, value)
end
function load_variable(variable_name, value_if_not_found)
return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found)
end

*5.4
Когда вписали всех наших Снайперов и все функции спавна и внесли их в "список",то добавляем вызов нашей функции в bind_stalker.script

в функцию actor_binder:update(delta)
перед последнем end'ом этой функции
добавляем
if sniper_add.load_variable("spawn_sniper",false)==false then
sniper_add.start_add_spawn()
sniper_add.save_variable("spawn_sniper",true)
end

Сохраняем!(Вопрос 3: что значит сохраняем?... Я все блокноты при закрытии сохраняю...)

*6
Теперь работаем с логикой.
в папке configs/scripts создаём папку с sniper_addon , открываем её
*6.1
Создаём два фаила
sniper_addon_friend_logic.ltx и sniper_addon_enemy_logic.ltx
*6.2
открываем sniper_addon_friend_logic.ltx
и вписываем туда:
;SNIPER ADDON
;Меченый(Стрелок)
[logic]
active = remark@search

[remark@fire]
combat_ignore_cond = {!is_sniper_enemy}
radius = 0
anim = hide
on_info = {=health_le(0.5)} remark@search
wounded = wounded@work
sniper = true

[remark@search]
combat_ignore_cond = true
combat_ignore_keep_when_attacked = false
anim = hide
target = actor
on_info = {=see_enemy} remark@fire
wounded = wounded@work
[smart_terrains]
none = true
[wounded@work]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false

Сохраняем этот фаил и открываем второй
и вставляем туда
;SNIPER ADDON
;Меченый(Стрелок)
[logic]
active = remark@search

[remark@fire]
combat_ignore_cond = {!is_enemy_actor}
radius = 0
anim = hide
on_info = {=health_le(0.5)} remark@search
wounded = wounded@work
sniper = true
[smart_terrains]
none = true
[remark@search]
combat_ignore_cond = true
combat_ignore_keep_when_attacked = false
anim = hide
target = actor
on_info = {=see_actor} remark@fire
wounded = wounded@work

[wounded@work]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false

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

Вылет дай 1 и 2 вопросы детально правильно. 3 - еслиб не сохранял вылета небылобы :)

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

А где можно посмотреть список анимаций НПС? Или конкретно как называется анимация Валерьяна "руки за спину" и Шустрого (сидит и засыпает)?

Ссылка на комментарий
Volchara В сдк. И не только посмотреть а и увидеть. За шустрого тоже в сдк, посмотри его логику через свойства, ну и все...а там смотри что и как. Изменено пользователем amik

Мой архив

Сталкером не занимаюсь.

Ссылка на комментарий
А где можно посмотреть список анимаций НПС?

gamedata\scripts\state_lib - ищи там.

 

Вот самые основые анимации, которые могут пригодиться:

search - поиск. (смотрит по сторонам)

prisoner - анимация заложника (На примере Митяя)

sit_ass - сидячее состояние.

play_guitar - игра на гитаре.

sleep - анимация сна.

hello - приветствие.

eat_vodka - анимация распития водки. :)

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

Всем привет!

Подскажите в чём ошибка, спавню сталка (в ТЧ), при загрузке на "синхронизации" долго думает и потом вылет с логом:

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...g\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:699: attempt to index global 'sniper_add' (a nil value)

 

----------------------------------------------------

 

<!---------------------------Сталкер Малой----------------------->

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

<name>Малой</name>

<icon>ui_arhara_zaton_st1</icon>

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

<bio>sim_stalker_master_bio</bio>

 

<class>zaton_maloy</class>

<community>stalker</community><terrain_sect>stalker_terrain</terrain_sect>

 

<rank>924</rank>

<reputation>79</reputation>

 

<snd_config>characters_voice\human_03\stalker\</snd_config>

<crouch_type>0</crouch_type>

 

<visual>new\zaton_maska</visual>

<supplies>

[spawn] \n

wpn_vintorez_m2 \n

ammo_9x39_sp5 = 1 \n

medkit_scientic \n

#include "gameplay\character_items.xml"

#include "gameplay\character_food.xml"

</supplies>

#include "gameplay\character_criticals_2.xml"

#include "gameplay\character_dialogs.xml"

</specific_character>

 

 

</character>

<character id="zaton_maloy">

<class>zaton_maloy</class>

</character>

 

 

[zaton_maloy_respawn]:stalker

$spawn = "respawn\zaton_maloy_respawn"

character_profile = zaton_maloy

spec_rank = master

community = stalker

custom_data = scripts\maloy_addon\maloy_addon_friend_logic.ltx

 

 

function start_add_spawn()

spawn_sniper_one()

end

 

function spawn_sniper_one()

local x=360.57971191406

local y=7.4603457450867

local z=250.92784118652

local level_vertex=238705

local game_vertex_id=3667

alife():create("zaton_maloy_respawn",vector():set(x,y,z),level_vertex,game_vertex_id)

end

 

function save_variable(variable_name, value)

xr_logic.pstor_store(db.actor, variable_name, value)

end

function load_variable(variable_name, value_if_not_found)

return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found)

end

 

 

 

-- пробный спавн нпс

function is_maloy_enemy(enemy, object)

return enemy:id() ~= db.actor:id()

end

Вставил в "общие функции"

 

 

if sniper_add.load_variable("spawn_sniper",false)==false then

sniper_add.spawn_maloy()

sniper_add.save_variable("spawn_sniper",true)

end

Так же не понятно куда вставлять.

 

 

[logic]

active = remark@search

 

[remark@fire]

combat_ignore_cond = {!actor_enemy}

radius = 0

anim = hide

on_info = {=health_le(0.5)} remark@search

wounded = wounded@work

stalker = true

 

[smart_terrains]

none = true

 

[remark@search]

combat_ignore_cond = true

combat_ignore_keep_when_attacked = false

anim = hide

target = actor

on_info = {=see_actor} remark@fire

wounded = wounded@work

 

[wounded@work]

hp_state = 0|wounded_heavy@help_heavy

hp_state_see = 0|wounded_heavy@help_heavy

hp_victim = 0|nil

hp_fight = 0|false

hp_cover = 0|false

 

 

[logic]

active = remark@search

 

[remark@fire]

combat_ignore_cond = {!actor_enemy}

radius = 0

anim = hide

on_info = {=health_le(0.5)} remark@search

wounded = wounded@work

stalker = true

 

[remark@search]

combat_ignore_cond = true

combat_ignore_keep_when_attacked = false

anim = hide

target = actor

on_info = {=see_enemy} remark@fire

wounded = wounded@work

[smart_terrains]

none = true

[wounded@work]

hp_state = 0|wounded_heavy@help_heavy

hp_state_see = 0|wounded_heavy@help_heavy

hp_victim = 0|nil

hp_fight = 0|false

hp_cover = 0|false

 

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

Чистильщик - читер каких мало. ;)

Ссылка на комментарий
kalter, показывай, что делал - все коды которые писал\изменял для этого спавна. Вылет из-за ошибки в скрипте.

ТЧ 1.0004. SAP и Trans mod

github

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

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

название_секции из character_****

класс прописанный вами ранее

respawn\секция спавна

группировка которую вы приписали этому (название_секции из character_****.xm

 

У других это получается одно и тоже или тут также если нет подскажите пожалуйста

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

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

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

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

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

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

Войти

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

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

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