PDA

View Full Version : Class Changing NPC


BooPlumb
10-07-2011, 12:24 AM
So I've been working on this NPC that will allow players to change their classes on a character and reset them to lvl 1 etc... What I want to do though is somehow right in the quest that remembers what lvl the player left off at on w/e class and regrant them it when they go back to that class, but I have no idea where to even start on that remembering part. If anyone has ever played FFXI, that is what I'm kinda trying to recreate, but in EQ. This is all I have and right now heh

sub EVENT_SAY {

my $interested = quest::saylink ("interested", 1);
my $WARNING = quest::saylink ("WARNING", 1);

my $Bard = quest::saylink ("Bard", 1);
my $Beastlord = quest::saylink ("Beastlord", 1);
my $Berserker = quest::saylink ("Berserker", 1);
my $Cleric = quest::saylink ("Cleric", 1);
my $Druid = quest::saylink ("Druid", 1);
my $Enchanter = quest::saylink ("Enchanter", 1);
my $Necromancer = quest::saylink ("Necromancer", 1);
my $Magician = quest::saylink ("Magician", 1);
my $Monk = quest::saylink ("Monk", 1);
my $Paladin = quest::saylink ("Paladin", 1);
my $Ranger = quest::saylink ("Ranger", 1);
my $Rogue = quest::saylink ("Rogue", 1);
my $Shadowknight = quest::saylink ("Shadowknight", 1);
my $Shaman = quest::saylink ("Shaman", 1);
my $Warrior = quest::saylink ("Warrior", 1);
my $Wizard = quest::saylink ("Wizard", 1);

if ($text =~/Hail/i){
quest::say ("I was sent to this planet with the power to allow you creatures to change your class. Are you [$interested]? Before moving along though, you should head my [$WARNING]!");
}

if ($text =~/WARNING/i){
quest::say ("You will keep all your skill ups and spells, BUT, I will bring you back to level 1 till I'm given permission to keep your classes at their current level. Are you still [$interested]?");
}

if ($text =~/interested/i){
quest::say ("What would you like to become?");
quest::say ("[$Bard]");
quest::say ("[$Beastlord]");
quest::say ("[$Berserker]");
quest::say ("[$Cleric]");
quest::say ("[$Druid]");
quest::say ("[$Enchanter]");
quest::say ("[$Necromancer]");
quest::say ("[$Magician]");
quest::say ("[$Monk]");
quest::say ("[$Paladin]");
quest::say ("[$Ranger]");
quest::say ("[$Rogue]");
quest::say ("[$Shadowknight]");
quest::say ("[$Shaman]");
quest::say ("[$Warrior]");
quest::say ("[$Wizard]");
}

if ($text =~/Bard/i){
quest::level(1);
quest::permaclass(8);
}

if ($text =~/Beastlord/i){
quest::level(1);
quest::permaclass(15);
}

if ($text =~/Berserker/i){
quest::level(1);
quest::permaclass(16);
}

if ($text =~/Cleric/i){
quest::level(1);
quest::permaclass(2);
}

if ($text =~/Druid/i){
quest::level(1);
quest::permaclass(6);
}

if ($text =~/Enchanter/i){
quest::level(1);
quest::permaclass(14);
}

if ($text =~/Necromancer/i){
quest::level(1);
quest::permaclass(11);
}

if ($text =~/Magician/i){
quest::level(1);
quest::permaclass(13);
}

if ($text =~/Monk/i){
quest::level(1);
quest::permaclass(7);
}

if ($text =~/Paladin/i){
quest::level(1);
quest::permaclass(3);
}

if ($text =~/Ranger/i){
quest::level(1);
quest::permaclass(4);
}

if ($text =~/Rogue/i){
quest::level(1);
quest::permaclass(9);
}

if ($text =~/Shadowknight/i){
quest::level(1);
quest::permaclass(5);
}

if ($text =~/Shaman/i){
quest::level(1);
quest::permaclass(10);
}

if ($text =~/Warrior/i){
quest::level(1);
quest::permaclass(1);
}

if ($text =~/Wizard/i){
quest::level(1);
quest::permaclass(12);
}


}

ChaosSlayerZ
10-07-2011, 01:12 AM
use a global variable to store their current level

BooPlumb
10-07-2011, 02:41 AM
Ok Ty. Thought it might have something to do with global but not fully understanding global yet. Will toy with it though now that I know global is the way to go. Tyvm

pepsiphreak79
11-27-2011, 10:44 AM
OHH wow this is a script im looking for is it working as it is withought any remembering lvl andsuch?
I want to use it to override race class limist

pepsiphreak79
11-27-2011, 04:19 PM
Hey the code you had there was working for me just fine till i modified it

It is specifically the quest::rebind(2,603.198,-132.003,-14); Part that is keeping it from woking when i take that out it works fine...
but when i change race and class i want to change bind point and also port him but the commands are failing



