Jump to content

John Lamprou

Members
  • Posts

    131
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by John Lamprou

  1. gve kai la2-world eine open aplos oxi gia mxb forum.Gve is ready not attept its work
  2. Process of authorization on a login-server and call on a game-server Authorization on a login a server occurs in some stages. 1) a login the server sends us a greeting in the form of a package in length of 11 bytes (in general it contains the information on the version). 2) we answer it RequestAuthLogin with inquiry 3) if the password true, sends us a package with 32 bit number of our account (it always constant) - we shall call SessionKey *1. 4) we send it RequestServerList, on what the server answers us the list of servers containing game, ports, number of playing users, the maximal number of users. 5) we send RequestServerLogin, on what the server checks ours AccessLevel (if it is equal-1, means we banned) and depending on our login, the password, a level of access and a socket, generates unique 32-bit SessionKey *2 on which in a consequence we will be authorized with a game-server. If the game server in down, simulates this condition (administrators do it for work on a server) or is simply full, refuses to accept us. 6) if all is good, we climb on a game server. We send it a certain package (for everyone C3 a server it the, but constant), on what it answers 12 byte with a package containing first 4 bytes of key which it is fastened to others 4 bytes (which are constant) and is received 64 a bit key. In the further we shall use it for decoding and coding game packages. It is important to note, that with everyone of races coded a package, its length increases to the first part of a key. 7) we send it a login and two identifiers (already in the ciphered kind) which we have received in a session with a login-server. In the answer we receive the list of characters. Here so, in 7 stages we shall be authorized on a server =) Difficultly, but it is safe. Probably, someone from you had a question: and whether probably to come on a game server directly? Without participation a login of a server. About it I shall write below. 2. Enciphering packets As I already wrote enciphering of packages above, for enciphering game packages lineage uses a 64-bit key. The first it 4 byte undertake from the very first package of the game-server, the second. N-th symbol from a clear text, XOR's with N-th byte a key further undertakes. In parallel with it XOR's (N-1)-th symbol from a clear text on 0xFF. Above results of both calculations operation " digit-by-digit And " is spent. And on such algorithm each symbol since the first is ciphered. As you can see, as each subsequent symbol will be ciphered, depends from previous. And it means, that if at us the first part of a package is for whatever reasons damaged, or it simply is not present, decipher the second part we cannot. Well it so, to a word. Actually it for us is not important. Still it is important to note that the first part of a key variable. With each new deciphered package, to the first I 4 byte the length of these to data increases. That is, having an initial key (at the moment of connection with a login a server) and, having pulled out a package during the certain moment from a session with a game-server decipher it we cannot. For this purpose we need to restore all packages which were up to it. Basically, quantity of possible combinations of a key of equally ~423 million. In view of simplicity of algorithm, modern computers can make somewhere 10 000 iterations in a second (can even more) and to find a key a maximum for 12 hours. But for this purpose we need to know even about the maintenance of a package. For what authors have made a key to variables? I think, all it is clear, with a view of safety. Though, it is a question about TCP (instead of about UDP as in the same halflife) in which someone stranger "to put" in a session extremely inconveniently. 4.Protocol. As well as in packages of the login-server, first two byte are allocated towards the length. Further the byte means type of a package. Here on types of packages which the client lineage2 (should process C3 the some people I shall make comments): // sends a login-server 0x01 loginfail2 0x02 accountKicked1 0x03 loginok 0x04 serverlist 0x05 serverfail 0x06 playfail 0x07 playok 0x08 accountKicked 0x09 blockedAccMsg // banned 0x20 protocol version different 0x00 VersionCheck // Sends a game-server 0x01 MoveToLocation 0x02 NpcSay 0x03 CharInfo // Means surrounding characters 0x04 UserInfo 0x06 Attack 0x07 Attack 0x08 Attacked 0x09 Attacked 0x0a AttackCanceld 0x0b Die 0x0c Revive 0x0d AttackOutOfRange 0x0e AttackInCoolTime 0x0f AttackDeadTarget 0x10 LeaveWorld 0x11 AuthLoginSuccess 0x12 AuthLoginFail 0x13 CharList // The chars list 0x15 SpawnItem // On the some people C3 the answer to a choice char 0x16 DropItem // On the some С3 transfers info about mob 0x17 GetItem 0x18 EquipItem 0x19 UnequipItem 0x1a StatusUpdate 0x1b NpcHtmlMessage // To the some people C3 transfers the list clothes with ItemID and them ObjectID 0x1c SellList 0x1d BuyList 0x1e DeleteObject 0x1f CharSelectInfo 0x20 LoginFail 0x21 CharSelected 0x22 NpcInfo 0x23 NewCharacterSuccessPacket 0x24 NewCharacterFailPacket 0x25 CharCreateOk 0x26 CharCreateFail 0x27 ItemList 0x28 SunRise 0x29 SunSet 0x2a EquipItemSuccess // Has become outdated 0x2b EquipItemFail // Has become outdated 0x2c UnEquipItemSuccess // Has become outdated 0x2d UnEquipItemFail // Has become outdated 0x2e TradeStart 0x2f TradeStartOk // Has become outdated 0x30 TradeOwnAdd 0x31 TradeOtherAdd 0x32 TradeDone 0x33 CharDeleteSuccess 0x34 CharDeleteFail 0x35 ActionFail 0x36 ServerClose 0x37 InventoryUpdate 0x38 TeleportToLocation 0x39 TargetSelected 0x3a TargetUnselected 0x3b AutoAttackStart 0x3c AutoAttackStop 0x3d SocialAction 0x3e ChangeMoveType 0x3f ChangeWaitType 0x40 NetworkFail // Has become outdated 0x43 CreatePledge 0x44 AskJoinPledge 0x45 JoinPledge 0x46 WithdrawalPledge 0x47 OustPledgeMember 0x48 SetOutPledgeMember 0x49 DismissPledge 0x4a SetDismissPledge 0x4b AskJoinParty 0x4c JoinParty 0x4d WithdrawalParty 0x4e OustPartyMember 0x4f SetOustPartyMember 0x50 DismissParty 0x51 SetDismissParty 0x52 MagicAndSkillList 0x53 WarehouseDepositList 0x54 WarehouseWithdrawalList 0x55 WarehouseDone 0x56 ShortCutRegister 0x57 ShortCutInit 0x58 ShortCutDelete 0x59 StopMove 0x5a MagicSkillUser 0x5b MagicSkillCanceld 0x5d CreatureSay 0x5e EquipUpdate 0x5f StopMoveWithLocation 0x60 DoorInfo 0x61 DoorStatusUpdate 0x63 PartySmallWindowAll 0x64 PartySmallWindowAdd 0x65 PartySmallWindowDeleteAll 0x66 PartySmallWindowDelete 0x67 PartySmallWindowUpdate 0x68 PledgeShowMemberListAll 0x69 PledgeShowMemberListUpdate 0x6a PledgeShowMemberListAdd 0x6b PledgeShowMemberListDelete 0x6c MagicList // Has become outdated 0x6d SkillList 0x6e VehicleInfo 0x6f VehicleDeparture 0x70 VehicleCheckLocation 0x71 GetOnVehicle 0x72 GetOffVehicle 0x73 TradeRequest 0x74 RestartResponse 0x75 MoveToPawn 0x76 SetTo 0x77 StartRotating 0x78 FinishRotating 0x79 MoveBackwardToLocation // Is available in view of skill or to_the_nearest_village after death 0x7a SystemMessage 0x7d StartPledgeWar 0x7e ReplyStartPledgeWar 0x7f StopPledgeWar 0x80 ReplyStopPledgeWar 0x81 SurrenderPledgeWar 0x82 ReplySurrenderPledgeWar 0x83 SetPledgeCrest // Has become outdated 0x84 PledgeCrest 0x85 SetupGauge 0x86 ShowBoard 0x87 ChooseInventoryItem 0x89 MoveToLocationInVehicle 0x8a StopMoveInVehicle 0x8b ValidateLocationInVehicle 0x8c TradeOtherAdd2 0x8d TradePressOwnOK // Has become outdated 0x8e MagicSkillLaunched 0x8f FriendAddRequestResult 0x90 FriendAdd // Has become outdated 0x91 FriendRemove // Has become outdated 0x92 FriendList // Has become outdated 0x93 FriendStatus // Has become outdated 0x94 TradePressOtherOk // Has become outdated 0x95 FriendAddRequestResult2 0x96 LeaveWorld2 0x97 AbnormalStatusUpdate 0x98 QuestList 0x99 EnchantResult 0x9a AuthServerList // Has become outdated 0x9b PledgeShowMemberListDeleteAll 0x9c PledgeInfo 0x9d PledgeExtendedInfo 0x9e SurrenderPersonally 0x9f Ride 0xa1 PledgeShowInfoUpdate 0xa2 ClientAction 0xa3 AquireSkillList 0xa4 AquireSkillInfo 0xa5 ServerObjectInfo 0xa6 HideGm 0xa7 AquireSkillDone 0xa8 GMViewCharacterInfo 0xa9 GMViewPledgeInfo 0xaa GMViewSkillInfo 0xab GMviewMagicInfo 0xac GMViewQuestInfo 0xad GMViewItemList 0xae GMViewWarehouseWithdrawList 0xaf PartyMatchList 0xb0 PartyMatchDetail 0xb1 PlaySound 0xb2 StaticObject 0xb3 PrivateSellList2 0xb4 PrivateBuyList2 0xb5 PrivateStoreMsg 0xb6 ShowMinimapPacket 0xb7 ReviveRequest // Has become outdated 0xb8 AbnormalVisualEffect 0xb9 TutorialShowHtml 0xba TutorialShowQuestionMark 0xbb TutorialEnableClientEvent 0xbc TutorialClose 0xbd ShowRadar 0xbe DeleteRadar 0xbf MyTargetSelected 0xc0 PartyMemberPosition 0xc1 AskJoinAlliance 0xc2 JoinAlliance 0xc3 WithdrawAlliance 0xc4 OustAllianceMemberPledge 0xc5 DismissAlliance 0xc6 SetAllianceCrest // Has become outdated 0xc7 ReceiveAllyCrest 0xc8 ServerCloseSocket // Has become outdated 0xc9 PetStatusShow 0xca PetInfo 0xcb PetItemList 0xcc PetInventoryUpdate 0xcd AllianceInfo // Has become outdated 0xce PetStatusUpdate 0xcf PetDelete 0xd0 PrivateSellList 0xd1 PrivateBuyList 0xd2 PrivateStoreMsg 0xd3 VehicleStart 0xd4 RequestTimeCheck 0xd5 StartAllianceWar 0xd6 ReplyStartAllianceWar // Has become outdated 0xd7 StopAllianceWar 0xd8 ReplyStopAllianceWar // Has become outdated 0xd9 SurrenderAllianceWar // Has become outdated 0xda SkillCoolTimePacket 0xdb PackageToListPacket 0xdc PackageSendableListPacket 0xdd EarthQuake 0xde FlyToLocation 0xdf BlockList // Has become outdated 0xe0 SpecialCamera 0xe1 NormalCamera 0xe2 CastleSiegeInfoPacket 0xe3 CastleSiegeAttackerList 0xe4 CastleSiegeDefenderList 0xe5 NickNameChanged 0xe6 PledgeStatusChanged 0xe7 RelationChanged 0xe8 OnEventTrigger 0xe9 MultiSellListPacket 0xea SetSummonRemainTime 0xeb OnSkillRemainSec 0xec NetPingPacket From the client to a server: 0x01 MoveBackwardToLocation 0x02 Say 0x03 EnterWorld 0x04 Action 0x08 RequestAuthLogin 0x09 Logout 0x0a Attack 0x0b CharacterCreate 0x0c CharacterDelete 0x0d CharacterSelect 0x0e NewCharacter 0x0f ItemList 0x10 RequestEquipItem 0x11 RequestUnEquipItem 0x12 RequestDropItem 0x12 RequestDropItemFromPet 0x14 UseItem 0x15 TradeRequest 0x16 AddTradeItem 0x17 TradeDone 0x1a RequestTeleport 0x1b SocialAction 0x1c ChangeMoveType // Has become outdated. Now used 'RequestActionUse' 0x1d ChangeWaitType // Has become outdated. Now used 'RequestActionUse' 0x1e RequestSellItem 0x1f RequestBuyItem 0x20 RequestLinkHtml 0x21 RequestBypassToServer 0x22 RequestBBSwrite 0x23 RequestCreatePledge 0x24 RequestJoinPledge 0x25 RequestAnswerJoinPledge 0x26 RequestWithDrawalPledge 0x27 RequestOustPledgeMember 0x28 RequestDismissPledge 0x29 RequestJoinParty 0x2a RequestAnswerJoinParty 0x2b RequestWithDrawalParty 0x2c RequestOustPartyMember 0x2d RequestDismissParty 0x2e RequestMagicSkillList 0x2f RequestMagicSkillUse 0x30 Appearing 0x31 SendWareHouseDepositList 0x32 SendWareHouseWithDrawList 0x33 RequestShortCutReg 0x34 RequestShortCutUse 0x35 RequestShortCutDel 0x37 RequestTargetCancel 0x38 Say2 // private (on some servers - la2.ru - used 0x39) 0x3c RequestPledgeMemberList 0x3e RequestMagicList 0x3f RequestSkillList 0x41 MoveWithDelta 0x42 GetOnVehicle 0x43 GetOffVehicle 0x44 AnswerTradeRequest 0x45 RequestActionUse 0x46 RequestRestart 0x47 RequestSiegeInfo 0x48 ValidatePosition 0x49 RequestSEKCustom 0x4a StartRotating 0x4b FinishRotating 0x4d RequestStartPledgeWar 0x4e RequestReplyStartPledgeWar 0x4f RequestStopPledgeWar 0x50 RequestReplyStopPledgeWar 0x51 RequestSurrenderPledgeWar 0x52 RequestReplySurrenderPledgeWar 0x53 RequestSetPledgeCrest 0x55 RequestGiveNickName // In general used for installation title CL's. Can for what… 0x57 RequestShowboard 0x58 RequestEnchantItem 0x59 RequestDestroyItem 0x5b SendBypassBuildCmd 0x5e RequestFriendInvite 0x5f RequestFriendAddReply 0x60 RequestFriendList 0x61 RequestFriendDel 0x62 CharacterRestore 0x63 RequestQuestList 0x64 RequestDestroyQuest 0x66 RequestPledgeInfo 0x67 RequestPledgeExtendedInfo 0x68 RequestPledgeCrest 0x69 RequestSurrenderPersonally 0x6a Ride 0x6b RequestAcquireSkillInfo 0x6c RequestAcquireSkill 0x6d RequestRestartPoint 0x6e RequestGMCommand 0x6f RequestPartyMatchConfig 0x70 RequestPartyMatchList 0x71 RequestPartyMatchDetail 0x72 RequestCrystallizeItem 0x73 RequestPrivateStoreManage 0x74 SetPrivateStoreList 0x75 RequestPrivateStoreManageCancel 0x76 RequestPrivateStoreQuit 0x77 SetPrivateStoreMsg 0x78 RequestPrivateStoreList 0x79 SendPrivateStoreBuyList 0x7a ReviveReply 0x7b RequestTutorialLinkHtml 0x7c RequestTutorialPassCmdToServer 0x7d RequestTutorialQuestionMark 0x7e RequestTutorialClientEvent 0x7f RequestPetition 0x80 RequestPetitionCancel 0x81 RequestGMList 0x82 RequestJoinAlly 0x83 RequestAnswerJoinAlly 0x84 RequestWithdrawAlly 0x85 RequestOustAlly 0x86 RequestDismissAlly 0x87 RequestSetAllyCrest 0x88 RequestAllyCrest 0x89 RequestChangePetName 0x8a RequestPetUseItem 0x8b RequestGiveItemToPet 0x8c RequestGetItemFromPet 0x8e RequestAllyInfo 0x8f RequestPetGetItem 0x90 RequestPrivateStoreBuyManage 0x91 SetPrivateBuyList 0x92 RequestPrivateStoreBuyManageCancel 0x93 RequestPrivateStoreBuyQuit 0x94 SetPrivateBuyMsg 0x95 RequestPrivateStoreBuyList 0x96 SendPrivateStoreBuyBuyList 0x97 SendTimeCheckPacket 0x98 RequestStartAllianceWar 0x99 ReplyStartAllianceWar 0x9a RequestStopAllianceWar 0x9b ReplyStopAllianceWar 0x9c RequestSurrenderAllianceWar 0x9d RequestSkillCoolTime 0x9e RequestPackageSendableItemList 0x9f RequestPackageSend 0xa0 RequestBlock 0xa1 RequestCastleSiegeInfo 0xa2 RequestCastleSiegeAttackerList 0xa3 RequestCastleSiegeInfo 0xa4 RequestJoinCastleSiege 0xa5 RequestConfirmCastleSiegeWaitingList 0xa6 RequestSetCastleSiegeTime 0xa7 RequestMultiSellChoose 0xa8 NetPing As you can see, the majority of client packages begins with word Request that is translated as "inquiry". Yes, really, all process of game looks approximately so: the server constantly transfers us a condition of the world, position of Mobs/players/npc and others. We when something should (be gone, attacked and other) transfer "inquiry". All is very simple. 4. XID and ObjectID each thing (the subject, NPC) in game has the 16/32 bit the identifier (trades - 8 bit). Its sense that, you see, it is more convenient to transfer on a network 2/4 byte number, than a phrase of N length like: " Crystal Scroll: Enchant Weapon (Grade B) " or nickname NPC like " Magister EzEraL ". As you understand, it serves for identification of this or that object. The list of these identifiers and NPC/subjects corresponding them to be stored and on a server and the client, and among themselves they is not synchronized in any way. That is, if to replace this table on a server it is necessary and the client is one of the reasons, why at each server the patch. Besides this identifier is still 32 bit Object ID. After call in the game world, a server appropriates to each of subjects which are at the Persian, unique OID. And OID each subsequent subject is OID current-1. That is OID it is generated at all random, and under the order. After assignment, OID it is reserved, so that anybody has not managed any more to receive similar. This information, by the way, is not confirmed by source codes, that is is my own conclusion. If it not so, on proprocession of a full circle (from 0xFFFFFFFF up to 0x00000000) it can it will turn out so, that already borrowed OID it will be appropriated to a new belonging, that will lead to unknown consequences (to an opportunity of cloning or simple falling of a server). But a problem that range OID enough big:) And if to be more exact, it is necessary to appropriate OID to ~4.3 billion things to pass a full circle, what even on a server with mega-online will borrow N of days (and can also weeks). Still time I shall repeat, this all the assumption. But the matter is that I, for example, Did not see some la2 server (even off) with uptime more than week. The problem just in it can? And as a whole, OID it is necessary for struggle against cloning. To be exact with revealing of this. As to NPC, OID at them stands out under the same law, but at occurrence NPC in the world. With OID characters the same. 5. Examples of packages. a) purchase of subjects to put on buying up a subject, we need to take advantage with 3 of packages. The first 0x94 (SetPrivateBuyMsg). Apparently from the name it establishes that message which will be is deduced above a head at the Persian during the moment of trade (what on a yellow background). Here an example: // SetPrivateStoreBuyMsg a package XX XX // the Size of data 94 // type of a package 41 00 41 00 41 00 42 00 42 00 42 00 // the text. Symbols should be divided among themselves null-byte 00 00 // the end of a package Further we use a package of type 0x91 (SetPrivateBuyList). In it just we transfer quantity of subjects, Item ID and the price. For example: // SetPrivateStoreList a package XX XX // the Size of data 91 // type of a package 01 00 00 00 // quantity of things // the beginning of the block e1 02 00 00 // Item ID 00 00 01 00 00 00 // how many subjects of the given type to buy up e8 03 00 00 // the price // the end of the block I shall a little explain this package. We have put them on buying up 1 thing with IID 0x2e1 (Scroll of Resurrection) for 1000 аден. And last package of type 0x1d. As to sale, there practically all same. Only instead of ' SetPrivateBuyMsg ' used ' SetPrivateStoreMsg ', and instead of ' SetPrivateBuyList ' - ' SetPrivateStoreList ' accordingly. And, nearly has not forgotten, instead of Item ID used Object ID because we sell any concrete subject. b) private messages Here all is very simple. XX XX // the size of data 38 // type of a package (Say2) 42 00 42 00 42 00 42 // the message (BBBB) 00 00 00 02 00 00 00 // breakspace=) 41 00 41 00 41 00 41 // nickname (АААА) 00 00 00 // the end c) an example of a package in which the server transfers us the list of all subjects which are on чаре. And, this package assigns to everyone Item ID unique Object ID. XX XX // length of a package 1b // type of a package (0x1b on antaras.ru) 00 00 05 00 // quantity of subjects 04 00 // type of a belonging 1e 26 14 40 // Object ID d4 15 00 00 // Item ID (0x15d4 - Tutorial Guide) 01 00 00 00 // Quantity 05 00 00 00 00 00 00 00 00 00 00 00 00 00 // Enchanting, quest item, droped or not and still something 01 00 // type of a belonging 1d 26 14 40 // Object ID 7b 04 00 00 // Item ID (0x47b - Squire's pants) 01 00 00 00 // Quantity 01 00 00 00 00 00 00 08 00 00 00 00 00 00 01 00 // type of a belonging 1c 26 14 40 // Object ID 7a 04 00 00 // Item ID (0x47a - Squire's Shirt) 01 00 00 00 // Quantity 01 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 // type of a belonging 1b 26 14 40 // Object ID 0a 00 00 00 // Item ID (0x0a - dagger) 01 00 00 00 // Quantity 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 // type of a belonging 1a 26 14 40 // Object ID 42 09 00 00 // Item ID (0x942 - Guild Member's Club) 01 00 00 00 // Quantity 00 00 00 00 00 00 80 00 00 00 00 00 00 00 d) we speak with NPC on an example of learning skills For the beginning, we need to allocate NPC and to get with it dialogue: 04 // type of a package (Action) 51 14 10 48 // OID NPC // further there are coordinates the character c6 51 01 00 // X 52 45 02 00 // Y b8 f2 ff ff // Z 00 // the end 21 // type of a package (RequestBypassToServer) 6c 00 65 00 61 00 72 00 6e 00 5f 00 73 00 6b 00 69 00 6c 00 6c 00 00 // learn_skill 00 // the end Thas from now
  3. If you bored to leaching and use free l2j portals and you want to create yours or modify another l2j website i share a php guide that i will teach you how to make php access to mysql(for register module,online players and ect)and use htmls with php I find it in google and i add many things in this guide Download link:http://rapidshare.com/files/63875915/phpm.doc.html
  4. Also a developing section for pc languages for c++,java and ect soto help other ppl to understand
  5. Paidia egw kai 3 filoi m 8a open a professonal server off c5-interlude.And we are searching gia allous admins p 3eroun apo gm se off kai eine diathesimoi na boithisoun na plirosoun gia server host
  6. Login-server. Introduction. We shall begin that developers lineage2 have separated a login a server from game more less to unload and without that the hammered channel of a game server. Besides the login a server has property to hang (and, it has begun with с3 versions lineage and proceeds to this day) and to not start up users on a server. But those who already play, do not test absolutely any discomfort =) And owing to out all of the same gays which could find and distinctly explain to developers where all the bug has crept in, it remains till now not fixed. And so, not looking at all charm of idea with unloading the game channel, our domestic administrators persistently mould a login a server on one machine together with game. Enciphering of packages For enciphering packages which the login-server exchanges with the client, lineage uses blowfish. Yes, that algorithm which has been developed by Bruce Shnejerom in 1993. About blowfish it is important to know, that it is the symmetric block code. Symmetric - means, that the algorithm uses 1 confidential key by which data encrypt/decrypt will be decoded. And if to speak particularly about blowfish on the basis of this key are generated 18 32-bit keys and 4 matrixes in the size of 256 32-bit words everyone. By which data, in turn, encrypt.will be decoded. The block code - means, that blowfish processes given by blocks (on 8 bytes). And still it means, that if integrity has been broken, we in a any way can restore a part. With reference to lineage, it is necessary to tell, that a key on the basis of which are generated connect, is a constant and it is precisely registered in source codes l2j (here on what 99 % of researchers lineage which assumed were strewed, that the key should be transferred in one of packages - see references in the end). Still it is important to note that the first 2 byte data of a package are not ciphered. With enciphering, I think, we have understood. We go further. 2. Structure of packages(login). First two byte a package (what are not ciphered) contain length of data of a package (as well as in halflife). The following byte bears in itself the information on type of a package. The login-server processes packages: 0x00 - RequestAuthLogin (the inquiry about authorization - contains a login and the password) 0x02 - RequestServerLogin (inquiry about call about a server) 0x05 - RequestServerList (inquiry about the list of servers) On the others it simply does not answer, leaving only record in broad gullies. The client processes packages of following types: 0x01 - authorization has not passed 0x03 - you are successfully authorized 0x04 - the answer on RequestServerLogin 0x06 - the answer on RequestServerList The designer of packages on С(example. With structure of packages we have understood, now it is possible to realize in programm everything, that was manual above. Код: /* la2-example.c ~ LineAge2 c4 RequestAuthLogin packet constructor Helps to understand lineage2 authentification. EzEraL ~broken */ #include "/usr/local/include/blowfish.h" // length key #define KEY_LEN 20 // Length RequestAuthLogin of a package is constant and equal AUTH_PKT_LEN + 2 #define AUTH_PKT_LEN 0x30 // Key on the basis of which are generated sub-keys (connect) char key[] = "[;'.]94-31==-&%@!^+]"; // Structure bfkey which after generation sub-keys will contain 18 P sub-keys and 4 S matrixes BF_KEY bfkey; // Function which calculates checksum and inserts it into a package int add_ckecksum(char *raw, int count) { long chksum = 0L; int i = 0; long ecx; for(i = 0; i < count; i += 4) { ecx = raw; ecx |= raw[i + 1]; ecx |= raw[i + 2]; ecx |= raw[i + 3]; chksum ^= ecx; } printf("checksum: 0x%x\n",chksum); memcpy(raw+count, (char *)&chksum, 4); } // Adds a login and the password in a package (it is separated from the basic function from reasons readable) int add_lp(char *raw, char *l, char *p) { l[15] = '\0'; p[17] = '\0'; memcpy(raw+3,l,strlen(l)); memcpy(raw+17,p,strlen(p)); } // Displays a package in a readable kind (for debugging) int print_packet(char *raw, int len) { int i, c = 0; for(i=0;i<54;i++) printf("_"); for(i=0;i<len+2;i++) { if((c % 0x10)==0) printf("\n0x%.2x | ", c); printf("%.2x ",raw & 0xFF); c++; } printf("\n\n"); } // The main function which designs a package int build_auth_packet(char *login, char *pwd) { int count = AUTH_PKT_LEN / 8; int i; char packet_skeleton[] = // packet skeleton RequestAuthLogin "\x32\x00" // The length of a package is constant and equal 0x30 + 0x02 "\x00" // Type of a package (0x00 - RequestAuthLogin) "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" // login "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" // password "\x08" // Means the end of section login/password "\x00\x00\x00\x00\x00\x00\x00\x00" // in c4 not used(зарезервированно?) "\x00\x00\x00\x00" // checksum "\x00\x00\x00\x00"; // add login and pass to packet add_lp(packet_skeleton, login, pwd); // add checksum add_ckecksum(packet_skeleton + 2, AUTH_PKT_LEN - 8); printf("Auth packet dump (non-crypted):\n"); print_packet(packet_skeleton, AUTH_PKT_LEN); // We cipher blocks on 8 bytes for(i = 0; i < count; i++) BF_encrypt((BF_LONG *)((short*)&packet_skeleton+1+i*4), &bfkey, BF_ENCRYPT); printf("Auth packet dump (encrypted):\n"); print_packet(packet_skeleton,AUTH_PKT_LEN); } int main() { char login[] = "m00", // test login pwd[] = "ownzu"; // password printf("\nla2-example.c ~ LineAge2 c4 RequestAuthLogin packet constructor\n\n"); // generate sub-keys BF_set_key(&bfkey, KEY_LEN, key); // We collect a package build_auth_packet(login, pwd); } /* eof */ Here that on my boxing the program has displayed: bash-2.05b$ ./a.out la2-example.c ~ LineAge2 c3 RequestAuthLogin packet constructor checksum: 0x224a0377 Auth packet dump (non-crypted): ______________________________________________________ 0x00 | 32 00 00 6d 30 30 00 00 00 00 00 00 00 00 00 00 0x10 | 00 6f 77 6e 7a 75 00 00 00 00 00 00 00 00 00 00 0x20 | 00 08 00 00 00 00 00 00 00 00 77 03 4a 22 00 00 0x30 | 00 00 Auth packet dump (encrypted): ______________________________________________________ 0x00 | 32 00 09 d9 97 e2 29 89 8c b5 1a a0 1a 83 74 43 0x10 | 39 fc 2f 03 c3 26 9c 65 b0 c4 20 28 11 c1 6a 95 0x20 | 3e 44 45 46 2a ae b9 18 91 2e 75 56 d0 dc 40 b5 0x30 | 77 2a List of packages // sends a login-server 0x01 loginfail2 0x02 accountKicked1 0x03 loginok 0x04 serverlist 0x05 serverfail 0x06 playfail 0x07 playok 0x08 accountKicked 0x09 blockedAccMsg // banned 0x20 protocol version different 0x00 VersionCheck // Sends a game-server 0x01 MoveToLocation 0x02 NpcSay 0x03 CharInfo // Means surrounding characters 0x04 UserInfo 0x06 Attack 0x07 Attack 0x08 Attacked 0x09 Attacked 0x0a AttackCanceld 0x0b Die 0x0c Revive 0x0d AttackOutOfRange 0x0e AttackInCoolTime 0x0f AttackDeadTarget 0x10 LeaveWorld 0x11 AuthLoginSuccess 0x12 AuthLoginFail 0x13 CharList // The chars list 0x15 SpawnItem // On the some people C3 the answer to a choice char 0x16 DropItem // On the some С3 transfers info about mob 0x17 GetItem 0x18 EquipItem 0x19 UnequipItem 0x1a StatusUpdate 0x1b NpcHtmlMessage // To the some people C3 transfers the list clothes with ItemID and them ObjectID 0x1c SellList 0x1d BuyList 0x1e DeleteObject 0x1f CharSelectInfo 0x20 LoginFail 0x21 CharSelected 0x22 NpcInfo 0x23 NewCharacterSuccessPacket 0x24 NewCharacterFailPacket 0x25 CharCreateOk 0x26 CharCreateFail 0x27 ItemList 0x28 SunRise 0x29 SunSet 0x2a EquipItemSuccess // Has become outdated 0x2b EquipItemFail // Has become outdated 0x2c UnEquipItemSuccess // Has become outdated 0x2d UnEquipItemFail // Has become outdated 0x2e TradeStart 0x2f TradeStartOk // Has become outdated 0x30 TradeOwnAdd 0x31 TradeOtherAdd 0x32 TradeDone 0x33 CharDeleteSuccess 0x34 CharDeleteFail 0x35 ActionFail 0x36 ServerClose 0x37 InventoryUpdate 0x38 TeleportToLocation 0x39 TargetSelected 0x3a TargetUnselected 0x3b AutoAttackStart 0x3c AutoAttackStop 0x3d SocialAction 0x3e ChangeMoveType 0x3f ChangeWaitType 0x40 NetworkFail // Has become outdated 0x43 CreatePledge 0x44 AskJoinPledge 0x45 JoinPledge 0x46 WithdrawalPledge 0x47 OustPledgeMember 0x48 SetOutPledgeMember 0x49 DismissPledge 0x4a SetDismissPledge 0x4b AskJoinParty 0x4c JoinParty 0x4d WithdrawalParty 0x4e OustPartyMember 0x4f SetOustPartyMember 0x50 DismissParty 0x51 SetDismissParty 0x52 MagicAndSkillList 0x53 WarehouseDepositList 0x54 WarehouseWithdrawalList 0x55 WarehouseDone 0x56 ShortCutRegister 0x57 ShortCutInit 0x58 ShortCutDelete 0x59 StopMove 0x5a MagicSkillUser 0x5b MagicSkillCanceld 0x5d CreatureSay 0x5e EquipUpdate 0x5f StopMoveWithLocation 0x60 DoorInfo 0x61 DoorStatusUpdate 0x63 PartySmallWindowAll 0x64 PartySmallWindowAdd 0x65 PartySmallWindowDeleteAll 0x66 PartySmallWindowDelete 0x67 PartySmallWindowUpdate 0x68 PledgeShowMemberListAll 0x69 PledgeShowMemberListUpdate 0x6a PledgeShowMemberListAdd 0x6b PledgeShowMemberListDelete 0x6c MagicList // Has become outdated 0x6d SkillList 0x6e VehicleInfo 0x6f VehicleDeparture 0x70 VehicleCheckLocation 0x71 GetOnVehicle 0x72 GetOffVehicle 0x73 TradeRequest 0x74 RestartResponse 0x75 MoveToPawn 0x76 SetTo 0x77 StartRotating 0x78 FinishRotating 0x79 MoveBackwardToLocation // Is available in view of skill or to_the_nearest_village after death 0x7a SystemMessage 0x7d StartPledgeWar 0x7e ReplyStartPledgeWar 0x7f StopPledgeWar 0x80 ReplyStopPledgeWar 0x81 SurrenderPledgeWar 0x82 ReplySurrenderPledgeWar 0x83 SetPledgeCrest // Has become outdated 0x84 PledgeCrest 0x85 SetupGauge 0x86 ShowBoard 0x87 ChooseInventoryItem 0x89 MoveToLocationInVehicle 0x8a StopMoveInVehicle 0x8b ValidateLocationInVehicle 0x8c TradeOtherAdd2 0x8d TradePressOwnOK // Has become outdated 0x8e MagicSkillLaunched 0x8f FriendAddRequestResult 0x90 FriendAdd // Has become outdated 0x91 FriendRemove // Has become outdated 0x92 FriendList // Has become outdated 0x93 FriendStatus // Has become outdated 0x94 TradePressOtherOk // Has become outdated 0x95 FriendAddRequestResult2 0x96 LeaveWorld2 0x97 AbnormalStatusUpdate 0x98 QuestList 0x99 EnchantResult 0x9a AuthServerList // Has become outdated 0x9b PledgeShowMemberListDeleteAll 0x9c PledgeInfo 0x9d PledgeExtendedInfo 0x9e SurrenderPersonally 0x9f Ride 0xa1 PledgeShowInfoUpdate 0xa2 ClientAction 0xa3 AquireSkillList 0xa4 AquireSkillInfo 0xa5 ServerObjectInfo 0xa6 HideGm 0xa7 AquireSkillDone 0xa8 GMViewCharacterInfo 0xa9 GMViewPledgeInfo 0xaa GMViewSkillInfo 0xab GMviewMagicInfo 0xac GMViewQuestInfo 0xad GMViewItemList 0xae GMViewWarehouseWithdrawList 0xaf PartyMatchList 0xb0 PartyMatchDetail 0xb1 PlaySound 0xb2 StaticObject 0xb3 PrivateSellList2 0xb4 PrivateBuyList2 0xb5 PrivateStoreMsg 0xb6 ShowMinimapPacket 0xb7 ReviveRequest // Has become outdated 0xb8 AbnormalVisualEffect 0xb9 TutorialShowHtml 0xba TutorialShowQuestionMark 0xbb TutorialEnableClientEvent 0xbc TutorialClose 0xbd ShowRadar 0xbe DeleteRadar 0xbf MyTargetSelected 0xc0 PartyMemberPosition 0xc1 AskJoinAlliance 0xc2 JoinAlliance 0xc3 WithdrawAlliance 0xc4 OustAllianceMemberPledge 0xc5 DismissAlliance 0xc6 SetAllianceCrest // Has become outdated 0xc7 ReceiveAllyCrest 0xc8 ServerCloseSocket // Has become outdated 0xc9 PetStatusShow 0xca PetInfo 0xcb PetItemList 0xcc PetInventoryUpdate 0xcd AllianceInfo // Has become outdated 0xce PetStatusUpdate 0xcf PetDelete 0xd0 PrivateSellList 0xd1 PrivateBuyList 0xd2 PrivateStoreMsg 0xd3 VehicleStart 0xd4 RequestTimeCheck 0xd5 StartAllianceWar 0xd6 ReplyStartAllianceWar // Has become outdated 0xd7 StopAllianceWar 0xd8 ReplyStopAllianceWar // Has become outdated 0xd9 SurrenderAllianceWar // Has become outdated 0xda SkillCoolTimePacket 0xdb PackageToListPacket 0xdc PackageSendableListPacket 0xdd EarthQuake 0xde FlyToLocation 0xdf BlockList // Has become outdated 0xe0 SpecialCamera 0xe1 NormalCamera 0xe2 CastleSiegeInfoPacket 0xe3 CastleSiegeAttackerList 0xe4 CastleSiegeDefenderList 0xe5 NickNameChanged 0xe6 PledgeStatusChanged 0xe7 RelationChanged 0xe8 OnEventTrigger 0xe9 MultiSellListPacket 0xea SetSummonRemainTime 0xeb OnSkillRemainSec 0xec NetPingPacket From the client to a server: 0x01 MoveBackwardToLocation 0x02 Say 0x03 EnterWorld 0x04 Action 0x08 RequestAuthLogin 0x09 Logout 0x0a Attack 0x0b CharacterCreate 0x0c CharacterDelete 0x0d CharacterSelect 0x0e NewCharacter 0x0f ItemList 0x10 RequestEquipItem 0x11 RequestUnEquipItem 0x12 RequestDropItem 0x12 RequestDropItemFromPet 0x14 UseItem 0x15 TradeRequest 0x16 AddTradeItem 0x17 TradeDone 0x1a RequestTeleport 0x1b SocialAction 0x1c ChangeMoveType // Has become outdated. Now used 'RequestActionUse' 0x1d ChangeWaitType // Has become outdated. Now used 'RequestActionUse' 0x1e RequestSellItem 0x1f RequestBuyItem 0x20 RequestLinkHtml 0x21 RequestBypassToServer 0x22 RequestBBSwrite 0x23 RequestCreatePledge 0x24 RequestJoinPledge 0x25 RequestAnswerJoinPledge 0x26 RequestWithDrawalPledge 0x27 RequestOustPledgeMember 0x28 RequestDismissPledge 0x29 RequestJoinParty 0x2a RequestAnswerJoinParty 0x2b RequestWithDrawalParty 0x2c RequestOustPartyMember 0x2d RequestDismissParty 0x2e RequestMagicSkillList 0x2f RequestMagicSkillUse 0x30 Appearing 0x31 SendWareHouseDepositList 0x32 SendWareHouseWithDrawList 0x33 RequestShortCutReg 0x34 RequestShortCutUse 0x35 RequestShortCutDel 0x37 RequestTargetCancel 0x38 Say2 // private (on some servers - la2.ru - used 0x39) 0x3c RequestPledgeMemberList 0x3e RequestMagicList 0x3f RequestSkillList 0x41 MoveWithDelta 0x42 GetOnVehicle 0x43 GetOffVehicle 0x44 AnswerTradeRequest 0x45 RequestActionUse 0x46 RequestRestart 0x47 RequestSiegeInfo 0x48 ValidatePosition 0x49 RequestSEKCustom 0x4a StartRotating 0x4b FinishRotating 0x4d RequestStartPledgeWar 0x4e RequestReplyStartPledgeWar 0x4f RequestStopPledgeWar 0x50 RequestReplyStopPledgeWar 0x51 RequestSurrenderPledgeWar 0x52 RequestReplySurrenderPledgeWar 0x53 RequestSetPledgeCrest 0x55 RequestGiveNickName // In general used for installation title CL's. Can for what… 0x57 RequestShowboard 0x58 RequestEnchantItem 0x59 RequestDestroyItem 0x5b SendBypassBuildCmd 0x5e RequestFriendInvite 0x5f RequestFriendAddReply 0x60 RequestFriendList 0x61 RequestFriendDel 0x62 CharacterRestore 0x63 RequestQuestList 0x64 RequestDestroyQuest 0x66 RequestPledgeInfo 0x67 RequestPledgeExtendedInfo 0x68 RequestPledgeCrest 0x69 RequestSurrenderPersonally 0x6a Ride 0x6b RequestAcquireSkillInfo 0x6c RequestAcquireSkill 0x6d RequestRestartPoint 0x6e RequestGMCommand 0x6f RequestPartyMatchConfig 0x70 RequestPartyMatchList 0x71 RequestPartyMatchDetail 0x72 RequestCrystallizeItem 0x73 RequestPrivateStoreManage 0x74 SetPrivateStoreList 0x75 RequestPrivateStoreManageCancel 0x76 RequestPrivateStoreQuit 0x77 SetPrivateStoreMsg 0x78 RequestPrivateStoreList 0x79 SendPrivateStoreBuyList 0x7a ReviveReply 0x7b RequestTutorialLinkHtml 0x7c RequestTutorialPassCmdToServer 0x7d RequestTutorialQuestionMark 0x7e RequestTutorialClientEvent 0x7f RequestPetition 0x80 RequestPetitionCancel 0x81 RequestGMList 0x82 RequestJoinAlly 0x83 RequestAnswerJoinAlly 0x84 RequestWithdrawAlly 0x85 RequestOustAlly 0x86 RequestDismissAlly 0x87 RequestSetAllyCrest 0x88 RequestAllyCrest 0x89 RequestChangePetName 0x8a RequestPetUseItem 0x8b RequestGiveItemToPet 0x8c RequestGetItemFromPet 0x8e RequestAllyInfo 0x8f RequestPetGetItem 0x90 RequestPrivateStoreBuyManage 0x91 SetPrivateBuyList 0x92 RequestPrivateStoreBuyManageCancel 0x93 RequestPrivateStoreBuyQuit 0x94 SetPrivateBuyMsg 0x95 RequestPrivateStoreBuyList 0x96 SendPrivateStoreBuyBuyList 0x97 SendTimeCheckPacket 0x98 RequestStartAllianceWar 0x99 ReplyStartAllianceWar 0x9a RequestStopAllianceWar 0x9b ReplyStopAllianceWar 0x9c RequestSurrenderAllianceWar 0x9d RequestSkillCoolTime 0x9e RequestPackageSendableItemList 0x9f RequestPackageSend 0xa0 RequestBlock 0xa1 RequestCastleSiegeInfo 0xa2 RequestCastleSiegeAttackerList 0xa3 RequestCastleSiegeInfo 0xa4 RequestJoinCastleSiege 0xa5 RequestConfirmCastleSiegeWaitingList 0xa6 RequestSetCastleSiegeTime 0xa7 RequestMultiSellChoose 0xa8 NetPing
  7. man here is l2off section not l2j lol man
  8. First do you see one to compile the pack?no just use the compile version.Second do you see one to sumbit a bug?No Second many teams take the code and add them in their pack without credits.And so i will let leaching and steal codes from me?
  9. I update the file swich more retail but the whole project is not for public anymore
  10. La2-World is not availbale for the public.We add 1005 OF INTERLUDE skills and we dont share them
  11. Iparxoun ellines hackers alla i perisoteroi eine e3oteriko kai douleuoun
  12. Saki we discuss for serius server low rate or major pvpm arena reborn is new and has nothing special and yes it it is very good but not as echo or a off server
  13. I modify the ddl source of l2walker to work one every server even if server admin add a protection tool and ect.ALso i add some new things about enchant weapons and ect but i need the source to update connection packet Does anyone have it?
  14. Its not mental faction but l2jfree but mental share the db.Our projrct is not avallable for te public since i commit 100% interlude skills only for my friend because i didnt see many ppl support me to register just download and leaching.So the lack ppl download my gve pack now is not available
  15. The best is www.la2-crazy.com official server.It has x1,x4,x7,x320 official interlude server.No lag,no bugs,no exploits no bots no nothing.Best server And see the players online.There are in x4 4526 at this time nad no lag many ppl and more...
  16. Download eclipse.Download l2jsource code add in experience.java the lvl you want and compile with ant.There are plaenty guides
  17. -1L, // level 0 (unreachable) 0L, 68L, 363L, 1168L, 2884L, 6038L, 11287L, 19423L, 31378L, 48229L, //level 10 71201L, 101676L, 141192L, 191452L, 254327L, 331864L, 426284L, 539995L, 675590L, 835854L, //level 20 1023775L, 1242536L, 1495531L, 1786365L, 2118860L, 2497059L, 2925229L, 3407873L, 3949727L, 4555766L, //level 30 5231213L, 5981539L, 6812472L, 7729999L, 8740372L, 9850111L, 11066012L, 12395149L, 13844879L, 15422851L, //level 40 17137002L, 18995573L, 21007103L, 23180442L, 25524751L, 28049509L, 30764519L, 33679907L, 36806133L, 40153995L, //level 50 45524865L, 51262204L, 57383682L, 63907585L, 70852742L, 80700339L, 91162131L, 102265326L, 114038008L, 126509030L, //level 60 146307211L, 167243291L, 189363788L, 212716741L, 237351413L, 271973532L, 308441375L, 346825235L, 387197529L, 429632402L, //level 70 474205751L, 532692055L, 606319094L, 696376867L, 804219972L, 931275828L, 1151275834L, 1511275834L, 2099275834L, 4200000000L, //level 80 6299994999L }; The official code is that what do you dont understand.
  18. http://tools.assembla.com/svn/la2-world/L2j%20Project/trunk/L2%20Good%20vs%20Evil%20Int/
  19. First this db that solution share is official l2jfree(not faction) Well just create 4 sqls and some nw tables and enamble system.Try my gve version in my svn for interlude.For c5 download l2jfree c5 and do it
  20. What to datapack?Just mane some htmls and sqls that my pack already have them.Then enable faction for source or use my pack that already have it
  21. Thx man now i will commit many db fixes and wedding system fix so the server will take less ram than usual the same for cpu and it will be more retail.In 1 hour i will copile and share the pack for those that dont now how to compile
×
×
  • Create New...