Gang Duels.. Oder ähnliches "Gangwar"

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
  • Liebe Breadfisher..
    Ich hab mein Reallife Server bald fertig. Nur leider haben die Gangs nichts zu tun. Also währe es Langweilig :wacko: :thumbdown:


    Nun will ich es so machen, dass wenn ein Gangmitglied jemand anderen Tötet, dass die Fraktionskasse ein wenig Geld bekommt. 20$ reichen da auch schon. :whistling:


    Ich hab es mir sowas ähnliches vorgestellt: ( Ich kenne die Commands nicht, deswegen schreibe ich Texte )
    new Fraktion1
    new Fraktion2
    if(Fraktion= 1[member] kills a Fraktion = 2[member])
    {
    FraktionsKasse[fraktion1] += 20;
    FraktionsKasse[fraktion2] -= 20;
    }

    Und das halt mit jeder Fraktion. Braucht ihr jetzt nicht alle auflisten. 1 Beispiel reicht.
    Wüsste da jemand was?


    Freue mich über jede Antwort.
    Gruß. 8)


    //edit : kleine Korrektur um Code.

  • Hier mal ein kleines Beispiel:
    stock GetPlayerFrac(playerid)
    {
    if(PlayerInfo[playerid][pLeader] != 0) //im Godfather, musst du an dein Script anpassen
    {
    return PlayerInfo[playerid][pLeader]; //das Auch anpassen
    }
    return PlayerInfo[playerid][pMember]; //das auch anpassen
    }
    so jetzt kommen wir zu der Kasse
    Unter:
    public OnPlayerDeath(playerid, killerid, reason)
    Packen wir jetzt deinen Code:
    if(PlayerInfo[playerid][member] == 1 && PlayerInfo[killerid][member] == 2)
    {
    //mit unserer Funktion oben bekommt man die Fraktion des Spielers raus
    FraktionsKasse[GetPlayerFrac(killerid)] += 20; //Killer bekommt 20$ auf die FKasse
    FraktionsKasse[GetPlayerFrac(playerid)] -= 20; //der Tote verliert 20$ aus der Fkasse
    }
    Bei Fragen einfach melden!


    Es wird niemals so viel gelogen wie vor der Wahl, während des Krieges und nach der Jagd.

    - Otto von Bismarck
    -

  • Habs nun so :
    stock GetPlayerFrac(playerid)
    {
    if(PlayerInfo[playerid][pLeader] != 7)
    return PlayerInfo[playerid][pLeader];
    }
    return PlayerInfo[playerid][pMember];
    }


    if(PlayerInfo[playerid][pMember] == 7 && PlayerInfo[killerid][pMember] == 6)
    {
    //mit unserer Funktion oben bekommt man die Fraktion des Spielers raus
    FraktionsKasse[GetPlayerFrac(killerid)] += 20; //Killer bekommt 20$ auf die FKasse
    FraktionsKasse[GetPlayerFrac(playerid)] -= 20; //der Tote verliert 20$ aus der Fkasse
    }


    Kommt aber 1 Error :
    warning 209: function "GetPlayerFrac" should return a value



    Währe es auch möglich alle Gang Fraktionen in den einen Code zu Quetschen und dann sowas drauß zu machen :


    if(PlayerInfo[playerid][pMember] == PlayerFraktion && PlayerInfo[killerid][pMember] == KillerFraktion)
    {
    //mit unserer Funktion oben bekommt man die Fraktion des Spielers raus
    FraktionsKasse[GetPlayerFrac(KillerFraktion)] += 20; //Killer bekommt 20$ auf die FKasse
    FraktionsKasse[GetPlayerFrac(PlayerFraktion)] -= 20; //der Tote verliert 20$ aus der Fkasse
    }


    Hab da an New gedacht..


  • stock GetPlayerFrac(playerid) //Die Änderst du nicht
    {
    if(PlayerInfo[playerid][pLeader] != 0)
    {
    return PlayerInfo[playerid][pLeader];
    }
    return PlayerInfo[playerid][pMember];
    }

    dann machst du einfach noch ne abfrage rein!
    stock IsPlayerInFrac(playerid,fracid)
    {
    if(PlayerInfo[playerid][pMember] == fracid || PlayerInfo[playerid][pLeader] == fracid)
    {
    return 1;
    }
    return 0;
    }
    Unter:
    public OnPlayerDeath(playerid, killerid, reason)

    Wir fragen ab ob der Killer und der Tote in einer Gang ist! z.B. Gang IDs sind 5,6,7
    if(IsPlayerInFrac(killerid,5) || IsPlayerInFrac(killerid,6) || IsPlayerInFrac(killerid,7))
    {
    if(IsPlayerInFrac(playerid,5) || IsPlayerInFrac(playerid,6) || IsPlayerInFrac(playerid,7))
    {
    if(GetPlayerFrac(playerid) == GetPlayerFrac(killerid)) return 1; //wenn die gangmember sich gegenseitig killn soll nichts mit dem geld passieren
    FraktionsKasse[GetPlayerFrac(playerid)] += 20;
    FraktionsKasse[GetPlayerFrac(playerid)] -= 20;
    }
    }


    Es wird niemals so viel gelogen wie vor der Wahl, während des Krieges und nach der Jagd.

    - Otto von Bismarck
    -