Etwas schließen

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
  • Guten Morgen,


    wire kann ich etwas schließen Beispiel:
    Typ A raubt ne Bank aus, Typ B will ausrauben, aber bank wurde schon von A ausgeraubt. Wie bekomm ich das hin?

  • für dauerhaft ? machst einfach schalt function, sobald 1 ausraubt springt es auf 1, um der neachste der kommt erhält dann mitteilung..bsp wurde schon ausgeraubt ..wenns nicht auf dauer sein soll machst du ein settimerex dazu , die eine public auslöst die den schalter wieder auf 0 sezt.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • Danke, ich habs so bisschen verstanden. Kannst mir aber mal eine Beispiel Funktion machen. ich kann ja kein Playerid nutzen oder doch? Also es soll mit SetTimerEx wirder aufgelöst werden.
    Hoffe kannst mir noch einmal helfen. Timer sind nicht meine Stärke -.-
    Aber Spieler A sollte das auch nicht mehr machen koennen.

    Einmal editiert, zuletzt von Cardoso ()

  • hier mal ein bsp.(sry das mit settimerex funct nicht, nur settimer oder soll nur der eine spieler sie nicht gleich danach nochmal ausrauben können ?.)



    //header
    forward ResetAusraub();
    new bankrob = 0;



    // befehl
    if(strcmp(cmd, "/ausrauben", true) == 0)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(bankrob != 0)
    {
    SendClientMessage(i, COLOR_GRAD2, "Die Bank Wurde vor kurzen erst ausgeraubt");
    }
    if(bankrob == 0)
    {
    // hier die ausraub function
    bankrob = 1;
    SetTimer("ResetAusraub", 240000, 0); // Zeit kannste dir ja selbst einstellen.
    }
    }
    return 1;
    }



    public ResetAusraub()
    {
    bankrob = 0;
    return 1;
    }





    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • Soweit gut ich versteh es. Also Man soll sie generell nur in einer bestimten Zeit ausrauben. Also A raubt B kann dann nicht mehr aber A auch nicht mehr erst nachdem der Timer der Gas Station auf 0 ist.
    Kann ich dann die anderen Tankstellen ausrauben ?!

  • Zitat

    Also A raubt B kann dann nicht mehr aber A auch nicht mehr erst nachdem der Timer der Gas Station auf 0 ist.

    richtig. A, kann erst so wie alle andern erst wieder ausrauben wenn die zeit abgelaufen ist.


    zu den anderen :


    wenn du jetz überall den selben befehl anwändest sind alle tanken solange dicht bis der timer es wieder resetet hat, wenn du für jede es einzelnd haben willst musst du für jede tanke meines wissens dann so eine schalt function neu machen, die tanken kannste ja mit PTP(Player To Point) definieren bsp.



    2 Tanken



    //header
    forward ResetRaubTanke1();
    forward ResetRaubTanke2();
    new TankRaub1 = 0;
    new TankRaub2 = 0;





    if(strcmp(cmd, "/ausrauben", true) == 0)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(TankRaub1 != 0 || TankRaub2 != 0 ) // auch die schalter einfach adden
    {
    SendClientMessage(i, COLOR_GRAD2, "Die Bank Wurde vor kurzen erst ausgeraubt");
    }
    if(PlayerToPoint(1,i,x,y,z))//hier coords Tanke 1 Bsp hin.
    {
    // hier die ausraub function
    TankRaub1 = 1;
    SetTimer("ResetRaubTanke1", 240000, 0); // Zeit kannste dir ja selbst einstellen.
    }
    if(PlayerToPoint(1,i,x,y,z))//hier coords Tanke 2 Bsp hin.
    {
    // hier auch die ausraub function
    TankRaub2 = 1;
    SetTimer("ResetRaubTanke2", 240000, 0);
    }
    }
    return 1;
    }


    public ResetRaubTanke1()
    {
    TankRaub1 = 0;
    return 1;
    }
    public ResetRaubTanke2()
    {
    TankRaub2 = 0;
    return 1;
    }





    usw...

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • Ne kürzere Variante gibts nicht? ;D Aber sonst ein dickes Danke.

  • Ok dann werde ich es erst mal so machen. Danke nochmal ;) Sehr gute Erklärung.