跳到主要内容

OblivionMP SDK 1.0.0 released

· 阅读需 4 分钟
ReadyM 团队
WukongMP 和 OblivionMP 的开发者

1.0.0 is out. It offers improved stability for the OblivionMP server and SDK, with fixes on top of rc.3: items enchanted at an altar and potions made with a Mortar and Pestle now look the same for every player, names with non-ASCII characters work, and two crashes are fixed. OblivionMP is still a work in progress, so expect rough edges.

Mod authors can now change how markers look, and put them over NPCs as well as players.

Marker style​

Markers, the line of text over a character's head, take a MarkerStyle now. It sets the font size, a box behind the text, an outline, where the text wraps, how high the marker sits, and the bone or socket it follows:

var style = MarkerStyle.Default with
{
Socket = "head",
Background = new MarkerColor(0f, 0f, 0f, 0.6f),
OutlineSize = 1,
};

markers.CreateMarker(npc, "Guard captain", MarkerColor.White, style);

Pass it to CreateMarker, or change the style of an existing marker with SetMarkerStyle. A marker created without a style looks the same as before.

CreateMarker also takes an Npc now, so a mod can put markers over NPCs.

See On-screen messages and markers.

New features​

  • Added support for non-ASCII UTF-8 characters in names of enchanted equipment and potions created by players.
  • Added marker styles and markers over NPCs for mods (details above).

Fixed​

  • Fixed items enchanted at an Altar of Enchanting not appearing correctly for other players when dropped on the ground.
  • Fixed potions crafted with a Mortar and Pestle appearing without an icon in the inventory.
  • Fixed potions crafted with a Mortar and Pestle with a weight of 0.1 or less having their weight set to 0 after being dropped on the ground.
  • Fixed a crash when another player joined.
  • Fixed a crash on rebirth caused by doors the game creates while it runs, such as Oblivion gates.
  • Fixed how positions and rotations are passed to the game engine. This may also fix some cases of characters appearing in the wrong place or facing the wrong way.

SDK changes​

  • Marker style. MarkerStyle, the new CreateMarker overloads and SetMarkerStyle, as above.
  • Markers over NPCs. IMarkers.CreateMarker takes an Npc, and MappedActor.Pawn is on Npc as well as MainCharacter.
  • Enchanted items. An item a player enchants is a dynamic form like potions and spells, readable as the new EnchantedItemForm shape. AlchemyForm has an IconPath. See Dynamic forms.
  • Decimals from and to 0. A replicated float or double still ignores changes of 0.1 or less, except a change from 0 or to 0, which is always stored and sent. For vectors this goes for each axis. See Replication and authority.
  • Web UI input mode per viewport. CefHost.SetInputMode(viewport, mode) sets the mode of one viewport, and InputModeOf(viewport) reads it. SetInputMode(mode) still sets every viewport. A viewport now starts in Bubbling instead of Exclusive, so a page lets clicks through where it draws nothing. Set Exclusive on a page that must take every click. See Web UI.
  • Replicated shapes on the client. Fixed the client not registering the replicated shapes that mods declare.

Server​

  • Seed. The seed loader's data is now one seed.zip file that the mod reads in place, instead of thousands of files, so the server download unpacks much faster. When you update an existing server, you can delete the old mods/OblivionMp.SeedLoader/server/content/world/ folder. The mod no longer reads it.

Updating​

  • Servers. Downloads for both platforms are on the Installation page.
  • Mods. Bump ReadyM.SDK.Oblivion.Common, .Client and .Server to 1.0.0. If your mod shows a web UI page that must take every click, set its viewport to Exclusive.

Check Known issues before reporting a bug. Anything not on it, report on the OblivionMP Discord.