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

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


Svoboда

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

Всем привет ребята. Интересует такой вопрос: Можно ли как-то отследить в какую часть тела ГГ попала пуля? Есть функция Колмогора .

if bone_index>0 and who then
  local kuda = ""
  if bone_index == 14 or bone_index == 15 then 
    kuda = "Ранен в глаз"
  elseif bone_index == 16 or bone_index == 13 then 
    kuda = "Ранен в голову"
  elseif bone_index == 17 then 
    kuda = "Ранен в шею"
  elseif bone_index == 9 or bone_index == 10 or bone_index == 11 or bone_index == 18 then 
    kuda = "Ранен в грудь"    
  elseif bone_index >= 1 and bone_index <= 8 then 
    kuda = "Ранен в ногу"    
  elseif bone_index >= 19 and bone_index <= 42 then 
    kuda = "Ранен в руку"
  end
  news_manager.send_tip(db.actor, kuda, nil, nil, 1000)
end

 

 

 

Но эта функция применима только на НПС.

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


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

Всем привет. У меня такие вопросы: 1.Насколько вредно для движка использовать(выдавать актору/забирать) например 10-20 инфопорций каждые 5 минут? Движок выдержит? 

2. Какие есть аналоги инфопорций , или как можна их имитировать? Заранее спасибо.

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


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

