Главная Тайные Тропы Регистрация

Вход

Приветствую Вас Гость | RSSПятница, 29.03.2024, 08:24
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 5 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
Модератор форума: antreg, dimos  
Форум » Школа моддинга » Вопрос-ответ » Приёмная вопросов ((задавайте Ваши вопросы))
Приёмная вопросов
antregДата: Пятница, 18.02.2011, 16:42 | Сообщение # 1
Генерал-майор
Группа: Администраторы
Сообщений: 416
Репутация: 124
Статус: Offline
В этой теме рассматриваются вопросы о реализации тех или иных решений на примерах из модификации "Тайные Тропы 2". Формат, в котором следует задавать вопрос, такой (для примера):
"В модификации ТТ2 есть собака-поводырь Болотного Доктора, которая бежит и показывает ГГ тайную тропу. Как была сделана такая собака?"

Общие вопросы по ковырянию можно посмотреть, почитав Шпаргалку
 
ins33Дата: Среда, 24.10.2012, 11:32 | Сообщение # 101
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 2
Статус: Offline
IMAGINE,
Code
function get_story_id_not_replay()
local ST
ST = xr_logic.pstor_retrieve(db.actor, "ScriptAnomId", 0)
if type(ST) ~= "number" or ST == nil then
ST = 9000
xr_logic.pstor_store(db.actor, "ScriptAnomId", ST)
end
if type(ST) == "number" or ST ~= nil then
ST = ST + 1
xr_logic.pstor_store(db.actor, "ScriptAnomId", ST)
end
return tonumber(ST)
end

function create_anom(name_anom, posit_anom, lvid_anom, gvid_anom, radius_anom, power_anom)
local obj = alife():create(name_anom, posit_anom, lvid_anom, gvid_anom)

-----------------------write----------------------
local packet = net_packet()
obj:STATE_Write(packet)

-----------------------load-----------------------
-- cse_alife_object
local game_vertex_id = packet:r_u16()
local distance = packet:r_float()
local direct_control = packet:r_u32()
local level_vertex_id = packet:r_u32()
local object_flags = packet:r_u32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_u32()
local spawn_story_id = packet:r_u32()

-- cse_shape
local shape_count = packet:r_u8()
for i=1,shape_count do
local shape_type = packet:r_u8()
if shape_type == 0 then
-- sphere
local center = packet:r_vec3()
local radius = packet:r_float()
else
-- box
local box = packet:r_matrix()
end
end

-- cse_alife_space_restrictor
local restrictor_type = packet:r_u8()

-- cse_alife_custom_zone
local max_power = packet:r_float()
local owner_id = packet:r_u32()
local enabled_time = packet:r_u32()
local disabled_time = packet:r_u32()
local start_time_shift = packet:r_u32()

-- cse_alife_anomalous_zone
local offline_interactive_radius = packet:r_float()
local artefact_spawn_count = packet:r_u16()
local artefact_position_offset = packet:r_u32()

-- se_zone_anom
local last_spawn_time_present = packet:r_u8()

if (string.find (name_anom, 'zone_zharka_static') ~= nil
or string.find (name_anom, 'zone_witches_galantine') ~= nil
or string.find (name_anom, 'zone_mosquito_bald') ~= nil
or string.find (name_anom, 'zone_mincer') ~= nil
or string.find (name_anom, 'zone_gravi_zone') ~= nil
or string.find (name_anom, 'zone_buzz') ~= nil )
and packet:r_elapsed() ~= 0 then
abort("left=%d", left)
end

---------------------------save--------------------
-- cse_alife_object
packet:w_begin(game_vertex_id)
packet:w_float(distance)
packet:w_u32(direct_control)
packet:w_u32(level_vertex_id)
object_flags = bit_not(193)
packet:w_u32(object_flags)
packet:w_stringZ(custom_data)
packet:w_u32(get_story_id_not_replay())
packet:w_u32(get_story_id_not_replay())

-- cse_shape
packet:w_u8(1) -- количество фигур
packet:w_u8(0) -- тип фигуры: сфера
packet:w_vec3(vector():set(0, 0, 0))
if radius_anom ~= nil then
packet:w_float(radius_anom)
else
packet:w_float(1.0)
end

-- cse_alife_space_restrictor
packet:w_u8(restrictor_type)

-- cse_alife_custom_zone
if power_anom ~= nil then
packet:w_float(power_anom)
else
packet:w_float(max_power)
end
packet:w_u32(owner_id)
packet:w_u32(enabled_time)
packet:w_u32(disabled_time)
packet:w_u32(start_time_shift)

