PDA

View Full Version : [562] Dialouge Tutorial ~ Update 7/1/10 [562]



ClawzPkz
July 2nd, 2010, 01:22
This will probobly be my last thread, since I'm leaving, but okay,

Alright, so...

Purpose: To make dialouges
Difficulty: 3/10 to some people who can't understand it, 1/10 who can.

Alright, so you'll see a file in packethandler called "DialougeOptions" and NpcPacketHandler".
Yeah , go leach my bank dialouge, doesn't work anyway cuz opening bank fucks it up.



package org.nick.packethandler;

import org.nick.model.Player;
import org.nick.net.Packet;
import org.nick.model.NPC;
import org.nick.model.World;
import org.nick.event.Event;
import org.nick.model.NPCDefinition;

import org.apache.mina.common.IoSession;
import org.nick.GameEngine;

/**
* Created by IntelliJ IDEA.
* <code>palidino76.server.io.packets.DialogueOptions</code>
*
* @author Hotyute (hotyute_mason@hotmail.com)
*/
@SuppressWarnings("unused")
public class DialogueOptions implements PacketHandler {
private NPC n;
@Override
public void handlePacket(final Player player, IoSession session, Packet packet) {
int slot = packet.readLEShort();
int interfaceHash = packet.readInt1();
int interfaceId = (interfaceHash >> 16);
int buttonId = (interfaceHash & 0xFF);
System.out.println(interfaceId + ", " + buttonId);
switch (interfaceId) {
case 740:
switch (buttonId){
case 3:
player.getActionSender().sendCloseChatboxInterface ();
break;
}
break;
case 234:
switch (buttonId) {
}
break;
case 230:
switch (buttonId) {
case 2:
if(player.bankerD == 101) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getPlayerDetails().getDisplayName(), 241, 3);
player.getActionSender().sendString("Who are you?", 241, 4);
player.bankerD = 104;
}
if(player.slayerMaster == 2) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("Who are you?", 241, 4);
player.slayerMaster = 4;
}
break;
case 3:
if(player.bankerD == 101) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getPlayerDetails().getDisplayName(), 241, 3);
player.getActionSender().sendString("Can I see my bank account?", 241, 4);
player.bankerD = 103;
}
if(player.slayerMaster == 2) {
if(player.hasTask == true) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("How am i doing so far?", 241, 4);
player.slayerMaster = 3;
} else {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("I need a slayer assignment.", 241, 4);
player.slayerMaster = 3;
}
}
break;
case 4:
if(player.bankerD == 101) {
player.getActionSender().sendCloseChatboxInterface ();
}
if(player.slayerMaster == 2) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("Thats all for now, thanks.", 241, 4);
player.slayerMaster = 0;
} else {
player.getActionSender().sendCloseChatboxInterface ();
}
break;
}
break;
case 232:
switch (buttonId) {
case 5:
break;
}
break;
case 64:
switch (buttonId) {
case 5:
break;
}
break;
case 65:
switch (buttonId) {
case 6:
break;
}
break;
case 241:
switch (buttonId) {
case 5:
if(player.FatherAereck == 1) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("Whats the matter?", 241, 4);
player.FatherAereck = 2;
} else if(player.FatherAereck == 2) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9775, 241, 2);
player.getActionSender().sendNPCOnInterface(456, 241, 2);
player.getActionSender().sendString("Father Aereck", 241, 3);
player.getActionSender().sendString("Its the Zamorak mage.. He summoned this powerful demon.", 241, 4);
player.FatherAereck = 3;
} else if(player.FatherAereck == 3) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9775, 241, 2);
player.getActionSender().sendNPCOnInterface(456, 241, 2);
player.getActionSender().sendString("Father Aereck", 241, 3);
player.getActionSender().sendString("He lost control of it and now its destroying everything..", 241, 4);
player.FatherAereck = 4;
} else if(player.FatherAereck == 4) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendNPCOnInterface(456, 241, 2);
player.getActionSender().sendString("Father Aereck", 241, 3);
player.getActionSender().sendString("Could you please help us?", 241, 4);
player.FatherAereck = 5;
} else if(player.FatherAereck == 5) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9760, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("Sure.. i guess..", 241, 4);
player.FatherAereck = 6;
} else if(player.FatherAereck == 6) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9850, 241, 2);
player.getActionSender().sendNPCOnInterface(456, 241, 2);
player.getActionSender().sendString("Father Aereck", 241, 3);
player.getActionSender().sendString("Thank you so much, please go talk to the Zamorak mage.", 241, 4);
player.FatherAereck = 7;
player.DemonSlayer = 1;
} else if(player.FatherAereck == 7) {
player.getActionSender().sendCloseChatboxInterface ();
} else if(player.FatherAereck == 8 && player.DemonSlayerDone == true) {
player.DemonSlayer = 4;
player.FatherAereck = 9;
player.getActionSender().sendCloseChatboxInterface ();
}
if(player.bankerD == 100) {
player.getActionSender().sendInterfaceConfig(230, 7, false);
player.getActionSender().sendInterfaceConfig(230, 10, true);
player.getActionSender().sendString("Select an Option", 230, 1);
player.getActionSender().sendString("Who are you?", 230, 2);
player.getActionSender().sendString("Bank please?", 230, 3);
player.getActionSender().sendString("Never mind.", 230, 4);
player.getActionSender().sendChatboxInterface(230) ;
player.bankerD = 101;
} else if(player.bankerD == 103) {
player.getBank().openBank();
player.bankerD = 0;
} else if(player.bankerD == 104) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9850, 241, 2);
player.getActionSender().sendNPCOnInterface(494, 241, 2);
player.getActionSender().sendString("Banker", 241, 3);
player.getActionSender().sendString("I am the Banker.", 241, 4);
player.getActionSender().sendChatboxInterface(241) ;
player.bankerD = 100;
}
if(player.slayerMaster == 1) {
if(player.hasTask == true) {
player.getActionSender().sendInterfaceConfig(230, 7, false);
player.getActionSender().sendInterfaceConfig(230, 10, true);
player.getActionSender().sendString("Select an Option", 230, 1);
player.getActionSender().sendString("Who are you?", 230, 2);
player.getActionSender().sendString("How am i doing so far?", 230, 3);
player.getActionSender().sendString("That's all for now.", 230, 4);
player.getActionSender().sendChatboxInterface(230) ;
player.slayerMaster = 2;
} else {
player.getActionSender().sendInterfaceConfig(230, 7, false);
player.getActionSender().sendInterfaceConfig(230, 10, true);
player.getActionSender().sendString("Select an Option", 230, 1);
player.getActionSender().sendString("Who are you?", 230, 2);
player.getActionSender().sendString("I need a slayer assignment..", 230, 3);
player.getActionSender().sendString("That's all for now.", 230, 4);
player.getActionSender().sendChatboxInterface(230) ;
player.slayerMaster = 2;
}
} else if(player.slayerMaster == 3) {
if(player.hasTask == true) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9850, 241, 2);
player.getActionSender().sendNPCOnInterface(8275, 241, 2);
player.getActionSender().sendString("Duradel", 241, 3);
player.getActionSender().sendString("You only have " + player.slayerAmount +" "+ NPCDefinition.forId(player.slayerNPC).getName()+" to go.", 241, 4);
player.getActionSender().sendChatboxInterface(241) ;
player.slayerMaster = 1;
} else {
player.getSlayer().assignSlayerTask(player);
}
} else if(player.slayerMaster == 5) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9850, 241, 2);
player.getActionSender().sendNPCOnInterface(8275, 241, 2);
player.getActionSender().sendString("Duradel", 241, 3);
player.getActionSender().sendString("You already have a slayer task, come back when you have finished it.", 241, 4);
player.getActionSender().sendChatboxInterface(241) ;
player.slayerMaster = 1;
} else if(player.slayerMaster == 4) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9850, 241, 2);
player.getActionSender().sendNPCOnInterface(8275, 241, 2);
player.getActionSender().sendString("Duradel", 241, 3);
player.getActionSender().sendString("I'm a slayer master.", 241, 4);
player.getActionSender().sendChatboxInterface(241) ;
player.slayerMaster = 1;
} else {
player.getActionSender().sendCloseChatboxInterface ();
}
break;
}
break;
case 242:
switch (buttonId) {
case 6:
break;
}
break;
case 243:
switch (buttonId) {
case 7:
break;
}
break;
case 244:
switch (buttonId) {
case 8:
break;
}
break;
}
}
}



