- Jun 14, 2010
- 38
- 2
- 0
NPC's have just been added! Let me know how I did and what I can do better.
I do not give anyone permission to post this anywhere else.
You can either add the objects yourself or just let the event take place where they are all located at. The coords for that are (2007, 4430).
Changed format to Kickyamom's since you couldn't copy and paste before. Thanks Kickyamom!
Also, I added images. Congratulations, you have just added a Christmas Event to your server!
I do not give anyone permission to post this anywhere else.
You can either add the objects yourself or just let the event take place where they are all located at. The coords for that are (2007, 4430).
Spoiler for Tutorial:
ClickObject.java
ItemAssistant.java
UseItem.java
ItemOnObject.java
Object 43 is the water in the Fountain in Varrock Square. Object 879 are the fountains in Lumbridge Castle.
ClickItem.java
Actionhandler.java - FirstClickNpc
Client.java
DialougeHandler.java
PlayerSave.java
The Next Two are optional if you want to give your Marionette's emotes.
ItemClick2.java
ItemClick3.java
Code:
/**
**CHRISTMAS EVENT**
**/
case 10707:
c.sendMessage("You are now allowed to go upstairs in Santa's Workshop!");
break;
case 10687:
c.getItems().addItem(6875, 1);
break;
case 10691:
c.getItems().addItem(6871, 1);
break;
case 10695:
c.getItems().addItem(6879, 1);
break;
case 10686:
if (c.getItems().hasBlueTorso()) {
c.getItems().deleteItem(6875, c.getItems().getItemSlot(6875), 1);
c.getItems().addItem(6876, 1);
} else {
c.sendMessage("You need to get a Torso first!");
return;
}
break;
case 10690:
if (c.getItems().hasRedTorso()) {
c.getItems().deleteItem(6871, c.getItems().getItemSlot(6871), 1);
c.getItems().addItem(6872, 1);
} else {
c.sendMessage("You need to get a Torso first!");
return;
}
break;
case 10694:
if (c.getItems().hasGreenTorso()) {
c.getItems().deleteItem(6879, c.getItems().getItemSlot(6879), 1);
c.getItems().addItem(6880, 1);
} else {
c.sendMessage("You need to get a Torso first!");
return;
}
break;
case 10688:
if (c.getItems().hasBlueHead()) {
c.getItems().deleteItem(6876, c.getItems().getItemSlot(6876), 1);
c.getItems().addItem(6877, 1);
} else {
c.sendMessage("You need to add a Head first!");
return;
}
break;
case 10692:
if (c.getItems().hasRedHead()) {
c.getItems().deleteItem(6872, c.getItems().getItemSlot(6872), 1);
c.getItems().addItem(6873, 1);
} else {
c.sendMessage("You need to add a Head first!");
return;
}
break;
case 10696:
if (c.getItems().hasGreenHead()) {
c.getItems().deleteItem(6880, c.getItems().getItemSlot(6880), 1);
c.getItems().addItem(6881, 1);
} else {
c.sendMessage("You need to add a Head first!");
return;
}
break;
case 10689:
if (c.getItems().hasBlueArms()) {
c.getItems().deleteItem(6877, c.getItems().getItemSlot(6877), 1);
c.getItems().addItem(6878, 1);
} else {
c.sendMessage("You need to add Arms first!");
return;
}
break;
case 10693:
if (c.getItems().hasRedArms()) {
c.getItems().deleteItem(6873, c.getItems().getItemSlot(6873), 1);
c.getItems().addItem(6874, 1);
} else {
c.sendMessage("You need to add Arms first!");
return;
}
break;
case 10697:
if (c.getItems().hasGreenArms()) {
c.getItems().deleteItem(6881, c.getItems().getItemSlot(6881), 1);
c.getItems().addItem(6882, 1);
} else {
c.sendMessage("You need to add Arms first!");
return;
}
break;
/**
**END OF EVENT**
**/
ItemAssistant.java
Code:
/**
*Christmas Event
**/
public boolean hasAllMario() {
return playerHasItem(6865,1) && playerHasItem(6867,1) && playerHasItem(6866,1);
}
public boolean hasAllMari() {
return playerHasItem(6868,1) && playerHasItem(6870,1) && playerHasItem(6869,1);
}
public boolean hasPlank() {
return playerHasItem(8794,1) && playerHasItem(1511,1);
}
public void makePlank() {
deleteItem(1511,1);
addItem(960,1);
c.sendMessage("You make an Plank.");
}
public boolean hasHandles() {
return playerHasItem(946,1) && playerHasItem(960,1);
}
public void makeHandles() {
deleteItem(960,1);
addItem(6864,1);
c.sendMessage("You make some Marionette Handles.");
}
public boolean hasBlueMari() {
return playerHasItem(6864,1) && playerHasItem(6878,1);
}
public void makeBlueMari() {
deleteItem(6864,1);
deleteItem(6878,1);
addItem(6868,1);
c.sendMessage("You make a Blue Marionette.");
}
public boolean hasRedMari() {
return playerHasItem(6864,1) && playerHasItem(6874,1);
}
public void makeRedMari() {
deleteItem(6864,1);
deleteItem(6874,1);
addItem(6870,1);
c.sendMessage("You make a Red Marionette.");
}
public boolean hasGreenMari() {
return playerHasItem(6864,1) && playerHasItem(6882,1);
}
public void makeGreenMari() {
deleteItem(6864,1);
deleteItem(6882,1);
addItem(6869,1);
c.sendMessage("You make a Green Marionette.");
}
public boolean hasBlueTorso() {
return playerHasItem(6875,1);
}
public boolean hasRedTorso() {
return playerHasItem(6871,1);
}
public boolean hasGreenTorso() {
return playerHasItem(6879,1);
}
public boolean hasBlueHead() {
return playerHasItem(6876,1);
}
public boolean hasRedHead() {
return playerHasItem(6872,1);
}
public boolean hasGreenHead() {
return playerHasItem(6880,1);
}
public boolean hasBlueArms() {
return playerHasItem(6877,1);
}
public boolean hasRedArms() {
return playerHasItem(6873,1);
}
public boolean hasGreenArms() {
return playerHasItem(6881,1);
}
/**
*End of Event
**/
UseItem.java
Code:
/*
*Christmas Event
**/
if (itemUsed == 8794 && useWith == 1511 || itemUsed == 1511 && useWith == 8794) {
if (c.getItems().hasPlank()) {
c.getItems().makePlank();
}
}
if (itemUsed == 946 && useWith == 960 || itemUsed == 960 && useWith == 946) {
if (c.getItems().hasHandles()) {
c.getItems().makeHandles();
}
}
if (itemUsed == 6864 && useWith == 6878 || itemUsed == 6878 && useWith == 6864) {
if (c.getItems().hasBlueMari()) {
c.getItems().makeBlueMari();
}
}
if (itemUsed == 6864 && useWith == 6874 || itemUsed == 6874 && useWith == 6864) {
if (c.getItems().hasRedMari()) {
c.getItems().makeRedMari();
}
}
if (itemUsed == 6864 && useWith == 6882 || itemUsed == 6882 && useWith == 6864) {
if (c.getItems().hasGreenMari()) {
c.getItems().makeGreenMari();
}
}
/*
*End of Event
**/
ItemOnObject.java
Object 43 is the water in the Fountain in Varrock Square. Object 879 are the fountains in Lumbridge Castle.
Code:
/**
*Christmas Event
**/
if (itemId == 6868 && objectId == 43) { // Blue Marionette
c.sendMessage("You dip the Blue Marionette in the water.");
c.sendMessage("You can now control the Blue Marionette!");
c.getItems().deleteItem(6868, c.getItems().getItemSlot(6868), 1);
c.getItems().addItem(6865,1);
}
if (itemId == 6870 && objectId == 879) { // Red Marionette
c.sendMessage("You dip the Red Marionette in the water.");
c.sendMessage("You can now control the Red Marionette!");
c.getItems().deleteItem(6870, c.getItems().getItemSlot(6870), 1);
c.getItems().addItem(6867,1);
}
if (itemId == 6869 && objectId == 879) { // Green Marionette
c.sendMessage("You dip the Green Marionette in the water.");
c.sendMessage("You can now control the Green Marionette!");
c.getItems().deleteItem(6869, c.getItems().getItemSlot(6869), 1);
c.getItems().addItem(6866,1);
}
/**
*End of Event
**/
ClickItem.java
Code:
/**
*Christmas Event
**/
if(itemId == 6542) {
c.givereward();
}
if(itemId == 6865) {
c.startAnimation(3003);
c.gfx0(511);
c.givereward();
}
if(itemId == 6867) {
c.startAnimation(3003);
c.gfx0(507);
c.givereward();
}
if(itemId == 6866) {
c.startAnimation(3003);
c.gfx0(515);
c.givereward();
}
/**
*End of Event
**/
Actionhandler.java - FirstClickNpc
Code:
/**
*Christmas Event
**/
case 1552:
if (c.xMas == 0) {
c.getDH().sendDialogues(54, npcType);
} else if (c.xMas == 1) {
c.getDH().sendDialogues(52, npcType);
} else if (c.xMas == 2 && c.getItems().hasAllMario()) {
c.getDH().sendDialogues(55, npcType);
} else if (c.xMas == 3) {
c.getDH().sendDialogues(58, npcType);
}
break;
case 3118:
if (c.pete == 0) {
c.getDH().sendDialogues(60, npcType);
} else if (c.pete == 1) {
c.getDH().sendDialogues(61, npcType);
} else if (c.pete == 2 && c.getItems().hasAllMari()) {
c.getDH().sendDialogues(63, npcType);
} else if (c.pete == 3) {
c.getDH().sendDialogues(65, npcType);
}
break;
/**
*End of Event
**/
Client.java
Code:
/**
*Christmas Event
**/
public void givereward() {
if (getItems().playerHasItem(6542)) {
getItems().deleteItem(6542, 1);
getItems().addItem(randomlottery(), 1);
} else {
sendMessage("You need 2 free slots.");
}
}
public static int randomlottery[] = {1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 962};
public static int randomlottery() {
return randomlottery[(int) (Math.random() * randomlottery.length)];
}
public int xMas;
public int pete;
public int blue;
public int red;
public int green;
/**
*End of Event
**/
DialougeHandler.java
Code:
/**
*Christmas Event
**/
case 54:
sendNpcChat2("Hi.", "I need some help.", c.talkingNpc, "Santa");
c.nextChat = 51;
break;
case 51:
sendNpcChat2("Cody has stolen all my Christmas Presents!", "Please make me one of each colored Marionette.", c.talkingNpc, "Santa");
c.nextChat = 0;
c.xMas = 1;
c.pete = 1;
break;
case 52:
sendNpcChat2("I am busy.", "If you need help talk to Pete.", c.talkingNpc, "Santa");
c.nextChat = 0;
break;
case 55:
sendNpcChat2("Why thank you! You're too late though...", "Uffinz already gave me some!", c.talkingNpc, "Santa");
c.nextChat = 56;
break;
case 56:
sendNpcChat2("I suppose I can't let your work go to waste...", "Here! Have a present!", c.talkingNpc, "Santa");
c.nextChat = 57;
c.getItems().addItem(6542, 1);
break;
case 57:
sendNpcChat2("HoHoHo!.", "Have a Merry Christmas!", c.talkingNpc, "Santa");
c.nextChat = 0;
c.xMas = 3;
c.pete = 3;
break;
case 58:
sendNpcChat3("Having a fun time on Annihilation-X?", "Remember, Christmas only comes once a year!", "HoHoHo!", c.talkingNpc, "Santa");
c.nextChat = 0;
break;
case 60:
sendNpcChat2("Talk to Santa.", "He needs help.", c.talkingNpc, "Prison Pete");
c.nextChat = 0;
break;
case 61:
sendNpcChat2("Make the Marionettes.", "You may need this item, a knife, and three logs.", c.talkingNpc, "Prison Pete");
c.nextChat = 62;
c.getItems().addItem(8794, 1);
break;
case 62:
sendNpcChat2("Talk to me again once", "you've made the Marionettes.", c.talkingNpc, "Prison Pete");
c.nextChat = 0;
c.pete = 2;
break;
case 63:
sendNpcChat2("Now you need to dip the Marionettes into water.", "They all need to be dipped into certain ones.", c.talkingNpc, "Prison Pete");
c.nextChat = 64;
break;
case 64:
sendNpcChat2("Blue needs to be dipped somewhere in Varrock.", "Red and Green in a town near a swamp. Good Luck!", c.talkingNpc, "Prison Pete");
c.nextChat = 0;
c.xMas = 2;
break;
case 65:
sendNpcChat2("I'm working off my crimes by helping Santa!", "It's actually pretty fun!", c.talkingNpc, "Prison Pete");
c.nextChat = 0;
break;
/**
*End of Event
**/
PlayerSave.java
Code:
} else if (token.equals("xMas")) {
p.xMas = Integer.parseInt(token2);
} else if (token.equals("pete")) {
p.pete = Integer.parseInt(token2);
} else if (token.equals("blue")) {
p.blue = Integer.parseInt(token2);
} else if (token.equals("red")) {
p.red = Integer.parseInt(token2);
} else if (token.equals("green")) {
p.green = Integer.parseInt(token2);
Code:
characterfile.write("xMas = ", 0, 7);
characterfile.write(Integer.toString(p.xMas), 0, Integer.toString(p.xMas).length());
characterfile.newLine();
characterfile.write("pete = ", 0, 7);
characterfile.write(Integer.toString(p.pete), 0, Integer.toString(p.pete).length());
characterfile.newLine();
characterfile.write("blue = ", 0, 7);
characterfile.write(Integer.toString(p.blue), 0, Integer.toString(p.blue).length());
characterfile.newLine();
characterfile.write("red = ", 0, 6);
characterfile.write(Integer.toString(p.red), 0, Integer.toString(p.red).length());
characterfile.newLine();
characterfile.write("green = ", 0, 8);
characterfile.write(Integer.toString(p.green), 0, Integer.toString(p.green).length());
characterfile.newLine();
The Next Two are optional if you want to give your Marionette's emotes.
ItemClick2.java
Code:
/**
*Christmas Event
**/
case 6865:
c.startAnimation(3005);
c.gfx0(513);
c.sendMessage("You make your Marionette bow.");
break;
case 6867:
c.startAnimation(3005);
c.gfx0(509);
c.sendMessage("You make your Marionette bow.");
break;
case 6866:
c.startAnimation(3005);
c.gfx0(517);
c.sendMessage("You make your Marionette bow.");
break;
/**
*End of Event
**/
ItemClick3.java
Code:
/**
*Christmas Event
**/
case 6865:
c.startAnimation(3006);
c.gfx0(514);
c.sendMessage("You make your Marionette dance.");
break;
case 6867:
c.startAnimation(3006);
c.gfx0(510);
c.sendMessage("You make your Marionette dance.");
break;
case 6866:
c.startAnimation(3006);
c.gfx0(518);
c.sendMessage("You make your Marionette dance.");
break;
/**
*End of Event
**/
Changed format to Kickyamom's since you couldn't copy and paste before. Thanks Kickyamom!
Also, I added images. Congratulations, you have just added a Christmas Event to your server!
Spoiler for IMAGES:


