Lokai

Moderator
Lokai submitted a new resource:

Lokai Skills, Tree Harvesting, Building Construction - Entire Custom Skills system updated for use with ServUO. Completely Plug-and-Play.

1. Tree Harvesting:

This part of the system is an attempt to add pseudo-realism to the UO world by making every tree in the world produce goods based on it’s type, as opposed to the original system, in which oak trees can give Yew logs and maple trees can give Bloodwood logs. To do this, I created a tool called the Tree Harvest Tool. This tool has 5 functions, as shown in this image:

awww.frontiernet.net__tvbowman_lokai_Abilities_20Images_TreeHarvestGump.jpg

Using...

Read more about this resource...
 
Here is the words.txt file required for Linguistics. You can, of course create your own language file instead, if you prefer.

Also attached is the BladedItemTarget.cs file which is probably in your Scripts/Targets folder. My changes are marked, or you can overwrite if yours is fairly standard.
 

Attachments

  • words.txt
    28.1 KB · Views: 75
  • BladedItemTarget.cs
    4.8 KB · Views: 41
Last edited:
I know this is a crazy question that probably is possible to do but would be way to much work to make happen probably but ill ask anyway.

If someone wanted to use this system but convert all the regular in game skills over to this system and have everything showing up under your skill system would that even be possible?
Never mind it being a headache to end all headaches is it even possible or would there be issues making it impossible to achieve?

Also wasnt there edits to bladed knife or something to go with this?
 
would that even be possible?

Possible, but there are hundreds of script that already reference the existing core skills. I would not really want to eliminate them. I have been toying with a civilization system that prevents using any skill that has yet to be "discovered" by your civ. It's a long way from production, but not too hard to do that part, since the PlayerMobile checks for SkillUse.

wasnt there edits to bladed knife

That rings a bell. Yes, if you use a skinning knife, it is supposed to use the Skinning skill and provide greater hides and less meat, and if you use a carving knife it is supposed to check the Carving skill, and provide more meat and fewer hides.

**EDIT** 2nd post updated with BladedItemTarget.cs.
 
Last edited:
I really like this system always have since you originally done it. Do you know any shards that have put it into effect or modded it and done other things with it?
I am playing around with combining some of the farming scripts thats been around for years along with some ideas of how to pull them all together into a farming profession and more complete system and I been toying with the idea of using your system here in some way not sure how yet but I certainly am going to make it happen but will probably have some questions when I get to that point. I really want to thank you for all your hard work on this and hope you continue to do stuff with it. I always wanted to like tie it in with the original skill sets and have list of additional abilities tied to the base sets I actully made a list of all the base skills and then special abilities which could go with them to compliment and make both systems actully look more streamlined like it was meant to all be that way if that makes sense. I can dig that copy out and send to you if you want to look at it might give you ideas for future updates.
 
Lokai in riding cs where i can change the difficult riding ? because new char with skill riding = 10 when try to ride on any animal always goes down & the skillnot growing up. I try to ride with new char on horse, rideable llama and other and anytime that same situation and skill has not going up.. :/
 
In RideMount and RideEtherealMount, I have MinLevel set to 20. My original idea was that someone would have to be "taught" some first. You can set it lower to 10 or even 0, and the player should gain on failure.
 
I don't make new thread but i have another question. I'm using Lokai Advanced Player Gate but i got crash when player use it....

Where is problem ? I'm using this script http://www.runuo.com/community/threads/2-0-lokais-advanced-player-gate.69526/

Code:
Server Crash Report
===================

JustUO Version 1.0, Build 2.0
Operating System: Microsoft Windows NT 5.1.2600 Dodatek Service Pack 3
.NET Framework: 4.0.30319.1
Time: 2015-03-29 16:59:21
Mobiles: 2
Items: 37
Exception:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at Server.Custom.AdvancedPlayerGate.UseGate(Mobile m)
  at Server.Items.Moongate.EndConfirmation(Mobile from)
  at Server.Items.Moongate.BeginConfirmation(Mobile from)
  at Server.Items.Moongate.DelayCallback(Mobile from, Int32 range)
  at Server.Items.Moongate.DelayTimer.OnTick()
  at Server.Timer.Slice() in f:\JustUO\Server\Timer.cs:line 400
  at Server.Core.Main(String[] args) in f:\JustUO\Server\Main.cs:line 638

Clients:
- Count: 2
+ 127.0.0.1: (account = admin) (mobile = 0x1 'Nieznajomy')
+ 127.0.0.1: (account = xxx) (mobile = 0x2 'Pindol')
 
