Stats/Skill Cap

Here you can post threads requesting help on the official POL Ultima Online Emulator Core 095. Note: Core 095 is no longer officially supported.
Post Reply
lokaum
Novice Poster
Posts: 45
Joined: Mon Dec 25, 2006 6:33 am

Stats/Skill Cap

Post by lokaum »

Hi people

I want to change the skill/stats cap on my server

i dont know the archives that i need change

i want fix the skillcap 165 and statscap 180

anyone can help me?

thanks
User avatar
CWO
POL Expert
Posts: 1160
Joined: Sat Feb 04, 2006 5:49 pm

Post by CWO »

Is this the POL095 Distro? If so, look for pkg/foundations/hooks/attributecore.src

right on top

const CONST_STATCAP := 225;
const CONST_SKILLCAP := 7000;

CONST_SKILLCAP is skillcap*10 so the 7000 there actually means 700.
lokaum
Novice Poster
Posts: 45
Joined: Mon Dec 25, 2006 6:33 am

Post by lokaum »

pkg/foundations/hooks/attributecore.src

i dont found this directory on my server...

what i do now? ;/


PS.: Im using UL(by montuZ) server to change this things
User avatar
CWO
POL Expert
Posts: 1160
Joined: Sat Feb 04, 2006 5:49 pm

Post by CWO »

that instruction was based on the POL095 distro. Other than that I dont know exactly. I can suggest looking for syshook.cfg and looking into it for the CheckSkill hook. Find that script and look inside it to see if or where it enforces a skillcap.
lokaum
Novice Poster
Posts: 45
Joined: Mon Dec 25, 2006 6:33 am

Post by lokaum »

CheckSkill.cfg:

Setting 1
{
AlwaysGainUntil 0.0 // Always award a part of the points when the base skill is lower than this
MinChance 1 // Min % of success.
MaxChance 165 // Max % of success.
}

SysHook.cfg

SystemHookScript shilhook.ecl
{
CheckSkill ShilCheckSkill
}

SystemHookScript shilcombat.ecl
{
CombatAdvancement ShilCombatAdvancement
}

SystemHookScript parry.ecl
{
ParryAdvancement NewParryAdvancement
}


What the problem with these scripts? o.O

i did change the MaxChange to 165 bug the skillcap continue 150 :(
User avatar
CWO
POL Expert
Posts: 1160
Joined: Sat Feb 04, 2006 5:49 pm

Post by CWO »

Look at the comment, thats max chance of success, not skillcap.

look for the script shilhook.src thats your skillgain script. The constant for skillcap might be in there or in one of the includes for it.
lokaum
Novice Poster
Posts: 45
Joined: Mon Dec 25, 2006 6:33 am

Post by lokaum »

shilhook.src

Code: Select all

use uo;
use os;
use cfgfile;

include "include/random";
include "include/attributes";
include "include/classes";


program shilhook()

	print( "Using ShilCheckSkill..." );
	return 1;

endprogram


exported Function ShilCheckSkill( who, skillid, difficulty, points )

    If( who.IsA(POLCLASS_NPC) && skillid != SKILLID_DETECTINGHIDDEN )
    return 1;
    Elseif( who.cmdlevel )
    return 1;
    Elseif( difficulty == 0 )
    return 1;
    Elseif( difficulty < 0 )
    return SkillAsPercentSkillCheck( who, skillid, difficulty, points );
    Else
    return DifficultySkillCheck( who, skillid, difficulty, points );
    Endif

Endfunction

function DifficultySkillCheck( who, skillid, difficulty, points )

	var skill	:= GetEffectiveSkill( who, skillid );
	if( skill == 0 )
		if( who.IsA(POLCLASS_NPC) )
			return 0;
		endif
	endif

	var chance	:= CInt( skill - difficulty + 20 );

	if( chance < 0 )
		return 0;
	elseif( chance == 0 )
		chance := 2;
	else
		chance := CInt( chance * 2.5 );
		if( chance > 120 )
			chance := 120;
		endif
	endif

	var check := RandomInt(100);
	if( check >= chance )
		if( IsSpecialisedIn( who, skillid ) )
			check := RandomInt(100);
			if( check >= chance )
				return 0;
			else
				points := 0;
			endif
		else
			return 0;
		endif
	endif

	if( !who.isA(POLCLASS_NPC) )
		points := CInt( points * CDbl(1.0 - (CDbl(chance) / 100.0)) );
		if( points > 0 )
			AwardPoints( who, skillid, points );
		endif
	endif

	return 1;

endfunction


function SkillAsPercentSkillCheck( who, skillid, difficulty, points )

	var skill	:= GetEffectiveSkill( who, skillid );
	if( skill == 0 )
		if( who.IsA(POLCLASS_NPC) )
			return 0;
		endif
	endif

	var chance	:= skill + CInt((difficulty+1) * 15);
	if( chance < 2 )
		chance := 2;
	elseif( chance > 98 )
		chance := 98;
	endif

	var check := RandomInt(100);
	if( check >= chance )
		if( IsSpecialisedIn( who, skillid ) )
			check := RandomInt(100);
			if( check >= chance )
				if( chance < 10 )
					AwardPoints( who, skillid, CInt(points/2) );
				endif
				return 0;
			else
				points := 0;
			endif
		else
			if( chance < 10 )
				AwardPoints( who, skillid, CInt(points/2) );
			endif
			return 0;
		endif
	endif

	if( !who.isA(POLCLASS_NPC) )
		if( points > 0 )
			AwardPoints( who, skillid, points );
		endif
	endif

	return 1;

endfunction


function GetSuccessLevel( who, skillid, success_level )

	success_level := CInt( success_level + IsSpecialisedIn( who, skillid ) );

	if( success_level <= 0 )
		success_level := 1; // it must be a success (just in case)
	endif

	return success_level;

endfunction
sorry but i dont know what i need change to keep 165skillcap and 180statscap...

i look for scripts\include\attributes.inc

and i dont found the location that i need change ;/

if you want that i post the attributes.inc here.. talk me..
lokaum
Novice Poster
Posts: 45
Joined: Mon Dec 25, 2006 6:33 am

Post by lokaum »

ill test change uo.em
lokaum
Novice Poster
Posts: 45
Joined: Mon Dec 25, 2006 6:33 am

Post by lokaum »

FIXED

THANKS ALOT!!
User avatar
CWO
POL Expert
Posts: 1160
Joined: Sat Feb 04, 2006 5:49 pm

Post by CWO »

This looks like a modified 095 distro...


Just wondering... do you mean 165/180 in 1 skill/stat? Or the overall total of skills and stats?
lokaum
Novice Poster
Posts: 45
Joined: Mon Dec 25, 2006 6:33 am

Post by lokaum »

only set all stats/skill caps 180..

but now it are fixed..
Post Reply