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

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

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу.

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий

Люди добрые, помогите пожалуйста.

Переспавниваю Шустрого. Вот код

[1791]

; cse_abstract properties

section_name = stalker

name = esc_shustryi

position = -81.202568,-1.298111,154.848953

direction = 0.977733,0,0.209853

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = esc_shustryi

 

; cse_alife_object properties

game_vertex_id = 163

distance = 8.39999961853027

level_vertex_id = 186909

object_flags = 0xffffffbf

custom_data = <<END

 

[spawner]

cond = {+shustryi_flash_start_info}

 

[logic]

cfg = scripts\new\shustryi_logic.ltx

 

; cse

[smart_terrains]

none = true

END

story_id = 4

 

; cse_visual properties

visual_name = actors\novice\green_stalker_1

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 0

g_group = 0

health = 2

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 2

upd:timestamp = 0x69206669

upd:creature_flags = 0x6e

upd:position = -81.202568,-1.298111,154.848953

upd:o_model = 0

upd:o_torso = 0,0,0

upd:g_team = 0

upd:g_squad = 0

upd:g_group = 0

 

; 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 = 1,1,0,0,2

predicate4 = 1,1,0,0

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

 

 

Ещё прописываю в

[shustryi_seat]

points = p0

p0:name = name00

position = -81.202568,-1.298111,154.848953

p0:game_vertex_id = 163

p0:level_vertex_id = 186909

 

 

[shustryi_look]

points = p0

p0:name = name00

p0:flags = 0x400

p0:position = -44.3478202819824,-10.9337711334229,-101.592460632324

p0:game_vertex_id = 163

p0:level_vertex_id = 186909

 

 

 

А логика у него, собственно, такая

[logic]

active = walker

 

[walker]

path_walk = shustryi_seat

path_look = shustryi_look

danger = danger_ignore

meet = meet

;;no_move = true

anim = sit_ass

snd = agr_desertir_spam

on_death = death

 

[meet]

use = true

use_wpn = true

 

[danger_ignore]

ignore_distance = 0

 

[death]

on_info = %+shustryi_dead_info%

Но сей гад стоит беззвучным столбом, глядя сторого на север.

Вопрос: в чём ошибка?

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

Ты определись, у тебя НПС работает в секции walker или в секции remark? В схеме walker можно указывать только:

path_walk - основной путь, по которому ходит охранник

path_look [опционально] - путь, куда смотрит охранник

team [опционально] - команда для синхронизации

sound_idle [опционально] - неизвестный параметр. Возможно звук при стоянии без дела. Использовался только на янтаре у зомби (sound_idle = state)

def_state_moving1 [опционально] - состояние, в котором сталкер движется к первой точке пути, если она близко (patrol по умолчанию)

def_state_moving2 [опционально] - состояние, в котором сталкер движется к первой точке пути, если она не слишком далеко (rush по умолчанию)

def_state_moving3 [опционально] - состояние, в котором сталкер движется к первой точке пути, если она далеко (sprint по умолчанию)

def_state_standing [опционально] - дефолтное состояние в котором он стоит и смотрит на точку, если в этой точке не задана другое состояние.

 

Остальные параметры скрипты игры не читают

Freedom

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

Я логику НПС только постигаю, так что не серчайте.

Как я понял, walker - только для движущихся? Что тогда назначать для неподвижных?

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

Вообще можно сделать так:

[logic]

active = walker

 

[walker]

path_walk = shustryi_seat

path_look = shustryi_look

danger = danger_ignore

meet = meet

on_death = death

 

[meet]

use = true

use_wpn = true

 

[danger_ignore]

ignore_distance = 0

 

[death]

on_info = %+shustryi_dead_info%

 

 

[shustryi_seat]

points = p0

p0:name = name00

p0:flags = 0x400

p0:position = -81.202568,-1.298111,154.848953

p0:game_vertex_id = 163

p0:level_vertex_id = 186909

 

[shustryi_look]

points = p0|a=sit_ass|s=agr_desertir_spam

p0:name = name00

p0:flags = 0x400

p0:position = -44.3478202819824,-10.9337711334229,-101.592460632324

p0:game_vertex_id = 163

p0:level_vertex_id = 186909

 

Изменено пользователем _Призрак_

Freedom

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

Такая проблема. Использую метод "db.actor:activate_slot(1)". Но он действует только в случае, если у игрока в момент активации никакой слот вообще не активен. Если какой-то активен - действие не срабатывает. Как исправить?

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

_Призрак_

Что-то acdc после компиляции изменяет shustryi_look на это...

[shustryi_look]
points = p0
p0:name = 
p0:position = 0,0,0
p0:game_vertex_id = 0
p0:level_vertex_id = 0

 

Исправил на это

points = p0
p0:name = name00|a=sit_ass|s=agr_desertir_spam
p0:flags = 0x1
p0:position = -44.3478202819824,-10.9337711334229,-101.592460632324
p0:game_vertex_id = 163
p0:level_vertex_id = 186909

Результатов ноль.

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

Disord,

не помогает.

db.actor:hide_weapon() делает полностью недоступными все слоты, пока не будет отменён. если сделать так:

db.actor:hide_weapon()

db.actor:activate_slot(1)

db.actor:restore_weapon()

то в итоге активируется слот, который был изначально.

 

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

Ещё вопрос к предыдущему.

Есть таблица "{a,b,c}". Как скриптом проверить, равно ли значение X хотя бы одному значению из таблицы.

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

speczadanie

По поводу таблицы, у тебя фактически таблица такая:

table = {1 = a, 2 = b, 3 = c}

тут только перебирать всю таблицу и сравнивать значения, что долго и нудно.

 

Если сам вид таблицы не сильно принципиален, лучше переписать ее так:

table = {a = true, b = true, c = true}

(если a,b,c - строки, то в квадратных скобках: ["значение_а"] = true и т.д.)

 

Тогда процесс проверки упрощается до

if table[X] then
...
end

т.е. делаем что-то, если существует элемент таблицы с индексом X, а он существует только тогда, когда X = (a или b или c).

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Народ как в ЗП сделать логику для патрелей, как в ТЧ и ЧН.

Что бы военные шли до определеного места и разворачивались и обратно шли.

обьясните плз!

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

Руслан, логику тут можно и не писать, это в аллспавне (или в сдк) нужно создать путь для движения и обозвать его как работу для смарта, тогда нпс в смарте автоматически будут становится на эту работу, ходить по пути. Допустим смарт террейн у тебя называется zat_a1, тогда делаешь пути с работами zat_a1_walker_1 walk ( zat_a1_walker_1 look), zat_a1_patrol_1 walk ( zat_a1_patrol_1 look) и так далее, подробней читаем тут - http://stalkerin.gameru.net/wiki/index.php...%80%D0%B5%D0%B9

Только для ЗП некоторые не используются работы, например kamp.

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

Ulman,

Это значит, что нужно, чтобы скриптер искал проблему при наличии у него целого мода.

 

Кто-нибудь знает, как изменить отношение мутантов к ГГ, кроме функции "set_relation", т.к. она у меня не давала никаких результатов?

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

НЕ!Просто нужно,что бы мутант(псевдогигант) при нанесении хита по нпс или по гг,отбрасывал бы их метра на три.Как кровосос в АМК на ЗП.

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

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

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

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

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

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

Войти

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

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

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