I figured I'd release this on here maybe for a little rep, It is almost perfect dicing and I tried to keep the code as neat as possible.
In player.java add these variables...
Code:
public boolean clanDice = false;
public long diceDelay;
public int diceID = 15084;
public int cDice = 0;
In client.java add to process()
Add these two voids.
Code:
public void FetchDice()
{
int rnd;
String Message = "";
if (cDice == 0 || (System.currentTimeMillis() - diceDelay <= 1000)) {
return;
}
switch (cDice) {
//Dice
case 15096: rnd = Misc.random(19)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a twenty-sided die."); break;
case 15094: rnd = Misc.random(11)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a twelve-sided die."); break;
case 15092: rnd = Misc.random(9)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a ten-sided die."); break;
case 15090: rnd = Misc.random(7)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on an eight-sided die."); break;
case 15100: rnd = Misc.random(3)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a four-sided die."); break;
case 15086: rnd = Misc.random(5)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a six-sided die."); break;
case 15088: rnd = Misc.random(11)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on two six-sided dice."); break;
case 15098: rnd = Misc.random(99)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on the percentile dice."); break;
}
sendMessage("You " + Message);
if (clanDice){
if (clanId >= 0) {
Server.clanChat.messageToClan("Clan Chat channel-mate <col=16711680>"+playerName+"</col> "+Message, clanId);
}
}
cDice = 0;
}
public void useDice(int itemId, boolean clan){
if (System.currentTimeMillis() - diceDelay >= 3000) {
sendMessage("Rolling...");
startAnimation(11900);
diceDelay = System.currentTimeMillis();
cDice = itemId;
clanDice = clan;
switch (itemId) {
//Gfx's
case 15086: gfx0(2072); break;
case 15088: gfx0(2074); break;
case 15090: gfx0(2071); break;
case 15092: gfx0(2070); break;
case 15094: gfx0(2073); break;
case 15096: gfx0(2068); break;
case 15098: gfx0(2075); break;
case 15100: gfx0(2069); break;
}
}
}
In clickitem.java
Code:
if (itemId > 15085 && itemId < 15102){
c.useDice(itemId, false);
}
if (itemId == 15084)
{//dice bag
c.diceID = itemId;
c.getDH().sendDialogues(106, 0);
}
In itemassistant.java
Under "public boolean wearItem(int wearID, int slot) {"
Code:
if (wearID > 15085 && wearID < 15102){
if (c.clanId >= 0){
c.useDice(wearID, true);
}else{
c.sendMessage("You must be in a clan chat channel to do that.");
}
return false;
}
In dialoguehandler.java
Under "switch (dialogue){"
Code:
case 106:
sendOption5("One 6-sided die", "Two 6-sided dice", "One 4-sided die", "One 8-sided die", "More...");
c.dialogueAction = 106;
c.teleAction = 0;
c.nextChat = 0;
break;
case 107:
sendOption5("One 10-sided die", "One 12-sided die", "One 20-sided die", "Two 10-sided dice for 1-100", "Back...");
c.dialogueAction = 107;
c.teleAction = 0;
c.nextChat = 0;
break;
In clickingbuttons.java
case 9190:
Code:
if (c.dialogueAction == 106) {
if(c.getItems().playerHasItem(c.diceID, 1)) {
c.getItems().deleteItem(c.diceID, c.getItems().getItemSlot(c.diceID), 1);
c.getItems().addItem(15086, 1);
c.sendMessage("You get a six-sided die out of the dice bag.");
}
c.getPA().closeAllWindows();
} else if (c.dialogueAction == 107) {
if(c.getItems().playerHasItem(c.diceID, 1)) {
c.getItems().deleteItem(c.diceID, c.getItems().getItemSlot(c.diceID), 1);
c.getItems().addItem(15092, 1);
c.sendMessage("You get a ten-sided die out of the dice bag.");
}
c.getPA().closeAllWindows();
}
case 9191:
Code:
if (c.dialogueAction == 106) {
if(c.getItems().playerHasItem(c.diceID, 1)) {
c.getItems().deleteItem(c.diceID, c.getItems().getItemSlot(c.diceID), 1);
c.getItems().addItem(15088, 1);
c.sendMessage("You get two six-sided dice out of the dice bag.");
}
c.getPA().closeAllWindows();
} else if (c.dialogueAction == 107) {
if(c.getItems().playerHasItem(c.diceID, 1)) {
c.getItems().deleteItem(c.diceID, c.getItems().getItemSlot(c.diceID), 1);
c.getItems().addItem(15094, 1);
c.sendMessage("You get a twelve-sided die out of the dice bag.");
}
c.getPA().closeAllWindows();
}
case 9192:
Code:
if (c.dialogueAction == 106) {
if(c.getItems().playerHasItem(c.diceID, 1)) {
c.getItems().deleteItem(c.diceID, c.getItems().getItemSlot(c.diceID), 1);
c.getItems().addItem(15100, 1);
c.sendMessage("You get a four-sided die out of the dice bag.");
}
c.getPA().closeAllWindows();
} else if (c.dialogueAction == 107) {
if(c.getItems().playerHasItem(c.diceID, 1)) {
c.getItems().deleteItem(c.diceID, c.getItems().getItemSlot(c.diceID), 1);
c.getItems().addItem(15096, 1);
c.sendMessage("You get a twenty-sided die out of the dice bag.");
}
c.getPA().closeAllWindows();
}
case 9193:
Code:
if (c.dialogueAction == 106) {
if(c.getItems().playerHasItem(c.diceID, 1)) {
c.getItems().deleteItem(c.diceID, c.getItems().getItemSlot(c.diceID), 1);
c.getItems().addItem(15090, 1);
c.sendMessage("You get an eight-sided die out of the dice bag.");
}
c.getPA().closeAllWindows();
} else if (c.dialogueAction == 107) {
if(c.getItems().playerHasItem(c.diceID, 1)) {
c.getItems().deleteItem(c.diceID, c.getItems().getItemSlot(c.diceID), 1);
c.getItems().addItem(15098, 1);
c.sendMessage("You get the percentile dice out of the dice bag.");
}
c.getPA().closeAllWindows();
}
case 9194:
Code:
if (c.dialogueAction == 106) {
c.getDH().sendDialogues(107, 0);
break;
} else if (c.dialogueAction == 107) {
c.getDH().sendDialogues(106, 0);
break;
}
Thanks to InsidiaX for pointing out what I forgot
Please say thanks if this helped you, it took me quite a while to perfect this.