[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
  • So müsste es gehen:

    C
    new string[128], x = Spieler[playerid][pFlyLicenseSperre]-gettime();
    format(string, sizeof(string), "Flugschein Sperre: {33AA33}Vorhanden (%d Tage, %d Stunden, %d Minuten und %d Sekunden verbleibend)", x/86400, (x % 86400) / 3600, (x%3600) / 60, x%60);
    SendClientMessage(playerid, COLOR_WHITE, string);

    ast2ufdyxkb1.png


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

    Einmal editiert, zuletzt von Kaliber ()

  • Hallo!


    Ich habe ein kleines Problem mit meinem /stats Befehl...
    Undzwar habe ich nun Jobs ins Script eingebaut, möchte den Jobnamen bei der Ausführung von /stats auslesen lassen, jedoch wird dieser nicht ausgelesen.


    der /stats Befehl:

    ocmd:stats(playerid,params[])
    {
    new pID, string[1024],pStats[128];
    new fID = sInfo[playerid][fraktion];
    new jID = sInfo[playerid][job];
    new Float:ratio=floatdiv(sInfo[playerid][kills], sInfo[playerid][tode]);
    if(sInfo[playerid][eingeloggt]==0) return SendClientMessage(playerid,Kaminrot,"ERROR: Du bist nicht eingeloggt.");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,Orange,"INFO: /stats [id/name]"),
    format(pStats,sizeof(pStats),"Statistiken von %s",getPlayerName(playerid)),
    format(string,sizeof(string),"Name:[%s], ID:[%i], Level:[%i], XP:[%i/%i]\nSpielstunden:[], Payday:[%i/30], Account:[], Adminlevel:[%i]\nVerwarnungen:[], Geld ges.:[%i], Bargeld:[%i], Bank:[%i]\nFraktion:[%s], Rang:[%i], Drogen:[%i]\nKills:[%i], Tode:[%i], K/D Rate:[%.2f], Wanteds:[%i], Job:[%s]",
    getPlayerName(playerid),playerid,GetPlayerScore(playerid),sInfo[playerid][xpres],sInfo[playerid][xpmax],sInfo[playerid][payday],sInfo[playerid][alevel],GetPlayerMoney(playerid)+sInfo[playerid][bank],GetPlayerMoney(playerid),sInfo[playerid][bank],fInfo[fID][f_name],
    sInfo[playerid][rang],sInfo[playerid][drogen],sInfo[playerid][kills],sInfo[playerid][tode],ratio,GetPlayerWantedLevel(playerid)),jInfo[jID][j_name],
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,pStats,string,"Okay","");
    return 1;
    }


    Ich habe dann testweise einen Befehl programmiert, der grundsätzlich auch auslesen soll:

    ocmd:wieistmeinjobundfraktion(playerid,params[])
    {
    new string[128],fID,jID;
    fID=sInfo[playerid][fraktion];
    jID=sInfo[playerid][job];
    format(string,sizeof(string),"Fraktion: %s || Job: %s ",fInfo[fID][f_name], jInfo[jID][j_name]);
    SendClientMessage(playerid,Ak,string);
    return 1;
    }

    Bei der Ausführung dieses Befehls konnte der Jobname ausgelesen werden.. Ich weiß aber nicht, was beim /stats Befehl fehlt, könnte mir bitte jemand weiterhelfen?


    Grüße

  • Ich weiß aber nicht, was beim /stats Befehl fehlt, könnte mir bitte jemand weiterhelfen?

    2 Fehler waren da:


    1. Du hast nirgends pID genutzt, das heißt egal welche ID du eingegeben hättest, du hättest immer die stats von dir selbst gesehen.


    2. Du setzt zu oft ein , obwohl du ein ; verwenden willst. Dadurch hast du einen ) Fehler gemacht, der zu dem Problem führt.


    Schreibe es mal so:


    ast2ufdyxkb1.png


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

  • Hat jemand von euch ein Befehl den er geben kann um ein Cop Outfit anzuziehen? Also Gürtel und kp Waffen/Spray oder so dran?

    Das was du suchst? https://forum.sa-mp.com/showthread.php?t=220112


    Gibt auch einfach n Filterskript, wo du beliebiges einstellen kannst: https://forum.sa-mp.com/showthread.php?t=501924

    ast2ufdyxkb1.png


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

  • Hat das denn irgendwelche Vorteile?

    Viele sagen ja, dass objektorientiertes Programmieren ganz toll sein soll.
    Ich habe nur Erfahrung mit C und PAWN, daher kenne ich die Vorteile davon nicht.
    Alles was ich bisher in C und PAWN umsetzen wollte habe ich auch in irgendeiner Form geschafft, aber sicherlich gibt es mit diesen Sprachen komfortablere Wege.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Der einzige Vorteil ist glaube ich, dass Leute die mit C++ oder C# besser vertraut sind, somit keine neue Sprache erlernen müssen.


    Viele sagen ja, dass objektorientiertes Programmieren ganz toll sein soll.

    Es ist auch, wenn man es richtig anwendet, für dich und auch alle weiteren Leute die deinen Code bearbeiten wollen, viel einfacher den Code zu verstehen und auch einfach strukturierter.
    Teilweise kann man sowas ja in PAWN auch umsetzen.

  • wie kann ich das machen das wenn zb Spieler B sich einloggt und er Admin ist
    das er vor seinen namen was bekommt wie zb [Admin]Peter



    OnPlayerSpawn(playerid)
    {
    if(sinfo[playerid][admin]>=1)
    {
    SetName(playerid,[Admin]
    GetName(playerid... um sein namen davor zu behalten aber weiter weiß ich nicht..
    }

  • Frage zu CreateDynamicMapIcon : Welche Distanz muss ich beim letzten Parameter eingeben, damit man das Icon auch schon aus weitere Distanz erkennen kann? Also sind da so die üblichen Werte? Klar könnte ich aus selbst ausprobieren, habe jedoch gerade nicht viel Zeit..


    MFG

  • üblichen Werte

    Der Default Wert beträgt 100.0


    Eine normale Stream-Distance, wie z.B. die von Objekten beträgt 300.0


    Kann aber auch bis zu 600.0 gehen, das ist dann aber schon sehr weit.



    Will da grobe Fehler vermeiden, bzw. Optimierungen vornehmen wenn jemandem ggf. was auffaellt.

    Nutze dafür das Profiler Plugin für große Optimierungen.


    So im kleinen, schau in den Code Optimierungs Thread :D

    ast2ufdyxkb1.png


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

  • Der Default Wert beträgt 100.0
    Eine normale Stream-Distance, wie z.B. die von Objekten beträgt 300.0


    Kann aber auch bis zu 600.0 gehen, das ist dann aber schon sehr weit

    Danke! Und wie kann ich diese Map Icons auch auf der großen Karte anzeigen lassen? Auf der Minimap sind sie zusehen, aber auf der Karte nicht (Esc -> MAP).