Beiträge von Maximilian

    Hallo Breadfish
    und herzlich Willkommen zu meinem zweiten Tutorial!


    In diesem Tutorial werde ich euch zeigen, wie man in einem
    TDM/DM Gamemode eine Nachricht einbindet, die
    anzeigt das ein Spieler einen Kill gemacht hat.


    Was benötigen wir dafür?
    -Grundkenntnisse
    -Geduld
    -Einen DM GM


    Nun geht es auch schon los!
    Als erstes müssen wir ganz oben im Script folgendes definieren

    new PlayerTotalKills[MAX_PLAYERS] = 0;

    PlayerTotalKills = Damit die Kills später auch ausgelesen werden können


    Dann können wir direkt in den Public OnPlayerDeath gehen und dort
    zwei string erstellen, einen für den Namen und einen zum auslesen

    new Name[128], string[128]

    Name = Der Name des Spielers denn wir gleich herausfinden
    string = Der eigentliche string für die Wiedergabe des ganzen
    Nun müssen wir noch den Namen herausfinden:

    new Name[128], string133[32];
    GetPlayerName(killerid, Name, sizeof(Name));

    GetPlayerName = Um den Namen herauszufinden bzw, auszulesen
    killerid = Steht für den Spieler der dann später in dem GamText erscheint.
    Name = Unser definierter Name
    sizeof(Name) = liest die Größe des Namnes aus
    Dann , damit die Nachricht wieder von vorn beginnt wenn der Spieler gestorben ist,
    müssen wir folgendes hinzufügen:

    new Name[128], string133[32];
    GetPlayerName(killerid, Name, sizeof(Name));
    PlayerTotalKills[killerid]++;
    PlayerTotalKills[playerid] = 0;

    PlayerTotalKills[killerid]++ = Damit die Kills ausgelesen werden und er nicht immer die selbe Nachricht bekommt
    PlayerTotalKills[playerid] = 0 = Damit die Nachricht des gekillten Spielers wieder von vorn beginnt.
    Gut, nun sind wir schon einen großen schritt weiter.
    Nun müssen wir abfragen wie viele Kills der Spieler hat, damit die Nachricht abgesendet wird.
    Das machten wir mit einer einfachen if Schleife:

    new Name[128], string133[32];
    GetPlayerName(killerid, Name, sizeof(Name));
    PlayerTotalKills[killerid]++;
    PlayerTotalKills[playerid] = 0;
    if(PlayerTotalKills[killerid] == 1) {




    }

    if(PlayerTotalKills[killer] == 1) { = Er fragt ab ob der Spieler einen Kill hat.
    Wenn dies so ist, wird der Gametext versendet.
    Im Inhalt enthalten ist der string für die Nachricht
    und diesen setzen wir nun ein

    new Name[128], string133[32];
    GetPlayerName(killerid, Name, sizeof(Name));
    PlayerTotalKills[killerid]++;
    PlayerTotalKills[playerid] = 0;
    if(PlayerTotalKills[killerid] == 1) {
    format(string, sizeof(string), "~r~%s `s erster Kill", Name);
    }

    format = Formatiert den string
    string = Das ist der oben definierte string der nun ausgelesen werden muss
    sizeof(string) = Die Größe des strings
    %s = Der String , in diesem fall der Name
    %i = Ein Integer, gilt für Namen und Zahlen
    %d = Dezimalzahl
    Gut, damit dies nun auch wiedergeben wird,
    brauchen wir den GameTextForAll.
    Dies wenden wir wie folgt an:

    new Name[128], string133[32];
    GetPlayerName(killerid, Name, sizeof(Name));
    PlayerTotalKills[killerid]++;
    PlayerTotalKills[playerid] = 0;
    if(PlayerTotalKills[killerid] == 1) {
    format(string, sizeof(string), "~r~%s `s erster Kill", name);
    GameTextForAll(string, 6000,3);
    }

    GameTextForAll = Dieser Text wird wie ein Textdraw angezeigt nur immer mittig
    und in einer bestimmten Zeit, in diesem Fall 6 Sekunden.
    string = Der string den wir oben definiert haben
    3 = Die Schriftart, diese kannst du hier aussuchen
    Nun, sind wir mit dem ersten fertig und könne als Feinheit noch folgendes hinzufügen

    new Name[128], string133[32];
    GetPlayerName(killerid, Name, sizeof(Name));
    PlayerTotalKills[killerid]++;
    PlayerTotalKills[playerid] = 0;
    if(PlayerTotalKills[killerid] == 1) {
    format(string, sizeof(string), "~r~%s `s erster Kill", name);
    GameTextForAll(string, 6000,3);
    GivePlayerMoney(killerid,1000);
    format(string, sizeof(string), "Du hast nun %d Dollar.", GetPlayerMoney(killerid));
    SendClientMessage(killerid, 0xFFFFFFFF, string);
    }

    GivePlayerMoney = Diesem Spieler eine bestimmte Menge geld geben
    killerid = Die ID/Name des Killers der das Geld bekommt
    1000 = Die Menge an Geld die er bekommt
    GetPlayerMoney = Um das Geld des Spielers abzufragen
    SendClientMessage = Dem Spieler eine Nachricht senden
    0xFFFFFFFF = Der Farbcode


    Nun zum Pastebin
    da es sonst zu lang werden würde.
    Der Rest ist sowieso das selbe.


    Ich hoffe das Tutorial hat euch geholfen.


    Kritik und Verbesserungsvorschläge sind erwünscht.


    Mfg
    think_good


    //Edit Pastebin aktualisiert

    ja gut ich auch nur: ich habs im urlaub ohne gta gescriptet.
    Desweiteren hab ich noch keinen eerlebt,
    Der in seinen credits samp und gta hat.
    //Edit Coypright Hinzugefügt

    Ja, morgen komm höchst wahrscheinlich das nächste Update mit neue Features wie einem
    Report System
    Rcon Commands
    Mapping
    /stats
    Flugzeug das geklaut werden muss damit das gegnerische Team punkte erhält

    Hallo Breadfish,


    hiermit möchte ich meinen ersten Gamemode vorstellen.
    Dieses Gamemode basiert auf einem alten Lieblingsserver meinserseits der leider umgebaut wurde.
    Als ich im Urlaub war kam ich dann auf diese Idee und habe innerhalb von 4 Tagen diesesn Gamemode begonnen.
    Er wird von mir des öfteren geupdatet da noch viele dazu kommt.


    [tabmenu]


    [tab='Screenshots']
    Hier ein paar Screenshots von der Map
    (Nicht sehr viel gemappt.. kommt noch)
    http://www7.pic-upload.de/10.04.12/itw5rlny9x2n.png
    http://www7.pic-upload.de/10.04.12/jk557vu7y64.png
    http://www7.pic-upload.de/10.04.12/2sqakpme8bx.png
    http://www10.pic-upload.de/10.04.12/lvuf68xngjiw.png
    http://www7.pic-upload.de/10.04.12/514336avn7z6.png
    [tab='Commands']
    Normale Personen:
    /help
    /credits
    /team
    /afk
    /back
    /regeln
    /admins
    /serverinfo
    /faq
    /shop


    Admins:
    /ban
    /kick
    /makeadmin
    /teamkill //Zu aktivieren und deaktivieren des Antiteamkills
    /ahelp
    [tab='Infos']
    Dieses Script darf und wird nicht verkauft.
    Sollte es jedoch im Marktplatz angeboten werden,
    Bitte ich euch, mich zu informieren.
    Dies ist ein Teamdeathmatch Script welches zu 80% Selfmade ist.
    Ich werde weiterhin daran arbeiten und Updates veröffentlichen,
    die neue Commands, Maps oder ähnliches enthalten.
    [tab='Download']
    Pastebin
    Pwn + Amx
    Komplettpaket
    [tab='Credits']
    Credits gehen an -S-...kill.exe<3_ftw für sein Login/Register System
    Danke sehr
    [tab='Coypright']
    Der Name des Servers MUSS verändert werden.

    Airport Wars von Maximilian Beck steht unter einer Creative Commons Namensnennung 3.0 Unported Lizenz.
    Beruht auf einem Inhalt unter http://www.sa-mp.de.
    Über diese Lizenz hinausgehende Erlaubnisse können Sie unter http://www.sa-mp.de erhalten
    [/tabmenu]




    Ich danke euch für eure Aufmerksamkeit
    Kritik ist ebenso wie Verbesserungsvorschläge erwünscht
    //Edit BITTE COPYRIGHT BEACHTEN


    Mr.T

    Hallo Breadfish,


    ich habe nun eine Lösung für die Textdraws gefunden.
    Jedoch komme ich nicht weiter.
    Es sollen die Kills ausgelesen werden und es klappt einfach nicht.
    Es wird immer auf 0 gesetzt

    public Killer(playerid)
    {
    new Kills1 = Spieler[playerid][Kills];
    new namestr[100], spname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, spname, sizeof(spname));
    format(namestr, sizeof(namestr), "%s führt mit %i Kills",spname, Kills1);
    SendClientMessageToAll(BLAU, namestr);
    return 1;
    }




    Errors gibt es keine.
    Desweiteren bräuchte ich mal einen Code dafür, das ausgelesen wird wer nun 5 Kills hat.
    Dann soll per GameTextForAll ein Text wiedergeben werden wo sein namen angegeben wird.