Creating New Skills In Client And POL 095+096

Open discussion forum. For topics that do not fit anywhere else.
Post Reply
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Creating New Skills In Client And POL 095+096

Post by MuadDib »

Creating New Skills.mul/idx With Skill Creator

First you will need to download the Skill Creator program. You can download it at the bottom of this post.

Be sure you backup your skills.idx and skills.mul files. I'd suggest copying them out of your UO folder, into the root drive of your C:. Just to keep them safe.

Next you will want to edit the Skills.XML file that comes with Skill Creator. This is where you will set up all your custom skill names and if they have buttons on the skill window! Remember, the order of the Skills in the XML file, is the same order for you server and scripts. The first entry is skill id 0, second is skill id 1, etc.

Below is an example entry from the Skills.XML file:

Code: Select all

	<!-- Alchemy -->
	<skill name="Alchemy" useable="0" />
Now, the part with <!-- you can ignore, it's the next line you want to edit. The name in parenthesis (""), after the skill name entry, is the name that will be displayed in the Skill Window in the client, and reported during the client's Skill Gain/Loss messages. Next, you will see the word useable. That is where you will set for the skill to get a little blue button or not, on the Skill Window next to it. The blue button is for skills you can use without items. Such as Hiding, Anatomy, etc.


Finally, you will want to save the XML file to keep your changes. Then you can run the exe file to create your new skills.idx and skills.mul files for the client! Copy them over to your UO Directory, and you are ready to go, sort of.

We will discuss adding our new skills to our server in the next area.
Attachments
SkillCreator.zip
Skill Creator. For editing the client-side files controlling skill names and such.
(67.97 KiB) Downloaded 744 times
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Post by MuadDib »

Adding Our New Skills to POL 095 and 096

Overview

Firstly, you will need to open the uoclient.cfg file for editing. Make sure you count the amount of skills you have in your skills.xml file for the new mul file. You will need to make, or edit, the MaxSkillID entry ("General" section of file. Default 51 if not found). You must have skills.cfg entires for each skillid up to your MaxSkillID setting. We will discuss those also.

Attributes.cfg

First file we will edit, is the Attributes.cfg file. This file defines Attribute names and aliases. Attributes, being skills and stats. You will want to leave the Strength, Dexterity, and Intelligence intact. Even if your skill does not have an alias you want POL to use, you will still need it in this file. The best format, is keeping it in the same order as your skills in the skills.XML file you made. At the LEAST, these attributes must be defined: 'Strength', 'Intelligence', 'Dexterity', 'Parry', and 'Tactics' for use in internal calculations. Below is an example from the Distro's file:

Code: Select all

Attribute ForensicEvaluation
{
	Alias		ForensicEval
	Alias		Forensics
}
If you notice, it has the names WITHOUT spaces. Remember, do not use spaces in names, or the aliases. That is important.

UOSkills.cfg

This file will link your "Attributes" to skill ID numbers. It is important to remember that the order you had skills in the Skills.XML file, will be the same here! The first from the XML is skill ID 0, second is skill ID 1, and so on. You should always use the Attribute name from Attributes.cfg for the Attribute entry in this file. Skill ID must be an integer between 0 and 500, though any entries past the maximum UO skill id will not be sent to the UO client, as er the MaxSkillID setting explained earlier. Below is an example from the Distro's file:

Code: Select all

Skill 0
{
    Attribute Alchemy
}
Skills.cfg

This file defines the details for each UO skill. You can have just 1 in the /config directory with all the skills, or have a skills.cfg in the package directory for the skill's package. You can have some skills in the main one, with others in their own package. But remember, you CANNOT have the skill defined in BOTH. It can only reside in 1 or the other. The distro doesn't use this file, it uses pkg/foundations/hooks/skillsdef.cfg instead, with the same structure. So if you are using POL Distro scripts, be sure to edit that one also, just like this one. Below is an example from the Distro's file:

Code: Select all

