Checkpoint

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
  • Suche Script das Spieler Checkpoints erstellen können, so das die anderen ihn auf der Karte und den Checkpoint sehen?

  • Das sollte glaub lieber in Scriptwünsche rein... naja back to topic:



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/createcp", cmdtext, true) == 0)
    {
    new Float:x,Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    SetPlayerCheckpoint(i,x,y,z,5);
    }
    return 1;
    }
    }


    Wenn du möchtest dass der Radius vom Spieler bestimmt wird, dann diese Version:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new tmp[256],cmd[256],idx,radius;
    cmd = strtok(cmdtext,idx);

    if(!strcmp("/createcp",cmd,true))
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    return SendClientMessage(playerid,DEINEFARBE,"Benutze /createcp [Radius]");
    }
    radius = strval(tmp);
    if(radius < 1 || radius > 20)
    {
    return SendClientMessage(playerid,DEINEFARBE,"Du kannst nur Radius zwischen 1 und 20 machen!");
    }
    else
    {
    new Float:x,Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    SetPlayerCheckpoint(i,x,y,z,radius);
    }
    }
    return 1;
    }
    return 0;
    }


    Das ganze wurde von mir noch nicht vorher getestet!! Es könnten Fehler auftreten!!

  • Hay, danke für die schöne Arbeit, das geht. Die erste Version ist ok, der Radius soll nicht einstellbar sein, soll ja jeder auf der Map sehen können.


    Nun ist es nur so, das ganze muss wohl noch eine Stufe weiter gehen, weil das Problem ist das der Checkpoint ja immer da ist. Kann man das so machen das der Checkpoint wieder verschwindet nach einer bestimmten Zeit?


    Zusätzliche Frage: ist es auch noch möglich die Farbe mit der der Redmarker auf der Minimap, also rot, erscheint eine andere Farbe zuzuweisen, aber ohne die Spielerfarbe zu ändern?

    Einmal editiert, zuletzt von Lucas66 ()

  • DisablePlayerCheckpoint(playerid); damit machst du ihn weg. Die Farbe des CPs kann man nicht ändern

  • DisablePlayerCheckpoint(playerid); damit machst du ihn weg.

    Das reicht leider nicht aus, er muss nach einer bestimmten Zeit verschwinden. Das Problem ist wenn 10 Spieler einen Checkpoint gesetzt haben und ihn nicht selbstständig löschen sind Unmengen von Checkpoints auf der Map und keiner weiss mehr was los ist.


  • new CPtime;
    stock SetCPforAll(Float:x,Float:y,Float:z);
    {
    for(new s; s<MAX_PLAYERS; s++)
    {
    SetPlayerCheckpoint(s, x, y, z, 5.0);
    }
    CPtime = 20;
    return 1;
    }
    pubic Gamemodeinit()
    {
    SetTimer("CPcheck", 1000, 1);
    return 1;
    }


    forward CPcheck();
    public CPcheck()
    {
    if(CPtime >= 1)
    {
    CPtime--;
    if(CPtime == 0)
    {
    for(new s=0; s<MAX_PLAYERS; s++)
    {
    DisablePlayerCheckpoint(s);
    }
    }
    }
    return 1;
    }
    Sollte funktionieren

  • Zitat

    Das reicht leider nicht aus, er muss nach einer bestimmten Zeit verschwinden. Das Problem ist wenn 10 Spieler einen Checkpoint gesetzt haben und ihn nicht selbstständig löschen sind Unmengen von Checkpoints auf der Map und keiner weiss mehr was los ist.

    Macht keinen Sinn, jeder Spieler kann max. nur einen CP sehen ..

  • Macht keinen Sinn, jeder Spieler kann max. nur einen CP sehen ..

    achso, das wusste ich noch nicht....


    Hm danke.


    Aber Mist, wenn jeder sowieso nur einen Checkpoint sehen kann dann nützt das ja so alles nichts. Wenn einer drückt ist nicht gesagt ob er den gewünschten Checkpoint auch sieht, könnte dann auch ein anderer sein.


    Könnte man das auch noch so weiterentwickeln, dass man praktisch eingibt: /createcp [ID] und es damit nur dem Spieler zeigt der es sehen soll?


    Danke....

    Einmal editiert, zuletzt von Lucas66 ()