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

Внимание!

В ближайшее время на форум будет загружена новая редакция Правил форума и Пользовательского соглашения. 

Ознакомление обязательно.

_Val_ _Val_

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


Svoboда

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

 

 

Трабла в том что при переходе on_item_drop срабатывает

Мне вот кажется, что трабла в самом изначальном решении разряжать оружие в on_item_drop... В чем смысл-то ?

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


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

 

 

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

Согласен с Malandrinus'ом - что мешает создать окно на основе xml-описания, а затем скриптово крутить\вертеть его как хочется ?

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


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

 

 

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

 

Я вот только с ТЧ ковыряюсь, но где то попадалось, что в СДК под ЗП вроде сделаны встроенные редакторы диалогов и еще чего-то... Вот это правильный путь, потому как освоить любой инструмент из состава СДК многим будет проще, чем освоить скриптование. Плюс - инструменты СДК выполняют достаточную часть проверок на элементарные ошибки, к примеру одинаковое имя вэй-поинта или непися, в автоматическом режиме.

 

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


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

 

 

Но, не работает.

А ты серьезно веришь, что нет-пакет БТРа соответствует нет-пакету непися ?

Сделал поиск по слову custom_data, вот результат - именно тот, что нужен тебе...

  • Спасибо 1

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


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

 

 

Код ничего не возвращает

По тому, что поле "death" в таблице не существует. Возможно, данные об убийце в pstor имеются...

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


Ссылка на сообщение
всё отлично работает и безо всякого on_death в логике

А вот тут Ваше утверждение совсем не убедительно - я у себя проверял для нескольких неписей, действительно схема xr_death не срабатывает. А запись полей "death"  и "killer" в db.storage происходит именно в этой схеме, вот фрагмент:

function action_process_death:death_callback(victim, who)
     if who ~= nil then
          printf("[%s] killed by [%s]", victim:name(), who:name())
          db.storage[victim:id()].death.killer = who:id()
     else
          printf("[%s] killed by [Unknown]", victim:name())
          db.storage[victim:id()].death.killer = -1
     end
..............
Изменено пользователем UnLoaded

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


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

 

 

Бандиты на АТП очевидно в гулаге.

Само собой, в гулаге. Правда я у себя на 1.0006 посмотрел этот гулаг(esc_fabrika_bandit), нет там нигде on_death. И у меня то-же для этих бандитов, сразу после убийства, выдает ID убийцы = 0, что соответствует актеру. Но после сэйв\лоад уже все, полей "death"  и "killer" не существует.

Так что, похоже, самый адекватный способ убийцу получить - из нет-пакета, а все эти логико- и сэйв\лоад зависимые вещи лучше не использовать...

  • Согласен 1
  • Полезно 2

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


Ссылка на сообщение
список всех артефактов на уровне в данный момент времени, и удалить их?

 

способ раз...

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

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

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


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

 

 

строки с секциями повторяются несколько раз, вот скрин, на нем видно. Никто не знает способ исправления?

Все правильно - патроны в инвентаре хранятся в пачках, кои могут быть полные\не полные. Ф-ции для работы с инвентарем возвращают каждый объект(имхо - пачку с патронами\аптечку и др. и др.) индивидуально, вот у тебя и получается в списке несколько одинаковых секций. Соответственно делай какой-то способ накопления кол-ва для одинаковых секций, а в список выводи уже обобщенный результат.

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


Ссылка на сообщение
код для определения типа патронов, заряженных в оружии?
function Get_ammo_type(wpn_id) -- wpn_id - id ствола --
     local sobj = alife():object(wpn_id)
     if not sobj then
          return nil 
     end

     local np = net_packet()
     sobj:STATE_Write(np)
     local size = np:w_tell()
     np:r_seek(size - 1)
     return np:r_u8() -- 0 - 1-й тип боеприпасов, 1 - 2-й тип боеприпасов и т.д. (из конфига ствола) --
end

Это для ТЧ.

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

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


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

 

 

определить с глушителем ли оружие в руках или нет?

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

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


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

 

 

Поиск по форуму и файлам оригинала ничего мне не дал(

Ну да, а в "Справочнике по ф-циям и классам" -> "Оконные классы" видимо рецепты садоводства ?

  • Спасибо 1

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


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

 

 

хотя я там вообще БТР в оригинале не припомню...

Может потому и нет его в оригинале, что "never" ?

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


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

@CRAZY_STALKER666

Вообще-то насчет не используемых вещей в скриптах\конфигах\спавне - не ужели ты впервые узнал, что разрабы наплодили вышеназванного в приличном кол-ве и не удосужились это подчистить даже в релизе ?

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


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

 

 

Но как быть?

Для начала - показать содержимое ф-ции get_story_object(...). Ну или судя по всему, сразу, самому изменить в ней получение объекта ящика с "клиентской" ф-ции на "серверную"...

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


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

 

 

В сдк в параметрах объекта убрал галку can_switch_offline.

Костыль сделал...

Если ящик будет на локации, отличной от той, где сейчас ГГ(актер) то опять не сработает. А переделка ф-ции(а еще лучше написание собственной) состоит в использовании уже подсказанного выше:

local sim = alife()
soBox = sim:story_object(62333)

Этот код вернет серверный объект ящика, который существует всегда, не зависимо от того на какой локации относительно загруженной находится и попал ли в он-лайн радиус.

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


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

 

 

курсора и тп

Ну тогда, наверное, еще:

void disable_input() -- блокирует мышь и клавиатуру
void enable_input() -- разблокирует мышь и клавиатуру

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


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

 

 

даже если пробовать в полуприсяде подойти со спины к враждебному НПС, то он с этой дистанции обнаружения разворачивается и сразу атакует
Откуда такие выводы ? В конфигах этот параметр варьируется от 60 до 150, так по твоему получается, что подойдя на 60м к неписю со спины он тебя сразу увидит и атакует ? Вот у меня, получается подобраться к неписям со спины на 15...10м. И не забывай, что кроме зрения у неписей есть еще и слух... А еще есть настройки денжеров, которыми можно вполне добиться достаточного для сюжета стелса...

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


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

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