本文整理汇总了C++中NetworkMessage::AddChar方法的典型用法代码示例。如果您正苦于以下问题:C++ NetworkMessage::AddChar方法的具体用法?C++ NetworkMessage::AddChar怎么用?C++ NetworkMessage::AddChar使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NetworkMessage
的用法示例。
在下文中一共展示了NetworkMessage::AddChar方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
bool Protocol77::GameworldLogin () {
// this is valid for 7.7!
// 7.72 has a bit different order of stuff! check out old outcast's sources
NetworkMessage nm;
connectiontype = GAMEWORLD;
nm.AddU8(0x0A); // protocol id
nm.RSABegin();
// encryption keys
for (int i = 0 ; i < 4 ; i++) {
nm.AddU32(key[i]);
}
// in 7.72 onwards move this BEFORE the keys and BEFORE the encryption
nm.AddU16(0x02); // client OS
nm.AddU16(protocolversion);
// are we a gamemaster
nm.AddChar(0);
// account number and password
nm.AddU32(atol(this->username.c_str())); // this does NOT exist before 7.4
nm.AddString(this->charlist[this->charlistselected]->charactername);
nm.AddString(this->password);
nm.RSAEncrypt();
// FIXME inside dump, we should check whether or not socket is still open
// or after dump, at least
nm.Dump(s);
nm.Clean();
nm.FillFromSocket(s );
nm.XTEADecrypt(key);
logonsuccessful = true;
while ((signed int)(nm.GetSize())>0 && ParsePacket(&nm));
if ((signed int)(nm.GetSize())!=0) printf("++++++++++++++++++++DIDNT EMPTY UP THE NETWORKMESSAGE!++++++++++++++++++\n");
if (logonsuccessful) active = true;
return logonsuccessful;
}
示例2: SetProtocolStatus
bool Protocol79::GameworldLogin () {
// this is valid for 7.9!
// 7.7 has a bit different order of stuff! check out old outcast's sources
NetworkMessage nm;
SetProtocolStatus("Preparing to transfer logon data...");
connectiontype = GAMEWORLD;
nm.AddU8(0x0A); // protocol id
// in 7.72 onwards move this BEFORE the keys and BEFORE the encryption
nm.AddU16(0x02); // client OS
nm.AddU16(protocolversion);
SetProtocolStatus("RSA encryption...");
nm.RSABegin();
//key[3] = 92;
// encryption keys
for (int i = 0 ; i < 4 ; i++) {
nm.AddU32(key[i]);
//printf("KEY %d - %d\n", i, key[i]);
}
// are we a gamemaster
nm.AddChar(0);
// account number and password
nm.AddU32(atol(this->username.c_str())); // this does NOT exist before 7.4
nm.AddString(this->charlist[this->charlistselected]->charactername);
nm.AddString(this->password);
nm.RSAEncrypt();
SetProtocolStatus("Transmitting logon data...");
if (!nm.Dump(s)) {
this->errormsg = "Could not write to socket.\nPossible it's a premature disconnect.\n\nCheck you typed in the correct protocol!";
return false;
}
// SetStance(DEFENSIVE, STAND);
SetProtocolStatus("Waiting for response...");
//nm.Clean();
NetworkMessage nm2;
//nm.FillFromSocket(s);
if (!nm2.FillFromSocket(s )) {
this->errormsg = "Could not read from socket.\nPossibly it's a premature disconnect.\n\nCheck you typed in the correct protocol!";
return false;
}
nm2.XTEADecrypt(key);
logonsuccessful = true;
while ((signed int)(nm2.GetSize())>0 && ParsePacket(&nm2));
if ((signed int)(nm2.GetSize())!=0) printf("++++++++++++++++++++DIDNT EMPTY UP THE NETWORKMESSAGE!++++++++++++++++++\n");
if (logonsuccessful) active = true;
return logonsuccessful;
}