Пользователей: 0
Гостей: 402
Всего: 402

» Подробно
Привет, гость!








Автор Сообщение
Sine
    
Посты: 960
Откуда: Краснодар
Возраст: 30
19-08-2010 09:48 GMT3 час. #1320916   
Максим Р. я сделал прописывание врага чере вей поинт. Результат - сделал имитацию заходов, вертолет шмаляет по гг с пулемета и с ракет, все выглядит вполне реалистично


Last Day Mod Team work |==>>>ПОСЛЕДНИЙ ДЕНЬ
Кто понял с первого раза,
Тот ловит музу,
Когда каждая фраза
Ломает все сразу.
SkyLoader
    
Посты: 755
Откуда: Москва
Возраст:
19-08-2010 09:51 GMT3 час. #1320921   
Значит sr_cutscene - это некие сценки пролета камеры, хорошо. А что тогда ph_camera означает? Только вид от первого лица? Там есть облеты и тд.


Хочешь работать нормально, работай один!
Soble
    
Посты: 80
Откуда: от верблюда
Возраст:
19-08-2010 09:53 GMT3 час. #1320925   
Stalk15 а в sound_theme.script прописал ?
guitar_1 = {min_snd = 7, max_snd = 10, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}}, ;-)


Смотри журнал
Черт бы побрал эту Зону, нигде от нее спасения нет. Куда ни
пойдешь, с кем ни заговоришь - Зона, Зона, Зона...
batment
    
Посты: 267
Откуда: Киев
Возраст: 30
19-08-2010 11:09 GMT3 час. #1321033   
у меня проблема , когда я спавнил НПС через скрипт на крыше дома то он появлялся не на крыше а под ней как ето исправить ?


-=NSM=-
Sine
    
Посты: 960
Откуда: Краснодар
Возраст: 30
19-08-2010 11:22 GMT3 час. #1321055   
batment добавить аи сетку на крышу дома.


Last Day Mod Team work |==>>>ПОСЛЕДНИЙ ДЕНЬ
Кто понял с первого раза,
Тот ловит музу,
Когда каждая фраза
Ломает все сразу.
batment
    
Посты: 267
Откуда: Киев
Возраст: 30
19-08-2010 11:28 GMT3 час. #1321060   
я новичок в етом деле , можно подробней?


-=NSM=-
Y_A_R_I_K
    
Посты: 93
Откуда: Одтуда
Возраст: 30
19-08-2010 12:05 GMT3 час. #1321095   
В каком файле надо вносить изменения чтобы увеличить количество слотов на поясе ГГ?

отредактировал(а) Y_A_R_I_K: 19-08-2010 12:21 GMT3 час.

"Остановка! Halt! Шлем велосипеда камеры танцует автомобильную республику компьютера козла тромбона сыра, параграф 79.12"
Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
19-08-2010 12:31 GMT3 час. #1321115   

# Stalk15 :
Тут давно показывали функцию установки стори_ида скриптом...


Изменения через нет-пакет вступают не мгновенно, тем более если объект в онлайне. Не пытайся сразу же поставить на этот пока несуществующий сид метку.


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
19-08-2010 13:30 GMT3 час. #1321147   
Darien Fx

Изменения через нет-пакет вступают не мгновенно, тем более если объект в онлайне.

Ага вот значит почему когда я ящикам параметр object_flags решил перезаписать с -65 по дефолту (и чего б это означало интересно?) на 0xffffff3f (в десятичном конечно виде) они у меня вообще перестали на карте появляться.
-------------------------------------------------------------------
ЗЫ:кстати насчет координат(к посту singapur'22). Если забыть указать оба вертекса при спавне объекта (у меня просто их значения по ошибке оказались nil ) - вылета не будет(как и спавна), однако апдейтовые функции данного скриптового файла перестают работать.
----------------------------------------------------------------------------------
singapur22
С привязкой боксов разрулилось что-нить?

отредактировал(а) erlik: 19-08-2010 14:58 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
19-08-2010 13:36 GMT3 час. #1321150   
Stalk15 Собсно тебе Darien Fx дело говорит. Но можно данный код расширить, до реальновыполняемого даже в онлайне. К данному коду нужно добавить последовательное выполнение перевода объекта (online/offline и offline/online) разделёные между собой двумя-тремя циклами апдейта. В данном случае мы принудительно будем перезагружать объект с уже новыми параметрами.
Правда есть один минус. Не все сталкеры принудительно поддаются переводу в offline и обратно. Тоесть, если в логике непися задан параметр (online = true/false), то принудительный перевод данного сталкера будет невозможен. Для того, чтобы обойти данную установку, нужно подправить пару функций:

se_stalker:can_switch_online ()

и

se_stalker:can_switch_offline ()

В файле se_stalker.script


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
СидырыЧЪ
    
Посты: 208
Откуда:
Возраст: 30
19-08-2010 13:58 GMT3 час. #1321167   
blackraven6
да я это все понял скрипты нормально работают я просто хочу привязать этот скрипт со спауном так: чтобы после первого разговора по этому диалогу он больше не появлялся . вот как это сделать чето не пойму. КОРОЧЕ ГОВОРЯ КАК СОЗДАТЬ ТАКОЙ ДИАЛОГ КОТОРЫЙ ИСЧЕЗ БЫ ПОСЛЕ ПЕРВОГО РАЗГОВОРА ПО НЕМУ:obstenu:&P&P


Horrible area mod Видео в журнале
--------------------------------------------------------------------
Важнейшая задача цивилизации - научить человека мыслить
Dietrich2009
    
Посты: 219
Откуда: Kiev
Возраст: 15
19-08-2010 14:19 GMT3 час. #1321188   
СидырыЧЪ Создаешь инфопоршень и в конце диалога его прописываешь
tvoi porshen
а в самом начале диалоге
tvoi porshen


MOD: The Story of a Stalker.
Подробнее в журнале
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
19-08-2010 15:26 GMT3 час. #1321236   
СидырыЧЪ
Вот например**50016ea8aab1bb10eeba** Тест3
выдача инфопоршня


[/code]

Инфопоршены создаются в info_name_level.

------------------------------------------------------------------------

Darien Fx
Хм, ладно.Сделал так же:
Вызывал так:
for_chek.spawn_test
esc_kggggygygygygy
--Это выдача квеста
В квесте написал, чтоб стрелка показывала на заспавненого НПС:
teeesst
и стори_ид прописал: 198 = "teeesst"

тооько сначала заспавнил НПС, сбегал в оффлайн, вернулся и выдал квест.Стрелка на этого НПС всеравно не показывает.
Это функция, если что:
[code]function spawn_test()
local npc = alife():create("esc_kvest_killer_tehnic", vector():set(-232.700,-19.678,-115.688),22645,9)
local tT = amk.read_stalker_params(npc)
tT.custom = "[logic]\ncfg = scripts\\merc_logic_poslannick.ltx"
tT.story_id = 198
amk.write_stalker_params(tT, npc)
end[/code]

singapur22
Попробую ...

отредактировал(а) Stalk15: 19-08-2010 15:38 GMT3 час.

Новые фишки для сталкера(см. журнал)
СидырыЧЪ
    
Посты: 208
Откуда:
Возраст: 30
19-08-2010 15:32 GMT3 час. #1321242   
спасибо
а в какие файлы записать то

добавлено спустя 7 минут

Stalk15
ой я не то спросил а любое имя инфопоршня можно вписывать

отредактировал(а) СидырыЧЪ: 19-08-2010 15:39 GMT3 час.

Horrible area mod Видео в журнале
--------------------------------------------------------------------
Важнейшая задача цивилизации - научить человека мыслить
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
19-08-2010 16:08 GMT3 час. #1321286   
erlik

С привязкой боксов разрулилось что-нить?
Неее. Я както этим не занимался. Детектор артов доделываю. Всётаки люди ждут.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
19-08-2010 17:25 GMT3 час. #1321362   
singapur22
Пoнятно :-) Тоже нужное дело.
Кстати тебя все еще интересует способ проверки нахождения предмета на поясе? Или ты уже нашел его? Просто пока тебя не было на форуме, где то пару месяцев назад эта тема вновь поднималась и скрипт этот (в одном моде) мы все таки нашли.
------------------------------------------------------------------
это весь файл inventory.script из мода биорадар


belt = {}
belt_status = false

local need_update = true
local inventory_open = false
local separator_spawned = false
local separator = "separator"

local debug = false
local flag

function update()

if (need_update == false) then return end

if debug == true and belt_status == true then get_console():execute("belt_status=false") end
belt_status = false

-- Спавним разделяющий елемент
if (separator_spawned == false) then
alife():create(separator,
db.actor:position(),
db.actor:level_vertex_id(),
db.actor:game_vertex_id(),
db.actor:id())
separator_spawned = true
if debug == true then get_console():execute("separator_spawned") end
return
end

belt = {}
flag = 0

-- Сканируем инвентарь
db.actor:inventory_for_each(scan_inv)
need_update = false

-- Удаляем разделяющий елемент
db.actor:inventory_for_each(del_separator)
separator_spawned = false

if debug == true and belt_status == false then get_console():execute("belt_status=true") end
belt_status = true

if debug == true then
for i,k in pairs(belt) do
get_console():execute(i.."="..k)
end
end
end

-- Перебор предметов инвентаря
function scan_inv(item)
local section = item:section()

if section == separator then
flag = 1
return
end

