コード例 #1
0
ファイル: server.cpp プロジェクト: aadarshasubedi/choria
// Handle a character delete request
void _Server::HandleCharacterDelete(_Buffer &Data, _Peer *Peer) {
	if(!Peer->AccountID)
		return;

	// Get delete slot
	uint32_t Slot = Data.Read<uint8_t>();
	uint32_t CharacterID = 0;

	// Get character id
	CharacterID = Save->GetCharacterIDBySlot(Peer->AccountID, Slot);
	if(!CharacterID)
		return;

	// Delete character
	Save->DeleteCharacter(CharacterID);

	// Update the player
	SendCharacterList(Peer);
}
コード例 #2
0
ファイル: Character.cpp プロジェクト: CarlosX/DarkEmu
void GameSocket::OnCharacter() 
{
	char pType = Reader.ReadByte();
	switch(pType) 
	{
		case 1:
			OnCharCreation();
			break;
		case 2:
			SendCharacterList();
			break;
		case 3:
			OnCharDeletion();
			break;
		case 4:
			OnCharnameCheck();
			break;
		case 5:
			OnCharRestore();
			break;
	}
}
コード例 #3
0
ファイル: Character.cpp プロジェクト: CarlosX/DarkEmu
void GameSocket::OnCharDeletion() 
{
	/*  This is where we should set restore flag, deletion time, etc.
		Just deleting from database for now.
		Also, we MIGHT want to delete items related to this character from items table. */

	unsigned short charlen = Reader.ReadWord();
	char* name = new char[charlen+1];
	memset(name, 0x00, charlen+1);
	Reader.ReadString((unsigned char*)name, charlen);

	int charid = CharacterExists(name);

	Writer.Create(GAME_SERVER_CHARACTER);

		Writer.WriteByte(0x03);

		if(charid) 
		{
			db.Query("delete from characters where name='%s'", name).execute();
			db.Query("delete from items where owner=%d", charid).execute();
			Writer.WriteByte(0x01);
		} 
		else 
		{
			Writer.WriteByte(0x02);
			Writer.WriteByte(0x01);
		}

	Writer.Finalize();
	Send(Writer.Buffer, Writer.Size());

	SendCharacterList();

	delete[] name;
}
コード例 #4
0
ファイル: server.cpp プロジェクト: aadarshasubedi/choria
// Sends a player his/her character list
void _Server::HandleCharacterListRequest(_Buffer &Data, _Peer *Peer) {
	if(!Peer->AccountID)
		return;

	SendCharacterList(Peer);
}