Killstreak Frage

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
  • wie erweitere ich das nun ? :/ es buggt mometan daher hab ich es entfernt ..
    nach einem 3er Killstreak soll er einen 6er bekommen



    if(KillStreak[killerid] >= 3){
    format(text,sizeof(text),"[KILLSTREAK] Spieler %s dominiert einen 3er Streak Belohnung , 100HP",PlayerName(killerid));
    SendClientMessageToAll(COLOR_BLUE,text);
    SetPlayerHealth(killerid,100);
    KillStreak[killerid] = 3;

  • Mach es so, achte darauf das du die Variable beim Tod auf 0 setzt.
    KillStreak[killerid] ++;
    switch(KillStreak[killerid]){
    case 3:{
    format(text,sizeof(text),"[KILLSTREAK] Spieler %s dominiert einen 3er Streak Belohnung , 100HP",PlayerName(killerid));
    SendClientMessageToAll(COLOR_BLUE,text);
    SetPlayerHealth(killerid,100);
    }
    case 6:{
    format(text,sizeof(text),"[KILLSTREAK] Spieler %s dominiert einen 6er Streak Belohnung , 100HP",PlayerName(killerid));
    SendClientMessageToAll(COLOR_BLUE,text);
    SetPlayerHealth(killerid,100);
    }
    }

  • Mach's dir doch einfacher.


    Als erstes musst du die Variable für die den Spieler-Killstreak setzen.


    new killstreak[MAX_PLAYERS];


    Danach solltest du die Killstreak so setzen, dass der Spieler beim ein - und ausloggen wieder mit der Killstreak 0 beginnt.


    public OnPlayerConnect(playerid)
    {
    killstreak[playerid] = 0; // Setzt die Killstreak des Spielers auf 0!
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    killstreak[playerid] = 0;
    return 1;
    }


    Und nun kommen wir zu den eigenlichen Killstreaks.


    stock HandleKS(playerid, killerid) //
    {
    killstreak[playerid] = 0;
    killstreak[killerid] ++;

    new msg1[64], msg2[64], name1[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];


    GetPlayerName(playerid, name1, strlen(name1));
    GetPlayerName(playerid, name2, strlen(name2));


    format(msg1, strlen(msg1), "[KILLSTREAK] Die Killstreak vom Spieler %s hat hier nun ein Ende! ", name2, name1);
    format(msg2, strlen(msg2), "[KILLSTREAK] Spieler %s dominiert einen 3er Streak Belohnung , 100HP.", name2, killstreak[killerid]);


    SendClientMessageToAll(-1, msg1);
    SendClientMessageToAll(-1, msg2);


    switch(killstreak[killerid])
    {
    case 3:
    {
    //Nächster KillStreak.
    }
    case 6:
    {
    //Nächster KillStreak.
    }
    case 9: // Kannst die Nummern ändern wie du willst, welche hinzufügen oder auch entfernen.
    {
    //Nächster KillStreak.
    }
    }
    return 1;
    }


    Damit der Spieler die Killstreak (0) nicht ewig hat, setzen wir hier noch OnPlayerDeath.


    public OnPlayerDeath(playerid, killerid, reason)
    {
    HandleKS(playerid, killerid);
    return 1;
    }

  • Knolles Script kann man noch etwas schöner gestalten:


    KillStreak[playerid] ++;
    if (!(KillStreak[playerid] % 3)) {
    format(msg1, strlen(msg1), "[KILLSTREAK] Spieler %s dominiert mit einer %d-er Killstreak. Belohnung, 100HP", playerName(playerid), (KillStreak[playerid] / 3));
    SendClientMessageToAll(...);
    SetPlayerHealth(...);
    }


    So macht ers halt alle 3 Kills.
    Habs hier im Editor getippt, könnten also kleinere Fehler drin sein :p


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'