April 23, 2018, 12:04:26 AM

Vita-Nex: Core



ServUO
Ultima Shards: Multiverse

JetBrains

User Info

 
 
Welcome, Guest. Please login or register.

Who's Online

  • Dot Guests: 1
  • Dot Hidden: 0
  • Dot Users: 0

There aren't any users online.

Advertisment

Current Board

Support  >  General Support

Give and receive help and advice to do with general aspects of project support like installation and configuration. This board is NOT for customisation support!


Author Topic: Where to start?  (Read 4488 times)

0 Members and 1 Guest are viewing this topic.

Offline Gr3enP0ison

  • User
  • *
  • Posts: 2
  • Likes: 0
    • View Profile
Where to start?
« on: August 03, 2015, 10:31:25 AM »
Hello guys and Vorspire...

Maybe you remember me(garfield/garnele) from RunUO forums some time ago. Well some old stuff from defiance/revived/perilous and OSI Europa played on a lot of freeshards and dont like some of the systems. Now we are sticking together to build up a really great mature shard based on my old freeshard. So we decided to use Vita-Nex as nexgen Runuo core + we like your work :)

Now the questions.
After installing and activating the system + upgrading all of the scripts i had, we wanna create some custom modules and so on. Is there a wiki or something like that around with some examples using your core ? for example supergumps? And where can I find the documentation about your custom commands like chatsystem and so on ?

Greetings...

Offline Vorspire

  • Administrator
  • *****
  • Posts: 142
  • Likes: 34
  • Founder & Developer
    • View Profile
    • Vita-Nex: Core
Re: Where to start?
« Reply #1 on: August 03, 2015, 07:16:41 PM »
Unfortunately, I didn't ever get around to producing extensive documentation for the project, but if you look around some posts here, I have provided some examples to help others.
There is a Wiki page on Assembla project page that has a short tutorial on SuperGumps.

The quickest way to find commands is by using [MyCommands - all commands available to your access level will be listed and searchable using the gump.

A Service or Module class definition are fairly simple, a skeleton Service class would look like this;
Code: [Select]
[CoreService("My Service")]
public static class MyService
{
    public static CoreServiceOptions CSOptions { get; private set; }

    static MyService()
    {
        CSOptions = new CoreServiceOptions(typeof(MyService));
    }

    private static void CSConfig() // Global Configure hook
    { }

    private static void CSInvoke() // Global Initialize hook
    { }

    private static void CSSave() // World Save hook
    { }

    private static void CSLoad() // World Load hook
    { }

    private static void CSDispose() // Invoked when server closes/exits
    { }
}

A typical Module class definition;
Code: [Select]
[CoreModule("My Module")]
public static class MyModule
{
    public static CoreModuleOptions CMOptions { get; private set; }

    static MyModule()
    {
        CMOptions = new CoreModuleOptions(typeof(MyModule));
    }

    private static void CMEnabled() // Invoked when module is enabled
    { }

    private static void CMDisabled() // Invoked when module is disabled
    { }

    private static void CMConfig() // Global Configure hook
    { }

    private static void CMInvoke() // Global Initialize hook
    { }

    private static void CMSave() // World Save hook
    { }

    private static void CMLoad() // World Load hook
    { }

    private static void CMDispose() // Invoked when server closes/exits
    { }
}

Note the differences; Services do not have the ability to enable/disable - they are perma-enabled; Modules have CMEnabled and CMDisabled to handle the transition of the enabled state.
Also, the methods must be defined with their respective prefix, either CS or CM, meaning CoreService and CoreModule respectively. The Services and Modules are loaded with Reflection and the methods defined with these prefix' are automatically detected and called if they are defined.
The CoreServiceOptions and CoreModuleOptions can be derived in order to add a custom options class; these options are automatically serialized, so you don't have to worry about writing I/O logic.

All properties and methods shown in the examples above are optional and do not need to be defined; if a method is not defined, it will not be used, if a property is not defined, a default value will be used where required; in the case of the options property, a default instance of the CoreServiceOptions or CoreModuleOptions class is used - the options property overrides the default if defined.

Offline Gr3enP0ison

  • User
  • *
  • Posts: 2
  • Likes: 0
    • View Profile
Re: Where to start?
« Reply #2 on: August 04, 2015, 01:00:35 PM »
Hey and thank you for your great tutorial. So I started programming my first module :)
Nevertheless there is just a small change.
CoreModule needs two parameters.
So just change this:
Code: [Select]
[CoreModule("My Module")]
with
Code: [Select]
[CoreModule("My Module", "1.0.0.1")]
for example

 

Download VNc

Recent Topics

Vita-Nex: Core 4.0.0.0 Released by Vorspire
[January 15, 2017, 08:56:41 PM]


Effects Help by Vorspire
[January 15, 2017, 06:47:33 PM]


Ultima Online Phoenix is Ready to Begin! by Abracadabra2.0
[December 13, 2016, 01:14:49 AM]


How To: Deceit Braziers Spawn/Despawn by Abracadabra2.0
[November 26, 2016, 07:34:13 PM]


Installing VNC 3.0.0.1 by Johnny
[August 27, 2016, 06:49:40 PM]


JSON Web Stats Stuck Problem by Argalep
[May 27, 2016, 06:16:55 AM]


Modules not Working after being Enabled by ProfessorChaos
[May 19, 2016, 02:44:06 AM]


Issues Installing VitaNex Core 3.0.0.1 on RunUO 2.7 by ProfessorChaos
[May 18, 2016, 09:30:37 PM]


ADM Assistance by Vorspire
[May 18, 2016, 09:23:25 PM]


Suggestion by Vorspire
[April 24, 2016, 06:23:15 PM]

Comments

Refresh History
  • Moderated
  • Terrapin: Hello - and thanks - thought I would check VNC out since using it in JustUO server...
    April 22, 2015, 10:20:17 PM
  • Vorspire: Hello!
    December 16, 2014, 07:11:55 PM
  • Tek: Hello
    December 15, 2014, 08:51:25 AM
  • magnus_mythos: hello
    November 18, 2014, 05:30:22 AM
  • Antares_UO: thanks Vospire
    June 15, 2014, 06:52:17 PM
  • jezika: Thank you is not enough Vorspire! This system is exactly what I was looking for.
    June 04, 2014, 06:01:11 AM
  • Vorspire: VNc 2.1.1.0 Released!
    March 10, 2014, 01:33:06 AM
  • Vorspire: VNc 2.1.0.0 Released!
    January 27, 2014, 12:57:51 PM
  • Kassandra: Many thanks for building my shard for me.  It is awesome, I'm extremely pleased with what you've done and the ongoing support!!!
    November 20, 2013, 01:31:08 AM
  • Regnak: Great news ! Thanks Vorspire :)
    November 16, 2013, 01:55:16 PM
  • Vorspire: VNc: 2.1.0.0 is being developed!
    November 13, 2013, 08:38:35 AM
  • Vorspire: VNc 2.0.0.5 Released!
    September 11, 2013, 12:49:42 AM
  • Vorspire: VNc 2.0.0.4 Released!
    August 23, 2013, 12:47:54 AM
  • Vorspire: VNc 2.0.0.3 Released!
    July 05, 2013, 12:50:13 AM
  • Kaemalux: :-)
    July 01, 2013, 01:51:13 PM
  • Vorspire: VNc 2.0.0.2 Released!
    June 20, 2013, 08:29:19 PM
  • scrlked: I am trying it out on my shard. This is taking UO to the next level.
    June 13, 2013, 11:11:16 AM
  • Vorspire: VNc 2.0.0.0 Released!
    June 03, 2013, 12:53:33 AM
  • ST33LDI9ITAL: huzzah, going on vacation in for 2 weeks soon, plan to catch up on some runuo stuff. looking forward to taking some time with it. good job!
    February 26, 2013, 06:02:30 AM
  • Vorspire: The latest, most optimised version of VNc is not far from release.
    February 22, 2013, 03:16:51 AM

Carbonate design by Bloc
variant: carbon
SMF 2.0.11 | SMF © 2015, Simple Machines
SimplePortal 2.3.6 © 2008-2014, SimplePortal