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

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


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

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


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

@CRAZY_STALKER666,

set_inactivate_input_time(number) - блочит вроде бы только клавиатуру на определенное время.

  • Согласен 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

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