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

Создание нового НПС


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

В алл.спавн после декомпиляции асдс в файлах way_названиелоки.ltx можно посмотреть пример путей и в них же добавлять свои. В логике поставить путь ходьбы и путь просмотра: path_walk , path_look просто надо изучить вэй файлы повнимательней. Пути создавать надо в файле той локи на которой перс ходит.


Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу.

 

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

Помогите, плиз. Я пытался заспавнить НПС на подключенной локации в сталкер ЗП, делал я ето через алл.спавн. Но мой НПС не появился на своем месте. Попробовать отойти на далекое расстояние от места спавна я не могу, так как заспавнил НПС на локации "Бар". Ждал 2 часа, а мой НПС так и не появился. Заранее спасибо.

Жду ли я Сталкер 2? Хм...
Ссылка на комментарий

raf100

Вот встал вопрос: заспавнил через оллспавн 6 нпс. в разных местах. Задал каждому свой путь. Попутно создал еще 6 и заставил их стоять. Те кто должен стоять стоят а путепроходци идит в одну точку(причем далеко идут) и вертятся в ней по кругу. Как исправить эту карусель?

 

в последней точке нужна сылка на первую (или любую другую)

 

[esc_lager_reid1]

points = p0,p1,p2,p3,p4,p5

p0:name = wp00

p0:position = -8.943,-13.336,-148.609

p0:game_vertex_id = 108

p0:level_vertex_id = 267549

p0:links = p1(1)

 

p1:name = wp01

p1:position = -19.6868887329102,4.10310536956787,36.844128295898

p1:game_vertex_id = 82

p1:level_vertex_id = 257553

p1:links = p2(1)

 

p2:name = wp02

p2:position = -84.155615112305,11.521396697998,130.523866210938

p2:game_vertex_id = 84

p2:level_vertex_id = 182907

p2:links = p3(1)

 

p3:name = wp03

p3:position = -153.528093994141,2.2575981140137,18.302373291016

p3:game_vertex_id = 80

p3:level_vertex_id = 96857

p3:links = p4(1)

 

p4:name = wp04

p4:position = -192.871530517578,-2.9981938781738,-67.598228881836

p4:game_vertex_id = 68

p4:level_vertex_id = 58669

p4:links = p5(1)

 

p5:name = wp00

p5:position = -33.743641113281,2.4169506835938,68.040124755859

p5:game_vertex_id = 86

p5:level_vertex_id = 244276

p5:links = p0(1)

 

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

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

:dash2:

 

esc_unik_npc.script

 

function esc_unik_npc () alife():create("esc_unik_npc",vector():set(133.911072,-4.824186,30.230865),36510,1236) end

База долга- бар ( координаты)

 

npc_prifile.xml

<character id="esc_unik_npc"> 
<class>esc_unik_npc</class> 
</character>

(это написано под надписью " НОВЫЕ ПРОФИЛЯ")

 

spawn_selection

 

под надписью -----------Bar-------------

;-------Stalker----------

 

[esc_unik_npc]:stalker 
$spawn = "respawn\esc_unik_npc" 
character_profile = esc_unik_npc 
spec_rank = regular 
community = stalker
custom_data = scripts\esc_unik_npc.ltx

 

esc_unik_npc.ltx где логика

 

[logic] active = remark1 danger = danger_ignore 
[danger_ignore] ignore_distance = 5 
[remark1] no_move = true

 

info_portions.xml

 

<game_information_portions>
  <info_portion id="storyline_actor_start"> 
<task>storyline_eliminate_gunslinger</task> 
<action>esc_unik_npc.esc_unik_npc</action> 
</info_portion>

 

character_desc_bar.xml

 

<specific_character id="esc_unik_npc" 
team_default = "1"> 
<name>esc_unik_npc</name> 
<icon>ui_npc_u_stalker_neytral_balon_8</icon>
<map_icon x="2" y="5"></map_icon>
<bio> сталкер, детальная информация отсутствует</bio> 
<class>esc_unik_npc</class> 
<community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> 
<rank>121</rank>
<reputation>354</reputation> <money min="1000" max="2500" infinitive="1"/> 
<snd_config>characters_voice\human_01\stalker\</snd_config> 
<visual>actors\neytral\stalker_neytral_balon_1</visual> <supplies> [spawn] \n 
wpn_groza \n 
ammo_9x39_pab9 \n 
1. include "gameplay\character_items.xml" \n 
2. include "gameplay\character_food.xml" 
</supplies> 
1. include "gameplay\character_criticals_3.xml" 
1. include "gameplay\character_dialogs.xml"

 

stable_bio_name.xml

 </string>
<string id="esc_unik_npc"> 
<text>Дятел</text> </string>

:dash2:

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

А я через такую функцию спавню... Только у меня они спавнятся бывает по несколько сталка . Почему так XZ

 

 

