[SAMMELTHREAD] Kleine Scripting Fragen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Autotext1[playerid] = CreatePlayerTextDraw(playerid, 421.000000, 146.477783, "_");
    PlayerTextDrawLetterSize(playerid, Autotext1[playerid], 0.000000, 14.270986);
    PlayerTextDrawTextSize(playerid, Autotext1[playerid], 196.500000, 0.000000);
    PlayerTextDrawBoxColor(playerid, Autotext1[playerid], 0);
    PlayerTextDrawSetPreviewModel(playerid, Autotext1[playerid], 411);
    PlayerTextDrawColor(playerid, Autotext1[playerid], 0);
    PlayerTextDrawBackgroundColor(playerid, Autotext1[playerid], 0);
    PlayerTextDrawUseBox(playerid, Autotext1[playerid], true);
    PlayerTextDrawFont(playerid, Autotext1[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);


    Kann mir einer sagen wieso der nicht mehr angezeigt wird wenn ich ihn größer machen möchte?



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • nachdem ich unter public onplayercommandtext den register Befehl raus genommen habe (da es eins schon in meinem filterscript existiert jadmin3)
    hat der Kompilierer gecrasht.


    script: http://pastebin.com/ZdREbdn7


    Ps: was müsste ich tun um den Login befehl raus zunehmen so das man nicht mehr /login machen müsste aber die sachen die abgerufen werden nach dem /login wie z.B geld usw sollen noch vorhanden bleiben. Wie mache ich das ?

  • Das kann auch so nicht funktionieren mit den Daten und den Größen.
    Siehe mein Beispiel, so müsste es funktionieren und größer sein. Die größe änderst du bei TextSize womit vergrößert sich das Model inkl. Box


    Autotext1[playerid] = CreatePlayerTextDraw(playerid, 421.000000, 146.477783, "_");
    PlayerTextDrawTextSize(playerid, Autotext1[playerid], 90.0, 90.0);
    PlayerTextDrawFont(playerid, Autotext1[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);
    PlayerTextDrawBoxColor(playerid, Autotext1[playerid], 0);
    PlayerTextDrawUseBox(playerid, Autotext1[playerid], true);


    PlayerTextDrawSetPreviewModel(playerid, Autotext1[playerid], 411);

    KleineHilfe 2.0

  • Der normale Chat (T) wird automatisch umgebrochen.
    Wenn es ein eigens programmierter Chat ist (zum Beispiel via Befehl), dann kannst du abfragen, ob die Länge der Eingabe größer als X ist, und wenn ja, dann splittest du den String entsprechend (strmid/strcat/strdel, je nach dem was dir gefällt) und sendest zwei Nachrichten.

  • Hast du zufällig nen Beispiel zur Hand ?

    Hier wäre ein Beispiel:


    Das splittet automatisch den Text in 128 Zeichen Blöcke auf, kannst max_size beliebig verändern :) (logischerweise sollte es > 0 sein xD)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kann mir jemand erklären wie ich diese Funktion benutzen kann, siehe Bild.
    Denn ich möchte, dass ein Spieler eine Kamera ( Objekt ) bewegen und rotieren kann.
    Damit er letztendlich sozusagen durch die Kamera schauen kann mit SetPlayerCameraPos().


    Ich hoffe ihr habt verstanden, was ich meine.

  • Hey, Leute irgendwie Speichert mein Register/Loginsystem kein Level und kein Geld, das Passwort aber schon ich bin langsam echt Ratlos kann mir jemand helfen?



    enum SpielerDaten
    {
    Adminlevel,
    Level,
    Fraktion,
    Geld,
    sLogin
    };



    new sSpieler[MAX_PLAYERS][SpielerDaten];



    public OnPlayerConnect(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login Vorgang","Dein Account wurde gefunden, bitte gebe nun dein Passwort ein und logge dich somit ein!","Einloggen","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD,"Anmelde Vorgang","Bitte gebe dein gewünschtes Passwort ein um dir einen Account zu erstellen!","Anmelden","Abbrechen");
    }
    return 1;
    new string[128];
    format(string,sizeof(string),"%s hat den Server betreten",SpielerName(playerid));
    SendClientMessageToAll(0x00A91EFF,string);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    sSpieler[playerid][sLogin] = 0;
    SpielerSpeichern(playerid);
    }




    stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Geld",0);
    SendClientMessage(playerid,0xFF0005FF,"Du hast dich erfolgreich auf Ultimate Roleplay registriert!");
    SendClientMessage(playerid,0xFF8C00FF,"Herzlich Wilkommen auf Ultimate Roleplay, solltest du Fragen haben benutze /report!");
    SpawnPlayer(playerid);
    SpielerReset(playerid);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
    {
    SendClientMessage(playerid,0xFF8C00FF,"Du hast dich erfolgreich eingeloggt!");
    SpielerLaden(playerid);
    }
    else
    {
    SendClientMessage(playerid,0xFF000FFF,"Du hast ein falsches Passwort eingegeben!");
    Kick(playerid);
    }
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    GetPlayerScore(playerid,dini_Int(Spieler,"Level"));
    GetPlayerMoney(playerid,dini_Int(Spieler,"Geld"));
    dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
    dini_IntSet(Spieler,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
    dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
    }
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    GetPlayerMoney(playerid,dini_Int(Spieler,"Geld"));
    GetPlayerScore(playerid,dini_Int(Spieler,"Level"));
    sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
    sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
    sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
    sSpieler[playerid][Geld] = dini_Int(Spieler,"Geld");


    SpawnPlayer(playerid);


    }
    return 1;
    }


    stock SpielerReset(playerid)
    {
    sSpieler[playerid][Adminlevel] = 0;
    sSpieler[playerid][Level] = 0;
    sSpieler[playerid][Fraktion] = 0;
    sSpieler[playerid][Geld] = 0;
    return 1;
    }



  • Kann mir jemand erklären wie ich diese Funktion benutzen kann, siehe

    Die Funktion heißt: http://wiki.sa-mp.com/wiki/EditObject


    @Retect
    Du solltest normalerweise...Fehler beim compilen bekommen...du nutzt die Funktionen falsch...


    Beim speichern lösche das:



    GetPlayerScore(playerid,dini_Int(Spieler,"Level"));
    GetPlayerMoney(playerid,dini_Int(Spieler,"Geld"));


    und beim laden schreib es so:



    SetPlayerScore(playerid,dini_Int(Spieler,"Level"));
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,dini_Int(Spieler,"Geld"));


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • @lolbob


    Ich versteh dein Problem nicht richtig. Wenn du willst, dass der Befehl aus dem Script kommt, nimmst du ihn einfach raus. :)

    habe ich ja gemacht danach kompiliert und crash entweder ein Klammerfehler irgendwo bei public onplayertextcommand oder irgendetwas anderes nachdem ich register befehl rausgenommen habe hat es angefangen im kompilierer zu crashen


    @Kaliber
    @Jeffry


    kann mir bitte einer helfen