[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
  • format(string, sizeof(string), "%s\n%s\t%s\t%s", string, Name, GetFrakRangName(Rang, fID), (IsPlayerConnected(playerid))?("Online"):("Offline"));

    Da packst dann einfach Farben mit in die Fallunterscheidung:


    format(string, sizeof(string), "%s\n%s\t%s\t%s", string, Name, GetFrakRangName(Rang, fID), (IsPlayerConnected(playerid))?("{00FF00}Online"):("{FF0000}Offline"));

    ast2ufdyxkb1.png


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

  • Beitrag von Janes ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: nvm ().
  • @Janes



    Code
    DeineGeschwindigkeit = GetVehicleSpeed(GetPlayerVehicleID(playerid));
    							ErlaubteGeschwindigkeit = Blitzer[BlitzerObj][BlitzerGeschwindigkeit] + Others[BlitzerToleranz];
    							Differenz = DeineGeschwindigkeit - ErlaubteGeschwindigkeit;
    							Punkte = (Differenz / 6);
    							if (Punkte >= 4) {
    							   Punkte = 4;
    							}

    Hab mal eine frage,


    Wen er sogar 80 km/h zu schnell ist kriegt er trotz allem nur eine Punkt da ich es bei Punkte auf 1 Gesetzt habe.
    Wen ich es bei 4 Lasse und er 80 km/h zu schnell fährt kriegt er 8 Punkte?

  • Mahlzeit,


    ich habe gerade ein Führerscheinsystem eingebaut und grundsätzlich funktioniert alles, jedoch stört es mich, dass die Fehlermeldung dreimal angezeigt wird:
    https://s15.directupload.net/images/181206/bigqta9r.png



    Der Code: Ich habe bei OnPlayerUpdate mit PLAYER_STATE_DRIVER gearbeitet.
    //Führerscheinabfrage
    if(sInfo[playerid][drivlic]==0)
    {
    for(new i=0; i<sizeof(autosOhneMotor); i++)
    {
    if(autosOhneMotor[i]==vModel)
    {
    continue;
    }
    else
    {
    SendClientMessage(playerid,Kaminrot,"Du hat noch keinen Führerschein!");
    RemovePlayerFromVehicle(playerid);
    }



    EDIT: Auch bei Autos ohne Motor (beim BMX beispielweise) werde ich removed und erhalte die Fehlermeldung, woran liegt das?

  • Probier mal



  • Da ist ein Klammerfehler drinnen, das müsste eigentlich so aussehen:


    C
    //Führerscheinabfrage
    if(sInfo[playerid][drivlic]==0)
    {
        for(new i; i<sizeof(autosOhneMotor); i++)
        {
            if(autosOhneMotor[i]==vModel) return 1;
        }
        SendClientMessage(playerid,Kaminrot,"Du hat noch keinen Führerschein!");
        RemovePlayerFromVehicle(playerid);
    }

    ast2ufdyxkb1.png


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

  • Da ist ein Klammerfehler drinnen, das müsste eigentlich so aussehen:


    C
    //Führerscheinabfrage
    if(sInfo[playerid][drivlic]==0)
    {
        for(new i; i<sizeof(autosOhneMotor); i++)
        {
            if(autosOhneMotor[i]==vModel) return 1;
        }
        SendClientMessage(playerid,Kaminrot,"Du hat noch keinen Führerschein!");
        RemovePlayerFromVehicle(playerid);
    }

    Vielen Dank das geht jetzt... aber nun ist es so, dass wenn ich auf ein Fahrzeug(welches ich als autoOhneMotor definiert habe also beispielsweise ein bmx) steige, man dieses nicht fahren, da wahrscheinlich die engine auf 0 bleibt...

  • man dieses nicht fahren, da wahrscheinlich die engine auf 0 bleibt...

    Sehr richtig ;)


    Dann schau mal in deinen Engine Befehl, wo SetVehicleParams für den Motor auf ON gesetzt werden und füge das dort ein :D

    ast2ufdyxkb1.png


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

  • Sehr richtig ;)
    Dann schau mal in deinen Engine Befehl, wo SetVehicleParams für den Motor auf ON gesetzt werden und füge das dort ein :D

    Also ich bedanke mich vorerst für deine große Hilfe. Aber ich verstehe nicht genau was du meinst -sorry :S
    Die "Engine" des Fahrrads muss ich auf 1 setzen, habe es gerade probiert und ganz schön verkackt..



    EDIT: habe es hinbekommen - vielen Dank :)

    Einmal editiert, zuletzt von iceberq ()

  • 1544375073


    So sieht die Zahl wohl aus in der Datenbank.


    Aber ich denke mal weniger das man daraus ziehen kann das es 3 Stunden kann (Falls man die Zeit mal Verringern muss/kann wie auch immer)


    //E: Wie kommt man nur auf Stunden meinte tage :D

  • 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)


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

    ...Lerne C#, JS für RageMP...

  • 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
    new x = DatenbankTimestamp - gettime();
    if(x < 0)
    {
        //Die Zeit ist um
    }
    else
    {
        //Die Stunden sind noch nicht vorbei
    }

    ast2ufdyxkb1.png


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

  • Habe es so ausprobiert.


    Code
    if(gettime() < Spieler[playerid][pFlyLicenseSperre])
    	        {
    	            new string[128];
    			    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));
    				SendClientMessage(playerid, COLOR_WHITE, string);
    			}
    			else
    			{
    			    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");
                }

    Aber irgednwie gibt er mir an: 2 Tage 71 Stunden irgendwas mit 4k Minuten.