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

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

 
 

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

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

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


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

imcrazyhoudini Вписал в вейпоинт в нижнее имя самое,ничего не происходит.

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


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

imcrazyhoudini1867572718_1.PNG.9ed8a2aadd6da253f14772db49396b81.PNG


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

1577526367_2.PNG.bf969d6e4b56904e8f25339c1610c207.PNG

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


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

Stalkervernite 
esc_kamp = true лишний, но речь о вэй поинтах шла

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


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

imcrazyhoudini Так я удалил его щас,тестил,толку 0


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

Stalkervernite Через логику не хочу делать,лучше через смарты

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


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

Stalkervernite смотри, он начнёт бежать как только станет на вэйпоинт

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

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

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


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

imcrazyhoudini А я думаю почему он медленно идет, он должен встать на назначенную точку, и тогда только побежит?

 

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


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

Stalkervernite да

но если ты о переходе со смарта в смарт, то он скорее всего и будет лениво идти, это я уже хз где править, в скриптах думаю

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


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

imcrazyhoudini Ладно, придется логику с нуля писать, по твоим словам "но если ты о переходе со смарта в смарт, то он скорее всего и будет лениво идти, это я уже хз где править, в скриптах думаю" А так спасибо,лучше через логику делать буду.

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

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


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

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

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


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

imcrazyhoudini Насчет того что ты щас сказал я знал) Но она как минимум лучше смарта со смарта, хочу сделать сцену в моде, который щас в разработке, типо нпс с одной точке, перебираются в другую. А грамотна не получается сделать.

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


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

Stalkervernite ну переведи в одиночной логике/используй дубляж НПС

  • Лайк 1

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


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

1

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

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


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

Есть способ как-нибудь локализовать ошибки в .xml - файлах?
кроме
[error]Line          : 87
[error]Description   : XML file:text\rus\string_table_includes.xml value: errDescr:Error reading Attributes.

ничего не ясно. Изменял сразу много файлов и теперь понять где наебнулся не могу.Вручную вроде посмотрел - ошибок нет. Через .xml- валидатор тоже прогонял, но он бракует вообще большую часть хмл сталкера

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


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

РСФСР дескрипшн вроде подсказал какой файл. так что много файлов должно отпасть? наверняка мелочь, скобку какую пропустил


76561198152189716.png

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


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

РСФСР дескрипшн вроде подсказал какой файл. так что много файлов должно отпасть? наверняка мелочь, скобку какую пропустил

этот файл во-первых не трогал, во вторых открыв файл оригинала- там число строк меньше. нету 87

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


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

РСФСР 87 это строка в исходниках движка. И тебе в вылете дана подсказка в какую сторону смотреть. А именно `errDescr:Error reading Attributes.` проблема чтения атрибутов, приведу пример не на сталкере, но xml везде один.

<note date="10/01/2008"> это наш условный документ имеющий элемент note, его начало, поле date это и есть атрибут в элементе note.
Так что открывай свой string_table_includes.xml и ищи где неправильно прописан атрибут, смотри что редактировал и сравнивай с тем что точно работает и можно считать эталоном.

А вообще раз это у тебя include то и ошибка может быть во многих местах, тут уже только сидеть и руками искать кривой аттрибут во всех xml файлах что прииннклюжены к нему, и используй другой валидатор для проверки

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


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

РСФСР  и используй другой валидатор для проверки

бесполезно - они все выдают ошибки на первых строках, где русский текст начинается

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


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

Кто знает, сделал лагерь,после инфопоршня они идут к другому смарту (задумка такая), Но они очень медленно идут, и маршут у них максимальн длинный, они не обходят аномалии, и по итогу умирают в ней же, кто знает как исправить такую ошибку, подробно объясните. Человек пытался объяснить @imcrazyhoudini но до меня не доперло.

Можете в личку  в написать.

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


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

Stalkervernite а в чём проблема, что они долго идут?

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


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

imcrazyhoudini Да, не могу понять, сижу туплю весь день, Можешь пожалуйста на скринах показать,или сайт где подробно объяснят, а то у людей спросил, одназначного ответа не получил.

 

В личку можешь написать.

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


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

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

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

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

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

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

Войти

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

Войти

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

    Ни одного зарегистрированного пользователя не просматривает данную страницу