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

[SoC] Ковыряемся в файлах


Halford

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

(изменено)

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

 

Сообщение от модератора n6260
Есть тема отдельная про худ. Читайте.
Изменено пользователем n6260

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

можно ли изменить цвет СМС с заданиями и как?

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

Всем привет! Кто может объяснить. Добавляю в мод спальный мешок по статье http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BF%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%88%D0%BE%D0%BA

Спальник добавился, но при использовании он просто исчезает. В чём моя ошибка?



Забыл добавить, в моде есть скрипты от АМК amk.script, amk_mod.script, ar_sleep.script и sleep_manager.script

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

Всем добрый вечер, запрашиваю помощь в работе со space_restrictor.

Заспавнь его через скрипт.

Создадим скриптовый файл my_restrictor.script в его теле пропишем

----------

-- чтение формы из нет-пакета

----------

function r_shape(packet)

local s

local st = {}

st.count = packet:r_u8()

st.shapes = {}

for i=1, st.count do

s = {}

s.type = packet:r_u8()

if s.type == 0 then

s.center = packet:r_vec3()

s.radius = packet:r_float()

else

s.axis_x = packet:r_vec3()

s.axis_y = packet:r_vec3()

s.axis_z = packet:r_vec3()

s.offset = packet:r_vec3()

end

st.shapes = s

end

return st

end

----------

-- запись формы в нет-пакет

----------

function w_shape(packet, st)

local s

packet:w_u8(st.count)

for i=1, st.count do

s = st.shapes

packet:w_u8(s.type)

if s.type == 0 then

packet:w_vec3(s.center)

packet:w_float(s.radius)

else

packet:w_vec3(s.axis_x)

packet:w_vec3(s.axis_y)

packet:w_vec3(s.axis_z)

packet:w_vec3(s.offset)

end

end

end

----------

-- перепаковка нет-пакета созданного скриптом рестрикта

----------

function rewrite_restrictor(se_obj, custom, radius)

local packet = net_packet()

se_obj:STATE_Write(packet)

local game_vertex_id = packet:r_u16()

local distance = packet:r_float()

local direct_control = 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 spawn_story_id = packet:r_s32()

local shape = r_shape(packet)

local restrictor_type = packet:r_u8()

custom_data = custom

shape = {}

shape.count = 1

shape.shapes = {}

shape.shapes[1] = {}

shape.shapes[1].type = 0

shape.shapes[1].center = vector():set(0,0,0)

shape.shapes[1].radius = radius

packet:w_u16(game_vertex_id)

packet:w_float(distance)

packet:w_s32(direct_control)

packet:w_s32(level_vertex_id)

packet:w_s32(object_flags)

packet:w_stringZ(custom_data)

packet:w_s32(story_id)

packet:w_s32(spawn_story_id)

w_shape(packet, shape)

packet:w_u8(restrictor_type)

se_obj:STATE_Read(packet, packet:w_tell() - packet:r_tell())

end

Ниже пишем функцию спавна

function my_restr() -- название

local se_obj = alife():create("space_restrictor",vector():set(58.646267,3.917035,204.469543),317530,3229) --координаты

local custom = "[logic]\ncfg = scripts\my_restr.ltx" --путь к логике

rewrite_restrictor(se_obj, custom, 2.0) --радиус рестриктора

end

Вызываем её в нужный нам момент, прописав в диалог или по какому-либо

условию.

Далее идём в папку gamedata\config\scripts и создаём файл с логикой my_restr.ltx в его теле пропишем

[logic]

active = sr_idle@one

[sr_idle@one]

on_actor_inside = {+my_info} nil %=play_snd(путь к звуковому файлу)%

при наличии инфопоршня my_info, вызывается функция

проигрывания звука

При установленном nil, рестриктор сработает только один раз.

 

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

@Artics,

Схема heli_move:

 

Общие сведения: Позволяет летать вертолёту по патрульному пути, регулировать скорость, зависать, стрелять по различным целям.

 

Для схемы должен быть задан path_move – путь, по которому будет летать вертолёт. Он может содержать одну вершину, если нужно, чтоб вертолёт висел на месте.

 

Можно (но не обязательно) задать path_look – путь, в вершины которого вертолет может смотреть.

 

Вершины этих путей могут быть поставлены где угодно в пределах ограничивающего бокса уровня. Они не зависят от ai-nodes.

 

По пути вертолёт летает без учёта связей между вершинами. Он летает от вершины к вершине в порядке возрастания их номера (т.е. в порядке, в котором их поставили на уровень).

 

Вертолёт старается летать точно по вершинам пути. При желании можно сделать ювелирный пролёт под мостом.

 

Вертолёт старается летать как можно быстрее. Пояснение: если ему задать, что в следующей вершине пути он должен иметь скорость 10 м/с, а его максимальная скорость установлена в 30 м/с, то он не станет сразу лететь 10 м/с. Он сначала будет разгоняться вплоть до 30 м/с и только на подлёте к целевой вершине начнёт тормозить с расчётом прибыть в неё имея 10 м/с.

 

Если в вершине пути path_move задан набор флажков, то вертолёт будет смотреть в любую из вершин path_look, в которых задан такой же набор флажков. Поворачиваться к этой точке вертолёт начнёт с предыдущей вершины пути. На данном этапе вертолет не может, зависнув в одном месте, смотреть поочередно в несколько точек path_look

 

