mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-20 19:57:46 +00:00
New debug packets.
This commit is contained in:
parent
46c4c26d01
commit
3cacedf6ab
100 changed files with 820 additions and 0 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork2
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork2
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork3
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork3
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork4
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork4
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork_inv
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork_inv
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork_inv2
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork_inv2
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork_inv3
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/charawork_inv3
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/chat.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/chat.bin
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/inv1
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/inv1
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/currancy.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/currancy.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/inventory.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/inventory.bin
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/inventory2.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/inventory2.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/keyitems.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/keyitems.bin
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/keyitems2.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/keyitems2.bin
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/keyitems_backup
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/keyitems_backup
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login5.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login5.bin
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login5_backup
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login5_backup
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login6_data.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login6_data.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login7_data.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login7_data.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login8_data.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/login/login8_data.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/music.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/music.bin
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/setinv
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/setinv
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/setinv_backup
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/setinv_backup
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/temp_inv.bin
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/temp_inv.bin
Normal file
Binary file not shown.
BIN
FFXIVClassic Map Server/bin/Debug/packets/updategil
Normal file
BIN
FFXIVClassic Map Server/bin/Debug/packets/updategil
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
590
FFXIVClassic Map Server/common/BlowfishEngine.cs
Normal file
590
FFXIVClassic Map Server/common/BlowfishEngine.cs
Normal file
|
@ -0,0 +1,590 @@
|
|||
/*
|
||||
* Copyright (c) 2000 - 2010 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
* and associated documentation files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all copies or
|
||||
* substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
|
||||
using Org.BouncyCastle.Crypto.Utilities;
|
||||
|
||||
namespace Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
/**
|
||||
* A class that provides Blowfish key encryption operations,
|
||||
* such as encoding data and generating keys.
|
||||
* All the algorithms herein are from Applied Cryptography
|
||||
* and implement a simplified cryptography interface.
|
||||
*/
|
||||
public sealed class BlowfishEngine
|
||||
{
|
||||
private readonly static uint[] KP =
|
||||
{
|
||||
0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
|
||||
0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
|
||||
0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,
|
||||
0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,
|
||||
0x9216D5D9, 0x8979FB1B
|
||||
},
|
||||
KS0 =
|
||||
{
|
||||
0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
|
||||
0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
|
||||
0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
|
||||
0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
|
||||
0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
|
||||
0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
|
||||
0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
|
||||
0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
|
||||
0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,
|
||||
0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,
|
||||
0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,
|
||||
0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,
|
||||
0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,
|
||||
0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,
|
||||
0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,
|
||||
0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,
|
||||
0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,
|
||||
0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,
|
||||
0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,
|
||||
0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,
|
||||
0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,
|
||||
0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,
|
||||
0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,
|
||||
0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,
|
||||
0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,
|
||||
0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,
|
||||
0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,
|
||||
0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,
|
||||
0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,
|
||||
0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,
|
||||
0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,
|
||||
0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,
|
||||
0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,
|
||||
0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,
|
||||
0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,
|
||||
0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,
|
||||
0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,
|
||||
0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,
|
||||
0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,
|
||||
0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,
|
||||
0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,
|
||||
0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,
|
||||
0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,
|
||||
0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,
|
||||
0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,
|
||||
0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,
|
||||
0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,
|
||||
0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,
|
||||
0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,
|
||||
0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,
|
||||
0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,
|
||||
0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,
|
||||
0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,
|
||||
0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,
|
||||
0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,
|
||||
0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,
|
||||
0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,
|
||||
0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,
|
||||
0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,
|
||||
0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,
|
||||
0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,
|
||||
0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,
|
||||
0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,
|
||||
0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A
|
||||
},
|
||||
KS1 =
|
||||
{
|
||||
0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,
|
||||
0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,
|
||||
0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,
|
||||
0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,
|
||||
0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,
|
||||
0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,
|
||||
0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,
|
||||
0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,
|
||||
0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,
|
||||
0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,
|
||||
0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,
|
||||
0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,
|
||||
0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,
|
||||
0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,
|
||||
0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,
|
||||
0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,
|
||||
0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,
|
||||
0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,
|
||||
0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,
|
||||
0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,
|
||||
0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,
|
||||
0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,
|
||||
0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,
|
||||
0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,
|
||||
0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,
|
||||
0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,
|
||||
0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,
|
||||
0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,
|
||||
0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,
|
||||
0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,
|
||||
0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,
|
||||
0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,
|
||||
0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,
|
||||
0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,
|
||||
0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,
|
||||
0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,
|
||||
0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,
|
||||
0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,
|
||||
0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,
|
||||
0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,
|
||||
0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,
|
||||
0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,
|
||||
0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,
|
||||
0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,
|
||||
0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,
|
||||
0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,
|
||||
0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,
|
||||
0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,
|
||||
0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,
|
||||
0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,
|
||||
0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,
|
||||
0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,
|
||||
0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,
|
||||
0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,
|
||||
0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,
|
||||
0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,
|
||||
0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,
|
||||
0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,
|
||||
0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,
|
||||
0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,
|
||||
0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,
|
||||
0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,
|
||||
0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,
|
||||
0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7
|
||||
},
|
||||
KS2 =
|
||||
{
|
||||
0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,
|
||||
0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,
|
||||
0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,
|
||||
0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,
|
||||
0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,
|
||||
0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,
|
||||
0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,
|
||||
0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,
|
||||
0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,
|
||||
0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,
|
||||
0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,
|
||||
0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,
|
||||
0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,
|
||||
0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,
|
||||
0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,
|
||||
0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,
|
||||
0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,
|
||||
0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,
|
||||
0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,
|
||||
0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,
|
||||
0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,
|
||||
0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,
|
||||
0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,
|
||||
0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,
|
||||
0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,
|
||||
0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,
|
||||
0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,
|
||||
0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,
|
||||
0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,
|
||||
0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,
|
||||
0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,
|
||||
0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,
|
||||
0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,
|
||||
0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,
|
||||
0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,
|
||||
0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,
|
||||
0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,
|
||||
0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,
|
||||
0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,
|
||||
0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,
|
||||
0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,
|
||||
0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,
|
||||
0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,
|
||||
0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,
|
||||
0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,
|
||||
0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,
|
||||
0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,
|
||||
0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,
|
||||
0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,
|
||||
0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,
|
||||
0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,
|
||||
0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,
|
||||
0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,
|
||||
0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,
|
||||
0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,
|
||||
0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,
|
||||
0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,
|
||||
0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,
|
||||
0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,
|
||||
0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,
|
||||
0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,
|
||||
0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,
|
||||
0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,
|
||||
0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0
|
||||
},
|
||||
KS3 =
|
||||
{
|
||||
0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,
|
||||
0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,
|
||||
0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,
|
||||
0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,
|
||||
0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,
|
||||
0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,
|
||||
0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,
|
||||
0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,
|
||||
0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,
|
||||
0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,
|
||||
0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,
|
||||
0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,
|
||||
0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,
|
||||
0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,
|
||||
0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,
|
||||
0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,
|
||||
0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,
|
||||
0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,
|
||||
0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,
|
||||
0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,
|
||||
0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,
|
||||
0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,
|
||||
0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,
|
||||
0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,
|
||||
0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,
|
||||
0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,
|
||||
0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,
|
||||
0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,
|
||||
0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,
|
||||
0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,
|
||||
0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,
|
||||
0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,
|
||||
0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,
|
||||
0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,
|
||||
0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,
|
||||
0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,
|
||||
0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,
|
||||
0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,
|
||||
0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,
|
||||
0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,
|
||||
0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,
|
||||
0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,
|
||||
0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,
|
||||
0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,
|
||||
0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,
|
||||
0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,
|
||||
0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,
|
||||
0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,
|
||||
0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,
|
||||
0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,
|
||||
0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,
|
||||
0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,
|
||||
0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,
|
||||
0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,
|
||||
0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,
|
||||
0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,
|
||||
0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,
|
||||
0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,
|
||||
0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,
|
||||
0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,
|
||||
0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,
|
||||
0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,
|
||||
0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,
|
||||
0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6
|
||||
};
|
||||
|
||||
//====================================
|
||||
// Useful constants
|
||||
//====================================
|
||||
|
||||
private static readonly int ROUNDS = 16;
|
||||
private const int BLOCK_SIZE = 8; // bytes = 64 bits
|
||||
private static readonly int SBOX_SK = 256;
|
||||
private static readonly int P_SZ = ROUNDS + 2;
|
||||
|
||||
private readonly uint[] S0, S1, S2, S3; // the s-boxes
|
||||
private readonly uint[] P; // the p-array
|
||||
|
||||
private bool encrypting;
|
||||
|
||||
private byte[] workingKey;
|
||||
|
||||
public BlowfishEngine()
|
||||
{
|
||||
S0 = new uint[SBOX_SK];
|
||||
S1 = new uint[SBOX_SK];
|
||||
S2 = new uint[SBOX_SK];
|
||||
S3 = new uint[SBOX_SK];
|
||||
P = new uint[P_SZ];
|
||||
}
|
||||
|
||||
/**
|
||||
* initialise a Blowfish cipher.
|
||||
*
|
||||
* @param forEncryption whether or not we are for encryption.
|
||||
* @param parameters the parameters required to set up the cipher.
|
||||
* @exception ArgumentException if the parameters argument is
|
||||
* inappropriate.
|
||||
*/
|
||||
public void Init(
|
||||
bool forEncryption,
|
||||
byte[] key)
|
||||
{
|
||||
this.encrypting = forEncryption;
|
||||
this.workingKey = key;
|
||||
SetKey(this.workingKey);
|
||||
}
|
||||
|
||||
public string AlgorithmName
|
||||
{
|
||||
get { return "Blowfish"; }
|
||||
}
|
||||
|
||||
public bool IsPartialBlockOkay
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
public void ProcessBuffer(byte[] input, int inOff, byte[] output, int outOff, int length)
|
||||
{
|
||||
int numBlocks = length >> 3;
|
||||
int offset = 0;
|
||||
for (var i = 0; i < numBlocks; ++i, offset += 8)
|
||||
{
|
||||
this.ProcessBlock(input, inOff + offset, output, outOff+offset);
|
||||
}
|
||||
|
||||
if (length != offset)
|
||||
{
|
||||
Array.Copy(input, inOff + offset, output, outOff + offset, length - offset);
|
||||
}
|
||||
}
|
||||
|
||||
public int ProcessBlock(
|
||||
byte[] input,
|
||||
int inOff,
|
||||
byte[] output,
|
||||
int outOff)
|
||||
{
|
||||
if (workingKey == null)
|
||||
{
|
||||
throw new InvalidOperationException("Blowfish not initialised");
|
||||
}
|
||||
|
||||
if ((inOff + BLOCK_SIZE) > input.Length)
|
||||
{
|
||||
throw new InvalidOperationException("input buffer too short");
|
||||
}
|
||||
|
||||
if ((outOff + BLOCK_SIZE) > output.Length)
|
||||
{
|
||||
throw new InvalidOperationException("output buffer too short");
|
||||
}
|
||||
|
||||
if (encrypting)
|
||||
{
|
||||
EncryptBlock(input, inOff, output, outOff);
|
||||
}
|
||||
else
|
||||
{
|
||||
DecryptBlock(input, inOff, output, outOff);
|
||||
}
|
||||
|
||||
return BLOCK_SIZE;
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
}
|
||||
|
||||
public int GetBlockSize()
|
||||
{
|
||||
return BLOCK_SIZE;
|
||||
}
|
||||
|
||||
//==================================
|
||||
// Private Implementation
|
||||
//==================================
|
||||
|
||||
private uint F(uint x)
|
||||
{
|
||||
return (((S0[x >> 24] + S1[(x >> 16) & 0xff]) ^ S2[(x >> 8) & 0xff]) + S3[x & 0xff]);
|
||||
}
|
||||
|
||||
/**
|
||||
* apply the encryption cycle to each value pair in the table.
|
||||
*/
|
||||
private void ProcessTable(
|
||||
uint xl,
|
||||
uint xr,
|
||||
uint[] table)
|
||||
{
|
||||
int size = table.Length;
|
||||
|
||||
for (int s = 0; s < size; s += 2)
|
||||
{
|
||||
xl ^= P[0];
|
||||
|
||||
for (int i = 1; i < ROUNDS; i += 2)
|
||||
{
|
||||
xr ^= F(xl) ^ P[i];
|
||||
xl ^= F(xr) ^ P[i + 1];
|
||||
}
|
||||
|
||||
xr ^= P[ROUNDS + 1];
|
||||
|
||||
table[s] = xr;
|
||||
table[s + 1] = xl;
|
||||
|
||||
xr = xl; // end of cycle swap
|
||||
xl = table[s];
|
||||
}
|
||||
}
|
||||
|
||||
private void SetKey(byte[] key)
|
||||
{
|
||||
/*
|
||||
* - comments are from _Applied Crypto_, Schneier, p338
|
||||
* please be careful comparing the two, AC numbers the
|
||||
* arrays from 1, the enclosed code from 0.
|
||||
*
|
||||
* (1)
|
||||
* Initialise the S-boxes and the P-array, with a fixed string
|
||||
* This string contains the hexadecimal digits of pi (3.141...)
|
||||
*/
|
||||
Array.Copy(KS0, 0, S0, 0, SBOX_SK);
|
||||
Array.Copy(KS1, 0, S1, 0, SBOX_SK);
|
||||
Array.Copy(KS2, 0, S2, 0, SBOX_SK);
|
||||
Array.Copy(KS3, 0, S3, 0, SBOX_SK);
|
||||
|
||||
Array.Copy(KP, 0, P, 0, P_SZ);
|
||||
|
||||
/*
|
||||
* (2)
|
||||
* Now, XOR P[0] with the first 32 bits of the key, XOR P[1] with the
|
||||
* second 32-bits of the key, and so on for all bits of the key
|
||||
* (up to P[17]). Repeatedly cycle through the key bits until the
|
||||
* entire P-array has been XOR-ed with the key bits
|
||||
*/
|
||||
int keyLength = key.Length;
|
||||
int keyIndex = 0;
|
||||
|
||||
for (int i = 0; i < P_SZ; i++)
|
||||
{
|
||||
// Get the 32 bits of the key, in 4 * 8 bit chunks
|
||||
uint data = 0x0000000;
|
||||
for (int j = 0; j < 4; j++)
|
||||
{
|
||||
// create a 32 bit block
|
||||
data = (data << 8) | (uint)key[keyIndex++];
|
||||
|
||||
// wrap when we get to the end of the key
|
||||
if (keyIndex >= keyLength)
|
||||
{
|
||||
keyIndex = 0;
|
||||
}
|
||||
}
|
||||
// XOR the newly created 32 bit chunk onto the P-array
|
||||
P[i] ^= data;
|
||||
}
|
||||
|
||||
/*
|
||||
* (3)
|
||||
* Encrypt the all-zero string with the Blowfish algorithm, using
|
||||
* the subkeys described in (1) and (2)
|
||||
*
|
||||
* (4)
|
||||
* Replace P1 and P2 with the output of step (3)
|
||||
*
|
||||
* (5)
|
||||
* Encrypt the output of step(3) using the Blowfish algorithm,
|
||||
* with the modified subkeys.
|
||||
*
|
||||
* (6)
|
||||
* Replace P3 and P4 with the output of step (5)
|
||||
*
|
||||
* (7)
|
||||
* Continue the process, replacing all elements of the P-array
|
||||
* and then all four S-boxes in order, with the output of the
|
||||
* continuously changing Blowfish algorithm
|
||||
*/
|
||||
|
||||
ProcessTable(0, 0, P);
|
||||
ProcessTable(P[P_SZ - 2], P[P_SZ - 1], S0);
|
||||
ProcessTable(S0[SBOX_SK - 2], S0[SBOX_SK - 1], S1);
|
||||
ProcessTable(S1[SBOX_SK - 2], S1[SBOX_SK - 1], S2);
|
||||
ProcessTable(S2[SBOX_SK - 2], S2[SBOX_SK - 1], S3);
|
||||
}
|
||||
|
||||
/**
|
||||
* Encrypt the given input starting at the given offset and place
|
||||
* the result in the provided buffer starting at the given offset.
|
||||
* The input will be an exact multiple of our blocksize.
|
||||
*/
|
||||
private void EncryptBlock(
|
||||
byte[] src,
|
||||
int srcIndex,
|
||||
byte[] dst,
|
||||
int dstIndex)
|
||||
{
|
||||
uint xl = Pack.BE_To_UInt32(src, srcIndex);
|
||||
uint xr = Pack.BE_To_UInt32(src, srcIndex + 4);
|
||||
|
||||
xl ^= P[0];
|
||||
|
||||
for (int i = 1; i < ROUNDS; i += 2)
|
||||
{
|
||||
xr ^= F(xl) ^ P[i];
|
||||
xl ^= F(xr) ^ P[i + 1];
|
||||
}
|
||||
|
||||
xr ^= P[ROUNDS + 1];
|
||||
|
||||
Pack.UInt32_To_BE(xr, dst, dstIndex);
|
||||
Pack.UInt32_To_BE(xl, dst, dstIndex + 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* Decrypt the given input starting at the given offset and place
|
||||
* the result in the provided buffer starting at the given offset.
|
||||
* The input will be an exact multiple of our blocksize.
|
||||
*/
|
||||
private void DecryptBlock(
|
||||
byte[] src,
|
||||
int srcIndex,
|
||||
byte[] dst,
|
||||
int dstIndex)
|
||||
{
|
||||
uint xl = Pack.LE_To_UInt32(src, srcIndex);
|
||||
uint xr = Pack.LE_To_UInt32(src, srcIndex + 4);
|
||||
|
||||
xl ^= P[ROUNDS + 1];
|
||||
|
||||
for (int i = ROUNDS; i > 0; i -= 2)
|
||||
{
|
||||
xr ^= F(xl) ^ P[i];
|
||||
xl ^= F(xr) ^ P[i - 1];
|
||||
}
|
||||
|
||||
xr ^= P[0];
|
||||
|
||||
Pack.UInt32_To_LE(xr, dst, dstIndex);
|
||||
Pack.UInt32_To_LE(xl, dst, dstIndex + 4);
|
||||
}
|
||||
}
|
||||
}
|
87
FFXIVClassic Map Server/dataobjects/Item.cs
Normal file
87
FFXIVClassic Map Server/dataobjects/Item.cs
Normal file
|
@ -0,0 +1,87 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FFXIVClassic_Map_Server.dataobjects
|
||||
{
|
||||
class Item
|
||||
{
|
||||
public uint uniqueId;
|
||||
public uint itemId;
|
||||
public int quantity = 1;
|
||||
public uint slot;
|
||||
|
||||
public bool isUntradeable = false;
|
||||
public bool isHighQuality = false;
|
||||
|
||||
public uint durability = 0;
|
||||
public ushort spiritbind = 0;
|
||||
|
||||
public byte materia1 = 0;
|
||||
public byte materia2 = 0;
|
||||
public byte materia3 = 0;
|
||||
public byte materia4 = 0;
|
||||
public byte materia5 = 0;
|
||||
|
||||
//Bare Minimum
|
||||
public Item(uint id, uint itemId, uint slot)
|
||||
{
|
||||
this.uniqueId = id;
|
||||
this.itemId = itemId;
|
||||
this.quantity = quantity;
|
||||
this.slot = slot;
|
||||
}
|
||||
|
||||
public byte[] toPacketBytes()
|
||||
{
|
||||
byte[] data = new byte[0x70];
|
||||
|
||||
using (MemoryStream mem = new MemoryStream(data))
|
||||
{
|
||||
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
||||
{
|
||||
binWriter.Write((UInt32)uniqueId);
|
||||
binWriter.Write((UInt32)0x00000000);
|
||||
binWriter.Write((Int32)quantity);
|
||||
binWriter.Write((UInt32)itemId);
|
||||
binWriter.Write((UInt32)slot);
|
||||
|
||||
binWriter.Write((UInt32)0x00000000);
|
||||
binWriter.Write((UInt32)0x00000000);
|
||||
binWriter.Write((UInt32)0x00000000);
|
||||
|
||||
binWriter.Write(isUntradeable ? (UInt32)0x3 : (UInt32)0x0);
|
||||
|
||||
binWriter.Write((UInt32)0x00000000);
|
||||
|
||||
binWriter.Write(isHighQuality ? (byte)0x02 : (byte)0x01);
|
||||
binWriter.Write((byte)0x01);
|
||||
binWriter.Write((uint)durability);
|
||||
|
||||
binWriter.BaseStream.Seek(0x10-0x06, SeekOrigin.Current);
|
||||
|
||||
binWriter.Write((byte)0x01);
|
||||
binWriter.Write((byte)0x01);
|
||||
binWriter.Write((byte)0x01);
|
||||
binWriter.Write((byte)0x01);
|
||||
|
||||
binWriter.BaseStream.Seek(0x10, SeekOrigin.Current);
|
||||
|
||||
binWriter.Write((ushort)spiritbind);
|
||||
|
||||
binWriter.Write((byte)materia1);
|
||||
binWriter.Write((byte)materia2);
|
||||
binWriter.Write((byte)materia3);
|
||||
binWriter.Write((byte)materia4);
|
||||
binWriter.Write((byte)materia5);
|
||||
}
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
1
FFXIVClassic Map Server/inventorys_packets.txt
Normal file
1
FFXIVClassic Map Server/inventorys_packets.txt
Normal file
|
@ -0,0 +1 @@
|
|||
0101000073020100511D8BEE3B010000789CB5D55F4853511C07F0DF51B61584F46710AC024D731B12FD43A9A930E90FB8190951DA8BA814094548A5E13D0416A46E187B88E84141E8694F13E9A11E120AECC5F592A452A0F8548332037B29323BF761BFBBAD7EFD0E72FAC1B8DCDDC3FDF03DE79EF32B2D298686E04891FD83A5995F5E880A507534B3D46C5F8F47BBDCF6D5FED377DF0217FCBD8468BE9B7F2F0431F49F35E7096DCA7A7DCA7B407A37E39CB7D5CF7BD39FEBD07B97B06080F4921D9CA7535B1AC3E82D282F417A9946CED3C93778B10ED7EF64CAFAE37931BEBFD0DF58BE788E776DD68222D25B2BE33C9D7C5717C73C59EFC09C05ADC43821CAF699F03EF86A71FD9ECC5B30457AE990092F96339F977E5A50F812D3EBF7FDFC179CCF4885846E629C10F561CED3C977AEA516BD47951202A43778D884D79FAAC1F5BBEC97F09CF4BAAB384FA72657D670FDF6062478496FA892F374F2CDDE76CE33DB7B467A8B07394FA7C2FDF9DEE47FF67E6CF7BBB2DE6A44420BE9CD1B393F8F944FE3F7D91E95D0467A2F2B4C7823E9247A2F941721BDD65D26BC89D171F4AA9A249C25BD65F63CD329B91E44EF9EF2CA496F6537E7E9E47BBCB08AFBEFA3F27690DEADA0092F93DB1F4E4B78457AD5D526BCCD700AE773EC8C8410314E881A23FD6F38A71FB55F97D87FB2E5F4A35123FBE1539F73BE0CDD909024C6091168E03C9D8AED4FE37C7E55DE05D29B38C6793AF95CCB4EBE64AF8418E935EDE13C9D4AA43A31DF15198313A4F7741BE7E9E473B739FDB647797748EF9B8FF374EACDEBB7F87D4EED8C839BF41E7AF3EF37966FA6C0F390DE389B4FC703D7219CCFF7CAEB2A78ECEC3F33DE6F0C128B51010100000A0201006E1D8BEE3B010000789CB5D7CF2BC3611C07F0673FCCA82D09ED62B9482B07B2466B62651C96B27010E5BC0B0E5AF9D1EEBBAEE861ECE0B0B4215F9C8C72211711FE80156AA2969883323ECFB36FDF69794A7A3E4F7DFA66BDBF7BEDF3FCF8F6D5643510AF23A6674532D7853AE2D711185DD9CC10BB3E7EF92AD9D50C155CA5A493FC3E74BAF2BFCB3FF9E3D87299F9FDAA9710C4F465DFAE87F11F6E93F4F3FE8C5053E0750B72B2FACB503FF70C5033E0B5207B87CA05F7D8CD83314AC691BDF40FCF9DA06402D9DBEBEFE5FB852D7E04BC10B2D7623DD6FA7B026F14D90B1C0D68FB25079E13D9EB081BB9570D5595A4A411D98B2E7AF8FAB1FEAEC153043959E77D6EA7F87CA956BDB42027AB3F6AF572CF0E7503DE3AB21757BD0AD58B0B72B2E633A4AE1F9BCF5BF076053959FDDD5D16CF03FBB12B294A7A90BDE5D35AED3CAC826747F64E2BDDDAF38C7951414ED6FA05CE9F4DECDA071503CF22C8C9EAAFD134C6E7D3A47AED829CACFEC2EFD3DA7E5903CF87ECF9BC76EE39A036C06B16E464CDA7A530ACCD27F3DA043959FD1DE43EF97EB141BD6C53522FC8C9EACFE934F3FED8F3EC15BC5664AFC15C3A7F79F09690BD913713EFAF06EA033C1BB21754DF97D8CD05F066053959FB6572C1A379F70A2529644F89B8B4F78907F0CE043959F3198A94FE5FC9827782ECE5E78BF3C9DECBAEF62949227BDF053E7F1501010000C2010C007A1D8BEE3B010000789CDDD7BB4E02411406E0B32C97050444D7DE525FC0186321A220E00595173034BE803458D85A888D319B58788B86441313E8B4B2B4D51720B1B133B1B321FE878B910D1B89D939852739336133EC37333B3B03555DA7C4E48987931ACF4D93321A21A6DF1A79AE2FA209836B1FF2A56ED129F50F4DB37FB65F192C8E6EA65A5E1019BDB7E84CB177BEDFF6F8CB25788F8ABDADDDD9961767FBC1A23BC55EADE3459097F06A8ABD4A2CF13D9F99278BEA8ABD8FCE7AE1F5998577A5D8DB29B7E7938B1CBC5BC59ED1A927C8FE9EA67BDE53726C97EA69C7D743E475F57E5ECCBEBBFD0BB87ABF39AD48E3017BBB6C4FBBF752C1CF75EDD8A4C47C8C9C1ED69F1E629FE87A9F58B849785E21EF00DE023C8F905744B9082F28E41DA24CC1F309794D9D280D2F20E46D63604BF09CC26DEF159981A70B791564169EE1D0CE6DAF8CCCC11B12F2AE91CBF0C242DE1E72059E5FC89B41AEC20B0979BC8FADC11B13F2F83DC8C31B15F2787CEBF046147BD55FFE07FC1CFF06FA33ACB83F5D8FCFC54D78A690C7E32BC08B0B791E6C74C1648CA2429E810515821711F24C9C5761784E27965BDE7F8FEEFE3DE8EFE22F912EBC52
|
|
@ -0,0 +1,41 @@
|
|||
using FFXIVClassic_Lobby_Server.packets;
|
||||
using FFXIVClassic_Map_Server.dataobjects;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory
|
||||
{
|
||||
class InventoryItemEndPacket
|
||||
{
|
||||
|
||||
public const ushort OPCODE = 0x0149;
|
||||
public const uint PACKET_SIZE = 0x90;
|
||||
|
||||
public static SubPacket buildPacket(uint playerActorID, List<Item> items, ref int listOffset)
|
||||
{
|
||||
byte[] data;
|
||||
|
||||
using (MemoryStream mem = new MemoryStream())
|
||||
{
|
||||
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
||||
{
|
||||
for (int i = listOffset; i < items.Count; i++)
|
||||
{
|
||||
binWriter.Write(items[i].toPacketBytes());
|
||||
listOffset++;
|
||||
}
|
||||
}
|
||||
|
||||
data = mem.GetBuffer();
|
||||
}
|
||||
|
||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
using FFXIVClassic_Lobby_Server.packets;
|
||||
using FFXIVClassic_Map_Server.dataobjects;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory
|
||||
{
|
||||
class InventoryItemPacket
|
||||
{
|
||||
|
||||
public const ushort OPCODE = 0x014B;
|
||||
public const uint PACKET_SIZE = 0x90;
|
||||
|
||||
public static SubPacket buildPacket(uint playerActorID, List<Item> items, ref int listOffset)
|
||||
{
|
||||
byte[] data;
|
||||
|
||||
using (MemoryStream mem = new MemoryStream())
|
||||
{
|
||||
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
||||
{
|
||||
for (int i = listOffset; i < items.Count; i++)
|
||||
{
|
||||
binWriter.Write(items[i].toPacketBytes());
|
||||
listOffset++;
|
||||
}
|
||||
}
|
||||
|
||||
data = mem.GetBuffer();
|
||||
}
|
||||
|
||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
using FFXIVClassic_Lobby_Server.packets;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory
|
||||
{
|
||||
class InventorySetBeginPacket
|
||||
{
|
||||
public const ushort OPCODE = 0x0146;
|
||||
public const uint PACKET_SIZE = 0x28;
|
||||
|
||||
public const ushort CODE_ITEMS = 0x0000;
|
||||
public const ushort CODE_CURRANCYITEMS = 0x0063;
|
||||
public const ushort CODE_KEYITEMS = 0x0064;
|
||||
|
||||
public static SubPacket buildPacket(uint playerActorID, ushort size, ushort code)
|
||||
{
|
||||
byte[] data = new byte[8];
|
||||
|
||||
using (MemoryStream mem = new MemoryStream(data))
|
||||
{
|
||||
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
||||
{
|
||||
binWriter.Write((UInt32)playerActorID);
|
||||
binWriter.Write((UInt16)size);
|
||||
binWriter.Write((UInt16)code);
|
||||
}
|
||||
}
|
||||
|
||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
using FFXIVClassic_Lobby_Server.packets;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FFXIVClassic_Map_Server.packets.send.Actor.inventory
|
||||
{
|
||||
class InventorySetEndPacket
|
||||
{
|
||||
|
||||
public const ushort OPCODE = 0x0147;
|
||||
public const uint PACKET_SIZE = 0x28;
|
||||
|
||||
public static SubPacket buildPacket(uint playerActorID)
|
||||
{
|
||||
return new SubPacket(OPCODE, playerActorID, playerActorID, new byte[8]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue