Beiträge von Austrianer

    Am besten du überprüfst beim Spawnen ob er Level 1 ist also eine Abfrage, falls er Level 1 ist, wird der Checkpoint gesetzt, falls nicht wird keiner gesetzt.


    if (GetPlayerScore(playerid) == 1) {
    SetPlayerCheckpoint(........);
    }


    usw. ;)

    Es ist einfach so ich frage mich wieso sowas gescriptet wird wenn es sowas bereits gibt. Deswegen frage ich immer nach. Tut mir leid. Ich möchte einfach immer auf dem neuesten Stand bleiben, was das beste, was das schnellste ist ;) Ich hoffe das stört nicht.


    Nun gut da es nur einfacher ist, werde ich es wohl nicht benutzen. Aber trotzdem für deine Mühe und für deine leichtere Bedienbarkeit ein großes Lob. Denke schon das dies einige verwenden werden ;)

    Ich würde hier mit der Methode GetDistanceFromMeToPoint arbeiten. Das bedeutet du prüfst den Punkt des jeweiligen Krankenhaus und vergleichst dann welcher Wert kleiner ist und dort spawnst du dann. Verstehst du meine Logik?

    Aus den zwei Werten kommt kein Float-Wert heraus sondern ein dezimale Zahl deswegen %d.


    Außerdem kannst du nicht zwei Werte bei einem Format berechnen lassen.
    mach es einfach so


    new zahl = Spieler[playerid][Kill]/Spieler[playerid][Tode];
    format(string,sizeof(string),"%d",zahl);

    Falls es bei dir auch die richtige position ist. Sollte es stimmen.



    if(fbi == false)
    {
    SendClientMessage(playerid, COLOR_GREEN, "Tor geöffnet!");
    MoveObject(FBITor, 2933, -2431.69, 497.52, 30.42, 0.00, 0.00, 25.17), // HIER
    fbi = true;
    }


    Du hast immernoch bei der MoveObject-Zeile einen Beistrich stehen. Bitte ändern

    Hahaha mir ist der Fehler aufgefallen xD


    Spieler[killerid][Kill] ++;
    TextDrawHideForPlayer(killerid, Killsa[killerid]);
    format(str2,sizeof(str2),"%i",Spieler[killerid][Kill]);
    TextDrawSetString(Killsa[killerid],str2);
    TextDrawShowForPlayer(killerid, Killsa[killerid]);


    du hast das Textdraw dem gestorbenen geupdatetet und nicht dem der einen Kill mehr gemacht hat. So sollte es gehen ;)

    Erstellst du dein Tor auf der Position. Wenn du das Tor öffnen möchtest. Kann es nicht funktionieren wenn die Koordinaten genau gleich sind. Vergleich die mal. Erst bei der unteren Bedingung sind die Koordinaten anders.



    FBITor=CreateObject(2933, -2431.69, 497.52, 30.42, 0.00, 0.00, 25.17);
    MoveObject(FBITor, 2933, -2431.69, 497.52, 30.42, 0.00, 0.00, 25.17);
    // Fällt dir was auf?



    if(IsPlayerInFrac(playerid, 21))
    {
    if(fbi == false)
    {
    SendClientMessage(playerid, COLOR_GREEN, "Tor geöffnet!");
    MoveObject(FBITor, 2933, -2431.69, 497.52, 30.42, 0.00, 0.00, 25.17); // hattest hier einen Beistrich anstatt einen Strick-Punkt |||| Außerdem die gleichen koordinaten beim Tor aufmachen wie beim Tor erstellen. Verändere die Koordinaten beim Erstellen oder hier
    fbi = true;
    }
    else if(fbi == true) //
    {
    SendClientMessage(playerid, COLOR_RED, "Tor geschlossen!");
    MoveObject(FBITor, 2933, -2431.69, 497.52, 26.92, 0.00, 0.00, 25.17);
    fbi = false;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Mitglied vom F.B.I..!");
    }

    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    Killsa[i] = TextDrawCreate(78.0,426.0,"0");
    TextDrawLetterSize(Killsa[i],0.5,1.2);
    TextDrawFont(Killsa[i],2);
    TextDrawSetProportional(Killsa[i],1);
    TextDrawSetOutline(Killsa[i],1);
    TextDrawSetShadow(Killsa[i],4);
    }


    So gehört es auch ;)

    Unter OnPlayerDeath das hier einbauen



    TextDrawHideForPlayer(playerid, Killsa);
    TextDrawSetString(Killsa,str2);
    TextDrawShowForPlayer(playerid, Killsa);


    EDIT:


    Ich würde dir PlayerTextdraws empfehlen die extra dafür geschaffen sind. Erklärungen findest du auf Wiki ;)

    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    if(classid >= LSPD[0] && classid <= LSPD[2])
    { // Du hast diese schwellige Klammer bei der ersten Abfrage vergessen


    Siehe letzte Zeile hier oben ;)

    Ok dann danke ich euch beiden für eure Scriptvorschläge, ich bleibe bei meinem, da ich meines einfach am einfachsten finde und auch leicht verständlich. Ihr könnt ruhig eure Scripte da stehen haben. Mich stört das nicht. Jeder kann sich selbst entscheiden welches er nimmt ;)

    Sieht ja soweit gut aus.
    Aber wieso immer wieder eine Schleife benutzen um herauszufiltern welches Wort es genau war ?
    Meiner Meinung nach eine Schleife zuviel. Allgemein würde ich die Wörter niemals in einem Array auflisten eher auf aus einer Database auslesen lassen.
    Ich kann dir ja bei Bedarf mal meine CensorString funktion zukommen lassen und dir dazu nen kleinen COde für die DB schreiben.



    LG RFT


    Ich finde nicht das eine Schleife zuviel ist. Ich möchte es ja zensiert haben und nicht einfach weggelassen haben. ;)
    Das mit dem aus der Datenbank auslesen habe ich bereits geplant fürs nächste Update. Keine Sorge, dafür brauche ich keinen Code, das kann ich selber ;)
    Aber danke für deine Hilfe. ;)


    @ |-|auke


    Sie möchten es aber unter OnPlayerText und nicht unter der main-methode ;)
    Ja stimmt man müsste dann bei OnPlayerText das return auf 1 setzen. Für mein Script ist deine Version leider unbrauchbar, da ich eben noch was dazubearbeite und dann erst der Text ausgegeben wird. Aber trotzdem danke für deine Hilfe. Vielleicht nutzen ja manche deinen Code z.B. Stunt-Server ;)