Try this out. I haven't had time to test it though.
function script partysoul {
set @partyname$, strcharinfo(1);
set .@i, 2000000;
while ( .@i < 2010000 ) {
if ( .@i % 500 == 0 ) sleep 20;
if ( attachrid(.@i) ) {
if( strcharinfo(1) == @partyname$ ) {
switch ( basejob ) {
case Job_Alchemist: set .@spirit, 445; break;
case Job_Monk: set .@spirit, 447; break;
case Job_Star_Gladiator: set .@spirit, 448; break;
case Job_Sage: set .@spirit, 449; break;
case Job_Crusader: set .@spirit, 450; break;
case Job_SuperNovice: set .@spirit, 451; break;
case Job_Knight: set .@spirit, 452; break;
case Job_Wizard: set .@spirit, 453; break;
case Job_Priest: set .@spirit, 454; break;
case Job_Bard: case Job_Dancer: set .@spirit, 455; break;
case Job_Rogue: set .@spirit, 456; break;
case Job_Assassin: set .@spirit, 457; break;
case Job_Blacksmith: set .@spirit, 458; break;
case Job_Hunter: set .@spirit, 460; break;
case Job_Soul_Linker: set .@spirit, 461; break;
default:
if ( upper == 1 && baselevel < 70 )
set .@spirit, 494;
}
if ( .@spirit ) {
sc_start4 sc_spirit, 300000, 5, .@spirit,0,0;
skilleffect .@spirit, 5;
delitem 21224, 1; // change this to your item
}
}
}
set .@i, .@i +1;
end;
}
}