Beiträge von Shoxx

    Hallo,


    ich habe nun die Funktion etwas geändert.


    Undzwar habe ich sie nun so gemacht, dass man mit Num 2 die Müllsäcke Aufgeben kann.
    D.h.


    if(newkeys == KEY_ANALOG_DOWN) //NUM 2
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new carid = GetPlayerVehicleID(i);
    if(!IsASweeper(carid)) continue;
    if(checkpointee[i] == 3)
    {
    SendClientMessage(i, COLOR_WHITE, "Limit Erreicht");
    SetPlayerCheckpoint(i,1533.8406,-1474.2155,9.1087,5.0);
    checkpointee[i]++;
    continue;
    }
    if(checkpointee[i] < 4)
    {
    for(new o = 0;o<sizeof(Muell);o++)
    {
    if(muellobject[maxmuellobjects]);
    {
    if(IsPlayerInRangeOfPoint(i,5.0,Muell[o][XPoss],Muell[o][YPoss],Muell[o][ZPoss]))
    {
    DestroyObject(muellobject[o]);
    checkpointee[i]++;
    new string[64];
    format(string,sizeof(string),"%d Dreck weggeräumt",checkpointee[i]);
    SendClientMessage(i,COLOR_WHITE,string);
    }
    }
    else
    {
    SendClientMessage(i,COLOR_GREY,"Du musst schon auf einem Dreckhaufen stehen");
    }
    }
    }
    }
    return 1;
    }


    So sieht mein Befehl aus.


    Ich will aber, das man nur Num 2 Drücken kann wenn das Objekt "2677" dort auch ist.


    Wie mache ich demnach die if abfrage?


    for(new i = 0;i<sizeof(Muell);i++)
    {
    muellobject[i] = CreateObject(Muell[i][MuellID], Muell[i][XPos],Muell[i][YPos],Muell[i][ZPos]);
    }


    Hab das in mein Script eingefügt unter OnGameModeInit allerdings bekomme ich diese Warnings..
    number of arguments does not match definition
    number of arguments does not match definition
    number of arguments does not match definition

    Ja, allerdings habe da ein ein paar errors..


    Function Dreckweg()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new carid = GetPlayerVehicleID(i);
    if(!IsASweeper(carid)) continue;
    if(checkpointee[i] == 3)
    {
    SendClientMessage(i, COLOR_WHITE, "Limit Erreicht");
    continue;
    }
    for(int o = 0;o<sizeof(Muell);o++)
    {
    if(IsPlayerInRangeOfPoint(i,5.0,Muell[o][XPos],Muell[o][YPos],Muell[o][ZPos])
    {
    DestroyObject(muellobject[o]);
    checkpointee[i]++;
    new string[64];
    format(string,sizeof(string),"%d Dreck weggeräumt",checkpointee[i]);
    SendClientMessage(i,color,string);
    }
    }
    }
    return 1;
    }


    In Zeile 15
    expected token: ")", but found "{"

    Hallo,


    ist es möglich anstatt die Position abzufragen gleich abzufragen ob man auf dem Objekt ist?


    Anstatt
    if(IsASweeper(carid) && checkpointee[i] < 4 && dreck0 == 0 && IsPlayerInRangeOfPoint(i, 5.0, 1529.6143,-1439.0948,13.3828))
    so?
    if(IsASweeper(carid) && checkpointee[i] < 4 && dreck0 == 0 && dreckboden[0])


    dreckboden[0] = CreateObject(2677, 1529.5, -1439.3000488281, 12.699999809265, 0, 0, 0);

    Hatte vorher so eine Abfrage:
    Wie müsste sie dann aussehen?


    Function Dreckweg()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new carid = GetPlayerVehicleID(i);
    if(IsASweeper(carid) && checkpointee[i] < 4 && dreck0 == 0 && IsPlayerInRangeOfPoint(i, 5.0, 1529.6143,-1439.0948,13.3828))
    {
    DestroyObject(dreckboden[0]);
    SendClientMessage(i, COLOR_WHITE, "Dreck 0 ist Weg");
    checkpointee[i]++;
    dreck0 = 1;
    }
    if(IsASweeper(carid) && checkpointee[i] < 4 && dreck1 == 0 && IsPlayerInRangeOfPoint(i, 5.0, 1506.7222,-1443.4045,13.3828))
    {
    DestroyObject(dreckboden[1]);
    SendClientMessage(i, COLOR_WHITE, "Dreck 1 ist Weg");
    checkpointee[i]++;
    dreck1 = 1;
    }
    if(IsASweeper(carid) && checkpointee[i] < 4 && dreck2 == 0 && IsPlayerInRangeOfPoint(i, 5.0, 1485.4395,-1438.5841,13.3828))
    {
    DestroyObject(dreckboden[2]);
    SendClientMessage(i, COLOR_WHITE, "Dreck 2 ist Weg");
    checkpointee[i]++;
    dreck2 = 1;
    }
    if(checkpointee[i] == 3)
    {
    SendClientMessage(i, COLOR_WHITE, "Limit Erreicht");
    checkpointee[i]++;
    SetPlayerCheckpoint(i,1533.8406,-1474.2155,9.1087,5.0);
    return 1;
    }
    }
    return 1;
    }


    Ah Okay, und wenn ich jetzt sagen wir mal 10 Positionen habe. Dort soll überall dieses Müll Objekt erscheinen und ich will das wenn man drüber fährt das es verschwindet. Geht das auch mit den Enums?

    Leute was soll dieses 0815 getue hier?
    Ich wollte nur mal eine Allgemeine Frage stellen.


    Und wer es noch nicht gelesen hat, ich hatte schon ein Projekt mit 90 Usern täglich, allerdings wollen wir mal was neues Ausprobieren und da braucht ihr hier nicht mit irgendwelchen dummen Antworten zu kommen -.-

    Hallo,


    würde gerne mal wissen wie das mit den Enums geht?


    Hier schonmal erstellt.
    enum MuellEnum
    {
    MuellID,
    Float:XPos,
    Float:YPos,
    Float:ZPos
    };
    new Muell[][MuellEnum]=
    {
    {2677, 1529.6143,-1439.0948,13.3828},
    {2677, 1506.7222,-1443.4045,13.3828},
    {2677, 1485.4395,-1438.5841,13.3828}
    };


    Wie erstelle ich dann das Objekt also Wie erstelle ich das Objekt und wie lösche ich dann einzelne Objekte also z.b: das was in der mitte createt wird


    Danke!

    Hab das jetzt so gemacht:
    Function Dreckweg()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 5.0, 1529.6143,-1439.0948,13.3828))
    {
    DestroyObject(dreckboden[0]);
    }
    if(IsPlayerInRangeOfPoint(i, 5.0, 1506.7222,-1443.4045,13.3828))
    {
    DestroyObject(dreckboden[1]);
    }
    if(IsPlayerInRangeOfPoint(i, 5.0, 1485.4395,-1438.5841,13.3828))
    {
    DestroyObject(dreckboden[2]);
    }
    }
    }

    Funktioniert auch, will aber das so machen, dass wenn das Objekt weg ist sich ein Timer nur für das Objekt erstellt wird das alle Objekte einzeln wieder Respawnen.


    Wie kann ich das denn machen?

    Hallo,


    irgendwie funktioniert das nicht was ich vor hatte.


    Wollte das wenn man über das Objekt fährt das es dann verschwindet:
    Wo ist der Fehler, bzw. kann man das überhaupt so machen?


    Oben im Script:
    new dreckboden[3];


    Unter OnPlayerEnterCheckpoint:
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 1529.5, -1439.3000488281, 12.699999809265))
    {
    DestroyObject(dreckboden[0]);
    }
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 1506.6999511719, -1443.4000244141, 12.699999809265))
    {
    DestroyObject(dreckboden[1]);
    }
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 1485.5999755859, -1438.6999511719, 12.699999809265))
    {
    DestroyObject(dreckboden[2]);
    }


    Unter OnGameModeInit:
    dreckboden[0] = CreateObject(2677, 1529.5, -1439.3000488281, 12.699999809265, 0, 0, 0);
    dreckboden[1] = CreateObject(2677, 1506.6999511719, -1443.4000244141, 12.699999809265, 0, 0, 0);
    dreckboden[2] = CreateObject(2677, 1485.5999755859, -1438.6999511719, 12.699999809265, 0, 0, 0);


    Hoffentlich kann mir einer sagen warum es nicht funktioniert.


    Danke!

    Wäre es auch möglich mittels if( abfrage und If(IsPlayerInRange abfrage ein Objekt zu löschen also wenn ich mit dem Sweeper darüber fahre sollte dann das Objekt verschwinden und dann Zählen. Also er sollte dann auch Zählen wie viel Dreck er schon weggemacht hat. Damit er ab 10-20 Mal dreck aufsammeln dann ein Checkpoint bekommt, das er zur Base fahren soll. Wie würde ich das denn machen?