There is indeed a fixed number of items you can have inside your GameServer/OpenItem (if it is that what you are talking about)
If it is, let me show you how to increase it: (using the server.exe with ItemCraft, released here)
Code:
0053A66B |. BE 00412300 MOV ESI,234100
0053A670 |. 56 PUSH ESI
0053A671 |. A3 28D8A004 MOV DWORD PTR DS:[4A0D828],EAX
0053A676 |. E8 5F770500 CALL Servidor.00591DDA
0053A67B |. 68 04405A02 PUSH Servidor.025A4004
0053A680 |. A3 90A09F04 MOV DWORD PTR DS:[49FA090],EAX
This is just the length of the buffer that will be created for storing the items information, like malloc(size), you just have to increase it. I would suggest doing some math calcs, find out how many bytes each block has, to find out exactly how many bytes you want to have.. Example: You now want to store 3k itens, you should allocate a buffer with the length of 3k, I mean, allocating 30mb to store 20 itens is stupid..
:
Code:
CPU Disasm
005210A2 |. 813D 107EA004 >|CMP DWORD PTR DS:[4A07E10],320
005210AC |.^0F8C E1FEFFFF \JL Servidor.00520F93
Now this one is inside the while loop, just increase the 0x384 number to your new one.
Plus:
All the info will be stored here:
0053A680 |. A3 90A09F04 MOV DWORD PTR DS:[*49FA090*],EAX
Monsters have a limit too, but I never bothered to find out where it is.. Probably nearby these routines =)