[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
  • Hey,
    Kleine Frage gibt es in SAMP Winter/Sommerzeit ? :D


    weil wenn ich das jetze mache wird mir angezeigt 20:11 ?


    Code
    pInfo[playerid][pPersot] = gettime() + 5 * 60;
    				TimestampToDate(pInfo[playerid][pPersot],yea,mon,day,hou,minn,sec,2);
    				format(string,sizeof(string),"Sekretärin: Wir haben ihren Personalausweis beantragt, sie können ihn am %02d.%02d.%d um %02d:%02d:%02d abholen!",day,mon,yea,hou,minn,sec);
    				SendClientMessage(playerid,COLOR_RED,string);

    @Jeffry:

  • Hey,
    Kleine Frage gibt es in SAMP Winter/Sommerzeit ? :D


    weil wenn ich das jetze mache wird mir angezeigt 20:11 ?


    Code
    pInfo[playerid][pPersot] = gettime() + 5 * 60;
    				TimestampToDate(pInfo[playerid][pPersot],yea,mon,day,hou,minn,sec,2);
    				format(string,sizeof(string),"Sekretärin: Wir haben ihren Personalausweis beantragt, sie können ihn am %02d.%02d.%d um %02d:%02d:%02d abholen!",day,mon,yea,hou,minn,sec);
    				SendClientMessage(playerid,COLOR_RED,string);

    Wenn mich nicht alles täuscht, nimmt er die Serverzeit/OS eingestellte Zeit. Schau mal da nach etwaigen Problemen.

  • Ha, irgendwie funkt das nicht ^^
    Funktion:
    CreatePlayerProgressBar(playerid, Float:x, Float:y, Float:width = 55.5, Float:height = 3.2, color = 0xFF1C1CFF, Float:max = 100.0, direction = BAR_DIRECTION_RIGHT, bgcolor = 0x000000FF);


    Mein versuchscode, aber nichts wird erstellt.ocmd:progress(playerid) {CreatePlayerProgressBar(playerid, 272.117401, 439.583251 ,55.5,3.2,0xFF1C1CFF,100.0,BAR_DIRECTION_RIGHT,0x33AA33AA);SendClientMessage(playerid, info, "done");return 1; }

    Musst auch die ProgressBar zeigen.


    Code
    ShowPlayerProgressBar(playerid, PlayerBar:barid);


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Hey,
    Kleine Frage gibt es in SAMP Winter/Sommerzeit ? :D


    weil wenn ich das jetze mache wird mir angezeigt 20:11 ?


    Code
    pInfo[playerid][pPersot] = gettime() + 5 * 60;
    				TimestampToDate(pInfo[playerid][pPersot],yea,mon,day,hou,minn,sec,2);
    				format(string,sizeof(string),"Sekretärin: Wir haben ihren Personalausweis beantragt, sie können ihn am %02d.%02d.%d um %02d:%02d:%02d abholen!",day,mon,yea,hou,minn,sec);
    				SendClientMessage(playerid,COLOR_RED,string);

    @Jeffry:

    Push jemand eine Idee ?

  • Push jemand eine Idee ?

    ja, du könntest natürlich auch einfach die richtige Zeitzone in deiner Serverkonfiguration hinterlegen.
    Ubuntu, Debian, RedHat nehmen dann die Änderungen automatisch an der Systemuhrzeit vor, von dem sich der Server die Uhrzeit "holt".


    Warum rechnest du überhaupt 5*60 ?


    Alternativ (wenn du keinen Zugriff auf den Server hast)
    hinterlegst du der Einfachheit halber einfach eine Methode (welche du dann auch überall verwenden solltest)
    in welcher du abfragst ob Sommer-/Winterzeit ist, dann addierst / subtrahierst du die dementsprechende Stunde.

    [align=center]
    Mta Script Editor - Work in Progress

  • Je demnach welche Linux-Distribution (vorausgesetzt Ihr setzt Linux ein) ihr für euren Server einsetzt
    abhängig. Voraussetzung sind root Rechte:


    Debian / Ubuntu:

    Bash
    sudo timedatectl set-timezone Europe/Berlin


    Centos 7 / Redhat:

    Bash
    timedatectl set-timezone Europe/Berlin

    alles => Centos 6 über die , ebenfalls root Rechte vorausgesetzt


    /etc/localtime
    bzw.
    /sys/localtime

    [align=center]
    Mta Script Editor - Work in Progress

  • Fehler Gefunden


    Habe auf der Release Seite nochmal Nachgelesen.
    Dort stand dies.



    stock TimestampToDate(Timestamp, &year, &month, &day, &hour, &minute, &second, HourGMT, MinuteGMT = 0)


    Notice the last two parameters. GMT is the timezone in which we live. It's taken as the standard timezone. You should only fill in MinuteGMT if you live in a timezone which has for example: 6.5.

  • Er haut mir beim Fahrzeugkauf 10 Autos raus, trägt diese in die DB obwohl er nur 1 Spawnen soll. Das gleiche würde er auch mit meiner SendClientMessage machen wenn ich sie nicht außerhalb der Schleife abschicke. Wie mache ich das am besten bzw wie umgehe ich das?




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


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

  • Hey,


    Mein Dialog ignoriert alle zahlen nach 2 bzw. listitem 3


    Alle andere funktionieren, wenn ich aber auf "Delete Security Code" gehe wird der Dialog nicht angezeigt


    und nichts passiert


    Habe alle stile ausprobiert (LIST, TABLIST, TABLIST_HEADERS) bei denen ist es nicht anders



    ShowPlayerDialog(playerid, SETTINGS, DIALOG_STYLE_TABLIST, "Settings","Change Password\nChange Name\nChange Security Code\nDelete Security Code", "Select", "Exit");




    if(dialogid == SETTINGS)
    {
    if(response)
    {
    if(listitem == 0)
    {
    ShowPlayerDialog(playerid,NEWPW,DIALOG_STYLE_INPUT ,"Password","Choose a new Password","Choose","Cancel");
    }
    if(listitem == 1)
    {
    SendClientMessage(playerid,BLAU,"You dont have a namechange - Fuction not worked out");
    }
    if(listitem == 2)
    {
    if(sSpieler[playerid][pPassport] == 1)
    {
    ShowPlayerDialog(playerid,NEWCODE,DIALOG_STYLE_INP UT,"Security Check","Enter your current Security Code first","Choose","Cancel");
    }
    else
    {
    SendClientMessage(playerid,ROT,"You don't have a Security Code! You must create one first!");
    }
    if(listitem == 3)
    {
    ShowPlayerDialog(playerid,AREOK,DIALOG_STYLE_INPUT ,"Security Check","Enter your current Security Code first","Choose","Cancel"); [// Dieser Dialog wird nicht gezeigt
    }
    return 1;
    }
    }
    }

    • Offizieller Beitrag

    [b]ShowPlayerDialog(playerid, SETTINGS, DIALOG_STYLE_LIST, "Settings","Change Password\nChange Name\nChange Security Code\nDelete Security Code", "Select", "Exit");[/b]


    Das ganze könntest du auch noch ein wenig kleiner machen





  • Danke <3 Funktioniert

  • Er haut mir beim Fahrzeugkauf 10 Autos raus, trägt diese in die DB obwohl er nur 1 Spawnen soll. Das gleiche würde er auch mit meiner SendClientMessage machen wenn ich sie nicht außerhalb der Schleife abschicke. Wie mache ich das am besten bzw wie umgehe ich das?

    Du musst auch aus der Schleife springen, ansonsten durchläuft sie bis zur Erfüllung deiner Bedingung (i < MAX_AUTOS). In deinem Fall wäre die Verwendung von break sinnvoll. Das kannst du einfach unter Zeile 16 und Zeile 35 (bzw. 36) setzen.


    break spricht die Schleife ab in welcher sie verwendet wird bzw. springt aus dieser raus. Vorteil ist, dass der Code unter der Schleife trotzdem ausgeführt wird, was bei einem return nicht der Fall wäre.


    Dein Code würde bezogen auf einem Beispiel folgendes bewirken:
    Stell dir vor du stehst bei StarBucks, hast 30 Euro und möchtest Kaffee bestellen. Dir würde so lange Kaffee gegeben werden, solange dein Geld was du bei dir trägst, größer oder gleich dem Kaffeepreis von StarBucks ist - das möchtest du ja aber sicherlich nicht. Dafür hast du dein break -> solltest du einmal einen Kaffee erhalten haben, wird dir kein Kaffee mehr zubereitet und du behältst dein Geld.

  • warning 225: unreachable code


    Bekomme ich wenn ich das break; hinzufüge


    //Edit.: Hab sie jetzt anders gesetzt. Es funktioniert


    //Edit2:


    Jetzt kann man nur noch 1 Auto kaufen, also das aktuelle wird immer überschrieben, weshalb?




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


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

    2 Mal editiert, zuletzt von ENEF ()