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

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


Halford

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

Всем привет. Есть такой скрипт, снимает координаты актёра -

Скрытый текст

---------------------------------------------------
-- script for posExtracter ver.1.2. Final
--by SmanxX1
--------------------------------------------------
class "pe" (CUIScriptWnd)

function pe:__init(owner,objid) super()
    self.owner = owner
    self:InitControls()
    self:InitCallBacks()
end

function pe:__finalize() end

function pe:InitControls()
    self:Init(300,200,550,450)
    local xml = CScriptXmlInit()
    xml:ParseFile("ui_pe.xml")
    xml:InitStatic("background", self)
    self:Register(xml:Init3tButton("caption", self),"caption")
    self:Register(xml:Init3tButton("caption2", self),"caption2")
    self:Register(xml:Init3tButton("btn_1", self),"btn_1")
    self:Register(xml:Init3tButton("btn_quit", self),"btn_quit")
    self:Register(xml:InitEditBox("edit_box",     self), "edit_box")
end

function pe:InitCallBacks()
    self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.pe1, self)
    self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self)
end

function pe:OnKeyboard(dik, keyboard_action)
    CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
    if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
        if dik == DIK_keys.DIK_ESCAPE then
            self:on_quit()
        end
        if dik == DIK_keys.DIK_RETURN then
            self:pe1()
        end
    end
    return true
end

function pe:pe1()
    local edit_box=self:GetEditBox("edit_box")
    local str=edit_box:GetText()
    local qt=true
    if self:check_game() then
        if ((string.len(str)>30) or (string.len(str)==0)) then
            edit_box:SetText("Ошибка!!! Незадано назваеие либо символов больше 30!!!")
            qt=false
        else
            str=string.gsub(str, "%s", "_")
            str=string.gsub(str, "|", "/")
            local pos=db.actor:position()
            get_console():execute("pe_log>>"..str.."|"..level.name().."|_X="..pos.x.."_Y="..pos.y.."_Z="..pos.z.."_gvid="..db.actor:game_vertex_id().."_lvid="..db.actor:level_vertex_id())
            qt=true
        end
    else
        edit_box:SetText("Ошибка!!! Игра не загружена!")
        qt=false
    end
    if qt then self:on_quit() end
end

function pe:on_quit()
    local console = get_console()
    self:GetHolder():start_stop_menu (self.owner, true)
    self:GetHolder():start_stop_menu (self,true)
    self.owner:Show    (true)
    if self:check_game() then
        console:execute("main_menu off")
    end
end

function pe:check_game()
    if level.present() and (db.actor ~= nil) and db.actor:alive() then
        return true
    else
        return false
    end
end

 

 

Мне нужно ещё и direction, направление взгляда. Как сделать?

Поделиться этим сообщением


Ссылка на сообщение

Любителям ковырять алл.спаун - мой батник на запаковку.

echo off
cls

set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=_%

rename all.spawn %_my_datetime%.spawn

acdc_soc.pl -c all.ltx -o ./all.spawn
pause

3 часа назад, Colder сказал:

Всем привет. Хочу убрать выдачу тайников с трупов. В каких файлах нужно ковырять? Или может у кого есть уже готовый пример?

treasure_manager.ltx

Имхо, всё, что ниже


ros_secret_0023
ros_secret_0024
ros_secret_0025

 

удалить.

Проверить не могу, локи ещё чистые. Трупов нет.

Поделиться этим сообщением


Ссылка на сообщение

Всем привет. Проблемка возникла - перестала ездить Нива. В машину сажусь, завожу, фары включаются, руль крутится, но не едет... Суть проблемы в том, что я Нивой долго не пользовался, всё вертолёт делал, на нём и летал. И что именно где поправил, что Нива встала, теперь не вспомнить. Может, подскажете, где примерно можно искать причину?

  • Не нравится 1

Поделиться этим сообщением


Ссылка на сообщение

Неделю ломаю голову над таким скриптом -

 

if ля-ля-ля == true then
        ля-ля-ля = false
        hud:RemoveCustomStatic("ля-ля-ля", true)
      alife():release("weapon2", true)
    else
        ля-ля-ля = true
        hud:AddCustomStatic("ля-ля-ля", true)
    db.actor:drop_item(weapon)
    alife():create("weapon2",
                    db.actor:position(),
                    db.actor:level_vertex_id(),
                    db.actor:game_vertex_id(),
                    db.actor:id())
    db.actor:transfer_item(weapon,db.actor)
    end   

weapon выкидывается, weapon2 берётся в слот, weapon подбирается. При следующем вызове weapon2 не удаляется, и на этом всё, дальше скрипт не работает. Если закомментировать alife():release("weapon2", true), всё работает, кроме, естественно, удаления weapon2.

Как сделать удалялку?

Тень Чернобыля, если что (-:

Поделиться этим сообщением


Ссылка на сообщение

function release(alife_simulator*, cse_abstract*, boolean) Что тут за cse_abstract?

С function release(alife_simulator*, cse_abstract*, boolean) разобрался.

Но weapon2 всё-равно не удаляется.

Поделиться этим сообщением


Ссылка на сообщение
30 минут назад, dsh сказал:

После create выведи name() того, что ты создал.

Исчерпывающий ответ. create, name() ?

Или create_name() ?

Или после последнего end вставить name() ?

Такие гуру очень помогают: "Ты чё, братан, это же элементарно!" Если б это так было, спрашивал бы я тут?

В конструкции

alife():create("item",
                    db.actor:position(),
                    db.actor:level_vertex_id(),
                    db.actor:game_vertex_id(),
                    db.actor:id()) никогда не встречал name()

Неужели трудно написать пример?

  • Не нравится 1

Поделиться этим сообщением


Ссылка на сообщение

Спасибо, парни. Тут вот ещё басня есть: Читать

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

По соседней теме - прям на первой странице нашёл. Строчку из lua_help.script Я её и раньше находил, без всяких форумов. Прям в папке gamedata. По теме дошёл до 16-ой страницы, больше release не попадается. Ищу дальше.

На 23-ей странице что-то похожее, но там сначала спавним через all.spawn, удаляем, затем снова спавним.... И снова удаляем.

27 страниц. Не так уж и сложно.@Zander_driver, дружище, про мартышку-то тебе надо читать, ибо ты и сам ту тему не смотрел. Можно сказать, что там нет ничего по моему вопросу. Два упоминания, ко мне не относящихся.

Вообще, я дал кусок скрипта, ТОТ, кто знает, КАК сделать, прям в этот кусок впишите, что надо. А все остальные не отвечайте. От вас только гуглю реклама.

А по этому вопросу я уже понял. Сам правил - сам ищи. Ибо никто не знает, в каком файле прописано движение нивы вперёд, назад.

Всё, разобрался. Без всякого наме()

Вместо alife():release("weapon2", true) написал alife():release(alife():object("weapon2":id()), true)

Спасибо за подсказки.

Вот что значит выкопал картошку. Есть время подумать о главном (-:

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

@Houdini_one, про деньги - копипаст из escape_dialog.script


function has_soldiers_bribe(actor, npc)
    return actor:money() >= 500
end

Предмет - копипаст Отсюда

function Название функции()
    if db.actor:object("название предмета") then
        return true
    end
    return false
end

Поделиться этим сообщением


Ссылка на сообщение

@Houdini_one, совмести в одну:

function has_item()
    if db.actor:object("wpn_pm") and db.actor:money()>=5000 then
    return true
    end
    return false
end

"wpn_pm" и 5000, сам понимаешь, меняй, как надо.

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Наткнулся ща:

Цитата

1) Создадим файл dialogs_zver_kopdon.txt далее его с помощью тотал командера( или чем вы пользуетесь) меняем окончание
.txt на .xml и получаем готовый файл. dialogs_zver_kopdon.xml

Странно всё было в 2014 году. Я делаю проще - ПКМ в нужной папке, в меню "Создать >> Текстовый документ", переименовываю, как мне угодно. Самое сложное - согласиться на замену расширения.

 

А, не, ошибся. Это, вроде, 2009-ый год.

Изменено пользователем Опричник

Поделиться этим сообщением


Ссылка на сообщение

@Norman Eisenherz, я не про то. Лишние клики мышкой, клавой... Кстати, сегодня хотел файлик в шестнадцатеричном виде открыть - еле нашёл, где у меня ТС. Он, оказывается, нифига не в Program Files'ах.

 

 

 

И вопрос у меня - как определить, лежит ли артефакт в слоте? Он же не в слоте? На ремне? Как это отследить?

 

З.Ы. Просьба - отвечает только тот, кто знает, а не тот, кто предполагает, что где-то в какой-то соседней теме есть ответ. Или где-то в гугле. Про Гугл не знаю, а Яндекс не нашёл.

Кстати, по поиску на форуме - так и не понял, что он ищет... На любой запрос куча ссылок, из которых большинство ни о чём.

 

 

 

оО Или так - какой файл( файл ли?) отслеживает, в рюкзаке артефакт, или на поясе?

Я про чистый ТЧ.

Поделиться этим сообщением


Ссылка на сообщение
45 минут назад, mole venomous сказал:
  Любой артефакт (Скрыть)

   local item = db.actor:item_on_belt(i)

 

Если вместо "i" ставлю 1 - вылет. А is_on_belt у меня, по-ходу, нет.

49 минут назад, mole venomous сказал:
  Любой артефакт (Скрыть)

   local item = db.actor:item_on_belt(i)

 

Если вместо "i" ставлю 1 - вылет. А is_on_belt у меня, по-ходу, нет.

 

Да и item_on_belt - это уже не чистый ТЧ.

@mole venomous, с твоей подсказкой буду позже разбираться, (-: А свой вопрос решу другим способом. Через получение артефакта и его отсутствие в рюкзаке. Следовательно, он на поясе. А то время уже 1:15, спать хочется.

Поделиться этим сообщением


Ссылка на сообщение

Позорище.

И да, я вижу, что не он автор. Но у меня .script Syntax Checker отказался проверять (-: Там и так видно. Надо думать, что выкладываешь. И таких примеров по всему интернету океан. И на AMK, как ни странно...

 

@Houdini_one , Я пытался хуманов с птицами поссорить, не получилось. Что-то не так с этим файлом. Или мы не до конца всё знаем.

Хотя кабаны кидаются на собак, а те на кабанов и плотей... Это у меня работает.

Поделиться этим сообщением


Ссылка на сообщение

@gam, bird в game_relations.ltx - птицы. Снегирей, правда, нет, одни вороны. У меня ещё летучие птицы.

Т.е., Мыши (-:

Кстати, иногда наблюдал картину, как неписи поднимают стволы в небо, как хели_хунтер. М.б., просто птицы высоко летают?

Поделиться этим сообщением


Ссылка на сообщение

@Houdini_one, так такой группировки и нет, есть species = human, species = bird и т.д.

не знаю, бредовая идея, проверять некогда:

В файл m_dog.ltx в конце добавь
[dog_arena]:dog_strong
species    = arena_monstr

 

М.б., проканает (-:

Ща чекнул - у кровососа так и сделано (-:

И ещё вспомнил прикол - как-то раздался голос с вертолёта, типа, прикрой, атакую, и я видел, как вертушка по кому-то шмальнула вдалеке. Heli_hunter у меня не стоит, так что, по вертолёту шмальнуть никто не мог. Выходит, какой-то дальнозоркий непись всё-таки хотел сбить ворону, но попал по вертолёту. За что и поплатился (-: Я для такого варианта и ссорил хуманов с птицами, но увидеть в действии не удалось.

Но выглядело прикольно, словно вертолёт за кем-то охотился.

И про вертолёт от Kirag - community прописана армия, но если солдат попал по вертолёту - трындец солдату. А если ракетой - то и не одному ему.

Поделиться этим сообщением


Ссылка на сообщение

@Houdini_one, как делал я -

при создании нового ЛЧ я в позицию(куда_смотреть_ГГ) копирировал значения с существующих. Т.е., надо смотреть на север - брал с ЛЧ, где смотрит на север и т.д. Получалось норм. Точно не помню - на север с кордона на свалку, на юг - наоборот. На запад - свалка-агропром, на восток - наоборот. Как то так...

Поделиться этим сообщением


Ссылка на сообщение

@Houdini_one, нашёл на компе такое:

function marsh_teleport_1 ( actor, npc)
    level.add_pp_effector("peace_fade.ppe", 160608)
    db.actor:set_actor_position(patrol("marsh_walk_1"):point(0))
    local dir = patrol("marsh_walk_1"):point(0):sub(patrol("marsh_walk_1"):point(0))
    db.actor:set_actor_direction(-dir:getH())
end

Не помню, откуда это.

P.S.

Из StalkerMapPack, скорее всего.

Если надо, посмотрю конкретнее.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   1 пользователь

AMK-Team.ru

×
×
  • Создать...