@Malandrinus, Понял, спасибо. А как например сохранять переменную в se_stor.script от Artos`a . Есть фунции set(запись) и get(чтение), не пойму где нужно вызывать se_stor.get(var_name, default) . И правильно ли использовать в этом случае se_stor ?

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


Ссылка на сообщение
(изменено)

@UnLoaded, Ты немного неправильно понял . Мы говорим о аналоге инфопорций - логических переменных , которые нужно сохранять .

 

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

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

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


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

@AlexLuzifer, Регистрировать функцию actor_binder:key_pressed(DIK) нужно в bind_stalker . Ты колбэк в reinit() и net_destroy() добавлял?

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


Ссылка на сообщение
(изменено)

@vampirnik77, Если все правильно подключил, таймеры должны сохраняться. 

Изменено пользователем TIGER_VLAD
  • Спасибо 1

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


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

 

 

Что прописывать, если мне не нужен se_stor вообще? Желательно их сохранять в скриптовом хранилище (7 патч), но пока хотя бы в пстор актора чисто что б работало
Просто не подключай se_stor и запись будет через пстор.

 

 

 

 

при сейв/лоаде с активным таймером - безлог.

Может что-то неправильно подключил, все заново подключи.

  • Спасибо 1

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


Ссылка на сообщение
(изменено)

@HellRatz, Привет)) Отловить можно так: 

local active_item = db.actor:active_item()
if active_item and active_item:section() == "твое_оружие"  then
...
end
Насчет анимаций, не знаю. Помню кто-то недавно уже задавал такой вопрос. Но можно еще с помощью ХЕ получить текущие состояние оружия:

local weapon_states = {
idle = 0,
fire = 1,
fire2 = 2,
reload = 3,
showing = 4,
hiding = 5,
hidden = 6,
misfire = 7,
mag_empty = 8,
switch = 9
}

local state = db.actor:active_item():get_hud_item_state()
if state == weapon_states.fire then
...
end

 

 

Изменено пользователем TIGER_VLAD
  • Спасибо 1

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


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

Хм... интересно. Насчет состояния оружия. У меня не получается отловить стэйт: mag_empty = 8. Другие состояния работают.

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


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

Всем привет. Как можно заспавнить НПС через скрипт и там же установить путь к логике(не используя all.spawn). Платформа: ТЧ. Помню где-то тут видел, но вот сейчас найти не могу. Спасибо.

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


Ссылка на сообщение
(изменено)

@dsh, 1 способ не подходит. 

записать в его нетпакет нужную custom_data. 

Как раз так и пробовал. Вот по этому примеру:

 

 


-- Спавн БТР. На основе АМК
--Параметры вызова: 
--позиция x,
--позиция y,
--позиция z, 
--левел вертекс, 
--гейм вертекс,
--файл логики без расширения .ltx. !!!ДОЛЖЕН находиться в config\scripts\btr!!!
-------------------------------------------------------------------------------------------------------------
function btr(posx,posy,posz,lvid,gvid,logic)
    local obj = alife():create("btr",vector():set(posx,posy,posz),lvid,gvid)         --тут вместо бтр, спавню нпс - agr_soldier_veteran
    local packet = net_packet()
    obj:STATE_Write(packet)


    -- свойства cse_alife_object
    local game_vertex_id = packet:r_u16()
    local cse_alife_object__unk1_f32 = packet:r_float()
    local cse_alife_object__unk2_s32 = packet:r_s32()
    local level_vertex_id = packet:r_s32()
    local object_flags = packet:r_s32()
    local custom_data = packet:r_stringZ()
    local story_id = packet:r_s32()
    local cse_alife_object__unk3_s32 = packet:r_s32()


    -- свойства cse_visual
    local model_visual = packet:r_stringZ()
    local cse_visual__unk1_u8 = packet:r_u8()


    -- свойства cse_ph_skeleton
    local skeleton_name = packet:r_stringZ()
    local cse_ph_skeleton__unk1_u8 = packet:r_u8()
    local cse_ph_skeleton__unk2_u16 = packet:r_u16()
    local health = packet:r_float()
    
    --устанавливаем логику
    custom_data = "[logic]\ncfg = scripts\\btr\\"..logic..".ltx"


    -- теперь заполняем нужные параметры
    -- свойства cse_alife_object
    packet:w_begin(game_vertex_id)
    packet:w_float(cse_alife_object__unk1_f32)
    packet:w_s32(cse_alife_object__unk2_s32)
    packet:w_s32(level_vertex_id)
    object_flags = bit_not(5)    -- ~5 = 0xfffffffa
    packet:w_s32(object_flags)
    packet:w_stringZ(custom_data)
    packet:w_s32(-1)
    packet:w_s32(cse_alife_object__unk3_s32)


    -- свойства cse_visual
    packet:w_stringZ(model_visual)
    packet:w_u8(cse_visual__unk1_u8)
    
    -- свойства cse_ph_skeleton
    skeleton_name = "idle"
    packet:w_stringZ(skeleton_name)
    packet:w_u8(cse_ph_skeleton__unk1_u8)
    packet:w_u16(cse_ph_skeleton__unk2_u16)
    health = 1
    packet:w_float(health)
    
    -- считываем скорректированные параметры
    packet:r_seek(0)
    obj:STATE_Read(packet, packet:w_tell())

    return obj
end

 

 

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

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

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


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

@UnLoaded@dsh, Я так понимаю эти скрипты годятся только для сталкеров? Монстрам, вертолетам, бтрам не подойдут?

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


Ссылка на сообщение
(изменено)
Подскажите как поменять цвет текста, выводимых сообщений?

news_manager.send_tip(db.actor, "%c[255,255,128,128]Текст 1:\n%c[default]Текст 2", nil, nil, 1000) 

 

где:

%c[255,255,128,128] - это цвет сообщения. 

%c[default]- это конец кода цвета сообщения, дальше текст идёт в стандартном цвете.

\n - перенос строки.

Изменено пользователем TIGER_VLAD
  • Спасибо 1
  • Полезно 1

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


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

 

 

Простите, как изменить иконку сообщения?

db.actor:give_game_news("...text...", "ui\\ui_iconsTotal",Frect():set(633,326,133,133), 0, 3000)    ,

 

ui\\ui_iconsTotal - путь к иконкам.

set(633,326,133,133) - координаты иконки.

  • Спасибо 1
  • Полезно 1

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


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

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

AMK-Team.ru

×
×
  • Создать...