[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

  • [01:37:52] Zahl 1


    [01:37:52] Zahl 2


    [01:37:52] Zahl 3


    [01:37:52] Zahl 4


    [01:37:52] Zahl 5


    [01:37:52] Zahl 6


    [01:37:52] Zahl 7


    [01:37:52] Zahl 8




    Laut den debugg zählt er von 1 ab...

  • Und was ist jetzt das Problem noch? Vermutlich das es nicht korrekt angezeigt wird. Aber ich verstehe auch ehrlich gesagt nicht was Du mit Zeile 14 und 15 bezwecken willst. Weil das in der for- Schleife gar keinen Sinn macht.

    Um den Spieler den Dialog dann an zeigen zu lassen das er weiß wieviel die bizen an Produkte benötigen...
    Richtig er zeigt mir immer nur -2 an

  • Um den Knoten mal platzen zu lassen.


    • Um eine Schleife bei 1 starten zu lassen, setzt du i Anfangs einfach auf 1. mit new i=1
    • Dein format überschreibt sich permanent mit der Schleife, deshalb bekommst du nur das letzte Ergebnis.
    • Alle deine Ergebnisse sind immer identisch...da du das nirgends richtig formatierst.
    • So wie du das haben willst, brauchst du gar keine Schleife.
    • Lass das mit dem #pragma unused ..dass kein schöner Coding Stil.

    Da, deine Lösung, wenn du statisch schon die Namen darein packst, dann musste auch deine Abfragen statisch machen...

    ast2ufdyxkb1.png


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

  • Um den Knoten mal platzen zu lassen.


    • Um eine Schleife bei 1 starten zu lassen, setzt du i Anfangs einfach auf 1. mit new i=1
    • Dein format überschreibt sich permanent mit der Schleife, deshalb bekommst du nur das letzte Ergebnis.
    • Alle deine Ergebnisse sind immer identisch...da du das nirgends richtig formatierst.
    • So wie du das haben willst, brauchst du gar keine Schleife.
    • Lass das mit dem #pragma unused ..dass kein schöner Coding Stil.

    Da, deine Lösung, wenn du statisch schon die Namen darein packst, dann musste auch deine Abfragen statisch machen...

    Interessant wie sowas gescriptet wird.....


    Warum steht eigentlich ein Minus davor wen das Biz Produkte benötigt..

  • Warum steht eigentlich ein Minus davor wen das Biz Produkte benötigt..

    Das kannst du einfach ändern indem du das Makro so schreibst:


    #define getProdukts(%0) (Biz[%0][bMaxProdukte]-Biz[%0][bProdukte])


    Hatte das nur so von dir übernommen gehabt.


    Und er hat halt immer von dem kleinen das Große abgezogen.


    Somit stand halt überall (z.B.): 4-5 = -1 anstatt 5-4 = 1 :)


    Weil halt 1 Produkt gefehlt hat.

    ast2ufdyxkb1.png


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

  • Beitrag von Dr. Frauenarzt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Hat sich erledigt ().
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Zeigt er mir schon Richtig an das 5k Benzin Fehlt.


    Die Frage ist was ich noch machen muss das es beim Tanken dazu gezählt wird..?

  • Beitrag von Dr. Frauenarzt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Habe es hin bekommen! Danke ().
  • Guten Abend,
    ich möchte gerne meinen Actor erstellen und dann in einer Virtuellen Welt setzen mit einer Animation, leider klappt es nicht.
    Actor wird Erstellt, Skin wird gesetzt, Virtuelle Welt wird gesetzt nur die Animation leider nicht.



    enum ActorEnum{
    acID,
    acSkin,
    Float:acX,
    Float:acY,
    Float:acZ,
    Float:acA,

    acLib[32],
    acAnim[64],
    Float:acSpeed,
    acLoop,
    acLockX,
    acLockY,
    acFreeze,
    acTime,

    acVW
    };
    new AcEnum[][ActorEnum] = {
    {0, 12, 1477.2376, -1807.7637, 2350.4782, 0.0000, "PED", "SEAT_IDLE", 4.0999, 0, 0, 0, 1, 0, 1337}
    };


    // OnGameModeInit
    for(new i = 0; i < sizeof(AcEnum); i++)
    {
    AcEnum[i][acID] = CreateActor(AcEnum[i][acSkin], AcEnum[i][acX], AcEnum[i][acY], AcEnum[i][acZ], AcEnum[i][acA]);
    SetActorVirtualWorld(AcEnum[i][acID], AcEnum[i][acVW]);
    PreloadActorAnimations(AcEnum[i][acID]);
    ApplyActorAnimation(AcEnum[i][acID], AcEnum[i][acLib], AcEnum[i][acAnim], AcEnum[i][acSpeed], AcEnum[i][acLoop], AcEnum[i][acLockX], AcEnum[i][acLockY], AcEnum[i][acFreeze], AcEnum[i][acTime]);
    }


    static s_AnimationLibraries[][] = {
    !"AIRPORT", !"ATTRACTORS", !"BAR", !"BASEBALL",
    !"BD_FIRE", !"BEACH", !"BENCHPRESS", !"BF_INJECTION",
    !"BIKED", !"BIKEH", !"BIKELEAP", !"BIKES",
    !"BIKEV", !"BIKE_DBZ", !"BMX", !"BOMBER",
    !"BOX", !"BSKTBALL", !"BUDDY", !"BUS",
    !"CAMERA", !"CAR", !"CARRY", !"CAR_CHAT",
    !"CASINO", !"CHAINSAW", !"CHOPPA", !"CLOTHES",
    !"COACH", !"COLT45", !"COP_AMBIENT", !"COP_DVBYZ",
    !"CRACK", !"CRIB", !"DAM_JUMP", !"DANCING",
    !"DEALER", !"DILDO", !"DODGE", !"DOZER",
    !"DRIVEBYS", !"FAT", !"FIGHT_B", !"FIGHT_C",
    !"FIGHT_D", !"FIGHT_E", !"FINALE", !"FINALE2",
    !"FLAME", !"FLOWERS", !"FOOD", !"FREEWEIGHTS",
    !"GANGS", !"GHANDS", !"GHETTO_DB", !"GOGGLES",
    !"GRAFFITI", !"GRAVEYARD", !"GRENADE", !"GYMNASIUM",
    !"HAIRCUTS", !"HEIST9", !"INT_HOUSE", !"INT_OFFICE",
    !"INT_SHOP", !"JST_BUISNESS", !"KART", !"KISSING",
    !"KNIFE", !"LAPDAN1", !"LAPDAN2", !"LAPDAN3",
    !"LOWRIDER", !"MD_CHASE", !"MD_END", !"MEDIC",
    !"MISC", !"MTB", !"MUSCULAR", !"NEVADA",
    !"ON_LOOKERS", !"OTB", !"PARACHUTE", !"PARK",
    !"PAULNMAC", !"PED", !"PLAYER_DVBYS", !"PLAYIDLES",
    !"POLICE", !"POOL", !"POOR", !"PYTHON",
    !"QUAD", !"QUAD_DBZ", !"RAPPING", !"RIFLE",
    !"RIOT", !"ROB_BANK", !"ROCKET", !"RUSTLER",
    !"RYDER", !"SCRATCHING", !"SHAMAL", !"SHOP",
    !"SHOTGUN", !"SILENCED", !"SKATE", !"SMOKING",
    !"SNIPER", !"SPRAYCAN", !"STRIP", !"SUNBATHE",
    !"SWAT", !"SWEET", !"SWIM", !"SWORD",
    !"TANK", !"TATTOOS", !"TEC", !"TRAIN",
    !"TRUCK", !"UZI", !"VAN", !"VENDING",
    !"VORTEX", !"WAYFARER", !"WEAPONS", !"WUZI",
    !"WOP", !"GFUNK", !"RUNNINGMAN"
    };


    stock static PreloadActorAnimations(actorid)
    {
    for(new i = 0; i < sizeof(s_AnimationLibraries); i ++)
    {
    ApplyActorAnimation(actorid, s_AnimationLibraries[i], "null", 0.0, 0, 0, 0, 0, 0);
    }
    }


    Hoffe einer kann mir Helfen.


    Mit freundlichen Grüßen.

    Die Missglückte Persönlichkeit, Ciao!

  • @JustMe.77
    Danke, das geht, leider bekomme ich jetzt über "CrashDetect" folgende Fehler angezeigt:



    [03:37:47] [debug] Run time error 4: "Array index out of bounds"
    [03:37:47] [debug] Attempted to read/write array element at index 3 in array of size 3
    [03:37:47] [debug] AMX backtrace:
    [03:37:47] [debug] #0 00069be0 in public OnActorStreamIn (0, 0) from BlvckDown-RL.amx


    public OnActorStreamIn(actorid, forplayerid)
    {
    for(new i = 0; i < sizeof(AcEnum[]); i++)
    {
    ApplyActorAnimation(AcEnum[i][acID], AcEnum[i][acLib], AcEnum[i][acAnim], AcEnum[i][acSpeed], AcEnum[i][acLoop], AcEnum[i][acLockX], AcEnum[i][acLockY], AcEnum[i][acFreeze], AcEnum[i][acTime]);
    }
    return 1;
    }


    Kannst mir dabei vielleicht dabei auch noch Helfen? :D

    Die Missglückte Persönlichkeit, Ciao!

  • @JustMe.77
    Danke, das geht, leider bekomme ich jetzt über "CrashDetect" folgende Fehler angezeigt:


    [03:37:47] [debug] Run time error 4: "Array index out of bounds"[03:37:47] [debug] Attempted to read/write array element at index 3 in array of size 3[03:37:47] [debug] AMX backtrace:[03:37:47] [debug] #0 00069be0 in public OnActorStreamIn (0, 0) from BlvckDown-RL.amxpublic OnActorStreamIn(actorid, forplayerid){ for(new i = 0; i < sizeof(AcEnum[]); i++) { ApplyActorAnimation(AcEnum[i][acID], AcEnum[i][acLib], AcEnum[i][acAnim], AcEnum[i][acSpeed], AcEnum[i][acLoop], AcEnum[i][acLockX], AcEnum[i][acLockY], AcEnum[i][acFreeze], AcEnum[i][acTime]); } return 1;}


    Kannst mir dabei vielleicht dabei auch noch Helfen? :D

    Du sprengst deinen Array, weil du die Größe der zweiten Dimension als Schleifenbedingung benutzt, statt die erste Dimension. Die zweite ist nämlich die Anzahl deiner Variablen innerhalb deines Array-Enums. Entferne einfach die eckigen Klammern innerhalb von sizeof(), dann sollte das gehen.

  • Kannst ja mal in den Thread schauen: http://forum.sa-mp.com/showthread.php?t=557644


    oder in 1000 weitere, dieses Thema wurde so oft schon diskutiert.


    Um es kurz zu machen, wenn man auf dem Desktop ist / oder im Menü, dann wird OnPlayerUpdate für den Spieler nicht aufgerufen.


    Und das kannst du natürlich wie oben gezeigt ausnutzen.


    Eine Korrektur nur, nimm nicht GetTickCount, wenn du die afk Zeit bestimmten willst, sondern gettime() ;)

    ast2ufdyxkb1.png


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