if flag == 1 then
if slot_item(item) ~= nil then
flag = 2
else
insert_to_table(belt, section)
end
end
end

-- Добавление в таблицу
function insert_to_table(tbl, section)
if tbl[section] == nil then
tbl[section] = 1
else
tbl[section] = tbl[section] + 1
end
end

-- Удаление разделяющего предмета
function del_separator(item)
if item:section() == separator then
alife():release(alife():object(item:id()), true)
if debug == true then get_console():execute("separator_removed") end
end
end

-- Определение налечия предмета в одном из слотов
function slot_item(item)
for i=0,12 do
local obj = db.actor:item_in_slot(i)
if obj and item:id() == obj:id() then
return i
end
end

return nil
end

-- Поднятие предмета
function on_item_take(item)
if item:section() == separator then return end

if (inventory_open == false) then
if (separator_spawned == true) then
db.actor:inventory_for_each(del_separator)
separator_spawned = false
end

need_update = true
if debug == true then get_console():execute("item_take") end
end
end

-- Выброс предмета
function on_item_drop(item)
if item:section() == separator then return end

if (inventory_open == false) then
if (separator_spawned == true) then
db.actor:inventory_for_each(del_separator)
separator_spawned = false
end

need_update = true
if debug == true then get_console():execute("item_drop") end
end
end

-- Открытие/закрытие инвентаря
function on_inventory_info(info_id)
if info_id == "ui_inventory" then
inventory_open = true
if debug == true then get_console():execute("inventory_open") end

elseif info_id == "ui_inventory_hide" then
inventory_open = false
need_update = true
if debug == true then get_console():execute("inventory_close") end
end
end

function check_blood()
-- if belt_status == true then
if belt["af_blood"]~=nil and belt["af_blood"]>0 then -- то есть когда параметр пояса[af_blood] равен 1, 2, 3.. Сколько навесишь Камней.
-- amk.send_tip("Кровь Камня на поясе")
end
-- end
end

Собственно автор скрипта не Руся , а какой то чел с сайта ПЫС - где я и нашел упоминание про этот способ.

Принцип работы скрипта думаю будет тебе понятен.

отредактировал(а) erlik: 19-08-2010 19:11 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
19-08-2010 18:12 GMT3 час. #1321410   
erlik Естественно интересует. Кидай.

Хм. Интересно. Займёмся изучением принципа работы. :-)

добавлено спустя 9 минут

Хм. Это получается, что предметы находящиеся в слоте belt просто-напросто всегда находятся в конце списка инвентаря? Я так понял?

отредактировал(а) singapur22: 19-08-2010 19:56 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
19-08-2010 20:06 GMT3 час. #1321536   
Вот есть логика одного Наемника из мода "Восстан


Новые фишки для сталкера(см. журнал)
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
19-08-2010 20:16 GMT3 час. #1321549   
singapur22
Все дело в самой функции итераторе void inventory_for_each(function *iterator)

Перебираются не все предметы. Для актора пропускаются предметы в невидимых слотах: нож, бинокль, болт, фонарик и ПДА. Кроме того, для актора определён порядок перебора предметов: сначала перебираются предметы в рюкзаке, потом на поясе, потом в слотах (только те, что видны). На этом основан алгоритм определения предметов на поясе


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
СидырыЧЪ
    
Посты: 208
Откуда:
Возраст: 30
19-08-2010 20:49 GMT3 час. #1321589   
Stalk15
а как понять Инфопоршены создаются в info_name_level.


Horrible area mod Видео в журнале
--------------------------------------------------------------------
Важнейшая задача цивилизации - научить человека мыслить
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
19-08-2010 20:58 GMT3 час. #1321597   
erlik Ну я это и имел ввиду. Если с предметами находящимися в слотах проблем нет (отсекаем через проверку на нахождение в каком либо слоте), то с остальными, belt получается в конце списка. Выявляется ещё одна особенность. Предметы спавнятся в конец списка рюкзака, перед поясом со слотами.
Фактически, всё понятно, вплоть до мелочей. Только способ этот не ахти какой. Скрипт чересчур тяжёлый. Мало того, что каждый цикл апдейта, производится итерация всего инвентаря, (а список предметов в инвентаре у актора может быть невероятно большим), так ещё и к нему добавляется спавн/удаление, которые так же не хило снижают производительность. Не мешало бы поразмыслить на данный счёт.
Кстати, а есть ли возможность производить итерацию инвентаря не с начала списка, а с его конца? Тоесть, в обратном направлении. (извиняй за глупый наверно вопрос. Но я многое уже не помню.)


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
СидырыЧЪ
    
Посты: 208
Откуда:
Возраст: 30
19-08-2010 21:01 GMT3 час. #1321602   
Stalk15
а какая именно строка нужна чтобы диалог исчез после первого разговора


