Gangfight

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
  • Gute Tag
    Ich habe ein Problem mit dem Gangfight system ..
    Also wen ich in einem Gebiet /invade Tippe dan steht da **Gebiet wurde ausgeschaltet
    Was ist daran falsch : 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 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] >= 0) return SendClientMessage(playerid, FS_COL_GREY, "Es sind nicht genügend Gegner Online (mindestens 2)");
    // if(on[0] >= 1) return SendClientMessage(playerid, FS_COL_GREY, "Es sind nicht genügend Mitglieder deiner Fraktion Online (mindestens 2)");
    }
    new TempZone = GetPlayerFightzone(playerid);
    if(TempZone != -255){
    if(FightSystem[TempZone][fsFightTimeCool] != 0)
    {
    format(stringx, sizeof(stringx), "Das Gebiet kann erst wieder in ca. %d Minuten erobert werden.", FightSystem[TempZone][fsFightTimeCool]);
    return SendClientMessage(playerid, FS_COL_GREY,stringx);
    }


    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),"Kent Brockman: ihr werdet von %s angegriffen, kämpf um deine Zone!!!",GetFactionNameOfFaction(GetPlayerFaction(playerid)));
    new fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsTextToAttack[255];
    format(fsTextToAttack,sizeof(fsTextToAttack),"Kent Brockman: %s hat einen Gangfight gegen %s gestartet, kämpft um die Zone!",fsName,GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
    new fsText[64];
    format(fsText,sizeof(fsText),"~y~%s",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,Fight2);
    TextDrawShowForPlayer(i,FightBG);
    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,Fight2);
    TextDrawShowForPlayer(i,FightBG);
    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][fsFightTimeCool] = 120;//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;
    }


    bitte helfen ;(

  • Das Problem lässt dich eigentlich schon aus dem kontext lesen von dem code.


    if(!IsAFightFaction(FightSystem[TempZone][fsOwnerFaction]))return SendClientMessage(playerid,FS_COL_GREY,"Gebiet wurde ausgeschaltet.");


    Dazu sollte man nur wissen was der operator ! bedeutet , was IsAFightFaction zurück gibt und was dort die bedingung ist geht aus dem text herraus.
    und zu guter letzte was überprüft wird , besser gesagt welcher wert FightSystem[TempZone][fsOwnerFaction]) dort ist die lösung auch wieder
    im name fsOwnerFaction.

  • Ne bin ich nicht ;) wen du dir das script von mir jz angucken würdest .. würdest du es nicht wieder erkennen glaub mir :D

    Okey, tut mir leid, dass ich gefragt habe.
    Wurde von SC-Reallife als Scripter rausgeworfen, und dieser Sprudell
    hat das editierte Script geklaut. (Und es war shcon seeeehr viel editiert)


    Mfg