You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

521 lines
21 KiB
Plaintext

//===== rAthena Script =======================================
//= Rock Ridge npcs
//===== Description: =========================================
//= [Official Conversion]
//= Enchant npcs on Rockridge.
//===== Changelogs: ==========================================
//= 1.0 First version. [Capuche]
//============================================================
// enchant npc
har_in01,17,74,7 script Contraband Processor#pa 4_DR_SOLDIER,{
if (checkweight(1201,1) == 0) {
mes "I'm carrying too many types of items. I should lighten my bag first.";
close;
}
if ((MaxWeight - Weight) < 10000) {
mes "I'm overweight. I'd better lighten my bag first.";
close;
}
disable_items;
mes "[Contraband Processor]";
mes "Have you tried to buy some contraband items with Rock Ridge Coins? I can make your contraband items better.";
next;
.@reset = select( "Make them better? How?", "Enchant contraband items.", "Reset contraband item Enchantment level." ) - 2;
if (.@reset == -1) {
mes "[Contraband Processor]";
mes "Ah, have we met before? I meet so many people every day that I can't remember all of their faces. Let me catch you up to speed.";
next;
mes "[Contraband Processor]";
mes "I can enchant the equipment that you can buy with Rock Ridge Coins, for up to 3 sockets for Armor and Garments and up to 2 sockets for Accessories.";
next;
mes "[Contraband Processor]";
mes "I charge 2 Rock Ridge Coins per socket for both enchanting and resetting.";
next;
mes "[Contraband Processor]";
mes "Oh, and note that these contraband items are prone to destruction, especially when they are reset.";
close;
}
switch( select( "Cancel", "Armor", "Garment", "Accessory (Right Slot)" ) ) {
case 1:
mes "[Contraband Processor]";
mes "You're silly.";
close;
case 2:
.@part = EQI_ARMOR;
break;
case 3:
.@part = EQI_GARMENT;
break;
case 4:
.@part = EQI_ACC_R;
break;
}
.@equip_id = getequipid(.@part);
switch( .@equip_id ) {
case 15176: // Vigilante_Suit
case 15177: // Elemental_Robe
case 15178: // Golden_Ninja_Suit
case 15179: // Mine_Worker's_Vest
case 15180: // Hippie Clothes
case 20820: // Elemental_Cape
case 20821: // Golden_Scarf
case 20822: // Mine_Worker's_Backpack
case 28441: // Vigilante_Badge
case 28442: // Hippie_Feather
break;
case -1:
mes "[Contraband Processor]";
mes "Why are you wasting my time? Go wear your equipment first.";
close;
default:
mes "[Contraband Processor]";
mes "I don't handle items like this.";
close;
}
.@refine = getequiprefinerycnt(.@part);
setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
copyarray .@tmp_card[0], .@card[0], 4;
if ((.@card[1] && getiteminfo(.@card[1], ITEMINFO_SUBTYPE) == CARD_NORMAL) || (.@card[2] && getiteminfo(.@card[2], ITEMINFO_SUBTYPE) == CARD_NORMAL) || (.@card[3] && getiteminfo(.@card[3], ITEMINFO_SUBTYPE) == CARD_NORMAL)) {// armor enchant system custom check
mes "[Contraband Processor]";
mes "Something wrong happened.";
close;
}
switch( .@reset ) {
case TRUE:
if (.@card[3] == 0) {
mes "[Contraband Processor]";
mes "It's not enchanted. What do you expect me to reset?";
close;
}
mes "[Contraband Processor]";
mes "Oh, do you really want to reset it? As I told you before, contraband Vigilante Badges are prone to destruction.";
if (select( "I'll come back later.", "Let's do it." ) == 1) {
mes "[Contraband Processor]";
mes "Alright, come back if you change your mind.";
close;
}
if (.@part == EQI_ACC_R)
.@chance_of_breaking_on_reset = 45;
else
.@chance_of_breaking_on_reset = 30;
.@card[1] = .@card[2] = .@card[3] = 0;
break;
case FALSE:
switch( .@part ) {
case EQI_ARMOR:
case EQI_GARMENT:
if (.@card[1] > 0) {
mes "[Contraband Processor]";
mes "This has been enchanted to the maximum limit. Maybe you should reset it.";
close;
}
if (.@card[3] == 0)
.@enchant_slot = 3;
else if (.@card[2] == 0)
.@enchant_slot = 2;
else
.@enchant_slot = 1;
if (.@refine >= 9) {
.@r = rand(1,215);
if (.@r < 16) .@card[.@enchant_slot] = getiteminfo("Agility2", ITEMINFO_ID);
else if (.@r < 31) .@card[.@enchant_slot] = getiteminfo("Dexterity2", ITEMINFO_ID);
else if (.@r < 46) .@card[.@enchant_slot] = getiteminfo("Strength2", ITEMINFO_ID);
else if (.@r < 61) .@card[.@enchant_slot] = getiteminfo("Inteligence2", ITEMINFO_ID);
else if (.@r < 76) .@card[.@enchant_slot] = getiteminfo("Def20", ITEMINFO_ID);
else if (.@r < 91) .@card[.@enchant_slot] = getiteminfo("Mdef5", ITEMINFO_ID);
else if (.@r < 106) .@card[.@enchant_slot] = getiteminfo("Critical3", ITEMINFO_ID);
else if (.@r < 121) .@card[.@enchant_slot] = getiteminfo("Evasion6", ITEMINFO_ID);
else if (.@r < 135) .@card[.@enchant_slot] = getiteminfo("Expert_Archer1", ITEMINFO_ID);
else if (.@r < 149) .@card[.@enchant_slot] = getiteminfo("Fatal1", ITEMINFO_ID);
else if (.@r < 163) .@card[.@enchant_slot] = getiteminfo("Spell1", ITEMINFO_ID);
else if (.@r < 173) .@card[.@enchant_slot] = getiteminfo("Expert_Archer2", ITEMINFO_ID);
else if (.@r < 183) .@card[.@enchant_slot] = getiteminfo("Fatal2", ITEMINFO_ID);
else if (.@r < 193) .@card[.@enchant_slot] = getiteminfo("Spell2", ITEMINFO_ID);
else if (.@r < 197) .@card[.@enchant_slot] = getiteminfo("Expert_Archer3", ITEMINFO_ID);
else if (.@r < 201) .@card[.@enchant_slot] = getiteminfo("Fatal3", ITEMINFO_ID);
else if (.@r < 205) .@card[.@enchant_slot] = getiteminfo("Spell3", ITEMINFO_ID);
else if (.@r < 209) .@card[.@enchant_slot] = getiteminfo("Attack_Delay_1", ITEMINFO_ID);
else if (.@r < 210) .@card[.@enchant_slot] = getiteminfo("Expert_Archer4", ITEMINFO_ID);
else if (.@r < 211) .@card[.@enchant_slot] = getiteminfo("Fatal4", ITEMINFO_ID);
else if (.@r < 212) .@card[.@enchant_slot] = getiteminfo("Spell4", ITEMINFO_ID);
else .@card[.@enchant_slot] = getiteminfo("Attack_Delay_2", ITEMINFO_ID);
}
else {
.@r = rand(1,206);
if (.@r < 14) .@card[.@enchant_slot] = getiteminfo("Agility1", ITEMINFO_ID);
else if (.@r < 27) .@card[.@enchant_slot] = getiteminfo("Dexterity1", ITEMINFO_ID);
else if (.@r < 40) .@card[.@enchant_slot] = getiteminfo("Strength1", ITEMINFO_ID);
else if (.@r < 53) .@card[.@enchant_slot] = getiteminfo("Inteligence1", ITEMINFO_ID);
else if (.@r < 66) .@card[.@enchant_slot] = getiteminfo("Def15", ITEMINFO_ID);
else if (.@r < 79) .@card[.@enchant_slot] = getiteminfo("Mdef2", ITEMINFO_ID);
else if (.@r < 92) .@card[.@enchant_slot] = getiteminfo("Critical1", ITEMINFO_ID);
else if (.@r < 105) .@card[.@enchant_slot] = getiteminfo("Evasion3", ITEMINFO_ID);
else if (.@r < 114) .@card[.@enchant_slot] = getiteminfo("Agility2", ITEMINFO_ID);
else if (.@r < 123) .@card[.@enchant_slot] = getiteminfo("Dexterity2", ITEMINFO_ID);
else if (.@r < 132) .@card[.@enchant_slot] = getiteminfo("Strength2", ITEMINFO_ID);
else if (.@r < 141) .@card[.@enchant_slot] = getiteminfo("Inteligence2", ITEMINFO_ID);
else if (.@r < 150) .@card[.@enchant_slot] = getiteminfo("Def20", ITEMINFO_ID);
else if (.@r < 159) .@card[.@enchant_slot] = getiteminfo("Mdef5", ITEMINFO_ID);
else if (.@r < 168) .@card[.@enchant_slot] = getiteminfo("Critical3", ITEMINFO_ID);
else if (.@r < 177) .@card[.@enchant_slot] = getiteminfo("Evasion6", ITEMINFO_ID);
else if (.@r < 184) .@card[.@enchant_slot] = getiteminfo("Expert_Archer1", ITEMINFO_ID);
else if (.@r < 191) .@card[.@enchant_slot] = getiteminfo("Fatal1", ITEMINFO_ID);
else if (.@r < 198) .@card[.@enchant_slot] = getiteminfo("Spell1", ITEMINFO_ID);
else if (.@r < 201) .@card[.@enchant_slot] = getiteminfo("Expert_Archer2", ITEMINFO_ID);
else if (.@r < 204) .@card[.@enchant_slot] = getiteminfo("Fatal2", ITEMINFO_ID);
else .@card[.@enchant_slot] = getiteminfo("Spell2", ITEMINFO_ID);
}
break;
case EQI_ACC_R:
if (.@card[2] > 0) {
mes "[Contraband Processor]";
mes "This has been enchanted to the maximum limit. Maybe you should reset it.";
close;
}
if (.@card[3] == 0)
.@enchant_slot = 3;
else
.@enchant_slot = 2;
.@r = rand(1,236);
if (.@r < 16) .@card[.@enchant_slot] = getiteminfo("Agility1", ITEMINFO_ID);
else if (.@r < 31) .@card[.@enchant_slot] = getiteminfo("Dexterity1", ITEMINFO_ID);
else if (.@r < 46) .@card[.@enchant_slot] = getiteminfo("Strength1", ITEMINFO_ID);
else if (.@r < 61) .@card[.@enchant_slot] = getiteminfo("Inteligence1", ITEMINFO_ID);
else if (.@r < 76) .@card[.@enchant_slot] = getiteminfo("Vitality1", ITEMINFO_ID);
else if (.@r < 91) .@card[.@enchant_slot] = getiteminfo("Luck1", ITEMINFO_ID);
else if (.@r < 106) .@card[.@enchant_slot] = getiteminfo("HP100", ITEMINFO_ID);
else if (.@r < 121) .@card[.@enchant_slot] = getiteminfo("SP50", ITEMINFO_ID);
else if (.@r < 131) .@card[.@enchant_slot] = getiteminfo("Agility2", ITEMINFO_ID);
else if (.@r < 141) .@card[.@enchant_slot] = getiteminfo("Dexterity2", ITEMINFO_ID);
else if (.@r < 151) .@card[.@enchant_slot] = getiteminfo("Strength2", ITEMINFO_ID);
else if (.@r < 161) .@card[.@enchant_slot] = getiteminfo("Inteligence2", ITEMINFO_ID);
else if (.@r < 171) .@card[.@enchant_slot] = getiteminfo("Vitality2", ITEMINFO_ID);
else if (.@r < 181) .@card[.@enchant_slot] = getiteminfo("Luck2", ITEMINFO_ID);
else if (.@r < 191) .@card[.@enchant_slot] = getiteminfo("HP200", ITEMINFO_ID);
else if (.@r < 201) .@card[.@enchant_slot] = getiteminfo("SP100", ITEMINFO_ID);
else if (.@r < 208) .@card[.@enchant_slot] = getiteminfo("Expert_Archer1", ITEMINFO_ID);
else if (.@r < 215) .@card[.@enchant_slot] = getiteminfo("Spell1", ITEMINFO_ID);
else if (.@r < 222) .@card[.@enchant_slot] = getiteminfo("Fighting_Spirit1", ITEMINFO_ID);
else if (.@r < 229) .@card[.@enchant_slot] = getiteminfo("Attack_Delay_1", ITEMINFO_ID);
else if (.@r < 236) .@card[.@enchant_slot] = getiteminfo("Fatal1", ITEMINFO_ID);
else .@card[.@enchant_slot] = getiteminfo("Atk_Speed1", ITEMINFO_ID);
break;
default:
mes "[Contraband Processor]";
mes "Did you just try to switch equipment?";
close;
}
break;
}
if (countitem(25250) < 2) {
mes "[Contraband Processor]";
mes "I charge 2 Rock Ridge Coins for this service. Bring them to me.";
close;
}
delitem 25250,2;// Rock_Ridge_Coin
// anti-hack
if (callfunc("F_IsEquipIDHack", .@part, .@equip_id) || callfunc("F_IsEquipRefineHack", .@part, .@refine) || callfunc("F_IsEquipCardHack", .@part, .@tmp_card[0], .@tmp_card[1], .@tmp_card[2], .@tmp_card[3]))
close;
delequip .@part;
if (rand(100) < .@chance_of_breaking_on_reset) {
specialeffect2 EF_LORD;
mes "[Contraband Processor]";
mes "Ah, that didn't turn out well.";
mes "Well, just my luck.";
close;
}
specialeffect2 EF_REPAIRWEAPON;
getitem2 .@equip_id,1,1,.@refine,0,.@card[0],.@card[1],.@card[2],.@card[3];
mes "[Contraband Processor]";
mes "Done. Check it out.";
close;
}
har_in01,24,69,3 script Affable Lady#rockridge0 1_F_MERCHANT_02,{
if (checkweight(1301,3) == 0) {
mes "[Affable Lady]";
mes "You must be really strong to carry so much with you.";
next;
mes "[Affable Lady]";
mes "If you want to lighten your bag, there's a Kafra employee in the direction of the sheriff's office.";
close;
}
mes "[Affable Lady]";
mes "You're an adventurer. I like people like you who have passion.";
mes "So, are you here because of ^0000CDit^000000?";
next;
if (select( "Because of what?", "I am." ) == 1) {
mes "[Affable Lady]";
mes "Hmpf, don't act like you don't know. I'm talking about the special equipment you can buy in Rock Ridge.";
next;
mes "[Affable Lady]";
mes "The armor dealer brings in new stock every Friday, and it's sold almost as soon as it's in, every time.";
close;
}
mes "[Affable Lady]";
mes "*Chuckle* Which one do you want: one for your ^0000CDshoulders^000000, ^0000CDneck, or chest^000000?";
next;
switch( select( "Um, anything.", "For my shoulders", "For my neck or chest" ) ) {
case 1:
mes "[Affable Lady]";
mes "*Chuckle* Sure, young people always look good, no matter what they wear.";
mes "But if you want something special, go check the armor shop.";
close;
case 2:
mes "[Affable Lady]";
mes "Pick one you like, and I'll tell you about it.";
mes "All the equipment is ^0000CD3,000,000 Zeny^000000 regardless of its type.";
next;
.@cost = 3000000;
setarray .@item_id[0],20820,20821,20822;
setarray .@item_name$[0], "Elemental Cape", "Golden Scarf", "Mine Worker Backpack";
.@s = select( "Elemental Cape", "Golden Scarf", "Mine Worker Backpack", "I have no idea what you're talking about." ) - 1;
break;
case 3:
mes "[Affable Lady]";
mes "Pick one you like, and I'll tell you about it.";
mes "All the equipment is ^0000CD1,500,000 Zeny^000000 regardless of its type.";
next;
.@cost = 1500000;
setarray .@item_id[0],28441,28442;
setarray .@item_name$[0], "Vigilante Badge", "Hippie Feather";
.@s = select( "Vigilante Badge", "Hippie Feather", "I have no idea what you're talking about." ) - 1;
break;
}
if (.@item_id[.@s] == 0) {
mes "[Affable Lady]";
mes "Oops, I guess you're too innocent to hear what I just said.";
mes "You should forget it, for your own good.";
close;
}
mes "[Affable Lady]";
mes "Ah, you're interested in the";
mes "[" + mesitemlink( .@item_id[.@s], false, .@item_name$[.@s] ) + "].";
mes "Click the name for the detailed description.";
mes "As I told you, it's ^0000CD3,000,000 Zeny^000000. Do you want to buy it?";
next;
if (select( "Yes.", "No." ) == 2) {
mes "[Affable Lady]";
mes "Huh. So I wasted my breath on someone who doesn't want to buy.";
mes "Each and every piece of this equipment has a story to tell, and it might hold a grudge if you don't take it with you.";
next;
mes "[Affable Lady]";
mes "I suggest you don't tell anyone else about it,";
mes "and promise me you'll be back. I'll keep the equipment for you.";
close;
}
if (Zeny < .@cost) {
mes "[Affable Lady]";
mes "Uh-oh, you don't have enough money to buy this.";
mes "Why don't you come back later? I'll always be here.";
close;
}
mes "[Affable Lady]";
mes "Sure. Here's your " + .@item_name$[.@s] + ".";
Zeny = Zeny - .@cost;
getitem .@item_id[.@s],1;
next;
mes "[Affable Lady]";
mes "People often let their preconceived notions fool them. Most people don't think an old woman like me would sell such special items.";
mes "Come back if you want more equipment. I'll always be here. *Chuckle*";
close;
}
har_in01,34,81,5 script Howard#rr 4_M_TATIO,{
if (checkweight(1301,1) == 0) {
mes "[Howard]";
mes "Err, you're carrying a lot of things.";
mes "Why don't you go";
mes "lighten your bag first?";
close;
}
mes "[Howard]";
mes "Hello. How may I help you today?";
next;
if (countitem(25250) < 1) {
mes "[Howard]";
mes "Hm, you don't have the coins.";
mes "Why don't you collect them first?";
close;
}
mes "[Howard]";
mes "Ah, you have the coins.";
mes "Thank you for helping Rock Ridge.";
mes "Take a look around and see if there's something you want.";
next;
mes "[Howard]";
mes "What would you like to have?";
next;
setarray .@data$[0],
24, 15176, "Vigilante Suit", // <cost>, <item ID>, <item name>
24, 15177, "Elemental Robe",
24, 15178, "Golden Ninja Suit",
24, 15179, "Mine Worker Vest",
24, 15180, "Hippie Clothes",
150, 20834, "Drifter's Cape",
150, 22131, "Spurred Boots",
180, 16060, "Liquor Bottle",
300, 26107, "Elder Staff",
100, 31140, "Costume Black Cowboy Hat",
100, 31141, "Costume Cactus Flower Corsage";
.@size = getarraysize(.@data$);
for ( .@i = 0; .@i < .@size; .@i += 3 )
.@menu$ += .@data$[.@i+2] + ":";
.@s = ( select(.@menu$) - 1 ) * 3;
mes "[Howard]";
mes mesitemlink( atoi( .@data$[.@s+1] ), false, .@data$[.@s+2] ) + ", got it.";
mes "That'll be " + .@data$[.@s] + " Rock Ridge Coins.";
mes "Are you certain you want this item?";
next;
if (select( "Yes.", "No." ) == 2) {
mes "[Howard]";
mes "If you have made up your mind, then please talk to me again.";
close;
}
if (countitem(25250) < atoi(.@data$[.@s])) {
mes "[Howard]";
mes "You don't have enough coins.";
mes "Please bring more.";
close;
}
mes "[Howard]";
mes "There you go. Enjoy!";
delitem 25250, atoi(.@data$[.@s]);// Rock Ridge Coin
getitem atoi(.@data$[.@s+1]),1;
close;
}
- shop shotguns_rockridge -1,13154:-1,13155:-1,13192:-1,13193:-1,13194:-1
- shop revolvers_rockridge -1,13102:-1,13120:-1,13122:-1
- shop bullets_rockridge -1,13200:-1,13221:-1,13222:-1,13228:-1,13229:-1,13230:-1,13231:-1,13232:-1
har_in01,19,86,4 script Weapon Dealer#rockridge01 1_F_02,{
if (checkweight(1301,3) == 0) {
mes "[Weapon Dealer]";
mes "You're carrying too much to buy weapons.";
mes "Please go lighten your bag first.";
close;
}
mes "[Weapon Dealer]";
mes "I carry shotguns, revolvers, and bullets.";
mes "Tell me what kind of item you want, and I'll show you a list.";
next;
switch( select( "Shotguns", "Revolvers", "Bullets", "Sell items.", "Cancel." ) ) {
case 1:
mes "[Weapon Dealer]";
mes "You want to browse shotguns? I see.";
mes "Let me show you some good models.";
close2;
callshop "shotguns_rockridge", 1;
end;
case 2:
mes "[Weapon Dealer]";
mes "You want to browse revolvers? I see.";
mes "I've just brought in a few good models.";
close2;
callshop "revolvers_rockridge", 1;
end;
case 3:
mes "[Weapon Dealer]";
mes "You want bullets, I see.";
mes "All my bullets are of the finest quality.";
close2;
callshop "bullets_rockridge", 1;
end;
case 4:
mes "[Weapon Dealer]";
mes "Sure, if you have things I can sell.";
mes "Show me what you've got.";
close2;
callshop "bullets_rockridge", 2;
end;
case 5:
mes "[Weapon Dealer]";
mes "Come again.";
close;
}
}
- marketshop armor_rockridge_1 -1,2247:500000:10,2248:500000:10,5018:700000:10
- marketshop armor_rockridge_2 -1,5067:700000:10,5071:700000:10,5075:700000:10
- marketshop armor_rockridge_3 -1,2267:100000:10,2268:500000:10,2241:5000:10
- marketshop armor_rockridge_4 -1,5067:700000:10,5071:700000:10,5075:700000:10,31144:1500000:3
har_in01,16,86,4 script Armor Dealer#rockridge02 1_M_04,{
if (checkweight(1301,3) == 0) {
mes "[Armor Dealer]";
mes "You're carrying too much to buy anything.";
mes "Please go lighten your bag first.";
close;
}
.@day = gettime(DT_DAYOFWEEK);
if (.@day == SUNDAY) {
mes "[Armor Dealer]";
mes "I'm closed today.";
mes "Once a week, I close my shop and spend the day being thankful for what I have.";
next;
mes "[Armor Dealer]";
mes "...And it's the same day that no deliveries come.";
close;
}
if (.@day == MONDAY)
.@string$ = "Romantic Gents, Western Graces, and Feather Bonnet";
else if (.@day == TUESDAY)
.@string$ = "Sombreros, Indian Headbands, and Cowboy Hats";
else if (.@day == WEDNESDAY)
.@string$ = "Cigarettes, Pipes, and Grampa Beards";
else if (.@day == THURSDAY)
.@string$ = "Romantic Gents, Western Graces, and Feather Bonnet";
else if (.@day == FRIDAY)
.@string$ = "Sombreros, Indian Headbands, Cowboy Hats, and Indian Feather Headbands, the last of the rare costumes that are available in limited quantities every week,";
else
.@string$ = "Cigarettes, Pipes, and Grampa Beards";
mes "[Armor Dealer]";
mes "Hello. Welcome to the Rock Ridge Armor Shop.";
mes "Today," +.@string$ + "are in stock.";
next;
mes "[Armor Dealer]";
mes "Armor is bulkier than weapons, so I can only have a set number of products delivered every week.";
mes "I'll show you the list of available items. ^0000CDIf it's blank, then everything's sold out^000000.";
next;
mes "[Armor Dealer]";
mes "And for that same reason, I can't give ^0000CDspecial discounts^000000.";
mes "But ^0000CDall my products are hard to find elsewhere^000000. Why don't you take a look at them?";
close2;
if (.@day == MONDAY || .@day == THURSDAY)
callshop "armor_rockridge_1", 1;
else if (.@day == TUESDAY)
callshop "armor_rockridge_2", 1;
else if (.@day == WEDNESDAY || .@day == SATURDAY)
callshop "armor_rockridge_3", 1;
else if (.@day == FRIDAY)
callshop "armor_rockridge_4", 1;
end;
OnSun0000: // custom restock, no official info
npcshopupdate "armor_rockridge_1",2247,0,10;
npcshopupdate "armor_rockridge_1",2248,0,10;
npcshopupdate "armor_rockridge_1",5018,0,10;
npcshopupdate "armor_rockridge_2",5067,0,10;
npcshopupdate "armor_rockridge_2",5071,0,10;
npcshopupdate "armor_rockridge_2",5075,0,10;
npcshopupdate "armor_rockridge_3",2267,0,10;
npcshopupdate "armor_rockridge_3",2268,0,10;
npcshopupdate "armor_rockridge_3",2241,0,10;
npcshopupdate "armor_rockridge_4",5067,0,10;
npcshopupdate "armor_rockridge_4",5071,0,10;
npcshopupdate "armor_rockridge_4",5075,0,10;
npcshopupdate "armor_rockridge_4",31144,0,3;
end;
}
har_in01,34,84,3 shop Tool Dealer#rockridge00 1_F_03,611:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,610:-1