Devolpe Emulator
|
|
alqaida | Дата: Воскресенье, 09.06.2013, 17:21 | Сообщение # 511 |
Группа: Проверенные
Сообщений: 179
| Цитата (Sinthetix) А после рестарта эмулятора они так и остаются смешанными? нет,все возвращается в нормальное русло,как и должно быть.
|
|
| |
Sinthetix | Дата: Воскресенье, 09.06.2013, 17:36 | Сообщение # 512 |
Группа: Гости
Сообщений: 153
| alqaida. давай так, поставь extendedLogs = false; не нужны расширенные и MySQL логи, просто поставь нормальные логи. И подожди немного я дам тебе кусочек кода будешь ставить куда я скажу.. Добавлено (09.06.2013, 15:36:58) --------------------------------------------- начиная со строкой 886: этот код
Код if (!empty($userData) && !empty($userData->persona_id)) { Log::logDebug(" [SSocket]UserData var: " . " user_id:" . $userData->user_id . ", persona_id:" . $userData->persona_id); if (!empty($userData)) {
Меняешь на этот:
Код Log::logDebug(" [SSocket]UserData persona_id from packet: ". $this->vars['u.0.o']. " user_id:" . $userData->user_id . ", persona_id:" . $userData->persona_id); if($this->vars['u.0.o'] != $userData->persona_id){ Log::logDebug('persona id from packet and instance don\'t match!'); } if (!empty($userData)) {
я подозреваю что проблема тут, эта проверка покажет так оно или нет.
|
|
| |
TRIADA | Дата: Воскресенье, 09.06.2013, 18:16 | Сообщение # 513 |
Группа: Проверенные
Сообщений: 518
| насчет длл от тривер "прикольная реклама" присутствует строке: bf3 премиум акаунт за 60 баксов - губа не дура, не совместима з эмулем Sinthetix, сервера не переводятся в версию 784592, клиент игры при заходе на другие сервера запрашивает панкбастер (хотя он установлен), впринципе может там присутствуют некоторые команды которые можно дабавить в нашу длл, для включения отображения хотя бы инфы по серверу - ServerDescription=Russian BFBC2 Server - типо того. Код ShowConsole 1 ConnectToRetail host PlasmaPort TheaterPort RerouteHttp PunkbusterEnabled ExecutableType .\bfbc2cfg.ini w CONOUT$ =============================================================================== Loaded up BF:BC2 hook made by Triver, enjoy Version: v0.1 Date: 01.06.2013 =============================================================================== The specified host string has exceeded the maximum length of 50, aborting modification... CLIENT SERVER Treating process as %s
If this is not correct set the type manually in bfbc2.ini with "ExecutableType = x" where x can be '0' for Client and '1' for Server ------------------------------------------------------------------------------- .text .rdata Couldn't find all required header sections, aborting... sslVerification Couldn't find address for SSL verification, was it already patched? New host: %s easo #1 easo #2 Couldn't find address for easo #2 Couldn't find address for easo #1 feslhost Couldn't find address for fesl : 19021 New plasma host: %s 19026 theaterhost New theater host: %s Couldn't find address for theater punkbuster Couldn't find address for Punkbuster. \dinput8.dll DirectInput8Create Cleaning up stuff... invalid string position string too long bad cast Success in modifying %s
|
|
| |
alqaida | Дата: Воскресенье, 09.06.2013, 18:55 | Сообщение # 514 |
Группа: Проверенные
Сообщений: 179
| Цитата (Sinthetix) alqaida. давай так, поставь extendedLogs = false; не нужны расширенные и MySQL логи, просто поставь нормальные логи. И подожди немного я дам тебе кусочек кода будешь ставить куда я скажу.. окей сейчас сделаю
$logToFile = true; $logToConsole = true; $logDatabase = false; $extendedLog = false;
в SSocket.class.php с 883 строки вот как выглядит
Код $userData = UserData::getInstanceByPersonaId($this->vars['u.0.o']); if (!empty($userData) && !empty($userData->persona_id)) { Log::logDebug(" [SSocket]UserDta var: " . $this->vars['u.0.o'] . " user_id" . $userData->user_id . ", " . $userData->persona_id); if (!empty($userData)) { global $statsSetValues, $statsAverageValues; $count = $this->vars['u.0.s.[]']; $userData->loadPersonaStats(true); $rank = $userData->stats['rank']; for ($i = 0; $i < $count; $i++) { $key = $this->vars['u.0.s.' . $i . '.k']; // if(!isset($userData->stats[$key])){ // fwrite($this->fh, $key."\n"); // } //if ($key == 'accuracy') { if (isset($statsAverageValues[$key])) { $userData->stats[$key] = sprintf("%.2f",($userData->stats[$key] + $this->vars['u.0.s.' . $i . '.v']) / 2); } else if(isset($statsSetValues[$key])){ $userData->stats[$key] = sprintf("%.2f",$this->vars['u.0.s.' . $i . '.v']); } else { if(gettype($this->vars['u.0.s.' . $i . '.v']) == 'double'){ $userData->stats[$key] = sprintf("%.2f",$userData->stats[$key] + $this->vars['u.0.s.' . $i . '.v']); } else { $userData->stats[$key] = sprintf("%.0f",$userData->stats[$key] + $this->vars['u.0.s.' . $i . '.v']); } } } unset($this->vars); $userData->stats['rank'] = $rank; if($userData->fixStats()){ $userData->savePersonaStats(); } //$this->personaData = $userData; $this->personaData->rank_data_sent = false; } }
$sendPacket = "TXN=" . $this->txn; $packet = new Packet($this->type, 0x80000000, $this->type2Hex, $sendPacket); $this->sendPacket($packet); unset($packet); }
в чем прикол?или я не там смотрю,не указано где менять.
|
|
| |
Sinthetix | Дата: Воскресенье, 09.06.2013, 20:29 | Сообщение # 515 |
Группа: Гости
Сообщений: 153
| Цитата (alqaida) в чем прикол?или я не там смотрю,не указано где менять. Ладно оставь, давай я лучше внесу еще некоторые проверки и потом выложу новую версию.
|
|
| |
alqaida | Дата: Воскресенье, 09.06.2013, 20:44 | Сообщение # 516 |
Группа: Проверенные
Сообщений: 179
| оке,с нетерпением ждем.
|
|
| |
Sinthetix | Дата: Воскресенье, 09.06.2013, 22:09 | Сообщение # 517 |
Группа: Гости
Сообщений: 153
| BFBC2EMU_V1.13 Изменения: - изменена немного процедура автоматического входа. После апдейта на эту версию, первый раз автоматический вход не сработает. Нужно нормально вводить емайл и пароль. Потом он опять заработает. - если аккаунт онлайн, игрок с таким же NUID не сможет залогинится(странно как это ускользнуло) - добавлены разные проверки в случае если объект игрока из памяти не соответствует его ID
http://zalil.ru/34568407
|
|
| |
alqaida | Дата: Воскресенье, 09.06.2013, 22:51 | Сообщение # 518 |
Группа: Проверенные
Сообщений: 179
| проверим,сейчас поставлю на тест.
|
|
| |
noname | Дата: Понедельник, 10.06.2013, 05:30 | Сообщение # 519 |
Группа: Проверенные
Сообщений: 24
| ммм да еще кое что Sinthetix вы бы лучше с того эмулятор брали бы ченить и к себе в Эмулятор добовляли было бы нормально...
|
|
| |
alqaida | Дата: Понедельник, 10.06.2013, 09:28 | Сообщение # 520 |
Группа: Проверенные
Сообщений: 179
| Цитата (noname) ммм да еще кое что Sinthetix вы бы лучше с того эмулятор брали бы ченить и к себе в Эмулятор добовляли было бы нормально... а что с того эмулятора брать,он далеко отстал от 1.13 нынешней версии,написан на разных языках.
|
|
| |
BeoWolf | Дата: Понедельник, 10.06.2013, 11:43 | Сообщение # 521 |
Группа: Пользователи
Сообщений: 1
| Привет всем. Спасибо за работу проделанную над эмулем mr. Sinthetix. Так же установили сервер по BFBC2. Все отлично работает, без падений. Главная проблема сосотоит в базе с никами игроков. Тут просили описать как происходит путанница. В общем в базе замечал смену емайл адресов, при исправлении в базе у одного игрока имелось 2-3 созданных разных аккаунта (емайла), один из которых перекидывался на другого игрока, а его емайл пропадал. Так же 2 ника 1-го игрока с 2 аккаунтами регистрируемых с его ip появлялись у 2-го игрока у которго в базе емайл был свой и при этом один ник 1-го игрока и ник 2-го появлялись у 3-го игрока. При просмотре id user и id persona а так же остальных пунктов совпадений не было. После удаления лишних аккаунтов и рестарта эмуля все возвращалось. Все происходило при условии, что 1 игрок был оффлайн, а 2 и 3 пытались зайти на сервер. Случаи повторяются и в базе особой путанницы не видно кроме замещения емайл адресов. Так же игроки писали о хамещении уровня, то есть вход выполнен под своей учетной записью и ником, но уровень и открытое оруже другого игрока. В общем чертовщина происходит.
|
|
| |
TRIADA | Дата: Понедельник, 10.06.2013, 12:11 | Сообщение # 522 |
Группа: Проверенные
Сообщений: 518
| На 0,8 версии все созданые игроками в игре акаунты, сохранялись в отдельной папке с эмулятором в текстовом варианте, тоесть при входе игрока эмулятор направлял в файл статистики с указаным именем игрока, я незнаю как здесь перенаправляет судя по регистрации с эмейл. Получается возможно эмулятор неполучает всех пакетов отчета через особенность таблеток и делает ошибки направления к имени статистики, берет не ту которая надо, поидее так не должно быть, так как в базе данных на 0,8 версии было: когда регаеш игрока по эмэйл у него был особый неповторимый генерируемый номер id, также боец который создавался с этого акаунта тоже получал неповторимы номер id, и далее эмулятор уже общался по этим номерам и путаницы небыло. Когда идет ошибка в номере посылающаяся в пакете от клиента через хук dll к эмулятору, сам эмулятор берет эту ошибку в цифре - считает её правильной, и соответственно направляет нету статистику, соответственно краша небудет и отчет в ошибках тоже не покажет ничего, потому что сам эмулятор думает что он делает все правильно. Тоесть если бы игроки прямо общались с эмулятором без емейла, такой сильной путаницы бы небыло, заходиш и сразу регаеш не эмэйл, а бойца. Но в этом случае было бы очень много запросов засорением ненужных ников. Sinthetix а нельзя зделать так ? Зделать просто, вначале если незарегестрировано ак, ввести регистрацию через эмейл с созданием бойца как оно и есть в этой версии , а далее если боец создан и зарегестрирован , то зделать сразу вход напрямую на стату игрока введя имя созданого бойца минуя авторизацию с эмэйла, в игру вводить имя созданого бойца и единый пароль на акаунт. (так уберем лишние ошибки в общении эмуля и клиентов и прекидывании с авторизации эмэйла на статистику бойца) Уточню пускай остается при регистрации эмейл и создание бойца, но когда просто входиш и ты уже зарегестрирован, то вместо поля где вводится эмейл, было поле где вводили ник бойца и пароль к ак снизу .
|
|
| |
zmoli775 | Дата: Понедельник, 10.06.2013, 15:33 | Сообщение # 523 |
Группа: Гости
Сообщений: 42
| Sinthetix,
Please check BFBC2EMU_V1.13
Create new account! Has been an error! Can not register successfully?
|
|
| |
Sinthetix | Дата: Понедельник, 10.06.2013, 15:35 | Сообщение # 524 |
Группа: Гости
Сообщений: 153
| Цитата (TRIADA) Sinthetix а нельзя зделать так ? Зделать просто, вначале если незарегестрировано ак, ввести регистрацию через эмейл с созданием бойца как оно и есть в этой версии , а далее если боец создан и зарегестрирован , то зделать сразу вход напрямую на стату игрока введя имя созданого бойца минуя авторизацию с эмэйла, в игру вводить имя созданого бойца и единый пароль на акаунт.(так уберем лишние ошибки в общении эмуля и клиентов и прекидывании с авторизации эмэйла на статистику бойца) Уточню пускай остается при регистрации эмейл и создание бойца, но когда просто входиш и ты уже зарегестрирован, то вместо поля где вводится эмейл, было поле где вводили ник бойца и пароль к ак снизу . Проблема не в процессе авторизации, так как после рестарта авторизация работает правильно. Проблема а в том что объекты данных игроков в памяти уже смешиваются. Потому что для экономии запросов к базе я делаю кэш игроков в память. А логин по имени бойца не надежный, ты должен запоминать имя каждого бойца, а так как в его имени используются разные символы игрок часто забудет точное имя... Нет процесс регистрации и авторизации нужно оставить как он есть. Надо искать дальше проблему, или в конце концов я буду брать данные игрока не из кэша а из базы, но так решать проблему пока не стоит. Пока что буду искать пересечение в памяти.Добавлено (10.06.2013, 13:35:48) ---------------------------------------------
Цитата (zmoli775) Sinthetix, Please check BFBC2EMU_V1.13
Create new account! Has been an error! Can not register successfully? OK, I'll check when I'll be home
|
|
| |
alqaida | Дата: Понедельник, 10.06.2013, 16:43 | Сообщение # 525 |
Группа: Проверенные
Сообщений: 179
| вот блин,не работает активация ,регистрирует в таблице users,но дальше не хочет,пишет неверное сочетание бла-бла-бла...,и получается из-за это нет никого в таблице personas,вот облоооом.Побыстрей бы тсправить эту какашку,меня уже порвали там.
|
|
| |