Befehl um ein Tor 1 auf/zu schließen

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 Zusammen,


    ich bin auf der Suche nach einem Befehl um z.B fünf verschiedene Tore für eine Fraktion um sie öffnen und schließen zu können. Hat hier jemand vllt. was?


    z.B /pdtor1 /pdtor2 und das alles ohne Timer... es sollte mit /pdtor1 wieder geschlossen werden können.


    Gruß Andy

    cff

  • So würde ich es machen mit einem Befehl.


  • if (strcmp("/fwtor5", cmdtext, true, 10) == 0)
    {
    new PDS;
    if(PDS==0)
    {
    LSFWTORE[5] = MoveObject(10150, 1771.93213, -9343.93066, 4.90920, 0.00000, 180.00000, 0.00000,12);
    PDS = 1;
    }
    else
    {
    LSFWTORE[5] = MoveObject(10150, 1771.93213, -9343.93066, 4.90920, 90.00000, 180.00000, 0.00000,12);
    PDS = 0;
    }
    return 1;
    }


    hab paar Errors :D


    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(38) : error 035: argument type mismatch (argument 2)
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6338) : error 017: undefined symbol "LSFWTORE"
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6338) : warning 215: expression has no effect
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6338) : error 001: expected token: ";", but found "]"
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6338) : error 029: invalid expression, assumed zero
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6338) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    Wie setze ich das nun richtig ist ein Dynamic Object?


    LSFWTORE[5] = CreateDynamicObjectEx(10150, 1771.93213, -9343.93066, 4.90920, 0.00000, 180.00000, 0.00000, 200.00, 200.00);


    Gruß


    Andy

    cff

    Einmal editiert, zuletzt von Andy ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Habs jetzt so:



    "Ganz Oben"
    new bool:LSLift;



    "OnGameModeInit"


    //TORE LSFW
    new LSFWTORE[6];
    LSFWTORE[0] = CreateDynamicObjectEx(10150, 1771.93213, -9361.27734, 4.90920, 0.00000, 180.00000, 0.00000, 200.00, 200.00);
    LSFWTORE[1] = CreateDynamicObjectEx(10150, 1771.93213, -9355.47852, 4.90920, 0.00000, 180.00000, 0.00000, 200.00, 200.00);
    LSFWTORE[2] = CreateDynamicObjectEx(10150, 1771.93213, -9349.71777, 4.90920, 0.00000, 180.00000, 0.00000, 200.00, 200.00);
    LSFWTORE[3] = CreateDynamicObjectEx(10150, 1771.93213, -9332.37988, 4.90920, 0.00000, 180.00000, 0.00000, 200.00, 200.00);
    LSFWTORE[4] = CreateDynamicObjectEx(10150, 1771.93213, -9338.16992, 4.90920, 0.00000, 180.00000, 0.00000, 200.00, 200.00);
    LSFWTORE[5] = CreateDynamicObjectEx(10150, 1771.93213, -9343.93066, 4.90920, 0.00000, 180.00000, 0.00000, 200.00, 200.00);
    for(new i;i<sizeof LSFWTORE;i++)
    {
    SetDynamicObjectMaterial(LSFWTORE[i],0, 11008,"firehouse_sfse","ws_rollerdoor_fire", 0);
    }




    "OnPlayerCommand"



    if (strcmp("/tor", cmdtext, true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20.0, 1560.1989746094, -1636.033203125, 12.467700004578) || IsPlayerInRangeOfPoint(playerid, 20.0, 1560.1989746094, -1636.033203125, 12.467700004578))
    {
    if(LSLift == false)
    {
    MoveDynamicObject(LSFWTORE[5], 1771.93213, -9343.93066, 4.90920, 1.5);
    LSLift = true;
    }
    else if(LSLift == true)
    {
    MoveDynamicObject(LSFWTORE[5], 1771.93213, -9343.93066, 7.90920, 1.5);
    LSLift = false;
    }
    }
    return 1;
    }
    return 0;
    }




    aber bekomme Errors:


    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6338) : error 017: undefined symbol "LSLift"
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6340) : error 017: undefined symbol "LSFWTORE"
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6340) : warning 215: expression has no effect
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6340) : error 001: expected token: ";", but found "]"
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6340) : error 029: invalid expression, assumed zero
    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6340) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.

    cff

  • C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6338) : error 017: undefined symbol "LSLift"

    Bist du dir sicher, dass du die Variable oben im Script definierst und du sie auch in keinem anderen public/stock oder ähnlichem definierst ?



    C:\Users\Raluno\Desktop\SAMP Sentix Roleplay\CIMap.pwn(6340) : error 017: undefined symbol "LSFWTORE"

    Diese Variable hast du zum Beispiel in OnGameModeInit definiert und deswegen kann deine Funktion nicht darauf zugreifen.

  • Fettes danke an @TheRipperOrg taucht hier unangemeldet im TS3 auf und erklärt es mir haha :)



    Fehler war new LSFWTORE[6]; muss ganz nach oben hin, es war bei mir OnGameModeInit.


    //Edit


    Also bekomme zwar keine Errors, aber das Tor öffnet sich nicht, habe jetzt auch das mit der Range erstmals rausgenommen, trotzdem passiert nichts O.o?


    @TheRipperOrg back to Fail :)

    cff

    Einmal editiert, zuletzt von Andy ()

  • Damit du bei OnPlayerCommand auch auf "LSFWTore" zugreifen kannst musst du die Variable außerhalb von OnGameModeInit definieren. Ebenfalls musst du darauf achten die Variable zu definieren bevor du sie benutzt.


    Also LSFWTore ganz oben definieren, die Objekte aber trotzdem bei OnGameModeInit erstellen.


    //Edit: zu Spät :)

  • Ja das hat mir Ripper erklärt, leider gehen die Tore aber nicht auf, also es passiert garnichts, Befehl wird aber ausgeführt.


    if (strcmp("/tor", cmdtext, true) == 0) { //if(IsPlayerInRangeOfPoint(playerid, 25.0, 1771.93213, -9343.93066, 4.90920))return SendClientMessage(playerid,0xB90000FF,"Du befindet dich nicht am Feuerwehr Tor!"); { if(LSLift == false) { MoveDynamicObject(LSFWTORE[5],1771.93213, -9343.93066, 4.90920, 0.00000, 180.00000, 0.00000, 1.5); LSLift = true; } else if(LSLift == true) { MoveDynamicObject(LSFWTORE[5],1770.2361, -9343.9307, 6.8476, 0.0000, 90.0000, 0.0000, 1.5); LSLift = false; } } return 1; }



    0 Errors, aber das Tor bewegt sich 0... Range Of Point ist auch erstmals ausgeklammert.


    PS: Können Objekte mit einer Textur überhaupt bewegt, bzw.. gemovt werden?

    cff

  • Du musst das Tor sozusagen in den Boden schieben lassen. Dazu musst du die Z Koordinate verändern, am einfachsten geht das so:


    C
    MoveDynamicObject(LSFWTORE[5],1771.93213, -9343.93066, 4.90920, 0.00000, 180.00000, 0.00000, 1.5);
    
    
    //// Z Koordinate 4.90920
    
    
    // zum Beispiel einfach -10
    MoveDynamicObject(LSFWTORE[5],1771.93213, -9343.93066, 4.90920-10, 0.00000, 180.00000, 0.00000, 1.5);

    //Edit hab grad gesehen das hast du ja gemacht...
    Aber versuch es trotzdem mal mit dieser Methode :)

    Einmal editiert, zuletzt von Jenkins ()

  • Falls es immer noch nicht gehen sollte mach des den mal so .



    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    • if(LSLift == false)//Auf
    • {
    • MoveDynamicObject(LSFWTORE[5],1771.93213, -9343.93066, -1.90920,1.5);
    • LSLift = true;
    • }

    * Du musst angeben was passieren soll. *
    Beispiel:


    MoveObject(tor,X,Y,Z,SPEED);
    Du musst bei Z oder Bei Y oder bei X immer etwas verändern dann bewegt sich des auch.


    • X = Vorne / Hinten
    • Y = Links / Rechts
    • Z= Höhe


    Wenn du die Z Veränderst sieht des so aus.


    Vorherr
    MoveDynamicObject(LSFWTORE[5],1771.93213, -9343.93066, 4.90920,1.5);


    Nachher
    MoveDynamicObject(LSFWTORE[5],1771.93213, -9343.93066, -1.90920,1.5);


    Jetzt geht das Tor nach unten.
    Machst du die Stelle allerdings höher wird das Tor nach oben gehen (Z)
    Oben
    MoveDynamicObject(LSFWTORE[5],1771.93213, -9343.93066, 10.90920,1.5);

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Ich hoffe das hat dir jetzt etwas geholfen.

    MFG: TheRipperOrg

    :thumbup: