int SendGameStatus2Packet::getPacketContent(char *buf) { VariableValue val; val.setName( getGameAttributeName() ); val.setValueFromLong(gameid,4); int index = 0; index += val.writeName(buf, index); buf[index++] = 02; index += val.writeValue(buf, index); val.setName( getIPAttributeName() ); //BUG: hab ,4 hinzugefügt, führte und vista zum crash - dufte val.setValue(ip,4); val.setValueLength(4); index += val.writeName(buf, index); buf[index++] = 02; index += val.writeValue(buf, index); val.setName( getPortAttributeName() ); val.setValueFromLong(port,4); index += val.writeName(buf, index); buf[index++] = 02; index += val.writeValue(buf, index); return index; }
int ClientLoginPacket::getPacketContent(char *packet) { int index = 0; /*Username*/ index = XFireUtils::addAttributName(packet,index, "name");/*add username attribute*/ packet[index] = 0x01; packet[index+1] = (char)name.length(); packet[index+2] = 0x00; index +=3; std::copy(name.begin(),name.end(),packet+index); index += name.size(); /*Crypted Password*/ unsigned char pass[41]; pass[40] = 0x00; cryptPassword(pass); index = XFireUtils::addAttributName(packet,index, "password");/*add username attribute*/ packet[index] = 0x01; packet[index+1] = (char)40; packet[index+2] = 0x00; index += 3; memcpy(packet+index,pass,40); index += 40; VariableValue val; val.setName( "flags" ); index += val.writeName( packet, index ); packet[index++] = 0x02; packet[index++] = 0x00; packet[index++] = 0x00; packet[index++] = 0x00; packet[index++] = 0x00; val.setName( "sid" ); index += val.writeName( packet, index ); packet[index++] = 0x03; for(int i=0;i<16;i++) { packet[index++] = 0x0; } length = index; return index; }
int SendMessagePacket::getPacketContent(char *buf) { if ( imindex == 0 ) initIMIndex(); int index = 0; VariableValue val; val.setName("sid"); val.setValue(sid,16); index += val.writeName(buf,index); buf[index++] = 3; index += val.writeValue(buf,index); val.setName("peermsg"); index += val.writeName(buf,index); buf[index++] = 5; //buf[index++] = 7; buf[index++] = 3; val.setName("msgtype"); val.setValueFromLong(0,4); index += val.writeName(buf,index); buf[index++] = 2; index += val.writeValue(buf,index); val.setName("imindex"); val.setValueFromLong(imindex,4); index += val.writeName(buf,index); buf[index++] = 02; index += val.writeValue(buf,index); val.setName("im"); val.setValue((char*)message.c_str(),message.size()); index += val.writeName(buf,index); buf[index++] = 01; buf[index++] = message.size()%256; buf[index++] = (int)message.size()/256; index += val.writeValue(buf,index); return index; }
int SendKeepAlivePacket::getPacketContent(char *buf) { int index = 0; VariableValue val; val.setName("value"); index += val.writeName(buf,index); buf[index++] = 2; buf[index++] = 0; buf[index++] = 0; buf[index++] = 0; buf[index++] = 0; val.setName("stats"); index += val.writeName(buf,index); buf[index++] = 4; buf[index++] = 2; buf[index++] = 0; buf[index++] = 0; return index; }