Angepinnt [SAMMELTHREAD] Kleine Scripting Fragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kaliber schrieb:

    Dr. Frauenarzt schrieb:

    Wie kann ich ihn am besten die Genaue zahl speichern lassen in der Datenbank und nicht soviele Zahlen?!
    He?
    Das ist doch nur eine Zahl...halt der Timestamp
    Er möchte dass bestimmt in dem Format (%H:%M:%S). Oder halt (%d.%m.%y %H:%M:%S)

    PAWN-Quellcode

    1. new date[3], time[3];
    2. gettime(time[0], time[1], time[2]);
    3. getdate(date[0], date[1], date[2]);
    4. printf("Date + Time: %02d-%02d-%04d %02d:%02d:%02d", date[2], date[1], date[0], time[0], time[1], time[2]);

    Art: Roleplay
    Script-Fortschritt: 25%
    Script-Features: Bleibt Geheim
    Script-Zeilen: -Muss man nicht wissen den die Features sind das wichtigste!-
    Projektname: -Bleibt derzeit Geheim!-



    Uhrheberrechtshinweis: Die Symbole(Icons) sind nicht selbst erstellt sondern gehören IconArchive.com
  • Genadj_Andrenov schrieb:

    Er möchte dass bestimmt in dem Format (%H:%M:%S). Oder halt (%d.%m.%y %H:%M:%S)
    Nein möchte er nicht.

    Das ist schon richtig so.

    Das ist ja nur eine Zahl die lädst du und kann dann damit rechnen:

    C-Quellcode

    1. new x = DatenbankTimestamp - gettime();
    2. if(x < 0)
    3. {
    4. //Die Zeit ist um
    5. }
    6. else
    7. {
    8. //Die Stunden sind noch nicht vorbei
    9. }


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Habe es so ausprobiert.

    PAWN-Quellcode

    1. if(gettime() < Spieler[playerid][pFlyLicenseSperre])
    2. {
    3. new string[128];
    4. format(string, sizeof(string), "Flugschein Sperre: {33AA33}Vorhanden (%d Tage, %d Stunden und %d Minuten verbleibend)", ((Spieler[playerid][pFlyLicenseSperre]-gettime())/86400), ((Spieler[playerid][pFlyLicenseSperre]-gettime())/3600), ((Spieler[playerid][pFlyLicenseSperre]-gettime())/60));
    5. SendClientMessage(playerid, COLOR_WHITE, string);
    6. }
    7. else
    8. {
    9. ShowPlayerDialog(playerid, DIALOG_FLUGSCHEIN ,DIALOG_STYLE_MSGBOX,"Lizenz: Flugschein","Der Flugschein wird benötigt, um legal ein Flugzeug oder Helikopter zu fliegen.\n\nKosten: 12000$","Weiter","Schließen");
    10. }
    Aber irgednwie gibt er mir an: 2 Tage 71 Stunden irgendwas mit 4k Minuten.
  • So müsste es gehen:

    C-Quellcode

    1. new string[128], x = Spieler[playerid][pFlyLicenseSperre]-gettime();
    2. 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);
    3. SendClientMessage(playerid, COLOR_WHITE, string);


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

    Dieser Beitrag wurde bereits 1 mal 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:

    PAWN-Quellcode

    1. ocmd:stats(playerid,params[])
    2. {
    3. new pID, string[1024],pStats[128];
    4. new fID = sInfo[playerid][fraktion];
    5. new jID = sInfo[playerid][job];
    6. new Float:ratio=floatdiv(sInfo[playerid][kills], sInfo[playerid][tode]);
    7. if(sInfo[playerid][eingeloggt]==0) return SendClientMessage(playerid,Kaminrot,"ERROR: Du bist nicht eingeloggt.");
    8. if(sscanf(params,"u",pID)) return SendClientMessage(playerid,Orange,"INFO: /stats [id/name]"),
    9. format(pStats,sizeof(pStats),"Statistiken von %s",getPlayerName(playerid)),
    10. 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]",
    11. 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],
    12. sInfo[playerid][rang],sInfo[playerid][drogen],sInfo[playerid][kills],sInfo[playerid][tode],ratio,GetPlayerWantedLevel(playerid)),jInfo[jID][j_name],
    13. ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,pStats,string,"Okay","");
    14. return 1;
    15. }
    Alles anzeigen


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

    PAWN-Quellcode

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

    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
  • iceberq schrieb:

    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:

    C-Quellcode

    1. ocmd:stats(playerid,params[])
    2. {
    3. if(sInfo[playerid][eingeloggt]==0) return SendClientMessage(playerid,Kaminrot,"ERROR: Du bist nicht eingeloggt.");
    4. new pID:
    5. if(sscanf(params,"u",pID)) return SendClientMessage(playerid,Orange,"INFO: /stats [id/name]");
    6. new string[1024],pStats[16 + MAX_PLAYER_NAME];
    7. new fID = sInfo[pID][fraktion], jID = sInfo[pID][job];
    8. new Float:ratio=floatdiv(sInfo[pID][kills], sInfo[pID][tode]);
    9. format(pStats,sizeof(pStats),"Statistiken von %s",getPlayerName(pID));
    10. 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]",
    11. getPlayerName(pID),pID,GetPlayerScore(pID),sInfo[pID][xpres],sInfo[pID][xpmax],sInfo[pID][payday],sInfo[pID][alevel],GetPlayerMoney(pID)+sInfo[pID][bank],GetPlayerMoney(pID),sInfo[pID][bank],fInfo[fID][f_name],
    12. sInfo[pID][rang],sInfo[pID][drogen],sInfo[pID][kills],sInfo[pID][tode],ratio,GetPlayerWantedLevel(pID),jInfo[jID][j_name]);
    13. ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,pStats,string,"Okay","");
    14. return 1;
    15. }
    Alles anzeigen


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Neu

    Nima.Yaghobi schrieb:

    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? forum.sa-mp.com/showthread.php?t=220112

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


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

  • Neu

    Bier schrieb:

    Sub Royal schrieb:

    Hat irgendjemand eigentlich mal die C#/C++ SDKs/GDKs ausprobiert f. SAMP? Sieht ja schon ziemlich heftig aus einen Gamemode in C# oder C++ zu schreiben.
    Ich versuche mich da mal reinzulesen.
    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.
  • Neu

    Der einzige Vorteil ist glaube ich, dass Leute die mit C++ oder C# besser vertraut sind, somit keine neue Sprache erlernen müssen.

    Sub Royal schrieb:

    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.
    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.
    Ich biete auch einen Scripting Service an: Scripting Service

    Konversation: Konversation starten

    Discord: LeonMrBonnie#2251

  • Neu

    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

    PAWN-Quellcode

    1. OnPlayerSpawn(playerid)
    2. {
    3. if(sinfo[playerid][admin]>=1)
    4. {
    5. SetName(playerid,[Admin]
    6. GetName(playerid... um sein namen davor zu behalten aber weiter weiß ich nicht..
    7. }
  • Neu

    PAWN-Quellcode

    1. public OnPlayerSpawn(playerid)
    2. {
    3. if(sinfo[playerid][admin]>=1)
    4. {
    5. new name[20],newname[24];
    6. GetPlayerName(playerid, name, sizeof(name));
    7. format(newname,sizeof(newname),"[Admin]%s",name);
    8. SetPlayerName(playerid,newname);
    9. }
    10. }
    Alles anzeigen
    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.
    Ich biete auch einen Scripting Service an: Scripting Service

    Konversation: Konversation starten

    Discord: LeonMrBonnie#2251

  • Neu

    iceberq schrieb:

    ü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.


    Sub Royal schrieb:

    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


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