Zone

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
  • Hallöchen...


    Ich hab eine Frage und zwar:


    wie mache ich das wenn einer die Armyzone betreten tut damit dann die ganzen Cops eine Nachricht kriegen das ein Spieler die Zone betreten hat?


    if(IsPlayerInArea(playerid, 100.400100, 1765.730834, 396.400085, 2093.730957))
    {
    if(!IsACop(playerid))
    {
    if(IsACop(i))
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Ein Spieler hat die Army betreten, sichern sie den Ort!");
    }
    }
    }


    Weiss nicht obs richtig ist... will jetzt noch machen damit der spieler die message bekommt Du hast die Army Zone betreten verschwinde!


    Das es aber nur passiert wenn spieler die Zone betreten die nicht cop sind ?


    Hoffe es kann einer weiter helfen


    LG Moritz

    Einmal editiert, zuletzt von SenTiZz ()

  • Dann mach dass so:

    if(IsPlayerInArea(playerid, 100.400100, 1765.730834, 396.400085, 2093.730957))
    {
    if(!IsACop(playerid))//Ist Kein COP
    {

    }
    else SendClientMessage(playerid, COLOR_YELLOW, "Ein Spieler hat die Army betreten, sichern sie den Ort!");//Ist ein Cop und Zeilen gespart ^^
    }


    MFG Piet

  • ja du nimmst den code machst noch eine MAX_PLAYERS Schleife rein und baust ein timer der alle 30 sec das abfragt an besten wäre unter onplayerupdate ;)

  • Function Timer2()
    {
    new string[255];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInArea(i, 100.400100, 1765.730834, 396.400085, 2093.730957))
    {
    if(!IsACop(i))//Ist Kein COP
    {
    SendClientMessage(i,COLOR_RED,"Du hast die Army betreten, verlass sie sonst kriegst du Wanteds!");
    }
    else SendClientMessage(i, COLOR_YELLOW, "Ein Spieler hat die Army betreten, sichern sie den Ort!");//Ist ein Cop und Zeilen gespart ^^
    }

  • warum sagst du das in if wen du mit else was ausgibst ?


    also


    if(IsACop(i))//Ist Kein COP
    {
    //wen er cops ist nix machen
    }
    else
    {
    //du kein cop
    }

  • also so:


    Function Timer2()
    {
    new string[255];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInArea(i, 100.400100, 1765.730834, 396.400085, 2093.730957))
    {
    if(IsACop(i)){
    SendClientMessage(i, COLOR_YELLOW, "Ein Spieler hat die Army betreten, sichern sie den Ort!");}
    else{
    SendClientMessage(i,COLOR_RED,"Du hast die Army betreten, verlass sie sonst kriegst du Wanteds!");}
    }

  • Function Timer2()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInArea(i, 100.400100, 1765.730834, 396.400085, 2093.730957))
    {
    if(IsACop(i))
    {
    SendClientMessage(i, COLOR_YELLOW, "Ein Spieler hat die Army betreten, sichern sie den Ort!");
    }
    else
    {
    SendClientMessage(i,COLOR_RED,"Du hast die Army betreten, verlass sie sonst kriegst du Wanteds!");
    }
    }
    }
    }
    }

  • danke aber so hatte ich es auch :D


    ich mochte aber nicht wie du die klammer gesetzt hast :P
    das bringt rein garnix kann sogar zu ruckeln kommen da ich es dammals auch so gemacht habe
    und wo ich es dan geändert habe laggte man nicht mehr aufn server script leuft wie wasser
    und wen der ganz hinten gehen muss und dann erst runter ist zu lang ;)

  • Ok danke :))
    //e kleinen fehler


    Wenn ich als Army die Zone betrete kommt auch die Message:


    if(IsPlayerInArea(i, 100.400100, 1765.730834, 396.400085, 2093.730957))
    {
    if(IsACop(i))
    {
    SendClientMessage(i, COLOR_YELLOW, "Ein Spieler hat die Army betreten, sichern sie den Ort!");
    }
    else
    {
    SendClientMessage(i,COLOR_RED,"Du hast die Army betreten, verlass sie sonst kriegst du Wanteds!");
    }
    }

    4 Mal editiert, zuletzt von SenTiZz ()

  • SendClientMessageToAll(i, COLOR_YELLOW, "Ein Spieler hat die Army betreten, sichern sie den Ort!

  • Ich würde einen Texdraw nehmen oder eine var die Abspeichert ob er schon in der Area ist und nicht die ganze Zeit den Text bekommt.


    /e hier wegen spam schutz

    new inarmy[MAX_PLAYERS];


    Function Timer2()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInArea(i, 100.400100, 1765.730834, 396.400085, 2093.730957))
    {
    if(inarmy[playerid])continue;
    inarmy[playerid] = 1;
    if(IsACop(i))
    {
    SendClientMessage(i, COLOR_YELLOW, "Ein Spieler hat die Army betreten, sichern sie den Ort!");
    }
    else
    {
    SendClientMessage(i,COLOR_RED,"Du hast die Army betreten, verlass sie sonst kriegst du Wanteds!");
    }
    }
    else inarmy[playerid] = 0;
    }
    }
    }


    MFG Piet

  • ich mache kurz einen stock und schicke dann den code ok:


    /e hier der code

    new inarmy[MAX_PLAYERS];


    Function Timer2()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInArea(i, 100.400100, 1765.730834, 396.400085, 2093.730957))
    {
    if(inarmy[i])continue;
    inarmy[i] = 1;
    if(!IsACop(i))
    {
    SendCopMessage(COLOR_YELLOW, "Ein Spieler hat die Army betreten, sichern sie den Ort!");
    SendClientMessage(i,COLOR_RED,"Du hast die Army betreten, verlass sie sonst kriegst du Wanteds!");
    }
    }
    else inarmy[i] = 0;
    }
    }
    }


    stock SendCopMessage(COLOR_, text[])
    {
    for(new i_=0; i_<MAX_PLAYERS; i_++)if(IsPlayerConnected(i_) && IsACop(i_))SendClientMessage(i_, COLOR_, text);
    return 1;
    }


    /e playerid falsch gesetzt und dähmlich wie ich bin cop abfrage vergessen und deinen text verbessert


    MFG Piet