Была изменена ценовая политика компании R01, пост был обновлен. Порядок регистрации остался прежним. В настоящее время произвожу регистрацию доменов только по запросам, минимальная цена 1 домена - 160 рублей, а максимальная 175 рублей. Регистрация производится мной(ресселером) в компании R01 и в любой момент вы сможете забрать свой домен и перенести на прямой договор, так как регистрация происходит на ваши паспортные данные. Цена за покупку более одного домена = 160 руб. Запросы на регистрацию отправлять: adm_in_@_wso_k.net (удалить символы подчеркивания)
В общем многие знают один из старых проектов нонстоп-пв от Pr@ID, который потом закрылся и позже было несколько попыток по его реанимации (безуспешных). В настоящее время этот проект в вечной заморозке и базой игроков и его файлами теперь владею я, однако, к сожалению, пока нет возможности им заниматься, возможно кто то бы смог извлечь из него кое что полезное для себя. Что я хочу предложить? Ну в первую очередь базу игроков ( а это более 40к игроков). А это ведь тематическая аудитория потенциальных игроков Вашего сервера. Новый владелец базы сможет организовать рекламную рассылку своего сервера на емайлы этих игроков, ну или использовать эту базу для своего проекта, что уже будет выглядеть так, что на вашем проекте зарегистрировано более 40к игроков. В общем, жду предложений цен на базу игроков старого нонстопа. Либо, изучу спрос базы игроков+базы персонажей и самой серверной сборки NoNStoP-PW 1.4.4. PS: Не путать с продажей, это пока просто изучение спроса, потому тема в оффтопе, если будет понятно, что предложение получит отклик и будут желающие купить, то будет оформлена соответствующая тема.
В общем ищу способ получить по айди перосонажа - айди аккаунта в 1.3.6 Некоторые из вас могут сказать, юзай пакет Roleid2Uid, да, все верно, но он как выяснилось работает в 1.4.4+ Но вот в 1.3.6 не получается, либо в 1.3.6 другой опкод, либо пакета просто нет этого, в общем прошу помощи либо найти пакет и его опкод в 1.3.6 или есть ли вообще любые пакеты в 1.3.6, которые хранят информацию об аккаунте персонажа? --- добавлено: 5 дек 2015 в 10:46 --- И ещё, в GetRoleBase и GetRoleInfo тоже нет userid.
Для теста нацарапал такую функцию, 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 версии
В общем как известно в 136 версии (и им подобных) в ядре нет отладочной информации и это несколько осложняет поддержку этих версии в скриптах ЛК. При изучении информации в айвебе (в конфиги) я понял, что не всегда отличается структура пакета, может отличаться и опкод! В связи с чем я был бы очень признателен за информацию о структурах и опкодах в версиях 136.
[IMG] а вот те же действия с другим файлом и он отвечает. [IMG] в чем же собственно дело? --- добавлено: 29 ноя 2015 в 22:38 --- А теперь внимание ответ, для тех, кто тоже будет искать. Такое бывает, если попытаетесь например пвсервер запускать на 64разрядной ОС (DEBIAN, UBUNTU) без 32 разрядных библиотек, к некоторым файлам упорно не сможете обратится в консоли и запустить, ставим 32 разрядные либы и все будет нормально. Я вот давно уже не инсталлировал сервера игровые, вот и начал недоумевать, пока не вспомнил эту мелочь. Просто стоит учитывать разрядность ОСи.
[ATTACH] Стадия авторства: частичная (только пост обработка и верстка компонентов), так как большая часть графики использована из свободных сторонних источников интернета. Применение: Perfect World 1.4.4 и выше, либо схожие игры. Версия лаунчера: wsok_v1.0 (PSD исходник только в версии wsok_1.0+ который можно почти бесплатно скачать с моего сайта, за баллы - за активность). Описание: Нестандартный лаунчер, кнопки которого выполнены как тематическая часть содержания элементов лаунчера. Подойдет не только для игр Perfect World, но и для многих похожих. Так как форум не позволил загрузить файл по причине, что он большой (как это ни странно), то выкладываю прямую ссылку на скачивание с моего сайта: ссылка v1.0 ссылка v1.0+
В общем сабж в заголовке, требуется специалист-универсал, который умеет не просто клепать хорошие и современные дизайны, но и встраивать их в любой движок с сохранением структуры той CMS (блочность, расположение элементов в дизайне исходя из требования движка). Объект, с которым придется работать (встраивать в него шаблон, дизайн) это портальный движок MKPORTAL. категорию работ пока точно не могу озвучить, для начала требуется найти такого человека, но предположительно ему придется либо "натянуть" указанный шаблон на этот движок, либо разработать дизайн с нуля... либо доработать найденный шаблон дизайна и "натянуть" его на движок портала. В общем не вполне однозначно могу сказать, что конкретно надо сделать, так как пока в поиске нужно дизайн-решения для проекта. После того как найдется человек, то обсудим с ним дизайн, объем работы и оплату. писать в ЛС форума.
В общем простой вопрос, как я понял доступно всего 5 id цветов от 0 до 4, т.е. в файле виден список итемов ID и напротив их ID цвета. Если честно, то в лом несколько раз перепаковывать конфигс пакс, ради того, чтоб узнать соответствие ID цвета его веб коду вида #FFFFFF, может среди вас есть человек, который уже знаком с полным списком доступных ID цвета итемов и их соответствий кодам типа #FFFFFF... ? т.е. так понимаю, так код цвета 0 это #FFFFFF, осталось понять остальные соответствия кодов веб цветам.
В общем наткнулся на несколько сервисов типа колеса фортуны, где нажимаешь на кнопку и визуально рандомно видишь прокрутку колеса или ему подобной визуализации, например сайты где открытие кейсов от стим игр. Как понимаю реализовано по технологии AJAX+php ну и возможно флеш. Я так думаю должны быть в природе или jQuery библиотеки или флеш ну и +пхп, однако решения не нашел... Гугл толком не дал ответов на готовые подобные решения, может не так ищу. Помогите пожалуйста найти, если можно ссылки на подобные решения с возможностью скачать.
что то перекурил все маны по пхп, но не смог найти решение. В общем нужно вот такое, но на пхп: [IMG] т.е. из int32 в флоат. в пхп кучу методов перепробовал с числами, но бестолку... будут у кого идеи?
В общем лето бушует всеми красками и мой отпуск уже на носу так сказать, на семейном совете не можем никак определится куда бы съездить и хорошо отдохнуть?
Сразу говорю, редактирую редактором из шары. В общем решил создать для одной из локаций сервера подобие квестов на фаст заход за накидкой. За основу взял цепочку квестов от 79 фаст захода. Клонировал, заменил основные ид, начал разбираться с опциями квестов, пока не понял назначение некоторыхьопций из цепочки квестов фаст захода. Скриншоты ниже рамкой выделил то, что пока не понял для чего: тут как я понял некий итем, но для чего? опция даже не подписана. [IMG] опустимся чуть ниже непонятно, что за членов проверять, что за значения? [IMG] ну и непонятно ещё, как известно в процессе фата требуется убить нужное число мобов ну и боссов. но тут пусто [IMG] и ещё одна странная опция [IMG] да и вообще был бы рад увидеть от кого то мини гайд по устройству механики квестов фаст заходов, нужные опции и для чего. Заранее спасибо за помощь.
В общем в одно прекрасное время внутриигровой голд просто перестал приходить на все игровые аккаунты. в подобных темах, типо этой или этой дельных путей решения нету, сразу скажу, что такие варианты как: 1. iweb 2. pwadmin не предлагать, нужно именно техническое решение проблемы, т.е. понять причину, почему функция отказала? Что я пытался сделать, что устранить проблему: 1. прогонял игровые базы через фикс 2. Перезаливал процедуры 3. Присылал различные суммы голда, даже отрицательные. Эти шаги не помогли. В общем сейчас пока не знаю, что ещё проверять. У кого какие мысли?
В общем пытаюсь написать панель управления локациями, примерно как в айвеб, но используя PHP. Вся проблема в том, что при попытке запуска из веб панели, нужная служба или локация не поднимается, но если обратится к пхп скрипту из терминала с правами рута, то успешно поднимается. Я так понимаю все дело в правах, а точнее, что www-data юзер не может получить полномочии по запуску. Решил погуглить, но там все сводится к тому, что либо апач нужно разрешить по рут пользователем либо пользователю www-data выдать рут полномочии, но оба эти момента по сути вполне приличная уязвимость. Среди альтернативы ещё предлагают использовать некий демон, который был бы запущен под рутом и мог принимать через сокет от вебскрипта команды и уже транслировать их в терминал... Разве нет прочих альтернатив, чтоб из веб скрипта запустить службу, без вмешательства в манипуляции прав и полномочий или использование демона?
В общем, не думал я, что могу столкнутся с этим косяком, вроде бы уже и с закрытыми глазами уже могу ставить сборки серверов, все инструкции уже знаю практически наизусть, но тут... В общем ближе к делу, попалась мне очередная машинка с дебианом 7 64 бит на борту, сделал все как обычно, взял PW сборку (1.4.4), залил, что нужно сделал, в том числе нужные библиотеки поставил (яву, 32-битные либы для 64-битной оси и т.д.) В общем все до формализма знакомо повторил уже который раз и запустил... Процесс запуска шел как по маслу, не единой ошибки, подошла очередь подъема мира, я уже было расслабился, думая, мол вот, заработало... но... запуск мира выдал забавный сюрприз, ссылка на скриншот ниже http://joxi.ru/L21LJlOc0b1jmX странно да? все сервисы стартовали без ошибок, а мир выдал такую ерунду. Раз наверное 100, хотя нет 101 проверил все конфиги, ip адреса, логин и пароль к базе (хотя какой резон их проверять, если даже глинк и деливери не выдали ошибок) все норм, стал грешить на игровую базу, вайпнул к черту, т.е. удалил все файлы игровой базы и юникмнейма... Запустил, и... Все опять как по маслу, а на подьёме мира опять знакомые ошибки... Что то не так, но что? Уже мозг сломал почти... Уже и гс ядро запускал с выводом в лог, но там ничего конкретного, в конце лога перевел иероглифы на русский, там мол ругается на некую ошибку с кодом -4. В общем, есть у кого какие идеи, что это миру не нравится?
В общем реализовав многие функции ЛК, теперь приблизился к возможности учета голосов на ммтопе, но для этого нужна следующая информация: 1. листинг файла статистики (его пример или ссылка на него) 2. что означает каждое из значений в его записи. 3. порядок обработки информации (интервал обновления этого файла статистики на ммтопе и прочая информация связанная с генерацией статистики). Увы я не клиент ммтопа и не имею "боевых" игровых серверов, поэтому регистрация там исключена, да и сама модерация на ммтопе просто может не пропустить если добавлю тестовый проект. Потому мне просто нужна информация по статистике, что я указал выше, остальное (методы, парсинг и т.д. по обработке файла статистики) уже реализовать сам попробую. Заранее спасибо за информацию.
собственно сабж, так и не понял как это сделать. в пакетах, которые получают информацию о персах аккаунта отсутствует информация о клане. Вообще ищу возможность пакетно вытянуть айди клана, в котором состоит перс. Пакет factioninfo к сожалению в качестве аргумента для поиска принимает только айди клана, т.е. найти нужный клан по айди перса не выйдет... интересует именно пакетное решение.
пробую понять, как работать с хекс данными игровой базы на примере списка кланов... Имею две машины, на одной сборка 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 кланов и они отображаются в скрипте нормально. Так что я порядком уже запутался, в чем же дело?
Памятуя старую темку от Ботчала - решил немного поиграть с пхп функцией passthru. В качестве команды использую: /pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction Когда выполнил в консоли сервера, то как и ожидалось получил список, чтож, хорошо, значит все норм, ошибок нет, решил её выполнить в пхп: echo passthru("/pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction"); И обломался, списка не увидел.. Вообще ничего не увидел, кроме белой страницы в браузере. Включил вывод ошибок пхп, все равно белая страница... Выставил на файлы, что вызываются командой и сам пхп файл права 777 и на папки тоже... Все равно белая страница... Подумал, может команда тупит? Решил проверить... echo passthru("ls"); браузер сразу вывел содержимое папки, значит все же ошибок нет? Тогда где же собака порылась? Помогите решить ребус. =)
Имена участников (разделяйте запятой).