Skill 21
{
    Name    Hiding
    SkillId 21
    Script  hiding
    Delay   10
    DexAdv  100 1d4+20
    default_points 50
    title   Rogue
    DropStat       str int
}
Now, let's examine this config entry. The name is the string name for your skill. Remember, do NOT use spaces in the Name for your skill entry!


The SkillID (and Skill name in the heading of the entry), are the Skill ID number you gave the skill in the UOSkills.cfg file above.


Script is NOT required. It is the name (use :pkgname:script for packages scripts that link to your skill) of the script for your skill, IF it has a blue button on the skill window in the client. When the player presses the skill's button, this is the script that will be fired on your server.


Delay is number of seconds before the user can use another skill. Remember, this is for skills with buttons. The core will not run a check for a skill not being used by the button. If a skill can be used directly in other means, be sure you add some way to check timers in it.


If UnHides is 1, using the skill unhides the character if hidden when they try to use the skill via the skill's button. Again, if this skill can be directly used in other means, be sure you add a way to do this is the script. The core will not unhide them otherwise.


If you are using Distro, the default_points entry will list the minimum points to give for advancement in this skill. The core itself does not use this entry.


Title is a Distro entry. If you use Distro, that is the title of the skill for the Paperdoll of the character, if that is their highest skill. The core does not use this entry.


DropStat is Distro used. It let's Distro know which specific stats you would like dropped by Distro, if required.


Below, is the Stat Advancement entries for skills. These are used to help specify how your stats will increase when using this skill.

Code: Select all

    [StrAdv     (percent chance to advance) (die-string amount to advance)]
    [IntAdv     (percent chance to advance) (die-string amount to advance)]
    [DexAdv     (percent chance to advance) (die-string amount to advance)]
Using Distro

If you are using Distro POL, be sure to check all the files for other editing. Such as the /scripts/include/attributes.inc file. In that one, for example, it defines new CONST settings for each Attribute ID and Skill ID. You will want to edit those, to add your custom skills to distro.

Do not forget to create your scripts for your skills! Especially the ones that have buttons in the skill window!

Adding New Combat Skills

If you want to make a new combat skill, be sure you add it's Attribute name to weapons you want to use it. Otherwise, just adding it, does you no good. If you are using Distro, be sure to find /pkg/foundations/hooks/newCombat.sr. You will need to edit this file also, for skill gains in your new combat skills. The only thing to edit in the file, is the FindSkillidByIdentifier(skid) function. Just set it up case uses all your combat Attribute names, and skill id numbers.
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

Maud is there a maximum amount of skills we can add to the client side files? I tried to add a 56th (Skill ID 55) skill and it wouldn't display in the skill lists. The server seemed to update it fine on a powerup command but the message the client sent me was "Your skill in has increased by 100.0" leaving out the skill name I had set in the XML file. I tried using another skill editor as well and the same thing occurred with the files it generated.

BTW thanks much for this tutorial. It has been a greeat help in editing the existing skill names and adding skills to the combat system. Could not have done it without this. Esp the combat info.
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Post by MuadDib »

Far as i know there is not, but it would not suprise me if OSI set it to ignore "extra" skills in the newer clients. Try it on an older client, and see if it works. May be client related to newer clients :(
User avatar
AsYlum
Grandmaster Poster
Posts: 115
Joined: Sun Feb 05, 2006 5:24 am

Post by AsYlum »

Yest that's true. From client 4.x.x every skillid above osi defined is ignored in gain message sometimes we get space or some weird characters like '%x3'. I think that i've seen client patch for this issue somewhere. I'll try to find it in my uo archives. :)
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

Yay! Find the patch!
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Post by MuadDib »

You can also do it in the script also, so that when a gain is given on a skill above the normal range, to send the message. Is a bit overkill, but, will work to give the player the message.
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

That's a good point since the core will still have and maintain the skills internally. I assume players would still want a way to view the additional skills though. Anyone ever written a custom skill scroll/gump?
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

I get my scripts to send all the skillgain and skillloss messages. The main reason for that is that I rename a few skills and I didn't want a new download each time I change skills. (heh and also I didn't have Skill Creator back then!)

The trick to making this work was to hexedit the client to totally ignore the skillgain messages. It actually gets to print a blank line onscreen, but that's hard to notice. And then write your own SKILLWIN to display things the way you want. Fiddly, but then again, players need a custom client for our shard since we rename all the mul files anyway.

When I finish removing all but essential references to SKILLID in my scripts I see no reason why I can't have 100 skills. Most importantly, I haven't had a client complain (v2 or v4) in testing so far.
RazorTongue
New User
Posts: 28
Joined: Mon Apr 23, 2007 8:18 am

Post by RazorTongue »

I don't use POL Distro(I want to write base systems from the scratch) and basing on the Core 96 documentation I have created following files.

attributes.cfg

Code: Select all

Attribute Strength
{
	Alias Str
}

Attribute Intelligence
{
	Alias Int
}

Attribute Dexterity
{
	Alias Dex
}

Attribute Wisdom
{
	Alias Wis
}

Attribute Charisma
{
	Alias Cha
}

Attribute Constitution
{
	Alias Con
}

Attribute Parry
{
}

Attribute Tactics
{
}

// SKILLS //

Attribute Skill0
{
}

Attribute Skill1
{
}

Attribute Skill2
{
}

Attribute Skill3
{
}

Attribute Skill4
{
}

Attribute Skill5
{
}

Attribute Skill6
{
}

Attribute Skill7
{
}

Attribute Skill8
{
}

Attribute Skill9
{
}

Attribute Skill10
{
}

Attribute Skill11
{
}

Attribute Skill12
{
}

Attribute Skill13
{
}

Attribute Skill14
{
}

Attribute Skill15
{
}

Attribute Skill16
{
}

Attribute Skill17
{
}

Attribute Skill18
{
}

Attribute Skill19
{
}

Attribute Skill20
{
}

Attribute Skill21
{
}

Attribute Skill22
{
}

Attribute Skill23
{
}

Attribute Skill24
{
}

Attribute Skill25
{
}

Attribute Skill26
{
}

Attribute Skill27
{
}

Attribute Skill28
{
}

Attribute Skill29
{
}

Attribute Skill30
{
}

Attribute Skill31
{
}

Attribute Skill32
{
}

Attribute Skill33
{
}

Attribute Skill34
{
}

Attribute Skill35
{
}

Attribute Skill36
{
}

Attribute Skill37
{
}

Attribute Skill38
{
}

Attribute Skill39
{
}

Attribute Skill40
{
}

Attribute Skill41
{
}

Attribute Skill42
{
}

Attribute Skill43
{
}

Attribute Skill44
{
}

Attribute Skill45
{
}

Attribute Skill46
{
}

Attribute Skill47
{
}

Attribute Skill48
{
}

Attribute Skill49
{
}

Attribute Skill50
{
}

Attribute Skill51
{
}
skills.cfg

Code: Select all

Skill 0
{
	SkillID	0
	Name		Skill0
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 1
{
	SkillID	1
	Name		Skill1
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 2
{
	SkillID	2
	Name		Skill2
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 3
{
	SkillID	3
	Name		Skill3
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 4
{
	SkillID	4
	Name		Skill4
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 5
{
	SkillID	5
	Name		Skill5
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 6
{
	SkillID	6
	Name		Skill6
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 7
{
	SkillID	7
	Name		Skill7
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 8
{
	SkillID	8
	Name		Skill8
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 9
{
	SkillID	9
	Name		Skill9
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 10
{
	SkillID	10
	Name		Skill10
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 11
{
	SkillID	11
	Name		Skill11
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 12
{
	SkillID	12
	Name		Skill12
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 13
{
	SkillID	13
	Name		Skill13
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 14
{
	SkillID	14
	Name		Skill14
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 15
{
	SkillID	15
	Name		Skill15
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 16
{
	SkillID	16
	Name		Skill16
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 17
{
	SkillID	17
	Name		Skill17
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 18
{
	SkillID	18
	Name		Skill18
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 19
{
	SkillID	19
	Name		Skill19
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 20
{
	SkillID	20
	Name		Skill20
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 21
{
	SkillID	21
	Name		Skill21
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 22
{
	SkillID	22
	Name		Skill22
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 23
{
	SkillID	23
	Name		Skill23
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 24
{
	SkillID	24
	Name		Skill24
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 25
{
	SkillID	25
	Name		Skill25
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 26
{
	SkillID	26
	Name		Skill26
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 27
{
	SkillID	27
	Name		Skill27
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 28
{
	SkillID	28
	Name		Skill28
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 29
{
	SkillID	29
	Name		Skill29
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 30
{
	SkillID	30
	Name		Skill30
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 31
{
	SkillID	31
	Name		Skill31
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 32
{
	SkillID	32
	Name		Skill32
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 33
{
	SkillID	33
	Name		Skill33
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 34
{
	SkillID	34
	Name		Skill34
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 35
{
	SkillID	35
	Name		Skill35
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 36
{
	SkillID	36
	Name		Skill36
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 37
{
	SkillID	37
	Name		Skill37
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 38
{
	SkillID	38
	Name		Skill38
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 39
{
	SkillID	39
	Name		Skill39
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 40
{
	SkillID	40
	Name		Skill40
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 41
{
	SkillID	41
	Name		Skill41
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 42
{
	SkillID	42
	Name		Skill42
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 43
{
	SkillID	43
	Name		Skill43
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 44
{
	SkillID	44
	Name		Skill44
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 45
{
	SkillID	45
	Name		Skill45
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 46
{
	SkillID	46
	Name		Skill46
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 47
{
	SkillID	47
	Name		Skill47
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 48
{
	SkillID	48
	Name		Skill48
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 49
{
	SkillID	49
	Name		Skill49
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 50
{
	SkillID	50
	Name		Skill50
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}

Skill 51
{
	SkillID	51
	Name		Skill51
	Delay		1
	UnHides	1
	Script	:attributes:dummyskill
}
uoskills.cfg

Code: Select all

Skill 0
{
	Attribute	Skill0
}

Skill 1
{
	Attribute	Skill1
}

Skill 2
{
	Attribute	Skill2
}

Skill 3
{
	Attribute	Skill3
}

Skill 4
{
	Attribute	Skill4
}

Skill 5
{
	Attribute	Skill5
}

Skill 6
{
	Attribute	Skill6
}

Skill 7
{
	Attribute	Skill7
}

Skill 8
{
	Attribute	Skill8
}

Skill 9
{
	Attribute	Skill9
}

Skill 10
{
	Attribute	Skill10
}

Skill 11
{
	Attribute	Skill11
}

Skill 12
{
	Attribute	Skill12
}

Skill 13
{
	Attribute	Skill13
}

Skill 14
{
	Attribute	Skill14
}

Skill 15
{
	Attribute	Skill15
}

Skill 16
{
	Attribute	Skill16
}

Skill 17
{
	Attribute	Skill17
}

Skill 18
{
	Attribute	Skill18
}

Skill 19
{
	Attribute	Skill19
}

Skill 20
{
	Attribute	Skill20
}

Skill 21
{
	Attribute	Skill21
}

Skill 22
{
	Attribute	Skill22
}

Skill 23
{
	Attribute	Skill23
}

Skill 24
{
	Attribute	Skill24
}

Skill 25
{
	Attribute	Skill25
}

Skill 26
{
	Attribute	Skill26
}

Skill 27
{
	Attribute	Skill27
}

Skill 28
{
	Attribute	Skill28
}

Skill 29
{
	Attribute	Skill29
}

Skill 30
{
	Attribute	Skill30
}

Skill 31
{
	Attribute	Skill31
}

Skill 32
{
	Attribute	Skill32
}

Skill 33
{
	Attribute	Skill33
}

Skill 34
{
	Attribute	Skill34
}

Skill 35
{
	Attribute	Skill35
}

Skill 36
{
	Attribute	Skill36
}

Skill 37
{
	Attribute	Skill37
}

Skill 38
{
	Attribute	Skill38
}

Skill 39
{
	Attribute	Skill39
}

Skill 40
{
	Attribute	Skill40
}

Skill 41
{
	Attribute	Skill41
}

Skill 42
{
	Attribute	Skill42
}

Skill 43
{
	Attribute	Skill43
}

Skill 44
{
	Attribute	Skill44
}

Skill 45
{
	Attribute	Skill45
}

Skill 46
{
	Attribute	Skill46
}

Skill 47
{
	Attribute	Skill47
}

Skill 48
{
	Attribute	Skill48
}

Skill 49
{
	Attribute	Skill49
}

Skill 50
{
	Attribute	Skill50
}

Skill 51
{
	Attribute	Skill51
}
dummyskill.src

Code: Select all

use uo;

program UseSkill(who)

	SendSysMessage(who, "Skill Used...And so ?");

endprogram
Everything is in package 'attributes' (dummyskill.src in main directory, .cfg files in attributes/config). I can get and set skill values(and client displays it with good names [xxx has increased by yyy and so on]), but when I try to use skill from Skills gump I get following error messages:

In my UO: ML Client
That skill is not implemented.

In Pol 97 (Coregina RC3):
Character Human (acct: Razz): No handler for skill <GoodSkillNumber>

How to fix it ?
User avatar
CWO
POL Expert
Posts: 1160
Joined: Sat Feb 04, 2006 5:49 pm

Post by CWO »

somehow the dummyskill.src isn't being found... that would be my only guess...
RazorTongue
New User
Posts: 28
Joined: Mon Apr 23, 2007 8:18 am

Post by RazorTongue »

Yeah...but dummyskill.ecl is located inside the package 'attributes'(with .cfg files) and there's no difference between Script :attributes:dummyskill and Script dummyskill - I get the same error.

EDITED:
Changing attribute definitions in attributes.cfg(adding AttributeType and Script lines) helped, but according to documentation Script should be defined in skills.cfg(Distro 97 doesn't use that file(or my grep sucks)).

Code: Select all

Attribute Skill0
{
	AttributeType	Skill
	Script		:attributes:dummyskill
}

and so on...
Please update documentation or tell me is wrong :cool:
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

In pol097 you don't need skills.cfg any more. When pol starts it prints a console message saying it can't find it and doesn't care.

See core changes:
06-16 Austin
Removed: Skills.cfg is no longer used.
Instead skill IDs will be read from uoskills.cfg and redirected to
attributes.cfg. The attributes.cfg file now has support for the old entries.
skills.cfg entries supported now in attributes.cfg are:
DELAY, UNHIDES and SCRIPT

My uoskills.cfg contains only the link to attributes.cfg as follows:

Code: Select all

Skill 1
{
	Attribute	Anatomy
}
My attributes.cfg contains the following:

Code: Select all

Attribute Anatomy
{
	desc		Anatomy
	IntAdv		100 1d2+10
	script		:anatomy:anatomy
	Unhides		0
}
I define skills up to 64.
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

O&G does the client report skill gains properly to the player with skills above 54? I had problems with the client not passing the skill name. It would send the skill increase statement but no skill name wasz included.
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

Ah, that's where I cheat.
I have the server send all skillgain messages.

On our custom client I use a hex editor to null out the entire skill gain and loss message. It works :)
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

CHEATER!!!

*points at you*

I guess that's one way to do it.
phao
Grandmaster Poster
Posts: 129
Joined: Fri Aug 31, 2007 2:25 pm

Post by phao »

the program is good, i'm using it, but i'm getting erros, i'll post my files and explaion the error, if you guys can help me, plz do it :)


pol97\pkg\attributes\config\uoskills.cfg

Code: Select all

skill 0
{
attribute abjuration
}

skill 1
{
attribute accuracy
}

skill 2
{
attribute alchemy
}

skill 3
{
attribute anatomy
}

skill 4
{
attribute animallore
}

skill 5
{
attribute animaltaming
}

skill 6
{
attribute archery
}

skill 7
{
attribute armslore
}

skill 8
{
attribute backstab
}

skill 9
{
attribute bardskill
}

skill 10
{
attribute block
}

skill 11
{
attribute blunt
}

skill 12
{
attribute bowcraft
}

skill 13
{
attribute carpentry
}

skill 14
{
attribute catography
}

skill 15
{
attribute conjuration
}

skill 16
{
attribute concentration
}

skill 17
{
attribute cooking
}

skill 18
{
attribute detectinghidden
}

skill 19
{
attribute divination
}

skill 20
{
attribute disarmtraps
}

skill 21
{
attribute dodge
}

skill 22
{
attribute doublestrike
}

skill 23
{
attribute doublebackstab
}

skill 24
{
attribute dragonpunch
}

skill 25
{
attribute eaglestrike
}

skill 26
{
attribute enchantment
}

skill 27
{
attribute evocation
}

skill 28
{
attribute farming
}

skill 29
{
attribute fishing
}

skill 30
{
attribute foraging
}

skill 31
{
attribute handtohand
}

skill 32
{
attribute haste
}

skill 33
{
attribute headshot
}

skill 34
{
attribute healing
}

skill 35
{
attribute hide
}

skill 36
{
attribute inscription
}

skill 37
{
attribute lumberjacking
}

skill 38
{
attribute mining
}

skill 39
{
attribute mend
}

skill 40
{
attribute music
}

skill 41
{
attribute naturalism
}

skill 42
{
attribute necromancy
}

skill 43
{
Attribute parry
}

skill 44
{
attribute picklock
}

skill 45
{
attribute piercing
}

skill 46
{
attribute poisoning
}

skill 47
{
attribute purification
}

skill 48
{
attribute riposte
}

skill 49
{
attribute slash
}

skill 50
{
attribute smithing
}

skill 51
{
attribute snooping
}

skill 52
{
attribute spellresearch
}

skill 53
{
attribute stealing
}

skill 54
{
attribute stealth
}

skill 55
{
attribute stun
}

skill 56
{
attribute tailoring
}

skill 57
{
attribute tinkering
}

skill 58
{
attribute tracking
}

skill 59
{
attribute transformation
}

skill 60
{
attribute trickshot
}

skill 61
{
attribute triplebackstab
}

skill 62
{
attribute veterinary
}

skill 63
{
attribute warcry
}
pol97\pkg\attributes\config\attributes.cfg

Code: Select all

Attribute Strength
{
	Alias		str
}

Attribute Intelligence
{
	Alias		int
}

Attribute Dexterity
{
	Alias		dex
}

attribute abjuration
{
}

attribute accuracy
{
}

attribute alchemy
{
}

attribute anatomy
{
  desc Anatomy
  script :anatomy:anatomy
  delay 1
  stat Intelligence
  statadv 5
  statmod 5
  GetIntrinsicModFunction :anatomy:anatomy_mod:anatomy_mod
}

attribute animallore
{
  desc Animal Lore
  script :animallore:animallore
  delay 1
  stat Intelligence
  statadv 2
  statmod 2
  GetIntrinsicModFunction :animallore:animallore_mod:animallore_mod
}

attribute animaltaming
{
}

attribute archery
{
}

attribute armslore
{
}

attribute backstab
{
}

attribute bardskill
{
}

attribute block
{
}

attribute blunt
{
}

attribute bowcraft
{
}

attribute carpentry
{
}

attribute catography
{
}

attribute conjuration
{
}

attribute concentration
{
}

attribute cooking
{
}

attribute detectinghidden
{
}

attribute divination
{
}

attribute disarmtraps
{
}

attribute dodge
{
}

attribute doublestrike
{
}

attribute doublebackstab
{
}

attribute dragonpunch
{
}

attribute eaglestrike
{
}

attribute enchantment
{
}

attribute evocation
{
}

attribute farming
{
}

attribute fishing
{
}

attribute foraging
{
}

attribute handtohand
{
}

attribute haste
{
}

attribute headshot
{
}

attribute healing
{
}

attribute hide
{
}

attribute inscription
{
}

attribute lumberjacking
{
}

attribute mining
{
}

attribute mend
{
}

attribute music
{
}

attribute naturalism
{
}

attribute necromancy
{
}

Attribute parry
{
}

attribute picklock
{
}

attribute piercing
{
}

attribute poisoning
{
}

attribute purification
{
}

attribute riposte
{
}

attribute slash
{
}

attribute smithing
{
}

attribute snooping
{
}

attribute spellresearch
{
}

attribute stealing
{
}

attribute stealth
{
}

attribute stun
{
}

attribute tailoring
{
}

attribute tinkering
{
}

attribute tracking
{
}

attribute transformation
{
}

attribute trickshot
{
}

attribute triplebackstab
{
}

attribute veterinary
{
}

attribute warcry
{
}

Attribute Tactics
{
}
skills.xml

Code: Select all

<skills>
  <skill name="Abjuration" useable="0" />
  <skill name="Accuracy" useable="0" />
  <skill name="Alchemy" useable="0" />
  <skill name="Anatomy" useable="1" />
  <skill name="Animal Lore" useable="1" />
  <skill name="Animal Taming" useable="1" />
  <skill name="Archery" useable="0" />
  <skill name="Arms Lore" useable="1" />
  <skill name="Backstab" useable="1" />
  <skill name="Bard Skill" useable="0" />
  <skill name="Block" useable="0" />
  <skill name="Blunt" useable="0" />
  <skill name="Bowcraft" useable="0" />
  <skill name="Carpentry" useable="0" />
  <skill name="Cartography" useable="0" />
  <skill name="Conjuration" useable="0" />
  <skill name="Concentration" useable="1" />
  <skill name="Cooking" useable="0" />
  <skill name="Detecting Hidden" useable="1" />
  <skill name="Divination" useable="0" />
  <skill name="Disarm Traps" useable="1" />
  <skill name="Dodge" useable="0" />
  <skill name="Double Strike" useable="1" />
  <skill name="Double Backstab" useable="0" />
  <skill name="Dragon Punch" useable="1" />
  <skill name="Eagle Strike" useable="1" />
  <skill name="Enchantment" useable="0" />
  <skill name="Evocation" useable="0" />
  <skill name="Farming" useable="0" />
  <skill name="Fishing" useable="0" />
  <skill name="Foraging" useable="1" />
  <skill name="Hand-to-Hand" useable="0" />
  <skill name="Haste" useable="0" />
  <skill name="Headshot" useable="0" />
  <skill name="Healing" useable="0" />
  <skill name="Hide" useable="1" />
  <skill name="Inscription" useable="0" />
  <skill name="Lumberjacking" useable="0" />
  <skill name="Mining" useable="0" />
  <skill name="Mend" useable="1" />
  <skill name="Music" useable="0" />
  <skill name="Naturalism" useable="0" />
  <skill name="Necromancy" useable="0" />
  <skill name="Parrying" useable="0" />
  <skill name="Pick Lock" useable="0" />
  <skill name="Piercing" useable="0" />
  <skill name="Poisoning" useable="1" />
  <skill name="Purification" useable="1" />
  <skill name="Riposte" useable="0" />
  <skill name="Slash" useable="0" />
  <skill name="Smithing" useable="0" />
  <skill name="Snooping" useable="0" />
  <skill name="Spell Research" useable="1" />
  <skill name="Stealing" useable="1" />
  <skill name="Stealth" useable="1" />
  <skill name="Stun" useable="1" />
  <skill name="Tailoring" useable="0" />
  <skill name="Tinkering" useable="0" />
  <skill name="Tracking" useable="1" />
  <skill name="Tranformation" useable="0" />
  <skill name="Trick Shot" useable="1" />
  <skill name="Triple Backstab" useable="0" />
  <skill name="Veterinary" useable="0" />
  <skill name="Warcry" useable="1" />
</skills>
pol97\pkg\attributes\config\uoclient.cfg

Code: Select all

General General
{
	Strength	      Strength
	Intelligence	  Intelligence
	Dexterity	      Dexterity

	Hits		        Life
	Mana		        Mana
	Stamina		      Stamina

	MaxSkillID	    63
}
ps.: if i need to post other files, just ask please.

the problem is:

first: anatomy isnt with the blue gem to use it. (and it's marked as usable in the xml file)

seccond (manily): my client is showning JUST 48 skills, the first (abjuration) then go down to repost and jumps to stealth (abjuration to riposte + stealth).

how can i solve them?
dkpat
Apprentice Poster
Posts: 55
Joined: Tue Jul 24, 2007 10:21 am

Post by dkpat »

can someone come up with a editor for the skillgrp.mul? or maybe an add on to this to edit that? please.
User avatar
Damien White
Journeyman Poster
Posts: 68
Joined: Tue Aug 18, 2009 6:34 pm

Re: Creating New Skills In Client And POL 095+096

Post by Damien White »

Seems it's been a long time since this thread was bumped. Does anyone know of a group editor for skills? I notice the skillgrp.mul is just a file holding the groups. So how or where can I edit what skills are placed in these groups?

Thanks in advance.
Turley
POL Developer
Posts: 670
Joined: Sun Feb 05, 2006 4:45 am

Re: Creating New Skills In Client And POL 095+096

Post by Turley »

Give me a few days/weeks :)
A "proof of concept"-thing is already build for fiddler what has to be done is the gui stuff :(
Or you simply alter the groups and stuff inside your client and grab it from your client/desktop dir.
User avatar
Damien White
Journeyman Poster
Posts: 68
Joined: Tue Aug 18, 2009 6:34 pm

Re: Creating New Skills In Client And POL 095+096

Post by Damien White »

I can wait dude, thanks for the quick reply.

I was adding a new skill to my shard, that i've been working on for a while, it's kinda...um...not pro to be running a skill as a text command if you know what I mean.

Thanks in advance for all your work dude!
Turley
POL Developer
Posts: 670
Joined: Sun Feb 05, 2006 4:45 am

Re: Creating New Skills In Client And POL 095+096

Post by Turley »

Mmmh then the skilgrp.mul is not the thing you are searching. It only definies how the groups are called and which skills they have. The client has a fixed number of skills, so if you still want to use the clientside skillgump you need to alter the client.exe.
User avatar
Damien White
Journeyman Poster
Posts: 68
Joined: Tue Aug 18, 2009 6:34 pm

Re: Creating New Skills In Client And POL 095+096

Post by Damien White »

Ouch!

I don't suppose anyone can point me in the dirrection I need to go to figure out how I might change the client?

However, I am guessing that creating my own skill gump system might have a shorter learning curve.

Does anyone know if a gump system has been posted to the public? Something I might adjust rather then working from scratch?

Thanks in advance
xeon
Forum Regular
Posts: 338
Joined: Fri Oct 31, 2008 3:18 am

Re: Creating New Skills In Client And POL 095+096

Post by xeon »

Upping this old thread, this is really interesting stuff, I think the client mul editor tool should be posted on the appropriate subsection of the forum :)
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Re: Creating New Skills In Client And POL 095+096

Post by Yukiko »

I believe UO Fiddler allows you to edit the skills does it not? I know there's the tab for it but I haven't actually tried it.
Post Reply