MineExplode-Script - 1 Error
#1

Hello,


here's my problem:


pawn Код:
new Float:Bombenpkt[14][3] = {
{284.11062622,1742.19189453,19.10804176},
{190.96379089,1690.42700195,19.10804176},
{136.22543335,1741.16479492,19.10804176},
{28.86712074,1674.37341309,19.10804176},
{-19.31500053,1742.93286133,19.10804176},
{48.79174805,1813.67553711,19.10804176},
{-4.14370537,1905.34301758,19.10804176},
{74.65625763,1964.73071289,19.10804176},
{111.43378448,2096.27416992,19.10804176},
{258.37670898,2107.98120117,19.10804176},
{397.12628174,2084.69531250,19.10804176},
{413.42593384,1954.53125000,19.10804176},
{361.07113647,1842.04956055,19.10804176},
{344.92239380,1797.48559570,19.10804176}
};


Next part:


public MineExplode(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 10, Bombenpkt[0], Bombenpkt[1], Bombenpkt[2]))// EDIT at this line.. But it don't dixed the Error 035: argument type mismatch (argument 3)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    CreateExplosion(x, y, z, 2, 10);
    SendClientMessage(playerid, COLOR_RED, "Du bist in eine Mine geraten. Die Mainbase ist ein gefдhrlicher Ort! Halte dich fern!");
    return 1;
    }
}
Any solutions? I don't want to make random explodings.. When a player enter this point he will explode.


Thanks!
Reply
#2

you forgot to put IF

IsPlayerInRangeOfPoint

must be

if(IsPlayerInRangeOfPoint
Reply
#3

Didnt understand what you mean can i give details and what is the error?
Reply
#4

Код:
new Float:Bombenpkt[14][3] = {
{284.11062622,1742.19189453,19.10804176},
{190.96379089,1690.42700195,19.10804176},
{136.22543335,1741.16479492,19.10804176},
{28.86712074,1674.37341309,19.10804176},
{-19.31500053,1742.93286133,19.10804176},
{48.79174805,1813.67553711,19.10804176},
{-4.14370537,1905.34301758,19.10804176},
{74.65625763,1964.73071289,19.10804176},
{111.43378448,2096.27416992,19.10804176},
{258.37670898,2107.98120117,19.10804176},
{397.12628174,2084.69531250,19.10804176},
{413.42593384,1954.53125000,19.10804176},
{361.07113647,1842.04956055,19.10804176},
{344.92239380,1797.48559570,19.10804176}
};


Next part:


public MineExplode(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 10, Bombenpkt[0], Bombenpkt[1], Bombenpkt[2]))// Error 035: argument type mismatch (argument 3)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    CreateExplosion(x, y, z, 2, 10);
    SendClientMessage(playerid, COLOR_RED, "Du bist in eine Mine geraten. Die Mainbase ist ein gefдhrlicher Ort! Halte dich fern!");
    return 1;
    }
}
Reply
#5

MJ!, thanks.. forgot that xD But the error ist still there.. It's not the solution. It's an error of this arrays:


pawn Код:
Bombenpkt[0]// I can change it to Bombenpkt[1][0] this solute the error.. but i want that the system checks if the player is in reach of this points.. so a check for every point, not for ONE point.
Reply
#6

First of all a little array explanation
pawn Код:
new Array[][] =
{ //    |0||1||2|
/* 0 */ {5, 8, 3}, //5 = Array[0][0], 8 = Array[0][1], 3 = Array[0][2]
/* 1 */ {7, 4, 9}  //7 = Array[1][0], 4 = Array[1][1], 9 = Array[1][2]
}
Now if we call Array[0] we get the array {5, 8, 3}, so if you call Bombenpkt[0] you get an array but we need a float => Argument type mistake

And if we want it for all mines we need to loop through all cords

pawn Код:
public MineExplode(playerid)
{
    for(new i; i < sizeof Bombenpkt; i++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 5, Bombenpkt[i][0], Bombenpkt[i][1], Bombenpkt[i][2])) //Radius changed to 5
        {
            SendClientMessage(playerid, COLOR_RED, "Du bist in eine Mine geraten. Die Mainbase ist ein gefдhrlicher Ort! Halte dich fern!");
            return CreateExplosion(Bombenpkt[i][0], Bombenpkt[i][1], Bombenpkt[i][2], 2, 10); //The mine should explode where it is
        }
    }
}
And I suggest to use a timer for all players, not one for each
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)