[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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

  • Habe TextDrawCreate unter Ongamemodeinit, aber das mit den Includes verstehe ich noch nicht bzw weiß nicht was du meinst, hab heute erst angefangen..


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Jeffry: Achso ich verstehe nun was du meinst, und hab auch mein Fehler gefunden, ich muss TextDrawShowForPlayer aber nur einmal hinzufügen oder?
    Wenn ich das mache, habe ich aber PlayerID noch nicht definiert, ich nehme an ich muss das auch "oben" machen, aber wie?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Wenn ich das mache, habe ich aber PlayerID noch nicht definiert, ich nehme an ich muss das auch "oben" machen, aber wie?


    Das musst du dort machen, wo du dem Spieler das TextDraw anzeigen lassen willst. "playerid" sollte dort definiert sein, also zum Beispiel unter OnPlayerConnect oder so. Ansonsten musst du die playerid, wie du schon sagtest, selbst definieren, und es dann zum Beispiel über eine Schleife anzeigen lassen. Wenn du es aber immer zeigen willst, nutze OnPlayerConnect.


  • Das musst du dort machen, wo du dem Spieler das TextDraw anzeigen lassen willst. "playerid" sollte dort definiert sein, also zum Beispiel unter OnPlayerConnect oder so. Ansonsten musst du die playerid, wie du schon sagtest, selbst definieren, und es dann zum Beispiel über eine Schleife anzeigen lassen. Wenn du es aber immer zeigen willst, nutze OnPlayerConnect.

    Ich habe meine Textdraw's unter GameModeInit, also dort definieren richtig?


    Ich verstehe aber immer noch nicht das definieren, wie mach ich das denn?


    #define playerid und dann :D?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • #define playerid und dann :D?


    Nein, nicht so.


    Angenommen du willst es bei OnFilterScriptInit (macht zwar keinen Sinn aber egal) für alle Spieler anzeigen lassen, die in Welt 0 sind:
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) if(GetPlayerVirtualWorld(playerid) == 0) TextDrawShowForPlayer(playerid, Textdraw);


    "new playerid" wäre die Deklaration.

  • Jeffry:


    Ich verstehe es an deinem Beispiel nicht, sorry..



    public OnGameModeInit()


    {



    TextDrawShowForPlayer(playerid, textid);
    Textdraw0 = TextDrawCreate(609.599975, 41.322223, "usebox");
    TextDrawLetterSize(Textdraw0, 0.000000, 0.000000);
    TextDrawTextSize(Textdraw0, 609.599975, 0.000000);
    TextDrawAlignment(Textdraw0, 1);
    TextDrawColor(Textdraw0, 0);
    TextDrawUseBox(Textdraw0, true);
    TextDrawBoxColor(Textdraw0, 102);
    TextDrawSetShadow(Textdraw0, 0);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawFont(Textdraw0, 0);


    Textdraw1 = TextDrawCreate(538.400390, 7.466648, "FPS:");
    TextDrawLetterSize(Textdraw1, 0.180799, 0.778666);
    TextDrawAlignment(Textdraw1, 1);
    TextDrawColor(Textdraw1, 16777215);
    TextDrawSetShadow(Textdraw1, 0);
    TextDrawSetOutline(Textdraw1, 1);
    TextDrawBackgroundColor(Textdraw1, 51);
    TextDrawFont(Textdraw1, 1);
    TextDrawSetProportional(Textdraw1, 1);


    Textdraw2 = TextDrawCreate(563.000732, 7.471092, "Ping:");
    TextDrawLetterSize(Textdraw2, 0.180799, 0.778666);
    TextDrawAlignment(Textdraw2, 1);
    TextDrawColor(Textdraw2, 16777215);
    TextDrawSetShadow(Textdraw2, 0);
    TextDrawSetOutline(Textdraw2, 1);
    TextDrawBackgroundColor(Textdraw2, 51);
    TextDrawFont(Textdraw2, 1);
    TextDrawSetProportional(Textdraw2, 1);


    Textdraw3 = TextDrawCreate(591.600769, 7.475535, "Time:");
    TextDrawLetterSize(Textdraw3, 0.180799, 0.778666);
    TextDrawAlignment(Textdraw3, 1);
    TextDrawColor(Textdraw3, 16777215);
    TextDrawSetShadow(Textdraw3, 0);
    TextDrawSetOutline(Textdraw3, 1);
    TextDrawBackgroundColor(Textdraw3, 51);
    TextDrawFont(Textdraw3, 1);
    TextDrawSetProportional(Textdraw3, 1);



    Meine Defines:



    new Text:Textdraw0;
    new Text:Textdraw1;
    new Text:Textdraw2;
    new Text:Textdraw3;


    Und das sind meine Errors:



    C:\Users\Dave\Desktop\Legends never Die [LnD]\gamemodes\LegendsneverDie.pwn(59) : error 017: undefined symbol "playerid"


    1 Error.




    Wo, bei diesem Code, muss ich was eintragen?Kann das so besser verstehen.


    Und wenn ich erstmal die Playerid definiert habe, kommt danach nicht noch textdraw?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wo hast du die vier Zeilen denn hingeschrieben?
    Und welche Zeile hat den Error? Eine der vier oder eine andere?



    Ach hat sich doch erledigt, hatte TextDrawForPlayer 2 mal drin, werde das ganze mal Ingame ausprobieren, danke!
    Echt lobenswert wie du diesen Thread hier dominierst :D



    //Neues Problem



    Habe nun das ganze hingekriegt und die Textdraw's sind auch Ingame, aber überhaupt nicht da wo sie sein sollten, habe an den Werten nix geändert, woran könnte das liegen?


    So schaut's Ingame aus ...



    Mit freundlichen Grüßen
    JustMe.77 8)

    Einmal editiert, zuletzt von JustMe.77 ()

  • Danke hat geholfen :)


    Stelle mich grad so dumm an, ich weiß das irgendwo ein Klammerfehler ist..



    public OnPlayerCommandText(playerid, cmdtext[]) //Befehle


    {

    if(strcmp("/clearchat",cmdtext,true,10 == 0)
    {

    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    SendClientMessageToAll(-1,"");
    return 1;
    }



    Error C:\Users\Dave\Desktop\Legends never Die [LnD]\gamemodes\LegendsneverDie.pwn(307) : error 001: expected token: ")", but found "{"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Ja, das Beispiel im Wiki ist einfach schlecht.
    Die 10 sagt aus, dass nur die ersten 10 Buchstaben überprüft werden.


    Also:
    /clearchatdhafgjdgshdgsdgsjdhasjkd
    würde erkannt werden als:
    /clearchat


    Zufällig sind es eben genau 10 Buchstaben.
    Wäre der Befehl aber:
    /cc
    und du gibst
    /ccjhdkasdhashdashd
    ein, dann würde es nicht erkannt werden. Das ist nicht wirklich toll, da die Spieler es dann nicht mehr blicken.


    Das macht nur dann Sinn, wenn du es wirklich so haben willst.



    10 = Es wird nur bis zum 10. Buchstabe auf Gleichheit geprüft.