Search the Community
Showing results for tags 'c1'.
Found 2 results
Hello, I've started restoring C1 server 2 years ago, 11.2016. Now a lot of has been done, and I'm publishing C1 services and some tools 1. L2AuthD 2. L2LogD 3. CacheD 4. L2NPC 0.1.0.4, is fully compatible with C1 L2Server 5. NASC • Actually, the first known C1 AI Script compiler. Previous was C0 + binary patches (by kvoxi and others). Just works, has some fixes, which C0 doesn't •pass --extmode to use some extra AIS variables (which are used in SINA PP scripts) 6. QuestCompiler (known from C0 as QuestDataChecker.exe) • Actually, the first known C1 AI Quest Compiler • Original bug, which didn't allow to write huge quests (like Coins of Magic) is fixed 7. PetitionD • This one is still from C0. I haven't ported it to C1 yet 8. L2Server To be done in September 2019 9. LCC (Lineage Compiler Collection) - one tool to compile all *pch Completed at 30%. now can compile itemdata.txt, skilldata.txt and category.txt 10. MacroCompiler Is fully restored now and works like original one from C0. Feel free to test it, I will try to fix all bugs (both, origin and my one). C1 installer, + patched system (multi-window + Win7 support) I would like to say help for other contributors: @smeli for helping with porting AuthD to support C1-C4, C6 client protocols with extenders (based on C1, like SINA) @lordofdest for porting numerous of CacheD packeet handlers @Renege for porting all admin packets, BBS packets @Pulentolento for support on CacheD admin packet handlers @MimisK for testing L2NPC and CacheD @zconll for extensive testing of NASC, L2NPC and CacheD and reporting all possible bugs
Hi, As you know, there is no separate "Admin" socket for GM. But iv you send packet 00 (Version) with negative values, it will dump some information: import socket import struct port = 7777 # client accepting port host = '127.0.0.1' # game server IP clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) clientsocket.connect((host, port)) # Preparing request my_bytes = bytearray() # size my_bytes.append(7) my_bytes.append(0) # packetId my_bytes.append(0) # -3 my_bytes.append(253) my_bytes.append(255) my_bytes.append(255) my_bytes.append(255) clientsocket.sendall(my_bytes) # Response unpacker = struct.Struct('h') size = unpacker.unpack(clientsocket.recv(unpacker.size)) - 2 #print "got packet with payload's size: %s" % size data = clientsocket.recv(size) #print('Received', repr(data)) # format: cdddddS unpacker = struct.Struct('<bIIIII') # c i i i i i msgId, npcConnected, maxUsers, usersConnected, usersPlaying, privateStores = unpacker.unpack(data[0:unpacker.size]) str_unpacker = struct.Struct('%ss' % (size - unpacker.size)) stats = str_unpacker.unpack(data[unpacker.size:]).decode('utf-16') print('msgId: %s, npcStatus (2 - Off, 1 - On): %s, maxUsers: %s, usersConnected: %s, usersPlaying: %s, privateStores: %s, stats (free memory, allocated objects, free pool slots, server Up time minutes): %s') % (msgId, npcConnected, maxUsers, usersConnected, usersPlaying, privateStores, stats) And results: This doesn't work for C4, they changed format a bit. But if you have IDA, you can check yourself