/mv Befehl für mehrere Tore und mehrere Fraktionen

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 würde gerne, dass jede Fraktion, seine eigenen Tore mit dem gleichen Befehl aufmacht, ohne dass diese sich in die Quere kommen


    Also PD muss inRange vom PD TOR sein ohne halt das fehlermeldungen kommen wie " Du bist nicht in Reichweite vom Army Tor"


    so möchte ich halt vermeiden, dass das PD die army tore aufmacht



    Hier schonmal mein Einstieg


    Spoiler anzeigen
    ocmd:mv(playerid,params[])

    Spoiler anzeigen
    //CreateObject(980, 480.70001, 2379.6001, 30.8, 0, 2, 158); //tor 1
    // CreateObject(980, -163.099609375, 2507.7001953125, 25, 0, 0, 180); //tor 2

    {








    //ARMY TOR FRAK ID 3



    if(!isPlayerInFrak(playerid,3) & !isAdmin(playerid,5)) return 1;
    {
    if(TorStatus[Army1Gate] == false)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,480.70001, 2379.6001, 30.8)) return 1;
    MoveObject(Army1Gatee,480.70001, 2379.6001, 30.8-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[Army1Gate] = true;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,480.70001, 2379.6001, 30.8)) return 1;
    MoveObject(Army1Gatee,480.70001, 2379.6001, 30.8,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[Army1Gate] = false;
    }
    if(TorStatus[Army2Gate] == false)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,-163.099609375, 2507.7001953125, 25)) return 1;
    MoveObject(Army2Gatee,-163.099609375, 2507.7001953125, 25-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[Army2Gate] = true;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,-163.099609375, 2507.7001953125,25)) return 1;
    MoveObject(Army2Gatee,-163.099609375, 2507.7001953125,25,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[Army2Gate] = false;
    }

    }




    /*
    O_TORL = CreateObject(971, 777.90002, -1384.9, 16, 0, 0, 0); //tor2 einfach nach unten

    O_TORR = CreateObject(971, 778, -1330.2, 15.9, 0, 0, 180); //tor1 einfach nach unten
    */

    //OAMT TORE FRAK ID 10
    if(!isPlayerInFrak(playerid,10) & !isAdmin(playerid,5)) return 1;
    {
    if(TorStatus[TORL] == false)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,777.90002, -1384.9, 16)) return 1;
    MoveObject(O_TORL,777.90002, -1384.9, 16-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[TORL] = true;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,777.90002, -1384.9, 16)) return 1;
    MoveObject(O_TORL,777.90002, -1384.9, 16,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[TORL] = true;
    }


    if(TorStatus[TORR] == true)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,778, -1330.2, 15.9)) return 1;
    MoveObject(O_TORR,778, -1330.2, 15.9-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[TORR] = false;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,778, -1330.2, 15.9)) return 1;
    MoveObject(O_TORR,778, -1330.2, 15.9,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[TORR] = true;
    }
    }
    return 1;

    }



    Und leider dazu eine menge Errors
    Diese Fehler liegen beim Befehl /mv bei dem Bewegen der TOre
    E:\SAMP\gamemodes\Script1.pwn(2438) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2438) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2443) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2450) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2454) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2454) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2459) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2466) : warning 213: tag mismatch




    E:\SAMP\gamemodes\Script1.pwn(4778) : error 022: must be lvalue (non-constant) //FEHLER LIEGT BEIM DEFINIEREN DER TORE
    E:\SAMP\gamemodes\Script1.pwn(4779) : error 022: must be lvalue (non-constant) //FEHLER LIEGT BEIM DEFINIEREN DER TORE


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



    2 Errors.



    Dazu muss ich sagen, dass das ARMY Tor einwandfrei funktioniert



    Hier noch die Defines von dem OAMT


    Spoiler anzeigen
    bool:O_TORL,
    bool:O_TORR,

    Spoiler anzeigen
    new TORL;
    new TORR;

    Spoiler anzeigen
    stock Oamt

    Spoiler anzeigen
    O_TORL = CreateObject(971, 777.90002, -1384.9, 16, 0, 0, 0); //tor2 einfach nach unten
    O_TORR = CreateObject(971, 778, -1330.2, 15.9, 0, 0, 180); //tor1 einfach nach unten



    Ich weiß ich kann mit switch und case arbeiten aber ich hab das noch nie gemacht

  • Überall wo du ein & hast müssen zwei hin,



    //anstatt so
    if(!isPlayerInFrak(playerid,3) & !isAdmin(playerid,5))


    //so
    if(!isPlayerInFrak(playerid,3) && !isAdmin(playerid,5))


    und dass halb bei allen, wenn noch Fehler auftauchen bitte ich dich die Zeilen zu makieren in welchen Fehler auftauchen.

    1+1=10


    Es gibt 10 Arten von Menschen.
    Die die Binärcode verstehen, und die, die ihn nicht verstehen.

  • E:\SAMP\gamemodes\Script1.pwn(2438) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2438) : warning 213: tag mismatch



    Betrifft diese Zeile


    Spoiler anzeigen
    if(TorStatus[TORL] == false)


    E:\SAMP\gamemodes\Script1.pwn(2443) : warning 213: tag mismatch


    Betrifft diese


    Spoiler anzeigen
    TorStatus[TORL] = true;


    E:\SAMP\gamemodes\Script1.pwn(2450) : warning 213: tag mismatch


    Betrifft diese


    TorStatus[TORL] = true;


    Diese Beiden


    E:\SAMP\gamemodes\Script1.pwn(2454) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2454) : warning 213: tag mismatch


    Betreffen diese Zeile


    if(TorStatus[TORR] == true)



    Ebenfalls mit Tag Mismatch


    TorStatus[TORR] = false;


    und zu guter letzt diese


    auch mit Tag mismatch
    TorStatus[TORR] = true;




    Anderenfalls diese beiden Errors
    E:\SAMP\gamemodes\Script1.pwn(4778) : error 022: must be lvalue (non-constant)
    E:\SAMP\gamemodes\Script1.pwn(4779) : error 022: must be lvalue (non-constant)


    Betreffend diese Beiden Zeilen


    O_TORL = CreateObject(971, 777.90002, -1384.9, 16, 0, 0, 0); //tor2 einfach nach unten
    O_TORR = CreateObject(971, 778, -1330.2, 15.9, 0, 0, 180); //tor1 einfach nach unten

  • hab ich mit ins enum gepackt


    enum tore{
    bool:CNNGate,
    bool:TERRORGate,
    bool:HITMANGate,
    bool:Marvinstor,
    bool:Prasitor,
    bool:Specing,
    bool:AC_JOB1,
    bool:AC_JOB2,
    bool:AC_JOB3,
    bool:AC_JOB4,
    bool:AC_JOB5,
    bool:Army1Gate,
    bool:Army2Gate,
    bool:O_TORL,
    bool:O_TORR,
    }

  • Achso und ich würde ers abfragen ob er in der nähe ist und nicht erst Abfragen ob das Tor auf oder zu ist, denn wenn er nicht in der nähe ist dann returnt er einfach ohne das nächte Tor abzufragen.



    Von

    if(!isPlayerInFrak(playerid,3) && !isAdmin(playerid,5)) return 1;
    {
    if(TorStatus[Army1Gate] == false)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,480.70001, 2379.6001, 30.8)) return 1;
    MoveObject(Army1Gatee,480.70001, 2379.6001, 30.8-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[Army1Gate] = true;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,480.70001, 2379.6001, 30.8)) return 1;
    MoveObject(Army1Gatee,480.70001, 2379.6001, 30.8,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[Army1Gate] = false;
    }
    if(TorStatus[Army2Gate] == false)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,-163.099609375, 2507.7001953125, 25)) return 1;
    MoveObject(Army2Gatee,-163.099609375, 2507.7001953125, 25-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[Army2Gate] = true;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,-163.099609375, 2507.7001953125,25)) return 1;
    MoveObject(Army2Gatee,-163.099609375, 2507.7001953125,25,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[Army2Gate] = false;
    }


    }


    Zu

    if(!isPlayerInFrak(playerid,3) && !isAdmin(playerid,5)) return 1;
    {
    if(IsPlayerInRangeOfPoint(playerid,8,480.70001, 2379.6001, 30.8))
    {
    if(TorStatus[Army1Gate] == false)
    {
    MoveObject(Army1Gatee,480.70001, 2379.6001, 30.8-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[Army1Gate] = true;
    }
    else
    {
    MoveObject(Army1Gatee,480.70001, 2379.6001, 30.8,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[Army1Gate] = false;
    }
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,8,-163.099609375, 2507.7001953125, 25))
    {
    if(TorStatus[Army2Gate] == false)
    {
    MoveObject(Army2Gatee,-163.099609375, 2507.7001953125, 25-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[Army2Gate] = true;
    }
    else
    {
    MoveObject(Army2Gatee,-163.099609375, 2507.7001953125,25,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[Army2Gate] = false;
    }
    return 1;
    }
    }

    1+1=10


    Es gibt 10 Arten von Menschen.
    Die die Binärcode verstehen, und die, die ihn nicht verstehen.

  • Das darf nicht in's enum:


    enum tore{
    bool:CNNGate,
    bool:TERRORGate,
    bool:HITMANGate,
    bool:Marvinstor,
    bool:Prasitor,
    bool:Specing,
    bool:AC_JOB1,
    bool:AC_JOB2,
    bool:AC_JOB3,
    bool:AC_JOB4,
    bool:AC_JOB5,
    bool:Army1Gate,
    bool:Army2Gate,
    }


    new O_TORL;
    new O_TORR;


    So.


    Ich tippe darauf, dass TorStatus auch kein "bool" ist.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry () aus folgendem Grund: Tippfehler

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • okay 2 Errors weg

    Spoiler anzeigen
    diese Errors sind nun weg


    verbleiben noch die Warnings



    EDIT1;


    Das && ist richtig KinG.: Da es heißt wenn er nicht in der
    Fraktion ist und kein admin ist andernfalls wäre eins immer wahr und er
    könnte das Tor nicht öffnen.



    Es soll ja "UND" "ODER"
    heißen

  • bool:O_TORL, bool:O_TORR, new TORL; new TORR;


    Ich habs vertauscht



    es musste so:



    bool:TORL,
    bool:TORR,


    new O_TORL;
    new O_TORR;




    das hat mich auf den Entscheidenden Punkt gebracht



    Danke Jeffry :D