Advanced Player Gate is pretty old. Most likely it is not compatible with something in the ServUO scripts, like the number of Maps or the number of Skills, or something. I tried to make it flexible, but I do not think that Imbuing and Throwing and Mysticism were released when I wrote it, so check that first.
 
OK, I know this was updated at some point by someone for one of the latest Clients, but the version I have here has Try/Catch blocks in the appropriate places to prevent going over the index values for Skills. Let me know if this fixes your issue. This will NOT support the last 3 skills released as written, but it should stop the crashing.
 

Attachments

  • AdvancedPlayerGate.zip
    11 KB · Views: 19
HI, I'm looking to put this skills on the skill gump, but i need a Skill ID. I've seen the skills go from 0 to 30 but these numbers correspond to the original skills. Can guide me for put correctly?
 
Changing the default Skills gump would lead to a pit of endless code changes that I chose to avoid in the first place with this release. It comes with it's own Skills gump. However, there is something you can do. In PlayerMobile, you can override the method that calls the Skills gump. (I have stopped development so I can't tell you the exact method.) What you would do is call the LokaiSkills gump instead inside that method. Actually, I think this is it, but I am unable to support it beyond showing you this:

Code:
        public override void OnSkillsQuery(Mobile from)
        {
            if (from == this && !HasGump(typeof(ShowLokaiSkillsGump)))
            {
                from.SendGump(new ShowLokaiSkillsGump(from));
            }
            else base.OnSkillsQuery(from);
        }
 
how works teaching?

The idea behind Teaching was that the skill would gradually rise as you learn other skills. When your Teaching level reaches a high enough level the idea was to implement some way of imparting what you know to other players (for either a standard fee, or agreed upon amount, etc.) The higher your skill, the more someone would be able to learn from you. It was only developed as far as gains to the Teaching skill itself whenever another skill was raised.
 
Thanks lokai!, another question. Sorry for disturb. My players are ask me if they can learn this new skills from npc, i'm looking to do, but, i dont find the location for this, and how its work for the new skills. can guide me?

Any like this in the foreman? or i need to do more?

i put 180 in the skills for try to teach 60 to players.

Code:
[Constructable]
        public Foreman() : base( "El Constructor" )
        {
           
this.LokaiSkills(LokaiSkillName.AnimalRiding, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Brewing, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Commerce, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Construction, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.CureDisease, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.BrickLaying, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.DetectEvil, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.TreeCarving, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Skinning, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Pilfering, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Butchering, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Weaving, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.StoneMasonry, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.TreePicking, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Herblore, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Hypnotism, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Cooperage, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Linguistics, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.PickPocket, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.PreyTracking, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Sailing, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Spinning, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Framing, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.SpeakToAnimals, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Roofing, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Teaching, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.TreeDigging, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Ventriloquism, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.Woodworking, 180.0, 180.0);
            this.LokaiSkills(LokaiSkillName.TreeSapping, 180.0, 180.0);
           

        }
 
Last edited:
Looks like the newest build changes something in XMLSpawner
Errors:
+ Lokai Skills System/Core/LokaiSkillAttachments.cs:
CS0115: Line 46: 'Server.Engines.XmlSpawner2.LSA.GetPlayerMobileProperties(S
erver.ObjectPropertyList)': no suitable method found to override
Scripts: One or more scripts failed to compile or no script files were found.
 
I know this is a crazy question that probably is possible to do but would be way to much work to make happen probably but ill ask anyway.

If someone wanted to use this system but convert all the regular in game skills over to this system and have everything showing up under your skill system would that even be possible?
Never mind it being a headache to end all headaches is it even possible or would there be issues making it impossible to achieve?

Also wasnt there edits to bladed knife or something to go with this?
I play on Akara Essex And they have this on there shard. keeps me comming back.
 
any can say me the base name for the items in construction?,i cant find it :S . i will try to do a tool for "set movable false" for this items, and players can build with pieces.
 
S0246: Line 15: The type or namespace name 'ToolQuality' could not be found (are you missing a using directive or an assembly reference?) CS0246: Line 26: The type or namespace name 'ToolQuality' could not be found (are you missing a using directive or an assembly reference?)

Hello! I can't seem to figure out the issue on this one... It points me to the building portion of your folders.
 
It's possible the core has changed since I wrote this. I was just looking at BaseTool.cs in the Repo, and they are using something called ItemQuality, not ToolQuality now. Not sure, but I think if you change all references in my script BaseBuildingTool.cs from ToolQuality to ItemQuality, it should take care of it. There should be 7 references:

Code:
    Line 15:         private ToolQuality m_Quality;
    Line 26:         public ToolQuality Quality
    Line 52:             if (m_Quality == ToolQuality.Exceptional)
    Line 71:             m_Quality = ToolQuality.Regular;
    Line 83:             if (m_Quality == ToolQuality.Exceptional)
    Line 169:                         m_Quality = (ToolQuality)reader.ReadInt();
    Line 183:             Quality = (ToolQuality)quality;
 
That clears that out, now it is just a matter of doing some self-configurations with the XML attachments. Thank you very much, Lokai!
 
Got this error Lokai:

------------------------------------------------------------------------------------------------------------------------

Errors:
+ Customs/[ServUO.com]-Lokai Skills System for ServUO 12-18-2014/Lokai Skills System/Core/LokaiSkillAttachments.cs:
CS0115: Line 46: 'Server.Engines.XmlSpawner2.LSA.GetPlayerMobileProperties(Server.ObjectPropertyList)': no suitable method found to override
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.
 
Yes. In some versions of XMLSpawner that method does not exist. I had to create it if I remember correctly. I believe @Ravenwolfe had a good answer for this one somewhere. It may have been several years ago.
 
Got this error Lokai:

------------------------------------------------------------------------------------------------------------------------

Errors:
+ Customs/[ServUO.com]-Lokai Skills System for ServUO 12-18-2014/Lokai Skills System/Core/LokaiSkillAttachments.cs:
CS0115: Line 46: 'Server.Engines.XmlSpawner2.LSA.GetPlayerMobileProperties(Server.ObjectPropertyList)': no suitable method found to override
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

i have the same problem... how we can fix it?
 
I think you need to create a method stub in XmlAttachment.cs. Here is the path to the file:

Scripts / Services / XmlSpawner / XmlSpawner Core / XmlAttach / XmlAttachment.cs

This would be something like this:

Code:
public ObjectPropertyList GetPlayerMobileProperties(ObjectPropertyList opl)
{
     return opl;
}
 
OK. I found my personal edits.

In PlayerMobile.cs, I added this method:

Code:
        // Xml Spawner
        public override void AddNameProperties(ObjectPropertyList list)
        {
            base.AddNameProperties(list);

            foreach (XmlAttachment xmla in XmlAttach.FindAttachments(this))
            {
                xmla.GetPlayerMobileProperties(list);
            }
        }
        // Xml Spawner

And in XmlAttachment.cs I added this:

Code:
        public virtual void GetPlayerMobileProperties(ObjectPropertyList list)
        {
        }
 
OK. I found my personal edits.

In PlayerMobile.cs, I added this method:

Code:
        // Xml Spawner
        public override void AddNameProperties(ObjectPropertyList list)
        {
            base.AddNameProperties(list);

            foreach (XmlAttachment xmla in XmlAttach.FindAttachments(this))
            {
                xmla.GetPlayerMobileProperties(list);
            }
        }
        // Xml Spawner

And in XmlAttachment.cs I added this:

Code:
        public virtual void GetPlayerMobileProperties(ObjectPropertyList list)
        {
        }
I did and took these errors..

Errors:
+ Customs/UO Anthology/Lokai Skills System/Core/LokaiSkill.cs:
CS0029: Line 307: No se puede convertir implícitamente el tipo 'System.Co
ctions.Generic.List<Server.Engines.XmlSpawner2.XmlAttachment>' en 'System.Col
tions.ArrayList'
+ Customs/UO Anthology/Lokai Skills System/Core/LokaiSkillMods.cs:
CS0029: Line 257: No se puede convertir implícitamente el tipo 'System.Co
ctions.Generic.List<Server.Engines.XmlSpawner2.XmlAttachment>' en 'System.Col
tions.ArrayList'
CS0029: Line 276: No se puede convertir implícitamente el tipo 'System.Co
ctions.Generic.List<Server.Engines.XmlSpawner2.XmlAttachment>' en 'System.Col
tions.ArrayList'
+ Customs/UO Anthology/Lokai Skills System/Lokai Skills/Sailing.cs:
CS1061: Line 163: 'Server.Multis.BaseBoat' no contiene una definición de
werAnchor' ni se encontró ningún método de extensión 'LowerAnchor' que acepte
primer argumento de tipo 'Server.Multis.BaseBoat' (¿falta una directiva usin
una referencia de ensamblado?)
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.
 
Back