These are chat archives for ZaneDubya/UltimaXNA

9th
Sep 2015
V
@TormentedEmu
Sep 09 2015 05:25
A lawyer who can also program?! Inconceivable!
V
@TormentedEmu
Sep 09 2015 05:31
the ucs download/update manager is written in C#, Jeff
@jeffboulanger
Jeff Boulanger
@jeffboulanger
Sep 09 2015 06:54
ah
Xen85
@Xen85
Sep 09 2015 08:31
even shell i think is programmed in c#
i remember he said me something about
Xen85
@Xen85
Sep 09 2015 08:44
ah @ZaneDubya i would adivice you to download "code maid" for visual studio
it's a free tool to clean up the code
you can easily find it in "extensions" in each community version or professional one of VS
V
@TormentedEmu
Sep 09 2015 10:27
the ucs devkit is also in c#
InjectionDev
@InjectionDev
Sep 09 2015 12:29
for many years i have been away from UO... and yesterday i take a look on UOForever shard
and everybody has all itens Blessed... thats NOT Ultima Online
UO is full loot... dont make it an WOW for kids lol
Xen85
@Xen85
Sep 09 2015 12:45
uo main problem is "enchanted items"
not craftable ones
like shitty osi
so people need to bless items
because they had them not crafting, but in pve
InjectionDev
@InjectionDev
Sep 09 2015 14:18
hmm.. i got it
Zane Wagner
@ZaneDubya
Sep 09 2015 14:26
Can someone confirm that unicode font outlines are ALWAYS black and NEVER hued?
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:30
@ZaneDubya dont get code maid if you r looking for cleanup tools, apply for a free open source license of resharper ;)
InjectionDev
@InjectionDev
Sep 09 2015 14:31
free open source license of resharper ?
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:32
ya
open source projects can apply to get a free license
i have one for openuo
best tools around
InjectionDev
@InjectionDev
Sep 09 2015 14:33
Hmmm, nice
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:33
once you use resharper its impossible to code without it
InjectionDev
@InjectionDev
Sep 09 2015 14:33
i rly like resharper
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:33
it shows you all your errors in your code, code cleanup tools are simply amazing, "Goto Type" feature makes it so you never use the solution explorer again.
InjectionDev
@InjectionDev
Sep 09 2015 14:34
true.. there are a lot of little things, that you miss when you stop using it
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:34
Code Maid is a pile of shit in comparison ;)
ya i can no longer code without it, feels like something is missing
Zane Wagner
@ZaneDubya
Sep 09 2015 14:50
It appears that CM and RS are completely different products. CM doesn't do any static analysis AFAICT, just code cleanup.
Just saying that something isn't shit because something else offers more/different features. ;)
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:52
well what i meant is the code cleanup in resharper is way better than code made
maid
code maid is just cleanup, but resharpers is way better, mroe customizable
Zane Wagner
@ZaneDubya
Sep 09 2015 14:52
sure, that makes sense.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:52
you could literally tell resharper how you want your code ordered, from accesibility, to return type
we use it at work to make sure everyone is coding to the same standards
it shows as errors "squiggle underlines" what you don't follow the standards we apply
but resharper is amazing as it will point out null references, access to modified closures, un-used code
as squigglys
;)
u can then literally right lcick (or alt-enter) on those squigglys and it suggests a fix and even sometimes, applies it for you
its a great tool for begininers cause it shows you things you may not know about
like access to modified closures, a common mistake that causes problems that are hard to find when debugging
Zane Wagner
@ZaneDubya
Sep 09 2015 14:56
Would it have figured out my event non-un-subscription error? :)
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:57
nah that one is a tough one
Zane Wagner
@ZaneDubya
Sep 09 2015 14:57
Well, that makes me feel much better about missing it.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:57
that one is just one you have to learn by experience ;)
Zane Wagner
@ZaneDubya
Sep 09 2015 14:57
:)
Jeff Boulanger
@jeffboulanger
Sep 09 2015 14:57
ya its a common mistake, i wouldnt worry about it
i did it too ;)
at least you arent using winforms
and gdi
u can memory leak really easy with that
Zane Wagner
@ZaneDubya
Sep 09 2015 14:59
Follow up - is there a way to tell if an event is subscribed? Or to unsubscribe from an event without knowing what it was subscribing to it?
I was considering something like Dispose() { events = null; } but that's doesn't work.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 15:00
no
having a lot of problems with gitter, images not working, and its not sending messages on occasion now
cant do that ya
@ZaneDubya I highly recommend RS, infact, you should just apply for the free open source license and give it a try
there is a feature called Goto Type
you press Ctrl+T and start typing the name of the class
its amazing, i never use the solution explorer anymore lol
anyway, time to get rdy for work
Zane Wagner
@ZaneDubya
Sep 09 2015 15:08
have a good one!
Xen85
@Xen85
Sep 09 2015 15:20
code maid is free always ^^
ctrl + , you do the same °°"
"ctrl + , "
if you used some code standard
however ctrl + t is cool, it seems to be in eclipse
Jeff Boulanger
@jeffboulanger
Sep 09 2015 15:41
@Xen85 Code maid is great but given the choice of both being free, RS is the way to go
RS is worth the money imo though too hehe
But free open source licensing can't be beat
Zane Wagner
@ZaneDubya
Sep 09 2015 17:35
Have you guys seen this? https://github.com/gloomyson/StarCraft Starcraft in javascript! I haven't played it yet, and I'm sure it'll be taken down in short order, but it looks really cool!
Jeff Boulanger
@jeffboulanger
Sep 09 2015 17:36
I dunno that itll ever be taken down
its the same as what you are doing with UO
I guess they did extract the artwork, but still, as long as they arent selling it
im betting blizzard doesnt give a crap ;)
Zane Wagner
@ZaneDubya
Sep 09 2015 17:42
Ah, but they're including the art and sounds in the repo.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 17:42
Ya, thats their downfall
Zane Wagner
@ZaneDubya
Sep 09 2015 17:42
poor choice, but how else were they going to get it running in the browser?
Jeff Boulanger
@jeffboulanger
Sep 09 2015 17:43
web service
that builds it on the fly
using the wad files
or whatever format sc uses
wad was doom or ID games
;)
anyway, ya, they should have given the ability if you supplied your own file
if someone were to make a UO web client, web services should provide the assets
Zane Wagner
@ZaneDubya
Sep 09 2015 19:16
Wouldn't the web service also run afoul of copyright laws though?
The mechanics of the client can't be copyrighted, but the various animations and sounds and so on are definitely owned by some other party and could not be distributed.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 19:46
well, yes
but providing it, wouldnt
hosting it, yes
Rex-deadwall
@Rex-deadwall
Sep 09 2015 21:55
how do i get the ultimaXNA client to not get kicked by my forkUO server? in UltimaOnlineSettings.cs i've set it to ClientVersion = new byte[] {7, 0, 15, 1}; But i still get kicked
Jeff Boulanger
@jeffboulanger
Sep 09 2015 21:57
dunno how your setup is in forkuo
at what point are you getting kicked?
Rex-deadwall
@Rex-deadwall
Sep 09 2015 21:59
well, it has something to do with the client version checking, and my server is set to kick after 20 seconds. as a bandaid i just increased that time to 20000 seconds.
the client is set to 7.0.15.1 and the server is set to look for that
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:01
ah
i'd have to try it, maybe the bytes are out of order
looks like we send the packet incorrectly
we dont send as a string
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:05
ah ha!
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:05
nevermind
        if (version.Length != 4)
            Tracer.Critical("SeedPacket: Incorrect length of version array.");
        Stream.WriteAsciiNull(string.Format("{0}.{1}.{2}.{3}", version[0], version[1], version[2], version[3]));
