Dynamisches Gangfightsystem v2

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
  • Hey,
    da ich an meinem Selfmade nicht mehr weitermache, habe ich mir gedacht, dass ich einige gute Systeme hier releasen werde, da ich die ja eh nicht benötige.


    Beschreibung
    Es handelt sich um ein dynamisches Gangfightsystem, indem ihr als RCON-Admin - Gangzonen erstellen / löschen könnt.
    Die Zonen werden auf der Map in der Farbe der Fraktion angezeigt, die ihr der Fraktion im Filterscript zugeteilt habt.
    Wenn jemand dann in die Zone reingeht, wird ihm angezeigt, wer der Besitzer der Zone ist ( Fraktionsname - ebenfalls im Filterscript anpassen ), außerdem steht vor dem Fraktionsnamen die Zonenid.
    Die Zonen werden natürlich auch gespeichert, in welcher Datei, das könnt ihr natürlich auch im Filterscript festlegen.
    Wird ein Gangfight gestartet, werden den beiden Gangs die Punkte der beiden Gangs und die Zeit des Gangfightes angezeigt.
    Wann ein Gangfight zu Ende ist, das könnt ihr auch im Filterscript festlegen, ebenfalls, ab wie vielen Punkten er zu Ende ist.
    Die Eroberer können auch die Flagge (versuchen zu) erobern, dafür bekommen sie 3 Punkte. Für jeden Kill, der in der Gangzone passiert, bekommt die jeweilige Gang 1 Punkt.
    Die Besitzer der Zone können während des Gangfightes die Flagge nicht erobern, da es ja ihre ist..
    Wenn die Gang versucht, die Flagge zu erobern, muss sie die angegebene 'Eroberungs-Zeit' in der Nähe der Zone warten, bis sie sie eingenommen hat.
    Um mehr zu erfahren, testet es doch mal aus ;)


    v2 -> Nun wird im Gangfight eine Box angezeigt, wo die Punkte beider Gangs und die Zeit des Gangfights drinsteht.
    Außerdem wird, wenn die Flagge erobert wird, die Zeit angezeigt, wie lange die Flagge noch erobert werden muss.
    Man kann nun mit Y / Z die Flagge erobern.
    Einige / Bekannte Bugs wurden ebenfalls gefixxt!
    Nun sollten keine Bugs mehr vorhanden sein..



    Video

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Link zum Video


    In dem Video sieht man bei der Einnahme eines Gebietes ( bei dem Gangfight, welches ich im Video aufgab ), dass die Zone rot, aber die Schrift grau war..
    Dies habe ich nach dem Video dann gefixxt!


    Leider konnte ich den Gangfight nicht mit einer anderen Person zeigen.. Da ich einfach keine Person mehr hatte :)



    Einstellungen im Script
    /* Settings */
    #define MAX_GZ 40 //Maximale Gangzonen festlegen
    #define MaxPoints 100 //Wie viel Punkte eine Fraktion haben muss, um den Gangfight gewinnen zu können
    #define GFTime 60 //Wie lange ein Gangfight dauert
    #define GFRuhe 30 //Wie lange die Zone nach einem Gangfight nicht mehr angegriffen werden darf
    #define FlaggeZeit 30 //Wie viel Sekunden es dauert, eine Flagge zu erobern
    #define MAX_FRAKTIONEN 21 //Anzahl der Fraktionen festlegen [+1]
    #define G_FILE "/Gangzonen.ini" //Wo die Gangzonen gespeichert werden sollen


    stock bool:NoGang(playerid){
    switch(GetPVarInt(playerid,"Fraktion")){ //PVar anpassen
    case 10,11,12,13:return true; //Gang-IDs anpassen
    default:return false;
    }
    return false;
    }


    stock bool:Leader(playerid){
    switch(GetPVarInt(playerid,"FrakRank")){ //PVar anpassen
    case 7:return true; //Leader-Rank anpassen
    default:return false;
    }
    return false;
    }


    stock GetFraktion(playerid)return GetPVarInt(playerid,"Fraktion");//PVar anpassen


    stock FrakColor(fid){
    new color;
    switch(fid)
    {
    case 0:color = 0x000000FF;
    case 1:color = 0xE10000FF;
    case 2:color = 0x646464FF;
    //...
    default:color = 0xFFFFFFFF;
    }
    return color;
    }


    stock FrakName(fid){
    new name[16];
    switch(fid){
    case 0:name = "No-one";
    case 1:name = "Frak_01";
    case 2:name = "Frak_02";
    //...
    default:name = "Unnamed";
    }
    return name;
    }
    /* Settings */
    Passt dort bitte alles an, damit auch alles wie gewollt funktioniert!



    Befehle
    Als Admin
    '/creategangzone' -> Gangzone erstellen
    '/zoneende' -> Gangzone erstellen - Punkt 2
    '/cflagge' -> Flagge der Gangzone erstellen - Punkt 3 | Ende
    '/destroyzone' -> Zone löschen


    Als Gangmitglied
    '/angriff' -> Zone angreifen
    '/flagge' -> Flagge erobern ( Taste Y / Z )
    '/aufgeben' -> Gangfight aufgeben | Andere Gang erhält die Zone dann



    Was ihr benötigt
    Ihr benötigt die OCMD-Include, die Dini-Include & die M_Zones-Include (Offi-Thread -> Klick).



    Download
    Pastebin
    PWN-Datei



    Weitere Vorschläge / Verbesserungen.. könnte ihr gerne posten :)

  • Beitrag von Apokrate ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.

  • //Im FS
    stock GetFraktion(playerid)return GetPVarInt(playerid,"Fraction");//PVar anpassen


    // In meinem Script
    stock GetFactionNameOfFaction(Faction){
    new FactionName[64];
    if(Faction == 5) format(FactionName,sizeof(FactionName),"S.C.U");
    else if(Faction == 6) format(FactionName,sizeof(FactionName),"Yakuza");
    else if(Faction == 13) format(FactionName,sizeof(FactionName),"Grove Street");
    else if(Faction == 14) format(FactionName,sizeof(FactionName),"Ballas");
    else if(Faction == 12) format(FactionName,sizeof(FactionName),"Wild Siders");
    else if(Faction == 17) format(FactionName,sizeof(FactionName),"S.F Rifa");
    else if(Faction == 23) format(FactionName,sizeof(FactionName),"Russen Mafia");
    else format(FactionName,sizeof(FactionName),"NoN-Gang");
    return FactionName;
    }



    Kann mir einer helfen es richtig einzutragen. PvarInt ist in meinem Script nicht enthalten. Ist GF.


    //Edit : schon enthalten aber finde nicht das was ich da eintragen muss.

  • Was meinst du?
    Etwa den PVar hier, oder was?


    GetPVarInt(playerid,"Fraction");//PVar anpassen

  • stock GetFraktion(playerid)return GetPVarInt(playerid,"Fraction");//PVar anpassen


    Das ist im Filterscript da muss ich die Fraktionen einfügen oder?
    Was gebe ich dort an und wie erhalte errors wenn ich es dort reinschreibe

  • stock GetFraktion(playerid)return GetPVarInt(playerid,"Fraction");//PVar anpassen


    Das ist im Filterscript da muss ich die Fraktionen einfügen oder?
    Was gebe ich dort an und wie erhalte errors wenn ich es dort reinschreibe

    Ja du musst dort eintragen, wie du deine Fraktionen immer ausließt.
    also, mit einem Enum oder einem PVar oder so etwas ..

  • if (PlayerInfo[playerid][pMember] == 17 || PlayerInfo[playerid][pLeader] == 17)


    Wie füge ich da jetzt alles ein?
    Blicke da im Moment noch nicht so richtig durch.


    Ja dann muss die Funktion bei dir denke ich mal so ausschauen:


    stock GetFraktion(playerid)return PlayerInfo[playerid][pMember]