EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Custom (https://www.eqemulator.org/forums/forumdisplay.php?f=671)
-   -   Race Changer. (https://www.eqemulator.org/forums/showthread.php?t=39606)

Kingly_Krab 04-26-2015 05:48 PM

Race Changer.
 
Here's a custom race changer I've had written for a while. It's two parts: NPC script and a plugin, you will also need my Race plugin, so I will include that.

NPC Script:
Code:

sub EVENT_SAY {
    if ($text=~/Hail/i) {
        plugin::Whisper("I am the master of illusions, would you like me to " . quest::saylink("list", 1) . " the illusions I can cast on you?");
    } elsif ($text=~/List/i) {
        plugin::RaceChanger("List");
    } else {
        plugin::RaceChanger($text);
    }
}

Plugin:
Code:

sub RaceChanger {
    my $t = shift;
    my $c = plugin::val('class');
    if ($t eq "List") {
        if ($c !~ @{["Monk", "Necromancer", "Wizard", "Magician", "Enchanter"]}) {
            plugin::Whisper(quest::saylink($_, 1, plugin::Race($_))) for (1..12, 128, 130, 330, 522);
        } elsif ($c eq "Monk") {
            plugin::Whisper(quest::saylink($_, 1, plugin::Race($_))) for (1, 128, 522);
        } elsif ($c ~~ @{["Necromancer", "Wizard", "Magician", "Enchanter"]}) {
            plugin::Whisper(quest::saylink($_, 1, plugin::Race($_))) for (1, 3, 5, 6, 12, 128, 330, 522);
        }
    } else {
        if ($c !~ @{["Monk", "Necromancer", "Wizard", "Magician", "Enchanter"]}) {
            quest::permarace($t);
        } elsif ($c eq "Monk") {
            if ($t ~~ @{[1, 128, 522]}) {
                quest::permarace($t);
            }
        } elsif ($c ~~ @{["Necromancer", "Wizard", "Magician", "Enchanter"]}) {
            if ($t ~~ @{[1, 3, 5, 6, 12, 128, 330, 522]}) {
                quest::permarace($t);
            }
        }
    }
}

return 1;

Race Plugin:
Code:

sub Race {
    my %h = (1 => "Human",
    2 => "Barbarian",
    3 => "Erudite",
    4 => "Wood Elf",
    5 => "High Elf",
    6 => "Dark Elf",
    7 => "Half Elf",
    8 => "Dwarf",
    9 => "Troll",
    10 => "Ogre",
    11 => "Halfling",
    12 => "Gnome",
    13 => "Aviak",
    14 => "Werewolf",
    15 => "Brownie",
    16 => "Centaur",
    17 => "Golem",
    18 => "Giant",
    19 => "Trakanon",
    20 => "Venril Sathir",
    21 => "Evil Eye",
    22 => "Beetle",
    23 => "Kerran",
    24 => "Fish",
    25 => "Fairy",
    26 => "Froglok",
    27 => "Froglok",
    28 => "Fungusman",
    29 => "Gargoyle",
    30 => "Gasbag",
    31 => "Gelatinous Cube",
    32 => "Ghost",
    33 => "Ghoul",
    34 => "Bat",
    35 => "Eel",
    36 => "Rat",
    37 => "Snake",
    38 => "Spider",
    39 => "Gnoll",
    40 => "Goblin",
    41 => "Gorilla",
    42 => "Wolf",
    43 => "Bear",
    44 => "Guard",
    45 => "Demi Lich",
    46 => "Imp",
    47 => "Griffin",
    48 => "Kobold",
    49 => "Dragon",
    50 => "Lion",
    51 => "Lizard Man",
    52 => "Mimic",
    53 => "Minotaur",
    54 => "Orc",
    55 => "Beggar",
    56 => "Pixie",
    57 => "Drachnid",
    58 => "Solusek Ro",
    59 => "Goblin",
    60 => "Skeleton",
    61 => "Shark",
    62 => "Tunare",
    63 => "Tiger",
    64 => "Treant",
    65 => "Vampire",
    66 => "Rallos Zek",
    67 => "Human",
    68 => "Tentacle Terror",
    69 => "Will-O-Wisp",
    70 => "Zombie",
    71 => "Human",
    72 => "Ship",
    73 => "Launch",
    74 => "Piranha",
    75 => "Elemental",
    76 => "Puma",
    77 => "Dark Elf",
    78 => "Erudite",
    79 => "Bixie",
    80 => "Reanimated Hand",
    81 => "Halfling",
    82 => "Scarecrow",
    83 => "Skunk",
    84 => "Snake Elemental",
    85 => "Spectre",
    86 => "Sphinx",
    87 => "Armadillo",
    88 => "Clockwork Gnome",
    89 => "Drake",
    90 => "Barbarian",
    91 => "Alligator",
    92 => "Troll",
    93 => "Ogre",
    94 => "Dwarf",
    95 => "Cazic Thule",
    96 => "Cockatrice",
    97 => "Daisy Man",
    98 => "Vampire",
    99 => "Amygdalan",
    100 => "Dervish",
    101 => "Efreeti",
    102 => "Tadpole",
    103 => "Kedge",
    104 => "Leech",
    105 => "Swordfish",
    106 => "Guard",
    107 => "Mammoth",
    108 => "Eye",
    109 => "Wasp",
    110 => "Mermaid",
    111 => "Harpy",
    112 => "Guard",
    113 => "Drixie",
    114 => "Ghost Ship",
    115 => "Clam",
    116 => "Seahorse",
    117 => "Ghost",
    118 => "Ghost",
    119 => "Sabertooth",
    120 => "Wolf",
    121 => "Gorgon",
    122 => "Dragon",
    123 => "Innoruuk",
    124 => "Unicorn",
    125 => "Pegasus",
    126 => "Djinn",
    127 => "Invisible Man",
    128 => "Iksar",
    129 => "Scorpion",
    130 => "Vah Shir",
    131 => "Sarnak",
    132 => "Draglock",
    133 => "Drolvarg",
    134 => "Mosquito",
    135 => "Rhinoceros",
    136 => "Xalgoz",
    137 => "Goblin",
    138 => "Yeti",
    139 => "Iksar",
    140 => "Giant",
    141 => "Boat",
    144 => "Burynai",
    145 => "Goo",
    146 => "Sarnak Spirit",
    147 => "Iksar Spirit",
    148 => "Fish",
    149 => "Scorpion",
    150 => "Erollisi",
    151 => "Tribunal",
    152 => "Bertoxxulous",
    153 => "Bristlebane",
    154 => "Fay Drake",
    155 => "Undead Sarnak",
    156 => "Ratman",
    157 => "Wyvern",
    158 => "Wurm",
    159 => "Devourer",
    160 => "Iksar Golem",
    161 => "Undead Iksar",
    162 => "Man-Eating Plant",
    163 => "Raptor",
    164 => "Sarnak Golem",
    165 => "Dragon",
    166 => "Animated Hand",
    167 => "Succulent",
    168 => "Holgresh",
    169 => "Brontotherium",
    170 => "Snow Dervish",
    171 => "Dire Wolf",
    172 => "Manticore",
    173 => "Totem",
    174 => "Ice Spectre",
    175 => "Enchanted Armor",
    176 => "Snow Rabbit",
    177 => "Walrus",
    178 => "Geonid",
    181 => "Yakkar",
    182 => "Faun",
    183 => "Coldain",
    184 => "Dragon",
    185 => "Hag",
    186 => "Hippogriff",
    187 => "Siren",
    188 => "Giant",
    189 => "Giant",
    190 => "Othmir",
    191 => "Ulthork",
    192 => "Dragon",
    193 => "Abhorrent",
    194 => "Sea Turtle",
    195 => "Dragon",
    196 => "Dragon",
    197 => "Ronnie Test",
    198 => "Dragon",
    199 => "Shik'Nar",
    200 => "Rockhopper",
    201 => "Underbulk",
    202 => "Grimling",
    203 => "Worm",
    204 => "Evan Test",
    205 => "Shadel",
    206 => "Owlbear",
    207 => "Rhino Beetle",
    208 => "Vampire",
    209 => "Earth Elemental",
    210 => "Air Elemental",
    211 => "Water Elemental",
    212 => "Fire Elemental",
    213 => "Wetfang Minnow",
    214 => "Thought Horror",
    215 => "Tegi",
    216 => "Horse",
    217 => "Shissar",
    218 => "Fungal Fiend",
    219 => "Vampire",
    220 => "Stonegrabber",
    221 => "Scarlet Cheetah",
    222 => "Zelniak",
    223 => "Lightcrawler",
    224 => "Shade",
    225 => "Sunfbelow",
    226 => "Sun Revenant",
    227 => "Shrieker",
    228 => "Galorian",
    229 => "Netherbian",
    230 => "Akheva",
    231 => "Grieg Veneficus",
    232 => "Sonic Wolf",
    233 => "Ground Shaker",
    234 => "Vah Shir Skeleton",
    235 => "Wretch",
    236 => "Seru",
    237 => "Recuso",
    238 => "Vah Shir",
    239 => "Guard",
    240 => "Teleport Man",
    241 => "Werewolf",
    242 => "Nymph",
    243 => "Dryad",
    244 => "Treant",
    245 => "Fly",
    246 => "Tarew Marr",
    247 => "Solusek Ro",
    248 => "Clockwork Golem",
    249 => "Clockwork Brain",
    250 => "Banshee",
    251 => "Guard of Justice",
    252 => "Mini POM",
    253 => "Diseased Fiend",
    254 => "Solusek Ro Guard",
    255 => "Bertoxxulous",
    256 => "The Tribunal",
    257 => "Terris Thule",
    258 => "Vegerog",
    259 => "Crocodile",
    260 => "Bat",
    261 => "Hraquis",
    262 => "Tranquilion",
    263 => "Tin Soldier",
    264 => "Nightmare Wraith",
    265 => "Malarian",
    266 => "Knight of Pestilence",
    267 => "Lepertoloth",
    268 => "Bubonian",
    269 => "Bubonian Underling",
    270 => "Pusling",
    271 => "Water Mephit",
    272 => "Stormrider",
    273 => "Junk Beast",
    274 => "Broken Clockwork",
    275 => "Giant Clockwork",
    276 => "Clockwork Beetle",
    277 => "Nightmare Goblin",
    278 => "Karana",
    279 => "Blood Raven",
    280 => "Nightmare Gargoyle",
    281 => "Mouth of Insanity",
    282 => "Skeletal Horse",
    283 => "Saryrn",
    284 => "Fennin Ro",
    285 => "Tormentor",
    286 => "Soul Devourer",
    287 => "Nightmare",
    288 => "Rallos Zek",
    289 => "Vallon Zek",
    290 => "Tallon Zek",
    291 => "Air Mephit",
    292 => "Earth Mephit",
    293 => "Fire Mephit",
    294 => "Nightmare Mephit",
    295 => "Zebuxoruk",
    296 => "Mithaniel Marr",
    297 => "Undead Knight",
    298 => "The Rathe",
    299 => "Xegony",
    300 => "Fiend",
    301 => "Test Object",
    302 => "Crab",
    303 => "Phoenix",
    304 => "Dragon",
    305 => "Bear",
    306 => "Giant",
    307 => "Giant",
    308 => "Giant",
    309 => "Giant",
    310 => "Giant",
    311 => "Giant",
    312 => "Giant",
    313 => "War Wraith",
    314 => "Wrulon",
    315 => "Kraken",
    316 => "Poison Frog",
    317 => "Nilborien",
    318 => "Valorian",
    319 => "War Boar",
    320 => "Efreeti",
    321 => "War Boar",
    322 => "Valorian",
    323 => "Animated Armor",
    324 => "Undead Footman",
    325 => "Rallos Zek Minion",
    326 => "Arachnid",
    327 => "Crystal Spider",
    328 => "Zebuxoruk's Cage",
    329 => "BoT Portal",
    330 => "Froglok",
    331 => "Troll",
    332 => "Troll",
    333 => "Troll",
    334 => "Ghost",
    335 => "Pirate",
    336 => "Pirate",
    337 => "Pirate",
    338 => "Pirate",
    339 => "Pirate",
    340 => "Pirate",
    341 => "Pirate",
    342 => "Pirate",
    343 => "Frog",
    344 => "Troll Zombie",
    345 => "Luggald",
    346 => "Luggald",
    347 => "Luggalds",
    348 => "Drogmore",
    349 => "Froglok Skeleton",
    350 => "Undead Froglok",
    351 => "Knight of Hate",
    352 => "Arcanist of Hate",
    353 => "Veksar",
    354 => "Veksar",
    355 => "Veksar",
    356 => "Chokidai",
    357 => "Undead Chokidai",
    358 => "Undead Veksar",
    359 => "Vampire",
    360 => "Vampire",
    361 => "Rujarkian Orc",
    362 => "Bone Golem",
    363 => "Synarcana",
    364 => "Sand Elf",
    365 => "Vampire",
    366 => "Rujarkian Orc",
    367 => "Skeleton",
    368 => "Mummy",
    369 => "Goblin",
    370 => "Insect",
    371 => "Froglok Ghost",
    372 => "Dervish",
    373 => "Shade",
    374 => "Golem",
    375 => "Evil Eye",
    376 => "Box",
    377 => "Barrel",
    378 => "Chest",
    379 => "Vase",
    380 => "Table",
    381 => "Weapon Rack",
    382 => "Coffin",
    383 => "Bones",
    384 => "Jokester",
    385 => "Nihil",
    386 => "Trusik",
    387 => "Stone Worker",
    388 => "Hynid",
    389 => "Turepta",
    390 => "Cragbeast",
    391 => "Stonemite",
    392 => "Ukun",
    393 => "Ixt",
    394 => "Ikaav",
    395 => "Aneuk",
    396 => "Kyv",
    397 => "Noc",
    398 => "Ra`tuk",
    399 => "Taneth",
    400 => "Huvul",
    401 => "Mutna",
    402 => "Mastruq",
    403 => "Taelosian",
    404 => "Discord Ship",
    405 => "Stone Worker",
    406 => "Mata Muram",
    407 => "Lightning Warrior",
    408 => "Succubus",
    409 => "Bazu",
    410 => "Feran",
    411 => "Pyrilen",
    412 => "Chimera",
    413 => "Dragorn",
    414 => "Murkglider",
    415 => "Rat",
    416 => "Bat",
    417 => "Gelidran",
    418 => "Discordling",
    419 => "Girplan",
    420 => "Minotaur",
    421 => "Dragorn Box",
    422 => "Runed Orb",
    423 => "Dragon Bones",
    424 => "Muramite Armor Pile",
    425 => "Crystal Shard",
    426 => "Portal",
    427 => "Coin Purse",
    428 => "Rock Pile",
    429 => "Murkglider Egg Sack",
    430 => "Drake",
    431 => "Dervish",
    432 => "Drake",
    433 => "Goblin",
    434 => "Kirin",
    435 => "Dragon",
    436 => "Basilisk",
    437 => "Dragon",
    438 => "Dragon",
    439 => "Puma",
    440 => "Spider",
    441 => "Spider Queen",
    442 => "Animated Statue",
    445 => "Dragon Egg",
    446 => "Dragon Statue",
    447 => "Lava Rock",
    448 => "Animated Statue",
    449 => "Spider Egg Sack",
    450 => "Lava Spider",
    451 => "Lava Spider Queen",
    452 => "Dragon",
    453 => "Giant",
    454 => "Werewolf",
    455 => "Kobold",
    456 => "Sporali",
    457 => "Gnomework",
    458 => "Orc",
    459 => "Corathus",
    460 => "Coral",
    461 => "Drachnid",
    462 => "Drachnid Cocoon",
    463 => "Fungus Patch",
    464 => "Gargoyle",
    465 => "Witheran",
    466 => "Dark Lord",
    467 => "Shiliskin",
    468 => "Snake",
    469 => "Evil Eye",
    470 => "Minotaur",
    471 => "Zombie",
    472 => "Clockwork Boar",
    473 => "Fairy",
    474 => "Witheran",
    475 => "Air Elemental",
    476 => "Earth Elemental",
    477 => "Fire Elemental",
    478 => "Water Elemental",
    479 => "Alligator",
    480 => "Bear",
    481 => "Scaled Wolf",
    482 => "Wolf",
    483 => "Spirit Wolf",
    484 => "Skeleton",
    485 => "Spectre",
    486 => "Bolvirk",
    487 => "Banshee",
    488 => "Banshee",
    489 => "Elddar",
    490 => "Forest Giant",
    491 => "Bone Golem",
    492 => "Horse",
    493 => "Pegasus",
    494 => "Shambling Mound",
    495 => "Scrykin",
    496 => "Treant",
    497 => "Vampire",
    498 => "Ayonae Ro",
    499 => "Sullon Zek",
    500 => "Banner",
    501 => "Flag",
    502 => "Rowboat",
    503 => "Bear Trap",
    504 => "Clockwork Bomb",
    505 => "Dynamite Keg",
    506 => "Pressure Plate",
    507 => "Puffer Spore",
    508 => "Stone Ring",
    509 => "Root Tentacle",
    510 => "Runic Symbol",
    511 => "Saltpetter Bomb",
    512 => "Floating Skull",
    513 => "Spike Trap",
    514 => "Totem",
    515 => "Web",
    516 => "Wicker Basket",
    517 => "Nightmare/Unicorn",
    518 => "Horse",
    519 => "Nightmare/Unicorn",
    520 => "Bixie",
    521 => "Centaur",
    522 => "Drakkin",
    523 => "Giant",
    524 => "Gnoll",
    525 => "Griffin",
    526 => "Giant Shade",
    527 => "Harpy",
    528 => "Mammoth",
    529 => "Satyr",
    530 => "Dragon",
    531 => "Dragon",
    532 => "Dyn'Leth",
    533 => "Boat",
    534 => "Weapon Rack",
    535 => "Armor Rack",
    536 => "Honey Pot",
    537 => "Jum Jum Bucket",
    538 => "Toolbox",
    539 => "Stone Jug",
    540 => "Small Plant",
    541 => "Medium Plant",
    542 => "Tall Plant",
    543 => "Wine Cask",
    544 => "Elven Boat",
    545 => "Gnomish Boat",
    546 => "Barrel Barge Ship",
    547 => "Goo",
    548 => "Goo",
    549 => "Goo",
    550 => "Merchant Ship",
    551 => "Pirate Ship",
    552 => "Ghost Ship",
    553 => "Banner",
    554 => "Banner",
    555 => "Banner",
    556 => "Banner",
    557 => "Banner",
    558 => "Aviak",
    559 => "Beetle",
    560 => "Gorilla",
    561 => "Kedge",
    562 => "Kerran",
    563 => "Shissar",
    564 => "Siren",
    565 => "Sphinx",
    566 => "Human",
    567 => "Campfire",
    568 => "Brownie",
    569 => "Dragon",
    570 => "Exoskeleton",
    571 => "Ghoul",
    572 => "Clockwork Guardian",
    573 => "Mantrap",
    574 => "Minotaur",
    575 => "Scarecrow",
    576 => "Shade",
    577 => "Rotocopter",
    578 => "Tentacle Terror",
    579 => "Wereorc",
    580 => "Worg",
    581 => "Wyvern",
    582 => "Chimera",
    583 => "Kirin",
    584 => "Puma",
    585 => "Boulder",
    586 => "Banner",
    587 => "Elven Ghost",
    588 => "Human Ghost",
    589 => "Chest",
    590 => "Chest",
    591 => "Crystal",
    592 => "Coffin",
    593 => "Guardian CPU",
    594 => "Worg",
    595 => "Mansion",
    596 => "Floating Island",
    597 => "Cragslither",
    598 => "Wrulon",
    600 => "Invisible Man of Zomm",
    601 => "Robocopter of Zomm",
    602 => "Burynai",
    603 => "Frog",
    604 => "Dracolich",
    605 => "Iksar Ghost",
    606 => "Iksar Skeleton",
    607 => "Mephit",
    608 => "Muddite",
    609 => "Raptor",
    610 => "Sarnak",
    611 => "Scorpion",
    612 => "Tsetsian",
    613 => "Wurm",
    614 => "Nekhon",
    615 => "Hydra Crystal",
    616 => "Crystal Sphere",
    617 => "Gnoll",
    618 => "Sokokar",
    619 => "Stone Pylon",
    620 => "Demon Vulture",
    621 => "Wagon",
    622 => "God of Discord",
    623 => "Feran Mount",
    624 => "Ogre NPC",
    625 => "Sokokar Mount",
    626 => "Giant",
    627 => "Sokokar",
    628 => "10th Anniversary Banner",
    629 => "10th Anniversary Cake",
    630 => "Wine Cask",
    631 => "Hydra Mount",
    632 => "Hydra NPC",
    633 => "Wedding Fbelows",
    634 => "Wedding Arbor",
    635 => "Wedding Altar",
    636 => "Powder Keg",
    637 => "Apexus",
    638 => "Bellikos",
    639 => "Brell's First Creation",
    640 => "Brell",
    641 => "Crystalskin Ambuloid",
    642 => "Cliknar Queen",
    643 => "Cliknar Soldier",
    644 => "Cliknar Worker",
    645 => "Coldain",
    646 => "Coldain",
    647 => "Crystalskin Sessiloid",
    648 => "Genari",
    649 => "Gigyn",
    650 => "Greken",
    651 => "Greken",
    652 => "Cliknar Mount",
    653 => "Telmira",
    654 => "Spider Mount",
    655 => "Bear Mount",
    656 => "Rat Mount",
    657 => "Sessiloid Mount",
    658 => "Morell Thule",
    659 => "Marionette",
    660 => "Book Dervish",
    661 => "Topiary Lion",
    662 => "Rotdog",
    663 => "Amygdalan",
    664 => "Sandman",
    665 => "Grandfather Clock",
    666 => "Gingerbread Man",
    667 => "Royal Guard",
    668 => "Rabbit",
    669 => "Blind Dreamer",
    670 => "Cazic Thule",
    671 => "Topiary Lion Mount",
    672 => "Rot Dog Mount",
    673 => "Goral Mount",
    674 => "Selyrah Mount",
    675 => "Sclera Mount",
    676 => "Braxi Mount",
    677 => "Kangon Mount",
    678 => "Erudite",
    679 => "Wurm Mount",
    680 => "Raptor Mount",
    681 => "Invisible Man",
    682 => "Whirligig",
    683 => "Gnomish Balloon",
    684 => "Gnomish Rocket Pack",
    685 => "Gnomish Hovering Transport",
    686 => "Selyrah",
    687 => "Goral",
    688 => "Braxi",
    689 => "Kangon",
    690 => "Invisible Man",
    691 => "Floating Tower",
    692 => "Explosive Cart",
    693 => "Blimp Ship",
    694 => "Tumbleweed",
    695 => "Alaran",
    696 => "Swinetor",
    697 => "Triumvirate",
    698 => "Hadal",
    699 => "Hovering Platform",
    700 => "Parasitic Scavenger",
    701 => "Grendlaen",
    702 => "Ship in a Bottle",
    703 => "Alaran Sentry Stone",
    704 => "Dervish",
    705 => "Regeneration Pool",
    706 => "Teleportation Stand",
    707 => "Relic Case",
    708 => "Alaran Ghost",
    709 => "Skystrider",
    710 => "Water Spout",
    711 => "Aviak Pull Along",
    712 => "Gelatinous Cube",
    713 => "Cat",
    714 => "Elk Head",
    715 => "Holgresh",
    716 => "Beetle",
    717 => "Vine Maw",
    718 => "Ratman",
    719 => "Fallen Knight",
    720 => "Flying Carpet",
    721 => "Carrier Hand",
    722 => "Akheva",
    723 => "Servant of Shadow",
    724 => "Luclin");
    return (defined $h{$_[0]} ? $h{$_[0]} : "UNKNOWN");
}


markusdabrave 04-26-2015 08:55 PM

Nice, thanks. The race plugin alone will come in handy :)

Kingly_Krab 04-26-2015 09:02 PM

You're welcome.

Veltira 05-30-2016 01:33 PM

This was very helpful, thank you.

demonstar55 05-30-2016 03:42 PM

Newer clients actually have a UI for this ... not sure on the packets/opcodes for it though :P


All times are GMT -4. The time now is 08:25 AM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.