nimm dann den sourve von der V6 version :P
hier nen ausschnitt von KiKis version 6 ServerFiles:
Code:
void LoginPacket::loginError(Player* player, int errorid){
Packet packet = Packet();
packet.addHeader(0xfe);
packet.addInt(errorid);
packet.packetSendLogin(player);
}
void LoginPacket::sendPong(Player *player, int time){
Packet packet = Packet();
packet.addHeader(0x14);
packet.addInt(time);
packet.packetSendLogin(player);
}
void LoginPacket::showWorld(Player* player, vector<World*> worlds){
Packet packet = Packet();
packet.addHeader(0xfd);
packet.addInt(0x9dd5b70d);//0db7d59d
packet.addByte(worlds.size());
if(!player->getIsOld()){
packet.addString(player->getUserName(),true);
}
for(unsigned i=0;i<worlds.size();i++){
World* world = worlds.at(i);
packet.addInt(4);
packet.addInt(-1);
packet.addInt(world->id);
packet.addString(world->name,true);
packet.addString(world->ipaddress,true);
packet.addInt(0);
packet.addInt(0);
packet.addInt(1);
packet.addInt(0);
for(int i=1; i<world->channels+1; i++){
packet.addInt(world->id);
packet.addInt(i);
char channelname[100];
sprintf_s(channelname,99,"%d-%d",world->id,i);
packet.addString(channelname,true);
packet.addInt(0);
packet.addInt(0);
packet.addInt(0);
packet.addInt(1);
packet.addInt(0x3e8);
}
}
//packet.addBytes("0db7d59d010800000063686f77666163650b000000ffffffff0300000014000000835a83938356838a836283675b504b89c2945c5d0e0000003231302e3133362e3130342e343500000000000000000100000000000000030000000100000003000000332d3100000000000000005a00000001000000b0040000030000000200000003000000332d3200000000000000002200000001000000e8030000ffffffff02000000080000008356815b836a83740e0000003231302e3133362e3130342e333800000000000000000100000000000000020000000100000003000000322d310000000000000000f400000001000000b0040000020000000200000003000000322d320000000000000000a200000001000000e8030000020000000300000003000000322d3300000000000000008700000001000000e8030000ffffffff010000000a000000834583468393836683420e0000003231302e3133362e3130342e333200000000000000000100000000000000010000000100000003000000312d3100000000000000006101000001000000b0040000010000000200000003000000312d320000000000000000d400000001000000e8030000010000000300000003000000312d330000000000000000e200000001000000e8030000");
packet.packetSendLogin(player);
}
void LoginPacket::channelSelect(Player* player){
}
void LoginPacket::checkName(Player* player, char is, char* name){
}
void LoginPacket::showCreateError(Player* player){
}
void LoginPacket::showCharacter(Player* player, Character charc){
}
void LoginPacket::deleteCharacter(Player* player, int ID){
Packet packet = Packet();
packet.addHeader(0x08);
packet.addInt(ID);
packet.addByte(0);
packet.packetSendLogin(player);
}
void LoginPacket::sendAuth(Player* player, int time){
Packet packet = Packet();
packet.addHeader(0x0b);
packet.addInt(time);
//time_t curtime = time(NULL)
packet.addBytes("def8457672d6c801");//server time
packet.packetSendLogin(player);
}
void LoginPacket::sendServerIp(Player* player, char* ip){
Packet packet = Packet();
packet.addHeader(0xf2);
packet.addString(ip,true);
packet.packetSendLogin(player);
}
void LoginPacket::sendCharacters(Player* player, vector <Character> chars){
Packet packet = Packet();
packet.addHeader(0xf3);
packet.addInt(0x9dd5b70d);//serverside tempid
packet.addInt(chars.size());//number of chars
for(unsigned i=0;i<chars.size();i++){
Character chara = chars.at(i);
packet.addInt(chara.slot);//slotid
packet.addInt(1);//??
packet.addInt(1);//??
packet.addInt(0xc);//??
packet.addString(chara.name,true);
packet.addFloat(chara.x);
packet.addFloat(chara.y);
packet.addFloat(chara.z);
packet.addInt(chara.id);//userid
packet.addInt(0);//??
packet.addInt(0);//??
packet.addInt(0);//??
packet.addInt(0);//??
packet.addInt(chara.hair);//hair
packet.addInt(chara.haircolor);//hair color
packet.addInt(chara.face);//face
packet.addByte(chara.gender);//gender
packet.addInt(chara.classid);//class
packet.addInt(chara.level);//level
packet.addInt(0);//??
packet.addInt(chara.str);//str
packet.addInt(chara.sta);//sta
packet.addInt(chara.dex);//dex
packet.addInt(chara.intt);//int
packet.addInt(0);//??
if(player->getIsOld()){
packet.addInt(0);
}
packet.addInt(chara.equips.size());//number of items (items can be in any order!!)
for(unsigned i=0;i<chara.equips.size();i++){
CharEquip equip = chara.equips.at(i);
packet.addInt(equip.id);
}
}
packet.addInt(1);//??
packet.addInt(2);//??
packet.addByte(0);//??
packet.addInt(0);//??
packet.packetSendLogin(player);
}
have fun
[EDIT] Source hinzugefügt