Cutscene
This plugin make it possible to create "cutscenes" for your server:
The player is teleported to a set of teleport points and may receive chat messages to, e.g. tell the player how the tree farm looks like and that he should farm trees there.
There are "scenes" with "scene nodes", each of them a location in the world with optional messages, sent to the player and a waiting time, until the player will be teleported to the next scene. You can also add music and delayed messages to a scene.
So you can create nice introduction sequences for your sever to make it easier for you moderators to handle large amounts of users (You dont have to tell them always the same thing!).
While being in a cutscene, the player may not move, destroy blocks and use commands (except /cutscene commands).
Dependencies
- (Optional) VanishNoPacket (Players will be invisible if they are in a cutscene)
Commands
User commands
/cutscene start <scene> Start cutscene (cutscene.user.start)
/cutscene stop Stop cutscene (cutscene.user.stop)
/cutscene reload Reload scene nodes (cutscene.admin)
Admin commands
/cse create <scene> Create a scene (cutscene.admin)
/cse add <scene> (scene node) <delay> Create a scene node (cutscene.admin) -> Your position will be the destination position
/cse edit <scene> <scene node> (delay) Edit a scene node (cutscene.admin) -> Your position will be the destination position
/cse move <scene> <scene node> <before|after> <other node> Move a scene node (cutscene.admin)
/cse setdelay <scene> <scene node> <delay> List scenes/scene nodes (cutscene.admin)
/cse list (scene) List scenes/scene nodes (cutscene.admin)
/cse addmessage <scene> <scene node> <time> <text ...> Add a message to the node at the given relative time (cutscene.admin)
/cse concatmessage <scene> <scene node> <message ID> <text ...> Add a text to a existing message. use &s as space if you want a space as first character (cutscene.admin)
/cse removemessage <scene> <scene node> <message ID> Remove message (cutscene.admin)
/cse movemessage <scene> <scene node> <message ID> <time> Move a message to a time (cutscene.admin)
/cse clearmessages <scene> <scene node> Clear all messages of a scene node (cutscene.admin)
/cse listmessages <scene> <scene node> List messages and show their ID (cutscene.admin)
/cse setrecord <scene> <scene node> <record> Set the jukebox music of this scene (cutscene.admin)
/cse tp <scene> <scene node> Teleport to a scene node's destination (cutscene.admin)
/cse resume <scene> <scene node> Resume at a scene node (cutscene.admin)
New in version 1.1:
/cse animation type <scene> <scene node> <Teleport|MoveLine> Set the animation type of scene node to teleporting (default) or a linear moving to the destination point of the next scene node (cutscene.admin)
/cse animation yawpitch <scene> <scene node> <begin time> <end time> Set the relative time to begin reorienting the player (where the player looks) default: start: 0 end: 0.2 (cutscene.admin)
New in version 1.2:
/cse effect List effects
/cse effect help <effect> Show effect help
/cse effect add <scene> <node> <time> <effect> (effect params)
/cse effect remove <scene> <node> <id> (effect params)
/cse effect move <scene> <node> <id> <time> (effect params)
Effects: PlayRecord, Trigger, PlaySound, SetBlock, SpawnMob
/cse timeline <scene> (node) (effect) Show timeline
/csa who List players in cutscenes
/csa reload
/csa forcesave
/cutscene start <player>
/cutscene stop <player>
Useful note: If you want to edit many messages, you should edit cutscenes.yml with Notepad2 or something similar and reload the data.
Tutorial
A little tutorial
- The command set, which is used is /cse
- Create a scene /cse create MyCutscene
- Go somewhere and run /cse add MyCutscene 5 to add the scene node "point0" to your scene. It will be 5s long.
- Go elsewhere and run /cse add MyCutscene hello 10 to add another scene (We want to say a text to the player)
- To add a message line at the beginning of the scene node, use /cse addmessage MyCutscene hello 0 &4Hello World!
- To add another message line at the beginning of the scene node, use /cse addmessage MyCutscene hello 0 &aThis is another line!
- At the middle of the scene node, we want to say another text: /cse addmessage MyCutscene hello 0.5 &3I'll be displayed after 5s! (The <time> arguments are relative, so: lenght of the scene node = 10 -> 10 * 0.5 = 5
-> Display at 5s) - After the messages are sent to the user, he should fly to another point, so first, we make a start point for the animation at the "hello" position (you should be there, if not: /cse tp MyCutscene hello)
- run /cse add MyCutscene animationscene 12 and /cse animation type MyCutscene animationscene MoveLine to set animationscene as the main animation scene.
- Add another point as end of the animation scene: /cse add MyCutscene animationend 5
- Explanation: If the scene "animationscene" starts, the player will be moved to the point of "animationend" is 12s, then the player will be 5s in the "animationend" scene.
- The default setting of "yawpitch" (Setting the orientation of the player to the destination point's orientation) is 0.0 0.2: The player will look at the same direction of "animationend" after 20% of "animationstart". If you want that the player will rotate e.g at the middle of the animation, try /cse animation yawpitch MyCutscene animationscene 0.4 0.5 -> The player will be rotated after 6s
Video tutorial:
I have a suggestion... This is really cool and all, but I want to try to make "Cinematic Cutscenes", which, lol, i understand would be extremely hard to do! Really, you got everything down. It's near-perfect. The only thing I would like to see is a movement command. You know, like first, force the F-1 command to hide the GUI, then warp the player to specified node. but also, move the player towards another node, at a rate that the cutscene-maker specifies. You know what I mean? Just a suggestion but that would be amazing if you could pull that off!
Is this fully supported for 1.1R3?
I know the Events API changed in bukkit with 1.1 and it's not listed as being such so thats why I'm asking. Definitely something I want to use though.
@tmad40blue
/cse effect add <scene> <node> <time> runcommand <command>
@mrboese
What is the proper syntax for RunCommand? I can't seem to get it to work.
@mrboese
I realeased 1.3 (untested!).
@Bobacadodl
v1.3 will add something better: A RunCommand effect.
Request: make cutscene able to run custom commands at the end of the cutscene. For example, I want to give my players items for watching the tutorial cutscene I made.
@mistrae
It's the "concurrence" between anti-move and the positioning of blocks directly under the player. I already tried to fix it with version 1.2 (it works very well with all my cutscenes). Check, if you are using v. 1.2.
Why when i stand on the bedrock block my char/camera cant stop jumping ?
@DaveDee
That can be done with separate plugins, running commands if a player interacts with the world. On our server, we are using CommandSigns to start indtroduction sequences, etc. With WorldGuard regions, the player can't pass through (/region flag <region> entry deny and /region flag <region> entry-group nonmembers + permissions to add yourself as member to these "blocking regions", the player can be forced to run sign commands)
I'm just trying to keept Cutscene clean - it should do what it's supposed to do - nothing more (or everybody will be
verymore mixed)@mrboese
i mean, if someone step on block with specific coordinates (or hit specific sign), he will be forced to see the cutscene.
i quite like this idea... :D
@DaveDee
Autoplay coordinates triggers ???
Signs are not implemented, yet, but I'll try to add a SignEditEffect
So ho about autoplay with coordinates triggers or signs?
Thanks a lot, problem solved =D
@DaveDee
Try the new version 1.2.1 (if not approved: Downloadlink at the bukkit forums thread). I fixed it by using this routine:
nope... I thought it was NoCheat, or Towny cheat protection, but got the same result on fresh bukkit with no other plugins...
@DaveDee
Which plugins are installes, what's your server version?
There's something wrong with your server. I think that a old/defective plugin causes problems with the PLAYER_MOVE event, which is canceled if the player is in a cutscene. Try to test Cutscene with a clean server or figure out which plugin causes the glich.
A "clean" routine (ScenePlayerListener.java)
@mrboese
Yes, i know about this protection method.... but it doesn't work right in our case. I think this is the best way.... link
@DaveDee
If I understand it correctly:
This is the moving protection to prevent players from looking to elsewhere. In a cutscene, players have not to move - even looking around is prohibited.
The server cannot lock moving on client side. If the client looks elsewhere, than it should be (from the server's point of view), the client will be corrected, when the server sends the player data to the client. But the server refreshes only 20 times per second - There is a latency, so the player can recognize that "teleport-back"/correction.