[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
  • Glaub mir, allen anderen geht auch manchmal nicht anders.


    #GEIL: Mein DynDialog geht nun :)


    1e Zeile pro Dialog


    Code
    {1, 2, 3, DIALOG_STYLE_INPUT, "Login", "Hallo Whitetiiger", "Login", "Kick"},
    {2, 0, 0, DIALOG_STYLE_LIST, "Waffenauswahl", "AK47\nM4\nSniper Rifle", "Kaufen", "Abbruch"},
    {3, 0, 1, DIALOG_STYLE_MSGBOX, "Fast beim Kick", "Möchtest du wirklich gekickt werden?", "Ja", "Lieber nicht"}

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • Hallo,


    ich habe eine Frage bezüglich des Randoms...
    Folgendes habe ich vor, es sollen 3 Zahlen per Random "gelost" werden. ( Sprich Zahl: 1, Zahl: 2, Zahl 3).
    Mein Problem ist Random gibt mir nur 0 und 1 aus...


    Code:

    Code
    new zufall = random(2);
    printf("Zufallzahl: %i", zufall);
    
    
    if(Enum_Info[i]EnumArt] == 0)
    {
        // etc...
    }


    Laut SA:MP Wiki steht:

    Code
    A random number ranging from 0 to max-1.
    
    
    new value = random(5);
    // 'value' might be 0, 1, 2, 3 or 4. 5 possible values.


    Meine Frage daher zählt Random jetzt ab '0' oder ab '1'?
    Weil der rest der Funktion funktioniert dann auch nicht wenn Random falsche Zahlen ausgibt...


    Kann mir einer weiterhelfen?
    Vielen Dank im vorraus ;)

  • Die Funktion random fängt bei 0 an und endet bei dem (Wert in der Klammer)-1. Du hast es aus dem SA-MP Wiki sogar richtig zitiert. ;)

    C
    A random number ranging from 0 to max-1.

    Sprich:


    C
    random(3)

    Das könnte die Zahlen 0, 1 und 2 ausgeben (0,1,2 = 3 Zahlen).

  • Die Funktion random fängt bei 0 an und endet bei dem (Wert in der Klammer)-1. Du hast es aus dem SA-MP Wiki sogar richtig zitiert. ;)

    C
    A random number ranging from 0 to max-1.


    Sprich:


    C
    random(3)

    Das könnte die Zahlen 0, 1 und 2 ausgeben (0,1,2 = 3 Zahlen).


    Ah okey gut dankeschön :)


    Wie würde ich dann die Objekte texturieren lassen?


    so?

    Code
    for(new i = 0; i < MAX_DEFINE_OBJECTS; i++)
    {
    	new zufall = random(3);
    	Object_Info[i][ObjectArt] = zufall;
    	Object_Info[i][Object_ID] = CreateDynamicObject( /* die ganzen Koordinaten*/ );
    	if(zufall == 0)
    	{
    		 SetDynamicObjectMaterialText(Object_Info[i][Object_ID], /* rest der Textur */ );
    	}
    }


    oder so?

    Code
    for(new i = 0; i < MAX_DEFINE_OBJECTS; i++)
    {
    	new zufall = random(3);
    	Object_Info[i][ObjectArt] = zufall;
    	Object_Info[i][Object_ID] = CreateDynamicObject( /* die ganzen Koordinaten*/ );
    	if(Object_Info[i][ObjectArt] == 0)
    	{
    		 SetDynamicObjectMaterialText(Object_Info[i][Object_ID], /* rest der Textur */ );
    	}
    }


    Deshalb habe ich auch mit dem Random gefragt, je nach dem was der dann ausgibt...

  • Das zweite, weil du den Wert von "zufall" in der Variable "ObjectArt" speicherst, und damit dann weiterarbeitest. "zufalltonne" hast du ja nirgends definiert, bzw. sehe nirgends davon was, so dass das weniger Sinn macht.


    Fazit: Das zweite ist am sinnvollsten. ;)

  • Ach so, das soll "zufall" nur sein, und nicht "zufalltonne". Dann ist es im Prinzip egal, denn beide besitzen den gleichen Wert (zufall = ObjectArt / ObjectArt = zufall).

  • Nein, nicht ganz. Schreibe das so:


    C
    stock isPlayerAnCop(playerid)
    {
    	if(Player[playerid][pFraktion] >= 1 && Player[playerid][pFraktion] < 3)return 1;
    	return 0;
    }

    Wenn du Fraktion 1 oder 2 bist, dann wird 1 returnt. ;)

  • Ich wollte fragen ob diese Funktion richtig ist.
    Frak 1: SAPD
    Frak 2: FBI
    Frak 3: Reg


    stock isPlayerAnCop(playerid){if(Player[playerid][pFraktion >1 <3)return 1;return 0;}

    würde es so machen
    stock isPlayerAnCop(playerid){if(Player[playerid][pFraktion] <1 || Player[playerid][pFraktion] >3)return 1;return 0;}

  • Dann so:

    C
    stock isPlayerAnCop(playerid)
    {
    	if(Player[playerid][pFraktion] >= 1 && Player[playerid][pFraktion] < 4)return 1;
    	return 0;
    }
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen