[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Jery, Rey  
Форум » Knights and Merchants: Remake » Общий » вопросы по разработке кам ремейк (хочу узнать про разроботки кам ремейк как его пишут)
вопросы по разработке кам ремейк
Alexandr_5Дата: Воскресенье, 02.12.2012, 12:09 | Сообщение # 181
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Нет, мне нужно как у Крома загружать текст в проект игры и объяснение что каждая строка программного кода делает.
 
KromДата: Воскресенье, 02.12.2012, 12:22 | Сообщение # 182
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
Krisss, покажи текст, что неясно, а мы прокомментируем.

Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
Alexandr_5Дата: Воскресенье, 02.12.2012, 13:05 | Сообщение # 183
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Вот часть текста его нужно загружать также как у тебя

01=Меню Игры
02=Новая игра
03=Выбрана новая игра. Пожалуйста выберите игру.
04=Компания
05=Выбрана Компания. Пожалуйста выберите Компанию.
06=Одиночная игра
07=Выбрана Одиночная игра. Пожалуйста выберите категрию одиночной игры.
08=Учебник
09=Выбран Учебник. Пожалуйста выберите один из учебников.
10=Назад
11=Инфо
12=Информация игры.
13=Назад
14=Редакторы
15=Выбраны редакторы. Пожалуйста выберите редактор.
16=Настройки
17=Выбраны настройки.
18=Звук
19=Громкость звуков
20=Громкость голосов
21=Музыка
22=Выбор папки музыки
23=Случайно
24=По порядку
25=Включена
26=Отключена
27=Статус продолжения музыки
28=Графика
29=Окно
30=В Полном экране
31=Разрешение экрана
32=Яркость
33=Автосохронение
34=Язык
35=Русский
36=Английский
37=Немецкий
38=Выход

только 13 строку надо убрать


Сообщение отредактировал Krisss - Воскресенье, 02.12.2012, 13:08
 
JeryДата: Воскресенье, 02.12.2012, 21:42 | Сообщение # 184
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Ну в твоем файле все не так же как у крома. У тебя нет строчки с указанием кол-во строк в файле, а она нужна чтобы заранее определить размер динамического массива. Ну и разделитель у тебя не не ":", а "=".

Выдрано из кода KaM Remake. Чтение LibX файла с локализацией:
Code
{LIBX files consist of lines. Each line has an index and a text. Lines without index are skipped}
procedure TTextLibrary.LoadLIBXFile(FilePath: string; aFirstIndex: Word; var aArray: TAnsiStringArray; aOverwrite: Boolean);
var
    aStringList: TStringList;
    I: Integer;
    s: AnsiString;
    firstDelimiter: Integer;
    ID, MaxID: Integer;
begin
    if not FileExists(FilePath) then Exit;

    aStringList := TStringList.Create;
    aStringList.LoadFromFile(FilePath);

    //First line is empty or comment and could have first 3 bytes Unicode Byte-Order Mark (BOM)
    s := aStringList[1];
    if Copy(s, 1, 6) <> 'MaxID:' then Exit;

    firstDelimiter := Pos(':', s);
    if not TryStrToInt(RightStr(s, Length(s) - firstDelimiter), MaxID) then Exit;

    if not aOverwrite then
      SetLength(aArray, aFirstIndex + MaxID + 1);

    for I := 0 to aStringList.Count - 1 do
    begin
      s := aStringList[I];

      //Get string index and skip erroneous lines
      firstDelimiter := Pos(':', s);
      if firstDelimiter = 0 then Continue;
      if not TryStrToInt(TrimLeft(LeftStr(s, firstDelimiter - 1)), ID) then Continue;
      if ID > MaxID then Continue;

      s := RightStr(s, Length(s) - firstDelimiter);
      //Required characters that can't be stored in plain text
      s := StringReplace(s, '\n', eol, [rfReplaceAll, rfIgnoreCase]); //EOL
      s := StringReplace(s, '\\', '\', [rfReplaceAll, rfIgnoreCase]); //Slash
      if not aOverwrite or (s <> '') then aArray[aFirstIndex + ID] := s;
    end;

    aStringList.Free; //Must free at last to avoid memory-leaks
end;


Вывод будет в aArray. В твоем случае нужно добавить хоть какую-то инфу о кол-ве строк, и либо у себя изменить разделитель либо в коде (: или =)


«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)

Сообщение отредактировал Jery - Воскресенье, 02.12.2012, 21:43
 
Alexandr_5Дата: Понедельник, 03.12.2012, 17:33 | Сообщение # 185
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Jery, Огромное спасибо.
 
lil_scorpiДата: Вторник, 11.12.2012, 14:16 | Сообщение # 186
Копейщик
Группа: Проверенные
Сообщений: 38
Награды: 0
Репутация: 0
Статус: Offline
Я извиняюсь, если уже кто-то спрашивал.

Кто занимается КАМом?
Ремейк делают наши люди с этого форума, или зарубежные люди?
 
dimasik468Дата: Среда, 12.12.2012, 01:22 | Сообщение # 187
Дозорный
Группа: Заблокированные
Сообщений: 244
Награды: 2
Репутация: 4
Статус: Offline
Quote (lil_scorpi)
Кто занимается КАМом?
Ремейк делают наши люди с этого форума, или зарубежные люди?


/index/kam_remake/0-33 - читай
krom - русский, который следит за нашим форумом
lewin - иностранец


skype: dimask468 - добавляйтесь для совместных игр в KaM Remake
 
Alexandr_5Дата: Среда, 12.12.2012, 08:56 | Сообщение # 188
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Кром это ник получаеться

Добавлено (12.12.2012, 08:56)
---------------------------------------------
А как делаются тайлы и где можно изучить rxx.

Сообщение отредактировал Krisss - Среда, 12.12.2012, 08:53
 
KromДата: Среда, 12.12.2012, 11:57 | Сообщение # 189
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
lil_scorpi, ремейком занимаемся мы с Левиным. Если что - пиши!)

Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
dimasik468Дата: Среда, 12.12.2012, 15:32 | Сообщение # 190
Дозорный
Группа: Заблокированные
Сообщений: 244
Награды: 2
Репутация: 4
Статус: Offline
Quote (Krisss)
Кром это ник получаеться

дай угадаю! ты должно быть думал, что Кром американец, который не знает русского, а сюда пишет через гугл транслейтор.. я прав? я прав же?


skype: dimask468 - добавляйтесь для совместных игр в KaM Remake
 
Alexandr_5Дата: Пятница, 14.12.2012, 15:24 | Сообщение # 191
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Code
дай угадаю! ты должно быть думал, что Кром американец, который не знает русского, а сюда пишет через гугл транслейтор.. я прав? я прав же?


Нет, я скорее думал, что он немец и знает русский, извините что ошибся.

Добавлено (14.12.2012, 15:24)
---------------------------------------------



Как можно запустить процедуру TTextLibrary.LoadLIBXFile.
 
KromДата: Пятница, 14.12.2012, 16:19 | Сообщение # 192
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
Krisss, тебе нужно создать экземпляр класса и вызвать у него этот метод

var
L: TTextLibrary;
begin
L := TTextLibrary.Create;
L.LoadLIBXFile;
L.Free; //и освободить его после использования
end;


Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
Alexandr_5Дата: Пятница, 14.12.2012, 16:40 | Сообщение # 193
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Krom, А если не использовать TTextLibrary
Напиши еще как можно после того как запустил выводить текст.

Добавлено (14.12.2012, 16:40)
---------------------------------------------



Намекни че не так.
 
KromДата: Суббота, 15.12.2012, 09:50 | Сообщение # 194
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
Krisss, на вид все так, видно у тебя содержимое файла, не совсем то, что TTextLibrary.LoadLIBXFile ожидает (формат)?

Мелкое замечание:
progdir := ExtractFilePath(Application.ExeName);
if (progdir[Length(progdir)] <> '\') then
progdir := progdir + '\TEXT_GAMES.AE5_TEXT';

ты проверяешь есть ли конце \ (а он там есть) и если его нет (а т.к. он есть) условие не выполняется и ты путь к файлу не дописываешь.
Надо так:
progdir := ExtractFilePath(Application.ExeName);
if (progdir[Length(progdir)] <> '\') then
progdir := progdir + '\';

progdir := progdir + 'TEXT_GAMES.AE5_TEXT';

или правильнее всего - вот так:
progdir := ExtractFilePath(Application.ExeName) + 'TEXT_GAMES.AE5_TEXT'; //ExtractFilePath отдает путь с \ на конце


Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
Alexandr_5Дата: Суббота, 15.12.2012, 14:10 | Сообщение # 195
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline


А теперь в чем. Ошибка возникает, когда пытаюсь присвоить слово переменной String
 
Форум » Knights and Merchants: Remake » Общий » вопросы по разработке кам ремейк (хочу узнать про разроботки кам ремейк как его пишут)
Поиск: