viewing paste rA/75147-i weapon_shop | Athena

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
prontera,156,184,4  script  ksdjfhskhfj 100,{
    mes "blah";
    .@job = .basejob[BaseJob]; // note : if basejob is out of range, will default to novice because its 0
    .@s = select( .menu$[ .@job ] ) -1;
    close2;
    callshop "weapon_shop#"+ getd( ".weaponselect"+ .@job +"["+ .@s +"]" ), 1; // EDITED : optimized a little bit
    end;
OnInit:
    .basejob[JOB_NOVICE] = 0;
    .basejob[JOB_SUPER_NOVICE] = 0;
    .basejob[JOB_SWORDMAN] = 1;
    .basejob[JOB_MAGE] = 2;
    .basejob[JOB_ARCHER] = 3;
    .basejob[JOB_ACOLYTE] = 4;
    .basejob[JOB_MERCHANT] = 5;
    .basejob[JOB_THIEF] = 6;
    .basejob[JOB_KNIGHT] = 7;
    .basejob[JOB_PRIEST] = 8;
    .basejob[JOB_WIZARD] = 9;
    .basejob[JOB_BLACKSMITH] = 10;
    .basejob[JOB_HUNTER] = 11;
    .basejob[JOB_ASSASSIN] = 12;
    .basejob[JOB_CRUSADER] = 14;
    .basejob[JOB_MONK] = 15;
    .basejob[JOB_SAGE] = 16;
    .basejob[JOB_ROGUE] = 17;
    .basejob[JOB_ALCHEMIST] = 18;
    .basejob[JOB_BARD] = 19;
    .basejob[JOB_DANCER] = 19;
    .basejob[JOB_TAEKWON] = 21;
    .basejob[JOB_STAR_GLADIATOR] = 22;
    .basejob[JOB_SOUL_LINKER] = 23;
    .basejob[JOB_GUNSLINGER] = 24;
    .basejob[JOB_NINJA] = 25;
    .basejob[JOB_GANGSI] = 26;
    .basejob[JOB_DEATH_KNIGHT] = 27;
    .basejob[JOB_DARK_COLLECTOR] = 28;
    .basejob[JOB_KAGEROU] = 29;
    .basejob[JOB_OBORO] = 29;
    .basejob[JOB_REBELLION] = 30;
    .basejob[JOB_SUMMONER] = 31;
    setarray .@weaponname$[1],
        "Daggers",
        "One-handed swords",
        "Two-handed swords",
        "One-handed spears",
        "Two-handed spears",
        "One-handed axes",
        "Two-handed axes",
        "Maces",
        "", // <-- stupid unused
        "Staves",
        "Bows",
        "Knuckles",
        "Musical Instruments",
        "Whips",
        "Books",
        "Katars",
        "Revolvers",
        "Rifles",
        "Gatling guns",
        "Shotguns",
        "Grenade launchers",
        "Fuuma Shurikens",
        "Two-handed staves";
    freeloop true;
    for ( .@i = 0; .@i <= 31; ++.@i )
        .@statement$[.@i] = "select sum(aaa) from ( select 1 << view as aaa from item_db where type = "+ IT_WEAPON +" && equip_jobs & 1<<"+ .@i +" group by view ) as zzz";
    query_sql implode( .@statement$, " union all " ), .@weaponbits;
    for ( .@i = 0; .@i <= 31; ++ .@i ) { // job index
        if ( .@i != 13 && .@i != 20 ) { // unused
            .@c1 = .@c2 = 0;
            for ( .@j = 1; .@j <= 22; ++.@j ) { // weapon index
                if ( .@j != 9 ) {
                    if ( .@weaponbits[.@i] & 1 << .@j ) {
                        .menu$[.@i] = .menu$[.@i] +"^00CC00"+ .@weaponname$[.@j] +":";
                        setd ".weaponselect"+ .@i +"["+( .@c1++ )+"]", .@j;
                    }
                    else {
                        .@menu$[.@i] = .@menu$[.@i] +"^FF0000"+ .@weaponname$[.@j] +":";
                        setd ".@weaponselect"+ .@i +"["+( .@c2++ )+"]", .@j;
                    }
                }
            }
            .menu$[.@i] += .@menu$[.@i];
            copyarray getd( ".weaponselect"+ .@i +"["+ .@c1 +"]" ), getd( ".@weaponselect"+ .@i ), .@c2;
        }
    }
    for ( .@i = 1; .@i <= 22; ++.@i ) {// weapon shops
        .@nb = query_sql( "select id from item_db where type = "+ IT_WEAPON +" && view = "+ .@i, .@id );
        npcshopdelitem "weapon_shop#"+ .@i, 501;
        for ( .@j = 0; .@j < .@nb; ++.@j )
            npcshopadditem "weapon_shop#"+ .@i, .@id[.@j], getiteminfo( .@id[.@j], 0 );
    }
    freeloop false;
    end;
}
-   shop    weapon_shop#1   -1,501:1000
-   shop    weapon_shop#2   -1,501:1000
-   shop    weapon_shop#3   -1,501:1000
-   shop    weapon_shop#4   -1,501:1000
-   shop    weapon_shop#5   -1,501:1000
-   shop    weapon_shop#6   -1,501:1000
-   shop    weapon_shop#7   -1,501:1000
-   shop    weapon_shop#8   -1,501:1000
-   shop    weapon_shop#10  -1,501:1000
-   shop    weapon_shop#11  -1,501:1000
-   shop    weapon_shop#12  -1,501:1000
-   shop    weapon_shop#13  -1,501:1000
-   shop    weapon_shop#14  -1,501:1000
-   shop    weapon_shop#15  -1,501:1000
-   shop    weapon_shop#16  -1,501:1000
-   shop    weapon_shop#17  -1,501:1000
-   shop    weapon_shop#18  -1,501:1000
-   shop    weapon_shop#19  -1,501:1000
-   shop    weapon_shop#20  -1,501:1000
-   shop    weapon_shop#21  -1,501:1000
-   shop    weapon_shop#22  -1,501:1000
Viewed 1024 times, submitted by AnnieRuru.