Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Point Blank (Piercing Blow) (https://forum.zone-game.info/forumdisplay.php?f=204)
-   -   Разбор полетов - Миссии (https://forum.zone-game.info/showthread.php?t=39884)

foxovsky 13.01.2016 13:29

Разбор полетов - Миссии
 
Хей!

Поскольку последнее время в разделе часто публикуется информация по 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 байт - количество выполнено(скольких, допустим, подорвали на гранате)

Так-же хотел бы добавить, что при каждом входе(и если мне память не изменяет - выходе) в список миссий клиент отправляет номер активной карты - для чего сделано так и не понял

Sojang 13.01.2016 13:36

Re: Разбор полетов - Миссии
 
Сразу после 20 байт идёт вроде количество выполнений

foxovsky 13.01.2016 13:40

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

Сообщение от Dom2 (Сообщение 405189)
Сразу после 20 байт идёт вроде количество выполнений

Как я и написал в предисловии - имеются отличия с другими клиентами игры
Вполне возможно, что на другой версии игры в этом месте количество выполнений миссии, на Tahadi же при замене этих байт начинает фокусничать список миссий, потому и был сделан подобный вывод

PROGRAMMATOR 13.01.2016 13:43

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

Сообщение от the__all (Сообщение 405188)
по 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#

zOne62 23.02.2017 11:13

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#
http://i.imgur.com/0LeNmza.jpg
http://i.imgur.com/VGqlfTz.jpg

Awiion 23.02.2017 14:24

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

Код:

WriteD(0); // Хз что это. Влазиет пистолеты, ножи, снайпы, пулеметы
CharDino

zOne62 23.02.2017 15:08

Re: Разбор полетов - Миссии
 
http://i.imgur.com/NGCXVSu.jpg


Текущее время: 05:57. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot