Gangfight System [Neue Zone nicht Angreifbar]

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
  • Nabend,


    ich nutze das RGR Gangfight system. Und habe nun eine Neue Zone hinzugefügt.
    Diese Zone wird ingame auch angezeigt sowie das Icon zum angreifen.
    Nur ist das problem jetzt wenn ich /angreifen machen kommt Server Unknown Command.


    Habe die neue zone wie folgt eingefügt


    new FightSystem[][fsSyS]={
    /*MinX, MinY, MaxX, MaxY, CTFx, CTFy, CTFz*/
    {1956.9500,-1792.3558,1826.4274,-1927.5583,1865.4543,-1865.3102,13.5673},//Tanke
    };


    Die anderen gebiete Funktionieren perfekt.
    Nur das neue buggt etwas rum.
    Bin seit 2 Wochen am Scripten habe ein bisschen erfahrung doch da wir eigentlich alle wissen das gerade das Gangfight system nicht so easy is habt erbarmen mit mir.


    Wenn was fehlt schreibt es bitte :)

  • Du hast MinX,MinY,Maxx,MaxY, versuch es mal so:
    new FightSystem[][fsSyS]={
    /*MinX, MinY, MaxX, MaxY, CTFx, CTFy, CTFz*/
    {1826.4274,-1927.5583,1956.9500,-1792.3558,1865.4543,-1865.3102,13.5673},//Tanke
    };


    Siehe hier:
    MinX: 1826.4274
    MaxX: 1956.9500
    MinY: -1927.5583
    MaxY: -1792.3558

  • Funktioniert perfekt sehe den Fehler jetzt auch ;) Manchmal braucht man aber Hilfe es zu erkennen.


    Bleibt von mir aus nur 1 Offene Frage wenn wir schon dabei sind.


    Man kann jedes gebiet angreifen wenn 1 Spieler on ist. Soll aber erst ab 2 Spieler Online gehen. Hier Der Code


    if(testphase == 0) {
    if(on[0] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Es sind nicht genügend Gegner Online (mindestens 2)");
    if(on[1] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Es sind nicht genügend Mitglieder deiner Fraktion Online (mindestens 2)");
    }

  • if(on[0] >= 2)


    >= bedeutet: on[0] ist entweder größer als 2 oder gleich 2.


    Jeffry | Hast es falsch verstanden ^^ bei ihm funktioniert die Funktion bereits nur mit einem Spieler, er möchte einfach du die abfragen das min. 2 oder mehr Leute online sein müssen.

  • new on[2];
    on[0] = 0;
    on[1] = 0;
    for(new fs;fs<sizeof(FightSystem);fs++){
    for(new p=0;p<MAX_PLAYERS;p++)
    {
    if(GetPlayerFaction(p) == FightSystem[fs][fsOwnerFaction]) {
    on[0]++;
    }
    if(GetPlayerFaction(p) == GetPlayerFaction(playerid))
    {
    on[1]++;
    }
    }
    }
    if(testphase == 0) {
    if(on[0] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Es sind nicht genügend Spieler aus der Gegner Fraktion Online (mindestens 2)");
    if(on[1] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Es sind nicht genügend Fraktions-Mitglieder Online (mindestens 2)");
    }


    Also Fehler kommen nicht. Es Klappt halt nur nicht das wenn ich Ingame bin. Heisst also das es ist egal ob 1 Online ist ich kann immer Angreifen

  • Das liegt daran, dass du die Schleife so oft ausführst, wie es Fraktionen gibt.
    Du musst zuerst die Gegnerfraktion herausfinden (ich weiß ja nicht, wie das System bei dir ist), und dann:
    new on[2];
    on[0] = 0;
    on[1] = 0;
    for(new p=0;p<MAX_PLAYERS;p++)
    {
    if(GetPlayerFaction(p) == HIER_DIE_GEGNER_FRAKTION) {
    on[0]++;
    }
    if(GetPlayerFaction(p) == GetPlayerFaction(playerid))
    {
    on[1]++;
    }
    }
    if(testphase == 0)
    {
    if(on[0] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Es sind nicht genügend Spieler aus der Gegner Fraktion Online (mindestens 2)");
    if(on[1] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Es sind nicht genügend Fraktions-Mitglieder Online (mindestens 2)");
    }



    Pr0x: Du hast es falsch verstanden. Er kann alleine angreifen, und das soll nicht gehen. Laut Code ist das ja auch so, nur durch die Schleife wird er eben X mal gezählt, sprich der Fehler entsteht.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Beides Ausprobiert. Bei beidem funktioniert es immernoch wenn nur 1 On is ... Ist erstmal nicht schlimm.


    Poste falls du nicht weiter kommst eben den Code so wie du ihn dann hast nochmal, dann debuggen wir ihn mal (bzw, das kannst du auch selbst machen, wenn du weißt wie es geht). Du hast bestimmt noch einen kleinen unbewussten Fehler drin.