function temniy_trader_spwn1()
x = -303.41
y = -39.29
z = -19.80
level_vertex= 67298
game_vertex_id= 1930

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

 

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

Toshik22, вариантов много:

1 не правильные координаты, левел вертекс, геймвертекс

2 неправильный вызов функции спавна

2.1 ты не прописал вызов функции спавна никуда

2.2 прописать то прописал, но вот событие в которое ты его прописал еще не произошло

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

3 при спавне происходит подвисание каких либо скриптов которые не дают доконца отработать спавну, причина может быть где угодно.

STALKERDENIK, а чем это твоя функция отличается от его?

 

=============================

STALKERDENIK, проще... ну да, 6 строк против одной.

Изменено пользователем 8push5
Возможно всё, ну или почти всё.
Ссылка на комментарий

Подскажите пожалуйста, заспавнил через скрипт НПС в ЗП, все прекрасно, он заспавнился и просто стоит на месте, однако он не хочет разговаривать. Как заставить его разговаривать?

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

8push5

 

Строгое предупреждение от модератора Halford
Оверквотингом занимаетесь.
..

 

ну предложи тогда свой вариант что прописать надо, голова вообще не варит у меня...( :wacko2:

Сообщение от модератора Halford
У тебя не вызывается функция нигде! Как это уже говорил 8push5.
Ссылка на комментарий
Toshik22, а я тебе разве не предложил, я тебе сказал что проверить, дерзай, за тебя никто ничего делать не будет.
Возможно всё, ну или почти всё.
Ссылка на комментарий

Кстати можно спаунить несколько одинаковых нпц, на одних координатах.

 

alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)
alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)
alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)
alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)
alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)
alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)
alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)
alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)

 

 

И тем самым образом появиться столько нпц сколько вы прописали.

 

 

И вопрос - как сделать определенного нпц бессмертным?

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

XeoN, может лучше спавн нескольких нпс сделать так?:

function spawn()
spawn_npc(8)
end

function spawn_npc(n)
for i =1, n do
alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)
end
end

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

А вот подскажите мне...

1. Хочу, чтобы при разговоре с новым неписем и при выборе определенного диалога, этот непись становился врагом. Что и куда прописать? <action>braad_test.killactor</action> - не помог.

2. Как правильно прописать нового непися в game_story_ids.ltx?

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

Официальный Discord-сервер по NS OGSR. 
Неофициальный филиал "У Костра", но тоже Discord-сервер.

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

ALEX BOY

1

function bar_nps_enemy(first_speaker, second_speaker)
    second_speaker:set_relation(game_object.enemy, first_speaker)
end

 

Вызов ставь на свою фразу.

2

Делай по анологии.Например: 092 = "escape_provodnik"

 

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

TREWKO

Можно и просто одним циклом сделать :)

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

Да вот кстати

 

бессмертие нпц.

 

Делаем скрипт.

 

function immotral()
local npc = level_object_by_sid(006) --волк
local npc2 = level_object_by_sid(092) --проводник
local npc3 = level_object_by_sid(032)-- кузнецов
local npc4= level_object_by_sid(100) --серый
if npc then
npc.health = 1
end
if npc2 then
npc2.health = 1
end
if npc3 then
npc3.health = 1
end
if npc4 then
npc4.health = 1
end
end

 

После этого

вызов функции в файле bind_stalker.script

в теле (то есть внутри) функции function actor_binder:update(delta)

например после строчки

--апдейт схемы детектора

self.actor_detector:update()

имя_файла.immortal() -- вызов твоей функции бессмертия

 

 

НО! В ГОЛОВУ ДОХНЕТ.

 

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

TREWKO, твой вариант сложнее.

 

 

Да кстати! Кто нить может подска3ат как нпц стори ай дать чере3 скрипт. И можно делать один стори айди на 5 еловек одним?

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

XeoN

И можно делать один стори айди на 5 еловек одним?

Думаю, что нельзя..

Кто нить может подска3ат как нпц стори ай дать чере3 скрипт.

Легче будет при спавне непися дать ему айди:

Функция Артоса

local idMyNPC = nil --/ тут будем хранить ID заспавненного непися!
function spawnych()
  local soObj = alife():create("esc_kvest_killer1",vector():set(-232,-19,-115),22645,8)
  if soObj then --/ перепроверка для безопасности
    idMyNPC = soObj.id --/ запоминаем!!!
  end
end

 

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

Вопрос. Правильно ли я внес координаты в скрипт?

Вот то что выдало

ss_admin_06_26_10_19_06_34_8marshC.jpg

 

в скрипт вписал это:

function esc_unik_npc () alife():create("syslov",vector():set(-178.87,0.87,-315.19),51358,3365) end

 

Правильно?

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

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

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

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

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

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

Войти

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

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

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