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

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


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

Что и где нужно прописать у НПС чтобы он находясь под гулагом в определенное время переключился на

[smart_terrain]

none = true и наоборот ????

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


Ссылка на сообщение

gruber

 

Это не совсем то что хотелось

Нужно чтоб НПС находясь под гулагом любым в определенное время отправился по своим

делам тоесть в none = true а погуляв некоторое время стал снова доступен смартгулагам

любым верней тем которым подходит

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


Ссылка на сообщение

Kostya V

 

Спасибо

но наскольло я понимаю невозможно создать смартгул на всю локу ? или можно ?

Как заставить непися для начала просто в определенное время покинуть гулаг перейти под свою логику но не в другой гулаг если он конечно не на всю локу

 

допустим начало игры новички у костра в 5.20 один из них должен уйти в [smartterain] none = true

а в 12.00 вернутся обратно или к любому другому camp

 

НПС находится под каким-нибудь гулагом. Затем по инфопоршину он покидает этот гулаг и идет в гулаг, который ты создал о

 

 

можноли создать на локе штук 30 гулагов и чтоб НПС по инфопоршу выбирал их рандомно

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


Ссылка на сообщение

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

Тоесть если НПС прописать например это с определенными условиями конечно

 

 

сидящие днём у костра

[logic@esc_lager_kamp1]

active = kamp1@esc_lager

 

[kamp1@esc_lager]

center_point = camp_center

path_walk = camp_center_task

soundgroup = esc_lager

meet = meet@lager

 

 

пойдет он k костру в лагере новичков ?

и если пойдет то ниче что он четвертым будет ?

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


Ссылка на сообщение
Как прописать что бы непись появился сразу в начале игры, а не после диалога? С редактированием алл.спавна

 

Если я правильно понял то так

создаем секцию и алл спавне

 

[не использумое число]

; cse_abstract properties

section_name = stalker ----------- обязательно

name = -------------------------- имя

position = -225.604339599609,-20.221607208252,-147.097625732422 ------- координаты

direction = 0.0623090341687202,0.00229393295012414,0.0141186164692044 ----- ореентир можно (0,0,0)

 

; cse_alife_trader_abstract properties

money = 5000 -------------- ну тут понятно

character_profile = esc_stalker_novice ------------

 

; cse_alife_object properties

game_vertex_id = 47

distance = 3.5

level_vertex_id = 29123

object_flags = 0xffffffbf

custom_data = <<END

[smart_terrains]

esc_lager = true ----------- имя смарта если под своей логикой то none = true

END

 

; cse_visual properties

visual_name = actors\novice\green_stalker_2

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 1

g_group = 5

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0xef20e0ec

upd:creature_flags = 0xe5

upd:position = -225.604339599609,-20.221607208252,-147.097625732422

upd:o_model = 0

upd:o_torso = 0.00229393295012414,0.0623090341687202,0

upd:g_team = 0

upd:g_squad = 1

upd:g_group = 5

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 2,2,0,1,0

predicate4 = 2,1,2,1

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

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


Ссылка на сообщение
У кого получилось выставте пожалста архив с папкой gamedata

 

 

Вот несовсем этот пример но может поможет разобратся

 

спаунится бандит за бункером сидора после разговора с ним о звезде в начале игры

 

АМК 1.4.1

 

http://ifolder.ru/13431710

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


Ссылка на сообщение
AKKK1, А ты мог бы в своих файлах выделить те строчки, которые заменил?

 

В смысле заменил ?

 

Есть файл ak_spawn в нем функция

 

function bandit_create()

 

local a = vector()

a.x = -254.9029

a.y = -18.0704

a.z = -116.2938

 

obj = alife():create("esc_bandit_respawn_1", a, 8190, 8,65535)

 

 

end

 

Eсли речь о файле dialogs_escepe.XML

то вызов здесь

можно быстро найти используя поиском в тексте по имени функции bandit_create

 

<text>escape_trader_start_dialog_331111</text>

<give_info>kvest_art_started</give_info>

<action>amk_mod.spawn_star</action>

<action>ak_spawn.bandit_create</action> это добавленно

<action>escape_dialog.give_weapon_from_trader</action>

<next>3311111</next>

 

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


Ссылка на сообщение
(изменено)

Выделенное

 

 

<!---------------------------------------esc_unik_npc----------------------------------------------------->

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

<name>Батя</name>

<icon>ui_npc_u_stalker_bandit_3</icon>

<bio>esc_wolf_bio</bio>

 

<class>esc_otbrosi_1</class>

<community>dolg</community> <terrain_sect>stalker_terrain</terrain_sect>

 

<rank>367</rank>

<reputation>60</reputation>

<money min="600" max="2000" infinitive="1"/>

 

 

<character id="esc_unik_npc">

<class>esc_unik_npc</class>

<specific_character>esc_unik_npc</specific_character>

</character>

 

 

 

