Перейти к содержанию

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

 
 

imcrazyhoudini on_info = {=actor_has_item(item)} %+info% Логику эту вписываешь в предмет? item в скобках это название предмета которое нужно написать?

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 минуты назад, Stalkervernite сказал:

Логику эту вписываешь в предмет?

рестриктор на локации ставишь

2 минуты назад, Stalkervernite сказал:

которое нужно написать?

да

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini Я спавню возле арта шейп приатачиваю спейс рестриктор и пишу ту логику,так?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite необязательно возле арта, а так верно

вот полная логика, вдруг не знаешь:

[logic]
active = sr_idle

[sr_idle]
on_info = {+info =actor_has_item(item)} nil %+info%

{+info =actor_has_item(item)} - "если есть инфопоршень info и предмет item то выдаём инфопоршень"

первый info надо ставить если вдруг нужно чтобы после определённого момента это начало действовать, а не просто взял предмет и всё

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini 1 info по дефолту ставим а 2 info это инфопоршень?

Изменено пользователем Stalkervernite

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


Ссылка на сообщение
Поделиться на другие сайты
 
Только что, Stalkervernite сказал:

шейп приатаченый к спейсу рестриктору

да

Только что, Stalkervernite сказал:

где угодно.

да

подробнее о рестрикторах:
http://stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_3#.D0.A1.D0.BA.D1.80.D0.B8.D0.BF.D1.82_logic

  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite Желательно в радиусе а-лайфа.

  • Лайк 1

ed1c85bd8aba2500209219c6df96c254.png |  Verge                                                                            

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


Ссылка на сообщение
Поделиться на другие сайты
 

Я читал это все)я не мог найти саму логику насчет взятия предмета


Дополнено 2 минуты спустя

imcrazyhoudini А первый инфо это к примеру мы заменяем на инфопоршень,и после этого инфопоршня срабатывала эта функция? или не надо вместо info 1 инфо вписывать инфопоршень,а просто так и пишим info

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


Ссылка на сообщение
Поделиться на другие сайты
 
3 минуты назад, Stalkervernite сказал:

заменяем на инфопоршень

ну да, на свой инфопоршень после которого ты хочешь чтобы эта проверка начала работать

ну по типу, в диалоге сказали взять артефакт, вот в диалоге выдали инфопоршень, после которого проверка на артефакт уже начнёт работу


Дополнено 0 минут спустя

[logic]
active = sr_idle

[sr_idle]
on_info = {+info =actor_has_item(item)} nil %+info1%

где info это после чего начнёт работать проверка, а info 1 инфопоршень который будет выдан после того как возьмёшь артефакт

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


Ссылка на сообщение
Поделиться на другие сайты
 
33 минуты назад, ScR1pt сказал:

может, просто добавить к условию ещё инфопоршень, но с "-"?

А разве так работает?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Paracetamol Да. Я когда-то делал так удаление персонажа. С локи.

  • Лайк 1

ed1c85bd8aba2500209219c6df96c254.png |  Verge                                                                            

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


Ссылка на сообщение
Поделиться на другие сайты
 

ScR1pt ООО, действительно пропал, премного благодарен!

  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
6 часов назад, Stalkervernite сказал:

ian98 А нельзя сделать так? в сдк

[spawner]

cond = 

Я  спрашиваю, потому-что  плохо помню эту функцию.

 

 

нельзя,  пробовал. Можно вроде только если создать квестовый предмет-артефакт

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


Ссылка на сообщение
Поделиться на другие сайты
 

Привет всем. Кто знает чтобы из одного лагеря нпс шли  к другому лагерю (точке).

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite ну со смарта смарт в например
[smart_terrains]
smart1 = {-info}
smart2 = {+info}

когда получит info перейдёт в другой смарт

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini+  - это при когда что либо получаем

а -  что такое?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite в данной ситуации при получения этого инфопоршня уйдём

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini smart1 

smart 2 место этого пишим свои названия смартов?

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


Ссылка на сообщение
Поделиться на другие сайты
   
29 минут назад, imcrazyhoudini сказал:

Stalkervernite ну со смарта смарт в например
[smart_terrains]
smart1 = {-info}
smart2 = {+info}

когда получит info перейдёт в другой смарт

а нельзя если прописано
[smart_terrains]
none= true
в другой смарт по инфо?

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


Ссылка на сообщение
Поделиться на другие сайты
 

РСФСР я обычно использовал такое

[smart_terrains]
smart = {+info}

то есть бродит себе или использует персональную логику, а потом под смарт

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


Ссылка на сообщение
Поделиться на другие сайты
 

Вот функция, которая при разговоре с арни перемещает барохло актора в ящик и спавнит всяких хлам для выступлений в инвентарь:
 

