TextDraw (HILFE!!!)

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
  • Hi,
    1) Ich habe ein Textdraw erstellt, was irgendwie nur am anfang funzt. Wenn ich gespawnt werde geht es einfach weg. Ich bitte dringend um hilfe!
    Hier der Script:

    #include <a_samp>


    new Text:Message;


    #define FILTERSCRIPT




    public OnFilterScriptInit()


    {


    Message = TextDrawCreate(1.000000,435.000000,"IRGENDWAS");
    TextDrawAlignment(Message,0);
    TextDrawBackgroundColor(Message,0x000000ff);
    TextDrawFont(Message,2);
    TextDrawLetterSize(Message,0.598999,1.300000);
    TextDrawSetOutline(Message,1);
    TextDrawSetProportional(Message,1);
    TextDrawSetShadow(Message,1);


    return 1;


    }


    2) Welche Auflösung muss ich bei den KORDS beachten? 800x640 oder welche?


    Meine ICQ: 369-263-543
    MfG Maggi ;)

  • Kommt drauf an, ab wann der Text angezeigt werden soll.


    Soll er gleich beim Verbinden mit Server angezeigt werden?
    public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid,message);
    return 1;
    }


    mach aber, damit es auch sauber gescriptet ist, bei
    public OnPlayerDisconnect(playerid)
    {
    TextDrawHideForPlayer(playerid,message);
    return 1;
    }



    Soll er z.B. beim Einsteigen in ein Auto angezeigt werden?
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    TextDrawShowForPlayer(playerid,message);
    return 1;
    }
    oder bei
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if((oldstate==PLAYER_STATE_DRIVER || oldstate==PLAYER_STATE_PASSENGER) && newstate==PLAYER_STATE_ONFOOT) {TextDrawHideForPlayer(playerid, message);}
    if((newstate==PLAYER_STATE_DRIVER || newstate==PLAYER_STATE_PASSENGER) && oldstate==PLAYER_STATE_ONFOOT) {TextDrawShowForPlayer(playerid,message);}
    return 1;
    }


    Ich hoffe, daß hilft dir weiter.

  • Dann mach es halt nur mit OnPlayerConnect und ..disconnect ;)


    public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid,message);
    return 1;
    }


    public OnPlayerDisconnect(playerid)
    {
    TextDrawHideForPlayer(playerid,message);
    return 1;
    }


    und bei OnFilterInit haste es ja schon richtig gemacht


    public OnFilterScriptInit()
    {
    Message = TextDrawCreate(320,0,"IRGENDWAS"); // <-- 320=mitte und 0=obere Zeile
    TextDrawAlignment(Message,2); // <-- 2=zentriert
    TextDrawBackgroundColor(Message,0x000000ff);
    TextDrawFont(Message,2);
    TextDrawLetterSize(Message,0.598999,1.300000);
    TextDrawSetOutline(Message,1);
    TextDrawSetProportional(Message,1);
    TextDrawSetShadow(Message,1);
    return 1;
    }

  • so, dass habe ich auch alles gemacht habe aber 2 Errors die ich nicht beheben kann. Hier der Script:


    #include <a_samp>


    // This is a comment
    // uncomment the line below if you want to write a filterscript
    //#define FILTERSCRIPT


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    Message = TextDrawCreate(320,0,"IRGENDWAS"); // <-- 320=mitte und 0=obere Zeile
    TextDrawAlignment(Message,2); // <-- 2=zentriert
    TextDrawBackgroundColor(Message,0x000000ff);
    TextDrawFont(Message,2);
    TextDrawLetterSize(Message,0.598999,1.300000);
    TextDrawSetOutline(Message,1);
    TextDrawSetProportional(Message,1);
    TextDrawSetShadow(Message,1);
    return 1;


    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {


    }


    #endif


    public OnGameModeInit()
    {
    return 1;
    }


    public OnGameModeExit()
    {
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    return 1;
    }


    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid,message); // das m bei "message" gehört groß weil das unten auch so ist
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    TextDrawHideForPlayer(playerid,message); // das m bei "message" gehört groß weil das unten auch so ist
    return 1;
    }



    public OnPlayerSpawn(playerid)
    {
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    return 1;
    }


    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }


    public OnPlayerText(playerid, text[])
    {
    return 1;
    }


    public OnPlayerPrivmsg(playerid, recieverid, text[])
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 1;
    }


    public OnPlayerInfoChange(playerid)
    {
    return 1;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnRconCommand(cmd[])
    {
    return 1;
    }


    public OnObjectMoved(objectid)
    {
    return 1;
    }


    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }


    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }


    Und hier die errors:
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(59) : error 017: undefined symbol "message"
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(66) : error 017: undefined symbol "message"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.



    MMH ich kriege sie nicht behoben. Bitte um Hilfe


    MfG Maggi

  • Mach mal alles genau so:
    (Also lösch den alten Filterscript, kopier den hier, füg ein und hab spaß)


    #include <a_samp>


    #define FILTERSCRIPT


    public OnFilterScriptInit()
    {
    Message = TextDrawCreate(320,0,"IRGENDWAS");
    TextDrawAlignment(Message,2);
    TextDrawBackgroundColor(Message,0x000000ff);
    TextDrawFont(Message,2);
    TextDrawLetterSize(Message,0.598999,1.300000);
    TextDrawSetOutline(Message,1);
    TextDrawSetProportional(Message,1);
    TextDrawSetShadow(Message,1);
    return 1;


    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid,Message);
    return 1;
    }

  • Jetzt sind es 9 Errors!


    Errors:
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(7) : error 017: undefined symbol "Message"
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(8) : error 017: undefined symbol "Message"
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(9) : error 017: undefined symbol "Message"
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(10) : error 017: undefined symbol "Message"
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(11) : error 017: undefined symbol "Message"
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(12) : error 017: undefined symbol "Message"
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(13) : error 017: undefined symbol "Message"
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(14) : error 017: undefined symbol "Message"
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(26) : error 017: undefined symbol "Message"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    9 Errors.


    MfG Maggi ;)

  • jetzt kommt noch 1 Warning.


    Warning: C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(28) : warning 213: tag mismatch


    Und wenn man gespawnt wird geht es einfach weg. SO sieht er gerade aus:


    #include <a_samp>


    #define FILTERSCRIPT


    public OnFilterScriptInit()
    {
    new Text:Message;
    Message = TextDrawCreate(320,0,"IRGENDWAS");
    TextDrawAlignment(Message,2);
    TextDrawBackgroundColor(Message,0x000000ff);
    TextDrawFont(Message,2);
    TextDrawLetterSize(Message,0.598999,1.300000);
    TextDrawSetOutline(Message,1);
    TextDrawSetProportional(Message,1);
    TextDrawSetShadow(Message,1);
    return 1;


    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    new Message;
    TextDrawShowForPlayer(playerid,Message);
    return 1;
    }


    MfG Maggi ;)

  • 4 Warnings:


    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(28) : warning 217: loose indentation
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(28) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(29) : warning 217: loose indentation
    C:\Dokumente und Einstellungen\Markus Schneider\Desktop\textdraw.pwn(34) : warning 213: tag mismatch


    MfG Maggi ;)

  • #include <a_samp>


    #define FILTERSCRIPT


    new Text:Message;


    public OnFilterScriptInit()
    {
    Message = TextDrawCreate(320,0,"IRGENDWAS");
    TextDrawAlignment(Message,2);
    TextDrawBackgroundColor(Message,0x000000ff);
    TextDrawFont(Message,2);
    TextDrawLetterSize(Message,0.598999,1.300000);
    TextDrawSetOutline(Message,1);
    TextDrawSetProportional(Message,1);
    TextDrawSetShadow(Message,1);
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid,Message);
    return 1;
    }


    nimm das