[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

 

Да и откуда у тебя происходит вызов функции function esc_unik_npc ()

 

Зы лучше если вылеты будут

понятно что, что то работает хоть и не правильно :rolleyes:

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

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


Ссылка на сообщение
(изменено)

Пример здесь

http://ifolder.ru/14454490

Один НПС заспауница с началом игры а второй(точно такой) после разговора с Сидором о звезде

Координаты рядом с бункером

Оба пойдут в лагерь и усядутся у костра

 

Использованны файлы

ak_spawn.script (функция спавна )

function bandit_create()

 

local a = vector()

a.x = -254.9029

a.y = -18.0704

a.z = -116.2938

 

obj = alife():create("esc_unik_npc", a, 8190, 8,65535)

 

end

 

в файл spawn.sections.ltx добавленно

; -------- esc_unik_npc -----------------------

[esc_unik_npc]:stalker

$spawn = "respawn\esc_unik_npc"

character_profile = esc_unik_npc

spec_rank = regular

community = dolg

custom_data = scripts\esc_unik_npc.ltx указание на файл логики

 

в файл character_desc_escape

 

<!---------------------------esc_unik_npc----------------------->

 

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

<name>GENERATE_NAME_bandit</name>

<icon>ui_npc_u_green_stalker_2</icon>

<bio>ui_npc_u_stalker_bandit_3</bio>

 

<class>esc_unik_npc</class>

<community>dolg</community> <terrain_sect>stalker_terrain</terrain_sect>

 

<rank>140</rank>

<reputation>12</reputation>

<money min="200" max="600" infinitive="0"/>

 

<snd_config>characters_voice\human_01\monolith\</snd_config>

<crouch_type>-1</crouch_type>

 

<visual>actors\bandit\stalker_bandit_3</visual>

<supplies>

[spawn] \n

wpn_groza \n

ammo_9x39_pab9 \n

wpn_bm16 \n

ammo_12x70_buck \n

#include "gameplay\character_items.xml" \n

#include "gameplay\character_food.xml"

</supplies>

 

#include "gameplay\character_criticals_3.xml"

 

<start_dialog>hello_dialog</start_dialog>

#include "gameplay\character_dialogs.xml"

</specific_character>

 

в файл npc_profile

 

<character id="esc_unik_npc">

<class>esc_unik_npc</class>

</character>

 

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

<game_information_portions>

<info_portion id="storyline_actor_start">

<task>storyline_eliminate_gunslinger</task>

<action>ak_spawn.bandit_create</action> (имя файла_имя функции)

 

 

вызов функции спавна при разговоре о звезде файл dialogs_escape<phrase id="331111">

<text>escape_trader_start_dialog_331111</text>

<give_info>kvest_art_started</give_info>

<action>amk_mod.spawn_star</action>

<action>ak_spawn.bandit_create</action>(имя файла_имя функции)

<action>escape_dialog.give_weapon_from_trader</action>

<next>3311111</next>

</phrase>

 

Ну и файл логики esc_unik_npc

[smart_terrains]

none = true Чтоб не захватывался гулагами

[logic]

active = kamp схема сидеть у костра

[kamp]

center_point = esc_lager_camp_center полные названия точек (координат)

path_walk = esc_lager_camp_center_task

soundgroup = esc_lager

meet = meet@lager

 

вместо этой логики можете писать любую другую

 

 

 

Еще раз проверил все работает AMK 1.4.1 + 2 патча распаковать архив найти папку гейм дата в которой папки конфиг и скрипс и скопировать согласившись на замену файлов

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

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


Ссылка на сообщение
(изменено)
а можно както зделать логику что например от 6:00 до 20:00 сталкер например сидит за костром, а с 20:01 до 5:59 спит????????

ДА

функция в хr_кондишн

 

function имя_имя1()

if level.get_time_hours() >= 6 and level.get_time_hours() < 20 then

return true

else

return false

end

end

 

function имя_имя2()

if level.get_time_hours() >= 20 and level.get_time_hours() < 24 then

return true

else

return false

end

end

 

function имя_имя3()

if level.get_time_hours() >= 0 and level.get_time_hours() < 6 then

return true

else

return false

end

end

 

 

логика

[logic]

active = kamp

 

[kamp]

on_info = {=имя_имя2} sleeper если больше равно 20 и меньше 24 спим

on_info2 = {=имя_имя3} sleeper если больше 0 но меньше 6 спим

center_point = координаты верней назиания секции в файле way_уровень

path_walk = координаты верней назиания секции в файле way_уровень

 

 

[sleeper]

on_info = {=имя_имя1} kamp если больше 6 меньше 20 сидим у костра

path_main = координаты верней назиания секции в файле way_уровень

 

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

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


Ссылка на сообщение
(изменено)
Да.Все сделано правильно,но

логику в студию

 

Ты писал ему логику ?

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

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


Ссылка на сообщение

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)

 

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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