Разбор полетов - Миссии - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Point Blank (Piercing Blow)

Point Blank (Piercing Blow)
Общие вопросы по написанию эмулятора. General questions on developing emulator. При поддержке: Lucera 2 - разработка Java Interlude

Ответ
Опции темы
Непрочитано 13.01.2016, 13:29   #1
Аватар для foxovsky
Заинтересовавшийся

Автор темы (Топик Стартер) Разбор полетов - Миссии

Хей!

Поскольку последнее время в разделе часто публикуется информация по Point Blank/Project Blackout/Piercing Blow, хотелось бы внести свою лепту

Публикую информацию по миссиям(карточкам, как угодно).
Информация актуальна для Tahadi клиента(есть небольшие различия с другими клиентами)

MY_INFO
В my_info информация о прохождении миссий идет сразу после медалей:
1 байт - активная миссия(миссия новичка, к примеру)
4 байта - активная карта(номер активной карты, от 0 до 9)
Затем 20 байт, по 2 байта на карту(галочки напротив задачи в карте, 1 байт за первые две задачи, второй байт - за 3 и 4 задачи, ох уж эти корейцы):
0xEF - выполнена первая, 0xFE - выполнена вторая, 0xFF - выполнены обе, 0x00 - не выполнена не одна
Затем идут 64 байта, разбирать которые руки не дошли, но есть предположение, что это список миссий:
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00

После идут 40 байт, по 4 байта на карту - количество выполнений каждой задачи в миссии(как вы уже понимаете, для того, чтобы миссию отобразило пройденной, необходимо подсчитывать на стороне сервера, выполнена ли задача миссии и устанавливать галочку напротив каждой задачи в картах, те самые 20 байт выше)
Оставшаяся информация вплоть до перок - информация о прохождении других миссий, у меня - пустая

MISSION_SUCESS(0xA28)
Этот небольшой пакет нужно отправлять клиенту в случае, если он совершил определенное действие(убил в голову,подорвал на гранате или же попросту умер) в зависимости от активной миссии(что отправляем в my_info)
Собственно, состоит он из:
1 байт - id задачи
1 байт - количество выполнено(скольких, допустим, подорвали на гранате)

Так-же хотел бы добавить, что при каждом входе(и если мне память не изменяет - выходе) в список миссий клиент отправляет номер активной карты - для чего сделано так и не понял
__________________
Бложик - https://foxovsky.ru
foxovsky вне форума Отправить сообщение для foxovsky с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 13.01.2016, 13:36   #2
Аватар для Sojang
Пользователь

По умолчанию Re: Разбор полетов - Миссии

Сразу после 20 байт идёт вроде количество выполнений
Sojang вне форума Ответить с цитированием
Непрочитано 13.01.2016, 13:40   #3
Аватар для foxovsky
Заинтересовавшийся

Автор темы (Топик Стартер) Re: Разбор полетов - Миссии

Цитата:
Сообщение от Dom2 Посмотреть сообщение
Сразу после 20 байт идёт вроде количество выполнений
Как я и написал в предисловии - имеются отличия с другими клиентами игры
Вполне возможно, что на другой версии игры в этом месте количество выполнений миссии, на Tahadi же при замене этих байт начинает фокусничать список миссий, потому и был сделан подобный вывод
__________________
Бложик - https://foxovsky.ru
foxovsky вне форума Отправить сообщение для foxovsky с помощью Skype™ Ответить с цитированием
Непрочитано 13.01.2016, 13:43   #4
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Разбор полетов - Миссии

Цитата:
Сообщение от the__all Посмотреть сообщение
по 2 байта на карту
Там все просто.

// Результат прохождения
ushort result = 0;
 
// Задания карты
for (int t = 0; t < 4; t++)
{
	var task = card.Tasks[t];
 
	if (task.IsComplete)
	{
		result |= (ushort)(0x0f << 4 * t);
	}
}
 
WriteH(result);
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 23.02.2017, 11:13   #5
Аватар для zOne62
Пользователь

По умолчанию Re: Разбор полетов - Миссии

Hi All developers. Who can help me PlayerEquip structure...
Russian client version 1.37


