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;
  }
Exemple #2
0
  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;
  }