Pastebin

New pastes are no longer accepted · Stats

Latest Pastes

log out for pet stats

void Character::Logout()
{
	if (!this->online)
	{
		if (this->guild)
		{
			this->guild->Release();
			this->guild = 0;
		}

		return;
	}

	if (this->trading)
	{
		PacketBuilder builder(PACKET_TRADE, PACKET_CLOSE);
		builder.AddShort(this->id);
		this->trade_partner->player->client->SendBuilder(builder);

		this->player->client->state = EOClient::Playing;
		this->trading = false;
		this->trade_inventory.clear();
		this->trade_agree = false;

		this->trade_partner->player->client->state = EOClient::Playing;
		this->trade_partner->trading = false;
		this->trade_partner->trade_inventory.clear();
		this->trade_agree = false;

		this->trade_partner->trade_partner = 0;
		this->trade_partner = 0;
	}

	if (this->party)
	{
		this->party->Leave(this);
	}

	if (this->arena)
	{
		--this->arena->occupants;
	}

	UTIL_PTR_LIST_FOREACH(this->unregister_npc, NPC, npc)
	{
		UTIL_PTR_LIST_FOREACH(npc->damagelist, NPC_Opponent, checkopp)
		{
			if (checkopp->attacker == this)
			{
				npc->totaldamage -= checkopp->damage;
				npc->damagelist.erase(checkopp);
				break;
			}
		}
	}

if(this->has_pet)
{
if (this->pet->Data()->id == 345)
{
erase_first(this->map->npcs, this->pet);
this->pet->Release();
this->has_pet = false;
this->con -= 500;
this->str -= 500;
this->CalculateStats();
this->StatSkill();
}
if (this->pet->Data()->id == 344)
{
erase_first(this->map->npcs, this->pet);
this->pet->Release();
this->has_pet = false;
this->str -= 500;
this->wis -= 500;
this->agi -= 500;
this->con -= 500;
this->CalculateStats();
this->StatSkill();
}
if (this->pet->Data()->id == 346)
{
erase_first(this->map->npcs, this->pet);
this->pet->Release();
this->has_pet = false;
this->con -= 300;
this->CalculateStats();
this->StatSkill();
}
if (this->pet->Data()->id == 347)
{
erase_first(this->map->npcs, this->pet);
this->pet->Release();
this->has_pet = false;
this->wis -= 400;
this->CalculateStats();
this->StatSkill();
}
if (this->pet->Data()->id == 348)
{
erase_first(this->map->npcs, this->pet);
this->pet->Release();
this->has_pet = false;
this->str -= 80;
this->wis -= 80;
this->con -= 80;
this->CalculateStats();
this->StatSkill();
}
if (this->pet->Data()->id == 349)
{
erase_first(this->map->npcs, this->pet);
this->pet->Release();
this->has_pet = false;
this->str -= 40;
this->wis -= 40;
this->con -= 40;
this->CalculateStats();
this->StatSkill();
}
if (this->pet->Data()->id == 350)
{
erase_first(this->map->npcs, this->pet);
this->pet->Release();
this->has_pet = false;
this->str -= 300;
this->CalculateStats();
this->StatSkill();
}
}

	this->online = false;

	this->Save();

	this->world->Logout(this);
}