-- cse_alife_anomalous_zone
packet:w_float(offline_interactive_radius)
packet:w_u16(artefact_spawn_count)
packet:w_u32(artefact_position_offset)

-- se_zone_anom
packet:w_u8(last_spawn_time_present)

------------------------read------------------------
packet:r_seek(0)
obj:STATE_Read(packet, packet:w_tell())

end

-----------------------------------спавним аномалии-----------------------------------

function spawn_anom_zarka()
this.create_anom('zone_gravi_zone', db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(), 15, 2) -- (), радиус, сила) +zone_gravi_zone +zone_mincer
news_manager.send_tip(db.actor, "%c[255,0,255,0]ЗДОРОВЬЕ\\n%c[default]ПАДАЕТ.", 0, "trader", 7000)
end  

Надеюсь помогло.

Добавлено (24.10.2012, 11:08)
---------------------------------------------
Сори что не в тему. В шраме рюкзак хорош. Подскажите где это можно увидеть.
П.С. Сори что не в тему.

Добавлено (24.10.2012, 11:32)
---------------------------------------------
АНТРЕГ сори

 
AliceДата: Среда, 05.12.2012, 16:59 | Сообщение # 102
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
antreg, у вас в моде есть три рем. комплекта , помимо универсального , не подскажете , если не трудно конечно, в каких файлах их искать , хотела посмотреть , как это все работает. Просто ТТ единственный мод где самостоятельный ремонт не требует еще одного экземпляра брони или оружия плюс занимает некоторое время.

Сообщение отредактировал Alice - Среда, 05.12.2012, 17:00
 
antregДата: Среда, 05.12.2012, 19:44 | Сообщение # 103
Генерал-майор
Группа: Администраторы
Сообщений: 416
Репутация: 124
Статус: Offline
Alice,
Этим ремкомплектам уже около четырёх лет.
Они есть в большинстве глобальных модов,
созданных на основе АМК.
Сделаны были ещё в далёком 2008 году либо в самом АМК, либо в модификации NLC 5,
не помню уже.
Там нет ничего оригинального и нового,
Это очень старое и заезженное, но вполне рабочее и интересное.
 
ins33Дата: Понедельник, 07.01.2013, 15:16 | Сообщение # 104
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 2
Статус: Offline
Подскажите какой хит наносится сумасшедшему учёному, после которого у него меняется логика?

Первоначально НПС имеет логику из файла config\scripts\new\agr_und_zombi.ltx в которой прописан хит с выдачей поршня и вызовом скриптовой функции по присвоению данному НПС другой логики из файла config\scripts\new\agr_und_zombi_new.ltx


Сообщение отредактировал Cation - Понедельник, 07.01.2013, 17:51
 
Master[mop]Дата: Пятница, 11.01.2013, 15:21 | Сообщение # 105
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Хай, подскажите плз!
Раньше играл с каким-то модом, и можно было нажатием одной кнопки включать и выключать интерфейс, выглядело так:


Сейчас поставил Тайные Тропы 2. При нажатии "-" остается прицел и аптеки внизу


Как сделать, чтобы убирался прицел, и как убрать счетчик аптек внизу?
Заренее благодарен!

-----------
Все проблема решена. Все было в файле hud_med.script
А прицел убирать только через консоль
Спасибо =)
Мод офигенный!!


Сообщение отредактировал Master[mop] - Пятница, 11.01.2013, 22:44
 
ins33Дата: Понедельник, 28.01.2013, 21:04 | Сообщение # 106
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 2
Статус: Offline
antreg, В логике повыдыря есть on_signal = mestod | Подскажите плз, в каком скрипте прописан вызов? СПС.
 
antregДата: Понедельник, 28.01.2013, 21:12 | Сообщение # 107
Генерал-майор
Группа: Администраторы
Сообщений: 416
Репутация: 124
Статус: Offline
ins33,
on_signal = mestod
Это не скриптовый вызов, а сигнал, записанный в определённой точке пути собаки.
Путь обычным способом прописан в аллспавне.
В секции пути собаки в определённом месте поставлен сигнал, который в логике является условием для перехода к некоемому действию.
Секция в аллспавне (не требующая начала новой игры) с этим сигналом выглядит очень просто:
Код
[dog_povodyr2_walk]
points = p0,p1,p2,p3,p4
p0:name = wp00
p0:position = 81.306999206543,2.71499991416931,47.4300003051758
p0:game_vertex_id = 3004
p0:level_vertex_id = 1323958
p0:links = p1(1)

