Ultima Live Map Streamer and Editor 0.75

Status
Not open for further replies.

Redmoon

Citizen
(Moved by suggestion to be easier to find)

For the Ultima Live:
1.I put the whole folder in my Scripts\Customs
2. Rename Igrping.dll in my UO Client folder to Igrping_.dll and pasted the one from Ultima Live into it, leaving both
3. Run Server and Ultima Live will create a folder in "C:\ProgramData\UltimaLive\Your Shard Name" and it will put all maps/staidx/statics in there.
4. Add new map/staidx/static to folders "Custom Path Folder" and "C:\ProgramData\UltimaLive\Your Shard Name"
5. edit these files:
"Scripts\Mobiles\Playermobile.cs (I think this is the one most have issues with)
First edit:
Code:
namespace Server.Mobiles
{
/* Begin UltimaLive Mod */
public interface UltimaLiveQuery
{
int QueryMobile(Mobile m, int previousBlock);
}
/* End UltimaLive Mod */
#region Enums

Second Edit:

Code:
 public override void MoveToWorld(Point3D loc, Map map)
{
base.MoveToWorld(loc, map);
 
 
 
 
this.RecheckTownProtection();
}
/* Begin UltimaLive Mod */
public static UltimaLiveQuery BlockQuery;
private int m_PreviousMapBlock = -1;
/* End UltimaLive Mod *

Third Edit:
Code:
 public override void SetLocation(Point3D loc, bool isTeleport)
{
if (!isTeleport && this.IsPlayer())
{
// moving, not teleporting
int zDrop = (this.Location.Z - loc.Z);
 
 
 
 
if (zDrop > 20) // we fell more than one story
this.Hits -= ((zDrop / 20) * 10) - 5; // deal some damage; does not kill, disrupt, etc
}
 
 
 
 
base.SetLocation(loc, isTeleport);
 
 
 
 
if (isTeleport || --this.m_NextProtectionCheck == 0)
this.RecheckTownProtection();
/* Begin UltimaLive Mod */
if (BlockQuery != null)
{
m_PreviousMapBlock = BlockQuery.QueryMobile(this, m_PreviousMapBlock);
}
/* End UltimaLive Mod */

Last edit:
Code:
public override bool CheckShove(Mobile shoved)
{
if (this.m_IgnoreMobiles || TransformationSpellHelper.UnderTransformation(shoved, typeof(WraithFormSpell)))
return true;
else
return base.CheckShove(shoved);
/* Begin UltimaLive Mod */
if (BlockQuery != null)
{
m_PreviousMapBlock = BlockQuery.QueryMobile(this, m_PreviousMapBlock);
}
/* End UltimaLive Mod */

"Scripts\CUSTOMS\UltimaLive\ServerSideScripts\MapsRegistry.cs"
Code:
m_Definitions.Add(5, new MapDefinition(5, new Point2D(1280, 4096), new Point2D(1280, 4096))); //TerMur
m_Definitions.Add(32, new MapDefinition(32, new Point2D(6144, 4096), new Point2D(6144, 4096))); //Doinsiun

The numbers 32 are my new map numbers (map32.mul/staidx32.mul/statics32.mul)
The numbers (6144, 4096) are the map size
"Scripts\Misc\mapdefinitions.cs"

Code:
RegisterMap(5, 5, 5, 1280, 4096, 1, "TerMur", MapRules.TrammelRules);
//Custom Map
RegisterMap(32, 32, 32, 6144, 4096, 1, "Doinsiun", MapRules.TrammelRules);//Dungeons

The "32,32,32," is my new map
The "6144, 4096" is the new map size
The "1" is the season (0 is desolation aka trees with no leaves)
"Doinsiun" is the map name
"MapRules.TrammelRules" well I'm sure ya know that one.
I also edited my PublicMoongate.cs (I haven't finished with it yet, but I copied Trammel to use until I get it all sorted out)

Code:
[Usage("MoonGen")]
[Description("Generates public moongates. Removes all old moongates.")]
public static void MoonGen_OnCommand(CommandEventArgs e)
{
DeleteAll();
 
 
 
 
int count = 0;
 
 
 
 
count += MoonGen(PMList.Trammel);
count += MoonGen(PMList.Felucca);
count += MoonGen(PMList.Ilshenar);
count += MoonGen(PMList.Malas);
count += MoonGen(PMList.Tokuno);
count += MoonGen(PMList.TerMur);
//Custom Maps
count += MoonGen(PMList.Doinsiun);

And add under Tokuno (Line 255 for me)
(new PMList (#####,#####) These are cliloc numbers. The first is for the name, the second is to add the name with color
Clicoc color ex:<BASEFONT COLOR=#2DDC1B>Malas</BASEFONT

Code:
//Dungeons Start
   public static readonly PMList Doinsiun =
new PMList(1119784, 1119785, Map.Maps[32], new PMEntry[]
{
new PMEntry( new Point3D( 4467, 1283, 5 ), 1012003 ), // Moonglow
new PMEntry( new Point3D( 1336, 1997, 5 ), 1012004 ), // Britain
new PMEntry( new Point3D( 1499, 3771, 5 ), 1012005 ), // Jhelom
new PMEntry( new Point3D(  771,  752, 5 ), 1012006 ), // Yew
new PMEntry( new Point3D( 2701,  692, 5 ), 1012007 ), // Minoc
new PMEntry( new Point3D( 1828, 2948,-20), 1012008 ), // Trinsic
new PMEntry( new Point3D(  643, 2067, 5 ), 1012009 ), // Skara Brae
/* Dynamic Z for Magincia to support both old and new maps. */
new PMEntry( new Point3D( 3563, 2139, Map.Maps[32].GetAverageZ( 3563, 2139 ) ), 1012010 ), // (New) Magincia
new PMEntry( new Point3D( 3450, 2677, 25), 1078098 )  // New Haven
});
//Dungeons End

And around Line 341 (TerMur)
Code:
public static readonly PMList TerMur =
new PMList(1113602, 1119783, Map.TerMur, new PMEntry[]
{
new PMEntry(new Point3D(852, 3526, -43), 1113603), // Royal City
new PMEntry(new Point3D(926, 3989, -36), 1112572), // Holy City
});
public static readonly PMList[] UORLists = new PMList[] { Trammel, Felucca, Doinsiun, DergogeaLach, Vollstrecker /*,Lune, Odland */ };
public static readonly PMList[] UORListsYoung = new PMList[] { Trammel };
public static readonly PMList[] LBRLists = new PMList[] { Trammel, Felucca, Ilshenar, Doinsiun, DergogeaLach, Vollstrecker ,Lune, Odland  };
public static readonly PMList[] LBRListsYoung = new PMList[] { Trammel, Ilshenar, Doinsiun, DergogeaLach, Vollstrecker ,Lune, Odland  };
public static readonly PMList[] AOSLists = new PMList[] { Trammel, Felucca, Ilshenar, Malas, Doinsiun, DergogeaLach, Vollstrecker ,Lune, Odland  };
public static readonly PMList[] AOSListsYoung = new PMList[] { Trammel, Ilshenar, Malas, Doinsiun, DergogeaLach, Vollstrecker ,Lune, Odland  };
public static readonly PMList[] SELists = new PMList[] { Trammel, Felucca, Ilshenar, Malas, Tokuno, Doinsiun, DergogeaLach, Vollstrecker ,Lune, Odland  };
public static readonly PMList[] SEListsYoung = new PMList[] { Trammel, Ilshenar, Malas, Tokuno, Doinsiun, DergogeaLach, Vollstrecker ,Lune, Odland  };
public static readonly PMList[] SALists = new PMList[] { Trammel, Felucca, Ilshenar, Malas, Tokuno, TerMur, Doinsiun, DergogeaLach, Vollstrecker ,Lune, Odland  };
public static readonly PMList[] SAListsYoung = new PMList[] { Trammel, Ilshenar, Malas, Tokuno, TerMur, Doinsiun, DergogeaLach, Vollstrecker ,Lune, Odland  };
public static readonly PMList[] RedLists = new PMList[] { Felucca };
public static readonly PMList[] SigilLists = new PMList[] { Felucca };
private readonly int m_Number;
private readonly int m_SelNumber;
private readonly Map m_Map;
private readonly PMEntry[] m_Entries;
public PMList(int number, int selNumber, Map map, PMEntry[] entries)

I haven't edited the [go command as I don't need it. But to go to your new map IG [set map 32 or [set map "new map name"
Make sure to paste new map/staidx/statics into ~both~ "C:\ProgramData\UltimaLive\Your Shard Name" and "your custom data folder"

Edit: Sheesh that's a lot of words,lol
I left the codes "complete" due to people not being able to find the locations (Playermobile)
sorry :oops:

Edit: I forgot "UltimaLiveSettings.cs" just change the "Test" to "Your Server Name" so folder will be named "Your Server Name" and not "Test" in "C:\ProgramData\UltimaLive\"[DOUBLEPOST=1380719231,1380718499][/DOUBLEPOST]**How this works for your players**
Your players will ~only~ need the Igrping.dll/ Igrping_.dll mod.

Once the player connects to your shard a folder will be created in their "C:\ProgramData\UltimaLive\Your Shard Name", with the map#.mul files. These files will be "blank" for your players until they walk around and "discover" areas. The screen may quickly blink as they "discover" areas, which is for me only a millisecond and only has happened when I visited a new land for the first time.

Pics.[DOUBLEPOST=1380722169][/DOUBLEPOST]ULRD-1.jpg ULRD-2.jpg ULRD-3.jpg ULRD-4.jpg ULRD-5.jpg ULRD-6.jpg ULRD-7.jpg
 

tass23

Moderator
I haven't done much with the live editor since it was first released on RunUO. I am wondering though if your client is set to cache X number of houses, why if you logout in your house do you login to a black screen?
 

Redmoon

Citizen
I am unsure, but I'm thinking it is because of streaming packets. I have notified the scripter of this, and the issue is being looked into.
 

sec_goat

Citizen
@Redmoon your stuff looks awesome, I like the custom artwork.

I plan on using this, probably with a couple of prebuilt dungeon maps from DarkShard, at least until I can build my own maps!
 

Redmoon

Citizen
ROFLOL! I've been having this issue with the forums not posting my replies. :confused:

I said:
sorry I couldn't be more helpful right now as I'm working with custom animations (just finished tiger animation *woot woot*);
Thank you, and darkshard has the desktop gumps I'm currently using (got it years ago). I do have many more that I created but that'd mean I'd have to look through my backup dvds. And, for darkshard's price on maps, it's worth it! They're not lying about the time it takes to create a custom map, unless you want one that looks like a toddler did it. :eek:
 

sec_goat

Citizen
@Redmoon, I find if i do the @ thing to some one then hit enter a couple of times it eats my entire comment, so not sure if that's what is happening to you.

I was considering the entire DarkShard Dvd, but like the idea of being able to just add the maps and stream them to players, get people up and running with minimal effort on their part.
 

Redmoon

Citizen
@sec_goat You can still stream the maps(any map), even if you get darkshard's dvd. ;)

Yup, it must have been too many "enters" that deleted the post. Thanks for the heads up!
 

Attachments

  • ai.imgur.com_8rYTfln.jpg
    ai.imgur.com_8rYTfln.jpg
    14.1 KB · Views: 17

sec_goat

Citizen
@sec_goat You can still stream the maps(any map), even if you get darkshard's dvd. ;)

Yup, it must have been too many "enters" that deleted the post. Thanks for the heads up!
Oh what I meant was the custom art work, i am sure it is a bit different on how to get the players up on the custom artwork as well.
But yes I plan on using at lest the DarkShard dungeon maps to help me develop my "New Player quests"
 

Redmoon

Citizen
It'd be sweeeeeet if we could stream the artwork! As of right now, you still have to give players a patch for artwork. :(
 

sec_goat

Citizen
It'd be sweeeeeet if we could stream the artwork! As of right now, you still have to give players a patch for artwork. :(
Well my question is this: Some one was able to stream the map, what is stooping some one from streaming the artwork, or even extending the slots available for in game art work? The obvious answer is the knowledge of UO and C# is all.
 

Redmoon

Citizen
Nothing is stopping you, as far as I can tell. The only issue I'd see is the lag wars with all the art streaming.
 

sec_goat

Citizen
Nothing is stopping you, as far as I can tell. The only issue I'd see is the lag wars with all the art streaming.
Well why couldn't it be like a one time stream? You connect tot he server and it checks to see if yo are using the same file version, or whatever then you download the content needed. That way it's just the initial connection that is slow.
 

Redmoon

Citizen
@sec_goat Hmmm, I do have a shard patcher that I'm planning on tinkering with, but it'd be along the lines of UO's autopatcher. So in essence you'd still technically be patching, just a different way. I'm sure it is possible to do, but at what cost?
 
Status
Not open for further replies.