предлагаешь не пропускать, а пытаться раскодировать байты, которые встречаются на пути цикла? Именно. решил сделать как ты сказал, получил любопытный результат, однако на 144 все так же ломанный парсинг: 1.4.4 листинг: [IMG] 151 листинг: [IMG] ну и сам скрипт парсинга: <? function cuint($data) { if($data < 64) return strrev(pack("C", $data)); else if($data < 16384) return strrev(pack("S", ($data | 0x8000))); else if($data < 536870912) return strrev(pack("I", ($data | 0xC0000000))); return strrev(pack("c", -32) . pack("i", $data)); } $bdname = 'factioninfo'; $bdlen = pack("n*", strlen($bdname)+32768); $data = pack('N', -1) . $bdlen . $bdname . "\x00\x00\x00\x00"; $Socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); $Data = cuint(3055).cuint(strlen($data)).$data; if(socket_connect($Socket,"127.0.0.1","29400")) { socket_set_block($Socket); $send = socket_send($Socket,$Data,8192,0); $recv = socket_recv($Socket,$buf,8192,0); socket_set_nonblock($Socket); socket_close($Socket); } echo "Версия сервера 1.4.4(60)<br><br>"; $var = "Запрос: ".bin2hex($Data)."<br>-<br>"; $var2 = "Ответ: ".bin2hex($buf)."<br>-<br>"; echo $var.$var2."<hr>"; echo "Попытка разобрать пакет с ответом: <hr>"; $strlarge = unpack( "H", substr( $buf, 2, 1 ) ); if(substr($strlarge[1], 0, 1) == "8") { $start = 13; } else { $start = 12; } $clancount = unpack( "c", substr( $buf, $start, 1 ) ); $start = $start+7; //точка отсчета и пропускаем 7 байтов (пока не понял для чего они) for($c=0; $i<$clancount[1]; $i++) { $clanid = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+4; $namelarge = unpack( "c*", substr( $buf, $start, 4 ) ); $start = $start+1; $clanname = iconv( "UTF-16", "UTF-8", substr( $buf, $start, $namelarge[1] ) ); $start = $start+$namelarge[1]; $clan2 = unpack( "C*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan3 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan4 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan5 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan6 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan7 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan8 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan9 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan10 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan11 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan12 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan13 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $namelarge2 = unpack( "c*", substr( $buf, $start, 4 ) ); $start = $start+1; $news = iconv( "UTF-16", "UTF-8", substr( $buf, $start, $namelarge2[1] ) ); $start = $start+$namelarge2[1]+1; $clan14 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan15 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan16 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan17 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan18 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan19 = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+1; $clan_list .="<font color='red'>[ {$clanid[1]} ] {$clanname} | {$clan2[1]} | {$clan3[1]} | {$clan4[1]} | {$clan5[1]} | {$clan6[1]} | {$clan7[1]} | {$clan8[1]} | {$clan9[1]} | {$clan10[1]} | {$clan11[1]} | {$clan12[1]} | {$clan13[1]} | {$news} | {$clan14[1]} | {$clan15[1]} | {$clan16[1]} | {$clan17[1]} | {$clan18[1]} | {$clan19[1]}</font><hr>"; } echo $clan_list; ?> вроде почти каждый байт декодировал (кроме 7 байтов до цикла), но на 144 все равно ломается парсинг данных. Как говорил alexdnepro, сначала нужно написать класс для удобной работы с пакетами, а потом уже разбирать пакеты или писать их по структуре.
А ты после того как начал гонять эту команду через пхп проверял потом в консоли? После 3-5 выводов база частенько "запирается" и перестает выдавать ответ на подобные запросы. Ну или попробуй вариант через екзек exec("cd /home/gamedbd && ./gamedbd gamesys.conf listfaction", $arr); Если бы вы читали все мои посты, то наверняка бы увидели бы, что я уже писал, что в консоли проверял и все работает, только в браузере не пашет и выдает ошибку 134. --- добавлено: 15 фев 2015 в 07:14 --- А если так? echo passthru("/pwserver/gamedbd/ /pwserver/gamedbd/gamesys.conf listfaction"); запрос у тебя немного неверный, сам то проверял? Но суть не в этом, а в другом, перечитай все мои посты и увидишь, что я уже и подобный запрос юзал /pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction как всегда, в консоли прекрасно пашет, из скрипта в браузере ошибка 134... хз что за ошибка...chmod 777 -R /home/gamedbd/
А если так? echo passthru("/pwserver/gamedbd/ /pwserver/gamedbd/gamesys.conf listfaction");
ты мне в ядре дыру сделал Как же мне нравится эта фраза. Человек без знаний программирования умеет делать дырки в компилированном сервисе. В обще-то знаю не много по ядру, ну дыру сделал криво, я думал у него дебаг только по паролю, а у него он и ГМ ещё привязан, причём я же и привязывал =(( Это и есть вся "дырка"? Я думал там через запущенное ядро можно получить удалённое управление :D
ты мне в ядре дыру сделал Как же мне нравится эта фраза. Человек без знаний программирования умеет делать дырки в компилированном сервисе.
The system is unable to find the requested action "index". Такое выводит, если api настроено верно. Теперь остаётся установить клиент-часть и пользоваться.
Можно реализовать как и сторонним софтом, так и через elementclient.exe.
-v55 не открывает И правильно что не открывает. В этой версии структура уж очень хреновая. Под v55 даже отдельный редактор написал Ronny
108 не грузит. Скинь в лс этот tasks.data
[ATTACH]
Итак! Всем привет! Представляю вашего вниманию мощнейший инструмент для доведения женщин до тройного оргазма с функцией трёхмерной эмуляции расчленения ядра до базонов Хикса, который так же немного умеет управлять сервером. :D
при чём тут шоп. неверное правило конвертации у тебя при том, что такой экспешн вылазит если шоп не может обработать какой-либо предмет. °Ù±ŠžóÖÐÎïÆ·12770(1žö)³¬¹ýÁ˶ѵþÉÏÏÞ0
предмет с ID 12770 в шопе удали.
WM тоже принимаю, но не желательно. Всегда считал вебмани самым лучшим вариантом интернет расчетов, странно, чем она вам не угодила... ТС, видимо, ленится получить аттестаты.
Подскажите пожалуйста, в редакторе используются сокращения языков перевода (en-ru), не могу найти, китай-русский, или китай-анг., кто знает? ar — Арабский az — Азербайджанский be — Белорусский bg — Болгарский bs — Боснийский ca — Каталанский cs — Чешский da — Датский de — Немецкий el — Греческий en — Английский es — Испанский et — Эстонский fi — Финский fr — Французский he — Иврит hr — Хорватский hu — Венгерский hy — Армянский id — Индонезийский is — Исландский it — Итальянский ka — Грузинский lt — Литовский lv — Латышский mk — Македонский ms — Малайский mt — Мальтийский nl — Голландский no — Норвежский pl — Польский pt — Португальский ro — Румынский ru — Русский sk — Словацкий sl — Словенский sq — Албанский sr — Сербский sv — Шведский th — Тайский tr — Турецкий uk — Украинский vi — Вьетнамский zh — Китайский
Ну исходя их комментариев, предполагаю, что вроде как эта хрень всё таки нужна, а значит берусь за разработку. Реализую следующий функционал, по дополнительному буду смотреть в процессе: Управление аккаунтами (создание, удаление, управление правами, смена пароля) Запуск и остановка сервера Чистка кеша и отслеживание состояния памяти сервера Отправка вкусностей (голды/предметы) Возможно: Отображение списка запущенных локаций запуск и остановка оных Как допишу, забубеню отдельную тему для тестирования, так как у меня сервера нет и ставить не буду, буду работать исключительно с базой и линухом, так что будем посмотреть что и как. Какой яп? Программа клиент-сервер или только клиент?
Под яблоки не пишу. Вот это радует.
maxcount = 50000 Общая награда. maxcountofspecial = 999 Кол-во в ячейке. вроде-бы. количества больше, чем в ячейке -> сервер не встанет.
Тему под снос! Пусть уже будет.
Зрасте скажите - я хочу сменить тарифный план на "Круиз - экстра" через личный кабинет, после этого я смогу перейти к примеру через месяц - два на "Круиз - пять звёзд" ? Вы попали не в тот личный кабинет.
Имена участников (разделяйте запятой).