pichup mit verzögerung

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Hallo!
    Ich bin grade ein script am schreiben womit in die intdoors wider betreten kann...
    Aber jetz möcht ich die beste lösug wissen wie ich die pickups mit verzögerung machen kann.
    Sprich man steht ne sek in dem pickup und wird dan geportet.


    Wie mache ich das ?


    (möchte die pickups nciht versetz machen da ich nicht 4 cords machen will sondern nur 2)


    Edit: Oder muss ich nen Timer machen der dan so auf 2 sek oder si steht und die cords dan als "IsPlayerInRangeOfPoint" machen ?


    Edit2: mal wider hat sich ein thema von mir erledigt ohne das ich en antword bekommen hatte ^^
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    SetTimer("Timer",2000,0);
    return 1;
    }
    forward Timer();


    public Timer()
    {
    for(new yy=0; yy<MAX_PLAYERS; yy++)
    {
    for(new ii=0; ii<maxenter; ii++)
    {
    if(IsPlayerInRangeOfPoint(yy, 1,CPs[ii][EnterX],CPs[ii][EnterY],CPs[ii][EnterZ]))
    {
    SetPlayerPos(yy,CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ]);
    SetPlayerInterior(yy,CPs[ii][ExitInt]);
    }
    else if(IsPlayerInRangeOfPoint(yy, 1,CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ]))
    {
    SetPlayerPos(yy,CPs[ii][EnterX],CPs[ii][EnterY],CPs[ii][EnterZ]);
    SetPlayerInterior(yy,CPs[ii][EnterInt]);
    }
    }
    }
    return 1;
    }

    2 Mal editiert, zuletzt von Vitamin[X] ()


  • new pickup;



    pickup = CreatePick.......




    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == pickup)
    {
    if(GetPVarInt(playerid, "Send") == 0)
    {
    SetTimer("Timer",2000,0);
    SetPVarInt(playerid, "Send", 1);
    return 1;
    }
    }
    }
    forward Timer();


    public Timer()
    {
    SetPVarInt(playerid, "Send", 0);
    for(new yy=0; yy<MAX_PLAYERS; yy++)
    {
    for(new ii=0; ii<maxenter; ii++)
    {
    if(IsPlayerInRangeOfPoint(yy, 1,CPs[ii][EnterX],CPs[ii][EnterY],CPs[ii][EnterZ]))
    {
    SetPlayerPos(yy,CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ]);
    SetPlayerInterior(yy,CPs[ii][ExitInt]);
    }
    else if(IsPlayerInRangeOfPoint(yy, 1,CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ]))
    {
    SetPlayerPos(yy,CPs[ii][EnterX],CPs[ii][EnterY],CPs[ii][EnterZ]);
    SetPlayerInterior(yy,CPs[ii][EnterInt]);
    }
    }
    }
    return 1;
    }

    RFT

  • Mit dem Timer hatte es bei mir nicht so geklappt aber ich guck mal ob das mit deinen teil da klapt...


    EDIT: jetz tut sich garnichts mehr an den pickups ich post einfach mal deen ganzen text


    #include <a_samp>
    #define maxenter 68
    enum CPInfo
    {
    Float:EnterX,
    Float:EnterY,
    Float:EnterZ,
    Float:EnterA,
    EnterInt,
    Float:ExitX,
    Float:ExitY,
    Float:ExitZ,
    Float:ExitA,
    ExitInt,
    }


    new Float:CPs[maxenter][CPInfo] = {
    {2397.8496,-1898.0288,13.5469,0.0,0,365.3238,-11.3925,1001.8516,350.3676,9},
    ...
    .
    ...
    {1467.6986,-1602.9889,13.5469,1.4311,0,363.3161,-74.7201,1001.5078,294.5566,10}
    };


    new pickien[maxenter];
    new pickiex[maxenter];


    public OnFilterScriptInit()
    {
    for(new ii=0; ii<maxenter; ii++)
    {
    pickien[ii] = CreatePickup(1318,1, CPs[ii][EnterX],CPs[ii][EnterY],CPs[ii][EnterZ],CPs[ii][EnterInt]);
    pickiex[ii] = CreatePickup(1318,1, CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ],CPs[ii][ExitInt]);
    }
    return 1;
    }
    public OnFilterScriptExit()
    {
    for(new ii=0; ii<maxenter; ii++)
    {
    DestroyPickup(pickien[ii]);
    DestroyPickup(pickiex[ii]);
    }
    return 1;
    }
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new ii=0; ii<maxenter; ii++)
    {
    if(pickupid == pickien[ii]||pickupid == pickiex[ii])
    {
    if(GetPVarInt(playerid, "Send") == 0)
    {
    SetTimer("Timer",2000,0);
    SetPVarInt(playerid, "Send", 1);
    return 1;
    }
    }
    }
    return 1;
    }
    forward Timer();


    public Timer()
    {
    for(new yy=0; yy<MAX_PLAYERS; yy++)
    {
    SetPVarInt(yy, "Send", 0);
    for(new ii=0; ii<maxenter; ii++)
    {
    if(IsPlayerInRangeOfPoint(yy, 1,CPs[ii][EnterX],CPs[ii][EnterY],CPs[ii][EnterZ]))
    {
    SetPlayerPos(yy,CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ]);
    SetPlayerInterior(yy,CPs[ii][ExitInt]);
    SetPlayerFacingAngle(yy,CPs[ii][ExitZ]);


    }
    else if(IsPlayerInRangeOfPoint(yy, 1,CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ]))
    {
    SetPlayerPos(yy,CPs[ii][EnterX],CPs[ii][EnterY],CPs[ii][EnterZ]);
    SetPlayerInterior(yy,CPs[ii][EnterInt]);
    SetPlayerFacingAngle(yy,CPs[ii][EnterZ]);
    }
    }
    }
    return 1;
    }


    EDIT 2:ich ahb die virtual wourld ganz vergessen gehabt ^^


    Und kann man das nicht so machen man geht in den Pickup und draußen wird das Pickup gelöscht (oder verschoben) und wen man dan ein stück weg geht entsteht das wider ?
    Im offline game ist das genau so ist mir aufgefallen

    2 Mal editiert, zuletzt von Vitamin[X] ()

  • (sorry wegen doppel post)



    hab es jetz so gut wie geschaft aber hab nur noch 1 problem


    public Timer()
    {
    for(new yy=0; yy<MAX_PLAYERS; yy++)
    {
    for(new ii=0; ii<maxenter; ii++)
    {
    if(!IsPlayerInRangeOfPoint(yy, 3,CPs[ii][EnterX],CPs[ii][EnterY],CPs[ii][EnterZ])&&var[ii][0] == 0)
    {
    pickien[ii] = CreatePickup(1318,1, CPs[ii][EnterX],CPs[ii][EnterY],CPs[ii][EnterZ],0);
    var[ii][0] = 1;
    }
    if(!IsPlayerInRangeOfPoint(yy, 3,CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ])&&var[ii][1] == 0)
    {
    var[ii][1] = 1;
    if(CPs[ii][ExitInt] == 0)
    {
    pickiex[ii] = CreatePickup(1318,1, CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ],0);
    }
    else
    {
    pickiex[ii] = CreatePickup(1318,1, CPs[ii][ExitX],CPs[ii][ExitY],CPs[ii][ExitZ],ii+100);
    }
    }
    }
    }
    return 1;
    }


    Der erstellt das objectz obwohl ich im "IsPlayerInRangeOfPoint" stehe,
    Der soll das aber erst erstellen wen ich den "IsPlayerInRangeOfPoint" verlasse.