DXVSI 36 Опубликовано 1 августа, 2013 Кто может пояснить как добавлять абнормалы в ядро!? И где их искать в клиенте! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 1 августа, 2013 (изменено) 1. ты даже сборку не сказал, но обычно абнормалы лежат в классе называющемся AbnormalEffect или типа того. 2. в клиенте в открытом виде они не лежат, а список содержится в одной из дллок, насколько я помню, но вот увы не помню в какой точно. Изменено 1 августа, 2013 пользователем Gaikotsu 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DXVSI 36 Опубликовано 1 августа, 2013 1. ты даже сборку не сказал, но обычно абнормалы лежат в классе называющемся AbnormalEffect или типа того. 2. в клиенте в открытом виде они не лежат, а список содержится в одной из дллок, насколько я помню, но вот увы не помню в какой точно. 1 я знаю, мне вот интересно как их доставать и перекручивать к ядру Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 1 августа, 2013 (изменено) а зачем доставать? их можно узнать банальным перебором ид абнормалов - отсылая их скажем в пакете с инфой о персонаже/нпс и смотря как это выглядит, благо ид у них идут последовательно. точнее до GoD Tauti не ид, а значения для битовых карт (в виде которых и слались клиенту наложенные на объект абнормалы), а уже дальше просто в виде обычных ид. ну а названия их конечно придется придумывать самому - смотря как абнормал выглядит. Изменено 1 августа, 2013 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DXVSI 36 Опубликовано 4 августа, 2013 а зачем доставать? их можно узнать банальным перебором ид абнормалов - отсылая их скажем в пакете с инфой о персонаже/нпс и смотря как это выглядит, благо ид у них идут последовательно. точнее до GoD Tauti не ид, а значения для битовых карт (в виде которых и слались клиенту наложенные на объект абнормалы), а уже дальше просто в виде обычных ид. ну а названия их конечно придется придумывать самому - смотря как абнормал выглядит. Ну вот к примеру в клиенте нашел как сделать в сервере? 73 a,d_tali_deco_c\0 a,FX_RHAND_01\0 1 0 0 0.00000000 1.00000000 74 a,d_tali_deco_d\0 a,FX_RHAND_01\0 1 0 0 0.00000000 1.00000000 75 a,d_tali_deco_e\0 a,FX_RHAND_01\0 1 0 0 0.00000000 1.00000000 76 a,d_tali_deco_f\0 a,FX_RHAND_01\0 1 0 0 0.00000000 1.00000000 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 августа, 2013 TALISMAN_POWER1("talismanpower1", 72, true, false), TALISMAN_POWER2("talismanpower2", 73, true, false), TALISMAN_POWER3("talismanpower3", 74, true, false), TALISMAN_POWER4("talismanpower4", 75, true, false), TALISMAN_POWER5("talismanpower5", 76, true, false), Кака вариант. В скобках зависит от того, какой метод используется для подключения абнормала. private AbnormalEffect(String name, int mask) { _name = name; _mask = mask; _special = false; _event = false; } private AbnormalEffect(String name, int mask, boolean special) { _name = name; _mask = mask; _special = special; _event = false; } private AbnormalEffect(String name, int mask, boolean special, boolean event) { _name = name; _mask = mask; _special = special; _event = event; } Ну или как там у вас сделано 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 4 августа, 2013 2 BrainEater: в глори/линдвиоре ж уже не нужно конкретизировать тип абнормала (я про special и event) - вполне достаточно просто ид. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 августа, 2013 2 Gaikotsu: Ну просто как бы структура была заготовленная, я ее и оставил. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DXVSI 36 Опубликовано 4 августа, 2013 тоесть вы имеете ввиду просто надо из клиента взять id и пихнуть в сервак??? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 4 августа, 2013 ну типа того. только учти что в AbnormalDefaultEffect перечислены всего несколько специальных абнормалов и все. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DXVSI 36 Опубликовано 4 августа, 2013 ну типа того. только учти что в AbnormalDefaultEffect перечислены всего несколько специальных абнормалов и все. Если ты имееш ввиду которые в клиенте это да я заметил их мало но всетаки спасибо за помошь! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bodyan2011 49 Опубликовано 4 августа, 2013 ну типа того. только учти что в AbnormalDefaultEffect перечислены всего несколько специальных абнормалов и все. Слушай, раз такое дело, не вспомнишь в каком файлике они, вподряд ли прописаны и чем открывать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 4 августа, 2013 (изменено) увы не помню, вроде бы когда-то, когда говорил на эту тему с Вампиром, он говорил что список абнормалов хранится в одной из дллок... давно это было... Изменено 4 августа, 2013 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DXVSI 36 Опубликовано 4 августа, 2013 Слушай, раз такое дело, не вспомнишь в каком файлике они, вподряд ли прописаны и чем открывать? AbnormalDefaultEffect.dat Лежит в папке system, ну как и говорил гайкотсу там их мало т.е не все! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 4 августа, 2013 Явно не все. Но с 78 по 82 меняют внешний вид шмоток, соответственно от нг до ы. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 5 августа, 2013 (изменено) ну там так-то на 82 не заканчивается по крайней мере я методом тыка выяснил что ид абнормалов, меняющих внешний вид брони или оружия идут аж до 95. CLOAK_AND_DIADEM("cloak_and_diadem", 77), // одевает диадему и черный плащ SHAPE_D("shape_d", 78), // меняет вид брони и оружия на D Grade SHAPE_C("shape_c", 79), // меняет вид брони и оружия на C Grade SHAPE_B("shape_b", 80), // меняет вид брони и оружия на B Grade SHAPE_A("shape_a", 81), // меняет вид брони и оружия на A Grade SHAPE_S("shape_s", 82), // меняет вид брони и оружия на S Grade SHAPE_BIKINI_A("shape_bikini_a", 83), // меняет вид брони на белый купальник SHAPE_BIKINI_B("shape_bikini_b", 84), // меняет вид брони на сине-белый купальник SHAPE_WEDDING("shape_wedding", 85), // меняет вид брони на свадебное платье SHAPE_NINJA("shape_ninja", 86), // меняет вид брони на одежду ниндзя SHAPE_TAIWAN("shape_taiwan", 87), // меняет вид брони на тайваньскую национальную одежду SHAPE_MILITARY("shape_military", 88), // меняет вид брони на военную форму SHAPE_METAL_SUIT("shape_metal_suit", 89), // меняет вид брони на металлический костюм SHAPE_MAID_UNIFORM("shape_maid_uniform", 90), // меняет вид брони на костюм горничной SHAPE_BIKINI_C("shape_bikini_c", 91), // меняет вид брони на бело-фиолетовый купальник SHAPE_LIGHT_WEAPON("shape_light_weapon", 94), // меняет вид оружия в руках на световое SHAPE_JAPAN_WEAPON("shape_japan_weapon", 95); // меняет вид оружия в руках на японское Изменено 5 августа, 2013 пользователем Gaikotsu 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nerosermax 0 Опубликовано 14 августа, 2013 (изменено) Можите мне подсказать? Все абнормалы имеют вид Пример VASPER_S("vasper_s", 0x0000800, 60) если в ядро добавить абнормал без переменой типа NxNNNNNNNN то ядро начинает ругаться благим матом. Чем это вызвано? Изменено 14 августа, 2013 пользователем nerosermax Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 14 августа, 2013 Это вызвано конструктором класса AbnormalEffect который имеет именно указанный формат. но вот это вот 0x0000800 имеет определенную закономерность(могу ошибаться, т.к. вывел сам) К примеру первый в списке идет 0x0000001, второй 0x0000002, третий 0x0000004, четвертый 0x0000008. А вот пятый уже имеет 0x0000010, шестой 0x0000020 и так далее, с каждой 4кой абнормалов число сдвигается ближе к "0x", и далее сначала. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 14 августа, 2013 (изменено) это называется битовой маской, если что, и задает, какой бит в переменной, хранящей абнормалы будет выставлен в 1 или 0. и эти значения являются степенями двойки, от 2^0 до 2^31. к примеру эти битовые операции зададут значение переменной _abnormal в котором третий и десятый биты равны 1. _abnormal = 0x00000004 | 0x00000200 именно таким образом до таути передавались наложенные абнормалы клиенту, в виде 3 32-битных переменных, выставленные биты в которых и указывали какой абнормал задействовать. таким образом несложно подсчитать, что максимальное количество абнормалов не могло быть больше 96. с таути же передаются просто порядковые ид абнормалов, без извращений с битовыми операциями и соотвественно битовая маска в описании абнормалов уже не нужна. Изменено 14 августа, 2013 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BrainEater 217 Опубликовано 14 августа, 2013 Я с этой битовой маской встретился только в исходниках ФТ/L2jEurope, посему даже не вникал, просто некий 'DXVSI' попросил ему талики вписать ^^ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 16 августа, 2013 ну в сервере подобное может встречаться и в других местах, например когда нерационально использовать для хранения данных несколько отдельных переменных (т.к. к примеру это вызовет необходимость заводить в таблице бд отдельные поля для каждой переменной). а переменные при этом булевые, т.е. только со значением 1 или 0. так навскидку, по памяти, у меня подобные методы хранения используются для: флагов предметов (возможность выкинуть, снять/одеть, автоодевание при подборе и т.п.); при хранении информации, какие саб/дуал сертификаты уже получены; и еще в паре мелочей. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 4 апреля, 2016 Перенесено в архив Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты