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