Помощь/подсказки в создании модов
# 1
Суббота, 19.06.2010, 11:40:12

Ранг: Прибывший
Сообщений: 2
Награды: 5
Репутация: 5 Регистрация: 19.06.2010 Город: Армавир    

Помощь/подсказки в создании модов

Тема создана для помощи модмейкерам. Если у кого то есть вопросы, пишите, будем искать решения.


Рекомендую перед вопросом посмотреть:

+Крупнейший форум модостроителей

+Википедия по модифицированию Сталкера

+Программы по модифицированию



SibireaStalker
Сообщения не по теме и про ТЧ будут удалятся без объяснений! >(

В теме запрещены "спасибы", авторы которых будут наказаны. Для этого есть система ЛС.


Внимание! СДК обсуждается в этой теме!

Принимаются вопросы для FAQ! Подробней в теме...


Никто не забыт, ничто не забыто...
# 1521
Четверг, 09.02.2012, 19:41:39

Ранг: Новичок
Сообщений: 29
Награды: 2
Репутация: 30 Регистрация: 21.01.2012 Город: Владимир    

Уфф... разобрался... теперь такой вопрос... как заспавнить НПС в ЗП через СКРИПТЫ? через ол.спавн не хочу больно долго?
# 1522
Четверг, 09.02.2012, 23:16:43

Ранг: Знаток Зоны
Сообщений: 613
Награды: 27
Репутация: 1197 Регистрация: 17.02.2011 Город: Воронеж    

Mayron, охохх. Надо справшивать с толком, и понятно, а не капс локом.
Quote

Автор статьи: 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. когда я делаю нпс смертным,то он просто шляется без дела по локации


# 1523
Четверг, 09.02.2012, 23:43:13

Ранг: Познающий
Сообщений: 116
Награды: 1
Репутация: 1682 Регистрация: 15.09.2010 Город: Краснодар    

Эм,ребят не подскажите как сделать,чтобы допустим наёмник не реагироал на ГГ,чтобы он в него не стрелял.


# 1524
Пятница, 10.02.2012, 13:26:37

Ранг: Живая легенда
Сообщений: 1884
Награды: 107
Репутация: 5959 Регистрация: 20.07.2010  

PorShen, спаунишь сквад.
Прописываешь ему relationship = neutral


Ушёл с ресурса из-за занятости. Если что-то экстренное - пишите в ЛС: приду, посмотрю, отвечу.
Полноправно вернуться в сообщество планирую после релиза второй части игры.
-----------------------------------------------------------------
Всем удачи и не скучать.
# 1525
Пятница, 10.02.2012, 13:56:07

Ранг: Новичок
Сообщений: 29
Награды: 2
Репутация: 30 Регистрация: 21.01.2012 Город: Владимир    

PorShen, Если хочешь именно одного, то =====>
1.Или делаешь группировку Наёмники с прописным killers1
2.Или прописать в логику НПС тоесть наёмнику, нейтрал!
Если хочешь всех, то ============>
1.Измени отношения группировок
2.Создать новую группировку с прописным killers1 и поставить новым НПС
3.Занести Гг в эту группировку
4.Прописать группу ACTOR в нейтралы по отношению с наймитами! ^_^

Или же создать сквад как сказал SibireaStalker, и прописать neutral

;)

Добавлено (10.02.2012, 13:56:07)
---------------------------------------------
Lagos, Огромное спасибо! А как сделать чтобы этот НПС по твоему уроку создался после разговора с другим НеПиСем

# 1526
Пятница, 10.02.2012, 14:17:56

Ранг: Живая легенда
Сообщений: 1884
Награды: 107
Репутация: 5959 Регистрация: 20.07.2010  

Mayron, если я тебя правильно понял, то ты сначала должен поговорить с НПС, а потом он должен заспауниться?
Тогда так:
[action] 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 [/action]


Только там скобки вот эти ужны : <> . У меня почему -то сайт их не отображает.


Ушёл с ресурса из-за занятости. Если что-то экстренное - пишите в ЛС: приду, посмотрю, отвечу.
Полноправно вернуться в сообщество планирую после релиза второй части игры.
-----------------------------------------------------------------
Всем удачи и не скучать.
# 1527
Пятница, 10.02.2012, 21:47:01

