Wie kann ich Tore erstellen die auch funktionieren?

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,
    ich scripte schon ca. 2Wochen und möchte jetzt mal wissen wie man Tore erstellt bzw. scriptet. Z.B. am LSPD möhte ich gerene einen Tor haben. Also ich hoffe dass ich keinen Doppeltpost mache ich hab ja schließlich Suchbegriffe usw. gesucht und hab leider nichts gefunden.
    Jetzt hoffe ich, dass einer mir es verständlich und ausführlich erklären könnte.


    MFG
    Survivor :)


    PS. Falls das ein Doppeltpost ist, möchte ich wenigstens einen Link zu den Theard haben wo es um Torescriptting geht.

  • new Tor1;



    Bei public OnGameModeInit():


    Tor1 = CreateObject(......);



    Bei OnPlayerCommandText:


    if(!strcmp(cmdtext, "/opengate", true))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    MoveObject(Tor1, ...... , 2); // bei ..... kommen die koords hin wo das tor sich hinbewegen soll (2 ist die geschwindigkeit Tor1 der Name^^)
    SendClientMessage(playerid, COLOR_YELLOW,"Das Tor wurde geöffnet");
    }
    else return SendClientMessage(playerid, COLOR_RED,"Du bist kein Admin!");
    return 1;
    }


    if(!strcmp(cmdtext, "/closegate", true))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    MoveObject(Tor1, ...... , 2); // bei ... kommen die Koords hin wo das tor am anfang stand also die lgeichen wie bei create object
    SendClientMessage(playerid, COLOR_YELLOW,"Das Tor wurde geschlossen");
    }
    else return SendClientMessage(playerid, COLOR_RED,"Du bist kein Admin!");
    return 1;
    }

  • Ich habe jetzt alles eingegeben aber es kommen 6 Errors
    undzwar folgende:
    error 021: symbol already defined: "CreateObject"


    error 001: expected token: "-string end-", but found "-identifier-"


    error 017: undefined symbol "PlayerInfo"


    error 001: expected token: ";", but found "]"


    error 029: invalid expression, assumed zero


    fatal error 107: too many error messages on one line


    Und so sieht´s jetzt in Pawno aus:


    CreateObject(971,1588.7052,-1637.9319,13.4370,8.8913)




    public OnPlayerCommandText(playerid, cmdtext["/opengate"])
    {
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    MoveObject(Tor1,1599.9241,-1637.4460,13.7188,0.2628, 4); // bei ..... kommen die koords hin wo das tor sich hinbewegen soll (2 ist die geschwindigkeit Tor1 der Name^^)
    SendClientMessage(playerid, COLOR_YELLOW,"Das Tor wurde geöffnet");
    }
    else return SendClientMessage(playerid, COLOR_RED,"Du bist kein Admin!");
    return 1;
    }


    if(!strcmp(cmdtext, "/closegate", true))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    MoveObject(Tor1, 971,1588.7052,-1637.9319,13.4370,8.8913 , 2); // bei ... kommen die Koords hin wo das tor am anfang stand also die lgeichen wie bei create object
    SendClientMessage(playerid, COLOR_YELLOW,"Das Tor wurde geschlossen");
    }
    else return SendClientMessage(playerid, COLOR_RED,"Du bist kein Admin!");
    return 1;
    }


    Ich hoffe ihr könnt mir helfen die Probleme zu beheben. Dazu ist das Forum da oder... ?(


    Edit: Beim CreateObject (siehe ganz oben) ist die Zahl "971" die ID eines Tor´s
    Sowie im "MoveObject" (Zeile 20) auch.

    Einmal editiert, zuletzt von survivor ()

  • Die CreateObject-Zeile muss in die Funktion OnGameModeInit, und muss dann so aussehen:


    Tor1 = CreateObject(971,1588.7052,-1637.9319,13.4370,8.8913);

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • Ich habe ein Problem mit "CreatObject" undzwar ist das Tor am LSPD eingefügt aber es ist schräg.


    Es sieht so aus: http://bild-upload.smok.de/ima…/1218236029,72884,237.png


    und so: http://bild-upload.smok.de/ima…/1218236464,44393,171.png


    Also das, dass Tor schräg ist, möchte ich es nicht haben und deshalb möchte ich wissen was ich falsch gemacht habe damit der Fehler möglichts nie wieder vorkommt. ;)


    Hier nochmal meine CreatObject Zeile:
    CreateObject(971,1588.2966,-1637.6387,13.4224,4.8000);


    Nartürlich habe ich "CreatObject" in die Funktion "OnGameModeInit" reingemacht.


    Ich bedanke mich nochmals für eure Hilfe :)

  • Wie Kann man das machen, dass sich das Tor nach 5 sek oder so wieder selbst schließt???


    Ich weiss dass es iwie mit nem Timer geht , weiss aber nicht genau wie



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • forward GlobalTimer();
    main() {
    SetTimer("GlobalTimer", 1000, 1); /* ja bei mir gibts auch nur einen timer, zuviele timer suxx0rn */
    }
    #define MAX_TOR 10 /* beliebig */
    enum torState { STATE_TOR_CLOSE, STATE_TOR_OPEN };
    new torState:TorState[MAX_TOR], tor_time[MAX_TOR] = { 0 }, Float:TorClosePos[MAX_TOR][6], acTorID;
    AddTor(modelid, Float:x, Float:y, Float:z, Float:xr, Float:yr, Float:zr, Float:mx, Float:my, Float:mz) { /* ersten 6 normal danach move! */
    if(acTorID == MAX_TOR) break;
    acTorID = CreateObject(modelid, x, y, z, xr, yr, zr);
    TorClosePos[acTorID][0] = mx;
    TorClosePos[acTorID][1] = my;
    TorClosePos[acTorID][2] = mz;
    TorClosePos[acTorID][3] = x;
    TorClosePos[acTorID][4] = y;
    TorClosePos[acTorID][5] = z;
    return acTorID;
    }
    new lspd;
    public OnGameModeInit() {
    lspd = AddTor(/*...*/);
    }
    public OnPlayerCommandText(playerid, cmdtext[]) {
    if(!strcmp(cmdtext, "/lspd")) {
    if(TorState[lspd] == STATE_TOR_CLOSE) {
    MoveObject(lspd, TorClosePos[acTorID][3], TorClosePos[acTorID][4], TorClosePos[acTorID][5], 1.0);
    TorState[lspd] = STATE_TOR_OPEN;
    tor_time[lspd] = 5;
    } else {
    MoveObject(lspd, TorClosePos[acTorID][0], TorClosePos[acTorID][1], TorClosePos[acTorID][2], 1.0);
    TorState[lspd] = STATE_TOR_CLOSE;
    tor_time[lspd] = 0;
    }
    }
    }
    public GlobalTimer() {
    for(new i = 0; i < MAX_TOR; i++) {
    if(TorState[i] == STATE_TOR_OPEN && tor_time[i] == 0) {
    MoveObject(i, TorClosePos[acTorID][0], TorClosePos[acTorID][1], TorClosePos[acTorID][2], 1.0);
    TorState[i] = STATE_TOR_CLOSE;
    }
    if(TorState[i] == STATE_TOR_OPEN && tor_time[i] != 0)
    tor_time[i] -= 1;
    }
    }
    Ist halt ungetestet, habs gerade so ausm kopf geschrieben :> Schau ansonsten nochmal mein Tor System im ShowRoom an

  • Ich habe ein Problem mit "CreatObject" undzwar ist das Tor am LSPD eingefügt aber es ist schräg.




    Es sieht so aus: http://bild-upload.smok.de/images/origin…9,72884,237.png




    und so: http://bild-upload.smok.de/images/origin…4,44393,171.png




    Also das, dass Tor schräg ist, möchte ich es nicht haben und deshalb
    möchte ich wissen was ich falsch gemacht habe damit der Fehler
    möglichts nie wieder vorkommt. ;)




    Hier nochmal meine CreatObject Zeile:
    CreateObject(971,1588.2966,-1637.6387,13.4224,4.8000);



    Nartürlich habe ich "CreatObject" in die Funktion "OnGameModeInit" reingemacht.




    Ich bedanke mich nochmals für eure Hilfe :)

  • ICh komm da auch nicht weiter :(
    4 Errors:
    C:\Users\Kevin\Desktop\Test Server\pawno\new.pwn(39) : warning 217: loose indentation
    C:\Users\Kevin\Desktop\Test Server\pawno\new.pwn(112) : error 017: undefined symbol "PlayerInfo"
    C:\Users\Kevin\Desktop\Test Server\pawno\new.pwn(112) : warning 215: expression has no effect
    C:\Users\Kevin\Desktop\Test Server\pawno\new.pwn(112) : error 001: expected token: ";", but found "]"
    C:\Users\Kevin\Desktop\Test Server\pawno\new.pwn(112) : error 029: invalid expression, assumed zero
    C:\Users\Kevin\Desktop\Test Server\pawno\new.pwn(112) : fatal error 107: too many error messages on one line


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/opengate", true))
    {
    if(PlayerInfo[playerid] [pAdmin] >= 1)
    {
    MoveObject(Tor1, CreateObject(1023.574646, -922.297302, 43.000492, 2); // bei ..... kommen die koords hin wo das tor sich hinbewegen soll (2 ist die geschwindigkeit Tor1 der Name^^)
    SendClientMessage(playerid, COLOR_YELLOW,"Das Tor wurde geöffnet");
    }
    else return SendClientMessage(playerid, COLOR_RED,"Du bist kein Admin!");
    return 1;
    }
    if(!strcmp(cmdtext, "/closegate", true))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    MoveObject(Tor1, 989.1018.369568, -922.297302, 43.000492, 2); // bei ... kommen die Koords hin wo das tor am anfang stand also die lgeichen wie bei create object
    SendClientMessage(playerid, COLOR_YELLOW,"Das Tor wurde geschlossen"
    }
    else return SendClientMessage(playerid, COLOR_RED,"Du bist kein Admin!");
    return 1;
    }




    So siehst in Pawno aus

  • Wo kommt PlayerInfo her? Das ist völlig aus dem Zusammenhang gerissen, da kann man schlecht beurteilen woran das liegt :/

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • Shocker:
    Dann zeig den Jungs mal wie die das auch ohne GodFather machen können.. nicht jeder benutzt Godfather, Baldau z.B. offensichtlich nicht.

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/opengate", true))
    {
    if (IsPlayerAdmin(playerid))
    {
    MoveObject(Tor1, 1023.574646, -922.297302, 43.000492, 2); // bei ..... kommen die koords hin wo das tor sich hinbewegen soll (2 ist die geschwindigkeit Tor1 der Name^^)
    SendClientMessage(playerid, COLOR_YELLOW,"Das Tor wurde geöffnet");
    }
    else return SendClientMessage(playerid, COLOR_RED,"Du bist kein Admin!");
    return 1;
    }
    if(!strcmp(cmdtext, "/closegate", true))
    {
    if (IsPlayerAdmin(playerid))
    {
    MoveObject(Tor1, 989.369568, -922.297302, 43.000492, 2); // bei ... kommen die Koords hin wo das tor am anfang stand also die lgeichen wie bei create object
    SendClientMessage(playerid, COLOR_YELLOW,"Das Tor wurde geschlossen");
    }
    else return SendClientMessage(playerid, COLOR_RED,"Du bist kein Admin!");
    return 1;
    }


    einfach als rcon admin :-]


    Zitat

    SendClientMessage(playerid, COLOR_YELLOW,"Das Tor wurde geschlossen"


    da hat auch was gefehlt :->^^



    Zitat

    MoveObject(Tor1, CreateObject(1023.574646, -922.297302, 43.000492, 2); // bei ..... kommen die koords hin wo das tor sich hinbewegen soll (2 ist die geschwindigkeit Tor1 der Name^^)


    stimmt auch nich so ganz



    Zitat

    MoveObject(Tor1, 989.1018.3695...


    noja auch nich das wahre :O

    2 Mal editiert, zuletzt von DraloX ()

  • ich weis nich genau ob es funktioniert, aber probier es mal ^^


    if (strcmp("/open", cmdtext, true, 10) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    MoveObject(..., ......, 2); // ... = Definierungs name, ........ = Coordienaten
    SendClientMessage(playerid, COLOR_YELLOW, "The Gate is open!");
    {
    else
    }
    SendClientMessage(playerid, COLOR_GREY, "You are not a Cop!");
    }
    return 1;
    }


    Das ist nun nur für Cops zu öffnen.