Flagge nehmen ohne Befehl

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 liebe Com,


    ich bräuchte dringend Hilfe da ich den Befehl /flagge nichtmehr eingeben will. D.H ich wollte es so machen, dass wenn ich zu der Flagge laufe automatisch die Flagge bekomme..


    Hier der Flaggenbefehl:
    if(!strcmp("/Flagge",cmdtext,true))
    {
    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][fsAttackFaction] == -255 || !FightSystem[TempZone][fsFightTime])
    return SendClientMessage(playerid,FS_COL_GREY,"Hier gibt es nichts zu erobern.");
    if(FightSystem[TempZone][fsOwnerFaction] == GetPlayerFaction(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,FightSystem[TempZone][fsCtfOfAttackx],FightSystem[TempZone][fsCtfOfAttacky],FightSystem[TempZone][fsCtfOfAttackz]))
    {
    if(FightSystem[TempZone][fsCtfOfAttack][0] != -255)
    return SendClientMessage(playerid,FS_COL_GREY,"Deine Gang / Mafia erobert bereits die Flagge!");
    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);
    new fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsText[128];
    format(fsText,sizeof(fsText),">>> Gangfight <<< | %s hat die Flagge aufgehoben!",fsName);
    for(new i;i<MAX_PLAYERS;i++){
    if(IsPlayerConnected(i)){
    if(GetPlayerFaction(i) == FightSystem[TempZone][fsOwnerFaction] || GetPlayerFaction(i) == FightSystem[TempZone][fsAttackFaction]){
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,FS_COL_YELLOW,fsText);
    }
    }
    }
    }else SendClientMessage(playerid,FS_COL_GREY,"Du bist nicht in der nähe der Flagge!");
    }
    else if(FightSystem[TempZone][fsAttackFaction] == GetPlayerFaction(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,FightSystem[TempZone][fsCtfOfOwnerx],FightSystem[TempZone][fsCtfOfOwnery],FightSystem[TempZone][fsCtfOfOwnerz]))
    {
    if(FightSystem[TempZone][fsCtfOfOwner][0] != -255)
    return SendClientMessage(playerid,FS_COL_GREY,"Deine Gang / Mafia erobert bereits die Flagge!");
    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 fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsText[128];
    format(fsText,sizeof(fsText),">>> Gangfight <<< | %s hat die Flagge aufgehoben!",fsName);
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerFaction(i) == FightSystem[TempZone][fsOwnerFaction] || GetPlayerFaction(i) == FightSystem[TempZone][fsAttackFaction])
    {
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    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;
    }


    Und hier mein verbuggtes bzw nichtfunktionierender Befehl..
    public OnPlayerPickUpPickup(playerid,pickupid)
    {
    //Gangwarsystem
    if(IsAFightFaction(GetPlayerFaction(playerid)))
    {
    new TempZone = GetPlayerFightzone(playerid);
    if(TempZone != -255)
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
    return SendClientMessage(playerid,GRAU,"Du darfst das nur zu Fuß machen ...");
    if(GangwarZones[TempZone][fsAttackFaction] == -255 || !GangwarZones[TempZone][fsFightTime])
    return SendClientMessage(playerid,GRAU,"Hier gibt es nichts zu erobern.");
    if(GangwarZones[TempZone][fsOwnerFaction] == GetPlayerFaction(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,GangwarZones[TempZone][fsCtfOfAttackx],GangwarZones[TempZone][fsCtfOfAttacky],GangwarZones[TempZone][fsCtfOfAttackz]))
    {
    if(GangwarZones[TempZone][fsCtfOfAttack][0] != -255)
    return SendClientMessage(playerid,GRAU,"Deine Gang / Mafia erobert bereits die Flagge!");
    GangwarZones[TempZone][fsCtfOfAttack][1] = 0;
    GangwarZones[TempZone][fsCtfOfAttack][0] = playerid;
    AttachObjectToPlayer(GangwarZones[TempZone][fsFlagOfAttack],playerid,0.0,0.0,0.0,0.0,0.0,0.0);
    new fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsText[128];
    format(fsText,sizeof(fsText),">>> Gangfight <<< | %s hat die Flagge aufgehoben!",fsName);
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerFaction(i) == GangwarZones[TempZone][fsOwnerFaction] || GetPlayerFaction(i) == GangwarZones[TempZone][fsAttackFaction])
    {
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,GW_COLOR_ORANGE,fsText);
    }
    }
    }
    }else SendClientMessage(playerid,GRAU,"Du bist nicht in der nähe der Flagge!");
    }
    else if(GangwarZones[TempZone][fsAttackFaction] == GetPlayerFaction(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,GangwarZones[TempZone][fsCtfOfOwnerx],GangwarZones[TempZone][fsCtfOfOwnery],GangwarZones[TempZone][fsCtfOfOwnerz]))
    {
    if(GangwarZones[TempZone][fsCtfOfOwner][0] != -255)
    return SendClientMessage(playerid,GRAU,"Deine Gang / Mafia erobert bereits die Flagge!");
    GangwarZones[TempZone][fsCtfOfOwner][1] = 0;
    GangwarZones[TempZone][fsCtfOfOwner][0] = playerid;
    AttachObjectToPlayer(GangwarZones[TempZone][fsFlagOfOwner],playerid,0.0,0.0,0.0,0.0,0.0,0.0);
    new fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsText[128];
    format(fsText,sizeof(fsText),">>> Gangfight <<< | %s hat die Flagge aufgehoben!",fsName);
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerFaction(i) == GangwarZones[TempZone][fsOwnerFaction] || GetPlayerFaction(i) == GangwarZones[TempZone][fsAttackFaction])
    {
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,GW_COLOR_ORANGE,fsText);
    }
    }
    }
    }else SendClientMessage(playerid,GRAU,"Du bist nicht in der nähe der Flagge!");
    }else SendClientMessage(playerid,GRAU,"Du bist nicht in diesem Fight verwickelt ...");
    }return 1;
    }else SendClientMessage(playerid,GRAU,"Du bist in keiner Gang / Mafia.");


    Bitte um dringende Hilfe! ;(

  • Am sinnvollsten wäre es eine Area um die Flagge zu machen, eben eine ganz kleine.


    Das geht mit dem Streamer Plugin ganz einfach.
    http://forum.sa-mp.com/showthread.php?t=102865


    Damit kannst du Areas erstellen. Abfragen, ob der Spieler eine Area betreten oder verlassen hat kannst du mit diesen zwei Callbacks:
    public OnPlayerEnterDynamicArea(playerid, areaid);
    public OnPlayerLeaveDynamicArea(playerid, areaid);


    Beim betreten der Area kannst du dem Spieler die Flagge dann geben.



    Eine andere Möglichkeit, allerdings nicht so elegant, wäre einen Checkpoint bzw ein Pickup an die Stelle der Flagge zu setzen.



    PS:
    Du musst nicht den ganzen Code nochmal dort hin setzen, du kannst einfach
    OnPlayerCommandText(playerid, "/flagge");
    schreiben. Das simuliert den Befehl dann.


  • geht leider nicht :/ also habs versucht doch dann stürzt der server ab..
    Kannst du mir eventuell helfen ? Ich möchte halt das der pickup von der flagge so sich dreht und wenn man hinein läuft, dass man automatisch diese /flagge befehl funktioniert.. doch ich schaff es leider nicht

  • So hab ich es bisjetzt drinnen und es funktioniert einfach nicht :/ Das PickUp dreht sich nicht und ich kann es nicht aufheben wenn man hinein läuft..
    Einmal die FLagge vom OwnerTeam:
    GangwarZones[fs][fsFlagOfOwner] = CreateObject(2993,GangwarZones[fs][fsCtfOfOwnerx],GangwarZones[fs][fsCtfOfOwnery],(GangwarZones[fs][fsCtfOfOwnerz]-1.0),0.0,0.0,0.0,150.0);
    Und einmal vom AngreiferTeam:
    GangwarZones[fs][fsFlagOfAttack] = CreateObject(2993,GangwarZones[fs][fsCtfOfAttackx],GangwarZones[fs][fsCtfOfAttacky],(GangwarZones[fs][fsCtfOfAttackz]-1.0),0.0,0.0,0.0,150.0);
    if(IsAFightFaction(GetPlayerFaction(playerid)))
    {
    new TempZone = GetPlayerFightzone(playerid);
    if(TempZone != -255)
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
    return SendClientMessage(playerid,GRAU,"Du darfst das nur zu Fuß machen ...");
    if(GangwarZones[TempZone][fsAttackFaction] == -255 || !GangwarZones[TempZone][fsFightTime])
    return SendClientMessage(playerid,GRAU,"Hier gibt es nichts zu erobern.");
    if(GangwarZones[TempZone][fsOwnerFaction] == GetPlayerFaction(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,GangwarZones[TempZone][fsCtfOfAttackx],GangwarZones[TempZone][fsCtfOfAttacky],GangwarZones[TempZone][fsCtfOfAttackz]))
    {
    if(GangwarZones[TempZone][fsCtfOfAttack][0] != -255)
    return SendClientMessage(playerid,GRAU,"Deine Gang / Mafia erobert bereits die Flagge!");
    GangwarZones[TempZone][fsCtfOfAttack][1] = 0;
    GangwarZones[TempZone][fsCtfOfAttack][0] = playerid;
    AttachObjectToPlayer(GangwarZones[TempZone][fsFlagOfAttack],playerid,0.0,0.0,0.0,0.0,0.0,0.0);
    new fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsText[128];
    format(fsText,sizeof(fsText),"Gangfight: %s hat die Flagge aufgehoben!",fsName);
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerFaction(i) == GangwarZones[TempZone][fsOwnerFaction] || GetPlayerFaction(i) == GangwarZones[TempZone][fsAttackFaction])
    {
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,GW_COLOR_ORANGE,fsText);
    }
    }
    }
    }else SendClientMessage(playerid,GRAU,"Du bist nicht in der nähe der Flagge!");
    }
    else if(GangwarZones[TempZone][fsAttackFaction] == GetPlayerFaction(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,GangwarZones[TempZone][fsCtfOfOwnerx],GangwarZones[TempZone][fsCtfOfOwnery],GangwarZones[TempZone][fsCtfOfOwnerz]))
    {
    if(GangwarZones[TempZone][fsCtfOfOwner][0] != -255)
    return SendClientMessage(playerid,GRAU,"Deine Gang / Mafia erobert bereits die Flagge!");
    GangwarZones[TempZone][fsCtfOfOwner][1] = 0;
    GangwarZones[TempZone][fsCtfOfOwner][0] = playerid;
    AttachObjectToPlayer(GangwarZones[TempZone][fsFlagOfOwner],playerid,0.0,0.0,0.0,0.0,0.0,0.0);
    new fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsText[128];
    format(fsText,sizeof(fsText),"Gangfight: %s hat die Flagge aufgehoben!",fsName);
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerFaction(i) == GangwarZones[TempZone][fsOwnerFaction] || GetPlayerFaction(i) == GangwarZones[TempZone][fsAttackFaction])
    {
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,GW_COLOR_ORANGE,fsText);
    }
    }
    }
    }else SendClientMessage(playerid,GRAU,"Du bist nicht in der nähe der Flagge!");
    }else SendClientMessage(playerid,GRAU,"Du bist nicht in diesem Fight verwickelt ...");
    }else SendClientMessage(playerid,GRAU,"Du bist in keinem Gebiet!");
    }else SendClientMessage(playerid,GRAU,"Du bist in keiner Gang / Mafia.");
    return 1;
    }

  • geklatscht haben jedoch weis ich leider nicht wie sowas geht..


    Ehh...wenn die Offsets und Rotations-Achsen alle auf 0 sind...sollte das model eigentlich gerade sitzen :D


    Welche modelid hat denn diese Flagge? :huh:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Vielen dank, kennst du dich eventuell mit dieser Attachendingsbums aus? Ich wollte genau wie auf diesen Screen so eine Flagge an den Skin geklatscht haben jedoch weis ich leider nicht wie sowas geht..


    Das kannst du mit diesem Editor ganz leicht herausfinden, bzw anpassen:
    http://forum.sa-mp.com/showthread.php?t=209234
    Edit: http://forum.sa-mp.com/showthread.php?t=416138

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()


  • Ehh...wenn die Offsets und Rotations-Achsen alle auf 0 sind...sollte das model eigentlich gerade sitzen :D


    Welche modelid hat denn diese Flagge? :huh:


    Die ModelID beträgt: 2993
    Ich wollte es halt so bisschen schief am skin auf dem Rücken haben. Damit man noch deaglen bzw zielen kann ohne probleme.. Der sollte die Flagge auf den Rücken tragen, weist du wie sowas geht? Wenn ja könntest du es mit bitte machen :/

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen