[REP+]why this random gives error? and how to fix it?
#1

hey guys,

i have mad ethis that when a player does /deal and he reaches his checkpoint the checkpoint gets deleted and he gets a random money... but the random thing isnt working.. it is giving this error:
Код:
D:\Program Files\[0.3d]my own drifting gamemode\gamemodes\TorettoRacing1.pwn(12308) : error 035: argument type mismatch (argument 2)
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
and i know this means that i typed something wrong.. but what? and how to fix it?

this are my pawn codes:

on top of script:
pawn Код:
new RandomMoney[][] =
{
    {5000},
    {3900},
    {8900},
    {7600},
    {6758},
    {4589},
    {3000}
};
on onplayerenter checkpoint:
pawn Код:
public OnPlayerEnterCheckpoint(playerid)
{
    GivePlayerMoney(playerid,RandomMoney[random(sizeof(RandomMoney))]);// this line gives the error
    DisablePlayerCheckpoint(playerid);
    return 1;
}
plsh elp
greets niels
Reply
#2

I dont thing the sizeof(RandomMoney))]); is needed try remove the sizeof part and if im wrong im sorry then atleast i tried to help
Reply
#3

not working.. now i got this error:
Код:
D:\Program Files\[0.3d]my own drifting gamemode\gamemodes\TorettoRacing1.pwn(12309) : error 076: syntax error in the expression, or invalid function call
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
and this code:
pawn Код:
public OnPlayerEnterCheckpoint(playerid)
{
    GivePlayerMoney(playerid,RandomMoney[random]);
    DisablePlayerCheckpoint(playerid);
    return 1;
}
pls help
Reply
#4

pawn Код:
public OnPlayerEnterCheckpoint( playerid )
{
    new
        rand = random( sizeof( RandomMoney ) );

    GivePlayerMoney( playerid, RandomMoney[ rand ][ 0 ] );// this line gives the error
    DisablePlayerCheckpoint( playerid );
    return 1;
}
Edit: Try it now, I forgot to add the "[ 0 ]" before.
It should work.
Reply
#5

still gives the same error... anyone knows how to fix?
Reply
#6

You don't need the extra dimension!

Change the array to this:

pawn Код:
new RandomMoney[] =
{
    5000,
    3900,
    8900,
    7600,
    6758,
    4589,
    3000
};
It gives the error because it was returning another array instead of the integer
Reply
#7

yeah that works XD
eehm and how do i make it that when the player enters the cp he gets the money and a msg says how much money he has earned?
Reply
#8

you created a 2dimensional array, thats not needed for a linear ordered amount of values:
pawn Код:
new RandomMoney[]={
    5000,
    3900,
    8900,
    7600,
    6758,
    4589,
    3000
};
and then, the same as Dwane suggested: (now including the message ^^)
pawn Код:
new rnd=random(sizeof(RandomMoney));
GivePlayerMoney(playerid,RandomMoney[rnd]);
new string[128];
format(string,sizeof(string),"You earned $%d",RandomMoney[rnd]);
SendClientMessage(playerid,0x33aa33ff,string);
edit: lucky you, i posted between. just delete the double shit hehe
Reply
#9

yeah that works XD
eehm and how do i make it that when the player enters the cp he gets the money and a msg says how much money he has earned?

EDIT: this is double post but else someone doesnt sees it XD
Reply
#10

Use format in the code that Dwane provided:

pawn Код:
public OnPlayerEnterCheckpoint( playerid )
{
    new
        rand = random( sizeof( RandomMoney ) );

    GivePlayerMoney( playerid, RandomMoney[ rand ] );
    format(string, sizeof(string), "You earned $%d!", RandomMoney[rand]); //Change the message to whatever you like :P
    SendClientMessage(playerid, 0xFFFFFFFF, string); //Sends the message
    DisablePlayerCheckpoint( playerid );
    return 1;
}
EDIT: This time "Babul" was faster XD
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)