PenUltima Online Forum Index Official Core: 096.7
Official Core: 097 2008-02-26
Donate towards the POL web hosting bill!
 POL Home   FAQ   Search    Memberlist   Usergroups    Register    Profile   Log in to check your private messages   Log in
Creating New Skills In Client And POL 095+096
Goto page 1, 2  Next
 
Post new topic   Reply to topic    PenUltima Online Forum Index -> POL Guides
Display posts from previous:   

Author Message
MuadDib
POL Developer


Joined: 13 Feb 2006
Posts: 830
Location: Indiana, USA

PostPosted: Fri Jun 30, 2006 5:17 pm    Post subject: Creating New Skills In Client And POL 095+096 Reply with quote

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:

   <!-- 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.

Author Message
MuadDib
POL Developer


Joined: 13 Feb 2006
Posts: 830
Location: Indiana, USA

PostPosted: Fri Jun 30, 2006 5:22 pm    Post subject: Reply with quote

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:
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:
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:
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:
    [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.

Author Message
Yukiko



Joined: 02 Feb 2006
Posts: 1094
Location: Southern Central USA

PostPosted: Wed Oct 25, 2006 4:23 am    Post subject: Reply with quote

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.

Author Message
MuadDib
POL Developer


Joined: 13 Feb 2006
Posts: 830
Location: Indiana, USA

PostPosted: Wed Oct 25, 2006 6:34 am    Post subject: Reply with quote

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 Sad

Author Message
AsYlum



Joined: 05 Feb 2006
Posts: 30

PostPosted: Wed Oct 25, 2006 1:54 pm    Post subject: Reply with quote

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. Smile

Author Message
Yukiko



Joined: 02 Feb 2006
Posts: 1094
Location: Southern Central USA

PostPosted: Wed Oct 25, 2006 4:41 pm    Post subject: Reply with quote

Yay! Find the patch!

Author Message
MuadDib
POL Developer


Joined: 13 Feb 2006
Posts: 830
Location: Indiana, USA

PostPosted: Fri Nov 03, 2006 5:06 pm    Post subject: Reply with quote

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.

Author Message
Yukiko



Joined: 02 Feb 2006
Posts: 1094
Location: Southern Central USA

PostPosted: Tue Nov 07, 2006 12:51 am    Post subject: Reply with quote

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?

Author Message
OldnGrey



Joined: 04 Feb 2006
Posts: 523

PostPosted: Tue Nov 07, 2006 1:10 am    Post subject: Reply with quote

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.

Author Message
RazorTongue



Joined: 23 Apr 2007
Posts: 26

PostPosted: Sat Jul 14, 2007 4:16 pm    Post subject: Reply with quote

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:
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:
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:
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:
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 ?

Author Message
CWO



Joined: 04 Feb 2006
Posts: 699
Location: Chicago, IL USA

PostPosted: Sat Jul 14, 2007 8:28 pm    Post subject: Reply with quote

somehow the dummyskill.src isn't being found... that would be my only guess...

Author Message
RazorTongue



Joined: 23 Apr 2007
Posts: 26

PostPosted: Sun Jul 15, 2007 10:08 am    Post subject: Reply with quote

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:
Attribute Skill0
{
   AttributeType   Skill
   Script      :attributes:dummyskill
}

and so on...


Please update documentation or tell me is wrong Cool

Author Message
OldnGrey



Joined: 04 Feb 2006
Posts: 523

PostPosted: Sun Jul 15, 2007 9:08 pm    Post subject: Reply with quote

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:

Quote:
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:

Skill 1
{
   Attribute   Anatomy
}


My attributes.cfg contains the following:
Code:

Attribute Anatomy
{
   desc      Anatomy
   IntAdv      100 1d2+10
   script      :anatomy:anatomy
   Unhides      0
}


I define skills up to 64.

Author Message
Yukiko



Joined: 02 Feb 2006
Posts: 1094
Location: Southern Central USA

PostPosted: Mon Jul 16, 2007 2:38 am    Post subject: Reply with quote

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.

Author Message
OldnGrey



Joined: 04 Feb 2006
Posts: 523

PostPosted: Mon Jul 16, 2007 4:01 am    Post subject: Reply with quote

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 Smile

Post new topic   Reply to topic    PenUltima Online Forum Index -> POL Guides All times are GMT - 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 




Powered by phpBB © 2001, 2005 phpBB Group :: Theme & Graphics by GHS & Scott E. Royalty