Probleme mit dem Gangfight-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
  • Hallo,


    irgendwie bekomme ich es einfach nicht auf die reihe neue gangfightgebiete zu erstellen...


    Ich glaube ich habe damals das RGR Gangfight System eingebaut..


    Wenn ich ein neues Gebiet einsetze, steht da immer.. Du bist in keinem Gebiet..


    new FightSystem[][fsSyS]={
    /*MinX, MinY, MaxX, MaxY, CTFx, CTFy, CTFz*/
    {1060.145,-1721.339,1166.624,-1583.168,1072.4016,-1619.3834,20.4583},//Kaufhaus
    {990.2909,1821.38,1177.724,2057.332,1067.5798,1884.2932,10.8203},//Container
    {-887.5186,1377.989,-583.8938,1634.903,-813.6335,1525.2080,26.5065},//Wüste
    {-2506.7,740.0255,-2383.094,826.8147,2459.4094,787.3281,35.1719},//Markt
    {-1850.044,1438.284,-1710.987,1584.248,-1789.1478,1543.3608,7.1875},//Hafen
    {-1891.4263,857.8361,-1722.0261,1095.5897,-1720.0752,1018.2902,17.5859},//Bank
    {1828.318,-1938.465,2071.699,-1760.817,1958.6156,-1853.2424,4.3392},//Tanke
    {1828.0573,-2161.2705,1956.4136,-2057.7964,1924.0941,-2125.0146,13.5826},//Airport(LS)
    {906.7744,-1561.5994,807.6274,-1416.7367,841.4399,-1485.7002,13.5947}//AutohausLS
    };


    //====== GW LALALAL!
    if(strcmp(cmdtext,"/ctf",true)==0){
    if(IsAFightFaction(GetPlayerFaction(playerid))){
    new TempZone = GetPlayerFightzone(playerid);
    if(TempZone != -255){
    if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
    return SendClientMessage(playerid,FS_COL_GREY,"** Du darfst das nur zu Fuß machen ...");
    if(!FightSystem[TempZone][fsFightTime] || FightSystem[TempZone][fsAttackFaction] == -255)
    return SendClientMessage(playerid,FS_COL_GREY,"** Hier gibt es nichts zu erobern.");


    if(FightSystem[TempZone][fsOwnerFaction] == GetPlayerFaction(playerid) || FightSystem[TempZone][fsAttackFaction] == GetPlayerFaction(playerid)){
    if(IsPlayerInRangeOfPoint(playerid,5.0,FightSystem[TempZone][fsCTFx],FightSystem[TempZone][fsCTFy],FightSystem[TempZone][fsCTFz])){
    if(FightSystem[TempZone][fsCTF][0] != -255){
    if(GetPlayerFaction(FightSystem[TempZone][fsCTF][0]) != GetPlayerFaction(playerid))
    SendClientMessage(playerid,FS_COL_GREY,"** Die Flagge wird von deinen Feinden erobert, töte sie zuerst!");
    else
    SendClientMessage(playerid,FS_COL_GREY,"** Deine Gang / Mafia erobert bereits die Flagge!");
    return 1;
    }
    FightSystem[TempZone][fsCTF][0] = playerid;
    new fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsText[128];
    format(fsText,sizeof(fsText),">>> Fight <<< | %s hat begonnen die Flagge zu erobern!",fsName);
    for(new i;i<MAX_PLAYERS;i++){
    if(IsPlayerConnected(i)){
    if(GetPlayerFaction(i) == FightSystem[TempZone][fsOwnerFaction] || GetPlayerFaction(i) == FightSystem[TempZone][fsAttackFaction]){
    SendClientMessage(i,FS_COL_YELLOW,fsText);
    }
    }
    }
    }else SendClientMessage(playerid,FS_COL_GREY,"** Du bist nicht in der nähe der Flagge!");
    }else SendClientMessage(playerid,FS_COL_GREY,"** Du bist nicht in diesem Fight verwickelt ...");
    }else SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keinem Gebiet!");
    }else SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keiner Gang / Mafia.");
    return 1;
    }
    if(strcmp(cmdtext,"/invade",true)==0){
    if(IsAFightFaction(GetPlayerFaction(playerid))){
    for(new fs;fs<sizeof(FightSystem);fs++){
    if((FightSystem[fs][fsOwnerFaction] == GetPlayerFaction(playerid) && FightSystem[fs][fsFightTime]) || FightSystem[fs][fsAttackFaction] == GetPlayerFaction(playerid))
    return SendClientMessage(playerid,FS_COL_GREY,"** Deine Gang / Mafia ist bereits in einem Fight.");
    }
    new TempZone = GetPlayerFightzone(playerid);
    if(TempZone != -255){
    if(!IsAFightFaction(FightSystem[TempZone][fsOwnerFaction]))
    return SendClientMessage(playerid,FS_COL_GREY,"Gebiet wurde ausgeschaltet.");
    if(FightSystem[TempZone][fsOwnerFaction] == GetPlayerFaction(playerid))
    return SendClientMessage(playerid,FS_COL_GREY,"** Man greift nicht seine eigenen Leute an.");
    if(FightSystem[TempZone][fsFightTime] || FightSystem[TempZone][fsAttackFaction] != -255)
    return SendClientMessage(playerid,FS_COL_GREY,"** In diesem Gebiet wird bereits geschossen.");
    if(FightSystem[TempZone][fsLastFight]){
    new fsText[178];
    format(fsText,sizeof(fsText),"Ganggebiet: Dieses Ganggebiet wurde bereits Angegriffen, wartet noch: '%d' Minuten.",FightSystem[TempZone][fsLastFight]);
    SendClientMessage(playerid,FS_COL_GREY,fsText);
    return 1;
    }
    for(new fs;fs<sizeof(FightSystem);fs++){
    if(FightSystem[fs][fsOwnerFaction] == FightSystem[TempZone][fsOwnerFaction] && (FightSystem[fs][fsFightTime] || FightSystem[fs][fsAttackFaction] != -255))
    return SendClientMessage(playerid,FS_COL_GREY,"Ganggebiet: Die Gang / Mafia der das Ganggebiet gehört hat bereits ein Kampf.");
    }
    new fsTextToOwner[255];
    format(fsTextToOwner,sizeof(fsTextToOwner),">>> Fight <<< | Ihr werden von: %s angegriffen, setzt euch zur wehr!",GetFactionNameOfFaction(GetPlayerFaction(playerid)));
    new fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsTextToAttack[255];
    format(fsTextToAttack,sizeof(fsTextToAttack),">>> Fight <<< | %s hat ein Kampf mit: %s begonnen, macht sie Platt!",fsName,GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
    //Meldung
    format(string, sizeof(string), "Gangfight-News: Die %s fängt nun ein Gangkrieg gegen die %s an!", GetFactionNameOfFaction(GetPlayerFaction(playerid)),GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
    OOCOff(COLOR_ORANGE, string);
    //Meldung
    new fsText[64];
    format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]),GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
    TextDrawSetString(FightSystem[TempZone][fsWinFaction],fsText);
    TextDrawSetString(FightSystem[TempZone][fsWinKills],"~y~00 Kills");
    format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(GetPlayerFaction(playerid)));
    TextDrawSetString(FightSystem[TempZone][fsLoseFaction],fsText);
    TextDrawSetString(FightSystem[TempZone][fsLoseKills],"~y~00 Kills");
    TextDrawSetString(FightSystem[TempZone][fsTime],"Verbl. Zeit: 60 Minuten");//ZEIT
    for(new i;i<MAX_PLAYERS;i++){
    if(IsPlayerConnected(i)){
    GangZoneFlashForPlayer(i,FightSystem[TempZone][fsZoneID],GetZoneColorOfFaction(GetPlayerFaction(playerid)));
    if(GetPlayerFaction(i) == FightSystem[TempZone][fsOwnerFaction]){
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,FS_COL_YELLOW,fsTextToOwner);
    TextDrawShowForPlayer(i,Fight);
    TextDrawShowForPlayer(i,FightUnderline);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinFaction]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinKills]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseFaction]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseKills]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsTime]);
    }
    if(GetPlayerFaction(i) == GetPlayerFaction(playerid)){
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,FS_COL_YELLOW,fsTextToAttack);
    TextDrawShowForPlayer(i,Fight);
    TextDrawShowForPlayer(i,FightUnderline);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinFaction]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinKills]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseFaction]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseKills]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsTime]);
    }
    }
    }
    FightSystem[TempZone][fsAttackFaction] = GetPlayerFaction(playerid);
    FightSystem[TempZone][fsKillsOfOwner] = 0;
    FightSystem[TempZone][fsKillsOfAttack] = 0;
    FightSystem[TempZone][fsFightTime] = 60;//ZEIT
    FightSystem[TempZone][fsCTF][0] = -255;
    FightSystem[TempZone][fsCTF][1] = 0;
    FightSystem[TempZone][fsCTF][2] = 0;
    return 1;
    }return SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keinem Gebiet!");
    }else SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keiner Gang / Mafia.");
    return 1;
    }

  • Ist das das neue?
    {906.7744,-1561.5994,807.6274,-1416.7367,841.4399,-1485.7002,13.5947}//AutohausLS


    Das muss zu
    {807.6274,-1561.5994,906.7744,-1416.7367,841.4399,-1485.7002,13.5947}//AutohausLS
    geändert werden, da 807 kleiner ist als 906.

  • Diese Coordinaten wollte ich einsetzen.


    AddStaticVehicle(522,1876.4862,-1082.4648,23.3961,86.9169,2,2); // Ballas1
    AddStaticVehicle(522,2056.5623,-1250.7635,23.5351,79.6493,2,2); // Ballas2
    AddStaticVehicle(522,1972.5774,-1235.1443,19.6214,98.8283,2,2); // Ballasctf


    Das gebiet wird auch markiert allerdings steht trotzdem, nicht in einem gebiet.


  • ^



    ^


    stock GetPlayerFightzone(playerid){
    new Float:GangZone[3];
    GetPlayerPos(playerid,GangZone[0],GangZone[1],GangZone[2]);
    for(new fs;fs<sizeof(FightSystem);fs++){
    if((GangZone[0] >= FightSystem[fs][fsMinX] && GangZone[0] <= FightSystem[fs][fsMaxX]) && (GangZone[1] >= FightSystem[fs][fsMinY] && GangZone[1] <= FightSystem[fs][fsMaxY]) && GangZone[2] <= 500)
    return fs;
    }return -255;
    }

  • AddStaticVehicle(522,1876.4862,-1082.4648,23.3961,86.9169,2,2); // Ballas1
    AddStaticVehicle(522,2056.5623,-1250.7635,23.5351,79.6493,2,2); // Ballas2
    AddStaticVehicle(522,1972.5774,-1235.1443,19.6214,98.8283,2,2); // Ballasctf


    So würde ich ein neuen punkt anlegen..
    {1876.4862,-1082.4648,2056.5623,-1250.7635,,1972.5774,-1235.1443,19.6214},

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • /*MinX, MinY, MaxX, MaxY, CTFx, CTFy, CTFz*/


    Zuerst die kleine X Koordinate
    Dann die kleine Y Koordinate
    Dann die große X Koordinate
    Dann die große Y Koordinate
    Dann die CP Koordinaten X, Y, Z.



    Und da -1250 kleiner ist als -1082 muss es als erstes kommen (-10 ist ja kleiner als -5).