Случайная подборка модов
Смерти Вопреки 2. Одним днем живу
3.4
Призраки Прошлого 2
3.0
«Последний Сталкер»
4.1
We Are Not Alone
4.0
Зона обр.2010г.
3.1
Dead City Mod v. 4.80
3.7
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
  • Страница 1 из 2
  • 1
  • 2
  • »
Архив - только для чтения
Спавн НПС через скрипты в ЗП
Российская Федерация  MP3_IIJIEEP
Вторник, 01.02.2011, 19:53 | Сообщение # 1
Статус:
Гость:
Сообщений: 32
Награды: 0
Регистрация: 03.01.2011

Автор статьи: Johhan
Открываем файл
D:\S.T.A.L.K.E.R. - Зов Припяти\нпс\configs\creatures\spawn_sections_zaton
В самое начало добавляем это:

Code
[my_stalker]:stalker
$spawn = "respawn\my_stalker"
character_profile = my_stalker
spec_rank = master
community = stalker
custom_data = scripts\zaton\my_stalker_npc_logic.ltx

Дальше идем в папку

D:\S.T.A.L.K.E.R. - Зов Припяти\нпс\configs\gameplay

Открываем character_desc_zaton
В самый конец добавляем, но перед <\xml>!

Code
<specific_character id="my_stalker" team_default = "1">
<name>Johann</name>
<icon>ui_inGame2_neutral_4</icon>
<map_icon x="1" y="0"></map_icon>
<bio>Опытный сталкер. Детальная информация отсутствует.</bio>

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

<rank>65</rank>
<reputation>0</reputation>
<money min="2500" max="5000" infinitive="0"/>

<visual>actors\stalker_neutral\stalker_neutral_4</visual>
<supplies>
[spawn] \n
wpn_beretta = 1 \n
ammo_9x19_fmj = 1 \n
grenade_rgd5 = 1 \n
#include "gameplay\character_items.xml"
#include "gameplay\character_food.xml"
#include "gameplay\character_drugs.xml"
</supplies>

#include "gameplay\character_criticals_4.xml"
</specific_character>

И открываем npc_profile
После строчки добавляем

Code
<character id="my_stalker">
<class>my_stalker</class>
</character>

А теперь создадим логику для него
D:\S.T.A.L.K.E.R. - Зов Припяти\нпс\configs\scripts тут создаем папку new а там файл my_stalker_npc_logic
И пишим там
Если ты хочешь бесмертного то

Code
[logic]
active = remark1
danger = danger_ignore
invulnerable = true

[danger_ignore]
ignore_distance = 5

[remark1]
no_move = true
anim = choose
on_actor_dist_le = 2| remark@hello
invulnerable = true
meet = meet_guide

[meet_guide]
abuse = false
use = true
allow_break = false
meet_on_talking = false

[remark@hello]
no_move = true
invulnerable = true
meet = meet_guide
on_actor_dist_le = 10| remark1

А если смертного то
Code
[logic]
active = remark1
danger = danger_ignore
invulnerable = false

[danger_ignore]
ignore_distance = 5

[remark1]
no_move = true
anim = choose
on_actor_dist_le = 2| remark@hello
invulnerable = false
meet = meet_guide

[meet_guide]
abuse = false
use = true
allow_break = false
meet_on_talking = false

[remark@hello]
no_move = true
invulnerable = false
meet = meet_guide
on_actor_dist_le = 10| remark1

Открываем D:\S.T.A.L.K.E.R. - Зов Припяти\нпс\scripts
И создаем скрипт sniper_add.script
И пишим там (открываем с помощью блокнота)

Code
function start_add_spawn()--\\
--\\
--
spawn_sniper_one()
end

