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

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


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

Да. Прописать новую группировку, сделать её нужные отношения, и эту группировку приделать неписю.

Мой ник читается гузерус.
Ссылка на комментарий

Guzerus,

монстры группировок сталкеров не различают. Для них есть только сталкеры и актор.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Выходит, если поставить группировке monster отношение 1000 к группировке test (введённой нами), то всё равно ничего? Извиняюсь, не знал.

Мой ник читается гузерус.
Ссылка на комментарий

Guzerus,

нет такой группировки monster. Если заглянуть в файл game_relations.ltx, то увидим две таблицы: одна - только для отношений между группировками сталкеров. Монстров там нет. Другая - для отношений между монстрами. Кроме монстров там ещё есть actor и human. Т.е. актора можно подружить с монстрами, а других сталкеров - только всех сразу. Одного никак, разве что в логику исключения проставлять. Но это надо в скрипты лезть.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Помогите с модом швыряния предметами.Идем в

bind_stalker.script function actor_binder:on_item_drop (obj)

добавляем снизу

thrower.throw_object(self.object,obj).

 

Пишем функцию:

 

function throw_object(npc,obj)

printf("thrower 0")

if npc == nil

then

npc = db.actor

end

if obj == nil then return end

 

local dir = npc:direction()

local pos = obj:position()

dir:mul(1300)

pos:add(dir)

printf("thrower 1 %s %s vector %d %d %d",npc:section(),obj:section(),dir.x,dir.y,dir.z)

 

до сих пор все ОК: есть объект, есть вектор в направлении от неписи.Теперь,как его бросать?

local shell = obj:get_physics_shell()

получаем nil

obj.mass - тоже 0, из предмета не получается физической модели.

 

Пробую просто переместить его:

npc:mark_item_dropped(obj)

obj:set_desired_position(pos)

Все равно не выходит.

 

Прошел Солянку, иду в NLC

Ссылка на комментарий
\n не работает

Попробуй \\n, может получится

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий
malandrinus, Касательно отношений монстр-группировка,я знаю ,что репутация у монстров только нпс и актору меняется,а как в таком случае селана взаимная нейтральность монстров и "Монолита" ,а так же зомбированых или они то же монстрами считаются как Сидор
Ссылка на комментарий
malandrinus, Касательно отношений монстр-группировка,я знаю ,что репутация у монстров только нпс и актору меняется,а как в таком случае селана взаимная нейтральность монстров и "Монолита" ,а так же зомбированых или они то же монстрами считаются как Сидор

Это правильно заметил. Монстры разделены на виды, по ним и считаются отношения. У каждого монстра в конфиге есть параметр

 

species                = bloodsucker

у сталкеров

species                = human

 

SCRIPT,

тут все просто - делаешь новый вид, прописываешь его своему сталкеру, настраиваешь отношения.

Изменено пользователем Bak
Ссылка на комментарий

подскажите еще такой вопрос. Как сделать так что-бы после обыска трупа или тайника или вообще любой вещи актору давалась инфа типа <give_info>podguz_razvod_start</give_info>

Freedom

Ссылка на комментарий

Всем еще раз привет! кто мне может написать логику нпсу чтобы он спал и никогда вообще ни на что не реагировал? не просыпался, не разговаривал. вообще ничего. просто спал.

просто я сам не догоняю чуть

 

Добавлено через 99 мин.:

и еще, как заспавнить мертвого нпс через скрипт БЕЗ амк

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

Thank you for your honesty.

Now fuck off and die.

Ссылка на комментарий

SCRIPT, одна из разновидностей кампера слипер -прописываешь эту логику,а лучше работу в гулаге,нпс и добавляешь в секции логики

meet=no_meet

combat ignor=always

danger ignor=always

А мертвого без АМК через скрипт кажется нельзя,проще через алл спавн -хелч =0 поставить

[sleeper3@esc_lager]

path_main = sleep3

combat_ignore_cond = always

meet = meet@no_meet

пример работающей логики из лагеря новичков

Изменено пользователем gruber
Ссылка на комментарий

gruber, Разве?

А может лучше заспавнить обычного, а потом убить?

 

function deth_npc()
local sobj = alife():create("npc",vector():set(x,y,z),lv,gv)
sobj:on_death()
end

 

автор Garry_Galler

 

ЗЫ и писали этот вопрос 4 страницы назад.

Что-то кончается, что-то начинается...

Ссылка на комментарий

_Призрак_

сделать активацию чего угодно - хоть скрипта хоть выдачи поршня - при обыске трупа можно через коллбек на использование объекта.

в файле xr_motivator есть такая функция

function motivator_binder:use_callback(obj, who)

 

находишь там строчку self.treasure_processed = true - это в самом конце и после нее вписываешь что тебе надо.

можно например активацию функции

имя_файла.имя_функции()

или выдачу поршня

db.actor:give_info_portion("info")

 

сделать такой же коллбек на обыска игрового тайника тоже вроде можно, но придется делать проверку на сид тайника.

сиды тайников есть в файле game_story_ids - соответственно пишем функцию которая будет перебирать сиды всех тайников и сравнивать их с сидом объекта который юзается игроком при обыске.

Точно не уверен но вроде коллбек на юзание должен работать для тайников.

 

кстати вот так можно выдать Меченому сразу все тайники игры.

function name_secret()
local ini = ini_file("misc\\treasure_manager.ltx")
if ini:section_exist("list") then
    local n = ini:line_count("list")
local id, value = "",""
for i=0,n-1 do
result, id, value= ini:r_line("list",i,"","")
treasure_manager.get_treasure_manager():give_treasure(tostring(id))
end
end
end

 

Ссылка на комментарий

Ray, а ты напиши функцию,которая в зависимости от разрешения будет вставлять в строку \\n

Одна проблема - разрешение определить я не знаю как...

Изменено пользователем Monnoroch
Ссылка на комментарий

а это не подойдет

C++ class CServerList : CUIWindow {

CServerList ();

 

function SetPlayerName(string);

function GetFont();

function SetWindowName(string);

function Enable(boolean);

function SetHeight(number);

function SetFilters(SServerFilters&);

function RefreshList(boolean);

function SetSortFunc(string, boolean);

function SetAutoDelete(boolean);

function NetRadioChanged(boolean);

function ShowServerInfo();

function RefreshQuick();

function AttachChild(CUIWindow*);

function GetWidth() const;

function SetWndPos(number, number);

function Init(number, number, number, number);

function Init(Frect*);

function ConnectToSelected();

function DetachChild(CUIWindow*);

function SetPPMode();

function WindowName();

function IsShown();

function SetWndSize(number, number);

function SetWndRect(Frect);

function SetWndRect(number, number, number, number);

function GetHeight() const;

function SetWidth(number);

function Show(boolean);

function IsEnabled();

function ResetPPMode();

function SetFont(CGameFont*);

function IsAutoDelete();

};

 

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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