private void OnToonTargetChange(GameClient client, TargetMessage message)
{
Logger.Info("Player interaction with " + message.AsText());
Portal p=GetPortal(message.Field1);
if (p!=null)
{
//we have a transition between worlds here
ChangeToonWorld(client, p.TargetWorldID, p.TargetPos); //targetpos will always be valid as otherwise the portal wouldn't be targetable
return;
}
else if (client.ObjectIdsSpawned == null || !client.ObjectIdsSpawned.Contains(message.Field1)) return;
client.ObjectIdsSpawned.Remove(message.Field1);
var killAni = new int[]{
0x2cd7,
0x2cd4,
0x01b378,
0x2cdc,
0x02f2,
0x2ccf,
0x2cd0,
0x2cd1,
0x2cd2,
0x2cd3,
0x2cd5,
0x01b144,
0x2cd6,
0x2cd8,
0x2cda,
0x2cd9
};
client.SendMessage(new PlayEffectMessage()
{
Id = 0x7a,
Field0 = message.Field1,
Field1 = 0x0,
Field2 = 0x2,
});
client.SendMessage(new PlayEffectMessage()
{
Id = 0x7a,
Field0 = message.Field1,
Field1 = 0xc,
});
client.SendMessage(new PlayHitEffectMessage()
{
Id = 0x7b,
Field0 = message.Field1,
Field1 = 0x789E00E2,
Field2 = 0x2,
Field3 = false,
});
client.SendMessage(new FloatingNumberMessage()
{
Id = 0xd0,
Field0 = message.Field1,
Field1 = 9001.0f,
Field2 = 0,
});
client.SendMessage(new ANNDataMessage()
{
Id = 0x6d,
Field0 = message.Field1,
});
int ani = killAni[RandomHelper.Next(killAni.Length)];
Logger.Info("Ani used: " + ani);
client.SendMessage(new PlayAnimationMessage()
{
Id = 0x6c,
Field0 = message.Field1,
Field1 = 0xb,
Field2 = 0,
tAnim = new PlayAnimationMessageSpec[1]
{
new PlayAnimationMessageSpec()
{
Field0 = 0x2,
Field1 = ani,
Field2 = 0x0,
Field3 = 1f
}
}
});
client.PacketId += 10 * 2;
client.SendMessage(new DWordDataMessage()
{
Id = 0x89,
Field0 = client.PacketId,
});
client.SendMessage(new ANNDataMessage()
{
Id = 0xc5,
Field0 = message.Field1,
});
client.SendMessage(new AttributeSetValueMessage
{
Id = 0x4c,
Field0 = message.Field1,
Field1 = new NetAttributeKeyValue
{
Attribute = GameAttribute.Attributes[0x4d],
Float = 0
}
});
client.SendMessage(new AttributeSetValueMessage
{
Id = 0x4c,
Field0 = message.Field1,
Field1 = new NetAttributeKeyValue
{
Attribute = GameAttribute.Attributes[0x1c2],
Int = 1
}
});
client.SendMessage(new AttributeSetValueMessage
{
Id = 0x4c,
Field0 = message.Field1,
Field1 = new NetAttributeKeyValue
{
Attribute = GameAttribute.Attributes[0x1c5],
Int = 1
}
});
client.SendMessage(new PlayEffectMessage()
{
Id = 0x7a,
Field0 = message.Field1,
Field1 = 0xc,
});
client.SendMessage(new PlayEffectMessage()
{
Id = 0x7a,
Field0 = message.Field1,
Field1 = 0x37,
});
client.SendMessage(new PlayHitEffectMessage()
{
Id = 0x7b,
Field0 = message.Field1,
Field1 = 0x789E00E2,
Field2 = 0x2,
Field3 = false,
});
client.PacketId += 10 * 2;
client.SendMessage(new DWordDataMessage()
{
Id = 0x89,
Field0 = client.PacketId,
});
}