У меня структуры не реально палённые... И вобще понять что-либо, не реально! Если есть у кого-нибудь хоть какие-то, то выложите.. Или свяжитесь со мной... Могу купить.
kAwAii
02.02.2010, 18:42
А мнеб тоже самое ток для 6 апа))))
добрые люди помогите
FFForever
04.02.2010, 16:33
Вроде выкладывал, юзайте поиск.
kAwAii
04.02.2010, 16:56
Вроде выкладывал, юзайте поиск.
поискал нашол только кривые структуры для 5 апа.
FFForever
05.02.2010, 11:22
структура GauntletItem, подходит структура под Shielditem.dat, GauntletItem.dat, HelmetItem.dat, ShoeItem.dat, UpperItem.dat, LowerItem.dat, только надо изменить в структуре [filemask="GauntletItem.dat"] на название соответствующие серверного файла.
хм... Извини за нубский вопрос.. в скриптах я не очень.. Как я понял это изменение (перевод) структур.. Если можешь, подскажи пожалуйста, куда надо эт вписать, чтобы руссификация прошла?)
FFForever
05.02.2010, 11:29
Открой структуру свою и подумай.
kAwAii
05.02.2010, 13:03
структура GauntletItem, подходит структура под Shielditem.dat, GauntletItem.dat, HelmetItem.dat, ShoeItem.dat, UpperItem.dat, LowerItem.dat, только надо изменить в структуре [filemask="GauntletItem.dat"] на название соответствующие серверного файла.
Как назло именно эти у меня были норм)))
Оч прошу скинь структуры для WeaponItem ,MonsterCharacte.
Или научи исправлятЬ) а переделывал WeaponItem но получилось всеравно криво)
p.s. для 6 up
FFForever
05.02.2010, 14:28
Нам нужны:
1)Мозг и прямые руки
2)Dateditor
3)Notepad или любой текстовой редактор
4)Знание хотя бы клиента рфки и устройства dat файлов
Файлы структур имеют расширение strs и открываются тестовым редактором
I.Типы данных и их атрибуты
u8-целое число занимающие 1 байт(от 0 до 256)
u16-целое число занимающие 2 байта(от 0 до 65535)
u32-целое число занимающее 4 байта (от 0 до 16777215)
cstr-текст
x8-16-ричное число занимающие 1 байт(от 00 до FF)
x16-16-ричное число занимающие 2 байта(от 0000 до FFFF)
x32-16-ричное число занимающее 4 байта (от 0 до FFFFFFFF)
float - число с плавающей запятой
Атрибуты для типов данных типа u* и x* и float
а)tag="Название"-название данного блока
б)hidden=Число- если число=1 то блок скрыт
Атрибуты для cstr
а)len="Число"-Длина текста в байтах(1 буква кодируется байтом)
Для рфки в серве обычно ид записаны с длиной 64 а в клиенте 32
Атрибуты записываются в квадратных скобках и через запятую
u32 [tag="----",hidden=1] DWORD;
float [tag="----",hidden=1] DWORD;
cstr [len=64] "Название";
II.Создание однородной структуры
Первый оператор-ето какой файл мы будем загружать
[filemask="Имя файла.dat"]
Здесь можно указать * тогда можно будет загрузить любой файл([filemask="*.dat"])
Дальше идет описание структуры самого файла
Для рфки- файлы начинаются с количество блоков длиной u32 потом размер блока длиной u32 (для сервера идет дальше размер файла длиной u32)
Дальше идет загрузка структуры блока
struct "Название"
{
u32 nBlocks;
u32 nBlockSize
child Block [count=nBlocks];
}
Атрибуты child
a) count - сколько блоков будет с данной структурой блока
б)offset - оффсет с которого начнутся блоки с данной структурой
в)group="Название" - Название группы данных блоков
Дальше мы пишем структуру блока с название которое мы указали при child
struct block
{
u32 [tag="----"] DWORD;
....
...
....
...
...
}
Писать структуру можно добавляя(убавляя) кол-во блоков u32 пока не увидите упорядоченность в Dateditor а потом меняя всякие значения смотреть что изменилось в клиенте
III.Создание структуры для файла состоящего из нескольких частей
(например:Item.edf Character.edf и тд)
Такое возникает когда мы написали однородную структуру а в окне показа самого файла в Dateditor видите что файл не кончился.
Для этого нам понадобится оператор seek
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Он пропускает опреденное количество байтов в файле(те чтение структуры начинается с какогото оффсета а не с начала)
struct "Название"
{
u32 nBlocks1;
u32 nBlockSize1;
child Block1 [group="1",count=nBlocks1];
seek(nBlocks1*nBlockSize1 +8)
u32 nBlocks2;
u32 nBlockSize2;
child Block2 [group="2",count=nBlocks2,offset=nBlocks1*nBlockSize1 +16];
}
Как правило между частями файла в рф находится 8 байтов(хотя в некоторых есть и 4)
seek(nBlocks1*nBlockSize1 +8)
Ето означает что мы пропустили первую часть файла (те кол-во блоков1*размер блока1 + 8 свободных байтов)
Обязательно указывайте группу для child
Так же в child для второй части указан оффсет с которой ета часть начнется (те кол-во блоков1*размер блока1+8 свободных байтов + 8 байтов отвечающих за кол-во блоков2 и размер блока2)
После структуры для блока Block1 пишем структуру для блока Block2
struct Block1
{
u32 [tag="----"] DWORD;
....
...
....
...
...
}
struct Block2
{
u32 [tag="----"] DWORD;
....
...
....
...
...
}
Итак мы получаем структуру вида
[filemask="Имя файла.dat"]
struct "Название"
{
u32 nBlocks1;
u32 nBlockSize1;
child Block1 [group="1",count=nBlocks1];
seek(nBlocks1*nBlockSize1 +8)
u32 nBlocks2;
u32 nBlockSize2;
child Block2 [group="2",count=nBlocks2,offset=nBlocks1*nBlockSize1 +16];
......
.....
}
struct Block1
{
u32 [tag="----"] DWORD;
....
...
....
...
...
}
struct Block2
{
u32 [tag="----"] DWORD;
....
...
....
...
...
}
IV.Оператор repeat
Так же существует оперотор repeat-он повторяет данный блок несколько раз
Например
repeat 7
{
u32 [tag="----"] DWORD;
}
И мы увидим в Dateditor что он повторен 7 раз
Ето удобно когда мы видим что одно и тоже повторяется много раз( например Store,StoreList и тд) и чтобы структура была удобнее для чтение можно употреблять данный оператор
---------------------------------------------
Спасибо за основные данные Martin
(с)[scaR]
struct UnitFrameBlock [preload=1]
{
u32 nCount;
cstr [len=64] UnitName;
u32 [tag="DWORD"] DWORD;
u32 [tag="HP"] DWORD;
u32 [tag="----"] DWORD;
u32 [tag="----"] DWORD;
u32 [tag="----"] DWORD;
u32 [tag="----"] DWORD;
u32 [tag="----"] DWORD;
u32 [tag="MoneyCode"] DWORD;
u32 [tag="Count"] DWORD;
cstr [len=4, hidden=1] Lable3;
u32 [tag="----"] DWORD;
u32 [tag="----"] DWORD;
cstr [len=64] Head;
cstr [len=64] UpBody;
cstr [len=64] LowBody;
cstr [len=64] Item1;
cstr [len=64] Item2;
cstr [len=64] Item3;
cstr [len=64] Item4;
cstr [len=64] Item5;
}
Добавляй по 1 строке в конец u32 [tag="----"] DWORD;
и перезагружай ее пока не увидишь что все ок а дальше расшифровываешь
Есть более умный спосбо в Hex-просмотре внизу Dateditor смотришь сколько еще байтов осталось до следующих 4-х байтов перед ID и добавляешь нужное колво строк в структуру
kAwAii
05.02.2010, 15:54
мля...
вот я сделал...уже раз 10 проверил не магу найти ошибку!
проверь плиззз(((
ps если ошибка вообще нубская не смейтесь((
это мои первые попытки
FFForever
05.02.2010, 17:08
зачем цитировать такие большие посты?
Добавлено через 3 часа 15 минут
Хмм, мой веапон айтем от 5 апа выглядит так
[filemask="WeaponItem.dat"]
Может ктонить помочь? Делал вроде всё правильно.. Увеличивал только деф и всё...
xotab26rus
06.02.2010, 17:09
датэдитор закрой серв к файлу доступ получить не может
diman329
06.02.2010, 17:51
датэдитор закрой серв к файлу доступ получить не может
не молоти чушь... Естественнов всё закрыто... И я не напрямую из сервера редакчу, а копирую наверно)) Ты не думал об этом?
Хм.. Может структура FFForever'а не очень правильно переведена?(( Там они не очень то совпадают с оригиналом..
kAwAii
06.02.2010, 20:50
зачем цитировать такие большие посты?
Добавлено через 3 часа 15 минут
Хмм, мой веапон айтем от 5 апа выглядит так
[filemask="WeaponItem.dat"]
. . . .
}
я выложил от 6 апа!)
или там нет разницы?
diman329
06.02.2010, 20:51
Кавайк помочь не можешь?(((
kAwAii
06.02.2010, 20:59
Кавайк помочь не можешь?(((
ну вообще(врятли для тебя это будет новость) у тебя ошибка в файле Upper я советую сначала заменить этот фаил если будет норм открыть рабочий и сравнить где ошибка, скорей всего гдет поставил пробел когда менял статы.
Добавлено через 1 час 45 минут
зачем цитировать такие большие посты?
Добавлено через 3 часа 15 минут
Хмм, мой веапон айтем от 5 апа выглядит так
[filemask="WeaponItem.dat"]
}
Эээээ
приехал домой протестил твою структурку Веапод (нарыл у себя сервак 5 апа)
может конечно так и надо...но почему там атака оружия значится 10 цифрами?
*если так и должно быть скажи плизз как там вычеслить фактический дамаг чтоб все норм настроить*
FFForever
07.02.2010, 01:24
Хм.. Может структура FFForever'а не очень правильно переведена?(( Там они не очень то совпадают с оригиналом..
Зато моя стуктура от 5 апа похожа, на структуры для Shielditem.dat, GauntletItem.dat, HelmetItem.dat, ShoeItem.dat, UpperItem.dat, LowerItem.dat для 2.2.3
Скинте мне ваш weaponitem.dat
kAwAii
07.02.2010, 01:31
Всем спс)все мои вопросы решены)
Добавлено через 13 часов 19 минут
Кавайк помочь не можешь?(((
!!!
пороверь не припесал ли дат эдитор лишние байты!