function bar_arena_teleport ( actor, npc)
	db.actor:give_info_portion("bar_arena_entrance")

	inv_box_1 = level_object_by_sid (573)

	out_object = actor
    in_object  = inv_box_1
		actor:inventory_for_each(transfer_object_item) 

	local spawn_items = {}	

	if	has_alife_info("bar_arena_fight_1") then 
		table.insert(spawn_items, "wpn_pm")
		table.insert(spawn_items, "ammo_9x18_pmm")
		table.insert(spawn_items, "ammo_9x18_pmm")
		table.insert(spawn_items, "wpn_knife")
	elseif	has_alife_info("bar_arena_fight_2") then
		table.insert(spawn_items, "wpn_mp5")
		table.insert(spawn_items, "ammo_9x19_pbp")
		table.insert(spawn_items, "wpn_knife")		
	elseif	has_alife_info("bar_arena_fight_3") then
		table.insert(spawn_items, "wpn_toz34")
		table.insert(spawn_items, "ammo_12x70_buck")
		table.insert(spawn_items, "ammo_12x70_buck")
		table.insert(spawn_items, "wpn_knife")
	elseif	has_alife_info("bar_arena_fight_4") then			
		table.insert(spawn_items, "wpn_ak74")
		table.insert(spawn_items, "ammo_5.45x39_ap")
		table.insert(spawn_items, "ammo_5.45x39_ap")
		table.insert(spawn_items, "wpn_knife")
		table.insert(spawn_items, "bandage")
		table.insert(spawn_items, "bandage")
	elseif	has_alife_info("bar_arena_fight_5") then	
		table.insert(spawn_items, "wpn_abakan")
		table.insert(spawn_items, "ammo_5.45x39_ap")
		table.insert(spawn_items, "ammo_5.45x39_ap")
		table.insert(spawn_items, "ammo_5.45x39_ap")
		table.insert(spawn_items, "wpn_knife")
		table.insert(spawn_items, "bandage")
		table.insert(spawn_items, "medkit")
		table.insert(spawn_items, "svoboda_light_outfit")
	elseif	has_alife_info("bar_arena_fight_6") then
		table.insert(spawn_items, "wpn_groza")
		table.insert(spawn_items, "ammo_9x39_ap")
		table.insert(spawn_items, "ammo_9x39_ap")
		table.insert(spawn_items, "ammo_9x39_ap")
		table.insert(spawn_items, "wpn_knife")
		table.insert(spawn_items, "grenade_f1")
		table.insert(spawn_items, "specops_outfit")
	elseif	has_alife_info("bar_arena_fight_7") then
		table.insert(spawn_items, "wpn_knife")
		table.insert(spawn_items, "bandage")
		table.insert(spawn_items, "grenade_f1")
		table.insert(spawn_items, "grenade_f1")
		table.insert(spawn_items, "grenade_f1")
		table.insert(spawn_items, "grenade_f1")
	elseif	has_alife_info("bar_arena_fight_8") then
		table.insert(spawn_items, "wpn_g36")
		table.insert(spawn_items, "ammo_5.56x45_ap")
		table.insert(spawn_items, "ammo_5.56x45_ap")
		table.insert(spawn_items, "ammo_5.56x45_ap")
		table.insert(spawn_items, "ammo_5.56x45_ap")
		table.insert(spawn_items, "exo_outfit")
		table.insert(spawn_items, "wpn_knife")
	end
	
	local k,v = 0,0
	
	for k,v in pairs(spawn_items) do
		alife():create(v,	
						db.actor:position(),
						db.actor:level_vertex_id(),	
						db.actor:game_vertex_id(), 
						db.actor:id())
	end	
	
end

Пытаюсь сделать на основе нее функцию, вызываемую через логику рестриктора для простого перемещения всего барахла в ящик. Получилось пока такое, и само собой не рабочее:
 

function escape_rob_actor ( actor, npc)
         inv_box_1 = level_object_by_sid (051)
         out_object = actor
         in_object = inv_box_1
actor:inventory_for_each(transfer_object_item)
end

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

РСФСР 

Использую такую, с вариантом по имени:

function relocate_actor_inventory_to_box(actor, npc, p)
    local function transfer_object_item(item)
              --# Секции, которые не перемещать
              if item:section() ~= "wpn_binoc"
              and item:section() ~= "wpn_knife"
              and item:section() ~= "device_torch"
              and item:section() ~= "device_pda" then
                  db.actor:transfer_item(item, inv_box_1)
              end
          end

    --# (отключено) Вариант по сиду: %=relocate_actor_inventory_to_box(123)%
    --# inv_box_1 = level_object_by_sid(p[1])

    --# Вариант по имени: %=relocate_actor_inventory_to_box(esc_inventory_box_0123)%
    local s_obj = alife():object(p[1])
    inv_box_1 = level.object_by_id(s_obj.id)
    --#
    actor:inventory_for_each(transfer_object_item)
end

 

  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini Привет, а как ускорить нпс? что бы когда он шел он е медленно шел,а бегал, как такое реализовать?

Изменено пользователем Stalkervernite

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


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite либо в вэйпоинт прописать
wp00|a=run

либо в логику если это walker
def_state_moving1 = run

подробнее: http://stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_1#.D0.A1.D1.85.D0.B5.D0.BC.D0.B0_walker

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн