Guide Работа с сервером Multiprotocol и разница между IT/Classic

Для лучшего понимания различий между настройками для разных клиентов, давайте проясним следующее:
  1. Разделение HTML диалогов:Для обеспечения гибкости локализации и интеграции графических элементов, некоторые нестандартные диалоги (например, Community Board и другие сервисы) разделяются в зависимости от версии клиента.
    • Например, для клиента "Интелюд" страница будет называться index.it.htm, а для "Классика" - index.classic.htm. Если использовать просто index.htm, то он будет применяться для обоих клиентов, и файлы *.it.htm и *.classic.htm будут проигнорированы.
  2. Локализация строк:То же самое касается и файлов локализации строк в gameserver/data/string.
    • Например, для "Интелюда" строка будет называться defaut.button$it, а для "Классики" - defaut.button$classic. Если использовать просто defaut.button, то он будет применяться для обоих клиентов, и $it и $classic будут проигнорированы.
 
Last edited:
Если вы переходите с базы данных Interlude!
В иных случаях его выполнять не нужно!


Необходимо выполнить SQL запрос - включаете сервер, выключаете сервер, выполняете данный SQL запрос:
SQL:
-- Transfer items slots
UPDATE items
SET slot = CASE
    WHEN slot = 0 THEN 0  -- PAPERDOLL_UNDER
    WHEN slot = 6 THEN 1  -- PAPERDOLL_HEAD
    WHEN slot = 15 THEN 2 -- PAPERDOLL_HAIR
    WHEN slot = 16 THEN 3 -- PAPERDOLL_DHAIR
    WHEN slot = 3 THEN 4  -- PAPERDOLL_NECK
    WHEN slot = 7 THEN 5  -- PAPERDOLL_RHAND
    WHEN slot = 10 THEN 6 -- PAPERDOLL_CHEST
    WHEN slot = 8 THEN 7  -- PAPERDOLL_LHAND
    WHEN slot = 1 THEN 8  -- PAPERDOLL_REAR
    WHEN slot = 2 THEN 9  -- PAPERDOLL_LEAR
    WHEN slot = 9 THEN 10 -- PAPERDOLL_GLOVES
    WHEN slot = 11 THEN 11 -- PAPERDOLL_LEGS
    WHEN slot = 12 THEN 12 -- PAPERDOLL_FEET
    WHEN slot = 4 THEN 13 -- PAPERDOLL_RFINGER
    WHEN slot = 5 THEN 14 -- PAPERDOLL_LFINGER
    ELSE slot 
END;
-- Add base_class_id for characters
ALTER TABLE `characters` ADD COLUMN `base_class_id` INT(11) NOT NULL DEFAULT '0' AFTER `fame`;
UPDATE characters c
JOIN character_subclasses cs ON c.obj_id = cs.char_obj_id
SET c.base_class_id = 0
WHERE cs.isBase = 1 AND (cs.class_id = 0 OR cs.class_id = 1 OR cs.class_id = 2 OR cs.class_id = 88 OR cs.class_id = 3 OR cs.class_id = 89 OR cs.class_id = 4 OR cs.class_id = 5 OR cs.class_id = 90 OR cs.class_id = 6 OR cs.class_id = 91 OR cs.class_id = 7 OR cs.class_id = 8 OR cs.class_id = 93 OR cs.class_id = 9 OR cs.class_id = 92);

UPDATE characters c
JOIN character_subclasses cs ON c.obj_id = cs.char_obj_id
SET c.base_class_id = 10
WHERE cs.isBase = 1 AND (cs.class_id = 10 OR cs.class_id = 11 OR cs.class_id = 12 OR cs.class_id = 94 OR cs.class_id = 13 OR cs.class_id = 95 OR cs.class_id = 14 OR cs.class_id = 96 OR cs.class_id = 15 OR cs.class_id = 16 OR cs.class_id = 97 OR cs.class_id = 17 OR cs.class_id = 98);

UPDATE characters c
JOIN character_subclasses cs ON c.obj_id = cs.char_obj_id
SET c.base_class_id = 18
WHERE cs.isBase = 1 AND (cs.class_id = 18 OR cs.class_id = 19 OR cs.class_id = 20 OR cs.class_id = 99 OR cs.class_id = 21 OR cs.class_id = 100 OR cs.class_id = 22 OR cs.class_id = 23 OR cs.class_id = 101 OR cs.class_id = 24 OR cs.class_id = 102);

UPDATE characters c
JOIN character_subclasses cs ON c.obj_id = cs.char_obj_id
SET c.base_class_id = 25
WHERE cs.isBase = 1 AND (cs.class_id = 25 OR cs.class_id = 26 OR cs.class_id = 27 OR cs.class_id = 103 OR cs.class_id = 28 OR cs.class_id = 104 OR cs.class_id = 29 OR cs.class_id = 30 OR cs.class_id = 105);

UPDATE characters c
JOIN character_subclasses cs ON c.obj_id = cs.char_obj_id
SET c.base_class_id = 31
WHERE cs.isBase = 1 AND (cs.class_id = 31 OR cs.class_id = 32 OR cs.class_id = 33 OR cs.class_id = 106 OR cs.class_id = 34 OR cs.class_id = 107 OR cs.class_id = 35 OR cs.class_id = 36 OR cs.class_id = 108 OR cs.class_id = 37 OR cs.class_id = 109);

UPDATE characters c
JOIN character_subclasses cs ON c.obj_id = cs.char_obj_id
SET c.base_class_id = 38
WHERE cs.isBase = 1 AND (cs.class_id = 38 OR cs.class_id = 39 OR cs.class_id = 40 OR cs.class_id = 110 OR cs.class_id = 41 OR cs.class_id = 111 OR cs.class_id = 42 OR cs.class_id = 43 OR cs.class_id = 112);

UPDATE characters c
JOIN character_subclasses cs ON c.obj_id = cs.char_obj_id
SET c.base_class_id = 44
WHERE cs.isBase = 1 AND (cs.class_id = 44 OR cs.class_id = 45 OR cs.class_id = 46 OR cs.class_id = 113 OR cs.class_id = 47 OR cs.class_id = 48 OR cs.class_id = 114);

UPDATE characters c
JOIN character_subclasses cs ON c.obj_id = cs.char_obj_id
SET c.base_class_id = 49
WHERE cs.isBase = 1 AND (cs.class_id = 49 OR cs.class_id = 50 OR cs.class_id = 51 OR cs.class_id = 115 OR cs.class_id = 52 OR cs.class_id = 116);

UPDATE characters c
JOIN character_subclasses cs ON c.obj_id = cs.char_obj_id
SET c.base_class_id = 53
WHERE cs.isBase = 1 AND (cs.class_id = 53 OR cs.class_id = 54 OR cs.class_id = 55 OR cs.class_id = 117 OR cs.class_id = 56 OR cs.class_id = 57 OR cs.class_id = 118);
 
Last edited:
Добавляет столб в characters:
Code:
ALTER TABLE characters ADD COLUMN raidBossPoints INT DEFAULT 0 AFTER pcBangPoints;
 
Back
Top