public void Start()
{
var actor = this.Actor;
var rpCharacter = this;
var client = actor.Client;
actor.Region.RemoveCreature(actor);
actor.Lock(Locks.Default, true);
var playerCreature = actor as PlayerCreature;
playerCreature.StopLookAround();
// Don't remove the actor from the controlled creatures, as the
// client will still send packets with its id, which triggers
// our safety checks.
client.Creatures.Add(rpCharacter.EntityId, rpCharacter);
client.Controlling = rpCharacter;
var channelHost = ChannelServer.Instance.Conf.Channel.ChannelHost;
var channelPort = ChannelServer.Instance.Conf.Channel.ChannelPort;
Send.RequestSecondaryLogin(actor, rpCharacter.EntityId, channelHost, channelPort);
Send.PetRegister(actor, rpCharacter, SubordinateType.RpCharacter);
Send.StartRP(actor, rpCharacter.EntityId);
}