Gangfight System ändern.

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Also, ich habe ein Gangfight System wo man eine Flagge mit "/ctf" einnehmen kann und mit Kills auch Punkte erhält.
    Ich möchte das aber so haben, das man eine Flagge mit "/ctf" nimmt die auf den Rücken bekommt und die dann zu einer bestimmten Position im Gebiet bringen muss. (+1Punkt)
    Wenn man getötet / aus dem Gebiet geht mit der Flagge, wird sie an der Position respawnt wo man sie annehmen kann.
    Ich wollte das per PN, damit keine andere User das in ihrem Script einfügen. (Copy&Paste :))


    if(!strcmp("/ctf",cmdtext,true)){
    if(IsAMafiaFaction(SpielerInfo[playerid][sFraktion]) || IsAGangFaction(SpielerInfo[playerid][sFraktion])){
    new TempZone = GetPlayerFightzone(playerid);
    if(TempZone != -255){
    if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
    return SendClientMessage(playerid, Farbe_Rot, "FEHLER:{FFFFFF} Der Befehl darf nicht in einem Fahrzeug benutzt werden.");
    if(FightSystem[TempZone][fsAttackFaction] == -255 || !FightSystem[TempZone][fsFightTime])
    return SendClientMessage(playerid, Farbe_Rot, "FEHLER:{FFFFFF} Hier gibt es nichts zu erobern.");
    if(FightSystem[TempZone][fsOwnerFaction] == SpielerInfo[playerid][sFraktion]){
    if(IsPlayerInRangeOfPoint(playerid,5.0,FightSystem[TempZone][fsCtfOfAttackx],FightSystem[TempZone][fsCtfOfAttacky],FightSystem[TempZone][fsCtfOfAttackz])){
    if(FightSystem[TempZone][fsCtfOfAttack][0] != -255)
    return SendClientMessage(playerid, Farbe_Rot, "FEHLER:{FFFFFF} Deine Gang/Mafia nimmt bereits die Flagge ein.");
    FightSystem[TempZone][fsCtfOfAttack][1] = 0;
    FightSystem[TempZone][fsCtfOfAttack][0] = playerid;
    AttachObjectToPlayer(FightSystem[TempZone][fsFlagOfAttack],playerid,0.0,0.0,0.0,0.0,0.0,0.0);
    format(Text,sizeof(Text),">>> Gangfight <<< | %s hat die Flagge aufgehoben!",SpielerInfo[playerid][sName]);
    ForAllPlayers(i){
    if(SpielerInfo[i][sEingeloggt]){
    if(SpielerInfo[i][sFraktion] == FightSystem[TempZone][fsOwnerFaction] || SpielerInfo[i][sFraktion] == FightSystem[TempZone][fsAttackFaction]){
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,Farbe_Gelb,Text);
    }
    }
    }
    }else SendClientMessage(playerid, Farbe_Rot, "FEHLER:{FFFFFF} Du bist nicht in der nähe der Flagge.");
    }
    else if(FightSystem[TempZone][fsAttackFaction] == SpielerInfo[playerid][sFraktion]){
    if(IsPlayerInRangeOfPoint(playerid,5.0,FightSystem[TempZone][fsCtfOfOwnerx],FightSystem[TempZone][fsCtfOfOwnery],FightSystem[TempZone][fsCtfOfOwnerz])){
    if(FightSystem[TempZone][fsCtfOfOwner][0] != -255)
    return SendClientMessage(playerid, Farbe_Rot, "FEHLER:{FFFFFF} Deine Gang/Mafia nimmt bereits die Flagge ein.");
    FightSystem[TempZone][fsCtfOfOwner][1] = 0;
    FightSystem[TempZone][fsCtfOfOwner][0] = playerid;
    AttachObjectToPlayer(FightSystem[TempZone][fsFlagOfOwner],playerid,0.0,0.0,0.0,0.0,0.0,0.0);
    new fsText[128];
    format(fsText,sizeof(fsText),">>> Gangfight <<< | %s hat die Flagge aufgehoben!",SpielerInfo[playerid][sName]);
    ForAllPlayers(i){
    if(SpielerInfo[i][sEingeloggt]){
    if(SpielerInfo[i][sFraktion] == FightSystem[TempZone][fsOwnerFaction] || SpielerInfo[i][sFraktion] == FightSystem[TempZone][fsAttackFaction]){
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,Farbe_Gelb,fsText);
    }
    }
    }
    }else SendClientMessage(playerid, Farbe_Rot, "FEHLER:{FFFFFF} Du bist nicht in der nähe der Flagge.");
    }else SendClientMessage(playerid, Farbe_Rot, "FEHLER:{FFFFFF} Du bist nicht in diesem Fight verwickelt.");
    }else SendClientMessage(playerid, Farbe_Rot, "FEHLER:{FFFFFF} Du bist in keinem Gebiet.");
    }else SendClientMessage(playerid, Farbe_Rot, "FEHLER:{FFFFFF} Du bist in keiner Gang/Mafia");
    return 1;
    }

  • Erstmal zu dem Punkt, Flagge an den Spieler:
    Klick mich



    So dann kannst du es doch ganz einfach machen mit IsPlayerInRangeOfPoint und ob er die Flagge besitzt. Also hier der fsCtfOfOwner ist.
    Dann soll er den XY Punkte bekommen (bzw. die Fraktion).
    Außerdem soll die Flagge in den Punkt wieder von Spieler entfernt werden DestroyPlayerObject.


    Und dann geht es weiter ....
    So schwer ist das doch nicht ? ;)