Torsystem Frage

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 leute,


    Ich wollte mal fragen wie das ist mit meinem Torsystem.
    Weil es nicht funktioniert ich poste jetzt mal die wichtigen sachen:

    enum Tore
    {
    Float:TorX,
    Float:TorY,
    Float:TorZ,
    TorStellung,
    Fraktion,
    ObjectID
    }
    new Tor[MAX_TORE][Tore] = {
    {1917.3494873047,2339.4455566406,12.593704223633,0,9,980},
    {2517.41796875,1822.943359375,13.413106918335,0,8,971},
    {2557.9184570313,1692.5526123047,13.306018829346,0,8,8210}
    };


    //der tor befehl:


    ocmd:tor(playerid,params[])
    {
    for(new i=0;i<MAX_TORE;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,Tor[i][TorX],Tor[i][TorY],Tor[i][TorZ]))
    {
    if(GetPVarInt(playerid,"Fraktion")== Tor[i][Fraktion])
    {
    if(Tor[i][TorStellung]==0)
    {
    MoveObject(Tor[i][ObjectID],Tor[i][TorX],Tor[i][TorY],Tor[i][TorZ]-10,5);
    Tor[i][TorStellung] = 1;
    }
    if(Tor[i][TorStellung]==1)
    {
    MoveObject(Tor[i][ObjectID],Tor[i][TorX],Tor[i][TorY],Tor[i][TorZ],5);
    Tor[i][TorStellung] = 0;
    }

    }
    }//,Tore[i][2],Tore[i][3]))
    }
    return 1;
    }


    helft mir bitte ich möchte nicht die tore so anders machen weils so besser ist :D



  • enum Tore
    {
    Float:TorX,
    Float:TorY,
    Float:TorZ,
    TorStellung,
    Fraktion,
    ModelID,
    ObjID
    }
    new Tor[MAX_TORE][Tore] = {
    {1917.3494873047,2339.4455566406,12.593704223633,0,9,980},
    {2517.41796875,1822.943359375,13.413106918335,0,8,971},
    {2557.9184570313,1692.5526123047,13.306018829346,0,8,8210}
    };


    Unter OnGamemOdeInit:


    for(new i = 0; i<sizeof(Tor); i++)
    {
    Tor[i][ObjID] = CreateObject(Tor[i][ModelID], Tor[i][TorX], Tor[i][TorY], Tor[i][TorZ], 0, 0, 0, 300); // Ich geh mal davon aus, dass RotX, RotY und RotZ 0 sind, da du sie nicht festgelegt hast.
    }


    ocmd:tor(playerid,params[])
    {
    for(new i=0;i<MAX_TORE;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,Tor[i][TorX],Tor[i][TorY],Tor[i][TorZ]))
    {
    if(GetPVarInt(playerid,"Fraktion")== Tor[i][Fraktion])
    {
    if(Tor[i][TorStellung]==0)
    {
    MoveObject(Tor[i][ObjID],Tor[i][TorX],Tor[i][TorY],Tor[i][TorZ]-10,5);
    Tor[i][TorStellung] = 1;
    }
    else if(Tor[i][TorStellung]==1)
    {
    MoveObject(Tor[i][ObjID],Tor[i][TorX],Tor[i][TorY],Tor[i][TorZ],5);
    Tor[i][TorStellung] = 0;
    }

    }
    }//,Tore[i][2],Tore[i][3]))
    }
    return 1;
    }


    So sollte es funktionieren.

  • ja bei ongamemodeinit kann ich da nicht das machen ?:

    tor = CreateObject(Tor[MAX_TORE][ObjectID],Tor[MAX_TORE][TorX],Tor[MAX_TORE][TorY],Tor[MAX_TORE][TorZ],0.00000000,0.00000000,Tor[MAX_TORE][Rotation]);

    aber da kommt varibale tor out of bounds

  • Ja du musst auch einen Index angeben wenn du einen Array definiert hast.
    Also wenn du new tor[3]; hast:
    tor[0] = CreateObject(...);
    tor[1] = CreateObject(...);
    tor[2] = CreateObject(...);


    Aber du kannst die Objekte NICHT über ihre Model ID ansprechen, so wie du das am Anfang hattest.
    CreateObject liefert nen Wert zurück, die Objekt ID, mit der du das Objekt "ansprechen" kannst.

  • und wie sol ichs jetzt machen :(
    ich muss das haben^^