Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Как вынести оффсеты в ini файл???

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 04.01.2012, 10:23   #1
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Как вынести оффсеты в ini файл???

Подскажите пожалуйста кому нетрудно, как вынести правильно оффсеты в ini файл.
  Ответить с цитированием
Старый 04.01.2012, 10:33   #2
 Разведчик
Аватар для Moder Death
 
Moder Death на правильном пути
Регистрация: 15.06.2010
Сообщений: 48
Популярность: 20
Сказал(а) спасибо: 4
Поблагодарили 5 раз(а) в 5 сообщениях
 
По умолчанию Re: Как вынести оффсеты в ini файл???

в исходниках от gurin куча примеров с выносом в ini для Delphi

а тебе для какого языка?
  Ответить с цитированием
Старый 04.01.2012, 16:39   #3
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Как вынести оффсеты в ini файл???

держи пример на C++ Builder, думаю, привести к остальным языкам проблемой не будет, ибо принцип в любом случае одинаков:

Код:
#include <inifiles.hpp>

DWORD BA;
DWORD GA;
WORD PlayerOffset;

void LoadConfigData()
{
  TIniFile* Config = new TIniFile("C:\\PerfectWorld\\element\\config\\offsets.ini"); // полный (!) путь к файлу
  BA = Config->ReadInteger("MAIN","BA",0);
  GA = Config->ReadInteger("MAIN","GA",0);
  PlayerOffset = Config->ReadInteger("OFFSETS","PlayerOffset",0);
  
  // ...

  delete Config; // освобождаем память
}
Соответствующий файл должен выглядеть так:

Код:
[MAIN]
BA=0x100500
GA=0x100500
[OFFSETS]
PlayerOffset=0x15
Как работает ReadInteger("MAIN","BA",123): в файле ищется секция MAIN, ключ BA. Если секция, ключ или значение отсутствует, результатом чтения будет 123 (последний параметр функции), а если есть - соответствующее ключу значение.
Если нужно записывать, а не считывать, то используется аналогичная функция WriteInteger.

P.S. Насчёт шестнадцатеричных значений не уверен, возможно, придётся хранить в INI десятичные оффсеты и адреса.

Последний раз редактировалось BritishColonist; 04.01.2012 в 16:42.
  Ответить с цитированием
Старый 04.01.2012, 20:57   #4
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как вынести оффсеты в ini файл???

Спасибо большое, поковыряюсь)) Именно в С++ и надо было.

Добавлено через 14 часов 44 минуты
Проблему решил несколько иначе... В MSVC нет inifiles.hpp. Зато есть простая функция от WINAPI "GetPrivateProfileInt"

В коде выглядит примерно так
DWORD BA = GetPrivateProfileInt ("mine", "BA", NULL, "D:\\drubotconfig.ini");

а в самом ini файле как подсказали выше.
Спасибо всем кто принял участие))

Последний раз редактировалось wajskopf; 05.01.2012 в 11:42. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оффсеты Maty Общение разработчиков 8 14.03.2012 21:00
Оффсеты wzhik Общение и обсуждение CrossFire 0 19.02.2011 13:43
Как быстро вынести мозг девушке? BigAssik Треп 17 08.12.2009 11:03

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 12:23.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net