That will be DialougeOptions, now, a few weeks ago, I figured out that dialouges mix up if you keep using the same number. So I recommend to use different numbers when you make your dialouges.

Example:


if (player.Dialouge == 500) {
dialouge.speech("Oh hello, I am Hans.", 1);
player.Dialouge = 501;


I know, this is a different method on mine so you probobly can't use that and will get errors.

Alright, now let's start doing teh shit.



case 2:
if(player.bankerD == 101) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getPlayerDetails().getDisplayName(), 241, 3);
player.getActionSender().sendString("Who are you?", 241, 4);
player.bankerD = 104;
}
if(player.slayerMaster == 2) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("Who are you?", 241, 4);
player.slayerMaster = 4;
}
break;


Case 2: First option of a dialouge.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Next: Case 3.



case 3:
if(player.bankerD == 101) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getPlayerDetails().getDisplayName(), 241, 3);
player.getActionSender().sendString("Can I see my bank account?", 241, 4);
player.bankerD = 103;
}
if(player.slayerMaster == 2) {
if(player.hasTask == true) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("How am i doing so far?", 241, 4);
player.slayerMaster = 3;
} else {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("I need a slayer assignment.", 241, 4);
player.slayerMaster = 3;
}
}
break;


That is case 3, which is the 2nd option of the dialouge, which is like example:

