In einer Gangzone ein Textdraw

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
  • Hallo Leute,


    Ich bekomme das einfach nicht hin und habe schon überall gesucht ich finde keine Lösung.
    Ich will das wenn sich ein Spieler in einer Gangzone befindet unten rechts ein Textraw erscheind "Anti Waffen Zone"
    Die Gangzone habe ich schon alles. Kann mir vll jemand weiter helfen?

  • Folgende Lösung des Problems:


    1.

    new deinezone;
    new deinezone[MAX_PLAYERS];
    new Text:Textdraw0;


    Dann bei OnPlayerSpawn

    GangZoneShowForPlayer(playerid, deinezone, 0xFF000096);


    Bei On GameModeInit:



    // Weiter oben bei Ongamemodeinit
    SetTimer("antiwaffen", 1000,1) // <-- Fürt den public antiwaffen pro sec oder so aus


    Textdraw0 = TextDrawCreate(549.000000,32.000000,"Anti Waffen Zone");
    TextDrawAlignment(Textdraw0,0);
    TextDrawBackgroundColor(Textdraw0,0x000000ff);
    TextDrawFont(Textdraw0,3);
    TextDrawLetterSize(Textdraw0,0.399999,1.000000);
    TextDrawColor(Textdraw0,0xff0000ff);
    TextDrawSetOutline(Textdraw0,1);
    TextDrawSetProportional(Textdraw0,1);
    TextDrawSetShadow(Textdraw0,1);


    Dann bei den Publics das hinzufügen:



    public antiwaffen()
    {
    new Waffe,ammo;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInArea(i,korordinaten der Zone))
    {
    TextDrawShowForPlayer(i,Textdraw0);
    //ResetPlayerWeapons(i);//verhindert aufjedenfall DM MAn kriegt sie aber nicht wieder.
    deinezone[i] = 1;
    }
    else
    {
    if(deinezone[i] == 1) // siehe 1.
    {
    TextDrawHideForPlayer(i,Textdraw0);
    GivePlayerWeapon(i,Waffe,ammo);
    }
    }
    }
    return 1;
    }


    Dann bei OnPlayerConnect



    deinezone[playerid] = 1 // siehe public Antiwaffen


    Zu Guter Letzt noch die 2 Forwards erstellen:
    Und das dazugehörige Public

    forward antiwaffen();
    forward IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY);


    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return 1;
    else return 0;
    }


    Das sollte eigentlich klappen wenn nicht meld dich nochmal

    Einmal editiert, zuletzt von Ailpum ()

  • Das New definiert einen wert zb deinezone ( in demfalle wär es deine Gangzone )
    Aber da du diese schon hast fällt das weg...


    und das ober ist dafür da das der spieler die zone sieht ...


    Wenn du allerdings die Zone schon hast musst du ein bisschen selber überlegen was noch fehlt. dann brauchst du das new deinezone nicht...


    und das wort da oben drin ist der name deiner erstellten zone


    .. Zb ...


    yakuza = GangZoneCreate(x,y,z); <<-- Muss bein OnGameModeInit rein


    GangZoneShowForPlayer(playerid, yakuza, farbe); <<--- Muss bei OnPlayerSpawn rein... der rest siehe meinen Post davor..


    ein Bisschen selber überlegen..


    Mann bekommt heute nicht alles Auf ein Silbertablett serviert xD