[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
  • Oben im Skript habe ich bereits new loop = 0; deklariert. Das dürfte eigentlich nicht der Fehler sein (+ in anderen for-schleifen geht es).

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Wenn du die Schleife einmal ausführst, dann behält "loop" den Wert "sizeof(cInfo)", sprich es wird nie mehr kleiner als "sizeof(cInfo)" sein.
    Du musst die Variable entweder lokal im Schleifenkopf deklarieren, oder in im Schleifenkopf auf 0 setzen.

  • Jeffry, schon einmal dran gedacht skripten zu lehren? Damn...
    Funktioniert, danke dir.


    //Edit:


    Bräuchte hier noch einen Denkanstoß:



    ocmd:sellkeys(playerid)
    {
    new string[128],anzahl=0;
    for(loop=0;loop<sizeof(cInfo);loop++)
    {
    if(!cInfo[loop][id_x])continue;
    if(cInfo[loop][besitzer]!=pInfo[playerid][ID])continue;
    format(string,sizeof(string),"Anzahl\tAutoname\tAuto ID\n{FFFFFF}%i\t{FF0000}%s\t{FFFFFF}%i\n",anzahl++,GetVehicleName(cInfo[loop][model]),cInfo[loop][model]);
    ShowPlayerDialog(playerid,DIALOG_SELLKEYS,DIALOG_STYLE_TABLIST_HEADERS,"Auto Verwaltung - Verkaufen",string,"Okay","Abbrechen");
    SetPVarInt(playerid,"sellCarID",)
    }
    return 1;
    }


    Bei SetPVarInt möchte ich die db_id des jeweiligen Autos speichern. Jetzt ist aber das Problem: bei jedem neuen Auto das ich habe, wird ja eine neue "Liste" erstellt. Wie lese ich die Zeile aus, wenn er z.B. 3 Autos hat und er das 2te verkaufen möchte? Bei einem normalen DIALOG_STYLE_LIST mit z.B. 5 festgesetzten Plätzen wäre das für mich kein Problem, hier siehts allerdings anders aus (+ was muss ich dann bei OnDialogResponse bei listitem angeben)...

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

    Einmal editiert, zuletzt von #S. ()

  • Jeffry, schon einmal dran gedacht skripten zu lehren? Damn...

    Mach ich doch hier seit Jahren schon :klugs:



    Wie lese ich die Zeile aus, wenn er z.B. 3 Autos hat und er das 2te verkaufen möchte?

    if(dialogid == DIALOG_SELLKEYS)
    {
    if(!response) return 1;
    new count = -1;
    for(loop=0;loop<sizeof(cInfo);loop++)
    {
    if(!cInfo[loop][id_x])continue;
    if(cInfo[loop][besitzer]!=pInfo[playerid][ID])continue;
    count++;
    if(count == listitem)
    {
    printf("Ausgewähltes Fahrzeug: %s", GetVehicleName(cInfo[loop][model]));
    return 1;
    }
    }
    return 1;
    }

  • Wie kann ich nem selbst geschriebenem Befehl sagen, dass man am Ende (genauso wie bei format) "unendlich" viele Arguments jedes Tags machen kann?

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Moment mal, ich versuche mich jetzt seit einer Stunde dadran, aber irgendwie verstehe ich das nicht.



    SendFormatMessage(playerid, color, text[], {Float,Menu,Text,...,}:...)
    {
    new string[128];
    format(string,strlen(string),text,{mixed});
    SendClientMessage(playerid,color,text);
    return 1;
    }

    Ich wollte mir eigentlich sowas basteln. Wie realisiere ich das jetzt mithilfe des Tutorials? Das müsste mir jemand nochmal genauer erklären.

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Hmm, jemand ne Idee warum ich ein Warning erhalte?



    if(pData[playerid][P_GlobalChat] == true)
    {
    SendClientMessage(playerid, COLOR_RED, "Your global chat is disabled!");
    return 0;
    }


    : warning 213: tag mismatch


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Okay, jetzt funktioniert's. Habe eine Funktion erstellt womit der Spieler den Global Chat für sich an / ausschalten kann, nur fehlt mir folgende Funktion.


    (Das man nichts mehr schreiben kann habe ich hinbekommen)


    Wie mache ich das man keine Nachrichten von den anderen Spielern mehr sieht?


    In OnPlayerText



    if(pData[playerid][P_GlobalChat] == 1)
    {
    SendClientMessage(playerid, COLOR_RED, "Your global chat is disabled!");
    return 0;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Achja, stimmt, schon spät.. :D


    Wenn du einen eigenen Chat besitzt (also nicht diesen standard chat), dann musst du den Spieler überspringen (weil du da wahrscheinlich mit einer Schleife arbeitest). Bei dem normalen Chat kann man das glaube ich nicht überspringen.

  • Doch das geht.
    Dann folgender Code:

    Müsste so klappen


    -
    Meine Frage:
    Wie kann ich eine "geschätzte Zeit bis zur Ernte" Funktion erstellen?
    Ich weiß nicht was man braucht zum erstellen dieser Funktion, aber ich denke diese Bedingungen sind notwendig.
    Timer wird alle zwei Minuten aufgerufen, indem der Variable per Zufall einen Wert von 1 bis 3 dazu addiert wird.
    Es soll berechnet werden wie lange es dauert in Minuten bis die bestimmte Variable den Wert 115 erreicht.

    Einmal editiert, zuletzt von malE ()