denizenscript / denizen Goto Github PK
View Code? Open in Web Editor NEWNPC and general Spigot scripting, using the Denizen Scripting Language!
Home Page: https://denizenscript.com/
License: MIT License
NPC and general Spigot scripting, using the Denizen Scripting Language!
Home Page: https://denizenscript.com/
License: MIT License
Congratulation on an amazing plugin.
After writing an absolute behemoth of a first Denizen NPC (87 scripts), I and found a few thing for future development.
The IF Command is good but it needs to eb expanded to include other requirement checks other that flagged. I would have though most of the requirement checks that you have on and interactive script would work on an IF statement.
This would effectively allow you to place the same requirements on a task script like an interactive script has. Currently I am having to do 53 Group check combinations on my npc as proximity triggers with requirement to set flags. This is very slow and cumbersome to write. Having a group or permission check on an if statement would have eliminated all of the proximity checks.
This one is probably a long shot but considering the nature a lot of the npc's being written it might be worth looking at. Integration with mcmmo. The ability to look at stats would be a real bonus. I know you can change stats with using the EXECUTE command but to be able to interrogate them would be great.
Great work so far. Keep it up.
A couple of builds ago you added this feature and it doesn't work. It says your missing an arg if you leave it out.
After a little researching, i think I found the issue.
On line 123, you still check that the NAME: arg exists, and if it doesn't you throw the error. I could be wrong, as Im still rather new to all this programming stuff. Either way it'd be nice to see this function working.
Is there anyway we can push our Vault dependency out to http://repo.citizensnpcs.net ? I know it isn't hard to grab Vault and install it to your local repo, but this would make things a little easier.
Build, last "USE THIS BUILD" on jenkins
21.06 05:48:31 [Server] INFO at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
21.06 05:48:31 [Server] INFO at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
21.06 05:48:31 [Server] INFO at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:533)
21.06 05:48:31 [Server] INFO at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
21.06 05:48:31 [Server] INFO at net.aufdemrand.denizen.Denizen$1.run(Denizen.java:364)
21.06 05:48:31 [Server] INFO at net.aufdemrand.denizen.ScriptEngine.commandQue(ScriptEngine.java:41)
21.06 05:48:31 [Server] INFO at net.aufdemrand.denizen.CommandExecuter.execute(CommandExecuter.java:94)
21.06 05:48:31 [Server] INFO at net.aufdemrand.denizen.utilities.GetWorld.spawnMob(GetWorld.java:147)
21.06 05:48:31 [Server] INFO java.lang.NullPointerException
21.06 05:48:31 [Server] WARNING Task of 'Denizen' generated an exception
running this script:
'Spawn Zombies':
Type: Task
Script:
- NARRATE Rise From Your Graves!
- SPAWN ZOMBIE 5 zombiespawn
'Graveyard':
Type: Trigger
Requirements:
Mode: NONE
Steps:
'1':
Click Trigger:
Script:
- CHAT Goto the graveyard and search the graves.
- PLAYERTASK LOCATION zombiespawn 5 10 Spawn Zombies
- NARRATE Quickly now, goto the Mosolium.
Bookmarks:
Zombie:
Bookmarks:
Location:
- zombiespawn reg_world;111.30860694352194;78.0;305.5280459230894;-92.288025;27.599768
- mosolium reg_world;101.39364767301711;77.0;318.66857737011827;-84.94592;25.949724
Everything works good till it get to the SPAWN command and I get the NPE.
Hey my Script dosent works.. But it does if i dont use the Chat trigger. Here the Error in debug mode :
2012-09-03 17:44:58 [INFO] goraxer issued server command: /denizen debug
2012-09-03 17:44:59 [INFO] �[35;1m+- Getting interact script: Aron/goraxer -+�[m
2012-09-03 17:44:59 [INFO] �[35;1m| �[31;1mERROR! �[37;1mNo requirements found! This script may be named incorrectly, or simply doesn't exist!�[m
2012-09-03 17:44:59 [INFO] �[35;1m| �[37;1m'10 Aron1' does not meet requirements.�[m
2012-09-03 17:44:59 [INFO] �[35;1m|�[m
2012-09-03 17:44:59 [INFO] �[35;1m| �[31;1mERROR! �[37;1mCould not find any scripts assigned!�[m
2012-09-03 17:44:59 [INFO] �[35;1m+---------------------+�[m
Assignments: http://pastebin.com/aGDrPACn
Script: http://pastebin.com/1c0pctj1
Well, I see from the wiki that I am not the only person working on a Denizen builder script! I am really excited to see what others come up with, but for now I have run into a many-if-scripts situation that can hopefully be simplified.
As you know, the builder needs the command "builder load STRING". As I have it now, there is a chat trigger for each schematic in my library that will assign a FLAG "Builder:SCHEMATIC". Then, once the player gives the command to commence construction, there is an IF for each schematic in my library. This is going to get huge as my library grows, and require maintenance each time a new schematic is added!
Is there a way to:
-Use the stringvalue of a flag in a command? IE "builder load [FLAG Builder]"
-Capture a chat string and assign it to a flag value?
Also, is there a FOLLOW command? I tried MOVETO PLAYER but it is a single-instance move. I have created a work-around by adding the sentry trait and setting guard player, then removing the sentry trait when the player says they have arrived at the spot.
'quest_miner_scrooge_1':
Type: Interact
Requirements:
Mode: None
Steps:
'1':
Click Trigger:
Script:
- CHAT "There is nothing like breaking trough into a cave and see the shimmering of diamonds reflecting the light of your torch."
- CHAT "When I was 12 years old I found a gold nugget, that is how I got into the mining business!"
- CHAT "Could you help an old man with his dream?"
assignments.yml :
'&6Miner_Scrooge':
Interact Scripts:
- 10 quest_miner_scrooge_1
It just doesn't work :( When I right click the NPC it just says 'I have nothing else for you right now.'
A way for developers to hook int a comand ;)
like an event that will be send to bukkit prividing a command name ;) denizen etc ;)
i was searching for some neat plugins to test out and i saw a plugin that was changed the displayname of players. well, i already have known that this is possible and i thought "why not having quest npcs having a different name color (like gold) as the displayname?".
i think having sth like this in the options would be really awsome!
So... Since Denizens are in development I would like to propose my ideas.
I would like to see some of those scripts:
And finally - hard one (I think).
So, I think I made my point here :D
Thanks for reading, and I hope to see these (at least KILLMOB) in next update :D
Hey, i tryed to get a angry porate to work but the death event doesnt start.
Here the code: http://pastebin.com/UYwKY68n
Hey,
I have a suggestion for colored text. In my server I have several NPCs which I give names like '&4Harry', which gives them a red name.
But when I start chatting with them, the chat appears in red. Sometimes. Sometimes it's red, sometimes it just says '&4hi' instead of 'hi' in red.
Also, I can't add color codes to the texts defined in the config file. For example: When I write '&4[NPC]' in the config file, it appears in the chat as '&4[NPC]' instead of '[NPC]' in red.
It's just very ugly that half the text is colored and the other half isn't and also that sometimes the names of NPCs are displayed exactly how they are spelled including color codes.
What do you think of this idea?
I tried to install Denizen on my server and I set up some quests in the backend and some npcs in the frontend.
However, when I select npcs via the "/npc select 0" command they are not recognized as Denizens, but they are defined in the "assignments.yml"!
I am always getting the error that the selected NPC is no Denizen. (No console error, only in-game)
I already tried all various combinations with Citizens and Denizen but they all failed.
A search through the wiki also did not help for me, so I think this post is my last chance
I really would like to add some Denizens to my RPG-Server, but somehow its not working for me :(
How can I fix this?
I am not sure, but I tried many times with other or without any plugins:
Does Denizens Support Colored Chat?
I write:
Hello, heres a few ideas i've thought up while thinking about Denizens.
The first would be global variables. An easy way to link quests together, each person could be assigned the "fisherQuestSteps" variable. It would start at 0 ( or 1 ) and when you talk to fisherman 1 he will tell you to talk to fisherman 2. When he does this, the global variable is increased to 1 (or 2) and you can talk to fisherman 2 who tells you to go back to fisherman 1 and tell him something. This is just an example, it would provide a lot of extra things.
The second is really an issue i've been having. Say I want it so when the player greets an npc, the npc greets him back. The problem is, i'm simply not interested in making 5000 steps for every type of greeting and having it written for every npc I make. Instead, i'd like to make a custom trigger (perhaps in a seperate .yml?) that will activate if any of those greetings are used. Then on my scripts page I could just say TriggerChat: "GREET":, making my whole life a lot simplier. And it would be re-usable.
The final thing would be randoms, which I suspect was already being considered. Mostly to have an npc have more life by chatting "hi" OR "hello" OR "Hey, how are you".
Code:http://pastebin.com/E98XxyMt
Save.yml:http://pastebin.com/HHpNr6HJ
I accidentally left a ZAP in the last step (step 2) of a script. Afterwards the NPC would not work at all even if I removed him and recreated him, reloaded the server, etc.
Finally found the Current Step line in the saves.yml. It was set to 3, only by deleting this line and reloading was I able to make him work again.
Would it be possible for ZAP only to work if the specified step is defined?
Hey, i cant use /denizen assign 10 Leuchtturm :O Nothing happens
I know this is awfully specific... but my NPC won't take my leaves
I tried TAKE LEAVES and TAKE 18 1, but he won't take em.
GIVE works.
Thought maybe it was due to the multiple subtypes, but I tried it with WOOD and give and take both work for that...
In the latest citizens UI there is a setting that lets you set denizen script assignments via the NPC ID. That way you can have multiple NPC's of the same name, that run different scripts.
There are a few NPC's that I have as gatekeepers, and I would like them to all have the same name. But they would be in different locations, and flip different switches (each would run their own script)
When I set the CitizensUI to make assignments by NPC ID I just got an error that said no script was assigned to the NPC, even though it was assigned to the NPC's ID.
Not sure if the ability to assign via ID is actually possible, but if it's not I would love to have the ability!
Thanks!
well i was doing fine but i made a npc that had to tp a player to a bookmarked location. now the npc wont talk to us and our scrips says this.
[SEVERE] Could not pass event EntityTargetEvent to Citizens
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459)
at net.citizensnpcs.EventListen.onPlayerInteractEntity(EventListen.java:156)
at sun.reflect.GeneratedMethodAccessor345.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:978)
at net.minecraft.server.Packet7UseEntity.handle(SourceFile:33)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:558)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:450)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
Caused by: java.lang.NullPointerException
at net.aufdemrand.denizen.utilities.GetRequirements.check(GetRequirements.java:40)
at net.aufdemrand.denizen.utilities.GetScript.getInteractScript(GetScript.java:105)
at net.aufdemrand.denizen.DenizenCharacter.DenizenClicked(DenizenCharacter.java:30)
at net.aufdemrand.denizen.DenizenCharacter.onRightClick(DenizenCharacter.java:156)
at net.citizensnpcs.EventListen.onEntityTarget(EventListen.java:136)
at sun.reflect.GeneratedMethodAccessor323.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301)
... 17 more
Hello,
I'm having an issue with a script involving an assassin quest line I'm writing for my server. I've put in a chat trigger for the player to say "Yes" or "Sure" to accept but the NPC just tells the player he doesn't understand as the default response instead of continuing on. I'm also using the CitizensUI to make the scripts. Here is the script:
Hooded_Man Script 1:
Type: Interact
Requirements:
Mode: All
List:
- TIME Night
Steps:
3:
Click Trigger:
Trigger: ""
Script:
- WHISPER "Ahh... I see it is done. Good..."
- WAIT 5
- WHISPER "Here is your reward."
- GIVE GOLD_INGOT 10
- WHISPER "Come back to me tomorrow. I may have some more work for you."
- ^FINISH Hooded_Man Script 1
1:
Click Trigger:
Trigger: ""
Script:
- CHAT "Hey, you. Wanna earn some quick money?"
- ^WAIT 3
2:
Chat Trigger:
1:
Trigger: /Yes/
Script:
- WHISPER "Go into The Jackalope's Antlers and find the basement. Don't let the inn keeper see you."
- WAIT 5
- WHISPER "Once in the basement you'll meet a Dwarven brewer. Kill him. Return to me once you are done."
2:
Trigger: /Sure/
Script:
- ^ENGAGE
- WHISPER "Go into The Jackalope's Antlers and find the basement. Don't let the inn keeper see you."
- WAIT 5
- WHISPER "Once in the basement you'll meet a Dwarven brewer. Kill him. Return to me once you are done."
- ^DISENGAGE
On a further note, is there (or is it possible to add) a NPCdeath trigger that isn't the NPC itself. For instance, "Go and kill X" and once that NPC is dead, you can carry on with the script.
I hope not intentional? Or do I have something configured wrong?
Hi, maybe I've overlooked something but a problem I've had is that there's no way to filter out scripts based on whether the player interaction is click or chat.
For example let's say I have 10 NPCs and when the player clicks on one it starts a quest unique to that NPC. So there's some script on each NPC with a no requirements and a click trigger to start the quest.
But let's also say I want all 10 of those NPCs to respond to some basic chat, like 'hello', 'goodbye' etc. It would be very nice to create a chat response script and assign to all 10 NPCs. You can't do that right now because the no-requirement quest script would get 'picked'. You could add a chat trigger to the quest script of course, but you would have to copy/paste that same script code 10 times, and that's sloppy coding.
My suggestion is to add the interaction type (click or chat) as a possible script requirement. That way you could have the quest and chat scripts separate and only get 'picked' when the player is using click or chat, respectively.
Requirement for a script, HASINVENTORYSPACE, would detect is there was space in the players inventory.
HASINVENTORYSPACE #
or a Requirement for the amount of space available in a chest at a bookmark
CHESTINVSPACE [location] #
Also
CHESTHASITEM [location] item
Was thinking this would make it so denizens could be StopKeepers with the right script
something like
Requirements:
Mode: All
List:
- MONEY 36
- CHESTHASITEM DIRT 1
- HASINVENTORYSPACE 1
Another request might be a way to set variables in an options statement. So you could do something like this.
Would also request the IF statement and the END or could use what is already there FAIL which would end the script, as well as a CHECKREQ... a runtime check of a requirement.
Chat Trigger:
Trigger: /buy $/ //would be something that keys to a variable
Script:
- IF (CHECKREQ -MONEY %1): // a % and a number would key to the variable value listed below
- CHAT Seems you don't have enough money
- END
- CHAT here you go
- TAKE MONEY %1
- EXECUTE ASSERVER give <PLAYER> $1 // would be key of variable
Options:
- apple: 36
If you don't pull your hair out on this one... lol :)
I can run a command with
EXECUTE ASSERVER say one two three four
but I cannot run the command
EXECUTE ASSERVER say one two three four 0123456789
It just fail quietly, doesn't run the command, I assume it is because the string is to long
Would be nice if the Engage command also made the NPC stop talking from their normal Citizen text list if talk-close is true.
A command that will allow for general chat to be cancelled while a NPC is giving an extra long narrate for example.
could be something like:
- DISCHAT
- (a number of chat/narrate commands)
- WAIT 3 (Pause between narrates so reader can catch up)
- (again a number of chat/narrate commands)
- ALLOWCHAT
it is a bad example but you should get the idea.
The below script does not work.
----- An Enemy in our Midst -----
'An Enemy in our Midst':
Type: Interact
Requirements:
Mode: All
List:
- -FLAGGED 'AnEnemyInOurMidsts1'
- -FAILED 'AnEnemyInOurMidsts1'
- -FINISHED 'AnEnemyInOurMidsts1'
Steps:
1:
Click Trigger:
Script:
- CHAT "You've been a great help to my city lately. However, I must task you with something new, something far more serious then your previous trivialties."
- CHAT "A dreadlord seems to have infiltrated what was presumably though to be a safe area."
- CHAT "The spottings have been in the hills behind the city, formerlly though protected by this city, the fortress on the other side of the hills, and the mountains on either side."
- CHAT "But that protection seems to have been infiltrated. I need you to find and kill that dreadlord before it can cause serious damage."
- CHAT "So, will you assist me, ?"
Chat Trigger:
1:
Trigger: /Yes/
Script:
- CHAT "Good, I knew I could count on you. Talk to the Mayor in Riverstead to the east. Riverstead was where the last sighting was."
- FLAG 'AnEnemyInOurMidsts1'
2:
Trigger: /No/
Script:
- CHAT "I understand, it's a grand task. If you change your mind though, please come talk to me."
- FAIL 'AnEnemyInOurMidsts1'
---- Assignment ----
Denizens:
King Aeres:
Interact Scripts:
- 10 An Enemy in our Midst
Texts: #These texts will be shown to the player if no matching scripts are found, since Jill has no interact scripts, these will always be shown.
No Click Trigger: I have nothing for you at the moment, .
No Damage Trigger: How dare you! Guards, guards!
No Chat Trigger: I'm sorry, I don't quite understand what you mean.
Denizen Unavailable: Please wait a moment, I am busy.
However, if I change the name to "An Enemy in our Mysts", the script works fine.
After realizing this, I tested several names, and on random occasions, the script will fail solely based on that name change...
I have no reason why this is happening...but it's very frustrating having scripts fail randomly like that.
(Sorry for my bad english.)
This is the error in debug mode:
+- Getting interact script: Max/oli414 -+
|ERROR! No requirements found! This script may be named incorrectly, or simply doesn't exist!
|'0 vader met kinderen' does not meet requirements.
|ERROR! Could not find any scripts assigned
+-----------------------------------------------+
This is my assignments and my script:
http://pastie.org/pastes/4730624/text
(Like this?)
Hope u know with this information what's the problem
(This is a script for a dutch server, that's why it is another language)
Oli414
This is a hard one to explain, so I will do it in order, first here is the scripts:
Tavvarr Stolen Goods:
Type: Trigger
Requirements:
Mode: None
Steps:
'1':
Click Trigger:
Script:
- NARRATE So they sent you? Don't look like much.
- NARRATE What I need from you is to discover who ran
- NARRATE off with half my inventory last night.
- NARRATE Yes, thats right, half.
- WAIT 1
- NARRATE My guess is, the thief is stashing his loot
- NARRATE nearby.
- NARRATE Theres no way in hell he could move that much
- NARRATE rukkshire vary far from here.
- WAIT 1
- NARRATE Please, you have to find my ale.
- NARRATE Will you do this for me?
Chat Trigger:
'1':
Trigger: /accept/
Script:
- NARRATE Great!! Return the items if you find them.
- NARRATE (Maybe to the north there is a camp)
- PLAYERTASK LOCATION banditcamp 1 15 Tavvarr go to Bandit Camp
- FINISH
'2':
Trigger: /decline/
Script:
- NARRATE Figures, farewell.
Tavvarr Stolen Goods Two:
Type: Trigger
Requirements:
Mode: All
List:
- ITEM MELON_BLOCK 10
- FINISHED Tavvarr Stolen Goods
- FINISHED Tavvarr go to Bandit Camp
Steps:
'1':
Click Trigger:
Script:
- NARRATE Thanks so much for finding my Melons.
- NARRATE Here take this for helping me.
- NARRATE Also I will let Rukksharr know how you
- NARRATE helped me.
- TAKE MELON_BLOCK 10
- EXECUTE ASNPC money give <PLAYER> 100
- EXECUTE ASNPC xp <PLAYER> 10
- NARRATE (Receive 10 xp, 100 Stacks, advance group)
- FINISH
Tavvarr Stolen Goods Two Failed:
Type: Trigger
Requirements:
Mode: All
List:
- -ITEM MELON_BLOCK 10
- FINISHED Tavvarr Stolen Goods
Steps:
'1':
Click Trigger:
Script:
- NARRATE Please return with the Melons.
Tavvarr Stolen Goods Two Cheat:
Type: Trigger
Requirements:
Mode: All
List:
- ITEM MELON_BLOCK 10
- FINISHED Tavvarr Stolen Goods
- -FINISHED Tavvarr go to Bandit Camp
Steps:
'1':
Click Trigger:
Script:
- NARRATE This is not MY inventory, please
- NARRATE don't try to give me someone elses goods.
- NARRATE Go get MY inventory.
Tavvarr go to Bandit Camp:
Type: Task
Script:
- NARRATE You enter the Bandit Camp looking for the
- NARRATE Melon Blocks for Tavvarr.
- FINISH
Ok, it starts out ok, you get the first quest, it assigns the task after you accept it... The part that is the problem, if you try to cheat and turn in the melons before you have done the Task, it will work fine the first time, but then if you click him again it will "complete" the task then run the cheat part of the script again, and then if you click him again, it will run the completed script and take the melons.
Let me try to outline it better:
So you never had to really goto the bandit camp to complete the quest.
This was from another issue:
aufdemrand wrote:
Could we encase the entire check method in getRequirements with a try/catch, kind of like you did with the durability check? Or am I overlooking a con to that solution?
For ti to work it need to be without single quotes:
RESET FLAG:YAWNINGPORTAL
this will fail:
RESET 'FLAG:YAWNINGPORTAL'
I have a NPC that tells a long story. I put the story into a Task so I could call it from a few different triggers via RUNTASK.
It crashes denizen though.
If I NARRATE each line, it works.
If I CHAT each line, the first line is spoken over and over, while the console throws:
05:41:56 [WARNING] Task of 'Denizen' generated an exception
java.lang.NullPointerException
at net.aufdemrand.denizen.utilities.GetDenizen.talkToPlayer(GetDenizen.java:192)
at net.aufdemrand.denizen.CommandExecuter.execute(CommandExecuter.java:394)
at net.aufdemrand.denizen.ScriptEngine.commandQue(ScriptEngine.java:41)
at net.aufdemrand.denizen.Denizen$1.run(Denizen.java:364)
Guess maybe the Task doesn't have the right reference back to the NPC? what's funny is the 1st line that gets repeated looks perfectly normal.
I am setting multiple flags in a script with a delay of 30 seconds
After 30 seconds you see in the console debug that is is resetting one of the flags and not all 3. when you check the saves.yml file all of the flags are still set set
Code Snippet Setting Flags
'Eroobus Rank Apprentice-Smith':
Type: Interact
Requirements:
Mode: All
List:
- GROUP asmith
- MONEY 150
Steps:
1:
Proximity Trigger:
Script:
- CHAT "Hi I am Eroobus and I am you guide to classes"
- CHAT "Right click on me to find out how to change your class"
- FLAG Apprentice DURATION:30
- FLAG Charge DURATION:30
- FLAG ASmith DURATION:30
Debug log when the flags are set
http://pastie.org/4737340
Debug when it resets only one of the flags.
2012-09-17 03:15:54 [INFO] | //DELAYED// Running delayed task: RESET FLAG 'AMINER' for ratava76
From the saves.yml
ratava76:
Flags:
APPRENTICE: 'TRUE'
FREE: 'TRUE'
CHARGE: 'TRUE'
AMINER: 'TRUE'
I have a problem. I installed the start-up kit, began editing it like a maniac but came to a point where the user could spam the NPC - Steve in this case - with the leftclick so in the middle of the conversation, Steve says 'I'm busy at the moment, can't you see?'. I thought ENGAGE and DISENGAGE could solve the interaction problem (the spamming the click), but it didn't. Tried with the Start-Up Kit, didn't change anything (because Steve in the startupkit also contains (DIS)ENGAGE) and still you could spam him with the left mouse. You can mess up the whole story that way.
So if the script was
Click Trigger:
Script:
- ENGAGE
#Engage prevents all interaction with this NPC until DISENGAGE is called.
- CHAT "Hello the Builder! Take this shovel!"
- GIVE WOOD_SPADE
- WAIT 1
- CHAT "If you have any questions, just say 'help'"
- FINISH
#This increments the number of times this script (Joe The Builder) has been completed by this player.
- DISENGAGE
#This sets the NPC Interactable again.
And you'd spam the NPC, you get something like this
Steve says to you, 'Hello Notch the Builder! Take this shovel!'
Steve says to you, 'I'm busy at the moment, can't you see?'
Steve says to you, 'I'm busy at the moment, can't you see?'
Steve says to you, 'I'm busy at the moment, can't you see?'
Steve says to you, 'I'm busy at the moment, can't you see?'
Steve says to you, 'I'm busy at the moment, can't you see?'
Steve says to you, 'If you have any questions, just say 'help''
Is there a way to fix this? Am I doing something totally wrong? Do I miss something in the config? (sure i checked the whole thing.. the scripts/assignments aswell..)
Thanks for your help.
Unless I missed something along the way:
- ZAP RANDOM 3 10
would be really nice, got the idea when I wanted to make a Riddler character, gives out random riddles you have to solve. Would be based on PLAYERTASK but I would need to have a way to select a random step to give out the random task.
- ZAP RANDOM 4 10
'6':
- PLAYERTASK something
- FINISH
somescript:
- playertask script
- RESET firstscript
obviously that is a very rough idea of how the script would work...
If i assign a Quest to a npc he wont do anything. Example quests doesn't work as well.
Still same error: 2012-06-25 15:18:46 [SEVERE] Could not pass event EntityTargetEvent to Citizens org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460) at net.citizensnpcs.EventListen.onPlayerInteractEntity(EventListen.java:156) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:979) at net.minecraft.server.Packet7UseEntity.handle(SourceFile:33) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at net.aufdemrand.denizen.utilities.GetRequirements.check(GetRequirements.java:46) at net.aufdemrand.denizen.utilities.GetScript.getInteractScript(GetScript.java:106) at net.aufdemrand.denizen.DenizenCharacter.DenizenClicked(DenizenCharacter.java:33) at net.aufdemrand.denizen.DenizenCharacter.onRightClick(DenizenCharacter.java:241) at net.citizensnpcs.EventListen.onEntityTarget(EventListen.java:136) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ... 18 more
Script: http://pastebin.com/FVdRbfs1
Hi, i read here that denizen uses "§" for colors, but if i typed that to config like that:
player_chat_to_npc: "§7[§e§7]: "
player_chat_to_npc_bystander: "§7[§e§7]: "
npc_chat_to_bystanders: "§7[§e§7]: "
npc_chat_to_player: "§7[§e§7]: "
npc_chat_to_player_bystander: " says to , ''"
That reset config to default and doesnt work... Can you make denizen with Chatter or somethink like that support? I must make colors for my npc's... Or you can help me fix it up? :) Thanks, Adeo
I am not sure if this is an issue with Denizens or Citizens2, but I figured I would throw it out there in case it was an unknown issue.
2012-05-24 03:33:12 [INFO] [Citizens] Exception while updating 4: Cannot measure distance between reg_world and world.
2012-05-24 03:33:12 [SEVERE] java.lang.IllegalArgumentException: Cannot measure distance between reg_world and world
2012-05-24 03:33:12 [SEVERE] at org.bukkit.Location.distanceSquared(Location.java:381)
2012-05-24 03:33:12 [SEVERE] at net.citizensnpcs.trait.LookClose.hasInvalidTarget(LookClose.java:91)
2012-05-24 03:33:12 [SEVERE] at net.citizensnpcs.trait.LookClose.run(LookClose.java:61)
2012-05-24 03:33:12 [SEVERE] at net.citizensnpcs.api.npc.AbstractNPC.update(AbstractNPC.java:166)
2012-05-24 03:33:12 [SEVERE] at net.citizensnpcs.npc.CitizensNPC.update(CitizensNPC.java:195)
2012-05-24 03:33:12 [SEVERE] at net.citizensnpcs.npc.entity.CitizensHumanNPC.update(CitizensHumanNPC.java:133)
2012-05-24 03:33:12 [SEVERE] at net.citizensnpcs.npc.entity.EntityHumanNPC.F_(EntityHumanNPC.java:52)
2012-05-24 03:33:12 [SEVERE] at net.minecraft.server.World.entityJoinedWorld(World.java:1262)
2012-05-24 03:33:12 [SEVERE] at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:106)
2012-05-24 03:33:12 [SEVERE] at net.minecraft.server.World.playerJoinedWorld(World.java:1244)
2012-05-24 03:33:12 [SEVERE] at net.minecraft.server.World.tickEntities(World.java:1151)
2012-05-24 03:33:12 [SEVERE] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:549)
2012-05-24 03:33:12 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:450)
2012-05-24 03:33:12 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
In this example, there are two Denizens standing near each other, (NPC1) one has an intereactive script that teleports someone on a key phrase and (NPC2) one doesn't have a chat trigger, but a click trigger to go walk somewhere. This info MIGHT be relivent but I am not sure.
to reproduce this, NPC2 has lookclose set with /npc lookclose, and a player walks up to NPC1 and says "Teleport Main" and gets teleported to main, this part works great, but it seems that NPC2 can't be updated and thus that error. When I turn off lookclose this error doesn't happen.
Also a suggestion - if an NPC doesn't have a chat trigger in his script should he respond to chat from a player? right now he (NPC2) says I have nothing to say to you, or something along those lines. When NPC1s chat trigger is called.
hey,
I tried the Flag command and it works. In the save the flag - boolean command is noted.
If I want to use the Requirement of these Flag, denizen isnt able to see or use that flag. So nothing happends and the script won´t start.
Example:
Flag command:
'1':
Click Trigger:
Script:
- FLAG 'example flag'
Flag requirement:
Requirements:
Mode: ALL
List:
- FLAGGED example flag
Steps:
...
Hope you can help me with this problem.
Phil
There should be a method to execute command with parameter typed by player in example
1.
Player say to NPC "something"
NPC execute command "/test something"
2.
Player say to NPC "something other"
NPC execute command "/test something other"
and maybe a method to execute as admin command typed by player so:
1.
Player say to NPC "gamemode user 1"
NPC execute command"/gamemode user 1"
Item types as in "TAKE wood:1 1"
Hello,
i want use GROUP requirement with citizen/denizen recommanded and it doesnt work and he provoque java error:
I use Groupmanager and Essentialperm.
2012-07-21 19:34:25 [SEVERE] Could not pass event PlayerMoveEvent to Denizen
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209)
at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
Caused by: java.lang.NullPointerException
at net.aufdemrand.denizen.utilities.GetScript.getInteractScript(GetScript.java:87)
at net.aufdemrand.denizen.DenizenCharacter.PlayerProximityListener(DenizenCharacter.java:86)
at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302)
... 10 more
2012-07-21 19:34:25 [SEVERE] Could not pass event PlayerMoveEvent to Denizen
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209)
at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
Caused by: java.lang.NullPointerException
at net.aufdemrand.denizen.utilities.GetScript.getInteractScript(GetScript.java:87)
at net.aufdemrand.denizen.DenizenCharacter.PlayerProximityListener(DenizenCharacter.java:86)
at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302)
... 10 more
2012-07-21 19:34:25 [SEVERE] Could not pass event PlayerMoveEvent to Denizen
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209)
at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
Caused by: java.lang.NullPointerException
at net.aufdemrand.denizen.utilities.GetScript.getInteractScript(GetScript.java:87)
at net.aufdemrand.denizen.DenizenCharacter.PlayerProximityListener(DenizenCharacter.java:86)
at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302)
... 10 more
2012-07-21 19:34:26 [SEVERE] Could not pass event PlayerMoveEvent to Denizen
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209)
at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
Caused by: java.lang.NullPointerException
at net.aufdemrand.denizen.utilities.GetScript.getInteractScript(GetScript.java:87)
at net.aufdemrand.denizen.DenizenCharacter.PlayerProximityListener(DenizenCharacter.java:86)
at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302)
... 10 more
If can help you.
00:23:56 [SEVERE] Could not pass event PlayerMoveEvent to Denizen
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209)
at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
Caused by: java.lang.NullPointerException
at net.aufdemrand.denizen.ScriptEngine.checkLocation(ScriptEngine.java:477)
at net.aufdemrand.denizen.DenizenCharacter.PlayerProximityListener(DenizenCharacter.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302)
... 10 more
Is it possible to set a flag on someone using a command? Or can only a denizen set flags on players?
Not sure if you've fixed this one in later builds but this happens on 0.6 build 98. Once it has happened no amount of citizens reloads or denizen reloads will get the denizens working again. Only a server restart :/
[WARNING] Task of 'Denizen' generated an exception
java.lang.NullPointerException
at net.aufdemrand.denizen.CommandExecuter.execute(CommandExecuter.java:145)
at net.aufdemrand.denizen.ScriptEngine.commandQue(ScriptEngine.java:41)
at net.aufdemrand.denizen.Denizen$1.run(Denizen.java:364)
at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:535)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:461)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
I know there are plugins that can /banish mobs, or remove mobs from a radius around a player, or even an NPC, but I was wondering how hard would, considering you already have bookmark locations and the PLAYERTASK location function, to say, Kill all mobs withing x squares of location bookmark
- REMOVE <MOBS|ANIMALS> <location bm> <radius>
- REMOVE MOBS dungeon_hall_1 5
I have this envisioned of setting up a dungeon for players to run, it would first clear all the mobs in the dungeon, then use SPAWN to replace them accordingly, either with PLAYERTASK (as they reach areas assigned, not sure how this works yet) need to try it out, if I can assign multiple playertasks at a time or not, OR with just SPAWN right after the dungeon was cleared from the NPC.
Another suggestion, if it isn't possible yet, a timeout on Tasks, or even a timeout on a Script... would be nice if it could be made to check if a player is within an area, if not cancel the quest, again not sure if this would be CPU feasible.
Here is one suggestion what i would like to see in future.
Ability to change player(maybe Npc) who Npc interacting.
Chat Trigger:
'1':
Trigger: I would like you to target /<PLAYER</.
Script:
- CHAT "Will do it!"
- TARGET CPLAYER (C stands for CHAT, because it's said in chat)
Um, yeah. My english isn't best so I hope you understand what I wrote :P
How can I do this?
I'm having my CitiTrader welcome those who come into his shop via a proximity trigger and am then using the basic Citizens text function to speak when players try to interact with him to trade. Yet, because he is a Denizen, even though there is no click trigger in the script he always returns "I have nothing else for you right now" when clicked as well as the "What can I get for ya?" that is setup in the basic Citizens text. How can I change this so he never says anything if there isn't a click trigger? I have already disabled the option in the config.yml but he persists on. Thoughts?
MC
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.