we do
not sure why its not working for you
seems like it should be working, can you ConsoleWriteline the version you are receiving before its kicked?
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:08
ill try
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:18
ok i got it to say this: this is the version text sent: 6.0.6.2
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:18
You have the latest code?
for UXNA?
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:19
so wherever its getting the into 6.0.6.2 i couldn't find yet
yea
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:19
In WorldClient.cs
check the function SendClientVersion
see if it looks like this
    public void SendClientVersion()
    {
        if (Settings.UltimaOnline.ClientVersion.Length != 4)
        {
            Tracer.Warn("Cannot send seed packet: Version array is incorrectly sized.");
        }
        else
        {
            m_Network.Send(new ClientVersionPacket(Settings.UltimaOnline.ClientVersion));
        }
    }
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:21
yep its that
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:21
Seems like you arent using the right exe, or codebase, or something
oh
i see it
    public UltimaOnlineSettings()
    {
        ClientVersion = new byte[] {6, 0, 6, 2};
    }
looks like settings arent working right
they arent reading from the file
even after you set it
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:22
yep, i manually edited the line " ClientVersion = new byte[] {6, 0, 6, 2};" to "ClientVersion = new byte[] {7, 0, 15, 1};"
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:23
i get that
but its not reading it
for whatever reason
man, settings are nasty
it really says byte[] in the settings file?
my lord
I would write up an issue
get @ZaneDubya to see about fixing it, i really think he should ditch the custom serialization code and go with a standard format that allows for complex types.
Zane Wagner
@ZaneDubya
Sep 09 2015 22:27
Hi Rex-deadwall
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:27
heya
Zane Wagner
@ZaneDubya
Sep 09 2015 22:27
Likely the old version is cached in settings.cfg
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:27
I love @ metions lol
Zane Wagner
@ZaneDubya
Sep 09 2015 22:27
You should exit visual studio
And delete your entire bin folder.
That will do the trick, very likely.
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:28
ok
Zane Wagner
@ZaneDubya
Sep 09 2015 22:28
This will be better addressed when we can actually edit all the settings from the client. :)
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:28
is there a settings.cfg in the solution?
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:28
yes
Zane Wagner
@ZaneDubya
Sep 09 2015 22:28
No, it's created (and then read) at runtime. But if one exists, it will populate all the configuration vars.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:29
thats weird
Zane Wagner
@ZaneDubya
Sep 09 2015 22:29
lol not at all
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:29
either read it, or make it, seems more viable
if its there, dont populate :(
Zane Wagner
@ZaneDubya
Sep 09 2015 22:29
of course, misspoke.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:29
ah ok
i guess i dont understand why its not working for him
Zane Wagner
@ZaneDubya
Sep 09 2015 22:30
Because he has a settings.cfg (and .bak) that already exist, they are being read when he starts up the client.
Well, we'll wait and see if my solution fixed it for him.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:30
ya as i understand it, hes editing the one in his bin
which should just work
but we will see
Zane Wagner
@ZaneDubya
Sep 09 2015 22:31
in the code? Those are just defaults. They are not used when a valid settings.cfg file exists.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:31
right, but thats what its using, even though he is manually setting the value in the config
ohhh
i misread
lol nm
i see what you are saying
hes setting the code
haha nm nm
Zane Wagner
@ZaneDubya
Sep 09 2015 22:32
right. Again, I can totally see why this is confusing, it needs an interface in the client.
And I will create one, but it's not a priority.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:32
why an interface?
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:35
how do i paste a block of code like you guys did a bit ago?
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:35
just paste it
or do
Zane Wagner
@ZaneDubya
Sep 09 2015 22:35
lead with three accent graves ```
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:35
ya
i just paste it, its pretty smart most of the time
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:35
Initializing UOData. Is64Bit = False
Looking for UO Installation:
Incompatible: C:\Program Files (x86)\EA Games\Ultima Online Mondain's Legacy
Incompatible: C:\Program Files (x86)\EA Games\Ultima Online Mondain's Legacy
Incompatible: C:\Program Files (x86)\Electronic Arts\Ultima Online Classic
Did not find a compatible UO Installation. UltimaXNA is compatible with any vers
ion of UO through Mondian's Legacy.
Did not find a compatible UO Installation. UltimaXNA is compatible with any vers
ion of UO through Mondian's Legacy.
i get that error now when starting
Zane Wagner
@ZaneDubya
Sep 09 2015 22:36
Right, it's not explicitly compatible with clients that have been upgraded to a version that uses UOP files.
The client treats any directory with UOP files within it as incompatible.
As far as I know, UOP files work - but I don't want to support them until I have ML working.
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:38
hmm, this is the dir i am trying to use: C:\Program Files (x86)\Electronic Arts\Ultima Online Classic
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:39
at some point, UO switched from MUL files to UOP
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:39
ah there are uop files in there
thats kinda odd
Zane Wagner
@ZaneDubya
Sep 09 2015 22:39
Yeah, the classic client uses the UOP format.
The switch occured in mid-2012.
But I don't know what patch, specifically, switched the files over.
A little google sleuthing says "7.0.24"
@Rex-deadwall There are also new packets that are sent to clients >7.0.something that I haven't implemented - you might run into those errors as well.
If you are trying to force the version, that is.
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:43
its a bit frustrating that i had it working, go to fix one bug and cause another... lol
Zane Wagner
@ZaneDubya
Sep 09 2015 22:45
:(
You can manually set the install directory in settings.cfg

That will override the 'looking for UO Installation' prompt, I believe. I have

[ultimaOnline]
ClientVersion=[6,0,6,2]
DataDirectory=C:\Program Files (x86)\EA Games\Ultima Online Mondain's Legacy
[/ultimaOnline]

in mine
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:51
ok, because i deleted the bin folder i lost the settings.cfg file
i happened to have a copy of denizsokmen's uxna fork
so i took the settings.cfg from that bin, and copied it to the normal uxna folder, then edited the ClientVersion=[6,0,6,2] in settings and got past that error
is there a way to run the client with razor?
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:53
no razor has no idea what uxna is
it only works with the classic client
razor does heavy injection, expecting to inject into memory addresses of the classic client. Those memory signatures will not exist in uxna
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:55
ah hmm.
Jeff Boulanger
@jeffboulanger
Sep 09 2015 22:55
but in theory, when uxna is more feature complete, it can contain the same features as razor
or people can make them rather
Rex-deadwall
@Rex-deadwall
Sep 09 2015 22:55
that was also my next thought
Zane Wagner
@ZaneDubya
Sep 09 2015 22:58
one day ;)