Hello. I took this idea from a french server i used to play. They have a /tutkick command, that kick the player, and force to read the tutorial. I decided to make something similar, but better. I made one, all using Dialogs.

This command make the player read a tutorial, that teach him some basics about Role-Play. Due to the limit of charathers you can time in dialogs, i made 20 dialogs. I know, much gramatic mistakes. Sorry about it, and tell me if you find any, so i can edit the tutorial.

So, first, we will need to define our includes. I am going to use zcmd and sscanf for the command. That's for the creators.

So.. Defining them on top of the script.

pawn Code:

#include <a_samp>#include <zcmd>#include <sscanf2>

You can find them in the includes board of sa-mp forums.(This one)

I will use some colors in the dialogs, so we will need to define them.

pawn Code:

#define COL_RED "{F81414}"#define COL_RWHITE "{FFFFFF}"

Ok, now, comes the harder part. You will have to convert it to your saving/defining system.
As far as it will check if player has been tutkicked when he connects, you have to add it in saving system.
So, for the enum, we will define the TutKick and Adminlevel, to make it for admins only.

pawn Code:

enum pInfo{ TutKick, AdminLevel,}new PlayerInfo[MAX_PLAYERS][pInfo];

Now, the OnFilterScriptInit.

pawn Code:

public OnFilterScriptInit(){print("\n--------------------------------------");print(" Tutorial Kick System By Ricardo Rodrigues");print("--------------------------------------\n");return1;}

Ok. I am not here to explain how to use zcmd or sscanf, not even how to use dialogs. I will tell you the steps for the tutkick, you should know how to use the functions we are going to work with.

The commannd that will kick the player, set his TutKick to 1, and send message.

Ok, we are done with the command, the defines, and includes. Now, we will make it force the player to read the tutorial.

pawn Code:

public OnPlayerConnect(playerid){if(PlayerInfo[playerid][TutKick]==1){ SendClientMessage(playerid, 0xFFFFFFFF, "You are being forced to read the tutorial, due to admin orders. You can only play, after reading it. If you repeat any acts, mentioneds in it, you will get yourself banned."); ShowPlayerDialog(playerid, 150, DIALOG_STYLE_MSGBOX, "{F81414}Tutorial", "{FFFFFF}This tutorial will teach you how to role-play proply on this server.", "Next", "");return1;}return0;}

As you can see, on the command, we set TutKick to 1, now, when player connect, if it is 1, the tutorial will display.
Ok.. Now we will do the dialogs. I will not explain it, you should know how to make dialogs.

pawn Code:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){switch(dialogid){case150:{if(response){ ShowPlayerDialog(playerid, 151, DIALOG_STYLE_MSGBOX, "{F81414}Meta-Game Part 1", "{F81414}Meta-Game {FFFFFF}is the expression, used to define the act of mixe. If you mixe OOC informations, in IC propose, you are {F81414}Meta-Gaming.", "Next", "");return1;}}case151:{if(response){ ShowPlayerDialog(playerid, 152, DIALOG_STYLE_MSGBOX, "{F81414}Meta-Game Part 2", "{FFFFFF}An example of {F81414}Meta-Gaming, {FFFFFF}is calling someone by the name you see under his head, in the first meet. The name you see up to players head, is an OOC information. ", "Next", "");return1;}}case152:{if(response){ ShowPlayerDialog(playerid, 153, DIALOG_STYLE_MSGBOX, "{F81414}Meta-Game Part 3", "{FFFFFF}Using /pm system to tell someone, to help you, or to meet you somewhere, is also {F81414}Meta-Gaming, {FFFFFF}as you are using an OOC function, the /Pm, to IC proposes.", "Next", "");return1;}}case153:{if(response){ ShowPlayerDialog(playerid, 154, DIALOG_STYLE_MSGBOX, "{F81414}Power-Game Part 1", "{F81414}Power-Game {FFFFFF}is forcing someone to Role-Play your way, or doing something you can't do in Real Life. Some Examples will be given.", "Next", "");return1;}}case154:{if(response){ ShowPlayerDialog(playerid, 155, DIALOG_STYLE_MSGBOX, "{F81414}Power-Game Part 2", "{FFFFFF}If you do any action, that mess with someone, such as puching him, robbing, car-jacking, without giving him a chance to defend, is {F81414}Power-Game.", "Next", "");return1;}}case155:{if(response){ ShowPlayerDialog(playerid, 156, DIALOG_STYLE_MSGBOX, "{F81414}Power-Game Part 3", "{FFFFFF}To give him a chance, you should use the command /do. We will explain you how to use it later. Having a car crash, and keep driving, is alsp {F81414}Power-Game.", "Next", "");return1;}}case156:{if(response){ ShowPlayerDialog(playerid, 157, DIALOG_STYLE_MSGBOX, "{F81414}Death-Match Part 1", "{F81414}Death-Match {FFFFFF}is probably the most easier to explain. It's no more than shooting someone without a good IC reason.", "Next", "");return1;}}case157:{if(response){ ShowPlayerDialog(playerid, 158, DIALOG_STYLE_MSGBOX, "{F81414}In-Charather(IC)", "{F81414}In Charather{FFFFFF}, also known as {F81414}IC, {FFFFFF}is the word used to clasify your in game charather.", "Next", "");return1;}}case158:{if(response){ ShowPlayerDialog(playerid, 159, DIALOG_STYLE_MSGBOX, "{F81414}Out-Of-Charather(OOC)", "{F81414}Out-Of-Charather{FFFFFF}, also known as {F81414}IC{FFFFFF}, is the word used to clasify yourself as a Real Life person.", "Next", "");return1;}}case159:{if(response){ ShowPlayerDialog(playerid, 160, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 1", "{F81414}/me {FFFFFF}and {F81414}/do {FFFFFF}are basic and hight needed commands in Role-Play. We will show you some examples.", "Next", "");return1;}}case160:{if(response){ ShowPlayerDialog(playerid, 161, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 2", "{FFFFFF}To simply car-jack someone, you need good RolePlay Skills. You have to attemp oppening the door, like that: /me attemps to open car door.", "Next", "");return1;}}case161:{if(response){ ShowPlayerDialog(playerid, 162, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 3", "{FFFFFF}After that, you have to use the /do command, to give him a chance to answer. Door might be locked or he can escape before you open it.", "Next", "");return1;}}case162:{if(response){ ShowPlayerDialog(playerid, 163, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 4", "{FFFFFF}/do Sucefull/Fail. You can also use /do S/F/. Now, you have to wait player answer. He can answer many different things.", "Next", "");return1;}}case163:{if(response){ ShowPlayerDialog(playerid, 164, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 5", "{FFFFFF}He can say /do S. that means the door is now open. He can also /do F, Door Locked. so door is locked and you can't open.", "Next", "");return1;}}case164:{if(response){ ShowPlayerDialog(playerid, 165, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 6", "{FFFFFF}Of-course, now you can /me attemps to pull over DriverName. but you also need /do S/F. That if his answer is /do S.", "Next", "");return1;}}case165:{if(response){ ShowPlayerDialog(playerid, 166, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 7", "{FFFFFF}If the answer is /do F, door locked. than you can give up, or /me brake the windows with left arm. /me attemps to open the door lock. /do S/F.", "Next", "");return1;}}case166:{if(response){ ShowPlayerDialog(playerid, 167, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 8", "{FFFFFF}Well, the winndows braking doesn't depend on other player, so you don't need to attemp it. But, on removing lock, he can block your hand. So, he will probably /do F, i block you.", "Next", "");return1;}}case167:{if(response){ ShowPlayerDialog(playerid, 168, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 9", "{FFFFFF}Well, being hard right? You really have to go in the bad way. /me attemps to punsh Driver in nose, and unlock the car. /do S/.", "Next", "");return1;}}case168:{if(response){ ShowPlayerDialog(playerid, 169, DIALOG_STYLE_MSGBOX, "{F81414}The /me and /do Commands. Part 9", "{FFFFFF}Good, let's make it easy now... The driver should /do S. so now, you can take him over the car, and rob it.", "Next", "");return1;}}case169:{if(response){ ShowPlayerDialog(playerid, 170, DIALOG_STYLE_MSGBOX, "{F81414}End of Tutorial", "{FFFFFF}You just ended the tutorial. Hope you've learn. If you will not have all the work of use all these commands on RP, Log out.", "Next", "");return1;}}case170:{if(response){ PlayerInfo[playerid][TutKick]=0; SendClientMessage(playerid, 0xFFFFFFFF, "Pay attention to your Role-Play, or you will be forced to read it again.");return1;}}}return0;}

And we are done with it. As you can see, in the last dialog, it will set TutKick back to 0, so player will not read it again when re-connecting.

Hope this is usefull. Copy pasting it will work, but only if you convert it to your saving/defining system.
I was going to release it as filterscript, but it can't work as one, because it have to save in playerfiles.
It couldn't be compatible with all scripts, so i made it a tutorial.

No offense but your tutorial is pretty bad. You didn't explain anything, your ingame tutorial is bad aswell, regarding the /me and /do commands. Pure powergame and stuff but we won't talk about it on this forum. Anyhow, work a little harder on the next tutorial, try to explain things better. Why do you do that and stuff.