SA-MP Forums Archive
help! ads - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: help! ads (/showthread.php?tid=399160)



help! ads - Scott Zulkifli - 13.12.2012

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.




Re: help! ads - RajatPawar - 13.12.2012

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!


Re: help! ads - Kreatyve - 13.12.2012

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);



Re: help! ads - Lynet - 13.12.2012

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



Re: help! ads - Kreatyve - 13.12.2012

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