Rennen Script

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • hii leute kann einer mal hier posten wie ich ein rennen erstelle
    das rennen kann jeder /starten nicht nur admins
    und wie mache ich das mit dem roten Checkpoints
    wenn mann /rennen schreibt wird mann zur rennort teleportiert dann steht da die TOP 5 Liste wer ein Rekord geschaft hatt usw.
    wie bei [RSD]Andy`s Server oder [NSG] Server
    ein tut würde auch reichen
    danke schon mal im vorraus

  • 1. Erstell doch einfach vorher schon ein paar Strecken, indem du mit einem Fahrzeug durch die Stadt fährst und /save Strecke 1 Checkpoint 1 usw. machst.


    2. Bau dann ein Befehl, mit dem ein Spieler, einen anderen zum Rennen "einlädt".


    z.B. :


    new RaceStarted[MAX_PLAYERS];
    new RaceOffer[MAX_PLAYERS];
    new RaceReady[MAX_PLAYERS];


    //onplayerconnect


    RaceReady[playerid] = 0;
    RaceStarted[playerid] = 0;
    RaceOffer[playerid] = 999;



    //onplayercommandtext


    if(strcmp(cmd, "/invitetorace", true) == 0)
    {
    if(RaceStarted[playerid] == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Befehl: /invitetorace [playerID/playerName]");
    return 1;
    }
    new gegner = ReturnUser(tmp);
    if(IsPlayerConnected(gegner))
    {
    if(gegner!= playerid)
    {
    new racestring[128];
    new gegnername[MAX_PLAYER_NAME];
    new meinname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, meinname, sizeof(meinname));
    GetPlayerName(gegner, gegnername, sizeof(gegnername));
    format(racestring, sizeof(racestring), "** %s lädt dich zu einem Rennen ein, bestätige mit ( /accept race ).", meinname);
    SendClientMessage(gegner, COLOR_LIGHTBLUE, racestring);
    format(racestring, sizeof(racestring), "** Du hast %s zu einem Rennen eingeladen, warte auf seine Antwort.", gegnername);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, racestring);
    RaceOffer[gegner] = playerid;
    RaceOffer[playerid] = playerid;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist Offline!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du machst bereits bei einem Rennen mit!");
    }
    }



    if(strcmp(cmd, "/accept", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Befehl: /accept [Name]");
    SendClientMessage(playerid, COLOR_GREY, "Namen: Race");
    return 1;
    }
    if(strcmp(tmp, "race", true) == 0)
    {
    if(RaceOffer[playerid] < 999)
    {
    if(IsPlayerConnected(RaceOffer[playerid]))
    {
    new racestring[128];
    new gegnername[MAX_PLAYER_NAME];
    new meinname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, meinname, sizeof(meinname));
    GetPlayerName(RaceOffer[playerid], gegnername, sizeof(gegnername));
    format(racestring, sizeof(racestring), "** %s hat deine Einladung angenommen, starte das Rennen mit ( /startrace ).", meinname);
    SendClientMessage(RaceOffer[playerid], COLOR_LIGHTBLUE, racestring);
    format(racestring, sizeof(racestring), "** Du hast die Einladung von %s angenommen, warte, bis er das Rennen startet.", gegnername);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, racestring);
    RaceReady[RaceOffer[playerid]] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Dein Renneinlader ist Offline!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Es hat dich niemand zu einem Rennen eingeladen!");
    }
    }
    }



    if(strcmp(cmd, "/startrace", true) == 0)
    {
    if(RaceReady[playerid] == 1)
    {
    for(new r = 0; r<MAX_PLAYERS; r++)
    {
    if(RaceOffer[r] == playerid)
    {
    SetPlayerPos(r, X, Y, Z);
    SendClientMessage(r, COLOR_GREEN, "** Das Rennen startet in 10 Sekunden!");
    ...
    }
    }
    }
    }


    Da kannst du halt machen was du willst, jeweils die Fahrer in ein Fahrzeug stecken oder was anderes, ist dir überlassen. Ist nur ein kleiner Gedankenanstoß ;)

  • Die Errors

  • #define COLOR_GREY FARBE, bei den anderen auch.
    Zu strtok:
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }

  • immer noch 13 errors tut sich garnichts



    kannst du mir über teamviewer helfen msn : yunus-93@hotmail.de icq: 460 632 880

  • ich will ja nix sagen, aber eig. sollte jeder richtige programmierer errors ausbügeln können ;)



    außerdem sagt es doch eh schon was der haken ist: "undefined symbol" na was heißt das wohl :)