Can I buy a skillcape?
Who are you? <---- this wud be case 3.
Never mind


~~~~~~~~~~~~~~~~~~~~~~~~~~

Case 4, last option / end of option



case 4:
if(player.bankerD == 101) {
player.getActionSender().sendCloseChatboxInterface ();
}
if(player.slayerMaster == 2) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9827, 241, 2);
player.getActionSender().sendPlayerOnInterface(241 , 2);
player.getActionSender().sendString(""+player.getUsername(), 241, 3);
player.getActionSender().sendString("Thats all for now, thanks.", 241, 4);
player.slayerMaster = 0;
} else {
player.getActionSender().sendCloseChatboxInterface ();
}
break;
}
break;

When Hotyute made this I think he made it so when you click this option, it closes so its usually like Never mind. Or the last option of the dialouge.


~~~~~~~~~~~~~~~~~~~~~~~

Time for the NPC talking.



if(player.bankerD == 100) {
player.getActionSender().sendInterfaceConfig(230, 7, false);
player.getActionSender().sendInterfaceConfig(230, 10, true);
player.getActionSender().sendString("Select an Option", 230, 1);
player.getActionSender().sendString("Who are you?", 230, 2);
player.getActionSender().sendString("Bank please?", 230, 3);
player.getActionSender().sendString("Never mind.", 230, 4);
player.getActionSender().sendChatboxInterface(230) ;
player.bankerD = 101;
} else if(player.bankerD == 103) {
player.getBank().openBank();
player.bankerD = 0;
} else if(player.bankerD == 104) {
player.getActionSender().sendChatboxInterface(241) ;
player.getActionSender().animateInterface(9850, 241, 2);
player.getActionSender().sendNPCOnInterface(494, 241, 2);
player.getActionSender().sendString("Banker", 241, 3);
player.getActionSender().sendString("I am the Banker.", 241, 4);
player.getActionSender().sendChatboxInterface(241) ;
player.bankerD = 100;
}


As you see the "104" and 100 stuff, it tells it to send the dialouge, for example.
Case 2 which is the "who are you?" part sends to 104. So then it sends the dialouge to this "I am the banker" shit, and after that, it sends it to "100" which is the 3 options all over again....

By the way, when your making a dialouge, please make sure to add
public int YOURNAMEOFDIALOUGE;

"YOURNAMEOFDIALOUGE" is the name u did for like if(player.BLAHBLAH) { shit.

Now, NpcPacketHandler.




if(npc.getId() == NPCID) {
p.turnTemporarilyTo(npc);
npc.turnTemporarilyTo(p);
p.getActionSender().sendChatboxInterface(241);
p.getActionSender().animateInterface(9850, 241, 2); // head animation emote
p.getActionSender().sendNPCOnInterface(494, 241, 2); // sends the npc on interface
p.getActionSender().sendString("NPCNAME", 241, 3); // name
p.getActionSender().sendString("Hi " +p.getPlayerDetails().getDisplayName() + ", what do you want?", 241, 4);
p.DIALOUGE = 100;
}


So yeah, pretty much thats it.

Good bye everyone.

Razor
July 2nd, 2010, 01:24
Bye nick, I will miss you , ily

ClawzPkz
July 2nd, 2010, 01:25
I'm just leaving RuneLocus, not forever lmao.

Nosz
July 2nd, 2010, 03:07
off topic:why u leaving?

ontopic: nice tut ppl will use it

Aurapkz
July 2nd, 2010, 06:11
I think I;m just a noob, but all my files there are .class and I of course cannot edit .class files.. how can I do this?

Aaron
July 2nd, 2010, 06:22
Nice tutorial:)

Mohammad
July 2nd, 2010, 12:07
Good job!
even though I'm not using 317+ but that is pretty awesome.

ClawzPkz
July 2nd, 2010, 14:31
Lol'ed, @ Aurapkz, click src.. not bin..

ClawzPkz
July 3rd, 2010, 18:14
I've been told that dialouges don't work, like I said, my bank dialouge fucks it all up, so please, don't use my DialougeOptions, thank you.

specced
July 5th, 2010, 00:59
im confused lol. whats a diolouge!!!

yourgirlwantsme
July 7th, 2010, 13:59
this is leeched from caleums source u just changed words...
fail kid

The Only Cj
July 7th, 2010, 14:27
Good work, but i rather Trees dialogues :). I kinda stopped coding 562 now, im working on a 317 with yerfy (putting it online) then going back to my 562. Wish me luck, and sorry for off-topic ;)

Spear
July 7th, 2010, 14:35
Nice tut. :)

davidpaceway
June 1st, 2011, 04:49
I think I;m just a noob, but all my files there are .class and I of course cannot edit .class files.. how can I do this?

You can't..

Nouish
June 1st, 2011, 13:09
Uhh.. It could've done with a total rewrite.

Acrylix
June 1st, 2011, 13:13
xTaunted has a far better one.