Ранг: Новичок
Сообщений: 29
Награды: 2
Репутация: 30 Регистрация: 21.01.2012 Город: Владимир    

SibireaStalker, спасибо огромное!
# 1528
Суббота, 11.02.2012, 00:23:08

Ранг: Прибывший
Сообщений: 1665
Награды: 95
Репутация: 4016 Регистрация: 03.03.2011  

Mayron, можно еще проще: в диалоге, где после определенной фразы должен заспавниться НПС, вставляешь строку

Code
<action>sniper_add.spawn_sniper_one</action>


где sniper_add - это твой скрипт, а spawn_sniper_one - функция спавна НПС.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)

Сообщение отредактировал comador - Суббота, 11.02.2012, 00:23:45
# 1529
Суббота, 11.02.2012, 14:21:36

Ранг: Познающий
Сообщений: 116
Награды: 1
Репутация: 1682 Регистрация: 15.09.2010 Город: Краснодар    

Эм,ребят появился ступор. Заспавнил сталкеров.
Один в одной точке.
Два других,наёмника-совсем на другой точке другом конце локи.
При старте
новой игры появляется вместо одного сталкера спавнится наёмник. В чём проблема.Проверил все вертексы,пути и т.п. Всё в норме?
Может попробовать через сквад?

Добавлено (11.02.2012, 14:21:36)
---------------------------------------------
Кстати,есть более простой способ отключить данжер на игрока:
fighting_actor=false





Сообщение отредактировал PorShen - Суббота, 11.02.2012, 14:16:39
# 1530
Суббота, 11.02.2012, 17:58:00

Ранг: Живая легенда
Сообщений: 1884
Награды: 107
Репутация: 5959 Регистрация: 20.07.2010  

PorShen, не рекомендую тебе спаунить сталкеров по одиночке, ни через спаун, ни через скрипт. Проще учесть всё при планировании карты, раставить анимпоинты и прочее и потом с помощью сквада заспаунить отряд али одного непися.

Давай разбираться что ты там начудачил :)


Ушёл с ресурса из-за занятости. Если что-то экстренное - пишите в ЛС: приду, посмотрю, отвечу.
Полноправно вернуться в сообщество планирую после релиза второй части игры.
-----------------------------------------------------------------
Всем удачи и не скучать.
# 1531
Суббота, 11.02.2012, 19:04:49

Ранг: Познающий
Сообщений: 116
Награды: 1
Репутация: 1682 Регистрация: 15.09.2010 Город: Краснодар    

Хм,а в Тенях Чернобыля были сквады?

Подскажите плиз секцию одного сталкера в squad_escape.ltx
Чтобы в этой секции была ссылка на профиль персонажа.Мне нужен уникум...Вот так вот.
Эх...были бы у нас люди,специализировавшиеся на спавне и сюжете.Эх..


# 1532
Суббота, 11.02.2012, 19:10:18

Ранг: Живая легенда
Сообщений: 1884
Награды: 107
Репутация: 5959 Регистрация: 20.07.2010  

PorShen, ну ты вспомнил ^_^
во времена ТЧ были гулаги, там принцип спавна совершенно иной
Quote (PorShen)
Подскажите плиз секцию одного сталкера в squad_escape.ltx

что?


Ушёл с ресурса из-за занятости. Если что-то экстренное - пишите в ЛС: приду, посмотрю, отвечу.
Полноправно вернуться в сообщество планирую после релиза второй части игры.
-----------------------------------------------------------------
Всем удачи и не скучать.
# 1533
Суббота, 11.02.2012, 20:19:59

Ранг: Познающий
Сообщений: 116
Награды: 1
Репутация: 1682 Регистрация: 15.09.2010 Город: Краснодар    

Не..ты не понял,я уже сделал squad_escape.ltx,мне просто нужно знать,как прописать там непися с уникальным профилем.Уже нашёл:
[esc_sim_23_stalker_squad_novice]:online_offline_group
faction = stalker
target_smart = esc_sim_15:esc_sim_19:esc_sim_17:esc_sim_16:esc_sim_23:loop
npc = sim_default_stalker_1, sim_default_stalker_0, sim_default_stalker_0
;spawn_point = esc_sim_23_stalker_squad_novice_spawn_point
story_id = esc_sim_23_stalker_squad_novice

