Einsperren

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
  • Wie sollte ein Cmd aussehen der es ermöglicht mit einem player einen anderen einzusperren(ins gefängnis zu teleportieren?
    Gibt es eine Vorlage dazu? (Ich bevorzuge Cmds weil diese momentan meine einzige Möglichkeit sind sie nur bestimmten Fraktionen zugänglich zu machen.. (in diesem Falle der Polizei)


    greez Beni

    Gewalt ist keine Lösung aber ein Weg zum Ziel :thumbup:

  • Von meinem Selfmade


    Onplayercommandtext
    dcmd(einsperren,10,cmdtext);


    ganz unten


    dcmd_einsperren(playerid, params[])
    {
    new id, price;
    if(sscanf(params, "ui", id, price)) SendClientMessage(playerid, COLOR_GREY, " /einsperren [SpielerID] [Preis]");
    //else if(SpielerInfo[playerid][Frakt] == 1) SendClientMessage(playerid, COLOR_GREY, " Nur für Polizisten ");
    else if(id == INVALID_PLAYER_ID || id == playerid || IsPlayerNPC(id)) SendClientMessage(playerid, COLOR_GREY, " Spieler kann nicht verhaftet werden.");
    else if(!IsPlayerInRangeOfPoint(playerid, 8.0, 196.6010,158.9072,1003.0234) && !IsPlayerInRangeOfPoint(playerid, 8.0, 217.0168,113.6116,999.0156)) SendClientMessage(playerid, COLOR_GREY, "Du bist nicht beim Gefängnis.");
    // else if(SpielerInfo[id][Frakt] == 1) SendClientMessage(playerid, COLOR_GREY, " Du kannst kein Polizist einsperren.");
    else if(price < 1 || price > 500) SendClientMessage(playerid, COLOR_GREY, "Der Preis muss zwischen €1 und €500 sein.");
    else
    {
    new Float:sX, Float:sY, Float:sZ;
    GetPlayerPos(id, sX, sY, sZ);
    if(IsPlayerInRangeOfPoint(id, 6.0, sX, sY, sZ))
    {
    if(SpielerInfo[id][Wanteds] > 0)
    {
    new str[256];
    ResetPlayerWeapons(id);
    GivePlayerMoney(id, -price);
    SetPlayerInterior(id, 10);
    SetPlayerPos(id, 215.2443,109.2351,999.0156);
    SpielerInfo[id][Knast] = 1;
    SpielerInfo[id][Wanteds] = 0;
    format(str, sizeof(str), "< Du wurdest für $%d in den Knast gesperrt. >",price);
    SendClientMessage(id, COLOR_RED, str);
    SendClientMessage(playerid, COLOR_GREEN, "< Der Spieler wurde erfolgreich eingesperrt. >");
    format(str, sizeof(str), "~r~K~w~nast...");
    GameTextForPlayer(id, str, 5000, 5);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "*:: Dieser Spieler hat keine Wanteds. ::*");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "*:: Dieser Spieler ist nicht in deiner Nähe. ::*");
    return 1;
    }
    }
    return 1;

    musst du halt alles auf deine sachen ändern spricht bei mir SpielerInfo.... und bei dir halt.....

  • Er wird eingesperrt bis du ihn rausholst.
    das geht mit diesem Command:
    dcmd(freilassen,10,cmdtext);
    dcmd_freilassen(playerid, params[])
    {
    new id;
    if(sscanf(params, "u", id)) SendClientMessage(playerid, COLOR_GREY, " /freilassen [SpielerID]");
    //else if(SpielerInfo[playerid][Frakt] == 1) SendClientMessage(playerid, COLOR_GREY, " Nur für Polizisten ");
    else if(id == INVALID_PLAYER_ID || id == playerid || IsPlayerNPC(id)) SendClientMessage(playerid, COLOR_GREY, " Spieler kann nicht freigelassen werden.");
    else
    {
    new Float:sX, Float:sY, Float:sZ;
    GetPlayerPos(id, sX, sY, sZ);
    if(IsPlayerInRangeOfPoint(id, 6.0, sX, sY, sZ))
    {
    if(SpielerInfo[id][Knast] == 1)
    {
    SetPlayerInterior(id, 10);
    SetPlayerPos(id, 196.6010,158.9072,1003.0234);
    SpielerInfo[id][Knast] = 0;
    SendClientMessage(id,COLOR_GREEN, "Du wurdest aus dem Gefängniss von entlassen.");
    SendClientMessage(playerid,COLOR_GREEN, "Du hast aus dem Gefängniss entlassen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "*:: Spieler nicht im Gefängniss. ::*");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "*:: Dieser Spieler ist nicht in deiner Nähe. ::*");
    return 1;
    }
    }
    return 1;
    }

  • Super füge ich grad ein brauche im Mom das ganze noch nicht mit Countdown
    Aber eine frage habe ich noch


    Ein Cmd (für Fraktion) sieht bei mir so aus


    if(strcmp("/G2", cmdtext, true, 10) ==0)
    {
    if(gTeam[playerid] == 0)
    {
    SetPlayerPos(playerid,2267.5237,2447.0210,3.5313);
    SendClientMessage(playerid, Rot, "Du wurdest nun in die Police Garage 2 teleportiert.");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist nicht bei der Police.");
    }
    return 1;
    }


    Wie mache ich das
    if(gTeam[playerid] == 0)


    Jetzt bei deiner Vorlage?


    Und ehm.... Bei mir ist SpielerInfo nicht definert Was muss ich dafür machen
    (habe Login/Register System GUI, und ein adminsystem das nicht funktioniert :D )

    Gewalt ist keine Lösung aber ein Weg zum Ziel :thumbup:

    Einmal editiert, zuletzt von _Beni_ ()

  • Danke von mir auch ^^
    Aber ich bekomm es einfach nicht hin, das ein Timer per Befehl konfiguriert wird? Also /jail ID Preis Zeit



    dcmd_jail(playerid, params[])
    {
    new id, price;
    if(sscanf(params, "uii", id, price)) SendClientMessage(playerid, COLOR_RED, "Benutze /einsperren [SpielerID] [Preis] [Zeit]");
    else if(gTeam[playerid] != 1) SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist!");
    else if(id == INVALID_PLAYER_ID || id == playerid || IsPlayerNPC(id)) SendClientMessage(playerid, COLOR_RED, "Ungültiger Spieler");
    else if(!IsPlayerInRangeOfPoint(playerid, 8.0, 267.6492,78.5978,1001.0391)) SendClientMessage(playerid, COLOR_GREY, "Du bist nicht beim Gefängnis.");
    else if(gTeam[id] == 1) SendClientMessage(playerid, COLOR_RED, "Du kannst keinen Polizisten einsperren!");
    else if(price < 1 || price > 2000) SendClientMessage(playerid, COLOR_RED, "Die Strafe muss zwischen 1 und 2000 liegen!");
    else
    {
    new Float:sX, Float:sY, Float:sZ;
    GetPlayerPos(id, sX, sY, sZ);
    if(IsPlayerInRangeOfPoint(id, 6.0, sX, sY, sZ))
    {
    if(pInfo[id][pWanted] > 0)
    {
    new str[256];
    ResetPlayerWeapons(id);
    GivePlayerMoney(id, -price);
    SetPlayerInterior(id, 10);
    SetPlayerPos(id, 264.6373,77.3694,1001.0391);
    pInfo[id][pJail] = 1;
    pInfo[id][pWanted] = 0;
    format(str, sizeof(str), "Du wurdest für %d$ in den Knast gesperrt",price);
    SendClientMessage(id, COLOR_RED, str);
    SendClientMessage(playerid, COLOR_GREEN, "Spieler erfolgreich eingesperrt.");
    format(str, sizeof(str), "~r~K~w~nast...");
    GameTextForPlayer(id, str, 5000, 5);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Der Spieler hat keine Wanteds!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Der Spieler ist nicht in deiner Nähe!");
    return 1;
    }
    }
    return 1;
    }

  • Du musst einfach da wo ich SpielerInfo[playerid][Frakt] == 1) habe if(gTeam[playerid] == 0) hinmachen.

  • Aber jetzt will er diese Zeile nicht annerkennen
    C:\Users\Beni\Desktop\GTA\Alter Server things\Server\gamemodes\Yeah!.pwn(1276) : error 036: empty statement
    -->
    if(gTeam[playerid] ==0);


    Ausserdem habe ich folgende Errors:


    C:\Users\Beni\Desktop\GTA\Alter Server things\Server\gamemodes\Yeah!.pwn(1288) : error 017: undefined symbol "SpielerInfo"
    C:\Users\Beni\Desktop\GTA\Alter Server things\Server\gamemodes\Yeah!.pwn(1288) : warning 215: expression has no effect
    C:\Users\Beni\Desktop\GTA\Alter Server things\Server\gamemodes\Yeah!.pwn(1288) : error 001: expected token: ";", but found "]"
    C:\Users\Beni\Desktop\GTA\Alter Server things\Server\gamemodes\Yeah!.pwn(1288) : error 029: invalid expression, assumed zero
    C:\Users\Beni\Desktop\GTA\Alter Server things\Server\gamemodes\Yeah!.pwn(1288) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.

    :huh:


    Edit:
    (Sollte ich noch was einbauen so sagt es mir bitte :rolleyes: )
    Hier noch die Zeile mit den vielen Errors (Ich gehe davon aus das mir irgendwas im Script fehlt)
    if(SpielerInfo[id][Wanteds] > 0)

    Gewalt ist keine Lösung aber ein Weg zum Ziel :thumbup:

  • if(gTeam[playerid] ==0);


    if(gTeam[playerid] ==0)//; ...^^

    erm.. SpielerInfo[id][Wanteds] musst du auf dein script verändern.
    Wiegesagt es ist aus meinen selfmade du musst es bei dir anpassen

  • Wenn ich bei
    if(gTeam[playerid]==0);
    Das ";"
    wegnehme krieg ich einen Error... 8|


    Ok anpassen kann ich versuchen
    Bin ich richtig in der Annahme "SpielerInfo durch Spieler_Daten ersetzen zu müssen
    wenn das bei mir so aussieht?
    enum spieler_daten
    {
    cash,
    wanted,
    skin,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt,
    AdminLevel
    }


    Und wenns richtig ist bekomm ich trotzdem nen Error ?( Naja werde nach dem Fehler suchen thx für die Vorlage

    Gewalt ist keine Lösung aber ein Weg zum Ziel :thumbup:

  • Die Curly Braces sowie ";" müssen bleiben! egal wo!

  • Was redest du den?
    bei der abfrage ob er in einem Team ist darf kein ";" sein =O

  • Bei meinen Cmd's brauchts auch keine ";" aber hier anscheinend schon :wacko:
    Ehm habe jetzt irgend einen komischen Versuch das ganze in Cmd umzuwandeln :pinch: KEINE GUTE IDEE


    Ka
    was jetzt
    nehme glaube alles wieder raus und wage mich später noch einmal an das ganze ran :|

    Gewalt ist keine Lösung aber ein Weg zum Ziel :thumbup:

  • Warum bekommt er dann ein Error o0
    Najaa :!: . :!: Versuch du es doch ich ahb das ";" gelassen und bekam kein -ErrooooooR- Fail! :wacko: