Balancer - взятые обязательства :)

Теги:
 
+
-
edit
 

Balancer

администратор
★★★★★
Напоминалка самому себе.

Как только выделится время, нужно сделать:


Приоритет:

- Починка всего, связанного с Форт-подсистемой

- Написание комплексного автотеста

- Написание базовых таториалов



- Сохранение конфигов нужно в SQL-базе. С возможностью их "живой" правки и по //admin и из вебсервера, и из телнета. С сохранением информации в SQL при модификации. А каталог config при этом совсем не нужен

- Встроенная авторизация в веб-сервере и, соответственно, web-админка.

- Сделать альтернативный дроп для повышенных рейтов. Сбалансированный рост как вероятности, так и количества.

- Доделать в новом виде систему объединения датапаков ("солянка").
 
+
-
edit
 
каталог конфиг сносить не надо, там можно хранить файлы которые не должны переписываться при обновлении, например rrd там хранит бд.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

Balancer

администратор
★★★★★
Abaddon> каталог конфиг сносить не надо, там можно хранить файлы которые не должны переписываться при обновлении, например rrd там хранит бд.

Кстати, хранить БД в каталоге config - это ново! :D
 
+
-
edit
 
А где еще? создавать новый каталог нет смысла, а другие папки сносятся при обновлении :)
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
UA SoulKeeper #12.12.2006 16:20
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Еше одна сборка мечтает о SQL конфиге, имхо, не удобно...

С комментариями очень не удобно получается да и все уже привыкли к старым конфигам где над строчкой сразу можно прочитать ее описание, не помнить же предназначение каждого с параметров?


Имхо, намного удобнее юзать вот такое.

code text
  1. Properties op = new Properties();
  2. op.load(new FileInputStream("./config/options.properties"));
  3. op.setProperty("Debug", getBool(Config.DEBUG));
  4. op.store(new FileOutputStream("./config/options.properties"),"");
  5.  
  6. ...
  7.  
  8. public String getBool(boolean b){
  9.    if (b) return "True";
  10.    else return "False";
  11. }
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
+
-
edit
 

Balancer

администратор
★★★★★
Abaddon> А где еще? создавать новый каталог нет смысла, а другие папки сносятся при обновлении :)

Вообще-то, у нас каталог data есть. Название само за себя говорит. Более того, в общем случае, из соображений безопасности, запись в config может быть запрещена (когда-то так работало)
 
+
-
edit
 

Balancer

администратор
★★★★★
SoulKeeper> Еше одна сборка мечтает о SQL конфиге, имхо, не удобно...

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

SoulKeeper> С комментариями очень не удобно получается

Как раз удобно. Можно делать параметры с подробными описаниями.

И не геморроиться с проблемой добавления новых параметров в конфиг. А то сейчас появился новый параметр - и в текущие конфиги его ручками переносить нужно. Да ещё и следить за этими обновлениями.

> да и все уже привыкли к старым конфигам где над строчкой сразу можно прочитать ее описание, не помнить же предназначение каждого с параметров?

Повторюсь, на каждый параметр можно давать исчерпывающее описание.
 
+
-
edit
 

Balancer

администратор
★★★★★
Впрочем, для консерваторов можно будет оставить и старую систему, как дублирующую основную. По крайней мере какое-то время. Мешать друг другу они не должны.

Кстати, базовый конфиг в любом случае останется текстовым. Хотя бы с информацией о соединении с sql-сервером :)

Впрочем, можно сделать и конфиги в текстовом виде. Только для удобства модификации с сервера, придётся их разложить до уровня один параметр - один файл в тематическом подкаталоге. Как в своё время в том же E-Serv было сделано.

И модифицировать сервером просто, и вручную менять несложно :)
 
UA SoulKeeper #12.12.2006 16:45
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Balancer> Впрочем, можно сделать и конфиги в текстовом виде. Только для удобства модификации с сервера, придётся их разложить до уровня один параметр - один файл в тематическом подкаталоге. Как в своё время в том же E-Serv было сделано.

Ну а это чудо техники для чего (В смысле один каталог - один файл)?

Код выше способен модифицировать хоть тысячу параметров в файле, да и до следующего рестарта не надо трогать. А в принципе ты прав. На любителя оно.
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
+
-
edit
 

Balancer

администратор
★★★★★
SoulKeeper> Ну а это чудо техники для чего (В смысле один каталог - один файл)?

Один параметр = один файл. А каталог - это тематическая группа параметров :)

SoulKeeper> Код выше способен модифицировать хоть тысячу параметров в файле

Хм. Надо подумать. Но именно в таком виде - оно всё равно ужасно. Начиная хотя бы с того, что параметры придётся прописывать несколько раз. Как и описание. Описание параметра в конфиге, описание параметра в коде онлайн-модификации (как сейчас в //admin в конфигах сделано). По два имени каждого параметра (в конфиг-файле и в конфиг-классе) - тоже тот ещё сон разума. В конфиге, опять же, нет информации о классе параметра (int он или boolean), а делать на каждый чих instanceof для Config.param - тоже маразм... в общем, тяжёлое это наследие :)
 
UA SoulKeeper #12.12.2006 19:00
+
-
edit
 

SoulKeeper

разработчик L2J Fortress

Ну для чего же instanceof ;)?

Я сохранение параметров реализовувал как

code text
  1.         public String getBool(boolean b){
  2.                 if (b) return "True";
  3.                 else return "False";
  4.         }
  5.        
  6.         public String getLong(long l){
  7.                 return ""+l+"";
  8.         }
  9.        
  10.         public String getFloat(float f){
  11.                 return ""+f+"";
  12.         }
  13.        
  14.  
  15.         private String getDouble(double d){
  16.                 return ""+d+"";
  17.         }
  18.        
  19.         private String getList(List<Integer> list) {
  20.                 value = null;
  21.                 for (int i : list){
  22.                         if (value == null) value = ""+i+"";
  23.                         else value = ""+value+","+i+"";
  24.                 }
  25.                 if (value == null) return "";
  26.                 else return value;
  27.         }


Собственно запись делается по //saveconfig,

параметры измененные с помощью //set дергаются с конфига

К примеру:
code text
  1. op.setProperty("DefaultPunishParam", getLong(Config.DEFAULT_PUNISH_PARAM));
  2. op.setProperty("BypassValidation", getBool(Config.BYPASS_VALIDATION));


Один недодастаток есть. Малюсенький =).

Сносит комменты при сохранении в файл :)
Разыскивается десятка с два датапакеров :) http://la2.wrk.ru/forum/viewtopic.php?id=50882  
+
-
edit
 

Balancer

администратор
★★★★★
SoulKeeper> Один недодастаток есть. Малюсенький =).
SoulKeeper> Сносит комменты при сохранении в файл :)

А... Ну, тут уже этот метод совсем в пролёте :D

Ладно, сделаю всё же, (потом) по-своему. Думаю, вам понравится :)
 
+
-
edit
 
Abaddon>> А где еще? создавать новый каталог нет смысла, а другие папки сносятся при обновлении :)
Balancer> Вообще-то, у нас каталог data есть. Название само за себя говорит. Более того, в общем случае, из соображений безопасности, запись в config может быть запрещена (когда-то так работало)
Лично у меня эта папка при каждом апдейте сносится. Думаю не только у меня.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

Balancer

администратор
★★★★★
Abaddon> Лично у меня эта папка при каждом апдейте сносится. Думаю не только у меня.

Хм. У меня никогда не сносится. Зачем?? Там же только в data/jbforth может быть куча локальных расширений! :)
 
+
-
edit
 
Потому что при записи поверх могут быть накладки :) Поэтому лично я категорически против хранения там чего-то ценного.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

Balancer

администратор
★★★★★
Abaddon> Потому что при записи поверх могут быть накладки :) Поэтому лично я категорически против хранения там чего-то ценного.

Какие накладки? :) Почему у меня за года полтора работы в таком режиме не было накладок? Это ж SVN! :)
 
+
-
edit
 

phoptik

разработчик L2J Fortress

Он имел ввиду папку data, а не свн как я понял :)
Что при обновлении он её вначале удаляет
 
+
-
edit
 

Balancer

администратор
★★★★★
phoptik> Он имел ввиду папку data, а не свн как я понял :)
phoptik> Что при обновлении он её вначале удаляет

Дык, data - она в SVN лежит. Так какой смысл её удалять? То, что обновилось - обновится. То, что добавлено вручную - не тронется. А если что-то на уровне файлов проекта сам исправлял - так это коммитить надо :D
 
+
-
edit
 
У тебя рабочая директория прямо на свн, а я вручную обновляю :) Так что мне удобнее иметь отдельную папку которая не меняется.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

Balancer

администратор
★★★★★
Всё равно не понимаю твоей проблемы :)
 
+
-
edit
 
Проблема в том, что если не снести старую папку data то возможны накладки :) А сносить выборочно - нафиг надо :)
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

Balancer

администратор
★★★★★
Abaddon> Проблема в том, что если не снести старую папку data то возможны накладки :)

Никогда не было :D Это же SVN, а не F5 в TotalCommander!
 

Drac

разработчик l2j-сервера

Рома, для кого как ;)
 
RU damnedkluev #13.12.2006 16:26
+
-
edit
 

damnedkluev

новичок
Beyond Compare и нет проблем :)
 
+
-
edit
 
Еще раз говорю - это если пользоваться svn. А если не пользоваться то могут быть накладки.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru