Problem mit Gates

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
  • Hi,
    also ich habe versucht Gates zu erstellen die automatishc uaf und zu gehen.
    Was ist hier dran falsch?



    new PDGATE;



    forward pdgate(playerid);



    PDGATE = CreateObject( 987 , 1546.113769 , -1621.810913 , 11.709331 , 0.000000 , 0.000000 , 990.000000 );



    public pdgate(playerid)
    {
    if (IsPlayerConnected(playerid))
    {
    if(PlayerToPoint(14.0, playerid,-1528.303467, -816.268127, 56.562481))
    {
    MoveObject(ZollSchranke,-1528.277466, -816.389221, 56.591431, 1.0);
    }
    else
    {
    MoveObject(ZollSchranke,-1528.303467, -816.268127, 56.562481, 1.0);
    }
    return 1;
    }
    return 1;
    }


    Problem: Die Gates bewegen sich keinen Schlag xD


    Bitte dringend um Hilfe


    MfG ~Luka~

  • Nur mal so nebenbei... da steht: pdgate(playerid);
    woher soll denn jetzt das arme Script wissen, welchen Player du meinst?
    So ist es auch bei "new", wenn du "new gate;" machst und es nicht anders definierst, ist es automatisch 0, somit auch die playerid, wenn du dort ncihts anderes eingibst
    Somit geht das Tor nur für die ID 0 auf

  • Also,
    ich habe das aus einer Reallife GM rauskopiert und ich verstehe einfach net wie ich das hinkriege usw...
    Kann mir ma ljemand es vor machen damit ich es nur noch einfügen muss pls


    MfG ~Luka~

  • bei forwards irgendwo rein
    forward lspdtor1();


    Ganz Oben bei den anderen "new" 's

    new pdgatestatus = 0; //Status des Tores
    new lspdtor;
    new lspdtortimer;



    unter public OnGameModeInit()


    lspdtor = CreateObject(987 , 1546.113769 , -1621.810913 , 11.709331 , 0.000000 , 0.000000 , 990.000000);


    unten bei den ganzen anderen befehlen
    if (strcmp(cmdtext, "/Befehl", true) == 0) // Befehl ergänzen
    {
    if(PlayerInfo[playerid][pMember] == 1 )//Fraktions ID von der Polizei ergänzen...hier ist es 1
    {
    if(pdgatestatus == 0)
    {
    pdgatestatus = 1; //0 = zu 1 = Auf
    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Text der kommen soll wen man Befehl eingibt");
    MoveObject(lspdtor,1593.464722, -1638.005371, 12.585760, 3.5);//Koordinaten wo es auf is musste ergänzen
    lspdtortimer = SetTimer("lspdtor1", 9000, 0); //Zeit in Millisekunden ( 9000 = 9sec)
    }
    else
    {
    KillTimer(lspdtortimer);
    pdgatestatus = 0;//Tor wieder zu
    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Text wenn es zu geht ^^");
    MoveObject (lspdtor,1546.113769 , -1621.810913 , 11.709331, 2.5);
    return 1;
    }
    }
    return 1;
    }




    Edit: oh das mitm Radius hab ich erst jetzt gelesen..naja, wenigstens weißt du nun wie es normal geht ^^ rest kannste dir zusammenflicken

  • Oder man macht ganz nach oben:
    forward auf();
    OnGameModeInit:
    SetTimer("auf",1000,1);
    ganz nach unten:
    public auf() {
    new offen=0;
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(PlayerToPoint(14.0,i,-1528.303467, -816.268127, 56.562481)) {
    if(offen==0) {
    MoveObject(PDGATE,-1528.277466, -816.389221, 56.591431, 1.0); offen=1; }}}}
    if(offen==1) { MoveObject(PDGATE,-1528.303467, -816.268127, 56.562481, 1.0); }}

    Einmal editiert, zuletzt von KeksOfDeath ()

  • Also ic hhabe das jetzt mal als FS gemacht, das sieht so aus:



    #include <a_samp>


    #pragma tabsize 0


    #define FILTERSCRIPT


    #define COLOR_RED 0xAA3333AA
    #define COLOR_GREEN 0x33AA33AA


    new pdgatestatus = 0; //Status des Tores
    new lspdtor;
    new lspdtortimer;


    forward lspdtor1();


    public OnFilterScriptInit()
    {
    lspdtor = CreateObject(987, 1539.308350, -1622.095825, 12.546875, 0.0000, 0.0000, 270.0000); //zu
    // CreateObject(987, 1539.164429, -1622.170654, 6.092547, 0.0000, 0.0000, 270.0000); //auf
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext, "/pdopen", true) == 0) // Befehl ergänzen
    {
    if(PlayerInfo[playerid][pMember] == 1 )//Fraktions ID von der Polizei ergänzen...hier ist es 1
    {
    if(pdgatestatus == 0)
    {
    pdgatestatus = 1; //0 = zu 1 = Auf
    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Text der kommen soll wen man Befehl eingibt");
    MoveObject(lspdtor,1539.164429, -1622.170654, 6.092547, 3.5);//Koordinaten wo es auf is musste ergänzen
    lspdtortimer = SetTimer("lspdtor1", 9000, 0); //Zeit in Millisekunden ( 9000 = 9sec)
    }
    else
    {
    KillTimer(lspdtortimer);
    pdgatestatus = 0;//Tor wieder zu
    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Text wenn es zu geht ^^");
    MoveObject (lspdtor,1539.308350, -1622.095825, 12.546875, 3.5);
    return 1;
    }
    }
    return 1;
    }
    return 0;
    }


    Jetzt kriege ich aber noch Errors:



    (32) : error 017: undefined symbol "PlayerInfo"
    (32) : warning 215: expression has no effect
    (32) : error 001: expected token: ";", but found "]"
    (32) : error 029: invalid expression, assumed zero
    (32) : fatal error 107: too many error messages on one line


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



    4 Errors.



    MfG ~Luka~