help! ads
#1

pawn Код:
#define ADS 11027

new newspaperad[10][128];

CMD:ads(playerid, params[])
{
    new string[128];

    if(gPlayerLogged{playerid} == 0)
    {
        SendClientMessageEx(playerid, COLOR_GREY, "Not Login.");
        return 1;
    }
    if(PlayerInfo[playerid][pADMute] == 1)
    {
        SendClientMessageEx(playerid, COLOR_GREY, "Bloked from /ads");
        return 1;
    }
    if(PlayerInfo[playerid][pPnumber] == 0)
    {
        SendClientMessageEx(playerid, COLOR_GRAD2, "Dont have cell phone.");
        return 1;
    }
    if(GetPVarInt(playerid, "Injured") == 1) return SendClientMessageEx(playerid, COLOR_GREY, "Not now");
    if(PlayerCuffed[playerid] != 0) return SendClientMessageEx(playerid, COLOR_GREY, "Not now.");
    if(PlayerInfo[playerid][pJailTime] > 0) return SendClientMessageEx(playerid, COLOR_GREY, "Not now.");

    if(isnull(params))
    {
        SendClientMessageEx(playerid, COLOR_GRAD2, "Perintah: /ads [Text]");
        return 1;
    }
    if(strlen(params) >= 60 )
    {
        SendClientMessageEx( playerid, COLOR_GRAD1, "Only 60 character" );
        return 1;
    }
    if ((!adds) && (PlayerInfo[playerid][pAdmin] < 2))
    {
        SendClientMessageEx(playerid, COLOR_GRAD2, "Wait 30 sec for /ads.");
        return 1;

    }
    new payout = strlen(params) * 1000;
    if(GetPlayerCash(playerid) < payout)
    {
        format(string, sizeof(string), "* You used %d character for $%d,you dont have money.", strlen(params), payout);
        SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string);
        return 1;
    }
    format(string, sizeof(string), "~r~$%d~n~~w~With: %d character", payout, strlen(params));
    GameTextForPlayer(playerid, string, 5000, 5);
    if (PlayerInfo[playerid][pAdmin] < 2){SetTimer("AddsOn", addtimer, 0);adds = 0;}

    GivePlayerCash(playerid, - payout);
    format(string, sizeof(string), "-----------------Ads----------------");
    format(string, sizeof(string), " %s", params);
    format(string, sizeof(string), "[Call] %s : %s", GetPlayerNameEx(playerid),PlayerInfo[playerid][pPnumber]);
    OOCNews(TEAM_GROVE_COLOR,string);

    if(!newspaperad[1][0])
    {
        newspaperad[1] = string;
    }
    else if(!newspaperad[2][0])
    {
        newspaperad[2] = string;
    }
    else if(!newspaperad[3][0])
    {
        newspaperad[3] = string;
    }
    else if(!newspaperad[4][0])
    {
        newspaperad[4] = string;
    }
    else if(!newspaperad[5][0])
    {
        newspaperad[5] = string;
    }
    else if(!newspaperad[6][0])
    {
        newspaperad[6] = string;
    }
    else if(!newspaperad[7][0])
    {
        newspaperad[7] = string;
    }
    else if(!newspaperad[8][0])
    {
        newspaperad[8] = string;
    }
    else if(!newspaperad[9][0])
    {
        newspaperad[9] = string;
    }
    else if(!newspaperad[10][0])
    {
        newspaperad[10] = string;
    }
    else
    {
        newspaperad[1] = newspaperad[2];
        newspaperad[2] = newspaperad[3];
        newspaperad[3] = newspaperad[4];
        newspaperad[4] = newspaperad[5];
        newspaperad[5] = newspaperad[6];
        newspaperad[6] = newspaperad[7];
        newspaperad[7] = newspaperad[8];
        newspaperad[8] = newspaperad[9];
        newspaperad[9] = newspaperad[10];
        newspaperad[10] = string;
    }
    return 1;
}

