Замена значений в L2.ini

BadStealth

Величайший
Местный
Победитель в номинации 2023
Победитель в номинации 2022
Победитель в номинации 2021
Победитель в номинации 2020
Просветитель
Клиент разработчик
Старожил I степени
Преподаватель
За веру и верность форуму
Победитель в номинации 2019
Сообщения
309
Розыгрыши
0
Репутация
429
Реакции
593
Баллы
1 573
Всех приветствую.
Суть проблемы:
Мне нужно поменять значение в файле L2.ini, но т.к. он кодированный то в нем значение не заменяется поэтому стандартные методы не помогают. А если его не кодировать то клиент ругается.
Можно ли как-то из L2.ini перенести определенную секцию в другой ini файл и заставить клиент читать эти значения с него. Для точности.
INI:
[Engine.Engine]
RenderDevice=D3DDrv.D3DRenderDevice
;RenderDevice=Engine.NullRenderDevice
;RenderDevice=OpenGLDrv.OpenGLRenderDevice
AudioDevice=ALAudio.ALAudioSubsystem
;AudioDevice=XboxAudio.XboxAudioSubsystem
NetworkDevice=IpDrv.TcpNetDriver
DemoRecordingDevice=Engine.DemoRecDriver
Console=Engine.Console
DefaultPlayerMenu=UDebugMenu.UDebugRootWindow
Language=int
GameEngine=Engine.GameEngine
EditorEngine=Editor.EditorEngine
GUIController=Engine.BaseGUIController
;DefaultGame=WarfareGame.WarfareTeamGame
;DefaultServerGame=WarfareGame.WarfareTeamGame
DefaultGame=Engine.GameInfo
DefaultServerGame=Engine.GameInfo
ViewportManager=WinDrv.WindowsClient
;ViewportManager=XboxDrv.XboxClient
;ViewportManager=SDLDrv.SDLClient
Render=Render.Render
Input=Engine.Input
Canvas=Engine.Canvas
DefaultPlayerController=Engine.LineagePlayerController
L2NetHandler=Engine.NetHandler
L2Console=NWindow.ConsoleWnd
L2Font=NWindow.L2Font


[WinDrv.WindowsClient]
WindowedViewportX=1024
WindowedViewportY=768
FullscreenViewportX=1024
FullscreenViewportY=768
MenuViewportX=640
MenuViewportY=480
Brightness=0.500000
Contrast=0.500000
Gamma=1.000000
UseJoystick=True
CaptureMouse=True
StartupFullscreen=true
UseWindowFrame=True
ScreenFlashes=True
NoLighting=False
MinDesiredFrameRate=35.000000
Decals=True
Coronas=True
DecoLayers=True
Projectors=True
NoDynamicLights=False
ReportDynamicUploads=False
TextureDetailInterface=Higher
TextureDetailTerrain=Higher
TextureDetailWeaponSkin=Higher
TextureDetailPlayerSkin=Higher
TextureDetailWorld=Higher
TextureDetailRenderMap=Higher
TextureDetailLightmap=Higher
NoFractalAnim=False
ScaleHUDX=0.0

Мне нужно перенести секцию [WinDrv.WindowsClient]
Может кто знает как прописать значение как ссылку на другой Ini или любой другой вариант?
 

ну захукать можно,наверное
на скрайде вроде именно так и выносили настройки с рамкой\без рамки,которые доступны тока из под инишки
вам думаю нужно двигаться в том же направлении

если вы кнешно в плане делать такое из под интерфейса
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.

Срян, выше не то.

Через Длл пытался?
 

Срян, выше не то.

Через Длл пытался?
В dll не лез. Из-за незнания. Как править и открывать я в курсе. Но вот как сделать подмену чтобы вынести этот раздел в другой ини. Вот тут озадачился.

ну захукать можно,наверное
на скрайде вроде именно так и выносили настройки с рамкой\без рамки,которые доступны тока из под инишки
вам думаю нужно двигаться в том же направлении

если вы кнешно в плане делать такое из под интерфейса
Вот и я пытаюсь сделать окно с рамкой - без рамки через интерфейс.
Все нарисовал и прописал, но зараза именно в нем не меняется.
 
Вот и я пытаюсь сделать окно с рамкой - без рамки через интерфейс.
Все нарисовал и прописал, но зараза именно в нем не меняется.
в двигле меняется
тестил на HF, делал SetIniBool, после Get и параметр реально приходил изменённый
изменений в ини не было,т.к. кодирован

а если сделать RefreshIni - он снова уходит в то,что прописано в ини

т.е. тут по большей части вопрос как заставить клиент схавать параметры (сделать некий фейк-инит л2ини?),при этом не перезагрузившись с дефолтной ини
такое без экстов он не умеет,насколько я знаю
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
секунду - возьми прогу по ссылке "Вот" выше, пробуй заменить и сохранить (П.с. не портит\ломает любой крипт)
 
ну захукать можно,наверное
на скрайде вроде именно так и выносили настройки с рамкой\без рамки,которые доступны тока из под инишки
вам думаю нужно двигаться в том же направлении

если вы кнешно в плане делать такое из под интерфейса
На Скрайде не знаю как но они сделали чтобы клиент запускался с некодированной L2.ini
Насколько я понял- то в WinDrv.dll присылается значение с L2.ini которое присылается через Engine.dll.
Запутался окончательно. Я в этих dll ну вообще не понимаю- от слова СОВСЕМ)

секунду - возьми прогу по ссылке "Вот" выше, пробуй заменить и сохранить (П.с. не портит\ломает любой крипт)
Что заменить и на что? Открытый L2.ini заменяя на некодированный клиент не запускается- пишет типа файл поврежден. А при закодированном- не могу значения менять.( Печаль- тоска- да еще и зеленая.
Спасиб за попытку конечно.
 
Всех приветствую.
Суть проблемы:
Мне нужно поменять значение в файле L2.ini, но т.к. он кодированный то в нем значение не заменяется поэтому стандартные методы не помогают. А если его не кодировать то клиент ругается.
Можно ли как-то из L2.ini перенести определенную секцию в другой ini файл и заставить клиент читать эти значения с него. Для точности.
INI:
[Engine.Engine]
RenderDevice=D3DDrv.D3DRenderDevice
;RenderDevice=Engine.NullRenderDevice
;RenderDevice=OpenGLDrv.OpenGLRenderDevice
AudioDevice=ALAudio.ALAudioSubsystem
;AudioDevice=XboxAudio.XboxAudioSubsystem
NetworkDevice=IpDrv.TcpNetDriver
DemoRecordingDevice=Engine.DemoRecDriver
Console=Engine.Console
DefaultPlayerMenu=UDebugMenu.UDebugRootWindow
Language=int
GameEngine=Engine.GameEngine
EditorEngine=Editor.EditorEngine
GUIController=Engine.BaseGUIController
;DefaultGame=WarfareGame.WarfareTeamGame
;DefaultServerGame=WarfareGame.WarfareTeamGame
DefaultGame=Engine.GameInfo
DefaultServerGame=Engine.GameInfo
ViewportManager=WinDrv.WindowsClient
;ViewportManager=XboxDrv.XboxClient
;ViewportManager=SDLDrv.SDLClient
Render=Render.Render
Input=Engine.Input
Canvas=Engine.Canvas
DefaultPlayerController=Engine.LineagePlayerController
L2NetHandler=Engine.NetHandler
L2Console=NWindow.ConsoleWnd
L2Font=NWindow.L2Font


[WinDrv.WindowsClient]
WindowedViewportX=1024
WindowedViewportY=768
FullscreenViewportX=1024
FullscreenViewportY=768
MenuViewportX=640
MenuViewportY=480
Brightness=0.500000
Contrast=0.500000
Gamma=1.000000
UseJoystick=True
CaptureMouse=True
StartupFullscreen=true
UseWindowFrame=True
ScreenFlashes=True
NoLighting=False
MinDesiredFrameRate=35.000000
Decals=True
Coronas=True
DecoLayers=True
Projectors=True
NoDynamicLights=False
ReportDynamicUploads=False
TextureDetailInterface=Higher
TextureDetailTerrain=Higher
TextureDetailWeaponSkin=Higher
TextureDetailPlayerSkin=Higher
TextureDetailWorld=Higher
TextureDetailRenderMap=Higher
TextureDetailLightmap=Higher
NoFractalAnim=False
ScaleHUDX=0.0

Мне нужно перенести секцию [WinDrv.WindowsClient]
Может кто знает как прописать значение как ссылку на другой Ini или любой другой вариант?
Поиграем в угадайку да ?
Когда тебе нужно изменить эти значения ?
предположим в игре , в какой то момент ? Если это к примеру просто разрешение, то это пользователь может изменить через стандартное окошко OptionWnd( Там и апи соотвествушее есть, которое все меняет и записывает в ini, хотя не уверен что именно в L2.ini , а не User.ini )
Если это что то другое( не разрешение не гамма и прочее, вообще зачем тебе это менять именно в игре, нудаладно), прямой ответ -> Либо хук .dll ( Что ты врятли осилишь) , либо простенькое приложение на яве или C#, которое должно быть запущенно вместе с игрой, и проверяющее на изменения( к примеру раз в минуту) tmp.ini файл( куда ты будешь записывать нужные значения для изменений из игры(Логики интерфейса) ) и если файл был изменен, соответсвено - открывать и перезаписывать L2.ini с нужными изменениями.
Это ты вполне осилишь( C#, java ) !
 
Это нужно чтобы поменять параметр
UseWindowFrame=True
Потом клиент закрывается и перезапускается- в итоге получаем окно без рамки или наоборот. Нужно это для того чтобы в настройках можно было включать окно без рамки. Вот какая задача.
Все остальные значения из настроек прописываются в Option.ini
 
Возник вопрос. Есть файлик WinDrv.int - может как-то через него можно сделать подмену?
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Так, перечитал тему - и сделал то что вы хотите (Классик клиент)
У меня все тип топ пашет (с рамкой-UseWindowFrame=True\ без рамки UseWindowFrame=False)

Тем "екзешником" что кидал

П.с. или вы хотите добавить кнопку в интерфейсе для: Он\Офф - этого действия?
 
Так, перечитал тему - и сделал то что вы хотите (Классик клиент)
У меня все тип топ пашет (с рамкой-UseWindowFrame=True\ без рамки UseWindowFrame=False)

Тем "екзешником" что кидал

П.с. или вы хотите добавить кнопку в интерфейсе для: Он\Офф - этого действия?
Именно. Я создал кнопку для переключения этих параметров. Об этом я и говорю. Чтобы через интерфейс переключать эти параметры.
 
Назад
Сверху Снизу