p1:name = wp01
p1:position = -28.4349994659424,4.82299995422363,62.0069999694824
p1:game_vertex_id = 2999
p1:level_vertex_id = 1082096
p1:links = p2(1)

p2:name = wp02
p2:position = -83.9209976196289,4.52400016784668,43.5800018310547
p2:game_vertex_id = 2999
p2:level_vertex_id = 962213
p2:links = p3(1)

p3:name = wp03
p3:position = -110.407997131348,4.72300004959106,-41.5629997253418
p3:game_vertex_id = 2999
p3:level_vertex_id = 904974
p3:links = p4(1)

p4:name = wp04|sig=mestod
p4:flags = 0x1
p4:position = -34.6300010681152,2.18499994277954,-251.02799987793
p4:game_vertex_id = 3000
p4:level_vertex_id = 1069462

--Вот как раз в пятой (последней) точке пути кобеля (p4:name = wp04) и прописан сигнал, когда собачка в последнюю точку прибежала.
 
ins33Дата: Понедельник, 28.01.2013, 23:07 | Сообщение # 108
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 2
Статус: Offline
Это видел в ТТ2, и в форуме. Поводыря проследил, и по этому спросил! А с учётом, что mestod нашёл только у вас решил спросить. Может Вы сможете предположить, почему "это" не работает:
Код
[/code][smart_terrains]  
  none = true  

    
  [logic]active = mob_home@bloodsucker_albinoss  
  on_death = mob_death@bloodsucker_albinoss  
  on_hit = hit@bloodsucker_albinoss  

  [mob_home@bloodsucker_albinoss]  
  path_home = bloodsucker_popalsya  
  home_min_radius = 75  
  home_max_radius = 100  
  aggressive_home  
  state = vis  

  [mob_combat@bloodsucker_albinoss]  
  on_timer = 60000 | mob_home@bloodsucker_albinoss  

  [mob_death@bloodsucker_albinoss]  
  on_info = %+oxota_minus%  

  [hit@bloodsucker_albinoss]  
  on_info = {=hit_by_actor_mosin} mob_camp@bloodsucker_popalsya6 %+oxota_plus%  

  [mob_camp@bloodsucker_popalsya6]  
  path_home = bloodsucker_popalsya7  
  path_look = bloodsucker_popalsya6  
  friendly = true  
  on_timer = 1500 | mob_walker@bloodsucker_popalsya7  

  [mob_walker@bloodsucker_popalsya7]  
  path_walk = bloodsucker_popalsya7  
  path_look = bloodsucker_popalsya8  
  friendly = true  
  on_signal = mestod | mob_camp@bloodsucker_popalsya8

  [mob_camp@bloodsucker_popalsya8]  
  path_home = bloodsucker_popalsya7  
  path_look = bloodsucker_popalsya6  
  home_min_radius = 0  
  home_max_radius = 1  
  friendly = true  
  on_timer = 45000 | %+oxota_mesto%[code]
А это, работает на ура:
Код
[/code][smart_terrains]
none = true

[logic]active = mob_home@bloodsucker_albinoss  
on_death = mob_death@bloodsucker_albinoss  
on_hit = hit@bloodsucker_albinoss  

[mob_home@bloodsucker_albinoss]
path_home = bloodsucker_popalsya
home_min_radius = 75
home_max_radius = 100
aggressive_home
state = vis

[mob_combat@bloodsucker_albinoss]
on_timer = 60000 | mob_home@bloodsucker_albinoss

[mob_death@bloodsucker_albinoss]
on_info = %+oxota_minus%

[hit@bloodsucker_albinoss]
on_info = {=hit_by_actor_mosin} mob_camp@bloodsucker_popalsya6 %+oxota_plus%  

[mob_camp@bloodsucker_popalsya6]
path_home = bloodsucker_popalsya7  
path_look = bloodsucker_popalsya8
friendly = true  
on_timer = 1500 | mob_camp@bloodsucker_popalsya7

[mob_camp@bloodsucker_popalsya7]
path_home = bloodsucker_popalsya7
path_look = bloodsucker_popalsya6  
home_min_radius = 0
home_max_radius = 1
friendly = true
on_timer = 45000 | %+oxota_mesto%[code]
 