CMD:lastads(playerid, params[])
{
    new adstring[1024];
    format(adstring, sizeof(adstring), "%s \n%s \n%s \n%s \n%s", newspaperad[1], newspaperad[2], newspaperad[3], newspaperad[4], newspaperad[5]);
    ShowPlayerDialog(playerid, ADS,DIALOG_STYLE_MSGBOX,"Last ads",adstring,"Next", "Exit");
    return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == ADS)
    {
        if (response)
        {
            new adstring[1024];
            format(adstring, sizeof(adstring), "%s \n%s \n%s \n%s", newspaperad[6], newspaperad[7], newspaperad[8], newspaperad[9]);
            ShowPlayerDialog(playerid, 3711,DIALOG_STYLE_MSGBOX,"Last Ads",adstring,"Close", "Back");
        }
        else
        {
            new adstring[1024];
            format(adstring, sizeof(adstring), "%s \n%s \n%s \n%s \n%s", newspaperad[1], newspaperad[2], newspaperad[3], newspaperad[4], newspaperad[5]);
            ShowPlayerDialog(playerid, ADS,DIALOG_STYLE_MSGBOX,"Last Ads",adstring,"Next", "Close");
        }
    }
    return 1;
}
Quote:

E:\GTA SA\Script GTA SAMP\Gm\RP\RP\gamemodes\RP.pwn(49423 ) : error 032: array index out of bounds (variable "newspaperad")
E:\GTA SA\Script GTA SAMP\Gm\RP\RP\gamemodes\RP.pwn(49425) : error 032: array index out of bounds (variable "newspaperad")
E:\GTA SA\Script GTA SAMP\Gm\RP\RP\gamemodes\RP.pwn(49437) : error 032: array index out of bounds (variable "newspaperad")
E:\GTA SA\Script GTA SAMP\Gm\RP\RP\gamemodes\RP.pwn(49438 ) : error 032: array index out of bounds (variable "newspaperad")
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.

Reply
#2

From the pawn tutorial: The array index is larger than the highest valid entry of the array. Out of bounds literally means, you have entered something that exceeds the basic size of the array!
Reply
#3

Arrays start at 0 not 1.

pawn Код:
new newspaperad[10];
/*
newspaperad[0]
newspaperad[1]
newspaperad[2]
newspaperad[3]
newspaperad[4]
newspaperad[5]
newspaperad[6]
newspaperad[7]
newspaperad[8]
newspaperad[9]
*/
Strings also need their own 'storage' because they use their own cell for each character and a null terminator.

pawn Код:
new newspaperad[10][128];
Would be proper for a string.

Then use format not the equal sign.

pawn Код:
format(newspaperad[0], 128, "%s", newspaperad[1]);
format(newspaperad[1], 128, "%s", newspaperad[2]);
format(newspaperad[2], 128, "%s", newspaperad[3]);
format(newspaperad[3], 128, "%s", newspaperad[4]);
format(newspaperad[4], 128, "%s", newspaperad[5]);
format(newspaperad[5], 128, "%s", newspaperad[6]);
format(newspaperad[6], 128, "%s", newspaperad[7]);
format(newspaperad[7], 128, "%s", newspaperad[8]);
format(newspaperad[8], 128, "%s", newspaperad[9]);
format(newspaperad[9], 128, "%s", string);
Reply
#4

PHP код:
CMD:adv(playeridparams[])
{
    if (
AdvTimer1 != 0) return SendClientMessage(playerid0xFF0000FF"You must wait some time before making another advertisement.");
    if (
isnull(params))
    {
        
SendClientMessage(playerid0xFF0000FF"Usage: /adv [advertisement]");
        return 
1;
    }
    new 
string[152], playername[24];
    
GetPlayerName(playeridplayernamesizeof(playername));
    if(
AntiAdv(playeridparams)) return 1;
    
format(stringsizeof(string), "||*** Advertisement from %s: %s ***||"playernameparams);
    
SendClientMessageToAll(0xFF0000FFstring);
    
AdvTimer1 1;
    
SetTimer("AdvTimer"180000false);
    
GivePlayerMoney(playerid, -350);
    
SendClientMessage(playerid, -1"The advertisement has costed you 350$!");
    return 
1;

in top of your script:

PHP код:
new AdvTimer1
Reply
#5

That doesn't solve his problem or teach him anything.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)