DM

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
  • Ein Arry (z.b. "AllowTele[MAXPLAYER]") für alle spieler anlegen und wenn man den teleportbefehl in die dm-Zone macht, wird die bool im array auf false gesetzt. Wenn er nun einen anderen Teleportbefehl macht, dann muss man immer schauen ob im array für den spieler true steht, wenn net, dann darf er net teleportieren. Wenn man nun /dmoff macht, wird sein bool im arry auf true gesetzt und er wird z.B. gekillt.
    Das wäre meine Variante, das scripten überlasse ich dir.


    Stratege993

    Signatur:
    Hier findest du viele nützliche Infos!

  • Oder man machst einfach so das wenn man /dm1 (also eon teleport zur DM ) macht das man dann zb in eine Fraktion gestopft wird und solang man dadrin is kann man keine anderen Befehle nutzen :D


    Und wenn man /dmoff macht wird man gekillt und aus der Fraktion gekickt xD

  • Natürlich geht sowas,ist recht einfach.
    new bool:InDM[MAX_PLAYERS];


    public OnPlayerConnect(playerid) {
    InDM[playerid]=false;
    return 1;
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (!strcmp("/dm", cmdtext, true, 3)) {
    //dm kram
    InDM[playerid]=true;
    SendClientMessage(playerid,COLOR_YELLOW,"DM betreten");
    return 1;
    }
    else if (!strcmp("/dmoff", cmdtext, true, 6)) {
    InDM[playerid]=false;
    SendClientMessage(playerid,COLOR_RED,"DM verlassen");
    return 1;
    }
    else if (!strcmp("/teleport1", cmdtext, true, 10)) {
    if(!InDM[playerid]) { // Falls der Spieler NICHT im DM ist passiert folgendes

    }
    else { // Falls er noch im DM ist,passiert jenes
    SendClientMessage(playerid,COLOR_RED,"Du kannst diesen Befehl nicht benutzten da du noch DM spielst");
    }
    return 1;
    }
    return 0;
    }



  • if (!strcmp("/kill", cmdtext, true, 3))
    {
    if(InDM[playerid])
    {
    SetPlayerHealth(playerid, 0.0);
    SetPlayerPos(...); // wo er hin soll wenn er in DM is
    }
    else
    {
    SetPlayerHealth(playerid, 0.0);
    SetPlayerPos(...); // wo er hin soll wenn er nich in DM is
    }
    return 1;
    }


    Hoffe ma es geht habs nich getestet xD

  • das geht ja aber nur nach kill nicht beim normalen tot.. und habgs bropiert aber man kommt dann tot am punkt an weil der stirbt ja erst und dan teleport und dann is der schon tot aber man kann doch bestimmt mit puplic onplayerdeath() oder ... und wie?


    if (strcmp(cmdtext, "/dm", true)==0)
    {
    //dm kram
    InDM[playerid]=true;
    SendClientMessage(playerid,COLOR_YELLOW,"DM betreten");
    SetPlayerPos(playerid,184.037,1862.120,20.058);
    GivePlayerWeapon(playerid,28,10000);
    return 1;
    }
    if (strcmp(cmdtext, "/dmoff", true)==0)
    {
    InDM[playerid]=false;
    SendClientMessage(playerid,COLOR_RED,"DM verlassen");
    SetPlayerHealth(playerid, 0);
    return 1;
    }


    gehts so auch?

    Sever ip : aremmers.no-ip.org


    !![GER]!!FuN_FrEeRoAm!!

    3 Mal editiert, zuletzt von MaRcEl9 ()

  • Haben paar fragen..


    1. Wie kann ich das machen, das wenn ich im Dm sterbe, das ich an einem punkt im Dm wieder spawne ??


    2. Und wie kann ich es machen, das wenn ich /dmoff mache, ich dann aus dem DM rauskomme, ich in der zeit wo ich im DM drinne bin aber keine Befehle außer /dmoff machen kann?




    Habe das hier nciht richtig verstanden, bitte um hilfe..

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • OnPlayerSpawn:

    if(indm[playerid])
    {
    SetPlayerPos(playerid,x,y,z);
    }

    halt bei OnPlayerSpawn abfragen ^^


    Wenn du die anderen Cmd's schützen willst musst du abfragen ob der Spieler sich im Dm befindet in der Klasse OnPlayerCommandText
    bei dmoff fragst du ebenfalls ab ob du im Dm bist oder nicht, je nach dem machste ne Aktion

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Also sobald du ein dm betrittst wird eine Variable auf 1 oder true gestellt damit das Script nachher weiss
    bzw. zurückgeben kann ob du im dm bist


    new bool:InDm[MAX_PLAYERS];


    InDm[playerid] = true;


    if(InDm[playerid])return SendClientMessage(playerid,COLOR,"Du kannst ... nicht benutzen da du dich im Deathmatch befindest!");


    solche abfragen machste überall und je nach Situation handelst du

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • z.B


    if (strcmp("/stunt", cmdtext, true, 10) == 0)
    {
    InDm[playerid] = true;
    if(InDm[playerid])return SendClientMessage(playerid,COLOR,"Du kannst den Befehl /stunt nicht benutzen da du dich im Deathmatch befindest!");
    SetPlayerPos(playerid,398.1079,2540.1904,19.6311);
    return 1;
    }


    ist das so richtig??

  • unlogisch vorher das Dm auf 1 zu stellen sprich true und dann ne abfrage zu machen xD


    also nur wenn du ein Dm berittst sollst du die var auf 1 stellen bzw. true dann in den anderen cmd's baust du die abfrage ein
    auch in den dm command damit der spieler diesen nicht als nutzen kann

    Mfg. BlackFoX_UD_ alias [BFX]Explosion