antregДата: Понедельник, 28.01.2013, 23:27 | Сообщение # 109
Генерал-майор
Группа: Администраторы
Сообщений: 416
Репутация: 124
Статус: Offline
ins33,
Не понятно, что именно не работает. Нужно излагать свои мысли яснее!
--Отвечу, на всякий случай:
1) Во-первых, mestod - это не какой-то алгоритм, а придуманное мною (от балды) название для сигнала.
Вместо этого можно прописать всё что угодно (латинскими буквами только), главное, чтобы не было повторов в аллспавне, в секциях путей.
2) У Вас в нерабочей схеме присутствует строка:
on_signal = mestod | mob_camp@bloodsucker_popalsya8
Сразу вопрос: sig = mestod - в аллспавне назначили кровососу своему? Привязали название сигнала к точке пути кровососа, в которую он прибегает?
3) Условие: on_info = {=hit_by_actor_mosin}
Чтобы это условие работало, в файле: xr_condition.script должна быть соответствующая функция создана, которая будет мониторить ситуацию, в которой актёр будет наносить хит монстру из определённого вида оружия (по примеру из ТТ2 - это винтовка: wpn_m1891_30_scope_ucen с патроном-маячком, устанавливающим метку на определённых монстров).
4) Чтобы дальше ответить на вопрос, нужно понять, что именно не работает и что и как должно было работать по вашей задумке и к какому результату всё в итоге должно было привести.
5) Когда делаете дружественным монстра, прописав ему:
actor_friendly = true
то оба значения радиусов его действия должны быть обнулены, иначе он рано или поздно даст сбой при приближении к нему ближе установленной дистанции как у вас = 1 м.
Должно быть вот так:
home_min_radius = 0
home_max_radius = 0
 
ins33Дата: Вторник, 29.01.2013, 00:03 | Сообщение # 110
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 2
Статус: Offline
antreg,
Правильно говорится, утро вечера мудреней!
p4:name = wp04|sig=mestod
Спасибо!


Сообщение отредактировал ins33 - Вторник, 29.01.2013, 09:48
 
МеркурийДата: Среда, 10.04.2013, 13:09 | Сообщение # 111
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
Привет!Помогите новичку пожалуйста.Как включить редкие тайники в опциях амк,если можна по подробнее,а то новичок в этом деле.
 
boryan67Дата: Среда, 10.04.2013, 14:40 | Сообщение # 112
Рядовой
Группа: Наши пользователи
Сообщений: 9
Репутация: 3
Статус: Offline
Меркурий, в главном меню есть пункт "АМК-опции". В нем и следует выбрать требуемый вариант генерации тайников.
 
МеркурийДата: Суббота, 20.04.2013, 22:49 | Сообщение # 113
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
Строго  у вас однако . Извеняйте что не так . Новичок я здесь , потому  и задал вопрос в этой теме , так как еще не разобрался что и как здесь .

Добавлено (20.04.2013, 22:49)
---------------------------------------------
Да и перенести свой пост я не знаю как , если можна то пусть из модеров его удалит . Еще раз приношу свои извинения .

Просто напиши свой пост в нужной теме. Наказывать за даблпостинг не будут.


Сообщение отредактировал _Val_ - Воскресенье, 21.04.2013, 20:51
 
СатурнДата: Суббота, 15.06.2013, 13:05 | Сообщение # 114
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Как отключить выбросы на ЧАЭС-1 и ЧАЭС-2? Я знаю, что вопросу over 9000 лет, но мне хотелось бы узнать как это сделано в вашем моде, уважаемый antreg
 
Zampolit_2007Дата: Воскресенье, 14.09.2014, 18:05 | Сообщение # 115
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Статус: Offline
Всем привет! Подскажите, как на виндовс 7 отключить раскачивание камеры? путь: C:\Documents and Settings\All Users\Документы\stalker-shoc я найти не могу - нету Documents and Settings. как быть?

Вопрос не в тему. В шапке темы по вылетам и багам расписаны пути где искать логи, сейвы и юзер-файл в разных системах.@Aleksandr44
 
asaadsfДата: Воскресенье, 19.07.2015, 20:18 | Сообщение # 116
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Добрый вечер. Можно перезалить ссылочку на уроки из шапки темы "Как всё это было сделано"?
 
mischuq33Дата: Воскресенье, 27.01.2019, 22:30 | Сообщение # 117
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
Когда продолжение Тайных Троп ?
 
ikukyujukДата: Вторник, 20.08.2019, 17:40 | Сообщение # 118
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Прикрепления: 9349195.jpg (142.7 Kb)
 
Форум » Школа моддинга » Вопрос-ответ » Приёмная вопросов ((задавайте Ваши вопросы))
  • Страница 5 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
Поиск:

Copyright MyCorp © 2024Создать бесплатный сайт с uCoz