Pickup random spawnen lassen.

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
  • Hiho sehr geehrte breadfish´ler.


    Hab schon wieder ne frage ich möchte 1 pickup per random spawnen lassen und wenn es gefunden wird soll es zerstört werden und erneut auf einer von 20 vorgegebenen random spawns spawnen!


    hab das jetzt so aber konnte selbst nicht testen ob es funkt!


    oben im script
    new LSPickup;


    LSPickup = CreatePickup(model,typ,x,y,z);
    forward PickupChange();


    enum LSP
    {
    Float:x,
    Float:y,
    Float:z,
    };


    new LSPPOS[20][LSP]
    {
    {x, y, z},
    {X, Y, z},
    {x, y, z},
    {X, Y, z},
    {x, y, z},
    {X, Y, z},
    {x, y, z},
    {X, Y, z},
    {x, y, z},
    {X, Y, z},
    {x, y, z},
    {X, Y, z},
    {x, y, z},
    {X, Y, z},
    {x, y, z},
    {X, Y, z},
    {x, y, z},
    {X, Y, z},
    {x, y, z},
    {X, Y, z}
    }


    dann
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == LSPickup) { DestroyPickup(LSPickup); LSPickup = CreatePickup(Model, Typ, LSPPOS[zf][x], LSPPOS[zf][y], LSPPOS[zf][z], -1); return 1; }
    return 1;
    }


    und zu letzt

    public PickupChange()
    {
    new LS = random(20);
    DestroyPickup(LSPickup);
    LSPickup = CreatePickup(Model, Typ, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1);
    }



    würde das so funktionieren?
    wenn nein wie würde es funktionieren?


    oder gibt es vielleicht ne elegantere leichtere lösung^^.

    Einmal editiert, zuletzt von Kain101 ()

  • hab das jetzt so
    #include <a_samp>
    #define FILTERSCRIPT
    #if defined FILTERSCRIPT


    new LSPickup;
    forward PickupChange();


    enum LSP
    {
    Float:x,
    Float:y,
    Float:z,
    };


    new LSPPOS[3][LSP]
    {
    {1273.0835,-819.0178,84.1406},
    {1277.6268,-818.7731,84.1406},
    {1284.8733,-818.7379,84.1406}
    }


    main()
    {


    }
    public OnFilterScriptInit()


    {
    print("--- Pickup Random Spawn----");
    print("----Test----");
    LSPickup = CreatePickup(1274, 23, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1);
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }
    #else


    main()
    {
    print("Arenen geladen");
    }


    #endif


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == LSPickup) { DestroyPickup(LSPickup); LSPickup = CreatePickup(1274, 23, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1); return 1; }
    return 1;
    }


    public PickupChange()
    {
    new LS = random(3);
    DestroyPickup(LSPickup);
    LSPickup = CreatePickup(1274, 23, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1);
    }


    aber bekomme 3 fehler :/


    C:\Users\Kain\Desktop\Pickup.pwn(16) : error 001: expected token: ";", but found "{"
    C:\Users\Kain\Desktop\Pickup.pwn(31) : error 017: undefined symbol "LS"
    C:\Users\Kain\Desktop\Pickup.pwn(50) : error 017: undefined symbol "LS"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.

  • ich würde eher so sagen:(Linux nur antworten wenn du Ahnung hast!! bitte)
    new LSPPOS[3][LSP]={
    {1273.0835,-819.0178,84.1406},
    {1277.6268,-818.7731,84.1406},
    {1284.8733,-818.7379,84.1406}
    };


    und das hier so:

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == LSPickup) { new LS = random(3);DestroyPickup(LSPickup); LSPickup = CreatePickup(1274, 23, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1); return 1; }
    return 1;
    }

    I'm Sorry For Your Mistake!
    but it's yours

  • hab das jetzt so


    #include <a_samp>
    #define FILTERSCRIPT
    #if defined FILTERSCRIPT


    new LSPickup;
    forward PickupChange();


    enum LSP
    {
    Float:x,
    Float:y,
    Float:z,
    };


    new LSPPOS[3][LSP]={
    {1273.0835,-819.0178,84.1406},
    {1277.6268,-818.7731,84.1406},
    {1284.8733,-818.7379,84.1406}
    };


    main()
    {


    }
    public OnFilterScriptInit()


    {
    print("--- Pickup Random Spawn----");
    print("----Test----");
    LSPickup = CreatePickup(1274, 23, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1);
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }
    #else


    main()
    {
    print("Arenen geladen");
    }


    #endif


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == LSPickup) { new LS = random(3);DestroyPickup(LSPickup); LSPickup = CreatePickup(1274, 23, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1); return 1; }
    return 1;
    }


    public PickupChange()
    {
    new LS = random(3);
    DestroyPickup(LSPickup);
    LSPickup = CreatePickup(1274, 23, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1);
    }


    erhalte einen error
    C:\Users\Kain\Desktop\Pickup.pwn(30) : error 017: undefined symbol "LS"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    füg ich oben
    new LS;
    ein erhalte ich diese 2 errors


    C:\Users\Kain\Desktop\Pickup.pwn(49) : warning 219: local variable "LS" shadows a variable at a preceding level
    C:\Users\Kain\Desktop\Pickup.pwn(55) : warning 219: local variable "LS" shadows a variable at a preceding level
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Warnings.

    Einmal editiert, zuletzt von Kain101 ()

  • Würde das so machen :

    public OnFilterScriptInit()
    {
    new LS = random(3); //dafür oben das new LS entfernen
    print("--- Pickup Random Spawn----");
    print("----Test----");
    LSPickup = CreatePickup(1274, 23, LSPPOS[LS][x], LSPPOS[LS][y], LSPPOS[LS][z], -1);
    return 1;
    }