Brauche Hilfe bei meinen Schranken

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
  • Guten Morgen Leute,


    also ich habe einen Parkplatz gemappt an dessen Ein/Ausgang sich rechts und links 2 Schranken befinden die um es, um es nicht ganz so schwer zu machen einfach beide gleichzeitig mit /auf öffnen sollen und sich nach ungefähr 5 Sekunden oder so wieder automatisch schließen sollen.


    Also die Koordinaten der Schranken sind:


    {968, 1905.9747, -2623.6218, 13.3811, 0.0000, 90.2408, 265.4620, 500.0}, //Schranke 1 zu


    {968, 1904.8259, -2638.7249, 13.3684, 0.0000, 269.7592, 265.4620, 500.0},//Schranke 2 zu


    {968, 1905.9747, -2623.6218, 13.3811, 0.0000, 359.1406, 265.4620, 500.0}, //Schranke 1 offen


    {968, 1904.8259, -2638.7249, 13.3684, 0.0000, 359.1406, 265.4620, 500.0}, //Schranke 2 offen



    Ich hoffe ihr könnt mir helfen und sagen wie ich das machen muss, oder viell. könnt ihr mir das sogar gleich machen :rolleyes:


    Wäre stark :thumbup:





    Gruß
    Colin

  • hasse auch sowas eingefügt ?


    }
    if (strcmp(cmdtext, "/BEISPIEL", true)==0)
    {
    if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5)
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Das Tor schließt sich Alleine");
    MoveObject(BEISPIELtor,1787.166382, -1599.953857, 6.607633, 3.5);
    SetTimer("BEISPIELtor1", 9000, 0); // 9000 ist 9 sekunden aber nur in millisekunden
    }
    return 1;



    wenn das was falsches ist dann sry 4 post ^^

  • Is eig. ganz einfach. Benutz am besten Midostream dafür. ich erklärs dir mal schnell.


    Inlcude
    #include <MidoStream>


    Unter Forward
    forward GateCloseLSPD1();


    VARIABLE DECLARES
    new LSPD1;


    Bei Objecte einfügen
    LSPD1 = CreateStreamObject(971,1539.670,-1628.000,12.32,0.0,0.0,-90.00,200.0); //Ist das geschlossen Tor


    das I-wo


    if (strcmp(cmdtext, "/ls1", true)==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(xxxxxxxxxx)) //deine Fraktion
    {
    if(IsPlayerConnected(playerid))
    MoveStreamObject(LSPD1,1539.670,-1628.000,12.325, 3.5);//1 /geschlossen
    MoveStreamObject(LSPD1,1539.670,-1637.460,12.325, 3.5);//2 /offen
    SetTimer("GateCloseLSPD1", 9000, 0);
    SendClientMessage(playerid, COLOR_YELLOW,"Be Welcome to the Los Santos Police Departement the Gate will AutoClose in 9 Seconds");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " You are not a Cop / FBI / National Guard !");
    }
    }
    return 1;
    }
    das wenn dug GF hast unten ans script
    public GateCloseLSPD1()
    {
    if(TOGGLE_DEBUG_MODE)
    {
    print(" //DEBUG: CALL GateCloseLSPD1()");
    }


    MoveStreamObject(LSPD1,1539.567,-1637.460,12.325, 3.5);//2 /offen
    MoveStreamObject(LSPD1,1539.670,-1628.000,12.325, 3.5);//1/geschlossen
    return 1;
    }


    dann lädst dir die MidoStream .inc herunter. UNd compilest es müst eig. gehen.

  • Ok, also ich hab das jetzt mal mit meinen Koordinaten gemacht, du kannst ja viell. mal schauen ob das alles richtig ist weil bei mir werden die Schranken irgendwie nicht angezeigt :(


    #include <MidoStream>


    forward GateCloseLSPD1();


    //LSAirport
    new LSPD1;


    LSPD1=CreateStreamObject(968, 1905.9747, -2623.6218, 13.3811, 0.0, 0.0, 90.2408, 265.4620); //Ist das geschlossen Tor


    if (strcmp(cmdtext, "/ls1", true)==0)
    if(IsPlayerConnected(playerid))
    {
    {
    if(IsPlayerConnected(playerid))
    MoveStreamObject(LSPD1,1905.9747, -2623.6218,90.2408, 3.5);//1 /geschlossen
    MoveStreamObject(LSPD1,1905.9747, -2623.6218,359.1406, 3.5);//2 /offen
    SetTimer("GateCloseLSPD1", 9000, 0);
    return 1;
    }
    }



    Und da ich kein GF hab brauche ich ja die letzten Zeilen von dir nicht, weil du ja geschrieben hast dass ich dir nur brauche falls ich einen GF hab.


    So findest du irgendwo einen Fehler, weil wie gesagt die Schranken werden nicht angezeigt. Ich habe es zwar nur für eine von zwei jetzt gemacht aber wie gesagt, ich seh nix ??? ;)


    Hier am besten noch einmal die Koordinaten der Schranke:


    {968, 1905.9747, -2623.6218, 13.3811, 0.0000, 90.2408, 265.4620, 500.0}, //Schranke 1 zu
    {968, 1905.9747, -2623.6218, 13.3811, 0.0000, 359.1406, 265.4620, 500.0}, //Schranke 1 offen




    Gruß
    Colin

  • Komisch. Das Pulbi.... Brauchst du aber sonst schließt sich das Tor nicht. Automatisch^^

  • Willst du das es Schranken sind, die erst unten sind und dann senkrecht in der Luft?
    Beudetet:
    Schranke zu: ==========================
    Offen:
    =
    =
    =
    =
    =
    =


    Oder wie willst du das?
    Wenn ja, das geht per ändern der Angle vom Object.
    SetObjectRot(objektid,Float:RotX,Float:RotY,Float:RotZ);

  • Ja ich möchte, dass die am Anfang zu sind. Dann wenn man beispielsweise /auf eingibt, dass sie aufgehen und sich dann eben so nach ungefähr 5 Sekunden wieder schließen oder so.



    Kannst du mir dass viell. machen ?? :rolleyes:




    Gruß
    Colin

  • Über OnGameModeInit()
    new schranke1,schranke2;
    forward CloseSchranke1();
    forward CloseSchranke2();
    OnGameModeInit() :
    schranke 1 = CreateObject(968,1905.9747, -2623.6218, 13.3811, 0.0000, 90.2408, 265.4620, 500.0);
    schranke 2 = CreateObject(968, 1904.8259, -2638.7249, 13.3684, 0.0000, 269.7592, 265.4620, 500.0);
    OnPlayerCommandText(playerid,cmdtext[])
    if(strcmp(cmdtext, "/ls1", true)==0)
    {
    MoveObject(schranke1,1905.9747, -2623.6218, 13.3811,2.5); // schranke1 wird nach X,Y,Z bewegt mit 2.5 Geschwindigkeit
    SendClientMessage(playerid,0xFF0000FF,"Die Schranke1 ist nun für 5 Sekunden geöffnet.");
    SetTimer("CloseSchranke1",5000,0); // CloseSchranke1() wird in 5 Sekunden ausgeführt
    }
    if(strcmp(cmdtext, "/ls2", true)==0)
    {
    MoveObject(schranke2,1904.8259, -2638.7249, 13.3684,2.5); // schranke2 wird nach X,Y,Z bewegt mit 2.5 Geschwindigkeit
    SendClientMessage(playerid,0xFF0000FF,"Die Schranke2 ist nun für 5 Sekunden geöffnet.");
    SetTimer("CloseSchranke2",5000,0); // CloseSchranke2() wird in 5 Sekunden ausgeführt
    }
    Außerhalb jedes Callbacks:
    public CloseSchranke1()
    {
    MoveObject(schranke1,1905.9747, -2623.6218, 13.3811,2.5); // Schranke1 wird an ihren alten Standort bewegt mit 2.5 Geschwindigkeit
    }
    public CloseSchranke2()
    {
    MoveObject(schranke2,1904.8259, -2638.7249, 13.3684,2.5); // Schranke2 wird an ihren alten Standort bewegt mit 2.5 Geschwindigkeit
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hmmm, also danke schonmal für deinen Aufwand, allerdings habe ich jetzt Errors:


    C:\Program Files\GTA San Andreas\Server\gamemodes\SU.pwn(542) : error 017: undefined symbol "schranke"
    C:\Program Files\GTA San Andreas\Server\gamemodes\SU.pwn(542) : error 022: must be lvalue (non-constant)
    C:\Program Files\GTA San Andreas\Server\gamemodes\SU.pwn(542) : warning 202: number of arguments does not match definition
    C:\Program Files\GTA San Andreas\Server\gamemodes\SU.pwn(543) : error 017: undefined symbol "schranke"
    C:\Program Files\GTA San Andreas\Server\gamemodes\SU.pwn(543) : error 022: must be lvalue (non-constant)
    C:\Program Files\GTA San Andreas\Server\gamemodes\SU.pwn(543) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.



    schranke 1 = CreateObject(968,1905.9747, -2623.6218, 13.3811, 0.0000, 90.2408, 265.4620, 500.0);
    schranke 2 = CreateObject(968, 1904.8259, -2638.7249, 13.3684, 0.0000, 269.7592, 265.4620, 500.0);


    Das sind die beiden Zeilen !!



    Gruß
    Colin

  • LoL, bedeppert?
    Das ist beim Erstellen des Objektes und nicht beim Bewegen.
    Wenn man keine Ahnung hat...weisst ja weiter.


    @Topic:
    Sorry, da habe ich ein Fehler gemacht.
    Mach aus schranke 1 einfach schranke1 und aus schranke 2 machst du schranke2.
    Also zusammenschreiben =)

  • Habe ich, jetzt sind es schonmal nur noch 2 Errors :)


    C:\Program Files\GTA San Andreas\Server\gamemodes\SU.pwn(542) : warning 202: number of arguments does not match definition
    C:\Program Files\GTA San Andreas\Server\gamemodes\SU.pwn(543) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Warnings.



    schranke1 =CreateObject(968,1905.9747, -2623.6218, 13.3811, 0.0000, 90.2408, 265.4620, 500.0);
    schranke2 =CreateObject(968, 1904.8259, -2638.7249, 13.3684, 0.0000, 269.7592, 265.4620, 500.0);



    Glaub wir habens bald ^^




    Gruß
    Colin

  • Immernoch gleicher Error Oktabius :P



    Gruß
    Colin


    EDIT: Ok, also der Error ist weg. Allerdings öffnen sich die Schranken nicht, die Nachricht "Die Schranke1 ist nun für 5 Sekunden geöffnet" kommt aber, aber die Schranken bewegen sich keinen Zentimeter :(

    Einmal editiert, zuletzt von Udgesbou ()

  • Ok, jetzt funzt alles endlich perfekt. Die Lösung des Problemes ist, dass es so heißen muss:


    if(strcmp(cmdtext, "/auf1", true) == 0)
    {
    SetObjectRot(schranke1,0.0, 0.0, 90.0);
    SendClientMessage(playerid,0xFF0000FF,"Die Schranke ist nun für 5 Sekunden geöffnet.");
    SetTimer("CloseSchranke1",5000,0); // CloseSchranke1() wird in 5 Sekunden ausgeführt
    return 1;
    }



    if(strcmp(cmdtext, "/auf2", true) == 0)
    {
    SetObjectRot(schranke2,0.0, 0.0, 90.0);
    SendClientMessage(playerid,0xFF0000FF,"Die Schranke ist nun für 5 Sekunden geöffnet.");
    SetTimer("CloseSchranke2",5000,0); // CloseSchranke2() wird in 5 Sekunden ausgeführt
    return 1;
    }



    Und so:


    public CloseSchranke1()
    {
    SetObjectRot(schranke1,0.0, -90.5, 85.5);
    return 1;
    }



    public CloseSchranke2()
    {
    SetObjectRot(schranke2,0.0, 90.0, 85.5);
    return 1;
    }



    Aber ohne die Grundidee von euch hätte ich es nicht geschafft denk ich, danke :thumbup:




    Gruß
    Colin

  • Ich habe es so und es klappt auch nicht



    new stadtschranke;



    forward Closestadtschranke();



    stadtschranke = CreatePickup(1318, 23, 836.7063,-2076.3013,12.9285);



    SetTimer("stadtschranke", 5000,1);



    if(pickupid == stadtschranke)
    {
    if(PlayerToPoint(1.0,playerid, 836.7063,-2076.3013,12.9285))
    {
    MoveObject(stadtschranke, 833.625000, -2081.104980, 12.626422, 2.5); // lässt die Schranke aufgehen
    SendClientMessage(playerid,0xFF0000FF,"Die Schranke1 ist nun für 5 Sekunden geöffnet.");
    SetTimer("Closestadtschranke",5000,0); // CloseSchranke1() wird in 5 Sekunden ausgeführt
    }
    }



    MoveObject(stadtschranke,836.7063,-2076.3013,12.9285,2.5); // Schranke1 wird an ihren alten Standort bewegt mit 2.5 Geschwindigkeit