Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2012, 18:07   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ТС, мне вот интересно, как вы собрались редактировать elements.data(Perfect World же?) не зная его структуры?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2012, 00:12   #12
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Как я уже писал в другом посте структура у меня есть elements.data
nefakt вне форума Ответить с цитированием
Старый 31.10.2012, 00:21   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

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

и так далее, не закрывая поток, вы прочитав полностью страницу окажетесь перед следующей.

PS: а страница 59 мучительная.
PPS:
Код:
TList1 = record
    id:integer;
    name: array [0..31] of WideChar;
    int1:integer;
    int2:integer;
    int3:integer;
    int4:integer;
 end;
по мне, так вернее.
PPPS: в принципе парсил полностью этот файл, от текущего руоффа.
правда на шарпе, но принцип тот же.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 31.10.2012 в 01:50.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2012, 03:03   #14
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Спасибо. А в доказательство того что знаю структуру вот структура листа с оружием от 1.4.5 v60
Код:
type = class WEAPON_ESSENCE {
public:
unsigned int id;
unsigned int id_major_type;
unsigned int id_sub_type;
namechar name[32];
unsigned int require_projectile;
char file_model_right[128];
char file_model_left[128];
char file_matter[128];
char file_icon[128];
int require_strength;
int require_agility;
int require_energy;
int require_tili;
unsigned int character_combo_id;
int require_level;
int require_reputation;
int level;
int fixed_props;
int damage_low;
int damage_high_min;
int damage_high_max;
int magic_damage_low;
int magic_damage_high_min;
int magic_damage_high_max;
float attack_range;
unsigned int short_range_mode;
int durability_min;
int durability_max;
int levelup_addon;
int material_need;
int price;
int shop_price;
int repairfee;
float drop_probability_socket0;
float drop_probability_socket1;
float drop_probability_socket2;
float make_probability_socket0;
float make_probability_socket1;
float make_probability_socket2;
float probability_addon_num0;
float probability_addon_num1;
float probability_addon_num2;
float probability_addon_num3;
float probability_addon_num4;
float probability_unique;
class {
public:
unsigned int id_addon;
float probability_addon;
} addons[32];
class {
public:
unsigned int id_rand;
float probability_rand;
} rands[32];
class {
public:
unsigned int id_unique;
float probability_unique;
} uniques[16];
int durability_drop_min;
int durability_drop_max;
int decompose_price;
int decompose_time;
unsigned int element_id;
int element_num;
unsigned int id_drop_after_damaged;
int num_drop_after_damaged;
int pile_num_max;
unsigned int has_guid;
unsigned int proc_type;
Есть и остальные страницы.
nefakt вне форума Ответить с цитированием
Старый 31.10.2012, 03:09   #15
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Вот .cfg который идет с редактором sELedit и где тут размер как вы пишите?

Код:
151
58

001 - Equipment Addons
4
ID;Name;Number of Values;Value 1;Value 2;Value 3
int32;wstring:64;int32;int32;int32;int32

002 - Weapon Major Types
0
ID;Name
int32;wstring:64

003 - Weapon Sub Types
0
ID;Name;GFX;SFX;Probability Fastest;Probability Fast;Probability Normal;Probability Slow;Probability Slowest;Attack Rate;Attack Short Range;Action Type
int32;wstring:64;string:128;string:128;float;float;float;float;float;float;float;int32
nefakt вне форума Ответить с цитированием
Старый 31.10.2012, 03:11   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

скиньте, если не жалко всю инфу по этим листам, а то натыкался как то, сча не вижу.
обновлю хоть данные по названиям полей.

лучше в личку наверно.

---------------------------------------------

конфиг селэдита состоит так:
<количество листов>
<особо завернутый лист(страница 59)>
[
<пустая строка>
<название листа>
<размер смещения, у страниц 21 и 101 там AUTO, читать надо иначе, могу кинуть код на шарпе>
<список имен полей, разделенный ;>
<список типов полей, разделенный ;(у листа 59 там byte:AUTO)>
]
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 31.10.2012 в 03:14.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2012, 03:46   #17
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Киньте если не трудно. А структуру сейчас в ЛС кину то она длинная думаю сюда не влезет =)
nefakt вне форума Ответить с цитированием
Старый 31.10.2012, 03:50   #18
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Структура слишком длинная я по 2 страницы кидать буду больше не вмещается в одно сообщение.
nefakt вне форума Ответить с цитированием
Старый 31.10.2012, 03:59   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

файлом...через обменник...

код кинул в личку, конкретно по нему пояснения тоже в личку.
остальное тут, по возможности буду помогать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2012, 04:00   #20
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Спасибо за структуру но все же не могу понять как узнать размер и смещение. Там ток 21 и 101 страница. Я могу скинуть вместе со структурой исходник того что я сделал я хочу не так как в sELidet написано а чуть по другому. Там каждый лист открывается отдельно. Щяс в общем скину структуру и исходник с программой то что пока сделано.
nefakt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка данных chipesca Microsoft Office Excel 0 25.05.2012 01:14
Обработка данных grichanuk Microsoft Office Excel 2 20.06.2011 12:36
Обработка данных Мигель Microsoft Office Excel 11 16.04.2011 16:47
Обработка данных из БД andozag C/C++ Базы данных 1 24.03.2011 23:38
Обработка данных beztrud БД в Delphi 1 11.03.2011 21:49