error 032: array index out of bounds (variable "MessageStr")
#1

This is the script:

pawn Код:
/*
                                                Copyright©, Leingod - 2011
________________________________________________________________________________

                                    ##     ##### ## ##  #  #####   ##  ###
                                    ##     ##    ## ##  # #       #  # #  #
                                    ##     ####  ## # # # ##  ### #  # #   #
                                    ##     ##    ## #  ## ##    # #  # #  #
                                    ###### ##### ## #   #  #####   ##  ###

                                                   Le TextDraw Message Box
                             ---------------------------
________________________________________________________________________________

FORUM SA:MP PROFILE: http://forum.sa-mp.com/member.php?u=120914

Credits:
-Leingod (Me) For make this.
-Sandra18[NL] I get little code from him

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/


#include <a_samp>
#include <zcmd>

//new
new Text:Message[10];
new MessageStr[10][150];
new Text:LeTextDraw;

// DEFINES
#define le_TD_version   "ver.3.0"

main()
{
        print("\n--------------------------------------------------------");
        print(" Running FilterScript Leingod's TextDraw Message Box "#le_TD_version"");
        print("--------------------------------------------------------\n");
}

public OnFilterScriptInit()
{
        for(new line; line<10; line++)
        {
        format(MessageStr[line], 128, " ");
        }
    Message[0] = TextDrawCreate(365, 300+38, MessageStr[0]);
    Message[1] = TextDrawCreate(365, 307+38, MessageStr[1]);
    Message[2] = TextDrawCreate(365, 314+38, MessageStr[2]);
    Message[3] = TextDrawCreate(365, 321+38, MessageStr[3]);
    Message[4] = TextDrawCreate(365, 328+38, MessageStr[4]);
    Message[5] = TextDrawCreate(365, 335+38, MessageStr[5]);
    Message[6] = TextDrawCreate(365, 342+38, MessageStr[6]);
    Message[7] = TextDrawCreate(365, 349+38, MessageStr[7]);
    Message[8] = TextDrawCreate(365, 356+38, MessageStr[8]);
    Message[9] = TextDrawCreate(365, 363+38, MessageStr[9]);
    Message[10] = TextDrawCreate(365, 370+38, MessageStr[10]);
    for(new line; line<11; line++)
        {
        TextDrawLetterSize(Message[line], 0.40, 0.90);
        TextDrawSetShadow(Message[line], 0);
                TextDrawAlignment(Message[line], 1);
        TextDrawFont(Message[line], 1);
        TextDrawShowForAll(Message[line]);
        }
    for(new line; line<10; line++)
        {
        TextDrawLetterSize(Message[line], 0.28, 0.83);
        TextDrawSetShadow(Message[line], 0);
                TextDrawAlignment(Message[line], 1);
        TextDrawTextSize(Message[line], 640, 480);
        TextDrawBoxColor(Message[line], 0x000000FF);
        TextDrawFont(Message[line], 1);
        TextDrawSetOutline(Message[line], 1);
        TextDrawShowForAll(Message[line]);
        }
        return 1;
}

public OnFilterScriptExit()
{
    for(new line; line<10; line++)
        {
            TextDrawDestroy(Message[line]);
        }
        return 1;
}


public OnPlayerConnect(playerid)
{
        LeTextDraw = TextDrawCreate(360.000000,335.000000,"- - -");
        TextDrawUseBox(LeTextDraw,1);
        TextDrawBoxColor(LeTextDraw,0x00000033);
        TextDrawTextSize(LeTextDraw,800.000000,300.000000);
        TextDrawAlignment(LeTextDraw,0);
        TextDrawBackgroundColor(LeTextDraw,0x00000000);
        TextDrawFont(LeTextDraw,1);
        TextDrawLetterSize(LeTextDraw,1.000000,14.100000);
        TextDrawColor(LeTextDraw,0x00000000);
        TextDrawSetOutline(LeTextDraw,1);
        TextDrawSetProportional(LeTextDraw,1);
        //TextDrawShowForPlayer(playerid, Text:LeTextDraw);
    for(new line; line<10; line++)
        {
            TextDrawShowForPlayer(playerid, Message[line]);
        }

        //example
        new stringA[64], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
    format(stringA,sizeof stringA,"{008000}[JOIN] {FFFFFF}%s",pName);
    SendLeMessage(playerid, stringA);
        return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
        TextDrawHideForPlayer(playerid, Text:LeTextDraw);

        //example
        new stringB[64], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    switch(reason)
    {
        case 0: format(stringB,sizeof stringB,"{ADCC33}[TIME]{FFFFFF}%s ",name);
        case 1: format(stringB,sizeof stringB,"{FF0000}[QUIT]{FFFFFF}%s",name);
        case 2: format(stringB,sizeof stringB,"{FF4D00}[KICK/BAN]{FFFFFF}%s ",name);
    }
    SendLeMessage(playerid, stringB);
        return 1;
}

stock SendLeMessage(playerid, const text[])
{
    for(new line; line < 10; line++)
    {
        TextDrawShowForPlayer(playerid, Message[line]);
    }
    for(new line; line < 10; line++)
    {
        TextDrawHideForAll(Message[line]);
        if(line < 10)
        {
            MessageStr[line] = MessageStr[line+1];
            TextDrawSetString(Message[line], MessageStr[line]);
        }
    }
    format(MessageStr[10], 128, "%s",text);
    TextDrawSetString(Message[10], MessageStr[10]);
    for(new line; line < 10; line++)
    {
        TextDrawShowForAll(Message[line]);
    }
    return 1;
}
// ©Leingod 2011 - All rights Reserved
These is the error i get when i try to compile:

pawn Код:
TDJoin.pwn(150) : error 032: array index out of bounds (variable "MessageStr")
TDJoin.pwn(151) : error 032: array index out of bounds (variable "Message")
TDJoin.pwn(58) : error 032: array index out of bounds (variable "Message")
This is the script line

pawn Код:
format(MessageStr[10], 128, "%s",text); //150
         TextDrawSetString(Message[10], MessageStr[10]);//151
and line 58

pawn Код:
TDJoin.pwn(58) : error 032: array index out of bounds (variable "Message")
Please tell me how to fix these errors?!?! I really need this script in my server!
Reply
#2

Fixed for ya +1 rep if this has helped ya - You need to count your variables properly - You didnt have 10 you had 11

Код:
/*
                                                Copyright©, Leingod - 2011
________________________________________________________________________________

                                    ##     ##### ## ##  #  #####   ##  ###
                                    ##     ##    ## ##  # #       #  # #  #
                                    ##     ####  ## # # # ##  ### #  # #   #
                                    ##     ##    ## #  ## ##    # #  # #  #
                                    ###### ##### ## #   #  #####   ##  ###

                                                   Le TextDraw Message Box
                             ---------------------------
________________________________________________________________________________

FORUM SA:MP PROFILE: http://forum.sa-mp.com/member.php?u=120914

Credits:
-Leingod (Me) For make this.
-Sandra18[NL] I get little code from him

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/

#include <a_samp>
#include <zcmd>

//new
new Text:Message[11];
new MessageStr[11][150];
new Text:LeTextDraw;

// DEFINES
#define le_TD_version   "ver.3.0"

main()
{
        print("\n--------------------------------------------------------");
        print(" Running FilterScript Leingod's TextDraw Message Box "#le_TD_version"");
        print("--------------------------------------------------------\n");
}

public OnFilterScriptInit()
{
        for(new line; line<11; line++)
        {
        	format(MessageStr[line], 128, " ");
        }
	    Message[0] = TextDrawCreate(365, 300+38, MessageStr[0]);
	    Message[1] = TextDrawCreate(365, 307+38, MessageStr[1]);
	    Message[2] = TextDrawCreate(365, 314+38, MessageStr[2]);
	    Message[3] = TextDrawCreate(365, 321+38, MessageStr[3]);
	    Message[4] = TextDrawCreate(365, 328+38, MessageStr[4]);
	    Message[5] = TextDrawCreate(365, 335+38, MessageStr[5]);
	    Message[6] = TextDrawCreate(365, 342+38, MessageStr[6]);
	    Message[7] = TextDrawCreate(365, 349+38, MessageStr[7]);
	    Message[8] = TextDrawCreate(365, 356+38, MessageStr[8]);
	    Message[9] = TextDrawCreate(365, 363+38, MessageStr[9]);
	    Message[10] = TextDrawCreate(365, 370+38, MessageStr[10]);
    	for(new line; line<11; line++)
        {
	        TextDrawLetterSize(Message[line], 0.40, 0.90);
	        TextDrawSetShadow(Message[line], 0);
         	TextDrawAlignment(Message[line], 1);
        	TextDrawFont(Message[line], 1);
        	TextDrawShowForAll(Message[line]);
        }
    	for(new line; line<11; line++)
        {
	        TextDrawLetterSize(Message[line], 0.28, 0.83);
	        TextDrawSetShadow(Message[line], 0);
         	TextDrawAlignment(Message[line], 1);
	        TextDrawTextSize(Message[line], 640, 480);
	        TextDrawBoxColor(Message[line], 0x000000FF);
	        TextDrawFont(Message[line], 1);
	        TextDrawSetOutline(Message[line], 1);
	        TextDrawShowForAll(Message[line]);
        }
        return 1;
}

public OnFilterScriptExit()
{
    	for(new line; line<10; line++)
        {
            TextDrawDestroy(Message[line]);
        }
        return 1;
}


public OnPlayerConnect(playerid)
{
        LeTextDraw = TextDrawCreate(360.000000,335.000000,"- - -");
        TextDrawUseBox(LeTextDraw,1);
        TextDrawBoxColor(LeTextDraw,0x00000033);
        TextDrawTextSize(LeTextDraw,800.000000,300.000000);
        TextDrawAlignment(LeTextDraw,0);
        TextDrawBackgroundColor(LeTextDraw,0x00000000);
        TextDrawFont(LeTextDraw,1);
        TextDrawLetterSize(LeTextDraw,1.000000,14.100000);
        TextDrawColor(LeTextDraw,0x00000000);
        TextDrawSetOutline(LeTextDraw,1);
        TextDrawSetProportional(LeTextDraw,1);
        //TextDrawShowForPlayer(playerid, Text:LeTextDraw);
    	for(new line; line<10; line++)
        {
            TextDrawShowForPlayer(playerid, Message[line]);
        }

        //example
        new stringA[64], pName[MAX_PLAYER_NAME];
	    GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
	    format(stringA,sizeof stringA,"{008000}[JOIN] {FFFFFF}%s",pName);
	    SendLeMessage(playerid, stringA);
        return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
        TextDrawHideForPlayer(playerid, Text:LeTextDraw);

        //example
        new stringB[64], name[MAX_PLAYER_NAME];
    	GetPlayerName(playerid,name,MAX_PLAYER_NAME);
	    switch(reason)
	    {
	        case 0: format(stringB,sizeof stringB,"{ADCC33}[TIME]{FFFFFF}%s ",name);
	        case 1: format(stringB,sizeof stringB,"{FF0000}[QUIT]{FFFFFF}%s",name);
	        case 2: format(stringB,sizeof stringB,"{FF4D00}[KICK/BAN]{FFFFFF}%s ",name);
	    }
    	SendLeMessage(playerid, stringB);
        return 1;
}

stock SendLeMessage(playerid, const text[])
{
    for(new line; line < 10; line++)
    {
        TextDrawShowForPlayer(playerid, Message[line]);
    }
    for(new line; line < 10; line++)
    {
        TextDrawHideForAll(Message[line]);
        if(line < 10)
        {
            MessageStr[line] = MessageStr[line+1];
            TextDrawSetString(Message[line], MessageStr[line]);
        }
    }
    format(MessageStr[10], 128, "%s",text);
    TextDrawSetString(Message[10], MessageStr[10]);
    for(new line; line < 10; line++)
    {
        TextDrawShowForAll(Message[line]);
    }
    return 1;
}
// ©Leingod 2011 - All rights Reserved
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)