Login & Register Textdraw basierend.

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 und Wilkommen zu meinem ersten Tutorial ich hoffe du guckst dir das Tutorial bis zum Ende an.



    1.Anfang


    Zuerst müssen wir ein Textdraw erstellen oder mehrere, dafür sind Tools nützlich wie iPleoMax, Zamroth, BSNTEXTDRAW(nicht zu empfehlen)...
    Ich zeig euch in einem Video wie man das macht.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Dies hab ich im Video nicht gezeigt. Ich hab Export to PWN gedrückt und dann wird im Scriptfiles ordner eine .pwn erstellt. Ich hab iPleoMax benutzt.
    Link: iPleoMax
    Link: Zamaroht


    2.Script
    Das ganze müsste dann so aussehen
    //Global Textdraws:


    new Text:Textdraw0;
    new Text:Textdraw1;



    Textdraw0 = TextDrawCreate(441.555541, 129.428878, "usebox");
    TextDrawLetterSize(Textdraw0, 0.000000, 17.326791);
    TextDrawTextSize(Textdraw0, 202.000030, 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(419.777770, 157.304443, "usebox");
    TextDrawLetterSize(Textdraw1, 0.000000, 11.187531);
    TextDrawTextSize(Textdraw1, 224.222229, 0.000000);
    TextDrawAlignment(Textdraw1, 1);
    TextDrawColor(Textdraw1, 0);
    TextDrawUseBox(Textdraw1, true);
    TextDrawBoxColor(Textdraw1, -16776961);
    TextDrawSetShadow(Textdraw1, 0);
    TextDrawSetOutline(Textdraw1, 0);
    TextDrawFont(Textdraw1, 0);



    //Player Textdraws:


    new PlayerText:Textdraw0[MAX_PLAYERS];



    Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 245.777847, 198.115524, "Login oder Register");
    PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.449999, 1.600000);
    PlayerTextDrawAlignment(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawColor(playerid, Textdraw0[playerid], -1);
    PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawBackgroundColor(playerid, Textdraw0[playerid], 51);
    PlayerTextDrawFont(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawSetProportional(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawSetSelectable(playerid, Textdraw0[playerid], true);

    Das ganze könnten wir auch so schreiben
    new TDBox[2];


    TDBox[0] = TextDrawCreate(441.555541, 129.428878, "usebox");
    TextDrawLetterSize(TDBox[0], 0.000000, 17.326791);
    TextDrawTextSize(TDBox[0], 202.000030, 0.000000);
    TextDrawAlignment(TDBox[0], 1);
    TextDrawColor(TDBox[0], 0);
    TextDrawUseBox(TDBox[0], true);
    TextDrawBoxColor(TDBox[0], 102);
    TextDrawSetShadow(TDBox[0], 0);
    TextDrawSetOutline(TDBox[0], 0);
    TextDrawFont(TDBox[0], 0);


    TDBox[1] = TextDrawCreate(419.777770, 157.304443, "usebox");
    TextDrawLetterSize(TDBox[1], 0.000000, 11.187531);
    TextDrawTextSize(TDBox[1], 224.222229, 0.000000);
    TextDrawAlignment(TDBox[1], 1);
    TextDrawColor(TDBox[1], 0);
    TextDrawUseBox(TDBox[1], true);
    TextDrawBoxColor(TDBox[1], -16776961);
    TextDrawSetShadow(TDBox[1], 0);
    TextDrawSetOutline(TDBox[1], 0);
    TextDrawFont(TDBox[1], 0);
    Dies ist aber nur eine Alternative.


    So kommen wir ins Haupt(Main)Script, dort müssen wir jetzt das ganze einfügen am besten in OnGameModeInit Die 2 Globalen Textdraws und bei OnPlayerConnect den PlayerTextdraw.


    Wenn ihr dies habt erstellt der Server schonmal die Textdraw's aber es passiert nix weil wir sie nicht zeigen?!


    So weil die meisten ja es unter OnPlayerConnect machen zeigen wir dort die Textdraws
    TextDrawShowForPlayer(playerid,Textdraw0);
    TextDrawShowForPlayer(playerid,Textdraw1);
    PlayerTextDrawShow(playerid,Textdraw0[playerid]);
    So nun zeigen wir ja die Textdraw's aber es wird nix anklickbar?
    Genau weil wir zuerst noch dem Script/Server sagen müssen das jetzt ein Textdraw anklickbar sein soll. Das geht mit:
    Beispiel aus der Wiki:
    Der erste Parameter ist die playerid also der Player der zweite ist ein Farbcode denn man beliebig ändern kann, dies ist der Hover d.h wenn ihr über den Textdraw mit der Maus fährt dann wird er in diesem fall glaub ich grün, doch wenn man ein Blauen farbcode dort einfügt wird der Text blau beim Hovern.
    SelectTextDraw(playerid, 0x00FF00FF);
    3.Funktion ausführen


    So wir haben alle Textdraw's haben den "Login oder Register" Textdraw Klickbar gemacht, aber wenn wir jetzt drauf klicken passiert nix? Nur die Textdraws verschwinden?
    Warum? Weil wir jetzt unter den public/callback
    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    Warum PlayerTextDraw? Weil der Textdraw ein PlayerText ist.


    4. Dialog zeigen beim Click


    So fangen wir an das ähnelt ein bisschen den Dialogen an.
    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {
    if(playertextid==Textdraw0[playerid])// Also wenn playertextid TextDraw0 ist dann ....
    {
    //Hier wird dann der Dialog zum Register und Login gezeigt ich mach das jetzt auf dini...
    new Datei[64];
    format(Datei,sizeof(Datei),"/Acc/%s.txt",SpielerName(playerid));
    if(dini_Exists(Datei))
    {
    ShowPlayerDialog(playerid,DIA_LOG,DIALOG_STYLE_PASSWORD,"Login","Insert you own Password to login","Login","Cancel");
    }
    else
    {
    ShowPlayerDialog(playerid,DIA_REG,DIALOG_STYLE_PASSWORD,"Register","Insert a Password to Register","Register","Cancel");
    }
    return 1;
    }
    return 1;
    }

    Das wars von mir Danke fürs durchlesen :)
    mfg reoarni


    Guter Support, Gute Preise! Freunde das ist kein Speed das ist Lichtgeschwindigkeit!
    Atrox Devolpment[/size]
    [size=24][color=#ff0000]Kunde | Top WBB Produkte

  • Sorry, ist für mich eigentlich nur ein C&P-Tutorial. Einerseits mehr erklären und nicht die ganzen Codes vorzeigen, oder evtl. extra Fehler einbauen etc. damit der User der sich das durchliest, mitdenkt etc. :)

  • Zitat

    Schaut gut aus !
    Eine Frage, wie heißt die Musik ?

    <<<<<<<<<<<<<<<danke>>>>>>>>>>>>>>>>>>


    Musik


    Random
    Ja ich hab versucht so gut wie wenig C&P zu machen ich editier das mal und hau paar fehler rein :D Meist du mit den Parametern? Her oder wie? Untern Falschen Callback? xD


    Guter Support, Gute Preise! Freunde das ist kein Speed das ist Lichtgeschwindigkeit!
    Atrox Devolpment[/size]
    [size=24][color=#ff0000]Kunde | Top WBB Produkte

  • Nettes Tutorial aber soweit ich weiß ist der iPleoMax bis jetzt nur für 0.3e.


    Trozdem gutes Tutorial!

    Mit freundlichen Grüßen


    [dropdown='Wähle dein Ziel']
    [option=#000,#transparent,http://newtown-servers.de]Homepage[/option]
    [/dropdown]

  • Nettes Tutorial aber soweit ich weiß ist der iPleoMax bis jetzt nur für 0.3e.


    Trozdem gutes Tutorial!


    Der Ordner ja ist mit der server.exe von 0.3e Downloade dir einfach 0.3x Server.exe und ersetze sie durch die von iPleo dann gehts wieder. iPleo ist halt meiner meinung nach der einfachste bei der bedienung.
    Zamaroth ist mit diesen Dialogen zu gepackt. Und bei Pleo klickst du aufn Draw. Und sieht besser aus *_*


    Guter Support, Gute Preise! Freunde das ist kein Speed das ist Lichtgeschwindigkeit!
    Atrox Devolpment[/size]
    [size=24][color=#ff0000]Kunde | Top WBB Produkte

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Muss der anklickebare Textdraw ein PlayerText sein?


    Ich hab jetzt 3 Anklickbare Textdraws aber alle als Globale gemacht.
    Müssen diese PlayerTexte sein?


    Alle Menschen sind eins. Was sie unterscheidet, ist der Name, den man ihnen gibt.
    (Buddha)


    Uns zivilisierten Menschen ist zwar gelungen, das Raubtier in uns auszuschalten, nicht aber den Esel.
    (Winston Churchill)


    Wenn du denkst, die ganze Welt sei schlecht, dann vergisst nicht, dass Leute wie du darin leben.
    (Mahatma Gandhi)

  • Muss der anklickebare Textdraw ein PlayerText sein?


    Ich hab jetzt 3 Anklickbare Textdraws aber alle als Globale gemacht.
    Müssen diese PlayerTexte sein?


    Soweit ich weis muss nur der Text Register Login ein PlayerText sein. Kannst das auch mal mit Globalen versuchen.


    Guter Support, Gute Preise! Freunde das ist kein Speed das ist Lichtgeschwindigkeit!
    Atrox Devolpment[/size]
    [size=24][color=#ff0000]Kunde | Top WBB Produkte


  • \rl.pwn(115) : error 035: argument type mismatch (argument 2)
    \rl.pwn(116) : error 017: undefined symbol "Textdraw1"
    \rl.pwn(117) : error 017: undefined symbol "Textdraw2"
    \rl.pwn(118) : error 017: undefined symbol "Textdraw3"
    \rl.pwn(119) : error 017: undefined symbol "Textdraw4"
    \rl.pwn(120) : error 017: undefined symbol "Textdraw5"
    \rl.pwn(130) : error 017: undefined symbol "Textdraw0"
    \rl.pwn(130) : warning 215: expression has no effect
    \rl.pwn(130) : error 001: expected token: ";", but found "]"
    \rl.pwn(130) : error 029: invalid expression, assumed zero
    \rl.pwn(130) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    10 Errors.



    Pls Help :S

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