I spent quite some time on the Varrock region till i became sick of seeing and hearing the same environment and the drunken fellas in the Blue Moon Inn. Not forget to mention the emote searching... Since its been here idle for more then months since i started it, I'd rather just contribute it to the community. Here's what we got:
What you'r adding:
The concept was to mimic authentic RS content, with enriched ideas for more entertainment.
Spoiler for Features:
*Most features have all correct animations and progression text in the chat-box.
-Most crates, bookshelf's, drawers, desks, tea stall and stairs are functional. Some give items on timer or random.util.
-Contains 10+ intermediate/advanced transcript NPC dialogues
-Skill dialogues for object interactions.
*80% complete varrock museum D&D*
-NPC dialogues
-Ability to pick, clean, and brush specimens. [random loot]
-Contribute to dhamaroc statue (global configs)
-Museum map reads, dialogue displaying floor plane, display clases and or/activities.
-Tools on wall was added (player will be dialogued to return tools after exiting)
-Kudos interface was added when in or around the museum.
-Can discover artifacts and update museum's display cases.
-Ancient effigies and museum antique lamps can be discovered
-[random loot] can be exchanged @storage crates
-Ground and 1st Floor of museum's display cases contain all information about Runescape's official history in interface
-Re-obtained artifacts can be exchanged for rare loot
I had alot more in idea but the progression stopped.
/TODO
+Basement section
+Top Floor (2) section
+Museum Quiz
+Plaque read and animal history
+Rotten tomato crate
+Waterfill skill dialogue
+Varrock outer-skirts (berries, champions guild, cookin guild, etc)
Let's implant
1) Download all files fromPlace the map under game/content/Spoiler for Link:https://mega.nz/#!rIpwhIKI!WyGCrJH0JAXLdv5d-OACqP6q3MLx3WI5BU7Rr-LXPIc
2) Files edit
Player.java
Spoiler for In player.java::
public boolean setstatue1;
public boolean setstatue2;
public boolean setstatue3;
public boolean setstatue4;
public boolean setstatue5;
public boolean setstatue6;
public boolean setstatue7;
public boolean setstatue8;
public boolean setstatue9;
public boolean setstatue10;
public boolean setstatue11;
public boolean setstatue12;
public boolean setstatue13;
public boolean setstatue14;
public boolean setstatue15;
public boolean talkedPottery;
public boolean talkedOldCoin;
public boolean talkedAncientCoin;
public boolean talkedAncientSymbol;
public boolean talkedOldSymbol;
public boolean FinishedPottery;
public boolean FinishedAncientCoin;
public boolean FinishedAncientSymbol;
public boolean FinishedOldCoin;
public boolean FinishedOldSymbol;
public boolean ContributedtoStatue;
public boolean CanReceive;
public int StatueBag;
int Kudos;
public int setKudosPoints;
public int getStatueBag() {
return StatueBag;
}
public void setStatueBag(int StatueBag) {
this.StatueBag = StatueBag;
}
public int getKudos() {
return Kudos;
}
public int getKudosPoints() {
return Kudos;
}
public void setKudosPoints(int Kudos) {
this.Kudos = Kudos;
}
public void refreshKudos() {
getPackets().sendIComponentText(532, 1, "" + getKudos());
@Override
public void checkMuseumArea() {
if (!started)
return;
boolean isAtMuseumArea = isForceMuseumArea() ? true : World.isMuseumArea(this);
if (isAtMuseumArea && !isAtMuseumArea()) {
setAtMuseumArea(isAtMuseumArea);
getInterfaceManager().sendTab(getInterfaceManager( ).hasRezizableScreen() ? 11 : 0, 532);
getPackets().sendGameMessage("<img=7>You've entered Varrock's museum...");
} else if (!isAtMuseumArea && isAtMuseumArea()) {
setAtMuseumArea(isAtMuseumArea);
getInterfaceManager().closeMuseumInterface();
}
}
}
1) search for: init();
Spoiler for Player.java / Under init();:
World.checkStatue(this);
if (FinishedPottery == true) {
getPackets().sendConfigByFile(3649, 1);
}
if (FinishedAncientCoin == true) {
getPackets().sendConfigByFile(3647, 1);
}
if (FinishedAncientSymbol == true) {
getPackets().sendConfigByFile(3645, 1);
}
if (FinishedOldCoin == true) {
getPackets().sendConfigByFile(3648, 1);
}
if (FinishedOldSymbol == true) {
getPackets().sendConfigByFile(3646, 1);
}
Entity.java
Spoiler for Entity.java;:
public transient boolean MuseumArea;
public transient boolean forceMuseumArea;
public static boolean MuseumArea(WorldTile tile) {
return (tile.getX() >= 3249 && tile.getY() >= 3441 && tile.getX() <= 3268 && tile.getY() <= 3456);
}
public void checkMuseumArea() {
MuseumArea = forceMuseumArea ? true : World.isMuseumArea(this);
}
public boolean isAtMuseumArea() {
return MuseumArea;
}
public void setAtMuseumArea(boolean MuseumArea) {
this.MuseumArea = MuseumArea;
}
public boolean isForceMuseumArea() {
return forceMuseumArea;
}
public void setForceMuseumArea(boolean forceMuseumArea) {
this.forceMuseumArea = forceMuseumArea;
checkMuseumArea();
}
World.java
Spoiler for world.java:public static void checkStatue(Player player) {
if (player.setstatue1 == true) {
player.getPackets().sendConfigByFile(7203, 1);
WorldObject stage1 = new WorldObject(48628, 10, 0, 3254, 3445, 0);
// stage1.setId(48628);
World.spawnObject(stage1, true);
}
if (player.setstatue2 == true) {
player.getPackets().sendConfigByFile(7203, 2);
WorldObject stage2 = new WorldObject(48629, 10, 0, 3254, 3445, 0);
World.spawnObject(stage2, true);
}
if (player.setstatue3 == true) {
player.getPackets().sendConfigByFile(7203, 3);
WorldObject stage3 = new WorldObject(48630, 10, 0, 3254, 3445, 0);
stage3.setId(48630);
World.spawnObject(stage3, true);
}
if (player.setstatue4 == true) {
player.getPackets().sendConfigByFile(7203, 4);
WorldObject stage4 = new WorldObject(48631, 10, 0, 3254, 3445, 0);
World.spawnObject(stage4, true);
}
if (player.setstatue5 == true) {
player.getPackets().sendConfigByFile(7203, 5);
WorldObject stage5 = new WorldObject(48632, 10, 0, 3254, 3445, 0);
World.spawnObject(stage5, true);
}
if (player.setstatue6 == true) {
player.getPackets().sendConfigByFile(7203, 6);
WorldObject stage6 = new WorldObject(48633, 10, 0, 3254, 3445, 0);
World.spawnObject(stage6, true);
}
if (player.setstatue7 == true) {
player.getPackets().sendConfigByFile(7203, 7);
WorldObject stage7 = new WorldObject(48634, 10, 0, 3254, 3445, 0);
World.spawnObject(stage7, true);
}
if (player.setstatue8 == true) {
player.getPackets().sendConfigByFile(7203, 8);
WorldObject stage8 = new WorldObject(48635, 10, 0, 3254, 3445, 0);
World.spawnObject(stage8, true);
}
if (player.setstatue9 == true) {
player.getPackets().sendConfigByFile(7203, 9);
WorldObject stage9 = new WorldObject(48636, 10, 0, 3254, 3445, 0);
World.spawnObject(stage9, true);
}
if (player.setstatue10 == true) {
player.getPackets().sendConfigByFile(7203, 10);
WorldObject stage10 = new WorldObject(48637, 10, 0, 3254, 3445, 0);
World.spawnObject(stage10, true);
}
if (player.setstatue11 == true) {
player.getPackets().sendConfigByFile(7203, 11);
WorldObject stage11 = new WorldObject(48638, 10, 0, 3254, 3445, 0);
World.spawnObject(stage11, true);
}
if (player.setstatue12 == true) {
player.getPackets().sendConfigByFile(7203, 12);
WorldObject stage12 = new WorldObject(48639, 10, 0, 3254, 3445, 0);
World.spawnObject(stage12, true);
}
if (player.setstatue13 == true) {
player.getPackets().sendConfigByFile(7203, 13);
WorldObject stage13 = new WorldObject(48640, 10, 0, 3254, 3445, 0);
World.spawnObject(stage13, true);
}
if (player.setstatue14 == true) {
player.getPackets().sendConfigByFile(7203, 14);
WorldObject stage14 = new WorldObject(48641, 10, 0, 3254, 3445, 0);
World.spawnObject(stage14, true);
}
if (player.setstatue15 == true) {
player.getPackets().sendConfigByFile(7203, 15);
WorldObject stage15 = new WorldObject(48642, 10, 0, 3254, 3445, 0);
World.spawnObject(stage15, true);
}
}
1) search for entity.checkMultiArea();
Spoiler for add underneath:
entity.checkMuseumArea();
2) search for checkControlersAtMove();
Spoiler for add underneath:
else if (World.isMuseumArea(player))
player.getControlerManager().startControler("Varro ckMuseum");
3) search for checkInstancesAtMove ();
Spoiler for add underneath:
if (VarrockMuseum.inArea(player))
control = "VarrockMuseum";
player.getControlerManager().startControler(contro l);
InterfaceManager.java
Spoiler for interfacemanager.java:public void sendMuseumInterface() {
player.getPackets().sendConfig(1010, player.getKudos());
sendTab(resizableScreen ? 11 : 0, 532);
player.refreshKudos();
}
public void closeMuseumInterface() {
player.refreshKudos();
player.getPackets().closeInterface(resizableScreen ? 11 : 0);
}
DialogueHandler.java
Spoiler for dialogues:
handledDialogues.put("Apothecary",(Class<Dialogue> ) Class.forName(Apothecary.class.getCanonicalName()) );
handledDialogues.put("BankDirector",(Class<Dialogu e>) Class.forName(BankDirector.class.getCanonicalName( )));
handledDialogues.put("AuburysDialogue",(Class<Dial ogue>) Class.forName(AuburysDialogue.class.getCanonicalNa me()));
handledDialogues.put("LowesDialogue",(Class<Dialog ue>) Class.forName(LowesDialogue.class.getCanonicalName ()));
handledDialogues.put("MarketGuard",(Class<Dialogue >) Class.forName(MarketGuard.class.getCanonicalName() ));
handledDialogues.put("Abyss", (Class<Dialogue>) Class.forName(Abyss.class.getCanonicalName()));
handledDialogues.put("Man", (Class<Dialogue>) Class.forName(Man.class.getCanonicalName()));
handledDialogues.put("Benny",(Class<Dialogue>) Class.forName(Benny.class.getCanonicalName()));
handledDialogues.put("BarnabusHurma",(Class<Dialog ue>) Class.forName(BarnabusHurma.class.getCanonicalName ()));
handledDialogues.put("BlueMoonBarbarian",(Class<Di alogue>) Class.forName(BlueMoonBarbarian.class.getCanonical Name()));
handledDialogues.put("BlueMoonWoman",(Class<Dialog ue>) Class.forName(BlueMoonWoman.class.getCanonicalName ()));
handledDialogues.put("BlueMoonBartender",(Class<Di alogue>) Class.forName(BlueMoonBartender.class.getCanonical Name()));
handledDialogues.put("BlueMoonCook",(Class<Dialogu e>) Class.forName(BlueMoonCook.class.getCanonicalName( )));
handledDialogues.put("Chancey",(Class<Dialogue>) Class.forName(Chancey.class.getCanonicalName()));
handledDialogues.put("CharlieTheTramp",(Class<Dial ogue>) Class.forName(CharlieTheTramp.class.getCanonicalNa me()));
handledDialogues.put("Clive",(Class<Dialogue>) Class.forName(Clive.class.getCanonicalName()));
handledDialogues.put("CuratorHaigHalen",(Class<Dia logue>) Class.forName(CuratorHaigHalen.class.getCanonicalN ame()));
handledDialogues.put("DaVinci",(Class<Dialogue>) Class.forName(DaVinci.class.getCanonicalName()));
handledDialogues.put("FatherLawrence",(Class<Dialo gue>) Class.forName(FatherLawrence.class.getCanonicalNam e()));
handledDialogues.put("GardenerDialogue",(Class<Dia logue>) Class.forName(GardenerDialogue.class.getCanonicalN ame()));
handledDialogues.put("GrandExchangeTutor", (Class<Dialogue>) Class.forName(GrandExchangeTutor.class.getCanonica lName()));
handledDialogues.put("Guard",(Class<Dialogue>) Class.forName(Guard.class.getCanonicalName()));
handledDialogues.put("GuidorsWife",(Class<Dialogue >) Class.forName(GuidorsWife.class.getCanonicalName() ));
handledDialogues.put("GipsyAris",(Class<Dialogue>) Class.forName(GypsyAris.class.getCanonicalName())) ;
handledDialogues.put("Hops",(Class<Dialogue>) Class.forName(Hops.class.getCanonicalName()));
handledDialogues.put("Horvik",(Class<Dialogue>) Class.forName(Horvik.class.getCanonicalName()));
handledDialogues.put("Iffie",(Class<Dialogue>) Class.forName(Iffie.class.getCanonicalName()));
handledDialogues.put("KingRoald",(Class<Dialogue>) Class.forName(KingRoald.class.getCanonicalName())) ;
handledDialogues.put("Lowe",(Class<Dialogue>) Class.forName(Lowe.class.getCanonicalName()));
handledDialogues.put("MarketGuard",(Class<Dialogue >) Class.forName(MarketGuard.class.getCanonicalName() ));
handledDialogues.put("MuseumClerk",(Class<Dialogue >) Class.forName(MuseumClerk.class.getCanonicalName() ));
handledDialogues.put("MuseumGuardIndoor", (Class<Dialogue>) Class.forName(MuseumGuardIndoor.class.getCanonical Name()));
handledDialogues.put("MuseumGuardQuickPass",(Class <Dialogue>) Class.forName(MuseumGuardQuickPass.class.getCanoni calName()));
handledDialogues.put("MuseumGuardBackDoor",(Class< Dialogue>) Class.forName(MuseumGuardBackDoor.class.getCanonic alName()));
handledDialogues.put("MuseumGuardDiscovery",(Class <Dialogue>) Class.forName(MuseumGuardDisovery.class.getCanonic alName()));
handledDialogues.put("MuseumItemDiscovery", (Class<Dialogue>) Class.forName(MuseumItemDiscovery.class.getCanonic alName()));
handledDialogues.put("MuseumAntiqueLamp", (Class<Dialogue>) Class.forName(MuseumAntiqueLamp.class.getCanonical Name()));
handledDialogues.put("MuseumArtefact", (Class<Dialogue>) Class.forName(MuseumArtefact.class.getCanonicalNam e()));
handledDialogues.put("MariusGiste", (Class<Dialogue>) Class.forName(MariusGiste.class.getCanonicalName() ));
handledDialogues.put("PotteryFurnaceD", (Class<Dialogue>) Class.forName(PotteryFurnaceD.class.getCanonicalNa me()));
handledDialogues.put("PotteryWheelD", (Class<Dialogue>) Class.forName(PotteryWheelD.class.getCanonicalName ()));
handledDialogues.put("Sani", (Class<Dialogue>) Class.forName(Sani.class.getCanonicalName()));
handledDialogues.put("Schoolboy",(Class<Dialogue>) Class.forName(Schoolboy.class.getCanonicalName())) ;
handledDialogues.put("SchoolGirl",(Class<Dialogue> ) Class.forName(SchoolGirl.class.getCanonicalName()) );
handledDialogues.put("ShilopsDialogue",(Class<Dial ogue>) Class.forName(ShilopsDialogue.class.getCanonicalNa me()));
handledDialogues.put("SwordShopKeeper",(Class<Dial ogue>) Class.forName(SwordShopKeeper.class.getCanonicalNa me()));
handledDialogues.put("JollyMoonBartender",(Class<D ialogue>) Class.forName(JollyMoonBartender.class.getCanonica lName()));
handledDialogues.put("TeachernPupil",(Class<Dialog ue>) Class.forName(TeacherAndPupil.class.getCanonicalNa me()));
handledDialogues.put("Thessalia",(Class<Dialogue>) Class.forName(Thessalia.class.getCanonicalName())) ;
handledDialogues.put("BaraekDialogue",(Class<Dialo gue>) Class.forName(Baraek.class.getCanonicalName()));
handledDialogues.put("DrHarlowsDialogue",(Class<Di alogue>) Class.forName(DrHarlow.class.getCanonicalName()));
handledDialogues.put("CuratorHaigHalen",(Class<Dia logue>) Class.forName(CuratorHaigHalen.class.getCanonicalN ame()));
handledDialogues.put("ShilopsDialogue",(Class<Dial ogue>) Class.forName(ShilopsDialogue.class.getCanonicalNa me()));
handledDialogues.put("WiloughsDialogue",(Class<Dia logue>) Class.forName(WiloughsDialogue.class.getCanonicalN ame()));
handledDialogues.put("SanisDialogue",(Class<Dialog ue>) Class.forName(Sani.class.getCanonicalName()));
handledDialogues.put("AlchemistsDesk", (Class<Dialogue>) Class.forName(AlchemistsDesk.class.getCanonicalNam e()));
handledDialogues.put("TinseTorpe", (Class<Dialogue>) Class.forName(TinseTorpe.class.getCanonicalName()) );
handledDialogues.put("SincoDoar", (Class<Dialogue>) Class.forName(SincoDoar.class.getCanonicalName())) ;
handledDialogues.put("GatePass", (Class<Dialogue>) Class.forName(GatePass.class.getCanonicalName()));
ObjectHandler.java
Spoiler for objectclick1:
if (Varrock.isObject(object))
Varrock.HandleObject(player, object);
if (VarrockMuseum.isObject(object))
VarrockMuseum.HandleObject(player, object);
Spoiler for itemonobject:
if (VarrockMuseum.isObject(object) && player.withinDistance(object, 1)) {
VarrockMuseum.handleItemOnObject(player, object, item);
}
ControlerHandler.java
Spoiler for controlerhandler:handledControlers.put("VarrockMuseum", (Class<Controler>) Class.forName(VarrockMuseum.class.getCanonicalName ()));
Changes you might wanna do:
Spoiler for possible changes:
You can expand this area even more. Though this becomes more "custom" and varies to every other server owner.
Things you might wanna change:
> exchanging finds from specimens in loot crates from the varrock museum (current set to: bones, 1-3gp, low-lvl bolts(1-5), useless junk.
> exchanging artefacts for more rarer loot:
(medium based: / *5-25 noted items, black dhide, magic logs, rune bars, adamant bars, runite ores, runes, etc.
One can change this to whatever loot he wishes economy based.
+ Make interfaces for help and assistances or rules in servers from obtained books in bookshelfs
+ latest server related news in the newspapers.
+ give a 24h player boost to everyone contributed to the dahmaroc statue when complete. (after it demolishes again).
If you need help implanting, let me know.
Enjoy!
