Tor System

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 Tag, ich wollte mir ein "Simples" aber "übersichtliches" Torsystem Scripten.
    Ich bin gerade dabei, jedoch bin ich am scheitern :S
    Ich habe erst einmal die Open Koordinaten, der Text was kommen soll beim Öffnen, und die Close Koordinaten in einem enum gepackt.
    Das sieht nun so aus:
    enum Gates {
    Float: OpenX,
    Float: OpenY,
    Float: OpenZ,
    Text[200],
    Float: CloseX,
    Float: CloseY,
    Float: CloseZ
    };
    Das new dazu
    new Float:Tore[][Gates] = {
    {1004.0070,-939.3102,42.1797,"Das Tor schließt sich Automatisch nach 8 Sekunden", 1004.0070,-939.3102,42.1797}
    };
    Beispiel-Koordinaten!!


    So, sollte ja jeder von euch wissen :p
    Dann habe ich mir gedacht, mach ich über den Knopf "h" lassen sich die Tore öffnen.
    if(newkeys == 8)
    {
    if(IsPlayerInRangeOfPoint(playerid,CloseX,CloseY,CloseZ, 5)) {//707
    if(GetPVarInt(playerid, "Team") == 2) {
    MoveObject(SFPDTor, OpenX, OpenY, OpenZ);//709
    SetTimer("CloseGate", 8000, 0); }
    }
    }
    Hierbei habe ich mir gedacht, als erstes muss man im Radius von 5 Metern an egal welchem Tor sein, und dann erst frägt er nach der Fraktion... Also hier muss man Team 2 sein, damit das Tor aufgeht(SFPD) undder Timer anspringt, der in 8 Sekunden dann wieder das Tor SFPD schließt.
    gehen wir mal weiter zu meinempublic der von dem Timer ausgelöst wird.
    achja, selbstverständlich habe ich den oben definiert.
    forward CloseGate(playerid);
    public CloseGate(playerid)
    {
    MoveObject(SFPDTor, CloseX,CloseY,CloseZ, 5)//2009
    KillTimer(CloseGate);//2010
    return 1;
    }


    So, nun kommen die Probleme und die unklarheiten :D
    Also hier habe ich jetzt gedacht, frage ich auch wieder ab welche Fraktion er ist, damit er dann auch weiß welches Tor dann zu muss? Oder wie soll ich es machen?
    außerdem habe ich Errors und Warnings... kommt davon wenn man als noob alles alleine versucht :D


    Hier meine Erros!
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(707) : warning 213: tag mismatch
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(707) : warning 213: tag mismatch
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(707) : warning 213: tag mismatch
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(709) : warning 213: tag mismatch
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(709) : warning 213: tag mismatch
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(709) : warning 213: tag mismatch
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(709) : warning 202: number of arguments does not match definition
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(2009) : warning 213: tag mismatch
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(2009) : warning 213: tag mismatch
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(2009) : warning 213: tag mismatch
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(2010) : error 001: expected token: ";", but found "-identifier-"
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(2010) : error 076: syntax error in the expression, or invalid function call
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(2190) : warning 203: symbol is never used: "Tore"
    und 2190 exestiert nicht :)


    Bitte um hilfe...
    Die 2 Errors sind draußen, aber weiter weiß ich trz nicht...



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF ()

  • Habe es schon, lag an was komplett anderem noch mit :D
    So habe ja jetzt verschieden Tore, und ich will jetzt zb tor 20 nur für cops öffnen lassen, wie mach ich das 8|



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • ja schon klar.
    Aber Hab ja alles über ein "Ding".
    Egal was mann ist man kann alles über "h" öffnen.
    Ich will das aber die Koordinaten bei dem new nr 20 jetzt nur für cops zu öffnen ist..
    wo muss ich jetzt die abfrage hinpacken?



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Weil ich mir so eine Menge an Code spare :)
    Also habe schon etwas weiter gearbeitet und eine Lösung für die Abfrage ob er in dem Team ist gefunden . Jetzt scheitere ich bloß daran das Tor für Army jetzt zu Koordinaten 1 zu binden, damit das Script halt weiß wohin das Army Gate muss.
    Deshalb hab ich bei meinem Enum
    TorID
    Hinzugefügt und bei der ersten Koordinate die TorID 1 eingefügt.
    Also Army Tor ist id 1.
    Aber jetzt weiß ich nicht wie ich das bei "CreateObject" machen soll?
    Tore[GateID][TorID] 1 = CreateObject
    Aber so geht es ja nicht. Versteht ihr was ich meine ?.



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF ()

  • Erstmal vielen Dank, keine Errors :)
    Nur irgendwie geht gar nichts ^^
    Muss mal schauen warum
    Geht nichts...
    Hier der komplette Code vielleicht findet ihr ja einen Fehler
    enum Gates {
    Float: OpenX
    Float: OpenY
    Float:OpenZ
    Text[200]
    Float:CloseX
    Float:CloseY
    Float:CloseZ
    Gateteam
    TorID[2]
    Torart
    };
    forward CloseTor(playerid);
    forward CloseSchranke(playerid);
    new Float:Tore[][Gates] = {
    {-1522.80005,482.5,-0.4,"Text"-1522.80005,482.5,6.2, 0, 1, 1}
    };

    for(new Gateid = 0; Gateid < sizeof (Tore); Gateid++)
    {
    Tore[Gateid][TorID][1] = CreateObject(987. -1522.80005,482.5,6.2,0,0,180);
    }
    if(oldkeys == 8)
    {
    if(IsPlayerInRangeOfPoint(playerid, Tore[playerid][CloseX], Tore[playerid][CloseY], Tore[playerid][CloseZ],10.0)) {
    if(GetPVarInt(playerid, "Team" == Tore[playerid][Gateteam]) {
    if(Tore[playerid][Torart] == 1) {
    MoveObject(Tore[playerid][TorID], Tore[playerid][OpenX]Tore[playerid][OpenY],Tore[playerid][OpenZ],5.0);
    SendClientMessage(playerid,Color_Blue, Tore[playerid][Text]);
    SetTimer("CloseTor",8000,0); }
    if(Tore[playerid][Torart] == 2) {
    // wenn es eine Schranke ist
    SendClientMessage(playerid, Color_Blue, Tore[playerid][Text]);
    SetTimer("CloseSchranke",8000,0); }
    }
    }
    }
    }
    return 1;
    }
    public CloseTor(playerid)
    {
    MoveObject(Tore[playerid][TorID], Tore[playerid][CloseX], Tore[playerid][CloseY], Tore[playerid][CloseZ], 5.0);
    return 1;
    }
    Wurde komplett mit Handy abgeschrieben da ich momentan nur mobiles Netz habe deshalb können Fehler drin sein
    Hat einer einen Rat ?...



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    4 Mal editiert, zuletzt von ENEF ()