К примеру вот так)


# 1534
Суббота, 11.02.2012, 20:40:56

Ранг: Новичок
Сообщений: 29
Награды: 2
Репутация: 30 Регистрация: 21.01.2012 Город: Владимир    

Зачем так сложно!

Вот к примеру:
[mayron]:stalker
$spawn = "respawn\mayron"
;character_profile = mayron
community = stalker
;custom_data = scripts\zaton\zat_b5_stalker_commander_link.ltx
:)

Добавлено (11.02.2012, 20:40:56)
---------------------------------------------
упс перепутал прости pity :D

# 1535
Суббота, 11.02.2012, 20:43:16

Ранг: Познающий
Сообщений: 116
Награды: 1
Репутация: 1682 Регистрация: 15.09.2010 Город: Краснодар    

Ахах,если я так посталю,мне придётся с бубном стоять,чтобы модификация работала.Буду пытаться через сквад спавнить.


# 1536
Воскресенье, 12.02.2012, 00:09:29

Ранг: Новичок
Сообщений: 29
Награды: 2
Репутация: 30 Регистрация: 21.01.2012 Город: Владимир    

PorShen, а что ты вообще делаешь? ^_^

Добавлено (12.02.2012, 00:09:29)
---------------------------------------------
Ребят у меня горе... вы мне значит объяснили как спавнить НПС через скрипт и привели 2 логики.... обе логики ставлю и ни чего!
вот эту логику ставил
[logic]
active = remark1
danger = danger_ignore

[danger_ignore]
ignore_distance = 5

[remark1]
no_move = true
meet = meet_guide

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

дело в том что НПС уходит с места и с ним поговорить нельзя!

# 1537
Воскресенье, 12.02.2012, 09:52:38

Ранг: Познающий
Сообщений: 116
Награды: 1
Репутация: 1682 Регистрация: 15.09.2010 Город: Краснодар    

Модификация "Сны Разума.")))))))


# 1538
Воскресенье, 12.02.2012, 10:18:35

Ранг: Живая легенда
Сообщений: 1884
Награды: 107
Репутация: 5959 Регистрация: 20.07.2010  

Mayron, тебе кажется забыли об этом сказать.
Дело в том что заспауненные таким образом НПС говорить не будут, так как они заспаунены по принципу ТЧ, а как ты помнишь, в ТЧ можно было говорить со всеми. Как это исправить, я не знаю. Zeek знал, да я не знаю.
Чтобы НПС не двигался с места, пропиши ему:
Code
[logic]  
active = remark1  
danger = danger_ignore  
can_select_weapon = false

[danger_ignore]  
ignore_distance = 5  

[remark1]  
no_move = true  


Ушёл с ресурса из-за занятости. Если что-то экстренное - пишите в ЛС: приду, посмотрю, отвечу.
Полноправно вернуться в сообщество планирую после релиза второй части игры.
-----------------------------------------------------------------
Всем удачи и не скучать.
# 1539
Воскресенье, 12.02.2012, 11:16:04

Ранг: Познающий
Сообщений: 116
Награды: 1
Репутация: 1682 Регистрация: 15.09.2010 Город: Краснодар    

[logic]
active = remark1
danger = danger_ignore

[danger_ignore]
ignore_distance = 5

[remark1]
no_move = true
anim=wait
target=actor

[meet]
use = true
use_wpn = true
meet_talk_enabled = true

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




Сообщение отредактировал PorShen - Воскресенье, 12.02.2012, 11:19:22
# 1540
Воскресенье, 12.02.2012, 11:37:24

Ранг: Прибывший
Сообщений: 6
Награды: 1
Репутация: 27 Регистрация: 12.07.2010  

Mayron, если спавнить по принципу ТЧ, то сталкер будет спавниться как простой сталкер. А в ЗП можно говорить только с лидером, поэтому добавляй в активную секцию логики строку: commander = true
Эта строка и будет делать нашего непися лидером "сквада"
Поиск:
Вверх
Правила чата
Мини-чат
+Мини-чат
0