[TUT]Textdraws für Jeden Spieler erstellen

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
  • hey Leute ,
    ich hab mir mal die Zeit genommen , denen von euch, die nicht wissen wie man einen Textdraw für Jeden macht der aber immer was anderes anzeigt,
    halt "Speedometer Style",


    Als erstes erstellt ihr wie bei einem normalen Textdraw die Variable,
    so in etwa:


    new Text:MeinDraw[MAX_PLAYERS];


    diesmal wird sie für einen Index von 200 definiert also 200 mal diese Variable , nur nicht 200x genutzt (noch nicht)


    So nun wollt ihr dort euren Textdraw erstellen, jetzt wird es etwas kompilizierter , da es 2 Methoden gibt,
    davon nutze ich persöhnlich die erste Methode
    Also wie gesagt Textdraw erstellen:


    Die erste Methode, sie wird in OnGameModeInit rein gescriptet


    Beispiel Methode 1:


    for(new pl = 0;pl<MAX_PLAYERS;pl++)
    {
    MeinDraw[pl] = TextDrawCreate(43.000000,321.000000,"Irgendwas");
    TextDrawAlignment(MeinDraw[pl],0);
    TextDrawBackgroundColor(MeinDraw[pl],0x0000ff33);
    TextDrawFont(MeinDraw[pl],2);
    TextDrawLetterSize(MeinDraw[pl],0.499999,0.899999);
    TextDrawColor(MeinDraw[pl],0x000000cc);
    TextDrawSetProportional(MeinDraw[pl],1);
    TextDrawSetShadow(MeinDraw[pl],1);
    }


    wie ihr seht wird in dieser Methode alles gleich in die 200 Slots erstellt also für alle 200 Spieler,
    nur noch nicht angezeigt und verändert ^^


    So kommen wir nun einmal zu Methode Nummer 2:
    Hier wird der Textdraw für den Spieler erst nach dem Betreten des Servers erstellt:


    Beispiel Methode 2:

    MeinDraw[playerid] = TextDrawCreate(43.000000,321.000000,"Irgendwas");
    TextDrawAlignment(MeinDraw[playerid],0);
    TextDrawBackgroundColor(MeinDraw[playerid],0x0000ff33);
    TextDrawFont(MeinDraw[playerid],2);
    TextDrawLetterSize(MeinDraw[playerid],0.499999,0.899999);
    TextDrawColor(MeinDraw[playerid],0x000000cc);
    TextDrawSetProportional(MeinDraw[playerid],1);
    TextDrawSetShadow(MeinDraw[playerid],1);


    wie ihr seht ganz normal nur mit playerid, muss ja für jeden Spieler sein ;)


    So ich denke wir können fortfahren, denn wir haben den Textdraw definiert und erstellt und das für alle Spieler ^^



    Jetzt kommen wir zum anzeigen des Textdraws, den folgenden Code könnt ihr überall wo ihr wollt verwenden,
    wäre es ein Speedometer beim OnPlayerStateChange Code auf Status 2 also Fahrer


    TextDrawShowForPlayer(playerid,MeinDraw[playerid]);


    So wäre der Code für dieses Tut gewesen ^^
    wollt ihr ihn wieder ausblenden, käme folgendes in Frage:


    TextDrawHideForPlayer(playerid,MeinDraw[playerid]);



    So nun kommen wir zum Tipp für Textdraw User, ihr müsst einen Textdraw nicht
    unbedingt verstecken und wieder anzeigen lassen um ihn zu Aktualisieren,
    ihr nutzt in dem Fall einfach den Code:


    TextDrawSetString(MeinDraw[playerid],"hier ist nun fuer den Spieler ein anderer text");


    Nun steht nur für diesen Spieler ein anderer Text


    Zum schluss möchte ich noch eins sagen, fuer die unter euch die Methode Nummer 2 nutzen, wäre
    es Ratsam den textDraw zu zerstören mit:


    TextDrawDestroy(MeinDraw[playerid]);


    am besten bei OnPlayerDisconnect, ansonsten wars das, sollte in diesem Tut ein Fehler sein einfach nur
    die Berichtigung Posten


    Mfg. BlackFoX ^^


    Have FuN

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Könntest du evt. bitte einen Tutorial machen, wo man lernt, wie man eine Tankanzeige mit einer Km/h Anzeige erstellt ?

  • Wenn man ein TextDraw ohne eine Box benutzt. Kann man es einfach "unsichtbar" machen und muss es nicht ausblenden!


    TextDrawSetString(MeinDraw[playerid], " ");

  • TextDrawSetString(MeinDraw[playerid], " ");

    Mal ne Frage..


    Hab die 2te Methode verwendet und wollte nun bei bestimmten Aktionen das hier schreiben:



    TextDrawSetString(Infodraw[playerid], "Test");


    Ich bekomme nur Errors..
    4 Stück, vllt. hat jemand das gleiche Problem!


    Ich wäre um jede Hilfe dankbar!

    Gruß
    keyboy

    www.g4e-clan.de


    Kein (unbez.) Scripting-Support per PN | Dafür ist das Forum da.

  • Zitat

    "Besser beim alten Thread fragen, als einen sinnlosen neuen zu öffnen"

    Nein habe ich nicht, denn sobald ich new Text:Infodraw[MAX_PLAYERS];
    schreibe passiert das:


    error 035: argument type mismatch (argument 2)
    error 035: argument type mismatch (argument 1)
    error 033: array must be indexed (variable "Infodraw")
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)


    Wäre toll, wenn mir jemand helfen kann!
    Danke im Vorraus

    Gruß
    keyboy

    www.g4e-clan.de


    Kein (unbez.) Scripting-Support per PN | Dafür ist das Forum da.

  • blackfox mach ma pls ein simples admin system für stunt/dm server, sollte nur 3 ränge kick ban befehl haben, und man sollte sein admin level in der ini gespeichert haben also das das gespeichert wird, achja und ein /makeleader befehl!
    danke schon ma ps 10/10

  • error 035: argument type mismatch (argument 2)
    error 035: argument type mismatch (argument 1)
    error 033: array must be indexed (variable "Infodraw")
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)
    error 035: argument type mismatch (argument 1)


    mhm... In den Zeilen wo das Textdraw definiert wird, erstellt wird und zerstört wird gibts nen error...

    Gruß
    keyboy

    www.g4e-clan.de


    Kein (unbez.) Scripting-Support per PN | Dafür ist das Forum da.

  • Immernoch Errors.. Ich schreibe mal was alles im Script steht:


    new Text:Infodraw[MAX_PLAYERS];


    TextDrawShowForPlayer(playerid, Infodraw);


    TextDrawDestroy(Infodraw);


    Infodraw = TextDrawCreate(0, 430, "Willkommen");
    TextDrawAlignment(Infodraw, 1);
    TextDrawUseBox(Infodraw, 1);
    TextDrawSetShadow(Infodraw, 2);
    TextDrawBoxColor(Infodraw, 170);
    TextDrawSetOutline(Infodraw, 1);
    TextDrawBackgroundColor(Infodraw, 170);
    TextDrawFont(Infodraw, 1);
    TextDrawSetProportional(Infodraw, 1);


    Soweit ist alles Fehlerfrei...
    Sobald ich aber:
    TextdrawSetString(InfoDraw[playerid],"Dein Text");

    einfüge bekomme ich die oben genannten Errors und zwar in allen Zeilen die ich gerade geschrieben habe... Bitte um Hilfe!

    Gruß
    keyboy

    www.g4e-clan.de


    Kein (unbez.) Scripting-Support per PN | Dafür ist das Forum da.

  • Infodraw = TextDrawCreate(0, 430, "Willkommen");
    TextDrawAlignment(Infodraw, 1);
    TextDrawUseBox(Infodraw, 1);
    TextDrawSetShadow(Infodraw, 2);
    TextDrawBoxColor(Infodraw, 170);
    TextDrawSetOutline(Infodraw, 1);
    TextDrawBackgroundColor(Infodraw, 170);
    TextDrawFont(Infodraw, 1);
    TextDrawSetProportional(Infodraw, 1);
    schon was aufgefallen ? ^^ und dann noch die 2 Codes darüber

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • new indexvar[20]; // Index 20 ( 0-19 )


    Verwendung für 20 Zeichen oder 20 Zahlen


    indexvar[0] = 20; // Stelle 0 = 20


    indexvar[1] = 'A'; // Stelle 1 = A


    indexvar[playerid] = 1;
    gutes Beispiel zu
    Infodraw[playerid] = TextDrawCreate(0, 430, "Willkommen");


    Weißt bei mir eine Zahl zu, und deines ebenso nur das es mit der ID des Textdraws belegt wird, das abrufen des Index klappt auch genau so nur ohne Zuweisung

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


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