[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
  • Guten Abend,

    ich hab mal eine Frage, ich habe einen '_' in meinem Namen, diesen möchte ich gerne Splitten, um "Vorname" und "Nachnamen" getrennt anzeigen zu lassen.


    Code
    new splStr[2][20], strMsg[256];
    printf("Create - Name: %s", CharInfo[playerid][Name]);
    sscanf(CharInfo[playerid][Name], "p<_>s[20]s[20]", splStr[0], splStr[1]);
    format(strMsg, sizeof(strMsg), "{E68A00}Datenbank ID: {FFFFFF}%d {E68A00}| Vorname: {FFFFFF}%s {E68A00}| Nachname: {FFFFFF}%s {E68A00}| Geburtsdatum: {FFFFFF}%s",
        CharInfo[playerid][ID], splStr[0], splStr[1], CharInfo[playerid][Birthdate]);
    SendClientMessage(playerid, -1, strMsg);

    Leider spuckt er mir den strMsg nicht in den Chat aus.


    Oder kann sscanf ein '_' nicht Splitten?


    LG, DomeTastisch.

    Mich interessiert nicht, wessen Schuld es ist, vor allem nicht, wenn es meine eigene ist!

  • Tatsache, die Nachricht war einfach nur zu lang, ich danke euch.

    Dummer Fehler von mir.


    LG, DomeTastisch.

    Mich interessiert nicht, wessen Schuld es ist, vor allem nicht, wenn es meine eigene ist!

  • hey, hab folgenden code:

    funktioniert alles wie gewollt, will aber dass das textlabel sagt wie viel damage man dem spieler hinzugefügt hat und nach 1ner sekunde wieder verschwindet/zerstört wird. weiß nicht wie weil der callback kein parameter für damage amount hat (wie bei OnPlayerTakeDamage). danke im voraus.

  • funktioniert alles wie gewollt, will aber dass das textlabel sagt wie viel damage man dem spieler hinzugefügt hat und nach 1ner sekunde wieder verschwindet/zerstört wird. weiß nicht wie weil der callback kein parameter für damage amount hat (wie bei OnPlayerTakeDamage). danke im voraus.

    Nutze am Besten: https://wiki.sa-mp.com/wiki/OnPlayerTakeDamage


    und dann zum Anzeigen: https://wiki.sa-mp.com/wiki/SetPlayerChatBubble

    ast2ufdyxkb1.png


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

  • gibt es keine möglichkeit dies umzusetzen

    Doch natürlich, nur dachte so wäre es deutlich leichter, weil diese Funktion genau dafür ist...und kp, inwiefern da ein TextLabel überhaupt den Unterschied macht...


    Naja, du könntest folgendes machen:


    ast2ufdyxkb1.png


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

  • Doch natürlich, nur dachte so wäre es deutlich leichter, weil diese Funktion genau dafür ist...und kp, inwiefern da ein TextLabel überhaupt den Unterschied macht...


    Naja, du könntest folgendes machen:


    bekomme bei dieser zeile:

    Code
        else dmgLabel[playerid] = CreatePlayer3DTextLabel(playerid,string, 0xFF0000FF, x,y,z, 20.0, GetPlayerVirtualWorld(playerid), 0);

    folgende warnung:

    Code
    warning 213: tag mismatch
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich habe den Code nochmal aktualisiert, schau nochmal rein und nimm den Neusten :)

    Danke, das scheint zu funktionieren aber nicht wie gewollt (da hätte ich auch gleich die ChatBubble funktion nehmen können wie du schon erwähnt hast.)


    Das hier erstellt das textlabel dort, wo die kugel den spieler trifft.

  • Das hier erstellt das textlabel dort, wo die kugel den spieler trifft.

    Achsooo, ja sag das doch, dass du das willst :D


    Dann lösch das alles..und mach es so:

    Dann bleibt das Label 10 Sekunden da, wo der Spieler getroffen wurde.

    ast2ufdyxkb1.png


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

  • Achsooo, ja sag das doch, dass du das willst :D


    Dann lösch das alles..und mach es so:

    Dann bleibt das Label 10 Sekunden da, wo der Spieler getroffen wurde.

    bekomme folgende fehlermeldungen:

    Code
    new string[32],Float:x,Float:y,Float:z,Text3D:label; //warning 219: local variable "label" shadows a variable at a preceding level   und    warning 203: symbol is never used: "label"
    label = Create3DTextLabel(string, 0xFF0000FF, x,y,z, 20.0, GetPlayerVirtualWorld(playerid), 0); //error 022: must be lvalue (non-constant)
  • folgende fehlermeldungen

    Dann hast du wohl eine globale Variable die Label heißt, das nicht so juuut, aber auch egal, dann machs einfach so:


    C
    new string[32],Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    format(string,sizeof(string),"DMG: %.02f",amount);
    SetTimerEx("@DeleteDmgDraw",1000*10,0,"i",_:Create3DTextLabel(string, 0xFF0000FF, x,y,z, 20.0, GetPlayerVirtualWorld(playerid), 0)); //1000*10 = 10 Sekunden
    
    //Und dann außerhalb:
    @DeleteDmgDraw(i);@DeleteDmgDraw(i) {
        Delete3DTextLabel(Text3D:i);
    }

    ast2ufdyxkb1.png


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

  • Dann hast du wohl eine globale Variable die Label heißt, das nicht so juuut, aber auch egal, dann machs einfach so:


    C
    new string[32],Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    format(string,sizeof(string),"DMG: %.02f",amount);
    SetTimerEx("@DeleteDmgDraw",1000*10,0,"i",_:Create3DTextLabel(string, 0xFF0000FF, x,y,z, 20.0, GetPlayerVirtualWorld(playerid), 0)); //1000*10 = 10 Sekunden
    
    //Und dann außerhalb:
    @DeleteDmgDraw(i);@DeleteDmgDraw(i) {
        Delete3DTextLabel(Text3D:i);
    }

    Wir kommen der sache näher aber das textlabel wird an der gleichen stelle (genau in der mitte des spielers) erstellt. bei meinem code (wo ich onplayerweaponshot benutzt habe) hat es das textlabel genau dort erstellt wo auch die kugel den spieler getroffen hat.

  • Achsoooo, schreib das doch hahahaha xD


    Mach es so:


    ast2ufdyxkb1.png


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

  • Achsoooo, schreib das doch hahahaha xD


    Mach es so:


    vielen dank für deine hilfe jetzt funktioniert alles wie gewollt :)

    edit: noch eine frage bezüglich dazu: wie kann ich es umändern sodass das textlabel nur dem spieler angezeigt wird, der schießt (issuerid) Kaliber

    2 Mal editiert, zuletzt von Herolot ()

  • noch eine frage bezüglich dazu: wie kann ich es umändern sodass das textlabel nur dem spieler angezeigt wird, der schießt (issuerid) Kaliber

    Nächstes mal, am Besten direkt in den ersten Thread deine Vorstellung schreiben, wie du dir das System vorstellst hahaha xD

    Mit allen Details, sowas ist nur schwer vorherzusehen hahaha xD


    Machste so:


    ast2ufdyxkb1.png


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

  • Nächstes mal, am Besten direkt in den ersten Thread deine Vorstellung schreiben, wie du dir das System vorstellst hahaha xD

    Mit allen Details, sowas ist nur schwer vorherzusehen hahaha xD


    Machste so:


    bekomme keine compiler errors/warnings nur wird das textlabel nicht angezeigt

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