function spawn_sniper_one()
local x= 111.75521087646
local y= -3.9362425804138
local z= 185.2212677022
local level_vertex= 1158851
local game_vertex_id= 316
alife():create("my_stalker",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

И открываем скрипт тут же bind_stalker.script

Ищим строку

Code
function actor_binder:update(delta)
object_binder.update(self, delta)

if string.find(command_line(), "-designer") then
return
end

И после неё пишим это
Code
if sniper_add.load_variable("spawn_sniper",false)==false then
sniper_add.start_add_spawn()
sniper_add.save_variable("spawn_sniper",true)
end

Всё, мы сделали нпс, он появится около сыча слева от стойки.
Удачи!

P.S. когда я делаю нпс смертным,то он просто шляется без дела по локации

Сообщение отредактировал MP3_IIJIEEP - Вторник, 01.02.2011, 19:56
  Злобная реклама
Вторник, 01.02.2011, 19:53
Статус:
Сообщений: 666
Регистрация: 03.01.2011
Российская Федерация  Исполнитель
Вторник, 04.10.2011, 17:22 | Сообщение # 2
Статус:
Неопытный:
Сообщений: 557
Награды: 4
Регистрация: 06.09.2010

Получилась smile
Вот только логика не работает на бессмертие
  Злобная реклама
Вторник, 04.10.2011, 17:22
Статус:
Сообщений: 666
Регистрация: 06.09.2010
Российская Федерация  Steag
Понедельник, 09.01.2012, 01:09 | Сообщение # 3
Статус:
Новичок:
Сообщений: 272
Награды: 0
Регистрация: 16.12.2011

Всем привет! Кому в падлу копировать и прописовать эти строки пишите в ЛС я дам вам ссылку на скачивание обсолютно прекрасной проги! По созданию NPS в ЗП!
1. Можно спавнить через скрипт.
2. Можно спавнить через all.spawn.
3. Красивое оформление.
4. Большая библеотека визуалов, иконок и т.д.
5. Возможность создания точек спавна.
6. И многое другое.
Кому надо пишите!

P.S. Программа преднозначена для созжания NPS в ЗП!
  Злобная реклама
Понедельник, 09.01.2012, 01:09
Статус:
Сообщений: 666
Регистрация: 16.12.2011
Российская Федерация  ALEX13
Пятница, 18.01.2013, 14:48 | Сообщение # 4
Статус:
Опытный:
Сообщений: 1625
Награды: 12
Регистрация: 26.12.2012

вылет, создал на подключенной локе:

Expression : !m_DefaultCharacters.empty()
Function : CSE_ALifeTraderAbstract::specific_character
File : D:\prog_repository\sources\trunk\xrServerEntities\xrServer_Objects_ALife_Monsters.cpp
Line : 351
Description : no default specific character set for class
Arguments : my_stalker
  Злобная реклама
Пятница, 18.01.2013, 14:48
Статус:
Сообщений: 666
Регистрация: 26.12.2012
Российская Федерация  AzzzA
Пятница, 18.01.2013, 14:55 | Сообщение # 5
Clear sky: Время перемен
Статус:
Опытный:
Сообщений: 3933
Награды: 11
Регистрация: 14.08.2012

Цитата (ALEX13)
no default specific character set for class

Неправильный класс wacko
  Злобная реклама
Пятница, 18.01.2013, 14:55
Статус:
Сообщений: 666
Регистрация: 14.08.2012
Российская Федерация  ALEX13
Пятница, 18.01.2013, 16:33 | Сообщение # 6
Статус:
Опытный:
Сообщений: 1625
Награды: 12
Регистрация: 26.12.2012

AzzzA, а по конкретней можно? Как исправить? Я перевёл: по умолчанию нет определённого набора символов для класса.
  Злобная реклама
Пятница, 18.01.2013, 16:33
Статус:
Сообщений: 666
Регистрация: 26.12.2012
Российская Федерация  AzzzA
Пятница, 18.01.2013, 16:38 | Сообщение # 7
Clear sky: Время перемен
Статус:
Опытный:
Сообщений: 3933
Награды: 11
Регистрация: 14.08.2012

ALEX13,
Или ты неправильно сам код скописпастил.
Или на локации смарты не введены.
  Злобная реклама
Пятница, 18.01.2013, 16:38
Статус:
Сообщений: 666
Регистрация: 14.08.2012
Российская Федерация  ALEX13
Пятница, 25.01.2013, 16:21 | Сообщение # 8
Статус:
Опытный:
Сообщений: 1625
Награды: 12
Регистрация: 26.12.2012

Аzzz, как смарты ввести? У меня была проблема, хотел сделать респавн монстров и вылет указывает на файл конфига.

Добавлено (25.01.2013, 16:21)
---------------------------------------------
Есть рабочие статьи по созданию нпс на подключеных локах?

  Злобная реклама
Пятница, 25.01.2013, 16:21
Статус:
Сообщений: 666
Регистрация: 26.12.2012
Российская Федерация  АСТРОНОМ
Понедельник, 28.01.2013, 10:57 | Сообщение # 9
Статус:
Бывалый:
Сообщений: 959
Награды: 1
Регистрация: 30.11.2012

Ответьте пожалуйста, не несколько вопросов:
1) Как заспавнить NPC в другом месте?;
2) Как прописать заспавненному NPC диалоги?.
  Злобная реклама
