Минутой назад у меня возник вопрос, по поводу логики всех существ зоны.
Делал ли кто нибудь так чтобы например: один зомби нечаянно стрельнул в другого, а второй тем временем поменял дружеское отношение на вражеское и начал палить в первого?
VladimirW
Для того что бы НПС выделялся, он должен иметь sid из файла game_story_ids.ltx по типу:
; Escape (0-99)
000 = "Escape_blockpost_case"
001 = "Escape_trader_self"
002 = "Escape_Tutorial_Artefact"
003 = "Escape_Trader"
........
......... и т. д.
В этом случае например под номером 003 Сидорович. По другому не пометишь. Если непись новый, тогда присваивай ему id через all.spawn, или АМК-скрипт если он у тебя скриптовый.
Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
ОТИС, сам понял что сказал, сформулируй вопрос понятнее!!!
Посмотри здесь: _http://stalkerin.gameru.net/wiki/index.php/Система_сюжетной_информации_(InfoPortions)
Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
VladimirW Находишь в алл.спавне например секцию сидоровича смотришь sid и подобным образом делаешь для своего нпс susdan2000 gamedata\meshes\weapons например папка ak74 wpn_ak74_hud.ogf и есть худ модель оружия
Я тут подумал, а если два телепата начнут читать мысли друг друга одновременно... Они умрут от переполнения стека?
VladimirW, для того что бы sid был присвоен без использования all.spawn, тебе необходимо иметь в своем моде два файла от АМК - амк.script, amk_mod.script, далее делаешь функцию спавна следующим образом:
function название функции()
local obj = alife():create("имя непися",vector():set(-136.584,15.24,-201.317),102473,643) -- координаты свои
local tbl = amk.read_stalker_params(obj)
tbl.sid = 5481 --сид тоже свой
amk.write_stalker_params(tbl, obj)
end
Начинаешь игру и делаешь сейв - лоад, сид начинает работать и на НПС можно ставить квесты.
Да и в папке game_story_ids.ltx не забудь прописать.
Без АМК файлов на базе оригинальной игры не получится,
Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
susdan2000, а как же, зачем в этой секции 2 раза прописал?
[trader_start_sell]
И вот здесь, wpn_valx = 1 1
запятая ставится: wpn_valx = 1, 1
добавлено спустя 2 минут
VladimirW, не может быть, у меня все работает, ищи где напортачил, не забыл, если скриптовый непись, то после первого старта игры нужно сделать сейв, затем лоад и sid заработает, можно на него квесты вешать, но только после сохраненки...
отредактировал(а) losiara: 24-10-2011 16:14 GMT3 час. Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
Дайте плиз сыль на прошлую/пазапрошлую тему "вопрос ответ" в этом разделе!
1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Ребята у меня проблемка я создал костюм киллера в противогазе пытаюсь одеть его и вылет неможет найти текстуру морды с противогазом до этого я создал костюм долга в противогазе он появился с рюкзаком и впротивогазе скажите пожалуйста где искать эти текстуры и как вычислять ихние координаты
добавлено спустя 7 минут
чуть не забыл когда убиваеш наёмника некоторые из них в противогазах как и куда надо прописать координаты морды с противогазом
отредактировал(а) Связистт: 24-10-2011 21:17 GMT3 час.
Ребятки, какую логику нужно прописать НПС, чтобы он был патрульным ? То есть шёл в определённую точку, постоял пару секунд, развернулся и пошёл назад, постоял там пару секунд и опять всё по кругу ?
Как сделать Логику НПС
(просмотров: 8287)
Ответ: Во первых нужно с орентироваться на том, чем будет заниматься сталкер. 1- Нужно определить приписываем ли мы сталкеру Кастом дату либо мы прописываем ему логику по Гулагом (Смарт терайном.) 2- Создаём ли мы сами Гулаг либо берём уже существующий. 3- Определяем и вносим изменения в LTX.
Для того чтобы прописать логику через кастом дату нам понадобиться: 1- Файл ALL Spawn, LTX - 2 файла.
Так вот начнём с Файла ALL Spawn мы создали сталкера и теперь нам нужно прописать ему Логику. Это можно сделать двумя способами, это сделать логику в самом файле либо сделать ссылку на LTX файл.
Разберём первый способ: Вот простой пример Сталкера в Спавне.
[94]
; cse_abstract properties
section_name = stalker = Строчка отвечающая за тип объекта
name = esc_lager2 = Строчка отвечающая за имя объекта
position = -207.545303344727,-20.132755279541,-143.41960144043 = Позиция на карте
direction = 0.0524457320570946,-0.000378208060283214,0.00721459882333875 = указываеться только для Стоячих, без точки Path Look
; cse_alife_trader_abstract properties
money = 5000 = Денег в инвентори
character_profile = esc_stalker_novice = профиль в character_descr_******
; cse_alife_object properties
game_vertex_id = 61 = точка вертекс
distance = 7.69999980926514 = Дистанция спавна сталкера от точки вертекс
level_vertex_id = 45939 Точка левел вертекса
object_flags = 0xffffffbf = флаг объекта, пусть стоит стандартный.
custom_data = <
[smart_terrains] Смарт под каторым находиться Сталкер.
esc_lager = true
[spawn] = То что спавниться у Сталкера в инвентори, если указкть другие вещи в Характере то они от туда удаляться.
bandage
END
; cse_visual properties
visual_name = actors\novice\green_stalker_10 = Визуалка сталкера, модель
; cse_alife_creature_abstract properties Тут идёт проверка того что объект именно типа Stalker а не другой.
g_team = 0
g_squad = 1 = Сквад
g_group = 5 = Группа
health = 1 = Живой ли объект 1-да 0-нет
dynamic_out_restrictions =
dynamic_in_restrictions =
Так вот теперь нам нужно добавить объекту логику, ну скажем что нашему сталкеру нужно перейти с Лагеря новичков в Лагерь на окраине кордона и там он должен будет пить и жрать водку.
Так вот что там нужно сделать.
Найти строчки
; cse_alife_object properties
game_vertex_id = 61 = точка вертекс
distance = 7.69999980926514 = Дистанция спавна сталкера от точки вертекс
level_vertex_id = 45939 Точка левел вертекса
object_flags = 0xffffffbf = флаг объекта, пусть стоит стандартный.
custom_data = <
[smart_terrains] Смарт под каторым находиться Сталкер.
esc_lager = true
и заменить строку custom_data = <
на допустим такую custom_data = scripts\naw_lagersmart
А что нам нужно сделать в этом файле файле naw_lagersmart, помните этот файл лежит в папке config в папке script.
а в этом файле нам нужно написать такие строки.
[logic]
active = walker
[walker]
path_walk = значения приписаные в смарте, это вэй-поинт
path_look = значения приписаные в смарте, это вэй-поинт
on_info = {+dialog_speak_stalker} walker2@new_zone
[walker2@new_zone]
path_walk = значения приписаные в смарте, это вэй-поинт
path_look = значения приписаные в смарте, это вэй-поинт
Вечер добрый!
Кто разбирается в скриптовании\програмировании:
Например такая функция спавна:
local zombie_types = {"zombie_weak", "zombie_normal", "zombie_strong", "zombie_immortal", "zombie_ghost"}
function spawn_zombies( position, total )
local zombie_index
local new_pos, x_offset, z_offset
for zombie_index=1, total do
x_offset = math.random(5)
z_offset = math.random(5)
new_pos = position
new_pos.x = new_pos.x + x_offset
new_pos.z = new_pos.z + z_offset
alife():create(zombie_types[math.random(5)],new_pos,299445,90)
end
end
function esc_zombie( actor, npc )
local spawn_point = vector():set( 21.074, 1.78, 30.096 )
spawn_zombies( spawn_point, 10 )
end
На одной локации я ставлю несколько мест для спавна зомби, и соответственно несколько таких же функций только с разными координатами. В итоге получаю либо отсутствие спавна на локации, либо появление монстров на других локациях и несрабатывание прописанной им логики.
Подумав над этим, пришел к выводу, что всему виной объявленные локальные переменные, то есть
local zombie_types = {"zombie_weak", "zombie_normal", "zombie_strong", "zombie_immortal", "zombie_ghost"} вот эта строка. Получается, что несколько таких объявлений в одном скриптовом файле приводит к багам в игре описанным выше, в то время как спавн через элементарную
alife:create...... проходит нормально.
Вопрос: правильно я все понял и второй как с этим бороться, создавать кучу отдельных скриптовых файлов, или можно в одном файле однократно задать переменную, а остальные функции будут пользоваться ею???
Кто подскажет?
добавлено спустя 2 минут
Dark Scripter
Ты куда пропал???
Здесь по скриптам и логике больше никто не может помочь, ну или не хочет, хотя скорее... первое!:-)
отредактировал(а) losiara: 24-10-2011 23:26 GMT3 час. Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.