S.н.а.й.п.е.р.
Я имел ввиду не это :)
К примеру есть НПС одиночка. После активации скриптовой функции в игре этот одиночка стал к примеру Долговцем. Это осуществимо?
"Нет Предназначения… Оно не существует. Единственное, что предназначено всем, - это смерть."
ДатчикХабара
Чтобы предмет нельзя было выкинуть из инвентаря попробуй сделать следующее.
Добавь в конфиг предмета строчку quest_item = true.
Если не сработает - поэкспериментируй с подстановкой предмету другого класса: class= D_SIMDET. И вставь конфиг своей вещи в файл quest_item.
S.н.а.й.п.е.р.
Ты никак не хочешь понять, что Отшель[НИК] хочет не тупо поменять группировку неписю в конфигах - это любой первоклассник умеет, а сделать это скриптовым путем,, чтобы группировка непися менялась прямо во время игры при выполнении определенного условия.
Отшель[НИК]
Это возможно. Только надо покопаться в файлах - того Симбиона например. Там же сделана возможность вступления в группировки (это же скрипт меняет коммьюнити ГГ, то ж самое можно и для любого непися сделать) - если найдешь функцию, которая за это отвечает - полдела сделано.
А вызов потом куда хочешь можно прописать, хоть на горячую клавишу.
отредактировал(а) erlik: 23-06-2009 17:42 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
как сюжет отключить???и как сделать чтоб когда я начал разговор с Сидоровичем он мне дал задание на убийство Волка и текст был (типа:убей Волка,он что-то против меня имеет и т.д)???где в ACDC найти координаты Волка???и как сделать чтоб у него в инвентаре была флешка с моим описанием???хочу свой модик сделать.
МОЧИ "ДОЛГ" БЕЗ ПОЩАДЫ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
мы должны освободить Зону от подобной мрази как "долг"
Чтобы использовать её для нпса, нужно оператор db.actor заменить на оператор нужного нпса.
Если функцию смены группировки запускать из логики непися или из диалога, то функция будет выглядеть так:
function name(actor, npc)
npc:set_character_community("имя группировки", 0, 0)
end
Если же из логики не канает, то придётся задать неписю id. И уже по id менять его группировку:
function name()
local npc = level_object_by_sid(айди)
npc:set_character_community("имя группировки", 0, 0)
end
Где айди -sid непися (номер).
Способ с id хорошь тем, что поменять ему группировку можно будет не зависимо от самого непися.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
cталкер "свободы"
Как сюжет отключить - никто тебе расписывать не будет. Тем более, что некоторые подсказки уже были даны на предыдущих страницах. Читай внимательнее. Весь сюжет отключается долгим и муторным путем вычищения файлов связанных с заданиями типа task и info_portions, info_xxx и т.д.
В инвентарь к волку флешку можно положить простым путем - находишь его профиль в файле character_desc_escape и в секции добавляешь ему имя твоей флешки. Вот я ему сигарету добавил.
device_torch \n
hand_radio \n
sigaret \n
Или через скрипт. Как - читай журнал Сингапура22.
А как квест на убийство волка сделать - есть статья на сталкерин.гейм.ру.
Как его сделать первым - разбирайся сам.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
cталкер "свободы"
Конечно. Она что из воздуха появится? Нужно конфиг ей написать на основе тех флешек, что уже есть. Дать ей свое имя, описание сделать. Визуал тот что есть в папке meshes приписать. Координаты иконки вписать в конфиг.
singapur22
Я тут сейчас подумал - я такой вариант отключения сюжета может сработать - если просто удалить из профилей квестовых персов ссылки на диалоги и задания? Ну и в логике поковыряться, инфопоршни убрать?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Хм. Это только одна малость, из того, что нужно для этого сделать. Фактически, почти вся логика связана с сюжетом. А значит менять нужно не только логику сюжетных персонажей, но и почти всех рестрикторов (их около 1000), смартов, ну и естественно схем диалогов.
Это очень нутороно, и обязательно, что нибудь упустишь. Моё мнение такое. Лучше вычестить все локи начисто, и строить сюжет с нуля, а не переделывать уже существующий.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
сталкер "свободы"
Зайди в файл quest_items. Найди там конфиг любой флешки. Например флешки стрелка.
[gunslinger_flash]
Скопируй его - поменяй имя в секции [gunslinger_flash]
Поменяй строку description = item_flash_gslinger_agro_desc
ТО есть впиши ссылку на твое описание из файла string_table_items
В этом файле смотришь как там сделано: Флеш-диск - удобное устройство для переноса информации.
меняешь в первой строке ссылку на описание (любое новое имя) твое описание.
Поменяй имена еще в этих строчках конфига:
inv_name = item_flash_gslinger_agro_name
inv_name_short = item_flash_gslinger_agro_name
Новое имя флешки впиши в тот же файл string_table_items
По образцу: Флешка Стрелка
Да еще поменяй имя флешки в этой строчке
$spawn = "devices\quest_items\gunslinger_flash"
И все.
singapur22
Абсолютно с тобой согласен, что это самый правильный путь. Вот только никто не рискует так сделать.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
Ну ты это ты. Как говорил один персонаж из фильма про турецко поданного Остапа Сулеймана Бендер бея: Голова!
А все прочие модмейкеры новый сюжет только лишь дописывают к старому. Так как писать все с нуля - это ж какие знания надо иметь.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Андрюха "Грозный"
Labus А скрипт для сна кто писать будет?Ты создал просто неюзабельный предмет.
Порылся вот в АМК:
--'*******************************************************************************
--' ** ** ** ** ** ** ** ** SLEEP_AMK ** ** ** ** ** ** ** ** **
--'*******************************************************************************
function reduce_need_sleep(time)
local tmp=amk.load_variable("gg_need_sleep",0)
tmp=tmp-time*120
if tmp<0 then tmp=0 end
amk.save_variable("gg_need_sleep_nrg",0)
amk.save_variable("block_sleep_menu",0)
amk.save_variable("gg_need_sleep",tmp)
test_sleep_pp()
end
function test_for_need_sleep()
if sleep_manager.is_sleep_active() == false then
amk.save_variable("gg_need_sleep",amk.load_variable("gg_need_sleep",0)+1)
test_sleep_pp()
end
amk.g_start_timer("gg_need_sleep",0,0,6)
end
function test_sleep_pp()
local tmp=amk.load_variable("gg_need_sleep",0)
if tmp>360 then
sleep_manager.main(5+amk.load_variable("gg_need_sleep_nrg",0))
end
if tmp>300 then
level.add_pp_effector("yantar_underground_psi.ppe", 999, true)
level.set_pp_effector_factor(999, 5.0)
end
if tmp<=300 then
level.remove_pp_effector(999)
end
end
function check_sleep_item(obj)
local section = obj:section()
local stype=nil
if section=="energy_drink" then
stype="nrg"
--'elseif (section=="medkit" or section=="medkit_army" or section=="medkit_scientic") then
--' stype="med"
elseif section=="matras" then
stype="matras"
elseif section=="repbox_s1" then
amk.start_timer("sleep_repbox",0.1,amk.pack_array_to_string( {obj:id(), obj:condition(), 1} ))
elseif section=="repbox_s2" then
amk.start_timer("sleep_repbox",0.1,amk.pack_array_to_string( {obj:id(), obj:condition(), 2} ))
elseif section=="treasure_item" then
stype="tr_item"
end
if stype~=nil then
amk.start_timer("sleep_"..stype,0.1,obj:id())
end
end
function test_for_need_sleep_nrg(oid)
if alife():object(oid)==nil then
local n=amk.load_variable("gg_need_sleep_nrg",0)
if n<3 then
amk.save_variable("gg_need_sleep_nrg",n+1)
amk.save_variable("gg_need_sleep",amk.load_variable("gg_need_sleep",0)-30+n*10)
test_sleep_pp()
end
amk.g_start_timer("block_sleep_menu",0,1,0)
amk.save_variable("block_sleep_menu",1)
end
end
--[[
function test_for_need_sleep_med(oid)
if alife():object(oid)==nil then
amk.save_variable("gg_need_sleep",amk.load_variable("gg_need_sleep",0)+5)
test_sleep_pp()
end
end
]]--
function test_for_need_sleep_matras(oid)
if alife():object(oid)==nil then
local enemy=false
for a=0,65534 do
local obj=level.object_by_id(a)
if obj then
if (( IsStalker(obj) and amk.get_npc_relation(obj,db.actor)=="enemy" ) or
IsMonster(obj)) and obj:position():distance_to(db.actor:position())<40
and obj:see(db.actor) then
enemy=true
break
end
end
end
if enemy==true then
amk.send_tip(game.translate_string("not_need_sleep_enemy"),nil,nil,5)
else
if amk.load_variable("blowout",-1)>-1 and amk.load_variable("blowout",-1)<5 then
amk.send_tip(game.translate_string("blowout_not_sleep"),nil,nil,5)
else
if amk.load_variable("block_sleep_menu",0)==0 then
if amk.load_variable("gg_need_sleep",0)>10 then
local spwn=ui_cheat.cheat(get_hud())
level.start_stop_menu(spwn,true)
else
amk.send_tip(game.translate_string("not_need_sleep"),nil,nil,5)
end
else
amk.send_tip(game.translate_string("not_need_sleep_nrg"),nil,nil,5)
end
end
end
amk.spawn_item_in_inv("matras")
end
end
function test_for_need_sleep_tr_item(oid)
if alife():object(oid)==nil then
if news_main then
news_main.create_treasurebox()
end
end
end
а еще там был скрипт с названием ar_sleep.script вот его содержимое:
-- Модуль сна $DreamMod
-- --------------------
class "ar_sleep" (cse_alife_creature_actor)
function ar_sleep:__init(actor, storage)
self.actor = actor
self.st = storage
end
function ar_sleep:reset_scheme()
local st = xr_logic.assign_storage_and_bind(actor, ini, scheme, section)
-- st.logic = xr_logic.cfg_get_switch_conditions(actor, section, npc)
end
function ar_sleep:update()
local ini = ini_file ("scripts\\actorsleep.ltx")
if db.storage[db.actor:id()].active_section ~= death then
_G[schemes["ar_sleep"]].set_scheme(self.actor, ini, "ar_sleep", death)
db.storage[db.actor:id()].active_section = death
db.storage[db.actor:id()].active_scheme = "ar_sleep"
end
local cond = xr_logic.cfg_get_condlist(ini, "death", "on_info", self.actor)
xr_logic.pick_section_from_condlist(self.actor, self.actor, cond.condlist)
end
function ar_sleep:death_callback(victim, who)
cse_alife_creature_actor.on_death(self, -1)
sleep_manager.stopper()
end
-------------------------------------------------------------------------------
function add_to_binder(actor, ini, scheme, section, storage)
local new_action = ar_sleep(actor, storage)
-- Регистрируем все actions, в которых будет вызван метод update()
xr_logic.subscribe_action_for_events(actor, storage, new_action)
end
function set_scheme(actor, ini, scheme, section)
local st = xr_logic.assign_storage_and_bind(actor, ini, scheme, section)
-- st.logic = xr_logic.cfg_get_switch_conditions(actor, section, npc)
db.storage[db.actor:id()].active_scheme = "ar_sleep"
-- xr_death.set_death(actor, ini, scheme, death)
end
function disable_scheme()
db.storage[db.actor:id()]["ar_sleep"] = nil
db.storage[db.actor:id()].active_scheme = nil
db.storage[db.actor:id()].active_section = nil
end
-------------------------------------------------------------------------------
Я в скриптах вообще не понимаю поэтому прошу помочь, что? куда? как? кидать.
Помоги плиз...
Под спойлером полное описание значенией погодных параметров и относящихся к ним конфигов от команды АМК.
Значение параметров погодных и относящихся к ним конфигов
o 1.1 Параметры погоды
o 1.2 Параметры бликов
o 1.3 Параметры фонарика
* 2 Авторы
Значение параметров погодных и относящихся к ним конфигов
Параметры погоды
[sect_default_weather]
01:00:00 = default_weather_01
02:00:00 = default_weather_02
... Здесь указывается время смены типов погоды, каждый тип включает в себя свой скайбокс и
индивидуальные параметры освещения, дождя, грозы, и звука окружения. Переход осуще-
ствляется не скачкообразно, а плавно, практически не заметно.
[default_weather_01] ; имя типа погоды, описание которого ведется в этом блоке.
flares = flares_gradient1 ; здесь указывается имя заготовки блика
от солнца (заготовки прописаны в файле flares.ltx).
sky_texture = skysky_14_cube ; это имя используемого скайбокса. cкайбокс - это куб,
окружающий всю локацию, на 6 граней которого натянуты 6 текстур из файла, указанного
в этой строке. нужно обратить внимание, что строка содержит еще и путь к файлу.
sky_rotation = 0 ; определяет положение (азимут) скайбокса на описываемый час.
sky_color = 1.0, 1.0, 1.0 ; это цвет неба, или, точнее, цвет рассеянного света,
формат из 3 цифр, как и в параметрах ниже, подразумевает цветовую модель RGB,
учитывая то, что здесь максимальная интенсивность цвета (255), здесь равна 1.0.
например, цвет неба, равный [1.0, 0.0, 0.0] - зальет окрестность ярко красным светом.
стоит учитывать, что здесь описывается не цвет, а свет, поэтому параметр,
например, [0,0,0] - даст не черный цвет, а отсутствие вообще какого либо света.
аналогично эффекту смешивания в фотошопе (screen).
clouds_texture = skysky_oblaka ; это - имя тектуры облаков. не путать со скайбоксом.
clouds_color = 0.333, 0.341, 0.431, 0.7, 1.7 ; это цвет облаков, первые 3 цифры -
это RGB (см.выше), четвертая - это видимость (непрозрачность) текстуры облаков,
т.е 0 - облаков не видно, а 1 - полная видимость. пятая цифра - скорость движения
облаков.
far_plane = 350 ; это, судя по всему, дальность видимости (расстояние, на котором
обрезается карта).
fog_distance = 350 ; в DX9 это расстояние, на котором туман фактически "прекращает"
действовать. непосредственно дымка, интенсивность которой задаётся fog_density,
висит в радиусе fog_distance. за пределами этого радиуса часть геометрии "съедается"
и вместо неё отображается небо (скайбокс). правильно подобранная текстура неба
имитирует вдали клубы тумана. а уже дальше снова проявляется геометрия уровня (холмы
и т.д.). в DX8-режиме туман рудиментарен и обсуждать его нет особого смысла.
fog_color = 0.043, 0.043, 0.055 ; непосредственно сам цвет тумана.
fog_density = 0.9 ; это плотность тумана, выставив значение в 0, можно увидеть
четкие края карты.
rain_density = 0.2 ; это плотность дождя, действует, видимо, как и туман.
rain_color = 0.21, 0.21, 0.27 ; цвет (непосредственно капель) падающего дождя.
thunderbolt = thunderbolt_collection_default ; это имя заготовки грозы, если грозы
не предусмотрено, значение можно оставить пустым.
bolt_period = 4.5f ; это время между вспышками молний. значение прописано не в
секундах. В принципе, эмпирически установлено, что в грозовую погоду желательно
ставить значения около 20f, в дождливую - в районе 50f.
bolt_duration = 0.35f ; это собственно продолжительность фазы вспышки молнии.
выставив высокое значение, можно вовсе получить не молнию, а некое плавно
нарастающее свечение.
wind_velocity = 0.0 ; сила ветра.
wind_direction = 0.0 ; направление ветра.
ambient = 0.0425, 0.045, 0.0475 ; общее освещение локации, те тона, в которые она
выставив значения в [0,0,0] - получим кромешную тьму в зданиях и под навесами.
работает только на R2.
lmap_color = 1.0, 1.0, 1.0 ; видимо, цвет лайтмапа.
hemi_color = 0.0425, 0.045, 0.0475, 0.1 ;по слухам, параметр, идентичный амбиенту,
только предназначенный для статичного освещения. насчет четвертой цифры - не в курсе.
sun_color = 0.0, 0.0, 0.0 ; свет солнца, его интенсивность также влияет на тени,
если солнце не светит, теней от него не будет.
sun_dir = -18.0, 291 ; положение солнца, первая цифра - это высота, знак минус означает,
что солнце выше горизонта. от горизонта до горизонта солнце описывает полукруг, значения
в игре соотносятся с градусами, то есть от -0 до -180, зенит -90, вторая цифра определяет
env_ambient = ambient_env_rain ; это набор звуков окружения.
Параметры бликов
[flares_sun_rise] ; название cекции, параметры которой описываются ниже
flare_opacity = 0.340, 0.260, 0.500, 0.420, 0.260, 0.260 ; непрозрачность
каждого отражения, в порядке от дальнего к ближнему.
flare_position = 1.300, 1.000, 0.500, -0.300, -0.600, -1.000 ; позиция каждого
отражения на оси, порядок соотв. верхнему.
flare_radius = 0.080, 0.120, 0.040, 0.080, 0.120, 0.300 ; радиус каждого
отражения, порядок соотв. верхнему.
flare_textures = fxfx_flare1.tga, fxfx_flare2.tga,
fxfx_flare2.tga, fxfx_flare2.tga, fxfx_flare3.tga,
fxfx_flare1.tga
; имена текстур, использованных на каждое отражение, порядок аналогичен.
можно заметить, что прописан формат *.tga, в действительности используются,
как и везде, текстуры *.dds, а вообще - поддержка формата *.tga под вопросом.
flare_shader = effectsflare ; шейдер.
flares = on ; параметр включает или выключает блики, например, для луны -
они не уместны.
gradient = on ; параметр, включающий/выключающий ореол вокруг светила,
дающий эффект ослепления.
gradient_opacity = 1.0 ; непрозрачность ореола.
будет окрашена (цвет и интенсивность света фонового освещения там, где не светит солнце
-
положение солнца относительно сторон горизонта, нулевое значение вроде соответствует
югу.
Находятся в файле flares.ltx.
Страница 45
gradient_radius = 0.7 ; радиус ореола.
gradient_texture = fxfx_gradient.tga ;имя текстуры ореола.
gradient_shader = effectsflare ; аналогично [flare_shader].
source = on ;параметр, включающий/выключающий отображение источника, то есть
самого солнца или луны.
source_radius = 0.03 ; радиус источника.
source_texture = fxfx_sun_rise.tga ;имя используемой для источника текстуры.
source_shader = effectssun ; аналогично [flare_shader].
source_ignore_color = false ; игнорирование цвета источника.
Переложил материал. Там накладка вышла из копирования из пдф.
PS: Все желающие создать на локациях телепорты и заспавнить машины, заглядываем в мой журнал.
отредактировал(а) erlik: 23-06-2009 18:40 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Спасибо всем кто ответил. Еще один вопрос. Как сделать то же самое (смену группировки) по прошествии какого-то времени? Желательно чтобы время исчислялось в секундах.
Естественно таймер нигде отображаться не должен.
"Нет Предназначения… Оно не существует. Единственное, что предназначено всем, - это смерть."
Пара Вопросов...Как сделать Постэффект на попадания в ГГ.
И как сделать чтобы Созданый мною мод можно было устанавливать!? Как полноценную игру???
Прога какая нужна?
Если да то дайте ссыль пожалуйста!
Заранее Спасибо!
Скажите плз кто нить, в каком файле написано, что кузнецов при проходе берёт 500 рэ? и ищё плз, как сделать чтобы волк ничего не давал в начале игры, в каком файле это лежит?
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.