Jump to content
Korean Random

n0per

User
  • Posts

    35
  • Joined

  • Last visited

Everything posted by n0per

  1. товарищи, кто причастен к написанию парсера конфигурационного файла, прокомментируйте пожалуйста данное его поведение. http://www.koreanrandom.com/forum/topic/3173-тестирование-test-400-beta3/?p=65995
  2. так, я добрался таки до дома и вот что имею сказать ошибка в данном случае возникает следующая: 2013.05.21 21:19:33 [V:004] Error loading config file 'configs/n0per/hangar.xc': bad reference: ${"undefined":"def.my.color"} и проблема здесь не в undefined, а в том, что парсер каким-то образом переключает "текущий" файл, а почему это происходит уже вопрос к автору самого парсера, возможно это бага "pingServers": { "$ref": {"file":"hangar.xc","path":"def.pingServers"}, "enabled": true, "x": 15, "y": 30, "maxRows": 7, "columnGap": 5, "fontStyle": { "$ref": {"file":"hangar.xc","path":"def.fontStyle"}, "color": ${"def.my.color"} } } это кусок из файла login.xc, после подстановки секции "def.fontStyle" по ссылке на hangar.xc, парсер пытается искать секцию "def.my.color" в файле hangar.xc хотя она находится в файле login.xc и ссылка по идее должна показывать именно на нее, так происходит если явно не указывать файл откуда брать секцию. соответственно если в файле hagar.xc добавить секции: "def":{ "my": { "color": { ... } } } то парсер ее находит и ошибка не возникает, конфиг загружается и применяется корректно. на мой взгляд это глюк парсера hangar.xc login.xc
  3. хм, не вижу разницы, но таки ладно, скопировал весь код из hangar.xc в login.xc, хотя раньше было login.xc { "login": { "pingServers": { "$ref": {"file":"hangar.xc", "path":"hangar.pingServers"}, "x": 15, "y": 35 } } } прилепил измененный файл login.xc
  4. вот по поводу как и в каких случаях использовать короткий или полный вариант ссылки читай мое "капитанство" выше ;) hangar.xc
  5. хм, кусок из рабочего конфига, проверял у себя что конкретно не пашет, что говорит (или не говорит)?
  6. вот так правильней выполнять подстановку вроде как (насколько я вообще понял работу системы ссылок) UPD: пока ковырялся с подстановками наткнулся на интересное их поведение: UPD2: сходил пообедать и понял, что открыл велосипед ;)
  7. ну собственно так и сделал, возможно это даже более гибко, короче получилось как раз некое подобие галереи текстовых полей, которые можно по желанию включить или выключить в любом из режимов отображения маркера P.S. и черт побери мне нравится новый формат конфига, вместе с шаблонами секция markers вместо 1500 строк чистого кода (без учета коментариев) ужалась до чуть менее чем 300 и править ее стало одно удовольствие. Причем в хотелках на гуглокоде я эту фичу с подстановкой стандартных кусков конфига видел довольно давно, тогда разрабы от нее отмахнулись, как от ненужной ;) нашел, правда не совсем в том виде в котором оно есть сейчас:
  8. ну я вроде еще в первом сообщении его массивом назвал, вот подумалось что "name" можно использовать в качестве индекса, оказалось, что нет ;) и сразу родился вопрос: а таки раз оно массив, можно как-то обратиться к его элементам или получить их значение в конфиге?
  9. т.е. таким способом задуманное мной нереализуемо в принципе? собственно способ обойти эту проблему я подсмотрел в твоем конфиге, но вообще думал, что можно переписывать параметры ранее заданного текстового поля указав его имя по аналогии с оверрайдом обычных параметров.
  10. наступил на интересный момент, невозможно перезаписать часть текстового поля в маркерах т.е. имеем некий шаблон вида { "template": { "tankMarker": { //шаблон маркера со стандартными значениями для всех режимов отображения "textFields": [ //массив всех текстовых полей используемых в маркерах { //"WinRate" "name": "WinRate", "visible": false, // по умолчанию все поля не отображаются "x": 0, "y": -46, "font": { "name": "$FieldFont", "align": "center", "size": 11, "italic": false, "bold": true }, "color": "{{c:twr}}", "alpha": 100, "shadow": ${"template.shadow"}, "format": "{{twr}}" }, ... пропущено еще несколько текстовых полей ], ... пропущены параметры маркеров танка } }, "markers": { "enemy": { "alive": { "normal" { "$ref":{"path":"template.tankMarker"}, // подставляем стандартный шаблон маркера "TextFields": [ { "name": "WinRate", "visible": true // хотим включить отображение текстового поля WinRate для живых танков противника } ] }, ... далее идут настройки других режимов маркера так вот, при указании поля textFields после подстановки оно полностью перетирает все текстовые поля указанные в шаблоне, так и должно быть и я просто не понял или это ошибка в парсере конфига?
×
×
  • Create New...