Looked at the code and you really made this hard on yourself and made this pretty damn sloppy.
1.) Excessive TD's are very wasteful.
Code:
new Text:IntroText1[2];
new Text:IntroText2[2];
new Text:IntroText3[31];
new Text:IntroText4[38];
new Text:IntroText5[37];
new Text:IntroText6[34];
new Text:IntroText7[34];
new Text:IntroText8[31];
new Text:IntroText9[30];
new Text:IntroText10[3];
2.) You should have used object model textdraws.
3.) This is really funny when people do this obviously the player is connected if OnPlayerConnect() is called.
public OnPlayerConnect(playerid) {
pIntro[playerid] = 1; // We set player intro state 1 (1 will start to show player intro)
UpdatePlayerIntro(playerid); // We start player intro check
return 1; }
Code:
//============================================================================ > UpdatePlayerIntro
public UpdatePlayerIntro(playerid) {
if(!IsPlayerConnected(playerid)) { return 1; }
Now I can see what you did that IN CASE a timer is still running but that isn't the way to do it because another player could connect and the timer would still trigger. You need to use KillTimer() in OnPlayerDisconnect(). There is almost never a need to use IsPlayerConnected(playerid) and if you do it should be for a good reason.
Other than that it does what it is supposed to do but isn't much more than a novelty in it's current state due to those excessive TD's which doesn't make it particularly viable for any real use.