Понедельник, 28.01.2013, 10:57
Статус:
Сообщений: 666
Регистрация: 30.11.2012
Российская Федерация  AzzzA
Среда, 30.01.2013, 16:05 | Сообщение # 10
Clear sky: Время перемен
Статус:
Опытный:
Сообщений: 3933
Награды: 11
Регистрация: 14.08.2012

Цитата (АСТРОНОМ)
Как заспавнить NPC в другом месте?

Снять новые координаты или(и) сменить local game_vertex_id))
Цитата (АСТРОНОМ)
Как прописать заспавненному NPC диалоги?

Это даже легче чем спавн,посмотри уроки.
  Злобная реклама
Среда, 30.01.2013, 16:05
Статус:
Сообщений: 666
Регистрация: 14.08.2012
Российская Федерация  Qexs51
Вторник, 05.03.2013, 21:03 | Сообщение # 11
Статус:
Отмычка:
Сообщений: 96
Награды: 1
Регистрация: 26.12.2012

хм... спасибо за статью) всё работает, но всё же я не понел, где менять ему одежду:? в профиле или где:?
  Злобная реклама
Вторник, 05.03.2013, 21:03
Статус:
Сообщений: 666
Регистрация: 26.12.2012
Российская Федерация  Аристократ
Вторник, 05.03.2013, 21:06 | Сообщение # 12
Модмейкер-одиночка
Статус:
Опытный:
Сообщений: 2272
Награды: 17
Регистрация: 30.06.2012

Qexs51,

character_desc_твоя_локация находишь прфиль своего НПС и строчка

<visual>actors\stalker_bandit\stalker_bandit_3_face_1</visual> - тут пишешь путь к своей модели.
  Злобная реклама
Вторник, 05.03.2013, 21:06
Статус:
Сообщений: 666
Регистрация: 30.06.2012
Украина  zhuravel11021997
Среда, 20.03.2013, 15:31 | Сообщение # 13
Статус:
Новичок:
Сообщений: 240
Награды: 0
Регистрация: 14.03.2013

Народ а можно ли в функцыю спавна вписать несколько секцый пример:
function start_add_spawn()--\\
--\\
--
spawn_sniper_one()
end

function spawn_sniper_one()
local x= 111.75521087646
local y= -3.9362425804138
local z= 185.2212677022
local level_vertex= 1158851
local game_vertex_id= 316
alife():create("my_stalker",vector():set(x,y,z),level_vertex,game_vertex_id)
end
alife():create("my_stalker_2",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
  Злобная реклама
Среда, 20.03.2013, 15:31
Статус:
Сообщений: 666
Регистрация: 14.03.2013
Украина  BozKurt
Среда, 20.03.2013, 15:58 | Сообщение # 14
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

zhuravel11021997, конечно можно, только не так как ты написал.
Во-первых, нужно саму функцию спавна поднять на одну строчку выше и end ставить не нужно. К тому же можно координаты писать прямо в функцию, так будет проще и быстрее:
Код
function spawnSniperMany ()
      alife():create("my_stalker_1", vector():set(121.75, -3.93, 175.22), 1158851, 316)
      alife():create("my_stalker_2", vector():set(111.75, -3.93, 185.22), 1158851, 316)
      alife():create("my_stalker_3", vector():set(101.75, -3.93, 195.22), 1158851, 316)
end
Сообщение отредактировал ColR_iT - Среда, 20.03.2013, 15:58
  Злобная реклама
Среда, 20.03.2013, 15:58
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  ALEX13
Среда, 20.03.2013, 16:00 | Сообщение # 15
Статус:
Опытный:
Сообщений: 1625
Награды: 12
Регистрация: 26.12.2012

zhuravel11021997, фиг его знает, лучше так-же создай отдельно файл my_stalker_2 и вставь свои координаты, про другие файлы не забудь.
  Злобная реклама
Среда, 20.03.2013, 16:00
Статус:
Сообщений: 666
Регистрация: 26.12.2012
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: