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

Скриптование


Svoboда

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

Пытаюсь создать мутантов которые бы ходили по кругу и ни обращались ни на кого внимания. Создал две логики. И обе не работают

[logic@mob_walk1]
active = mob_walker@zombi1
monster_job = true
combat_ignore_cond = true

[mob_walker@zombi1]
path_walk = predbannik_zombi_smart_zombi
combat_ignore_cond = true

[logic@mob_walk]
active = mob_home@zombi
monster_job = true
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
actor_friendly = true

[mob_home@zombi]
path_home = path1
home_min_radius = 1
home_max_radius = 3
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
actor_friendly = true

Freedom

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


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

Подскажите, как сделать так, чтобы при подходе к НПС на 15 запускался одна функция, на 10 метров другая, а на 5 метров - третья?

Пытался так:

on_actor_dist_le = 15 | %=derevniya_enter_2%, 10 | %=derevniya_enter_1%, 5 | %=derevniya_kill_actor%

После этого отказывает работать логика

Freedom

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


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

Люди вы не читали, или не хотите внимательно читать пост маландринуса? Объясню:

Есть 2 типа диалогов:

1. Стандартный. Вызывается только если В РАДИУСЕ 3 метров стоит НПС. Запускается как правильно написал Министр через db.actor:run_talk_dialog(npc). Но тут две проблемы - диалог только с НПС и только в РАДИУСЕ 3 метров

2. О-сознание мод. Этот вариант диалога запускается при разговоре в ЧАЭС с о-сознанцем. Но и тут есть подводные камни - появляется только часть, отвечающая за диалог актора. Вывода ответов НПС нет. Но если ты сможешь озвучить свой предмет, то тогда можно воспользоваться о-сознанием мод.

Подробней в справочнике

Freedom

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


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

Попробуй удалить строку: suitable = {=check_npc_name(sim_default)} true во всех логиках. Если не поможет, то удалил смарт_терраи из спавна и посмотри вылет из-за смарта или из-за чего то другого

Freedom

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


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

Нужно создать смарт, камп_зоне и анимпоинты внутри камп_зоне. Причем имена должны быть такие:

камп_зоне = имя_смарта_camp_zone_1

анимпоинты = имя_смарта_animpoint_1

Freedom

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


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

TRAMP14

Давай представил что у тебя в слоте №6 не оружие, а кот. Если ты применяешь такую функцию: local gg = db.actor:item_in_slot(6), то ты как бы берешь кота за шиворот и можешь делать с ним все что угодно. Выкинуть, узнать его имя, массу, рост и т.д. А если ты используешь функцию db.actor:item_in_slot(6):section() то ты только узнаешь имя кота, его секцию в файле итем.

Freedom

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


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

object():section() - это вообще непонятно что. Максиум, если у тебя есть функция, которая возвращает объект, то тогда это будет рабочее. Но только если у тебя есть функция object() в данном скрипте, которая возвращает объект. Тогда эта строка возвратит секцию объекта, которого возвращает функция object()

db.actor:object():section() - вооще вылетит в любом случае. Ибо ты пытаешься получить объект nil у актора.

object:section() и obj:section() это одно и тоже. Получаешь объект каким либо образом, и применяешь к нему метод section().

Freedom

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


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

Можно, но удобней сравнивать координаты по x,y,z. Для этого нужно просто написать db.actor:position().x, db.actor:position().y, db.actor:position().z

Freedom

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


Ссылка на сообщение
А, допустим, можно снять 4 координаты и сделать квадрат и проставить все условия (типо 100 по x, 5 по y) чтобы при входе в квадрат что то происходило?

Это уже давно сделали ПЫС. И называется это спейс_рестриктор

Freedom

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


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

Не обязательно. Если написать on_info = %+budu_v_bunkere_spat% то как только активируется схема, то выдается поршень

Freedom

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


Ссылка на сообщение
На другой локе делал также и там работает.....

Если ты уверен что на другой локе у тебя идентичный код, и они там работают, то вывод только один - ты локацию в скриптах регистрировал?

Freedom

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


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

Все гораздо проще:

local wpn = db.actor:item_in_slot(db.actor:active_slot())

if wpn and (wpn:section() == "wpn_igla" or wpn:section() == "wpn_pm" or wpn:section() == "wpn_knife") then

Freedom

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


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

Наверное (вероятнее всего) у тебя нет патч_валк пути. Или не прописаны или в алл.спавне нет

Freedom

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


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

ели хочешь то перебором таблицу и выводи сообщение. Получится 20 сообщений в каждом по вертиксу. Потом в ПДА посмотришь. Но я бы советовал в лог

 

Freedom

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


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

Есть такой баг в ЗП - не проверяется есть ли путь или нет. Поэтому проверь есть ли у тебя путь имя_смарта_guard_1_walk

 

У меня такие же вылеты были пока я проверок не понаставил в xr_walker xr_camper. Только у меня сразу 6 движковых вылетов обычно

Freedom

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


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

Куда логику прописывал? Поищи вдруг есть совпадения, может в два смарта прописал

Freedom

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


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

Ты посмотри что у тебя получается:

Ты сначала берешь объект по айди. Айди у тебя i. Но i у тебя в тот момент = нил. Поэтому сделай лучше сделать так:

local npc

for i = 1, 65534 do

npc = level.object_by_id(i)

if npc and IsStalker(npc) then

Freedom

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


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

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