Жумарин 212 Опубликовано: 5 августа 2014 Рассказать Опубликовано: 5 августа 2014 Сколько времени убил ? Неделю точно. Но в разные время разные его части писались. И дело забивалось не раз из-за занятости. Тут просто нигде информации не было по структуре. Особенно строк. Там длина упорото заэнкожена + по ней определяется - UCS-2LE или CP1251. Пришлось методом тыка. Например: (можно было бы укоротить, но пофиг) public function readASCF() { if (!isset($this->data[$this->offset + 1])) throw new Exception("Can't read ASCF! Unexpected EOF at ".($this->offset + 1)); $a = ord($this->data[$this->offset]); $b = ord($this->data[$this->offset + 1]); if ($a > 0x80 && $a < 0xC0) { $len = $a & ~0x80; $start = $this->offset + 1; if ($start + $len * 2 + 1 >= strlen($this->data)) throw new Exception("Can't read ASCF! Unexpected EOF at ".$start); $this->offset += 1 + $len * 2; return @iconv("UCS-2LE", "UTF-8", substr($this->data, $start, $len * 2)); } else if ($a >= 0xC0 && $a <= 0xFF) { $n = ($b - ($b % 2)) / 2; $len = (($a & ~($b % 2 == 0 ? 0xC0 : 0x80)) + ($n * 0x80)); $start = $this->offset + 2; if ($start + $len * 2 + 2 >= strlen($this->data)) throw new Exception("Can't read ASCF! Unexpected EOF at ".$start); $this->offset += 2 + $len * 2; return @iconv("UCS-2LE", "UTF-8", substr($this->data, $start, $len * 2)); } else if ($a < 0x40) { if (!$this->offset + 1 + $a >= strlen($this->data)) throw new Exception("Can't read ASCF! Unexpected EOF at ".($this->offset + 1)); $data = substr($this->data, $this->offset + 1, $a); $this->offset += 1 + $a; to_encoding($data, "UTF-8"); return $data; } else if ($a >= 0x40) { $n = ($b - ($b % 2)) / 2; $len = (($a & ~($b % 2 == 0 ? 0xC0 : 0x80)) + ($n * 0x80)); if (!$this->offset + 2 + $len >= strlen($this->data)) throw new Exception("Can't read ASCF! Unexpected EOF at ".($this->offset + 2)); $data = substr($this->data, $this->offset + 2, $len); $this->offset += 2 + $len; to_encoding($data, "UTF-8"); return $data; } } Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Жумарин 212 Опубликовано: 5 августа 2014 Рассказать Опубликовано: 5 августа 2014 Все зависит от сервера и от того, какие сообщения он вызывает. Го патчить сервер. Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
АнальныйБарон 678 Опубликовано: 5 августа 2014 Рассказать Опубликовано: 5 августа 2014 Неделю точно. Но в разные время разные его части писались. И дело забивалось не раз из-за занятости. Тут просто нигде информации не было по структуре. Особенно строк. Там длина упорото заэнкожена + по ней определяется - UCS-2LE или CP1251. Пришлось методом тыка. Например: (можно было бы укоротить, но пофиг) public function readASCF() { if (!isset($this->data[$this->offset + 1])) throw new Exception("Can't read ASCF! Unexpected EOF at ".($this->offset + 1)); $a = ord($this->data[$this->offset]); $b = ord($this->data[$this->offset + 1]); if ($a > 0x80 && $a < 0xC0) { $len = $a & ~0x80; $start = $this->offset + 1; if ($start + $len * 2 + 1 >= strlen($this->data)) throw new Exception("Can't read ASCF! Unexpected EOF at ".$start); $this->offset += 1 + $len * 2; return @iconv("UCS-2LE", "UTF-8", substr($this->data, $start, $len * 2)); } else if ($a >= 0xC0 && $a <= 0xFF) { $n = ($b - ($b % 2)) / 2; $len = (($a & ~($b % 2 == 0 ? 0xC0 : 0x80)) + ($n * 0x80)); $start = $this->offset + 2; if ($start + $len * 2 + 2 >= strlen($this->data)) throw new Exception("Can't read ASCF! Unexpected EOF at ".$start); $this->offset += 2 + $len * 2; return @iconv("UCS-2LE", "UTF-8", substr($this->data, $start, $len * 2)); } else if ($a < 0x40) { if (!$this->offset + 1 + $a >= strlen($this->data)) throw new Exception("Can't read ASCF! Unexpected EOF at ".($this->offset + 1)); $data = substr($this->data, $this->offset + 1, $a); $this->offset += 1 + $a; to_encoding($data, "UTF-8"); return $data; } else if ($a >= 0x40) { $n = ($b - ($b % 2)) / 2; $len = (($a & ~($b % 2 == 0 ? 0xC0 : 0x80)) + ($n * 0x80)); if (!$this->offset + 2 + $len >= strlen($this->data)) throw new Exception("Can't read ASCF! Unexpected EOF at ".($this->offset + 2)); $data = substr($this->data, $this->offset + 2, $len); $this->offset += 2 + $len; to_encoding($data, "UTF-8"); return $data; } } Только спусты 2 минуты осознал, что это пыха, мои глаза. С style. Вообще вот каноничный пых: https://github.com/yiisoft/yii2/blob/master/framework/rbac/DbManager.php А вообще полезная штука, плюс. Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Жумарин 212 Опубликовано: 5 августа 2014 Рассказать Опубликовано: 5 августа 2014 Только спусты 2 минуты осознал, что это пыха, мои глаза. С style. Вообще вот каноничный пых: https://github.com/yiisoft/yii2/blob/master/framework/rbac/DbManager.php А вообще полезная штука, плюс. Ну это норм. Кстати у меня огромная часть кода написана на C++. В виде модулей php. Всякие прослойки к libmysql и препроцессоры текста. // Какой ужас. ORM головного мозга. /* Да эти все php-фреймворки такое УГ откровенное. Тупо ниодного нет нормально. Ну кроме cphalcon. Он привлёк немного. Недавно по работе пытались заставить юзать фреймворк. Это было главное условие. Написал свой. */ Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
YesMyLord 2 Опубликовано: 8 августа 2014 Рассказать Опубликовано: 8 августа 2014 Можно подробнее, какую именно анимацию и каких именно скилов? вот когда я юзаю на другом серваке промик или ауру анимация скилла остается после юза гдето на 2-3 сек. без просвета и тд. как мне на Аверие сделать такое? Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Lorn 1 Опубликовано: 8 августа 2014 Автор Рассказать Опубликовано: 8 августа 2014 вот когда я юзаю на другом серваке промик или ауру анимация скилла остается после юза гдето на 2-3 сек. без просвета и тд. как мне на Аверие сделать такое? Хроники тоже High Five? Можно получить файл skillgrp.dat из папки system с этого "другого" сервера? И если не сложно еще systemmsg-ru.dat, заметил кое-что интересное в нем. Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
YesMyLord 2 Опубликовано: 8 августа 2014 Рассказать Опубликовано: 8 августа 2014 Хроники тоже High Five? Можно получить файл skillgrp.dat из папки system с этого "другого" сервера? И если не сложно еще systemmsg-ru.dat, заметил кое-что интересное в нем. да, HF. вот skillgrp http://rghost.net/57365973 вот systemmsg-ru http://rghost.net/57365976 Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Lorn 1 Опубликовано: 8 августа 2014 Автор Рассказать Опубликовано: 8 августа 2014 да, HF. вот skillgrp http://rghost.net/57365973 вот systemmsg-ru http://rghost.net/57365976 Время анимации в данной ситуации зависит от настроек сервера. Стандартное время везде одинаковое, это я выяснил, сравнив Ваш skillgrp с нашим. А уже зависимость этого времени от скорости каста настраивает сам сервер. Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
YesMyLord 2 Опубликовано: 8 августа 2014 Рассказать Опубликовано: 8 августа 2014 Время анимации в данной ситуации зависит от настроек сервера. Стандартное время везде одинаковое, это я выяснил, сравнив Ваш skillgrp с нашим. А уже зависимость этого времени от скорости каста настраивает сам сервер. а на Аверии не смогу время анимации изменить? Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Lorn 1 Опубликовано: 8 августа 2014 Автор Рассказать Опубликовано: 8 августа 2014 а на Аверии не смогу время анимации изменить? Необходимо будет менять настройки сервера. А этого никто делать не будет. YesMyLord 1 Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
YesMyLord 2 Опубликовано: 8 августа 2014 Рассказать Опубликовано: 8 августа 2014 http://l2.zhumarin.ru/sme/? // Мимопропиарил. :D о спасибо норм штука)) Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Жумарин 212 Опубликовано: 8 августа 2014 Рассказать Опубликовано: 8 августа 2014 о спасибо норм штука)) ^^ Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
guronzxc 0 Опубликовано: 23 августа 2014 Рассказать Опубликовано: 23 августа 2014 Доброго времени суток, не знаю куда обратиться, думаю что сюда. Нельзя ли как нибудь сделать, чтобы где-нибудь справа экрана либо еще где (кроме чата) выскакивала надпись о прохождении скилла либо дебафа?? Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Lorn 1 Опубликовано: 23 августа 2014 Автор Рассказать Опубликовано: 23 августа 2014 Доброго времени суток, не знаю куда обратиться, думаю что сюда. Нельзя ли как нибудь сделать, чтобы где-нибудь справа экрана либо еще где (кроме чата) выскакивала надпись о прохождении скилла либо дебафа?? На нашем сервере невозможно вывести сообщение об удачном прохождении скила. Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Weron 176 Опубликовано: 2 сентября 2014 Рассказать Опубликовано: 2 сентября 2014 Как можно сделать другой шрифт букв в л2? видел в мувиках скорна и в теме простокваши про различные модификации клиента но так и не видел файл про шифт Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.