Page 1 of 1

Stats/Skill Cap

Posted: Mon Dec 25, 2006 6:39 am
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

Posted: Mon Dec 25, 2006 7:08 am
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.

Posted: Mon Dec 25, 2006 10:25 am
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

Posted: Mon Dec 25, 2006 3:43 pm
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.

Posted: Mon Dec 25, 2006 4:28 pm
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 :(

Posted: Mon Dec 25, 2006 5:23 pm
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.

Posted: Tue Dec 26, 2006 5:11 am
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..

Posted: Tue Dec 26, 2006 5:23 am
by lokaum
ill test change uo.em

Posted: Tue Dec 26, 2006 5:37 am
by lokaum
FIXED

THANKS ALOT!!

Posted: Tue Dec 26, 2006 5:39 am
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?

Posted: Tue Dec 26, 2006 7:37 am
by lokaum
only set all stats/skill caps 180..

but now it are fixed..