PHP код:
private void LoadEquip()   

     {            

          
WriteD(equip.getCharRed()); // Скин Мужчина стандартный красные   
          
WriteD(equip.getCharBlue()); // Скин Мужчина стандартный синие  
          
WriteD(equip.getCharHelmet()); // Шлем поидеи... надо тестить 
          
WriteD(equip.getCharBeret()); // Берет 
          
WriteD(0); // Хз что это. Влазиет пистолеты, ножи, снайпы, пулеметы 
          
WriteD(equip.getWeaponPrimary()); // Основное оружие   
          
WriteD(equip.getWeaponSecondary()); // Второстепенное оружие    
          
WriteD(equip.getWeaponMelee()); // Ближнего боя 
          
WriteD(equip.getWeaponThrownNormal()); // Гранаты (Гранаты для           взрыва) 
          
WriteD(equip.getWeaponThrownSpecial()); // Гранаты (Шранаты           специальные, смок, слеповуха)        
    

           private 
void LoadItems()  

    {         

          
WriteD(player.getInvetoryOnly(2).Count); // количество предметов в слоте "Солдат"
          
WriteD(player.getInvetoryOnly(1).Count); // количество предметов в слоте "Оружие"        
          
WriteD(player.getInvetoryOnly(3).Count); // количество предметов в слоте "Купоны"   
          
WriteD(0); // количество предметов в новом слоте 

 // Солдат          

            
for (int i 0player.getInvetoryOnly(2).Counti++)    
        {         
          
WriteQ(player.getInvetoryOnly(2)[i].ItemType == player.getInvetoryOnly(2)[i].Id); 
          
WriteD(player.getInvetoryOnly(2)[i].ItemId);  
          
WriteC((byte)player.getInvetoryOnly(2)[i].Type);          
          
WriteD(player.getInvetoryOnly(2)[i].Count);          
        }       
          
// Оружие    

          
for (int i 0player.getInvetoryOnly(1).Counti++)     
        {            
          
WriteQ(player.getInvetoryOnly(1)[i].ItemType == player.getInvetoryOnly(1)[i].Id); 
          
WriteD(player.getInvetoryOnly(1)[i].ItemId);  
          
WriteC((byte)player.getInvetoryOnly(1)[i].Type);         
          
WriteD(player.getInvetoryOnly(1)[i].Count);          
       }         

           
// Купоны 
          
for (int i 0player.getInvetoryOnly(3).Counti++)    
       {             
          
WriteQ(player.getInvetoryOnly(3)[i].ItemType == :player.getInvetoryOnly(3)[i].Id); 
          
WriteD(player.getInvetoryOnly(3)[i].ItemId);  
          
WriteC((byte)player.getInvetoryOnly(3)[i].Type);   
          
WriteD(player.getInvetoryOnly(3)[i].Count);     
       }     
   } 
Code: C#

zOne62 вне форума Отправить сообщение для zOne62 с помощью Skype™ Ответить с цитированием
Непрочитано 23.02.2017, 14:24   #6
Аватар для Awiion

По умолчанию Re: Разбор полетов - Миссии

zOne62,

Код:
WriteD(0); // Хз что это. Влазиет пистолеты, ножи, снайпы, пулеметы
CharDino
__________________
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Awiion вне форума Отправить сообщение для Awiion с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 23.02.2017, 15:08   #7
Аватар для zOne62
Пользователь

Smile Re: Разбор полетов - Миссии

zOne62 вне форума Отправить сообщение для zOne62 с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Black Desert Разбор полетов xTz Другие игры / Other games 77 13.09.2017 14:06
Настройка l2.ini, разбор, исправление, объяснение, подключение клиента к серверу kpuk Игровой клиент 75 25.02.2017 19:15
Миссии в ингисоне Programinat Документация 4 16.05.2011 15:48
После релога пропадают квесты и миссии Philomat Серверная часть 4 23.11.2010 20:58
Квесты и миссии + ошибки (Rev 840 Aion-Uniq)) XpyHDeL Серверная часть 6 18.01.2010 17:00


© 2007–2022 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 07:40. Часовой пояс GMT +3.

Вверх