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

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


Svoboда

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

3 часа назад, Pug-Lover сказал:

но всё равно не робит

У меня спавн этой бочки на позиции актера просто приводит к смерти ГГ. Но бочка спавнится исправно...

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


Ссылка на сообщение
7 часов назад, Norman Eisenherz сказал:

alife():object(del)

Ф-ция object с строковым аргументом ищет объект по имени. А ты в ф-цию подсовываешь конфиговую секцию. В случае с удалением "wpn_pb" - просто совпадение, что существует обект с таким именем. Сделай правильно, примерно так:

    local obj = db.actor:object("wpn_addon_scope")
    if obj then
        alife():release(alife():object(obj:id()), true)
    end

 

Изменено пользователем AndreySol
  • Согласен 2

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


Ссылка на сообщение
4 часа назад, Norman Eisenherz сказал:

Имя файла модели?

Ну при чем тут файл модели ? Вот несколько фрагментов из распакованного спавна:

Скрытый текст

 

; cse_abstract properties
section_name = wpn_bm16 <-- это конфиговая секция
name = esc_wpn_bm16 <-- это уникальное имя объекта
position = 338.799987792969, 15.3627433776855, 242.199981689453
direction = -3.42261046171188e-008, -0.838799953460693, -1.56779897212982
......

 

; cse_abstract properties
section_name = bandage
name = esc_bandage_0005
position = 340.254608154297, 18.6207141876221, 239.889846801758
......

 

Имя предмета может быть задано несколькими способами: разработчиком, при размещении объекта через СДК(или ACDC) или автогенерацией в движке или в СДК.. И ф-ция удаления не использует имен - она принимает аргументом указатель на серверный класс предмета...

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


Ссылка на сообщение
1 час назад, Norman Eisenherz сказал:

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

Это ты инвентарный ящик хочешь ГГ в рюкзак запихнуть ?

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


Ссылка на сообщение
23 минуты назад, Norman Eisenherz сказал:

но хочется все-таки спавнить ящик прямо в инвентарь и отправлять предметы в него. Так можно вообще?

Нет, реализация подобного функционала для инвентарных предметов не предусмотрена.

26 минут назад, Norman Eisenherz сказал:

Идея в том, чтобы временно скидывать вещи из слотов в ящик на время торговли и обыска.

Идея - не фонтан... Тут однозначно лучше будет движковая правка.

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


Ссылка на сообщение
9 часов назад, naxac сказал:

Иcпользуй каллбэк на выход в онлайн:

@Norman Eisenherz, чтоб понятнее было - практически все в движке завязано на апдейте, соответственно, от момента создания объекта, до его выхода в он-лайн, проходит определенный промежуток времени(некое кол-во апдейтов (тиков системного таймера)). Именно для этой ситуации, разрабами был введен кэллбэк на выход объекта в он-лайн...

Изменено пользователем W.A.S.P.

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


Ссылка на сообщение
2 часа назад, Norman Eisenherz сказал:

Ссылку на id я могу передать только на один объект в одном колбэке

Не правда... Учи луа и экспортированные ф-ции движка:508:

Аргументом в ф-ции кэллбэка может быть и таблица, в которую можно без проблем положить идентификаторы любого кол-ва объектов...

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


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

@Norman Eisenherz

52 минуты назад, Norman Eisenherz сказал:

act:object( slot:section()

Это зачем ???

У тебя же в переменной slot уже находится объект из соответствующего слота, ее и используй в transfer_item.

  • Согласен 1

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


Ссылка на сообщение
3 часа назад, _Sk8_AsTeR_ сказал:

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

А нет-пакеты зачем тебе ? Достаточно просто перебрать все объекты, и для тех из них, кто является сталкером, получить имя:

for i = 1, 65535 do
    local obj = alife():object(i)
    if obj and IsStalker(obj) then
        local text = obj:name() -- тут и есть имя сталкера       
    end
end

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

  • Полезно 1

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


Ссылка на сообщение
2 часа назад, _Sk8_AsTeR_ сказал:

чтобы она вызывалась только при каждой загрузке сейва или локи?

В actor_binder:net_spawn попробуй.

  • Спасибо 1

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


Ссылка на сообщение
8 часов назад, Norman Eisenherz сказал:

Как это обойти без костылей?

Попробуй в апдейте биндера:

if device().precache_frame <= 1 then

     ....тут вызывай свой уборщик....

end

2 часа назад, _Sk8_AsTeR_ сказал:

Официально он появляется после х-18, но он у меня отписался намного раньше.

Фанат прописан в all.spawn, по этому спавнится с самого начала НИ, но до момента "Х" сидит в офф-лайне. А в чем проблема? Типа, до появления в качестве замены Волку в ДН, Фанат лежит в анабиозе в секретной лаборатории? И по тому не может писать сообщения, как любой другой сталкер?

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


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

@Norman Eisenherz

Вот этоl

local act = db.actor

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

Изменено пользователем AndreySol
  • Согласен 1

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


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

IsMonster

Ну так эта ф-ция объявлена в _G.script, тебе очень хочется иметь ее в класс_регистратор ? И какой с этого профит ?

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


Ссылка на сообщение
3 часа назад, naxac сказал:

CUIScrollView одними скриптами

Ну, судя по набору экспортированных ф-ций, всего достаточно для создания скриптами этого контрола. В чем проблема ?

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


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

@naxac

Если еще интересно, насчет CUIScrollView, то глянул я в исходники: при скриптовом создании конторла не вызывается метод Init. Соответственно, имеем зависание\вылет при вызове AddWindow. 

  • Спасибо 1

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


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

@AndrewMor

Ты бы лучше, вместо прямой работы с нет-пакетом, использовал какой-нить модуль, ну хотя бы того же Artos'а. Меньше проблем бы было...

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

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


Ссылка на сообщение
12 часов назад, AndrewMor сказал:

А про модуль Артоса читал в свое время, но ничего тогда не понял

Вот тут, я уже тебя не понял - что не понятного в готовом скрипт-модуле для работы с нет-пакетами? Грамотные в этом вопросе люди, обернули все в удобный функционал, и даже справочку не забыли приложить к этому...

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


Ссылка на сообщение
22 часа назад, Капрал Хикс сказал:

интересует функция определения объектов в онлайне.

 

21 час назад, dsh сказал:

в se_item.script

Приставка se_ означает серверный класс(серверная часть) объекта, если я не ошибаюсь. Думается, что определение объектов в он-лайне стоит сделать как-то иначе...

22 часа назад, Капрал Хикс сказал:

Чтобы, скажем, по классам пистолета, автомата, снайперки и так далее отображать соответствующую иконку.

Не очень ясна цель вопрошающего(каким образом связано нахождение предмета в он-лайне и "соответствующая иконка"), по этому тяжело предложить что либо. К.Х. уточни задачу.

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


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

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