[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
  • wie kann mann z.B. bei einem temp Ban gettime() + 5Tage.
    das ich dan gettime(); und die andere Variable berechne in Sekunde Minute Stunde Tage.


    Lg,
    Skoam

  • Okay könnte mir das einer vor machen bin leider Neu :(


    Hast du mal auf den Link geklickt? :huh:


    Da ist doch sogar ein Beispiel und alle Attribute sind aufgelistet...


    Wenn du etwas nicht verstehst, frag bitte expliziter :S

    ast2ufdyxkb1.png


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



  • Kannst du mir das Bitte erleutern, Ich möchte das wenn man Enter drückt das die die Animation die man ausführt aufhört.

  • Kannst du mir das Bitte erleutern, Ich möchte das wenn man Enter drückt das die die Animation die man ausführt aufhört.


    //Edit:


    Obwohl nimm lieber einen Befehl dafür:


    //Irgendein Command:
    if(GetPlayerAnimationIndex(playerid)) ClearAnimations(playerid);


    Da du sonst die Animation selbst abbrichst die ein Spieler ausführen würde...

    ast2ufdyxkb1.png


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




  • Da ist das problem, dann kann der spieler nicht mehr in ein auto einsteigen

  • Wie kann ich die Größe (Menge) vom ersten Array in einem multidimensionalen Array auslesen?


    new string[][300];
    format(string[1],300,"String 1");
    format(string[2],300,"String 2");


    new rand = random(sizeof(string)); //<-- Wie geht das? Ich möchte einen zufälligen String auswählen




    /erledigt:
    Ich musste string zuerst deklarieren
    new string[][300] = { {""} };


    /doch nicht erledigt
    Ich kann dann nur so viel nutzen wie ich initialisiert hab.
    Andere Lösung?

    3 Mal editiert, zuletzt von H4rd_B4se ()

  • Andere Lösung?


    Nun, da gibt es mehrere, das kommt auf die Deklaration an.


    Angenommen du machst es so:


    static const array[][] = {
    "String1",
    "String2",
    "String3"
    };


    printf("Anzahl der Strings: %d",sizeof array); //->Gibt 3 aus


    Das was du aber willst, ist viel mehr eine Liste an Elementen.


    new string[30][128];
    string[0] = "String1";
    string[1] = "String2";
    string[3] = "String4";


    So jetzt können wir nicht mehr mit sizeof oder strlen arbeiten.
    Zusätzliches Problem ist, dass Lücken entstehen können wie z.B. in diesem Fall cell 2 leer ist.
    Lösung ist eine Funktion:


    stock CountStrings(const str[][],len=sizeof str)
    {
    new counter;
    for(new i; i<len; i++)
    {
    switch(str[i][0])
    {
    case '\0','\1': continue;
    default: counter++;
    }
    }
    return counter;
    }


    //Nutzen können wir sie in unserem Beispiel so:
    new string[30][128];
    string[0] = "String1";
    string[1] = "String2";
    string[3] = "String4";
    printf("Anzahl der Strings: %d",CountStrings(string)); //->3


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Leere Cells gibts nicht. Die werden eins nach dem anderen aus der Datenbank ausgelesen


    Ich bin von deinem Beispiel ausgegangen und da ist cell 0 leer :rolleyes:


    aber ich möchte dem ersten Array keine feste Größe geben. Geht das nicht?


    In dieser Sprache leider nicht direkt.


    Du müsstest ein Plugin verwenden um dies tun zu können: http://forum.sa-mp.com/showthread.php?t=451381


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • new Rechnung = GetRangLohn(playerid)/100;
    SendClientMessage(playerid,WEIS,"|-----[Zahltag]-----|");
    SendClientMessage(playerid,WEIS,"");
    format(string,sizeof(string),"+ Gehalt: %i$ \n+ Zinsen %i$ (%f Prozent) \n- Steuern: %i$ (%f Prozent)",GetRangLohn(playerid),Rechnung*Server[Zinsen],Server[Zinsen],Rechnung*Steuern,Server[Steuern]);



    D:\Spiele\server\gamemodes\SFRP.pwn(186) : warning 213: tag mismatch
    D:\Spiele\server\gamemodes\SFRP.pwn(186) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Warnings.