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

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

  1. wsok
  2. wsok
    В общем многие знают один из старых проектов нонстоп-пв от Pr@ID, который потом закрылся и позже было несколько попыток по его реанимации (безуспешных). В настоящее время этот проект в вечной заморозке и базой игроков и его файлами теперь владею я, однако, к сожалению, пока нет возможности им заниматься, возможно кто то бы смог извлечь из него кое что полезное для себя. Что я хочу предложить? Ну в первую очередь базу игроков ( а это более 40к игроков). А это ведь тематическая аудитория потенциальных игроков Вашего сервера. Новый владелец базы сможет организовать рекламную рассылку своего сервера на емайлы этих игроков, ну или использовать эту базу для своего проекта, что уже будет выглядеть так, что на вашем проекте зарегистрировано более 40к игроков. В общем, жду предложений цен на базу игроков старого нонстопа. Либо, изучу спрос базы игроков+базы персонажей и самой серверной сборки NoNStoP-PW 1.4.4. PS: Не путать с продажей, это пока просто изучение спроса, потому тема в оффтопе, если будет понятно, что предложение получит отклик и будут желающие купить, то будет оформлена соответствующая тема.
    Автор темы: wsok, 23 дек 2015, ответов - 16, в разделе: Оффтоп
  3. wsok
  4. wsok
    Для теста нацарапал такую функцию, include_once('configure.php'); include_once('includes/fnc.pocket.php'); function test($value) { global $configure; $data = GetRoleBase($value); //получаем данные $data['role']['base']['reserved3'] = "1111"; //присваиваем переменной новое значение PutRoleBase($value, $data); //сохраняем изменения $result = GetRoleBase($value); //получаем данные чтоб увидеть результат return $result['role']['base']['reserved3']; //выводим значение сохраненой переменной } echo test(32); GetRoleBase я уже проверил, она корректно выдает данные, но вот с запросом сохранения непорядок... Переменной $data['role']['base']['reserved3'] присваиваю новое значение и пытаюсь сохранить. Но на выходе получаю опять значение 0, т.е. пакет записи изменений не отрабатывает. Структуру и опкод вроде использую корректно, но в чем то косяк... вот привожу код функции PutRoleBase function PutRoleBase($roleid, $data) { global $configure; $PutRoleData = new WritePacket(); $PutRoleData->WriteUInt32(-1); $PutRoleData->WriteUInt32($roleid); $PutRoleData->WriteUByte(1); // overwrite $GRoleData = $data['role']; $PutRoleData->WriteUByte($GRoleData['base']['version']); $PutRoleData->WriteUInt32($GRoleData['base']['id']); $PutRoleData->WriteUString($GRoleData['base']['name']); $PutRoleData->WriteUInt32($GRoleData['base']['race']); $PutRoleData->WriteUInt32($GRoleData['base']['cls']); $PutRoleData->WriteUByte($GRoleData['base']['gender']); $PutRoleData->WriteOctets($GRoleData['base']['custom_data']); $PutRoleData->WriteOctets($GRoleData['base']['config_data']); $PutRoleData->WriteUInt32($GRoleData['base']['custom_stamp']); $PutRoleData->WriteUByte($GRoleData['base']['status']); $PutRoleData->WriteUInt32($GRoleData['base']['delete_time']); $PutRoleData->WriteUInt32($GRoleData['base']['create_time']); $PutRoleData->WriteUInt32($GRoleData['base']['lastlogin_time']); if (count($GRoleData['base']['forbid']) == 4 && isset($GRoleData['base']['forbid']['type'])) { $temp = $GRoleData['base']['forbid']; unset($GRoleData['base']['forbid']); $GRoleData['base']['forbid'][0] = $temp; } $PutRoleData->WriteCUInt32(count($GRoleData['base']['forbid'])); for ($i = 0; $i < count($GRoleData['base']['forbid']); $i++) { $PutRoleData->WriteUByte($GRoleData['base']['forbid'][$i]['type']); $PutRoleData->WriteUInt32($GRoleData['base']['forbid'][$i]['time']); $PutRoleData->WriteUInt32($GRoleData['base']['forbid'][$i]['createtime']); $PutRoleData->WriteUString($GRoleData['base']['forbid'][$i]['reason']); } $PutRoleData->WriteOctets($GRoleData['base']['help_states']); $PutRoleData->WriteUByte($GRoleData['base']['reserved1']); $PutRoleData->WriteUByte($GRoleData['base']['reserved2']); $PutRoleData->WriteUByte($GRoleData['base']['reserved3']); $PutRoleData->Pack(0xBC4); return $PutRoleData->Send("localhost", $configure['dbgame_port']); } где же собака порылась? --- добавлено: 2 дек 2015 в 12:42 --- напоминаю, структуру использую 1.3.6 версии
    Автор темы: wsok, 2 дек 2015, ответов - 8, в разделе: PW Вопросник
  5. wsok
  6. wsok
  7. wsok
  8. wsok
    В общем сабж в заголовке, требуется специалист-универсал, который умеет не просто клепать хорошие и современные дизайны, но и встраивать их в любой движок с сохранением структуры той CMS (блочность, расположение элементов в дизайне исходя из требования движка). Объект, с которым придется работать (встраивать в него шаблон, дизайн) это портальный движок MKPORTAL. категорию работ пока точно не могу озвучить, для начала требуется найти такого человека, но предположительно ему придется либо "натянуть" указанный шаблон на этот движок, либо разработать дизайн с нуля... либо доработать найденный шаблон дизайна и "натянуть" его на движок портала. В общем не вполне однозначно могу сказать, что конкретно надо сделать, так как пока в поиске нужно дизайн-решения для проекта. После того как найдется человек, то обсудим с ним дизайн, объем работы и оплату. писать в ЛС форума.
    Автор темы: wsok, 17 июл 2015, ответов - 1, в разделе: Ищу
  9. wsok
  10. wsok
  11. wsok
  12. wsok
  13. wsok
    Сразу говорю, редактирую редактором из шары. В общем решил создать для одной из локаций сервера подобие квестов на фаст заход за накидкой. За основу взял цепочку квестов от 79 фаст захода. Клонировал, заменил основные ид, начал разбираться с опциями квестов, пока не понял назначение некоторыхьопций из цепочки квестов фаст захода. Скриншоты ниже рамкой выделил то, что пока не понял для чего: тут как я понял некий итем, но для чего? опция даже не подписана. [IMG] опустимся чуть ниже непонятно, что за членов проверять, что за значения? [IMG] ну и непонятно ещё, как известно в процессе фата требуется убить нужное число мобов ну и боссов. но тут пусто [IMG] и ещё одна странная опция [IMG] да и вообще был бы рад увидеть от кого то мини гайд по устройству механики квестов фаст заходов, нужные опции и для чего. Заранее спасибо за помощь.
    Автор темы: wsok, 8 июн 2015, ответов - 12, в разделе: PW Вопросник
  14. wsok
  15. wsok
    В общем пытаюсь написать панель управления локациями, примерно как в айвеб, но используя PHP. Вся проблема в том, что при попытке запуска из веб панели, нужная служба или локация не поднимается, но если обратится к пхп скрипту из терминала с правами рута, то успешно поднимается. Я так понимаю все дело в правах, а точнее, что www-data юзер не может получить полномочии по запуску. Решил погуглить, но там все сводится к тому, что либо апач нужно разрешить по рут пользователем либо пользователю www-data выдать рут полномочии, но оба эти момента по сути вполне приличная уязвимость. Среди альтернативы ещё предлагают использовать некий демон, который был бы запущен под рутом и мог принимать через сокет от вебскрипта команды и уже транслировать их в терминал... Разве нет прочих альтернатив, чтоб из веб скрипта запустить службу, без вмешательства в манипуляции прав и полномочий или использование демона?
    Автор темы: wsok, 29 май 2015, ответов - 15, в разделе: Программирование
  16. wsok
    В общем, не думал я, что могу столкнутся с этим косяком, вроде бы уже и с закрытыми глазами уже могу ставить сборки серверов, все инструкции уже знаю практически наизусть, но тут... В общем ближе к делу, попалась мне очередная машинка с дебианом 7 64 бит на борту, сделал все как обычно, взял PW сборку (1.4.4), залил, что нужно сделал, в том числе нужные библиотеки поставил (яву, 32-битные либы для 64-битной оси и т.д.) В общем все до формализма знакомо повторил уже который раз и запустил... Процесс запуска шел как по маслу, не единой ошибки, подошла очередь подъема мира, я уже было расслабился, думая, мол вот, заработало... но... запуск мира выдал забавный сюрприз, ссылка на скриншот ниже http://joxi.ru/L21LJlOc0b1jmX странно да? все сервисы стартовали без ошибок, а мир выдал такую ерунду. Раз наверное 100, хотя нет 101 проверил все конфиги, ip адреса, логин и пароль к базе (хотя какой резон их проверять, если даже глинк и деливери не выдали ошибок) все норм, стал грешить на игровую базу, вайпнул к черту, т.е. удалил все файлы игровой базы и юникмнейма... Запустил, и... Все опять как по маслу, а на подьёме мира опять знакомые ошибки... Что то не так, но что? Уже мозг сломал почти... Уже и гс ядро запускал с выводом в лог, но там ничего конкретного, в конце лога перевел иероглифы на русский, там мол ругается на некую ошибку с кодом -4. В общем, есть у кого какие идеи, что это миру не нравится?
    Автор темы: wsok, 15 май 2015, ответов - 16, в разделе: PW Вопросник
  17. wsok
    В общем реализовав многие функции ЛК, теперь приблизился к возможности учета голосов на ммтопе, но для этого нужна следующая информация: 1. листинг файла статистики (его пример или ссылка на него) 2. что означает каждое из значений в его записи. 3. порядок обработки информации (интервал обновления этого файла статистики на ммтопе и прочая информация связанная с генерацией статистики). Увы я не клиент ммтопа и не имею "боевых" игровых серверов, поэтому регистрация там исключена, да и сама модерация на ммтопе просто может не пропустить если добавлю тестовый проект. Потому мне просто нужна информация по статистике, что я указал выше, остальное (методы, парсинг и т.д. по обработке файла статистики) уже реализовать сам попробую. Заранее спасибо за информацию.
    Автор темы: wsok, 24 мар 2015, ответов - 19, в разделе: PW Вопросник
  18. wsok
  19. wsok
    пробую понять, как работать с хекс данными игровой базы на примере списка кланов... Имею две машины, на одной сборка 1.4.4 на второй 1.5.1, скрипт в котором пытаюсь разбирать данные один и тот же: <? 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.5.1(101)<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+11; //точка отсчета и пропускаем 11 байтов (пока не понял для чего они) $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]; $start = $start+7; //точка отсчета и пропускаем 7 байтов (пока не понял для чего они) $clan_list .="<font color='red'>[ {$clanid[1]} ] {$clanname} {$clan2[1]} {$clan3[1]} {$news}</font><hr>"; } echo $clan_list; ?> в общем, испытав его на 1.5.1, немного обрадовался, так как получил листинг кланов: [IMG] но, разочаровался, когда запустил его на 1.4.4: [IMG] Как видно, только первую запись скрипт декодировал нормально, остальные записи увы нет... И ещё для информации, на обоих серверах по 6 кланов, однако на 1.5.1 было 2 клана, я довел их количество до 6, после создания каждого клана проверял листинг в скрипте, он показывал корректно 3, 4, 5 и 6 кланов. До этого я полагал, что причина ошибки в 1.4.4 из за того, что там 6 кланов и дело в длине пакета, оказалось, что видимо это не так, ведь на 1.5.1 сейчас тоже 6 кланов и они отображаются в скрипте нормально. Так что я порядком уже запутался, в чем же дело?
    Автор темы: wsok, 15 фев 2015, ответов - 30, в разделе: PW Вопросник
  20. wsok
    Памятуя старую темку от Ботчала - решил немного поиграть с пхп функцией passthru. В качестве команды использую: /pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction Когда выполнил в консоли сервера, то как и ожидалось получил список, чтож, хорошо, значит все норм, ошибок нет, решил её выполнить в пхп: echo passthru("/pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction"); И обломался, списка не увидел.. Вообще ничего не увидел, кроме белой страницы в браузере. Включил вывод ошибок пхп, все равно белая страница... Выставил на файлы, что вызываются командой и сам пхп файл права 777 и на папки тоже... Все равно белая страница... Подумал, может команда тупит? Решил проверить... echo passthru("ls"); браузер сразу вывел содержимое папки, значит все же ошибок нет? Тогда где же собака порылась? Помогите решить ребус. =)
    Автор темы: wsok, 14 фев 2015, ответов - 52, в разделе: PHP