Настройки:

 

engine_sound = true/false (по умолчанию true)

 

Вкл/выкл звук двигателя вертолёта.

 

invulnerable = true/false (по умолчанию false)

 

Неуязвимость. Если true, вертолёт игнорирует все хиты.

 

immortal = true/false (по умолчанию false)

 

Бессмертие. Если true, вертолёт получает повреждения, но не умирает.

 

mute = true/false (по умолчанию false)

 

Отключает универсальные реплики пилотов вертолета.

 

rocket_delay = msec (время в миллисекундах реального времени)

 

Задержака между пусками ракет. По дефолту берется из ltx (сейчас 1250 мсек)

 

default_velocity = m/sec (скорость с которой летает вертолет, если не заданы другие параметры)

 

Параметры, задаваемые в именах вершин пути path_move:

 

«e» – (сокр. от enemy) задание врага (цели). Стрелять по этой цели вертолёт начнёт уже в предыдущей вершине. Если значение не задано, то будет стрелять в точку из path_look, которая соответствует данной вершине. Если задано «e=actor» (можно сокращённо «e=a»), то огонь будет вестись по актёру. Если задано «e=число», стрелять будет по объекту со story id равным числу.

 

«w» – (сокр. от weapon) каким оружием стрелять. Возможные значения: w=1 – стрелять только пулемётом; w=2 – стрелять только ракетами. По умолчанию стреляет из всего.

 

«v» - (сокр. от velocity) задание максимальной скорости (в м/с) на участке пути от данной вершины до следующей. Если этот параметр не задан, то умолчание берётся из файла helicopter.ltx.

 

«dv» - (сокр. от destination velocity) задание скорости (в м/с), которую вертолёт должен иметь в момент прибытия в данную вершину.

 

«die» - убить вертолёт.

 

«flame» - начать дымить (как будто подбили).

 

Параметры, задаваемые в именах вершин пути path_look:

 

«e» - работает так же как и в path_move. Разница в том, что стрелять по указанной цели вертолёт начнёт лишь тогда, когда прибудет в вершину пути path_move, которая соответствует данной вершине path_look.

 

«w» – см. такой же параметр для пути path_move.

 

«t» - (сокр. от time) длительность времени (в мс реального времени), на протяжении которого вертолёт будет смотреть в данную точку. Если этот параметр не задан, то вертолёт пронесётся без остановки, но постарается на ходу развернуться к этой вершине.

 

И в логике твоей вертухи попробуй прорисать.

[logic]

active = heli_move@idle_start

 

[heli_move@idle_start]

path_move = heli_idle_walk

path_look = heli_idle_look

engine_sound = false

invulnerable = true

immortal = true

mute = false

combat_ignore = true

on_info = {+info -info_nps_dead} heli_move@atack --- при налиии поршня и отсутсвии поршня па смерть нпс вертуха начнёт атаку

 

 

[heli_move@atack]

path_move = heli_atack_walk

;path_look = heli_atack_look

engine_sound = true

invulnerable = true

immortal = true

mute = true

combat_ignore = false

combat_enemy = actor

combat_use_rocket = false

combat_use_mgun = true

combat_velocity = 100

on_info = {+info_nps_dead} heli_move@idle_out --- при получении поршня о смерти нпс вертуха улетит

 

[heli_move@idle_out]

 

path_move = heli_idle_walk2

path_look = heli_idle_look2

engine_sound = false

invulnerable = true

immortal = true

mute = false

combat_ignore = true

 

END

 

Хотя может я и не прав

 

Не успел исправить:

В секции [heli_move@atack]

combat_enemy = число --- ид нпс из стори_ид

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

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

@npo100skill,

Description : height - данная ошибка, как правило указывает на криворучие при создании меню игры. Например: ползунок который увеличивает опции меню при прокрутке задран очень высоко.
И в большей степени относится к изменениям худа. Смотри, где, что наковырял и исправляй.

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

@butrikA,

В последней фразе диалога с первым НПС выдай инфопоршен  <give_info>твой инфопоршен</give_info>

А в условии диалога со вторым поставь

<dialog id="твой диалог">
        <has_info>твой инфопоршен</has_info>

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

@butrikA,

Попробуй такую функцию

function ves_sidr()
    news_manager.send_tip(db.actor, "%c[255,0,255,0]".."Сидорович:".."\\n".."%c[255,255,128,128]Твой текст.".."".."\n", nil, nil, 20000)
end

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

У кого нибудь есть "Окончательная версия уборщика трупов. (обновлено 25.11.2009)." ? Кинньте пожалуйста

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

Подключил уборщик, теперь как то надо убрать вывод инфы на экран.

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

Не знаю в той ли теме задаю вопрос, но всё же. Есть такая схема логики для НПС как [karavan]. А вот как подключить её в мод не нашёл. Помогите.

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

 

 


tor62,Такого нет, максимум что есть ето patrol

http://www.amk-team.ru/forum/index.php?showtopic=6356&page=19#entry727536

 

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

Попробуй так

active = sr_idle

[sr_idle]
on_actor_inside = {+dat_hem_sms} nil %=smski.sid_sms%

 

Для меня так лучше спавнить рестриктор через скрипт, можно перестраивать на ходу и без НИ.

Изменено пользователем tor62
  • Нравится 1

Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова

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


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

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

AMK-Team.ru

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