given level for all clickable skills. Need to add Bst, Pally and
SK skill maxes.
hrmmm, all my inequalities are screwed. If I was awake, I'd figure it out.
Code: Select all
| Determine Current Skill Cap
| GoatFoot - Jan 13, 2003
| zieggenfus[at]yahoo[dotcom]
| Usage: /call SkillMax "Skill"
| Returns current skill cap on success
| Returns -1 if skill is not known
| Returns 0 if skill isn't found - Prob indicates an error.
|
| Missing Beastlord, Paladin, Shadow Knight
#define SKM_Class l0
#define SKM_Level l1
#define SKM_CurrentCap l2
#define SKM_LevelCap l3
#define Unknown -1
sub skillmax
/if n $char(ability,"$p0")==Unknown /return Unknown
/varset SKM_Class $char(class)
/varset SKM_Level $char(level)
/varset SKM_LevelCap 0
| As far as I've been able to determine,
| all "clickable" skills use this formula
/varcalc SKM_CurrentCap $SKM_Level*5+5
| Combat Skills
/if "$p0"=="Archery" {
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,240,240)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,200,240)
/if $SKM_Class==Warrior /varset SKM_LevelCap $if(n,$SKM_Level<51,200,240)
}
/if "$p0"=="Bash" {
/if $SKM_Class==Cleric /varset SKM_LevelCap $if(n,$SKM_Level<51,180,200)
/if $SKM_Class==Warrior /varset SKM_LevelCap $if(n,$SKM_Level<51,220,240)
}
/if "$p0"=="Bind Wound" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,150,200)
/if $SKM_Class==Cleric /varset SKM_LevelCap $if(n,$SKM_Level<51,200,201)
/if $SKM_Class==Druid /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if $SKM_Class==Enchanter /varset SKM_LevelCap $if(n,$SKM_Level<51,100,100)
/if $SKM_Class==Magician /varset SKM_LevelCap $if(n,$SKM_Level<51,100,100)
/if $SKM_Class==Necromancer /varset SKM_LevelCap $if(n,$SKM_Level<51,100,100)
/if $SKM_Class==Monk /varset SKM_LevelCap $if(n,$SKM_Level<51,200,210)
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,150,200)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,176,210)
/if $SKM_Class==Shaman /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if $SKM_Class==Wizard /varset SKM_LevelCap $if(n,$SKM_Level<51,100,100)
/if $SKM_Class==Warrior /varset SKM_LevelCap $if(n,$SKM_Level<51,175,210)
}
/if "$p0"=="Disarm" {
/if $SKM_Class==Monk /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,55,55)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if $SKM_Class==Warrior /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
}
/if "$p0"=="Dragon Punch" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,225)
/if "$p0"=="Eagle Strike" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,225)
/if "$p0"=="Feign Death" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Flying Kick" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,225)
/if "$p0"=="Kick" {
/if $SKM_Class==Monk /varset SKM_LevelCap $if(n,$SKM_Level<51,200,250)
/if $SKM_Class==Warrior /varset SKM_LevelCap $if(n,$SKM_Level<51,149,210)
}
/if "$p0"=="Instill Doubt" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,100,100)
/if $SKM_Class==Monk /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
}
/if "$p0"=="Mend" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Round Kick" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,225)
/if "$p0"=="Slam" {
/if $SKM_Class==Warrior /varset SKM_LevelCap $if(n,$SKM_Level<51,220,240)
}
/if "$p0"=="Taunt" {
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,150,150)
/if $SKM_Class==Warrior /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
}
/if "$p0"=="Throwing" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,113,113)
/if $SKM_Class==Enchanter /varset SKM_LevelCap $if(n,$SKM_Level<51,75,75)
/if $SKM_Class==Magician /varset SKM_LevelCap $if(n,$SKM_Level<51,75,75)
/if $SKM_Class==Monk /varset SKM_LevelCap $if(n,$SKM_Level<51,113,200)
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,113,113)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,220,250)
/if $SKM_Class==Wizard /varset SKM_LevelCap $if(n,$SKM_Level<51,75,75)
}
/if "$p0"=="Tiger Claw" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,225)
| Arcane Skills
/if "$p0"=="Abjuration" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
/if "$p0"=="Alteration" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
/if "$p0"=="Conjuration" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
/if "$p0"=="Divination" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
/if "$p0"=="Evocation" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
/if "$p0"=="Channeling" {
/varset SKM_LevelCap $if(n,$SKM_Level<51,200,220)
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,200,215)
}
/if "$p0"=="Meditate" {
/varset SKM_LevelCap $if(n,$SKM_Level<51,235,252)
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,1,1)
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,185,226)
}
/if "$p0"=="Research" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Specialisation" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
| Music Skills
/if "$p0"=="Singing" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
/if "$p0"=="Percussion" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
/if "$p0"=="String" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
/if "$p0"=="Brass" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
/if "$p0"=="Wind" /varset SKM_LevelCap $if(n,$SKM_Level<51,235,235)
| Misc Skills
/if "$p0"=="Alcohol Tolerance" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Beg" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Sense Heading" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Swimming" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Apply Poison" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Disarm Traps" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,100,100)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
}
/if "$p0"=="Fishing" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Forage" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,55,55)
/if $SKM_Class==Druid /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
}
/if "$p0"=="Hide" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,40,40)
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,75,75)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
}
/if "$p0"=="Pick Lock" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,100,100)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,200,210)
}
/if "$p0"=="Pick Pocket" /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if "$p0"=="Safe Fall" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,40,40)
/if $SKM_Class==Monk /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,94,94)
}
/if "$p0"=="Sense Traps" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,75,75)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
}
/if "$p0"=="Sneak" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,75,75)
/if $SKM_Class==Monk /varset SKM_LevelCap $if(n,$SKM_Level<51,113,113)
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,75,75)
/if $SKM_Class==Rogue /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
}
/if "$p0"=="Track" {
/if $SKM_Class==Bard /varset SKM_LevelCap $if(n,$SKM_Level<51,100,100)
/if $SKM_Class==Druid /varset SKM_LevelCap $if(n,$SKM_Level<51,125,125)
/if $SKM_Class==Ranger /varset SKM_LevelCap $if(n,$SKM_Level<51,200,200)
}
/if n $SKM_LevelCap>0 {
/return $if(n,$SKM_CurrentCap<$SKM_LevelCap,$SKM_CurrentCap,$SKM_LevelCap)
}
/return 0
| /call doAbility "Ability" [#]
| Will perform the specified action as expected,
| unless a second parameter is specified. If
| a second parameter is specified, the action
| will be taken only if the PC's current skill
| level is less than possible maximum.
sub doAbility
/if n $char(ability,"$p0")<1 /return
/if $p1=="" {
/doability "$p0"
/return
}
/call skillmax "$p0"
/if n $char(skill,"$p0")<$return {
/doability "$p0"
}
/return

