Yes can be done a lot better, and will this snippet shall be updated when I get round to finishing a better version off, my reason of posting this snippet is that it seems to me that people are not using the base due to a few reasons, this being one of them. Anyway...
Client class
Code:
public int TalkingNpcId = -1, nextDialogueId = 0;
Code:
private DialogueHandler dialogueHandler = new DialogueHandler(this);
public DialogueHandler getDialogueHandler() {
return dialogueHandler;
}
DialogueAction class
Code:
if(client.nextDialogueId > 0)
client.getDialogueHandler().sendDialogues(client.nextDialogueId, client.clickedNPCID);
else
client.getDialogueHandler().sendDialogues(0, -1);
Create new class named DialogueHandler
Code:
package com.rs2.model.npc;
import com.rs2.model.player.Client;
public class DialogueHandler {
private Client client;
public DialogueHandler(Client client) {
this.client = client;
}
public void sendDialogues(int dialogue, int NpcId) {
NpcId = client.TalkingNpcId;
switch (dialogue) {
case 1:
client.getActionSender().sendNpcDialogue("Hello my name is Ghost.", "I have some business to be doing...", "Ghost", NpcId);
client.nextDialogueId = 2;
break;
case 2:
client.getActionSender().sendNpcDialogue("Bye", "[cough]Noob.[/cough]", "Ghost", NpcId);
client.nextDialogueId = 0;
break;
}
}
}
ActionSender class
Code:
/**
* Npc's Dialogue.
*/
public void sendNpcDialogue(String message, String NpcName, int NpcId) {
sendFrame200(4888, 591);
sendQuest(NpcName, 4889);
sendQuest(message, 4890);
sendFrame75(NpcId, 4888);
sendFrame164(4887);
}
public void sendNpcDialogue(String message, String message1, String name, int NpcId) {
sendFrame200(4888, 591);
sendQuest(name, 4889);
sendQuest(message, 4890);
sendQuest(message1, 4891);
sendFrame75(NpcId, 4888);
sendFrame164(4887);
}
public void sendNpcDialogue(String message, String message1, String message2, String name, int NpcId) {
sendFrame200(4894, 591);
sendQuest(name, 4895);
sendQuest(message, 4896);
sendQuest(message1, 4897);
sendQuest(message2, 4898);
sendFrame75(NpcId, 4894);
sendFrame164(4893);
}
public void sendNpcDialogue(String message, String message1, String message2, String message3, String name, int NpcId) {
sendFrame200(4901, 591);
sendQuest(name, 4902);
sendQuest(message, 4903);
sendQuest(message1, 4904);
sendQuest(message2, 4905);
sendQuest(message3, 4906);
sendFrame75(NpcId, 4901);
sendFrame164(4900);
}
Usage.
WalkToNpc class
Find
Code:
/** 1st click npc **/
Or (depending on the npc)
Code:
/** 2nd click npc **/
Then add
Code:
case NpcId:
return 2;//Dialogues
Obviously change NpcId, scroll up find
Code:
public static void startTask(Client client) {
Then go down to add
Code:
switch (client.clickedNPCID) {
case NpcId:
client.getDialogueHandler().sendDialogues(dialogueId, client.clickedNPCID);
break;
default:
client.getDialogueHandler().sendDialogues(-1, client.clickedNPCID);
break;
}
Once again change the dialogueId. There you go dialogues for no-doze, obviously this was done in minutes, just for the noobs that dont know how rip something as small as this and who are complaining.