View Single Post
Old 07-10-2003, 10:28 AM   #2
Legolas
Jack Burton
 

Join Date: March 31, 2001
Location: The zephyr lands beneath the brine.
Age: 39
Posts: 5,459
It's a bit of a long script, but I wanted to include all the options and have you be able to give each and every one of them a different item. Just insert it somewhere in both the OnOpen script and the OnDeath scrip where it deals with handing out items.

Quote:
{
if(GetLevelByClass(CLASS_TYPE_ABERRATION, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_ANIMAL, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_ARCANE_ARCHER, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_ASSASSIN, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_BARBARIAN, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_BARD, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_BEAST, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_BLACKGUARD, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_CLERIC, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_COMMONER, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_CONSTRUCT, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_DRAGON, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_DRUID, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_ELEMENTAL, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_FEY, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_FIGHTER, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_GIANT, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_HARPER, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_HUMANOID, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_INVALID, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_MAGICAL_BEAST, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_MONK, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_MONSTROUS, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_OUTSIDER, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_PALADIN, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_RANGER, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_ROGUE, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_SHADOWDANCER, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_SHAPECHANGER, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_SORCERER, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_UNDEAD, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_VERMIN, GetLastOpenedBy()) > 0)
{
}
else if(GetLevelByClass(CLASS_TYPE_WIZARD, GetLastOpenedBy()) > 0)
{
}
}
You can cut some classes from this (I doubt you'll need the invalid class or the vermin class) by deleting the line dealing with the class and the two brackets that go with it.
You can add classes together by using the || or 'or' symbol, or create multiclass combinations using && or 'and'. For example, for a fighter/wizard and fighter/rogue only item you'd say

Quote:
else if(((GetLevelByClass(CLASS_TYPE_WIZARD, GetLastOpenedBy()) > 0) && (GetLevelByClass(CLASS_TYPE_FIGHTER, GetLastOpenedBy()) > 0)) || ((GetLevelByClass(CLASS_TYPE_ROGUE, GetLastOpenedBy()) > 0) && (GetLevelByClass(CLASS_TYPE_FIGHTER, GetLastOpenedBy()) > 0)))
{
}
The commands for the actual items etc. need to be added between the brackets { }, as I'm sure you'll know [img]smile.gif[/img]

What the "(GetLevelByClass(CLASS_TYPE_WIZARD, GetLastOpenedBy()) > 0)" line actually says is "does the character who last opened whatever calls this script have more than 0 levels in the wizard class?".
Legolas is offline   Reply With Quote