Job selector and starter pack distributor (npc)

Results 1 to 6 of 6
  1. #1
    (O_o(o_O(O_O)o_O)O_o) Novak is offline
    MemberRank
    Apr 2009 Join Date
    The NetherlandsLocation
    1,120Posts

    Job selector and starter pack distributor (npc)

    Hi there,

    This script is a result of me exploring the possibilities of NPC scripting.
    It's not meant to be as much of a short / effective script, as it is an interesting script showing a few things I think are cool that can be done in npc scripting.

    And yes, I know there are multiple releases allready that adress job selecting and starterpacks, this one is kinda up to date though, and as stated, had no purpose as to making those other releases obsolete, it was just me trying some things.

    Do with it as you please ;)
    PHP Code:
    /* 
        NPC Name:         Shanks
        Map(s):         Maple Road : Southperry (60000)
        Description:     Select job and warp to Victoria Island
    */
    var job = [ 
    [[
    100"Warrior"], [200"Magician"], [300"Bowman"], [400"Thief"], [500"Pirate"]], 
    [[
    1100"Dawn Warrior"], [1200"Blaze Wizard"], [1300"Wind Archer"], [1400"Night Walker"], [1500"Thunder Breaker"]], 
    [[
    3200"Battle Mage"], [3300"Wild Hunter"], [3500"Mechanic"]], 
    [[
    110"Fighter"], [120"Page"], [130"Spearman"]], 
    [[
    210"Wizard (F/P)"], [220"Wizard (I/L)"], [230"Cleric"]], 
    [[
    310"Hunter"], [320"Crossbow Man"]], 
    [[
    410"Assassin"], [420"Bandit"]], 
    [[
    510"Brawler"], [520"Gunslinger"]],
    [[
    3100"Demon Slayer"], [3101"Demon Avenger"]]]; 
    var 
    status 0
    var 
    select;
    var 
    destination 2010000//Lith Harbor

    function jobSelection(index) { 
        for (var 
    0job[index].lengthi++) 
            
    choose += "\r\n#L" job[index][i][0] + "#" job[index][i][1] + "#l"
        
    cm.sendSimple("Please, select your job:" ); 
    }  

    function 
    starterpack() { 
        
    cm.gainItem(11020411); // Pink Advent Cape 
        
    cm.gainItem(11020421); // Purple Advent Cape 
        
    cm.gainItem(30100001); // Beginner Chair 
        
    cm.gainItem(200000550); // 50 Power Elixir
        
    cm.gainItem(10821461); // Yellow WG 
        
    cm.warp(destination0);
        
    cm.sendOk("Welcome to Victoria Island! Enjoy your stay!~");
        
    cm.dispose();
    }

    function 
    proccespackage() {
         switch (
    cm.getPlayer().getJob()) { 
                case 
    100:
                case 
    1100:
                case 
    2000:
                case 
    2100:
                case 
    3100:
                case 
    5100:
                case 
    6000//warriors (aran/ demons/ Kaiser/ mihile included)
                    
    cm.gainItem(14420711); // Seraphim Polearm 
                    
    cm.gainItem(14420501); // Seraphim Spear 
                    
    cm.gainItem(14020531); // Seraphim 2-H Sword 
                    
    cm.gainItem(14120351); // Seraphim 2-H Axe 
                    
    cm.gainItem(14220391); // Seraphim 2-H Blunt Weapon (Mace) 1302033
                    
    cm.gainItem(13020331); // 1-H sword 
                    
    starterpack();
                    break; 
                case 
    200:
                case 
    1200:
                case 
    2200:
                case 
    2201:
                case 
    3200//mages (evan/ BM included)
                    
    cm.gainItem(13720461); // Seraphim Wand 
                    
    cm.gainItem(13820621); // Seraphim Staff
                    
    starterpack();
                    break;
                case 
    300:
                case 
    1300:
                case 
    3300:
                case 
    2300//archers (mercedes, WH included)
                    
    cm.gainItem(14520621); // Seraphim Bow 
                    
    cm.gainItem(14620561); // Seraphim Cross bow 
                    
    cm.gainItem(20600015000); // Arrows   
                    
    cm.gainItem(20610035000); // X-Box arrows.
                    
    cm.gainItem(13520001); // magic arrows. 
                    
    cm.gainItem(15220001); // dual bowgun
                    
    starterpack();
                    break;
                case 
    400:
                case 
    1400:
                case 
    430:
                case 
    431//thieves (dual blade included)
                    
    cm.gainItem(20700015000); // Stars   
                    
    cm.gainItem(13320811); // Seraphim Dagger 
                    
    cm.gainItem(14720771); // Seraphim Claw 
                    
    cm.gainItem(13420471); // katara
                    
    starterpack();
                    break;
                case 
    500:
                case 
    1500:
                case 
    3500
                case 
    530:
                case 
    507
                case 
    508//pirates (mech/ cannoneer included)
                    
    cm.gainItem(14820291); // Seraphim Knuckles 
                    
    cm.gainItem(14920001); // pistol
                    
    cm.gainItem(2300000100); // bullets
                    
    cm.gainItem(2300000100); // bullets
                    
    cm.gainItem(2300000100); // bullets
                    
    cm.gainItem(15320001); // cannon
                    
    starterpack();
                    break;
                case 
    2400//phantom
                    
    cm.gainItem(13620001); // cane
                    
    cm.starterpack();    
                    break;
                case 
    6500//angelic buster
                    
    cm.gainItem(12220621); // Soul Shooter
                    
    cm.gainItem(13526011); // Soul ring
                    
    starterpack();
                case 
    2710//luminous
                    
    cm.gainItem(12120861); // Lumi Stick thingy (expires after relog)
                    
    cm.gainItem(12120011); // Lumi Stick thingy
                    
    cm.gainItem(13524001); // Light orb
                    
    starterpack();
                    break;
                case 
    3600//Xenon
                    
    cm.gainItem(12420011); // xenon blade thingy
                    
    starterpack();
                    break;
                default:
                    
    cm.sendOk("Hi there! Something went wrong in giving you a starter package! This might be because you are a job that is currently unknown to us, if so, report it at the forums!")
                    
    cm.dispose();
         }
    }

    function 
    start() { 
        
    status = -1
        
    action(100); 
    }  


    function 
    action(modetypeselection) { 
        if (
    mode == 1
            
    status++; 
        else if (
    mode == -1
            
    status--; 
        else { 
            
    cm.dispose(); 
            return; 
        } 
        if (
    status == 0) { 
            if (
    cm.getPlayer().getLevel() >= 10 && cm.getPlayer().getLevel() < 50 
                
    cm.sendYesNo("Oh hello there! Here comes a though decision:\r\n\r\nEither stay on your current path, or change it by selecting a different job."); 
            else { 
                
    cm.sendOk("You may not advance yet. You must be at least level 10 to proceed."); 
                
    cm.dispose(); 
            } 
        } else if (
    status == 1) { 
            
    cm.sendSimple("Please, pick a job:\r\n\r\n" 
            
    "#L0#Adventurer#l\r\n" +
            
    "#L1000#Knight of Cygnus#l\r\n" +
            
    "#L3000#Resistance#l\r\n" +
            
    "#L3001#Demon#l\r\n" +
            
    "#L501#Cannoneer#l\r\n" +
            
    "#L2000#Aran#l\r\n" +
            
    "#L2001#Evan#l\r\n" +
            
    "#L2002#Mercedes#l\r\n" +
            
    "#L2003#Phantom#l\r\n" +
            
    "#L2004#Luminous#l\r\n" +
            
    "#L3002#Xenon#l\r\n" +
        
    /*    "#L6000#Kaiser#l\r\n" + */
            
    "#L6001#Angelic Buster#l\r\n" +
            
    "#L2000#Aran#l\r\n" +
            
    "#L4001#Hayato#l\r\n" +
            
    "#L4002#Kanna#l\r\n" +
            
    "#L5000#Mihile#l\r\n" +
            
    "#L2000#Aran#l\r\n" +
            
    "#L10000#Zero#l\r\n" +
            
    "#L2000#Dual Blade#l\r\n");
        }else if (
    status == 2) {
            switch (
    selection) { 
                case 
    0// Adventurer
                    
    jobSelection(0); 
                    break; 
                case 
    1000// Cygnus knight
                    
    jobSelection(1); 
                    break; 
                case 
    3000// Resistance
                    
    jobSelection(2); 
                    break; 
                case 
    3001// Demon 
                    
    jobSelection(8); 
                    break; 
                
    //Special Jobs 
                
    case 501// Pirate(Cannoneer) 
                    
    cm.getPlayer().changeJob(530); 
                    
    proccespackage();
                    break; 
                case 
    2000// Legend(Aran) 
                    
    cm.getPlayer().changeJob(2100); 
                    
    proccespackage(); 
                    break; 
                case 
    2001// Farmer(Evan) 
                    
    cm.getPlayer().changeJob(2200); 
                    
    proccespackage(); 
                    break; 
                case 
    2002// Mercedes 
                    
    cm.getPlayer().changeJob(2300); 
                    
    proccespackage(); 
                    break; 
                case 
    2003// Phantom Jr. 
                    
    cm.getPlayer().changeJob(2400); 
                    
    proccespackage();
                    break;
                case 
    2004// Luminous
                    
    cm.getPlayer().changeJob(2710); 
                    
    proccespackage();
                    break; 
                case 
    3002// Xenon 
                    
    cm.getPlayer().changeJob(3600); 
                    
    proccespackage(); 
                    break;
                case 
    6000// Kaiser 
                    
    cm.getPlayer().changeJob(6100); 
                    
    proccespackage(); 
                    break; 
                case 
    6001// Angelic Buster 
                    
    cm.getPlayer().changeJob(6500); 
                    
    proccespackage();
                    break;
               
    /* case 11000: // Beast Tamer  
                    cm.getPlayer().changeJob(11200); 
                    proccespackage();
                    break; */
                
    case 4001// Hayato  
                    
    cm.getPlayer().changeJob(4100); 
                    
    proccespackage();
                    break;
                case 
    4002// Kanna
                    
    cm.getPlayer().changeJob(4200); 
                    
    proccespackage();
                    break;
                case 
    5000// Mihile
                    
    cm.getPlayer().changeJob(5100); 
                    
    proccespackage();
                    break; 
                case 
    10000// Zero
                    
    cm.getPlayer().changeJob(10000);
                    
    proccespackage();
                    break;
                case 
    430// Dual Blade
                    
    cm.getPlayer().changeJob(430);
                    
    proccespackage();
                    break;
            }
        } else if (
    status == 3) { 
            
    select selection
            
    cm.sendYesNo("Are you sure you want to Job Advance?"); 
        } else if (
    status == 4) { 
            
    cm.getPlayer().changeJob(select); 
            
    proccespackage();
        } 

    OLD ONE:
    Spoiler:
    PHP Code:
    /* 
        NPC Name:         Shanks
        Map(s):         Maple Road : Southperry (60000)
        Description:     Select job and warp to Victoria Island
    */
    var job = [ 
    [[
    100"Warrior"], [200"Magician"], [300"Bowman"], [400"Thief"], [500"Pirate"]], 
    [[
    1100"Dawn Warrior"], [1200"Blaze Wizard"], [1300"Wind Archer"], [1400"Night Walker"], [1500"Thunder Breaker"]], 
    [[
    3200"Battle Mage"], [3300"Wild Hunter"], [3500"Mechanic"]], 
    [[
    110"Fighter"], [120"Page"], [130"Spearman"]], 
    [[
    210"Wizard (F/P)"], [220"Wizard (I/L)"], [230"Cleric"]], 
    [[
    310"Hunter"], [320"Crossbow Man"]], 
    [[
    410"Assassin"], [420"Bandit"]], 
    [[
    510"Brawler"], [520"Gunslinger"]],
    [[
    3100"Demon Slayer"], [3101"Demon Avenger"]]]; 
    var 
    status 0
    var 
    select;
    var 
    maple 2010000//Lith Harbor

    function jobSelection(index) { 
        var 
    choose "Please, select your job:" 
        
    for (var 0job[index].lengthi++) 
            
    choose += "\r\n#L" job[index][i][0] + "#" job[index][i][1] + "#l"
        
    cm.sendSimple(choose); 
    }  

    function 
    starterpack() { 
        
    cm.gainItem(11020411); // Pink Advent Cape 
        
    cm.gainItem(30100001); // Beginner Chair 
        
    cm.gainItem(200000550); // 50 Power Elixir
        
    cm.gainItem(10821461); // Yellow WG
        
    cm.warp(maple0);
        
    cm.sendOk("Welcome to Victoria Island! Enjoy your stay!~");
        
    cm.dispose();
    }

    function 
    proccespackage() {
        if (
    cm.getPlayer().getJob() == 100 || cm.getPlayer().getJob() == 1100 || cm.getPlayer().getJob() == 2000 || cm.getPlayer().getJob() == 2100 || cm.getPlayer().getJob() == 3100 || cm.getPlayer().getJob() == 5100 || cm.getPlayer().getJob() == 6000) {//warriors (aran/ demons/ Kaiser/ mihile included)
                        
    cm.gainItem(14420711); // Seraphim Polearm 
                        
    cm.gainItem(14420501); // Seraphim Spear 
                        
    cm.gainItem(14020531); // Seraphim 2-H Sword 
                        
    cm.gainItem(14120351); // Seraphim 2-H Axe 
                        
    cm.gainItem(14220391); // Seraphim 2-H Blunt Weapon (Mace) 1302033
                        
    cm.gainItem(13020331); // 1-H sword 
                        
    starterpack();
                    } else if (
    cm.getPlayer().getJob() == 200 || cm.getPlayer().getJob() == 1200 || cm.getPlayer().getJob() == 2200 || cm.getPlayer().getJob() == 2201 || cm.getPlayer().getJob() == 3200) { //mages (evan/ BM included)
                        
    cm.gainItem(13720461); // Seraphim Wand 
                        
    cm.gainItem(13820621); // Seraphim Staff
                        
    starterpack();
                    } else if (
    cm.getPlayer().getJob() == 2400) {//phantom
                        
    cm.gainItem(13620001); // cane
                        
    cm.starterpack();
                    } else if (
    cm.getPlayer().getJob == 300 || cm.getPlayer().getJob() == 1300 || cm.getPlayer().getJob() == 3300 || cm.getPlayer().getJob() == 2300) {//archers (mercedes, WH included)
                        
    cm.gainItem(14520621); // Seraphim Bow 
                        
    cm.gainItem(14620561); // Seraphim Cross bow 
                        
    cm.gainItem(20600015000); // Arrows   
                        
    cm.gainItem(20610035000); // X-Box arrows.
                        
    cm.gainItem(13520001); // magic arrows. 
                        
    cm.gainItem(15220001); // dual bowgun
                        
    starterpack();
                    } else if (
    cm.getPlayer().getJob() == 400 || cm.getPlayer().getJob() == 1400 || cm.getPlayer().getJob() == 430 || cm.getPlayer().getJob() == 431) {//thieves (dual blade included)
                        
    cm.gainItem(20700015000); // Stars   
                        
    cm.gainItem(13320811); // Seraphim Dagger 
                        
    cm.gainItem(14720771); // Seraphim Claw 
                        
    cm.gainItem(13420471); // katara
                        
    starterpack();
                    } else if (
    cm.getPlayer().getJob() == 500 || cm.getPlayer().getJob() == 1500 || cm.getPlayer().getJob() == 3500 || cm.getPlayer().getJob() == 530 || cm.getPlayer().getJob() == 507 || cm.getPlayer().getJob() == 508) {//pirates (mech/ cannoneer included)
                        
    cm.sendOk("You are obliged to receive the Pirate package!");
                        
    cm.gainItem(14820291); // Seraphim Knuckles 
                        
    cm.gainItem(14920001); // pistol
                        
    cm.gainItem(2300000100); // bullets
                        
    cm.gainItem(2300000100); // bullets
                        
    cm.gainItem(2300000100); // bullets
                        
    cm.gainItem(15320001); // cannon
                        
    starterpack();
                    } else if (
    cm.getPlayer().getJob() == 6500) {//Angelic Buster
                        
    cm.gainItem(12220621); // Soul Shooter
                        
    cm.gainItem(13526011); // Soul ring
                        
    starterpack();
                    } else if (
    cm.getPlayer().getJob() == 2710) {//Luminous
                        
    cm.gainItem(12120861); // Lumi Stick thingy
                        
    cm.gainItem(13524001); // Light orb
                        
    starterpack();
                    } else if (
    cm.getPlayer().getJob() == 3600) {//Xenon
                        
    cm.gainItem(12420011); // xenon blade thingy
                        
    starterpack();
                    } else {
                        
    cm.sendOk("Hi there! Something went wrong in giving you a starter package! This might be because you are a job that is currently unknown to us, if so, report it at the forums!")
                        
    cm.dispose();
                    }
    }

    function 
    start() { 
        
    status = -1
        
    action(100); 
    }  


    function 
    action(modetypeselection) { 
        if (
    mode == 1
            
    status++; 
        else if (
    mode == -1
            
    status--; 
        else { 
            
    cm.dispose(); 
            return; 
        } 
        if (
    status == 0) { 
            if (
    cm.getPlayer().getLevel() >= 10 && cm.getPlayer().getLevel() < 50 
                
    cm.sendYesNo("Oh hello there! Here comes a though decision:\r\n\r\nEither stay on your current path, or change it by selecting a different job."); 
            else { 
                
    cm.sendOk("You may not advance yet. You must be at least level 10 to proceed."); 
                
    cm.dispose(); 
            } 
        } else if (
    status == 1) { 
            
    cm.sendSimple("Please, pick a job:\r\n\r\n" 
            
    "#L0#Adventurer#l\r\n" +
            
    "#L1000#Knight of Cygnus#l\r\n" +
            
    "#L3000#Resistance#l\r\n" +
            
    "#L3001#Demon#l\r\n" +
            
    "#L501#Cannoneer#l\r\n" +
            
    "#L2000#Aran#l\r\n" +
            
    "#L2001#Evan#l\r\n" +
            
    "#L2002#Mercedes#l\r\n" +
            
    "#L2003#Phantom#l\r\n" +
            
    "#L2004#Luminous#l\r\n" +
            
    "#L3002#Xenon#l\r\n" +
        
    /*    "#L6000#Kaiser#l\r\n" + */
            
    "#L6001#Angelic Buster#l\r\n" +
            
    "#L2000#Aran#l\r\n" +
            
    "#L4001#Hayato#l\r\n" +
            
    "#L4002#Kanna#l\r\n" +
            
    "#L5000#Mihile#l\r\n" +
            
    "#L2000#Aran#l\r\n" +
            
    "#L10000#Zero#l\r\n" +
            
    "#L2000#Dual Blade#l\r\n");
        }else if (
    status == 2) {
            switch (
    selection) { 
                case 
    0// Adventurer
                    
    jobSelection(0); 
                    break; 
                case 
    1000// Cygnus knight
                    
    jobSelection(1); 
                    break; 
                case 
    3000// Resistance
                    
    jobSelection(2); 
                    break; 
                case 
    3001// Demon 
                    
    jobSelection(8); 
                    break; 
                
    //Special Jobs 
                
    case 501// Pirate(Cannoneer) 
                    
    cm.getPlayer().changeJob(530); 
                    
    proccespackage();
                    break; 
                case 
    2000// Legend(Aran) 
                    
    cm.getPlayer().changeJob(2100); 
                    
    proccespackage(); 
                    break; 
                case 
    2001// Farmer(Evan) 
                    
    cm.getPlayer().changeJob(2200); 
                    
    proccespackage(); 
                    break; 
                case 
    2002// Mercedes 
                    
    cm.getPlayer().changeJob(2300); 
                    
    proccespackage(); 
                    break; 
                case 
    2003// Phantom Jr. 
                    
    cm.getPlayer().changeJob(2400); 
                    
    proccespackage();
                    break;
                case 
    2004// Luminous
                    
    cm.getPlayer().changeJob(2710); 
                    
    proccespackage();
                    break; 
                case 
    3002// Xenon 
                    
    cm.getPlayer().changeJob(3600); 
                    
    proccespackage(); 
                    break;
                case 
    6000// Kaiser 
                    
    cm.getPlayer().changeJob(6100); 
                    
    proccespackage(); 
                    break; 
                case 
    6001// Angelic Buster 
                    
    cm.getPlayer().changeJob(6500); 
                    
    proccespackage();
                    break;
               
    /* case 11000: // Beast Tamer  
                    cm.getPlayer().changeJob(11200); 
                    proccespackage();
                    break; */
                
    case 4001// Hayato  
                    
    cm.getPlayer().changeJob(4100); 
                    
    proccespackage();
                    break;
                case 
    4002// Kanna
                    
    cm.getPlayer().changeJob(4200); 
                    
    proccespackage();
                    break;
                case 
    5000// Mihile
                    
    cm.getPlayer().changeJob(5100); 
                    
    proccespackage();
                    break; 
                case 
    10000// Zero
                    
    cm.getPlayer().changeJob(10000);
                    
    proccespackage();
                    break;
                case 
    430// Dual Blade
                    
    cm.getPlayer().changeJob(430);
                    
    proccespackage();
                    break;
            }
        } else if (
    status == 3) { 
            
    select selection
            
    cm.sendYesNo("Are you sure you want to Job Advance?"); 
        } else if (
    status == 4) { 
            
    cm.getPlayer().changeJob(select); 
            
    proccespackage();
        } 



    Any feedback or know of other 'cool' things I can do with npc scripting? Lemme know xD

    -- Some credits to some other posts, like the job advancer which gave me the idea, and some starterpack npc released somewhere which had some nice packages to use
    Last edited by UnknownDog; 18-02-15 at 09:36 AM. Reason: made it a tiny bit shorter


  2. #2
    Enthusiast TamixPro is offline
    MemberRank
    Oct 2014 Join Date
    Lima, PeruLocation
    34Posts

    Re: Job selector and starter pack distributor (npc)

    Nice Release!

  3. #3
    Interesting... SharpAceX is offline
    MemberRank
    Oct 2008 Join Date
    2,011Posts

    Re: Job selector and starter pack distributor (npc)

    I respect the amount of time and effort put into this.

    Some suggestions:
    Use variables. For example, var job = cm.getPlayer().getJob(). Not doing so makes the code way longer than it has to be.
    Use a switch case in proccespackage so that you can improve the readability.

    Might be a challenge to dramatically shorten this script given the sheer amount of work this npc is trying to do, so honestly not bad for a beginner.

  4. #4
    (O_o(o_O(O_O)o_O)O_o) Novak is offline
    MemberRank
    Apr 2009 Join Date
    The NetherlandsLocation
    1,120Posts

    Re: Job selector and starter pack distributor (npc)

    Quote Originally Posted by SharpAceX View Post
    I respect the amount of time and effort put into this.

    Some suggestions:
    Use variables. For example, var job = cm.getPlayer().getJob(). Not doing so makes the code way longer than it has to be.
    Use a switch case in proccespackage so that you can improve the readability.

    Might be a challenge to dramatically shorten this script given the sheer amount of work this npc is trying to do, so honestly not bad for a beginner.
    Ah ofcource, why use a switch in one place, and not in the other? Ill be doing that now, and post a new one after a while :D
    And the variables are also a good call ;)

    - - - Updated - - -

    Allright! Posted a new one ;) So what do you think of this one? :p

  5. #5
    Moderator Eric is offline
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,188Posts

    Re: Job selector and starter pack distributor (npc)

    Quote Originally Posted by Novak View Post
    Ah ofcource, why use a switch in one place, and not in the other? Ill be doing that now, and post a new one after a while :D
    And the variables are also a good call ;)

    - - - Updated - - -

    Allright! Posted a new one ;) So what do you think of this one? :p
    I never tested it in JavaScript, but in Java you can't do:
    Code:
    case 100 || 1100 || 2000 || 2100 || 3100 || 5100 || 6000:
    Instead, you're supposed to do:
    Code:
    case 100:
    case 1100:
    case 2000:
    case 2100:
    case 3100:
    case 5100:
    case 6000:
        break;
    Nonetheless, great script. I don't see many people using multiple functions in NPC's, usually they just have a very large start or action method repeating a long if statement or whatever upon selections.

  6. #6
    (O_o(o_O(O_O)o_O)O_o) Novak is offline
    MemberRank
    Apr 2009 Join Date
    The NetherlandsLocation
    1,120Posts

    Re: Job selector and starter pack distributor (npc)

    Quote Originally Posted by chunkarama View Post
    I never tested it in JavaScript, but in Java you can't do:
    Code:
    case 100 || 1100 || 2000 || 2100 || 3100 || 5100 || 6000:
    .
    Ah you're right. I just so happened to test one of the jobs that was first in line xD Let me fix that!

    Thanks for the feedback! :p

    And yeah, when I noticed I could actually do multiple functions, I started using them more often. They can really help make things easier.

    - - - Updated - - -

    Allright, fixed up the cases, should work again now :p



Advertisement