Beiträge von Jeffry

    Achso, du willst nicht eine komplette Zeile, sondern aus jeder Zeile etwas, zufällg?
    Dann so:
    forward movescheibe();
    public movescheibe()
    {
    MoveObject(scheibe1,scheibeRandom[random(sizeof(scheibeRandom))][0],scheibeRandom[random(sizeof(scheibeRandom))][1],scheibeRandom[random(sizeof(scheibeRandom))][2],1.0);

    Du hast eine Endlosschleife erstellt.
    Schreibe es so:
    if(strcmp(cmd, "/panzerung", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new vID = GetPlayerVehicleID(playerid);
    for(new fc = 0; fc<sizeof(FactionCars); fc++)
    {
    if(FactionCars[fc][fVehid] == vID)
    {
    if(GetPlayerMoney(playerid) >= 500000)
    {
    GivePlayerMoney(playerid, -500000);
    FactionCars[fc][fHealth] = 1250;
    SetVehicleHealth(FactionCars[fc][fVehid], FactionCars[fc][fHealth]);
    SendClientMessage(playerid, COLOR_GREEN, "Du hast Erfolgreich dein Fraktionsfahrzeug aufgerüstet.");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED,"Du hast zu wenig Money");
    }
    return 1;
    }
    }
    SendClientMessage(playerid, COLOR_RED,"Du bist in keinem Fraktions Auto");
    }
    return 1;
    }

    new Float:scheibeRandom[][] =
    {
    // Positionen
    {743.9,-3959.0,39.2},
    {740.0,-3965.0,39.0},
    {735.0,-3970.0,38.0},
    {730.0,-3975.0,38.5},
    {725.0,-3950.0,37.5},
    {720.0,-3978.0,37.0}
    };


    forward movescheibe();
    public movescheibe()
    {
    new rand = random(sizeof(scheibeRandom));
    MoveObject(scheibe1,scheibeRandom[rand][0],scheibeRandom[rand][1],scheibeRandom[rand][2],1.0);


    Meinst du es so?

    Das else, das zu dem if gehört hat muss auch weg.
    Insgesamt sieht es dann so aus:
    if(strcmp(cmd, "/news", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 9 || PlayerInfo[playerid][pLeader] == 9)
    {
    if(PlayerInfo[playerid][pMuted] == 1)
    {
    SendClientMessage(playerid, TEAM_CYAN_COLOR, "Du bist gemutet!");
    return 1;
    }

    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /news [newstext]");
    return 1;
    }
    format(string, sizeof(string), "News Reporter %s: %s", sendername, result);
    OOCNews(COLOR_NEWS,string);
    PlayerInfo[playerid][pNewsSkill] ++;
    if(PlayerInfo[playerid][pNewsSkill] == 50)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "* Dein News Reporter Skill ist jetzt auf Level 2, bald kannst du den News Helikopter fliegen und ein Interview machen.");
    }
    else if(PlayerInfo[playerid][pNewsSkill] == 100)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "* Dein News Reporter Skill ist jetzt auf Level 3, bald kannst du den News Helikopter fliegen und ein Interview machen.");
    }
    else if(PlayerInfo[playerid][pNewsSkill] == 200)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "* Dein News Reporter Skill ist jetzt auf Level 4, du kannst jetzt den News Helikopter fliegen.");
    }
    else if(PlayerInfo[playerid][pNewsSkill] == 400)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "* Dein News Reporter Skill ist jetzt auf Level 5, du kannst jetzt Interviews machen.");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Reporter !");
    }
    }
    //not connected
    return 1;
    }

    Entferne diese Zeile:
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 582 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 488 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 586)

    Hast du eine mehrzeilige Meldung mit vielen Zahlen im Compiler?
    Wenn ja, dann füge das unter den Includes ein:
    #pragma dynamic 100000


    Gegebenenfalls die Zahl etwas erhöhen, bis die Meldung weg geht.

    Willkommen in der Scripting Base!


    Du hast ein Array deklariert, welches du in OnPlayerClickTextDraw verwendest, allerdings nur mit 38 Indizes, also sowas:
    new Array[38];


    Erhöhe die 38, mindestens auf 39 oder mehr.

    Jeffry: Nein daran sollte es nicht liegen, habe ein paar Maps entfernt. Und RWObjects sind 923


    Also wie du auf dem Bild siehst geht es bei mir ja, sprich an dem Code liegt es nicht. Du kannst es ja mal auf einem leeren Server (zum Beispiel mit grandlarc Gamemode) versuchen, ob es dann geht.
    Lass dir ggf. sonst mal die ID des Objekts per print ausgeben, welche ID bekommst du da?

    Nimm die Nachricht aus der Schleife. In die Schleife setzt du nach einer erfolgreichen SendClientMessage eine Variable auf 1. Nach der Schleife fragst du ab ob diese Variable 1 ist oder nicht. Wenn nicht, dann gibst du die Fehler SendClientMessage aus.


    @Mencent:
    Nein, dann bricht die Schleife ab, sobald eine ID nicht online ist.

    Der Fehler liegt hier, bei Fraktion:
    format(query, sizeof(query), "UPDATE user SET level='%i', alevel='%i', geld='%i', skin='%i', fraktion'%i', rang='%i' WHERE id='%i'",
    zu:
    format(query, sizeof(query), "UPDATE user SET level='%i', alevel='%i', geld='%i', skin='%i', fraktion='%i', rang='%i' WHERE id='%i'",


    Da hat das Gleichzeichen gefehlt.
    Im Nachhinein wenn man den Log kennt fällt einem der Fehler sofort auf. Das Beispiel mit dem Wald vor lauter Bäumen kennen wir ja alle. :D

    Ohne Timer (bzw. OnPlayerUpdate) wirst du das nicht hinbekommen, ganz einfach deshalb, weil auch InterpolateCameraPos/LookAt nur gerade Strecken fährt (sprich die kürzeste Distanz zwischen den zwei Punkten), somit musst du aus vielen kleinen geraden Strecken einen Kreis machen (zum Beispiel ein 360-Eck).
    Denn, je mehr Ecken eine Fläche hat, desto mehr nähert sie sich einem Kreis an.

    (Quelle: http://www.lernkiosk.ch)


    Hast du also eine Fläche mit 360 Ecken, dann wäre jede Ecke ein Kamerapunkt, den du mit den trigonometrischen Funktionen (sin/cos/tan) errechnen kannst (Schleife durch alle Winkel (0-359)), indem du die Position eines Punktes auf einer Kreisbahn berechnest. Die Kamera lässt du dann vom Punkt 0° zum Punkt 1° bewegen, danach vom Punkt 1° zum Punkt 2° ... bis 358° zu Punkt 359° und wieder zu 0°.

    (Quelle: http://www.math.uni-leipzig.de)


    So würde sich die Kamera im Kreis drehen, wenn du als InterpolateCameraLookAt jeweils die Spielerposition nimmst, und als InterpolateCameraPos die errechnete Position auf dem "Kreis".

    (Quelle: http://www.math.uni-leipzig.de)



    Für ein Rechenbeispiel siehe: http://www.math.uni-leipzig.de…phics/theorie/dg_ber.html


    Alternativ kannst du dir dieses Tutorial anschauen:
    http://forum.sa-mp.com/showthread.php?t=291910


    Um einen Timer kommst du aber nicht herum (außer mit OnPlayerUpdate).