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