[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
  • -> Preis eingeben, per was? Chat, Dialog?
    Dann halt dort einfügen wo du es haben willst, abfragen ob der Spieler in einem Taxi sitzt, und dann Update3DTextLabel?


    -> SetPlayerColor


    -> Timer, der auf den Spieler der als Beifahrer drin sitzt anwenden, und ihm immer alle 10 Sekunden auf eine Variable die Summe vom Taxi-Fahrer hinzufügen.


    -> Erstell eine Variable die sagt, dass der Spieler als Taxifahrer im Dienst ist, bei OnVehicleSpawn fragst du ab ob der Spieler in dieser vehicleid "angemeldet" war als Taxifahrer, sprich du lässt zusätzlich, sobald der Spieler ein Taxi verwendet in einer Variable dem Spieler die vehicleid vom Taxi geben.


    -> Selbe wie oben, musst nur da wo du die Taxis erstellst, das respawn_delay auf 120 setzen.

  • -> SetPlayerColor -> Erledigt
    -> Selbe wie oben, musst nur da wo du die Taxis erstellst, das respawn_delay auf 120 setzen. -> Erledigt



    -> Das ist der Dialog wen der Spieler ins Taxi Steigt
    -> Preis eingeben, per was? Chat, Dialog? -> Dialog

    if(IsVehicleATaxi(vehicleid))
    {
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), COLOR_HEX_WHITE"Du kannst nun den Preis festlegen, den die Fahrgäste jede 10 Sekunden bezahlen\nDer Preis muss mindestens 1$ und maximal 200$ sein.");
    ShowPlayerDialog(playerid, DIALOG_TAXI, DIALOG_STYLE_INPUT, "Taxi Company", DialogString, "Weiter", "Aussteigen");
    return 1;
    }



    -> Timer, der auf den Spieler der als Beifahrer drin sitzt anwenden, und ihm immer alle 10 Sekunden auf eine Variable die Summe vom Taxi-Fahrer hinzufügen. (Verstehe ich nicht)
    -> Erstell eine Variable die sagt, dass der Spieler als Taxifahrer im Dienst ist, bei OnVehicleSpawn fragst du ab ob der Spieler in dieser vehicleid "angemeldet" war als Taxifahrer, sprich du lässt zusätzlich, sobald der Spieler ein Taxi verwendet in einer Variable dem Spieler die vehicleid vom Taxi geben. (Verstehe ich nicht)

  • Hey,



    ich denke das gab es schonmal, aber wie ist es möglich ein /help System zu machen?



    Man soll mit /help [suchtext] nach etwas suchen können, wie auf rgn..
    Ich weiß, dass die mit stichworten und ner Datenbank arbeiten, leider kein plan, wie ich das umsetzen soll..



    Beispiel:


    /help drogen


    Dann im dialog:


    Artikel 15: Drogensystem 1
    Artikel 19: Drogensystem2
    Usw.



    Würde man jetzt aber direkt die artikel nummer angeben so würde er auch direkt den Artikel anzeigen...




    Hätte jemand für mich ein Code Schnipsel oder so?
    Wäre cool :)


    Ansonsten nur eine Anregung wie man sowas machen könnte



    Gruß

    Mit freundlichen Grüßen,


    Keslo

    Einmal editiert, zuletzt von Keslo ()

  • Kann mir einer sagen wie ich ein Befehl mache der so ausschaut?


    /speak Frank


    Das dann ein Dialog zB kommt, und wenn ich /speak Anna mache, dann ein andere Dialog.
    Nutze ocmd, weiß leider nicht wie ich dies machen soll.


    MfG.

  • Naja...so:


    ast2ufdyxkb1.png


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

  • Ist es möglich eine Rundung als TextDraw zu machen?

    Ja, ist möglich mit Sprites zum Beispiel :)


    Edit2:


    Hi, erstelle 2 Labels pro Spieler und update sie und zeige eine Zeit an. Davon geht aber immer ein Timer in den negativen Bereich, wenn ID 1 zuerst die Labels erstellt.
    Woran kann das liegen, Fehler im Timer oder beim updaten von den Labels?


    Label (nur eins davon)


    new Text3D:bikelabel[MAX_PLAYERS];



    bikelabel[playerid] = CreateDynamic3DTextLabel(""#BikeTime"{FFFFFF}s\nleft", COLOR_RED, x, y, z, 50.0, INVALID_PLAYER_ID, createdBike[playerid], 0,-1,-1,-1,50.0);



    Timer:



    forward BikeCountDown(playerid);
    public BikeCountDown(playerid)
    {
    new str[144];
    if(BikeCD[playerid] <= BikeTime)
    {
    BikeCD[playerid]--;
    format(str, sizeof(str),"%d{FFFFFF}s\nleft", BikeCD[playerid]);
    UpdateDynamic3DTextLabelText(bikelabel[playerid], COLOR_RED, str);



    }



    if(BikeCD[playerid] == 0)
    {
    BikeCD[playerid] = BikeTime;
    //KillTimer(DestroyBikeTimer[playerid]);
    KillTimer(BikeLabelUpdate[playerid]);
    DestroyDynamic3DTextLabel(bikelabel[playerid]);
    return 1;
    }



    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

    2 Mal editiert, zuletzt von JustMe.77 ()

  • Beitrag von reaL. ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Gelöst. Habe i genommen musste aber ID nehmen ().
  • Beitrag von Kisa ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Mein Fehler! ().
  • Mit

    Also, wenn ich den Text richtig verstanden habe...hat er es bereits geschafft diese Log Dateien zu speichern..und möchte sie nun auslesen & in einem Dialog anzeigen.


    So ginge das:


    C
    new File:f = fopen("log.txt",io_read);
    if(!f) return 1; //Keine Berechtigung
    new buffer[32], stack[512];
    while(fread(f, buffer))
    {
        strcat(stack, buffer);
    }
    fclose(f);
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Log",stack,"Bestätigen","");

    ast2ufdyxkb1.png


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

  • Huhu,



    wie ist es möglich eine Schleife nach Spielern abzufragen?




    for(new i=0; i<MAX_PLAYERS; i++)


    Das ist mir bewusst..



    Aber nun konkreter:


    Ich will ein System machen, dass zb man nur etwas machen kann, wenn zb 2 Cops online sind,


    wie frage ich diese 2 cops ab?

    Mit freundlichen Grüßen,


    Keslo

  • wie frage ich diese 2 cops ab?

    Naja..


    ast2ufdyxkb1.png


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

  • @Kaliber:
    Das Funktioniert Super Dankeschön aber wie kann ich das machen das in dem Dialog nur der Name steht und wenn man draufklickt die Nachricht kommt die er gesendet hat und dann der eintrag Gelöscht wird ?


    So sieht die Datei aus


    Code
    [04.12.2016 14:31:04]reaL.: Test
    [04.12.2016 14:33:56]reaL.: Test2


    Code
    new File:f = fopen("logs/Bugreports.txt",io_read);
    		if(!f) return 1; //Keine Berechtigung
    		new buffer[32], stack[512];
    		while(fread(f, buffer))
    		{
    		    strcat(stack, buffer);
    		}
    		fclose(f);
    		ShowPlayerDialog(playerid,DIALOG_BUSREPORTS,DIALOG_STYLE_LIST,"Log",stack,"Bestätigen","");
  • Danke dir, funktioniert einwandfrei :) Ohne die beschriebene Nutzung hätte ich es nicht hinbekommen :D




    Aber eine Frage hätte ich noch:


    Könnte ich theoritisch alle meine if abfragen
    for(new i=0; i<MAX_PLAYERS; i++)


    zu
    for(new i=GetPlayerPoolSize(); i!=-1; i--) //Ist wie deine Schleife..nur schneller :D Da sie nicht 500 spieler durchloopt sondern nur bis zur höchsten spielerid


    ändern?


    Oder gibt es tatsächlich irgendwo ein unterschied wo man das obere benutzen könnte, es ist ja langsamer?


    @Kaliber

    Mit freundlichen Grüßen,


    Keslo

  • wenn man draufklickt die Nachricht kommt die er gesendet hat

    Ehh...wo hast n die Nachricht gespeichert..das wäre irgendwie relevant xD
    Also..Variable..oder Datei..oder wo xD


    Oder gibt es tatsächlich irgendwo ein unterschied wo man das obere benutzen könnte, es ist ja langsamer?

    Das könntest du :)


    Theoretisch wäre foreach noch besser :)

    ast2ufdyxkb1.png


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

  • kann man bei pawno nicht eine variable in eine andere packen ?

    Wie hast denn hours deklariert? :)
    PS: Die Sprache heißt nur Pawn :)



    Test und test2 sind die Nachrichten die Gespeichert werden.

    Nein ich meine..wenn du darauf klickst...was soll den passieren..welche Nachricht willst du denn sehen..wo ist diese gespeichert :D

    ast2ufdyxkb1.png


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

  • @Kaliber:
    Ich hatte ja gefragt wie das geht dass ich mir die Bugreports anzeigen lasse da hattest du mir Geholfen ( voherige seite ).
    Doch da wird die Ganze zeile Ausgegen aber ich will in dem Dialog dann nur die namen stehen habem wie z.b wemn 3 leute ein Bug gemeldet haben dann soll der Dialog so aussehen
    Spieler x
    Spieler y
    Spieler z


    Wenn ich dann auf spieler x drücke soll doe Ganze nachricht ausgegeben werden ist das realisierbar ?
    Die bugmeldungen werden dort gespeichert
    "logs/Bugreports.txt"

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