1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. DIABLO
  2. DIABLO
  3. DIABLO
  4. DIABLO
    [media] AI + TASK + NPCGEN
    Сообщение от: DIABLO, 8 дек 2015 в разделе: PW Вопросник
  5. DIABLO
  6. DIABLO
  7. DIABLO
  8. DIABLO
    Для тех у кого проблемы с установкой Mono на Debian. Со стандартных рипозиторий устанавливается старая версия mono без поддержки NET4. 1. Прописать в список репозиториев не только экспереминтальный, но и стабильный. deb http://ftp.us.debian.org/debian experimental main contrib non-free deb http://ftp.us.debian.org/debian stable main contrib non-free 2. Обновить список пакетов и обновить все пакеты apt-get update apt-get upgrade - Обновление всех установленных пакетов(я пропустил этот шаг) 3. Начать установку из экспериментального репозитория это без указания версии: apt-get -t experimental install -f mono-complete это с указанием версии: apt-get -t experimental install -f mono-complete=3.2.3+dfsg-7 Источник: http://www.cyberforum.ru/debian-gnu-linux/thread988564.html Список версий: http://www.mono-project.com/docs/about-mono/releases/ Поддержка 4.0 начиная с версии Mono 2.8, По умолчанию Debian ставит 2.6.7. Можно собрать самому, исходники: http://download.mono-project.com/sources/mono/ Мне помогло.
    Сообщение от: DIABLO, 21 ноя 2014 в разделе: PW Разработки
  9. DIABLO
  10. DIABLO
  11. DIABLO
  12. DIABLO
  13. DIABLO
  14. DIABLO
  15. DIABLO
  16. DIABLO
  17. DIABLO
  18. DIABLO
    echo 'ecount:'.$equipment['ecount'].'</br>'; for($i=0;$i<$equipment['ecount'];$i++) { $equipment['itemeqp'.$i] = unpack("Nid/Npos/Ncount/Nmax_count",substr($status,$p)); $p += 16; $equipment['itemeqp'.$i]['data'] = upoctet($status, $p); echo var_dump( $equipment['itemeqp'.$i]['data']);echo '</br>'; $equipment['itemeqp'.$i] += unpack("Nproctype/Nexpire_data/Nguid1/Nguid2/Nmask",substr($status,$p)); echo '===============================================================</br>'; $p += 20; } ecount:16 string(192) "6500ff039800000000000000d0840000d0840000240001000000000000000000000000001501000000000000000000000000000000000000000000000300000000000000000000000000000002000000e028000006000000e128000008000000" =============================================================== string(184) "6300ff030000000000000000df5c0000b45f0000240001001f000000000000002001000000000000000000000000000000000000000000000000000000000000030000006b210000020000006421000001000000f32300001f000000" =============================================================== string(248) "6500ff030000000000000000d08400007094000024000100000000004a0100000000000000000000fa000000fa000000fa000000fa000000fa00000002000000000000000000000006000000ce2500000d000000e02800000900000032210000fa000000c22a000001000000b4270000cdcccc3dfe28000004000000" =============================================================== string(208) "6500ff03fc00000036000000c8af0000c8af00002400010029060000000000000000000000000000a4020000a4020000a4020000a4020000a40200000300000000000000000000000000000003000000e028000006000000e8270000010000002b2b00000a000000" =============================================================== string(184) "6300ff0300000000000000002a5d0000b45f000024000100000000000000000020010000000000000000000000000000000000000000000000000000000000000300000064210000010000009725000008000000a425000005000000" =============================================================== string(216) "6500ff03fc00000036000000709400007094000024000100630500000000000000000000000000004f0200004f0200004f0200004f0200004f020000040000000000000000000000000000000000000003000000e128000008000000e028000008000000292b000008000000" =============================================================== string(64) "c20100008403000032000400180000000c000000000020400000904001000000" =============================================================== string(0) "" =============================================================== string(16) "edf401000000003f" =============================================================== Warning: unpack(): Type N: not enough input, need 4, have 2 in /var/www/dev/role.php on line 403 string(0) "" Warning: unpack(): Type N: not enough input, need 4, have 0 in /var/www/dev/role.php on line 411 Fatal error: Unsupported operand types in /var/www/dev/role.php on line 411 --- добавлено: 15 сен 2014 в 20:03 --- Ну понятно, читай тогда длину октета не байтом, а куинтм. Полный алгоритм описывать не буду — длина октета пух обычно не такая огромная, и хватит первого. Читаешь первый байт и смотришь. Если он больше или равен 80h, то читаешь как одно машинное слово в LE. На C# это будет выглядеть примерно так switch (buf[0] & 0xE0) { case 0x80: return (uint)(BitConverter.ToUInt16(new byte[] { buf[1], buf[0] }, 0) & 0x3FFF); } return (uint)code; Под php это будет что-то на основе pack/unpack Проблема в том что он еще ругается на строчку $equipment['itemeqp'.$i] = unpack("Nid/Npos/Ncount/Nmax_count",substr($status,$p)); Warning: unpack(): Type N: not enough input, need 4, have 2 in /var/www/dev/role.php on line 403 string(0) ""
    Сообщение от: DIABLO, 15 сен 2014 в разделе: PW Вопросник
  19. DIABLO
  20. DIABLO
    Имеем структуру пакета struct GRoleData { GRoleBase base; GRoleStatus status; GRolePocket pocket; GRoleEquipment equipment; GRoleStorehouse storehouse; GRoleTask task; } Все выводит нормально пока не дошел до "GRoleEquipment", где она ссылается на GRoleInventory struct GRoleInventory { unsigned int id; int pos; int count; int max_count; Octets data; int proctype; int expire_date; int guid1; int guid2; int mask; } ecount:20 (Кол-во одетых вещей) array(4) { ["id"]=> int(33511) ["pos"]=> int(1) ["count"]=> int(1) ["max_count"]=> int(1) } =============================================================== array(4) { ["id"]=> int(15004) ["pos"]=> int(2) ["count"]=> int(1) ["max_count"]=> int(1) } =============================================================== array(4) { ["id"]=> int(50283) ["pos"]=> int(3) ["count"]=> int(1) ["max_count"]=> int(1) } =============================================================== array(4) { ["id"]=> int(33505) ["pos"]=> int(4) ["count"]=> int(1) ["max_count"]=> int(1) } =============================================================== array(4) { ["id"]=> int(15016) ["pos"]=> int(5) ["count"]=> int(1) ["max_count"]=> int(1) } =============================================================== array(4) { ["id"]=> int(33502) ["pos"]=> int(6) ["count"]=> int(1) ["max_count"]=> int(1) } =============================================================== array(4) { ["id"]=> int(33508) ["pos"]=> int(7) ["count"]=> int(1) ["max_count"]=> int(1) } =============================================================== Warning: unpack(): Type N: not enough input, need 4, have 0 in /var/www/dev/role.php on line 403 bool(false) Warning: unpack(): Type N: not enough input, need 4, have 0 in /var/www/dev/role.php on line 410 Fatal error: Unsupported operand types in /var/www/dev/role.php on line 410 echo 'ecount:'.$equipment['ecount'].'</br>'; for($i=0;$i<$equipment['ecount'];$i++) { $equipment['itemeqp'.$i] = unpack("Nid/Npos/Ncount/Nmax_count",substr($status,$p)); echo var_dump($equipment['itemeqp'.$i]);echo '</br>'; $p += 16; $equipment['itemeqp'.$i]['data'] = upoctet($status, $p); #echo 'Oktet: '.$equipment['itemeqp'.$i]['data'].'</br>'; $equipment['itemeqp'.$i] += unpack("Nproctype/Nexpire_data/Nguid1/Nguid2/Nmask",substr($status,$p)); echo '===============================================================</br>'; $p += 20; }
    Автор темы: DIABLO, 15 сен 2014, ответов - 10, в разделе: PW Вопросник