MoveObject wenn player InRangeOfPoint ist.

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
  • Hey ich könnte etwas hilfe gebrauchen :D...
    Also ich hab soweit ein Timer erstellt der jede sekunde checkt ob einer InRangeOfPoint ist...
    hab schon forward gemacht public erstellt & komme irgendwie nicht weiter weil ich keine idee hab wo was hin muss :D
    würde gerne diese objeckte gemoved haben

    CreateObject(970,791.70001221,-1360.00000000,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (13)
    CreateObject(970,791.70001221,-1355.80004883,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (14)
    CreateObject(970,791.70001221,-1351.59997559,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (15)
    CreateObject(970,791.70001221,-1347.40002441,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (16)
    CreateObject(970,791.70001221,-1343.19995117,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (17)
    CreateObject(970,791.70001221,-1339.00000000,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (18)
    CreateObject(970,791.70001221,-1334.80004883,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (20)
    CreateObject(970,789.59997559,-1330.40002441,13.10000038,0.00000000,0.00000000,358.00000000); //object(fencesmallb) (21)
    CreateObject(970,791.70001221,-1332.59997559,13.10000038,0.00000000,0.00000000,269.99548340); //object(fencesmallb) (22)

    währe nett wenn mir einer helfen würde :)
    Danke.
    /edit ich weiß eigendl., dass es für den einen oder anderen leicht ist aber ich bin eben noch ein großer anfänger.

  • Also du willst das man diese sachen öffenen kann richtig?


    Dann Erstellst du Erstmal ein


    new Tor1;



    danach gibts du an was Tor1 ist also Bsp:



    Tor1=CreateObject(970,791.70001221,-1360.00000000,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb)
    usw...


    für jedes Tor einfach ein New erstellen und dann da angeben..



    Dann gehst du zu OnPlayerCommandText (es sei den du willst mit OCMD scripten) und gibst das ein:



    }
    if(strcmp("/auf",cmdtext,true)==0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,10,
    791.70001221,-1360.00000000,13.10000038 )) return SendClientMessage(playerid,ROT,"Du bist nicht nah genug am Tor!");
    MoveObject(tor,
    791.70001221,-1360.00000000,13.10000038 -10,5);
    return 1;
    }if(strcmp("/zu",cmdtext,true)==0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,10,791.70001221,-1360.00000000,13.10000038 )) return SendClientMessage(playerid,ROT,"Du bist nicht
    nah genug am Tor!");
    MoveObject(tor,791.70001221,-1360.00000000,13.10000038 ,5);
    return 1;
    }

    [align=left]Die -10 gibt an wie viel das Tor in den Boden gehen soll.. die 5 ist die Geschwindigkeit...


    Hoffe ich konnte helfen :)
    [align=left]//Edit einegrückt

  • naja eigendlich wollte ich es ohne command... mit command hab ich schon hinbekommen... aber ich würde gerne wissen ob es geht & wie es geht ohne cmd.
    Danke trotzdem.


    /edit also ich mein wenn er InRangeOfPoint geht, dass sich das tor denn ohne command öffnet & wenn er verlässt wieder zu geht und auch zu bleibt

  • Du machst einen Timer, der jede Sekunde checkt ob jemand in der nähe ist.


    in dem public kommt dan z.B. das rein


    public GateCheck()
    {
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid ++)
    {
    if(!IsPlayerConnected(playerid))continue;
    {
    if(isPlayerInFrakt(playerid,1))
    {
    if(IsPlayerInRangeOfPoint(playerid,5,253.30000305176, 109.59999847412, 1002.200012207))MoveObject(pditor[0],253.30000305176, 109.59999847412-2, 1002.200012207,3);//pdtür1 innen recht
    else MoveObject(pditor[0],253.30000305176, 109.59999847412, 1002.200012207,5);

    Back to the roots!

  • Danke dir erstmal keine error und keine warnings... denn werd ich's mal ausprobieren.


    /edit joar wenn ich im punkt gehe & wieder raus gehe ist das tor für immer weg xD

    public rollertor()
    {
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid ++)
    {
    SetTimerEx("rollertor", 1, 10000,"i",playerid);
    {
    if(IsPlayerInRangeOfPoint(playerid,10,791.70001221,-1360.00000000,13.10000038))
    {
    MoveObject(Tor1, 791.70001221,-1360.00000000,13.10000038 -10,5);
    }
    else
    {
    MoveObject(Tor1,791.70001221,-1360.00000000,13.10000038 ,5);
    }
    }
    }
    }
    so siehts aus bei mir.

    Einmal editiert, zuletzt von SP33D95 ()

  • warte ich mache es dir gerade


    oben im Script


    forward GateCheck();


    unter OnGameModeInit:


    SetTimer("GateCheck",1000,1); Durch deinen Intervall ersetzen


    und im Pupblic


    public GateCheck()
    {
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid ++)
    {
    if(!IsPlayerConnected(playerid))continue;
    {
    if(isPlayerInFrakt(playerid,1))
    {

    if(IsPlayerInRangeOfPoint(playerid,10,791.70001221,-1360.00000000,13.10000038))MoveObject(Tor1, 791.70001221,-1360.00000000,13.10000038 -10,5);
    else
    MoveObject(Tor1,791.70001221,-1360.00000000,13.10000038 ,5); }
    }
    }
    }

    Back to the roots!

  • hab ich ja alles... blos wenn ich den timer bein OnGame... hinstze bleib ich bei Connect stehen


    /edit habs gerade woanders gesehen

    also ich werds nacher ausprobieren

    Einmal editiert, zuletzt von SP33D95 ()