Esempio n. 1
0
        public static void TaxiMountAndMove(Character ch, TaxiPath path)
        {
            PathForTaxi taxiPFT = new PathForTaxi(path.Id,ch);
            int MountId = 0;
            foreach(Object o in ch.KnownObjects)
            {
                if(o is TaxiVendor)	if((o as TaxiVendor).MountId != 0)	MountId = (o as TaxiVendor).MountId;
            }
            if (MountId == 0) MountId = 1147;
            ch.MountModel = (int)MountId;
            ch.taxiOn = true;
            ch.GodMode = true;
            ch.UnInteractible = true;
            if(ch.Summon != null) ch.Summon.Freeze = true;
            ch.Speed = 20f;
            ch.RunSpeed = 40f;
            int offset = 4;
            Converter.ToBytes( 1, ch.tempBuff, ref offset );
            Converter.ToBytes( (byte)0, ch.tempBuff, ref offset );
            ch.PrepareUpdateData( ch.tempBuff, ref offset , UpdateType.UpdateFull, false );
            ch.Send( OpCodes.SMSG_UPDATE_OBJECT, ch.tempBuff, offset );
            ch.ItemsUpdate();

            ch.MoveTaxiTo(taxiPFT.T,taxiPFT.mapIds, taxiPFT.mapChange);
        }
Esempio n. 2
0
 public static void OnUnmountTaxi(Character ch,Trajet t)
 {
     ch.MountModel = (int)0;
     ch.taxiOn = false;
     ch.Copper =(uint)(ch.Copper - ch.TaxiPrice);
     if(ch.Summon != null) ch.Summon.Freeze = false;
     int offset = 4;
     ch.Speed = 8f;
     ch.RunSpeed = 7f;
     Converter.ToBytes( 1, ch.tempBuff, ref offset );
     Converter.ToBytes( (byte)0, ch.tempBuff, ref offset );
     ch.PrepareUpdateData( ch.tempBuff, ref offset , UpdateType.UpdateFull, false );
     ch.Send( OpCodes.SMSG_UPDATE_OBJECT, ch.tempBuff, offset );
     ch.ItemsUpdate();
     ch.ForcePosition(t[t.Count - 1].x,t[t.Count - 1].y,t[t.Count - 1].z,ch.Orientation);
 }