[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Translate:
Мини-чат
200
  
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,вот облоооом.Побыстрей бы тсправить эту какашку,меня уже порвали там.
 
Поиск:
На форуме были: