Thread: RUSE Item dialogue (+REP)

Results 1 to 4 of 4
  1. #1 RUSE Item dialogue (+REP) 
    Registered Member
    Join Date
    May 2016
    Posts
    37
    Thanks given
    2
    Thanks received
    0
    Rep Power
    15
    Hello, I was wondering how can I send an item into a dialogue (RUSE), I've tried multiple formats through dialogues.json but no luck
    What I'm looking for is this:
    Attached image

    My DialogueManager.java
    Code:
    public class DialogueManager {
    
    	public static Map<Integer, Dialogue> dialogues = new HashMap<Integer, Dialogue>();
    	public static JsonLoader parseDialogues() {
    
    		return new JsonLoader() {
    			@Override
    			public void load(JsonObject reader, Gson builder) {
    
    				final int id = reader.get("id").getAsInt();
    				final DialogueType type = DialogueType.valueOf(reader.get("type").getAsString());
    				final DialogueExpression anim = reader.has("anim") ? DialogueExpression.valueOf(reader.get("anim").getAsString()) : null;
    				final int lines = reader.get("lines").getAsInt();
    				String[] dialogueLines = new String[lines];
    				for(int i = 0; i < lines; i++) {
    					dialogueLines[i] = reader.get("line" + (i+1)).getAsString();
    				}
    				final int next = reader.get("next").getAsInt();
    				final int npcId = reader.has("npcId") ? reader.get("npcId").getAsInt() : -1;
    				
    				Dialogue dialogue = new Dialogue() {
    					@Override
    					public int id() {
    						return id;
    					}
    
    					@Override
    					public DialogueType type() {
    						return type;
    					}
    
    					@Override
    					public DialogueExpression animation() {
    						return anim;
    					}
    
    					@Override
    					public String[] dialogue() {
    						return dialogueLines;
    					}
    
    					@Override
    					public int nextDialogueId() {
    						return next;
    					}
    
    					@Override
    					public int npcId() {
    						return npcId;
    					}
    
    					@Override
    					public String[] item() {
    						return null;
    					}
    				};
    				dialogues.put(id, dialogue);
    				
    			}
    
    			@Override
    			public String filePath() {
    				return "./data/def/json/dialogues.json";
    			}
    		};
    		
    	}
    
    	public static void start(Player player, int id) {
    		Dialogue dialogue = dialogues.get(id);
    		start(player, dialogue);
    	}
    
    	public static void start(Player player, Dialogue dialogue) {
    		player.setDialogue(dialogue);
    		if(player.isBanking() || player.isShopping() || player.getInterfaceId() > 0 && player.getInterfaceId() != 50)
    			player.getPacketSender().sendInterfaceRemoval();
    		if (dialogue == null || dialogue.id() < 0) {
    			player.getPacketSender().sendInterfaceRemoval();
    		} else {
    			showDialogue(player, dialogue);
    			dialogue.specialAction();
    		}
    		if(player.getInterfaceId() != 50)
    			player.setInterfaceId(50);
    	}
    
    	public static void next(Player player) {
    		if (player.getDialogue() == null) {
    			player.getPacketSender().sendInterfaceRemoval();
    			return;
    		}
    		Dialogue next = player.getDialogue().nextDialogue();
    		if (next == null)
    			next = dialogues.get(player.getDialogue().nextDialogueId());
    		if (next == null || next.id() < 0) {
    			player.getPacketSender().sendInterfaceRemoval();
    			return;
    		}
    		start(player, next);
    	}
    
    	private static void showDialogue(Player player, Dialogue dialogue) {
    		String[] lines = dialogue.dialogue();
    		switch (dialogue.type()) {
    		case NPC_STATEMENT:
    			int startDialogueChildId = NPC_DIALOGUE_ID[lines.length - 1];
    			int headChildId = startDialogueChildId - 2;
    			player.getPacketSender().sendNpcHeadOnInterface(dialogue.npcId(), headChildId);
    			player.getPacketSender().sendInterfaceAnimation(headChildId, dialogue.animation().getAnimation());
    			player.getPacketSender().sendString(startDialogueChildId - 1, NpcDefinition.forId(dialogue.npcId()) != null ? NpcDefinition.forId(dialogue.npcId()).getName().replaceAll("_", " ") : "");
    			for (int i = 0; i < lines.length; i++) {
    				player.getPacketSender().sendString(startDialogueChildId + i, lines[i]);
    			}
    			player.getPacketSender().sendChatboxInterface(startDialogueChildId - 3);
    			break;
    		case PLAYER_STATEMENT:
    			startDialogueChildId = PLAYER_DIALOGUE_ID[lines.length - 1];
    			headChildId = startDialogueChildId - 2;
    			player.getPacketSender().sendPlayerHeadOnInterface(headChildId);
    			player.getPacketSender().sendInterfaceAnimation(headChildId, dialogue.animation().getAnimation());
    			player.getPacketSender().sendString(startDialogueChildId - 1, player.getUsername());
    			for (int i = 0; i < lines.length; i++) {
    				player.getPacketSender().sendString(startDialogueChildId + i, lines[i]);
    			}
    			player.getPacketSender().sendChatboxInterface(startDialogueChildId - 3);
    			break;
    		case ITEM_STATEMENT:
    			startDialogueChildId = NPC_DIALOGUE_ID[lines.length - 1];
    			headChildId = startDialogueChildId - 2;
    			player.getPacketSender().sendInterfaceModel(headChildId, Integer.valueOf(dialogue.item()[0]), Integer.valueOf(dialogue.item()[1]));
    			player.getPacketSender().sendString(startDialogueChildId - 1, dialogue.item()[2]);
    			for (int i = 0; i < lines.length; i++) {
    				player.getPacketSender().sendString(startDialogueChildId + i, lines[i]);
    			}
    			player.getPacketSender().sendChatboxInterface(startDialogueChildId - 3);
    			break;
    		case STATEMENT:
    			sendStatement(player, dialogue.dialogue()[0]);
    			break;
    		case OPTION:
    			int firstChildId = OPTION_DIALOGUE_ID[lines.length - 1];
    			player.getPacketSender().sendString(firstChildId - 1, "Choose an option");
    			for (int i = 0; i < lines.length; i++) {
    				player.getPacketSender().sendString(firstChildId + i, lines[i]);
    			}
    			player.getPacketSender().sendChatboxInterface(firstChildId - 2);
    			break;
    		}
    		if(player.getInterfaceId() <= 0)
    			player.setInterfaceId(100);
    	}
    
    	public static void sendStatement(Player p, String statement) {
    		p.getPacketSender().sendString(357, statement);
    		p.getPacketSender().sendString(358, "Click here to continue");
    		p.getPacketSender().sendChatboxInterface(356);
    	}
    
    	public static int getDefaultId() {
    		int id = dialogues.size();
    		for (int i = 0; i < dialogues.size(); i++) {
    			if (dialogues.get(i) == null) {
    				id = i;
    				break;
    			}
    		}
    		return id;
    	}
    
    	public static Map<Integer, Dialogue> getDialogues() {
    		return dialogues;
    	}
    
    	private static final int[] NPC_DIALOGUE_ID = {
    		4885,
    		4890,
    		4896,
    		4903
    	};
    
    	private static final int[] PLAYER_DIALOGUE_ID = {
    		971,
    		976,
    		982,
    		989
    	};
    	
    	private static final int[] OPTION_DIALOGUE_ID = {
    		13760,
    		2461,
    		2471,
    		2482,
    		2494,
    	};
    }
    Thanks will +REP
    Reply With Quote  
     

  2. #2  
    Jake from State Farm

    FKN Jake's Avatar
    Join Date
    Nov 2013
    Posts
    675
    Thanks given
    45
    Thanks received
    58
    Rep Power
    153
    Code:
    			DialogueManager.sendStatement(player, "@whi@The Survival Guide gives you a @blu@tinderbox@whi@ and a @blu@Bronze Axe@whi@!");
    Attached image
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    May 2016
    Posts
    37
    Thanks given
    2
    Thanks received
    0
    Rep Power
    15
    I want to do it through .json, and you got me wrong, I want that item model to be in dialogue aswell. not just a text.
    Reply With Quote  
     

  4. #4  
    Jake from State Farm

    FKN Jake's Avatar
    Join Date
    Nov 2013
    Posts
    675
    Thanks given
    45
    Thanks received
    58
    Rep Power
    153
    Quote Originally Posted by Dedii View Post
    I want to do it through .json, and you got me wrong, I want that item model to be in dialogue aswell. not just a text.
    Simply find the interface ID and add the strings.
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. [PI] Items on Dialogue (REP++) [/PI]
    By Blaketon in forum Help
    Replies: 8
    Last Post: 01-27-2012, 10:07 PM
  2. [PI] Items on Dialogue (REP++) [/PI]
    By Blaketon in forum Help
    Replies: 0
    Last Post: 01-26-2012, 10:40 PM
  3. Item dialogue (rep++)
    By Developer in forum Help
    Replies: 21
    Last Post: 07-15-2011, 10:02 PM
  4. [525] Item Ideas rep++
    By White. in forum Requests
    Replies: 9
    Last Post: 04-21-2009, 10:56 PM
  5. Replies: 9
    Last Post: 02-12-2008, 07:32 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •