diff --git a/apps/openmw/mwscript/transformationextensions.cpp b/apps/openmw/mwscript/transformationextensions.cpp index 22fe36bda..74ce04065 100644 --- a/apps/openmw/mwscript/transformationextensions.cpp +++ b/apps/openmw/mwscript/transformationextensions.cpp @@ -570,18 +570,23 @@ namespace MWScript float az = ptr.getRefData().getPosition().rot[2]; // Added by tes3mp - mwmp::WorldEvent *event = mwmp::Main::get().getNetworking()->createWorldEvent(); - event->cell = *ptr.getCell()->getCell(); - event->cellRef.mRefID = ptr.getCellRef().getRefId(); - event->cellRef.mRefNum = ptr.getCellRef().getRefNum(); - event->pos.rot[0] = axis == "x" ? ax + rotation : ax; - event->pos.rot[1] = axis == "y" ? ay + rotation : ay; - event->pos.rot[2] = axis == "z" ? az + rotation : az; - mwmp::Main::get().getNetworking()->GetWorldPacket(ID_OBJECT_ROTATE)->Send(event); + // + // Only send packet for objects that don't have the spammy Float script + if (!Misc::StringUtils::ciEqual(ptr.getClass().getScript(ptr), "Float")) + { + mwmp::WorldEvent *event = mwmp::Main::get().getNetworking()->createWorldEvent(); + event->cell = *ptr.getCell()->getCell(); + event->cellRef.mRefID = ptr.getCellRef().getRefId(); + event->cellRef.mRefNum = ptr.getCellRef().getRefNum(); + event->pos.rot[0] = axis == "x" ? ax + rotation : ax; + event->pos.rot[1] = axis == "y" ? ay + rotation : ay; + event->pos.rot[2] = axis == "z" ? az + rotation : az; + mwmp::Main::get().getNetworking()->GetWorldPacket(ID_OBJECT_ROTATE)->Send(event); - printf("Sending ID_OBJECT_ROTATE about %s\n%i\n", - event->cellRef.mRefID.c_str(), - event->cellRef.mRefNum.mIndex); + printf("Sending ID_OBJECT_ROTATE about %s\n%i\n", + event->cellRef.mRefID.c_str(), + event->cellRef.mRefNum.mIndex); + } if (axis == "x") MWBase::Environment::get().getWorld()->rotateObject(ptr,ax+rotation,ay,az); @@ -662,13 +667,18 @@ namespace MWScript float zr = ptr.getCellRef().getPosition().rot[2]; // Added by tes3mp - mwmp::WorldEvent *event = mwmp::Main::get().getNetworking()->createWorldEvent(); - event->cell = *ptr.getCell()->getCell(); - event->cellRef.mRefID = ptr.getCellRef().getRefId(); - event->cellRef.mRefNum = ptr.getCellRef().getRefNum(); - event->pos = ptr.getCellRef().getPosition(); - mwmp::Main::get().getNetworking()->GetWorldPacket(ID_OBJECT_ROTATE)->Send(event); - mwmp::Main::get().getNetworking()->GetWorldPacket(ID_OBJECT_MOVE)->Send(event); + // + // Only send packet for objects that don't have the spammy Float script + if (!Misc::StringUtils::ciEqual(ptr.getClass().getScript(ptr), "Float")) + { + mwmp::WorldEvent *event = mwmp::Main::get().getNetworking()->createWorldEvent(); + event->cell = *ptr.getCell()->getCell(); + event->cellRef.mRefID = ptr.getCellRef().getRefId(); + event->cellRef.mRefNum = ptr.getCellRef().getRefNum(); + event->pos = ptr.getCellRef().getPosition(); + mwmp::Main::get().getNetworking()->GetWorldPacket(ID_OBJECT_ROTATE)->Send(event); + mwmp::Main::get().getNetworking()->GetWorldPacket(ID_OBJECT_MOVE)->Send(event); + } MWBase::Environment::get().getWorld()->rotateObject(ptr, xr, yr, zr);