[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
  • Nein, kannst das einfach so machen:


    C
    #define getInv(%0) (((%0)>>8)<<8)
    
    
    //Direkte Nutzung:
    SetPlayerColor(playerid, getInv(GetPlayerColor(playerid)));

    ast2ufdyxkb1.png


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

  • Super :D
    Das heisst ich kann statt das hier


    #define COLOR_TEAM_ONE 0x8B451355 //Brown




    #define COLOR_TEAM_ONE_STEALTH 0x8B451300 //Brown


    Das hier machen?


    #define COLOR_TEAM_ONE 0x8B451355 //Brown



    #define COLOR_TEAM_ONE_STEALTH getInv(COLOR_TEAM_ONE) (((COLOR_TEAM_ONE)>>8)<<8) //Brown

  • Gibt es die Moeglichkeit die Anzahl der Elemente in einem enum zu bestimmen?


    Ich muss ein Array erstellen als Zaehler fuer erstellte Pickups, und habe in einem enum die Pickuptypen.
    Dann will ich das Array CreatedPickups[Anzahl der Elemente aus dem enum] mit Index den entsprechenden Pickuptyp aus dem enum haben.


    Gibts da irgendwelche Tricks?

  • Schonmal vielen Dank dafuer :D


    Habe jetzt mein enum was ich noch auf ca. 40 Elemente ausdehnen werde


    C
    enum PickupTypes
    {
    	INVALID_PICKUP_TYPE,
    	MONEY_TYPE,
    	ACTOR_TYPE,
    	INFO_TYPE,
    	WEAPONTYPE_M4
    };


    Jedoch das Problem dass ich nun tag mismatchs bekomme wo ich die Inhalte wie MONEY_TYPE vorher eingesetzt habe




    C
    new mres = binarysearch(MoneyPickups,pickupid,0,sizeof(MoneyPickups)-1);
    	if(mres > -1 && MoneyPickups[mres] == pickupid) return index=mres,MONEY_TYPE;
    	new ares = binarysearch(ActorPickups,pickupid,0,sizeof(ActorPickups)-1);
    	if(ares > -1 && ActorPickups[ares] == pickupid) return index=ares,ACTOR_TYPE;
    	new ires = binarysearch(InfoPickups,pickupid,0,sizeof(InfoPickups)-1);
    	if(ires > -1 && InfoPickups[ires] == pickupid) return index=ires,INFO_TYPE;

    Ist es weiterhin einfacher moeglich zu verhindern dass die MAX_PICKUPS Grenze nicht ueberschritten wird?


    Aktuell habe ich dieses komische Konstrukt hier


    C
    new ActorPickups[sizeof(GlobalActors)];
    new InfoPickups[sizeof(PlayerInfoPickups)];
    new MoneyPickups[MAX_PICKUPS-sizeof(ActorPickups)-sizeof(InfoPickups)-1];
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Achso, nein dann einfach so machen:



    enum
    {
    a,
    b,
    c,
    max_pickups
    };


    Und max_pickups muss immer unten stehen und sagt dir dann, wie viele pickups du hast :)


    #Handy

    ast2ufdyxkb1.png


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

  • Das 1. Element (sofern man nix geändert hat) ist immer 0.


    Also:



    enum
    {
    a,b,c
    };



    new x = a; //Name spielt hier keine Rolle
    //ist das selbe wie
    new x = 0;

    ast2ufdyxkb1.png


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

  • Guten Abend,


    Ich wollte fragen wie man es anstellt, dass wenn man stirbt die crack animation bekommt und für 3 Minuten da liegt.
    Ich hab schon dass ein und andere probiert. Bloß immer wurde der Spieler direkt gespawnt

  • Füg z.B. ein Boolean ein, dass der Spieler gerade gestorben ist..und unter OnPlayerSpawn prüfst dann, ob das true ist und wenn ja, setzt das alles in Ruhe :)

    ast2ufdyxkb1.png


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

  • ich hab ein neues Textdraw zu meinem waffenlager hinzugefügt aber wenn ich jetzt auf Beenden drücke, dann öffnet er den Bestand... gibt es da einen Tipp ? (Wenn ich codes braucht, sagt bescheid) @Jeffry

    Das könnte, ohne den Code gesehen zu haben, an hier (Textdraws funktionieren nicht?) von mir beschriebenem Fehlen von (Player)TextDrawTextSize liegen.
    Versuche es mal, indem du den Textdraws das hinzufügst.