Need adventure map help
I'm working on an adventure map. I have characters that when you click on a sign that says: (Character name here) Click to talk.
I used this command:
/give @p sign 1 0 {
BlockEntityTag: {
Text1: "{\"text\":\"Wounded Man\",\"color\":\"red\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"say Wounded man: Who are you? Doesn't matter. There's a storm coming I suggest You find Shelter.\"}}",
Text2: "{\"text\":\"Click to talk\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"say New Quest: Find Shelter\"}}",
Text3: "{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"particle fireworksSpark\"}}"
},
display: {
Name: "Custom Sign"
}
}
I wanted it to say: (@) Wounded Man: A storm's coming I suggest you find shelter...
, but instead it says: (LordSockingham) Wounded man: A storm's coming and I suggest you find shelter...
. Any ideas?
Best Answer
The problem is that the player is the one who is running the command with JSON commands. One possible workaround is the /trigger
command:
Before anything else, once:
/scoreboard objectives add TalkToWoundedGuy trigger
/summon ArmorStand ~ ~ ~ {CustomName:"O"}
On a repeatingCommandBlock/chainCommandBlock loop, in order:
/scoreboard players enable @a TalkToWoundedGuy
/execute @p[score_TalkToWoundedGuy_min=1] ~ ~ ~ execute @e[name=O] ~ ~ ~ [all the 'say' commands you want, on different command blocks]
/execute @p[score_TalkToWoundedGuy_min=1] ~ ~ ~ [all the other commands you want, on different command blocks]
/scoreboard players set @a TalkToWoundedGuy 0
On the sign:
{Text1:"{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger TalkToWoundedGuy set 1\"}}"
Pictures about "Need adventure map help"
How do you make a good adventure map?
Adventure Map I NEED HELP (Remastered Castaway Island)
More answers regarding need adventure map help
Answer 2
You should use the /tellraw
command instead of /say
for greater control of content.
For example, you would cause the player to run the following command:
/tellraw @a {"text":"[Wounded Man]: A storm's coming I suggest you find shelter..."}
Output:
[Wounded Man]: A storm's coming I suggest you find shelter...
You /give
command would instead become:
/give @p sign 1 0 {BlockEntityTag: {Text1: "{\"text\":\"Wounded Man\",\"color\":\"red\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"tellraw @a {\\\"text\\\":\\\"[Wounded Man]: A storm's coming I suggest you find shelter...\\\"}\"}}",Text2: "{\"text\":\"Click to talk\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"say New Quest: Find Shelter\"}}",Text3: "{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"particle fireworksSpark\"}}"},display: {Name: "Custom Sign"}}
Answer 3
Tellraw runs from the console I believe. That should work if you're able to implement it into your script. ?
Sources: Stack Exchange - This article follows the attribution requirements of Stack Exchange and is licensed under CC BY-SA 3.0.
Images: Nataliya Vaitkevich, Ivan Samkov, Leah Kelley, Andrea Piacquadio