Jump to content

Recommended Posts

Artos    97

Callisto, ну если речь о защите от читеров, то не буду далее  расспрашивать иль распространяться предположениями. ;-)

Однако замечу, что штатными средствами игры твою защиту (даже ничего не зная о ней) реализовать по-сути невозможно. Реализация чита может быть очень маленькой и простенькой в использовании. А с учетом, что в наше время, при широких каналах, наличии торрентов и прочего, то даже перепакованный диск игры не помеха для читеров.

Т.о. а, стОит ли заморачиваться и тратить свое время на это? (вопрос риторический и не требует ответа) Скорее вопрос: "а захочется ли кому-то ломать?" - более актуален.  ;-)

Edited by Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Share this post


Link to post
Share on other sites
panzyuza    0

Есть ли какой нибудь код для более детального слежения за стеком движка или какие-нибудь функции, что бы контролировать наличие проблемных данных и следить за ними?

Share this post


Link to post
Share on other sites
АuReN    0

Пытаюсь определить id машины актёра

local oActorCar = db.actor:get_holder_class()
local oCarId = oActorCar:id() 

 

 

Происходит вылет:

FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description :
[error]Arguments : LUA error: ...e.r. Тени Чернобыля\gamedata\scripts\bind_car.script:29: attempt to index a nil value

stack trace:

 

Share this post


Link to post
Share on other sites
ColR_iT    162

АuReN, я кончено извиняюсь, но разве get_holder_class возвращает объект машины? Разве эта функция не возвращает объект родительского класса? Да и вообще, каким образом машина может принадлежать ГГ? Ты что, её в рюкзак засунул? :)

Share this post


Link to post
Share on other sites
АuReN    0

ColR_iT, Я пробовал применять две функции get_current_holder и get_holder_classобе как написано на Stalker Inside, возвращают машину или стационарное оружие связанное с ГГ. Попытка определить id с помощью каждой из них вызывает вылет. Пробовал сделать object():id() для этих функций, что так же вызывает вылет.

 

Может возвращает серверный объект?

ColR_IT

Edited by ColR_iT

Share this post


Link to post
Share on other sites
Malandrinus    596

АuReN,

 

Пытаюсь определить id машины актёра

local oActorCar = db.actor:get_holder_class()
local oCarId = oActorCar:id() 
Происходит вылет:

эта функция возвращает объект типа CHolderCustom, он же скриптовый класс holder (имя класса на самом деле не имеет значения, поскольку нигде явно не используется). Строго говоря, это клиентский класс, но не game_object, поэтому у него нет поля id.

Кроме того. как ты делаешь делать нельзя. Если актор не в машине или не за станковыйм пулемётом, то get_holder_class() вернёт nil и вылет будет на следующей строке, но уже по другой причине. Кстати, судя по логу именно это и происходит.

 

Что касается определения id машины, то без правок движка это делается достаточно хлопотно: надо перебирать машины и искать ту, в которой сидит актор, сравнением положения актора и машины. По крайней мере я других способов не знаю. С правками это можно сделать проще.

Edited by malandrinus

 

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

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

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

 

Share this post


Link to post
Share on other sites
АuReN    0

malandrinus, А что тогда с функцией get_current_holder? Работает ли она?

Edited by АuReN

Share this post


Link to post
Share on other sites
panzyuza    0

АuReN

Как вариант, можно весь автотранспорт биндить отдельно. И через биндер машин на апдейте отслеживать расстояние. Скажем, 1.5 . В случае совпадения дистанций занести ИД машины в хранилище автотранспорта или же ( не знаю точно, работает ли коллбек юзания на машинах) через коллбек.

malandrinus, А что тогда с функцией get_current_holder? Работает ли она?

 

Про правила цитирования забывать не нужно.

ColR_iT

Edited by ColR_iT

Share this post


Link to post
Share on other sites
АuReN    0

panzyuza, В данный момент я так и делаю. В биндере проверяю дистанцию и произвожу действие. Но например для БТР'а необходимо, в отличии от других машин, ставить дистанцию около 5 метров, т.к. позиция кабины далека от центра машины. А в этот радиус могут попасть и другие машины. Вот я и ищу лучшее решение этой задачи.

Share this post


Link to post
Share on other sites
panzyuza    0

panzyuza, В данный момент я так и делаю. В биндере проверяю дистанцию и произвожу действие. Но например для БТР'а необходимо, в отличии от других машин, ставить дистанцию около 5 метров, т.к. позиция кабины далека от центра машины. А в этот радиус могут попасть и другие машины. Вот я и ищу лучшее решение этой задачи.

Тогда коллбек юзания. Других вариантов нет.

 

Как хочешь...

ColR_iT

Edited by ColR_iT

Share this post


Link to post
Share on other sites
Malandrinus    596

АuReN,

что тогда с функцией get_current_holder? Работает ли она?

О, кстати я ошибся в предыдущем посте. Функция get_holder_class() возвращает этот же объект, но сконвертированный в тип holder.Т.е. её надо вызывать для машины, и она вернёт машину же, но в виде класса holder. А вот get_current_holder() как раз вызывается для актора и возвращает машину/пулемёт, в которой он сидит, или nil.

 

Вот жаль, что нельзя править посты. Как всё неудобно стало.

 

Кстати, в качестве идеи. Можно попробовать сравнить сами объекты холдеров, тот, что получен у актора и тот, который получен из машины. Я сейчас попробовать не могу, но есть некая вероятность, что это может сработать. Если сработает, то тогда всё равно надо перебирать машины, но не придётся мудрить с расстоянием до актора.


 

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

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

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

 

Share this post


Link to post
Share on other sites
Transcend    0

Ребят, за что отвечает вот этот код ?

local bufferedmessages={}


function mylog(msg)
end
function dbglog(fmt,...)
local msg = string.format(fmt, ...)
local msg_no_ws = string.gsub(msg, "%s", "_")
get_console():execute("dbg:" .. msg_no_ws)

end

 

Share this post


Link to post
Share on other sites
Transcend    0

Здравствуйте , "ковырял скрипты" наткнулся на такое :

-- Сохраняем данные об отключенном вводе
if self.st.disable_input_time == nil then
   packet:w_bool(false)
else
   packet:w_bool(true) ---- fixed by Kamikazze
   utils.w_CTime(packet, self.st.disable_input_time)
end
 -- Сохраняем данные об отключенном вводе
if self.st.disable_input_time == nil then
   packet:w_bool(false)
else
   packer:w_bool(true)
   utils.w_CTime(packet, self.st.disable_input_time)
end

Строчка кода packer:w_bool(true)  должна быть профиксена так packet:w_bool(true) ?? Я так понял это была синтаксическая ошибка кода, верно ? Если нет поправьте. 

 

Всё верно.

ColR_iT

Edited by ColR_iT

Share this post


Link to post
Share on other sites
VovanDolg    1

Это где ты такую ошибку нашел в оригинале или в моде каком, или сам делал и допустил?
А то мне может пригодится!

Поиск по слову "packer" в папке script выдаёт единственный результат.
Научись пользоваться поиском - очень полезная вещь, которая оградит тебя и нас от подобных вопросов.
ColR_iT

Edited by ColR_iT

Share this post


Link to post
Share on other sites
Extasy    0

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

пример, если у ГГ ранг 300, то срабатывает инфопоршень и появляется диалог, если нет, то условие зацикливается..

Могу предположить что, код будет вот такого вида, но честно сказать...не особо понимаю, тут приравнивание ранга идет, как я понял к неписю, а как по той же схеме сделать проверку на ранг ГГ?

rank = n_rank --nepis.character_rank ()
   if n_rank == nil then n_rank = math.random(1, 9)*100 end
   if n_rank <= 300 then
db.actor:give_info_portion("cit_fail_first_task1")
	elseif n_rank <=600 then
db.actor:give_info_portion("cit_fail_first_task2")
    elseif n_rank <= 900 then
db.actor:give_info_portion("cit_fail_first_task3")
end

 

И ещё непонятно выражение "nil" это что-то по поводу 0?...

Буду признателен если поможете:) Спасибо!

Share this post


Link to post
Share on other sites

Всем привет, я давно где то на форуме видел функцию спавна НПС где сразу прописывается логика.

Вот что то похожее на это:

function borland_spawn()
    local obj = alife():create("borland",vector():set(24.034,16.555,677.921),303261,208)
    cfg\\= ВОТ ЭТА ВОТ СТРОЧКА CFG Я НЕ ЗНАЮ КАК ПРАВИЛЬНО ПИШЕТСЯ
    local tbl = amk.read_stalker_params(obj)
    tbl.sid = 97125
    amk.write_stalker_params(tbl, obj)
end

 

Будьте добры, покажите пожалуйста мне эту функцию.


АМК..1.4.1..+..Народная..Солянка..от..19.04.10..дополнение..14.08.10..+..патч..3.09.10..+..DMX..1.3.5..+..ADDON..BY..SARUMAN

Share this post


Link to post
Share on other sites

@Снайпер56

 

function spawn_npc()
 local obj = alife():create("clear_sky_1",vector():set(-133.097,1.284,-277.065),79374,3377)
 local params = amk.read_stalker_params(obj)
 params.custom = "[logic]\ncfg = scripts\\new\\clear_sky_1.ltx" - путь к файлу логики НПС и имя самого файла.лтх
 amk.write_stalker_params(params,obj)
end

Share this post


Link to post
Share on other sites
Alex535    1

Вопрос такой. Хочу отыскать скрипт, в котором прописано действие на Актора пси-излучение при Контролёре. Хочу понять, какой тип хита используется, найти там используемые эффекты и анимации. Не подскажете, где это можно найти?

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

AMK-Team.ru

×
×
  • Create New...