Horrible area mod Видео в журнале
--------------------------------------------------------------------
Важнейшая задача цивилизации - научить человека мыслить
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
19-08-2010 21:30 GMT3 час. #1321625   
singapur22

есть ли возможность производить итерацию инвентаря не с начала списка, а с его конца?

Ну я такой точно не знаю. Если в данном методе предопределен порядок итерации инвентарных массивов, то как его изменить то...
Метод db.actor:object(порядковый номер) возвращает предметы инвентаря в порядке их спавна в инвентарь

local actor = db.actor
local cnt = actor:object_count()
for i=0,cnt-1 do
local item = actor:object(i)

но это тебе тоже ничего не даст.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
19-08-2010 21:42 GMT3 час. #1321638   
Stalk15
combat_ignore_cond = {+agr_cit_doctor_meet_start =cit_combat_ignore(cit_hunt_killer_kill_actor)}


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
19-08-2010 22:22 GMT3 час. #1321696   

# singapur22 :Кстати, а есть ли возможность производить итерацию инве**50146ea8aab1bb10eeba**code]t = {1,2,3,4,5}
for i=#t,1,-1 do
print(t)
end[/code]
АнархОПанк
Ключевое слово, - "имею свой мод"
А точнее - переведи показания Arguments :
Тут и нужно копать

отредактировал(а) Gun12: 19-08-2010 22:48 GMT3 час.

Не стань номинантом премии Дарвина.
АнархОПанк
    
Посты: 998
Откуда:
Возраст:
19-08-2010 22:24 GMT3 час. #1321697   
Кто нибудь может объяснить что за фигня творится?! (Я даже переустановил игру вылетает все равно!)

Имеем SHOC 1.0004, имею свой мод. Вдруг не с того не с сего у меня стала игра вылетать на синхронизации с подобными вылетами:

Expression : fatal error
Function : weapon_hud_value::load
File : E:\stalker\patch_1_0004\xr_3da\xrGame\WeaponHUD.cpp
Line : 34
Description :
Arguments : There is no 'wpn_knife_0' bone for weapon 'wpn_knife_hud'.


(До этого у меня стоял реаниматион прожект)

И что я только не делал. Удалил OGF модели - вылет. Удалил конфиг - вылет. Удалил и то и другое - вылет. И так любой вариант! :obstenu:
Может кто знает где таится неизведанный мне худ?!?!? То есть ОТКУДА ЖЕ СЧИТЫВАЕТСЯ ЭТОТ ДОЛБАННЫЙ ХУД ДАЖЕ КОГДА НЕТ КОНФИГОВ И ОГФ МОДЕЛЕЙ!?


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
19-08-2010 22:48 GMT3 час. #1321742   
Gun12
Тут ведь дело не в pairs, а в том что функция итератор inventory_for_each() производя свою работу (и отнюдь ведь не через pairs - а через то, что есть в С++) начинает обход массивов в заданном ей порядке. И порядок этот задан принудительно. Если первым на очереди стоит массив\субмассив "рюкзак", то туда она сначала и заглядывает. А уж как организованы эти массивы - как очередь, список или хэш-массив - только разрабы и знают :-)


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
19-08-2010 22:55 GMT3 час. #1321748   
erlik
если это сделано в С, то и копать нужно в С (Кто-то будет это делать?)
А если в Lua - то по барабану, назови это хоть "рюкзак," хоть ещё как-нибудь, но если это не массив, то функцию PAIRS не обманешь. А другого способа доступа к ХЭШ пока не придумали.
По крайней мере других, соответствующих идее обратного обхода, методов в lua_help я не знаю.
Знатоки С++, ковырните, please, движок.

отредактировал(а) Gun12: 19-08-2010 23:04 GMT3 час.

Не стань номинантом премии Дарвина.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
19-08-2010 23:23 GMT3 час. #1321777   
Gun12
Весь инвентарь пишется в движковые массивы(а типов их - не счесть, могу штук 20 названий накидать :-) )

Кстати в lua все таблицы реализуют интерфейс ассоциативного массива (при том с динамически изменяемым размером) - то есть являются по сути хэш-массивами(или некими их вариациями). Так как понятие индексный массив - не совпадает с просто нумерацией ключей в математическом порядке. Типы данных в таком массиве должны быть обязательно однотипными(чего не требуется для луашных таблиц).
То есть таблица lua где ключи - это целые числа расположенные в математическом порядке это тоже хэш. А искусственное разделение таблиц lua на эти два типа которое есть во многих мануалах - ошибочно.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
19-08-2010 23:30 GMT3 час. #1321784   
erlik
Gun12

Кстати. А как работает итератор:

iterate_inventory(function, object)

?

Попробывал его исполь


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.


Форумы Архив » Свалка Вопросы и ответы (ТЧ по 11.09.10)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»