sub EVENT_SAY {

my $interested = quest::saylink ("interested", 1);
my $WARNING = quest::saylink ("WARNING", 1);

my $Bard = quest::saylink ("Bard", 1);
my $Beastlord = quest::saylink ("Beastlord", 1);
my $Berserker = quest::saylink ("Berserker", 1);
my $Cleric = quest::saylink ("Cleric", 1);
my $Druid = quest::saylink ("Druid", 1);
my $Enchanter = quest::saylink ("Enchanter", 1);
my $Necromancer = quest::saylink ("Necromancer", 1);
my $Magician = quest::saylink ("Magician", 1);
my $Monk = quest::saylink ("Monk", 1);
my $Paladin = quest::saylink ("Paladin", 1);
my $Ranger = quest::saylink ("Ranger", 1);
my $Rogue = quest::saylink ("Rogue", 1);
my $Shadowknight = quest::saylink ("Shadowknight", 1);
my $Shaman = quest::saylink ("Shaman", 1);
my $Warrior = quest::saylink ("Warrior", 1);
my $Wizard = quest::saylink ("Wizard", 1);

if ($text =~/Hail/i){
quest::say ("I was sent to this planet with the power to allow you creatures to change your class. Are you [$interested]? Before moving along though, you should head my [$WARNING]!");
}

if ($text =~/WARNING/i){
quest::say ("You will keep all your skill ups and spells, BUT, I will bring you back to level 1 till I'm given permission to keep your classes at their current level. Are you still [$interested]?");
}

if ($text =~/interested/i){
quest::say ("What would you like to become?");
quest::say ("[$Bard]");
quest::say ("[$Beastlord]");
quest::say ("[$Berserker]");
quest::say ("[$Cleric]");
quest::say ("[$Druid]");
quest::say ("[$Enchanter]");
quest::say ("[$Necromancer]");
quest::say ("[$Magician]");
quest::say ("[$Monk]");
quest::say ("[$Paladin]");
quest::say ("[$Ranger]");
quest::say ("[$Rogue]");
quest::say ("[$Shadowknight]");
quest::say ("[$Shaman]");
quest::say ("[$Warrior]");
quest::say ("[$Wizard]");
}

if ($text =~/Bard/i){
quest::level(1);
quest::permaclass(8);
}

if ($text =~/Beastlord/i){
quest::level(1);
quest::permaclass(15);
}

if ($text =~/Berserker/i){
quest::level(1);
quest::permaclass(16);
}

if ($text =~/Cleric/i){
quest::level(1);
quest::setstat(0,80);
quest::setstat(1,85);
quest::setstat(2,75);
quest::setstat(3,75);
quest::setstat(4,75);
quest::setstat(5,110);
quest::setstat(6,75);
quest::rebind(2,603.198,-132.003,-14);
quest::permaclass(2);
}

if ($text =~/Druid/i){
quest::level(1);
quest::permaclass(6);
}

if ($text =~/Enchanter/i){
quest::level(1);
quest::setstat(0,75);
quest::setstat(1,75);
quest::setstat(2,75);
quest::setstat(3,75);
quest::setstat(4,90);
quest::setstat(5,75);
quest::setstat(6,110);
quest::rebind(1,-664.904,300.932,1);
quest::permaclass(14);
}

if ($text =~/Necromancer/i){
quest::level(1);
quest::setstat(0,75);
quest::setstat(1,80);
quest::setstat(2,75);
quest::setstat(3,85);
quest::setstat(4,110);
quest::setstat(5,75);
quest::setstat(6,75);
quest::rebind(45,-303.112,299.525,-41.969);
quest::permaclass(11);
}

if ($text =~/Magician/i){
quest::level(1);
quest::setstat(0,75);
quest::setstat(1,90);
quest::setstat(2,75);
quest::setstat(3,75);
quest::setstat(4,110);
quest::setstat(5,75);
quest::setstat(6,75);
quest::rebind(1,-665.487,326.763,1);
quest::permaclass(13);
}

if ($text =~/Monk/i){
quest::level(1);
quest::setstat(0,80);
quest::setstat(1,80);
quest::setstat(2,105);
quest::setstat(3,85);
quest::setstat(4,75);
quest::setstat(5,75);
quest::setstat(6,75);
quest::rebind(2,301.081,341.925,0);
quest::permaclass(7);
}

if ($text =~/Paladin/i){
quest::level(1);
quest::setstat(0,85);
quest::setstat(1,100);
quest::setstat(2,75);
quest::setstat(3,75);
quest::setstat(4,75);
quest::setstat(5,80);
quest::setstat(6,85);
quest::rebind(2,-678.183,-202.713,-14);
quest::permaclass(3);
}

if ($text =~/Ranger/i){
quest::level(1);
quest::permaclass(4);
}

if ($text =~/Rogue/i){
quest::level(1);
quest::setstat(0,100);
quest::setstat(1,75);
quest::setstat(2,85);
quest::setstat(3,90);
quest::setstat(4,75);
quest::setstat(5,75);
quest::setstat(6,75);
quest::rebind(2,148.978 30.997 -31);
quest::permaclass(9);
}

if ($text =~/Shadowknight/i){
quest::level(1);
quest::setstat(0,85);
quest::setstat(1,100);
quest::setstat(2,75);
quest::setstat(3,75);
quest::setstat(4,85);
quest::setstat(5,75);
quest::setstat(6,80);
quest::rebind(45,-370.828,429.554,-41.969);
quest::permaclass(5);
}

if ($text =~/Shaman/i){
quest::level(1);
quest::permaclass(10);
}

if ($text =~/Warrior/i){
quest::level(1);
quest::setstat(0,85);
quest::setstat(1,110);
quest::setstat(2,80);
quest::setstat(3,75);
quest::setstat(4,75);
quest::setstat(5,75);
quest::setstat(6,75);
quest::rebind(1,-551.646,56.166,0);
quest::permaclass(1);
}

if ($text =~/Wizard/i){
quest::level(1);
quest::setstat(0,75);
quest::setstat(1,90);
quest::setstat(2,75);
quest::setstat(3,75);
quest::setstat(4,110);
quest::setstat(5,75);
quest::setstat(6,75);
quest::rebind(1,-674.143,314.821,0);
quest::permaclass(12);
}


}