Allgemeine nachricht aber wie ?

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,


    ich möchte das mir eine nachricht geschickt wird sobald ich 3 kills hab nicht beim spawnen nicht beim sterben allgemein geleich nach dem dritten kill aber bei welchem public muss ich das reinschreiben ??
    weil den befehl hab ich schon nur weiß ich nicht so der rein muss


    mfg Varg

  • also ich hab

    forward Killsnachricht();
    SetTimer("Killsnachricht",2000,1);


    public Killsnachricht()
    {
    if(Kills[playerid] == 3)
    {
    SendClientMessage(playerid,Color_Grün,"Du hast nun eine 3er abschusserie /killstreak1 zum einlösen");
    return 1;
    }
    }


    dann kommen paar error error
    error 017: undefined symbol "playerid"
    error 017: undefined symbol "playerid"
    warning 209: function "Killsnachricht" should return a value

  • :huh: Also das ist echt eine merkwürdige Logik...
    Ich merke schon mit Tipps wird das nichts. Ink hat dir schon einen super Hinweis gegeben.



    //OnPlayerDeath
    new kills[MAX_PLAYERS];
    if(killerid != INVALID_PLAYER_ID)
    {
    kills[killerid]++;
    if(kills[killerid] == 3)
    {
    SendClientMessage(playerid,FARBE,"wuhu!! Endlich 3Kills");
    kills[killerid] = 0;
    return 1;
    }
    }




    Dürfte klappen.

  • Das würde doch nicht gehen.


    Es muss eine stelle geben wo z.b ein PVar auf 3 gesetzt wird.


    Mach ein Pvar bei jedem Tod tuh immer +1.


    Danach überprüf bei jedem kill ob der pvar stand auf 3 ist.
    Danach lass die nachricht bei dem user annkommen und stell den wert von dem pvar wieder auf 0.


    Wenn du das nicht machen kannst sag bescheid ich könnt dir schnell was basteln.


    //Edit:Rechtschreib fehler verbessert.


    MFG K44n

    Ich Scripte nicht mehr!
    Signatur zuletzt Aktualiesiert:11.07.2012





    MFG K44n

  • nein würde es nicht weil ich habe ja killstreaks und da hab ich eine variable für anzahl der kills die wird beim tod auf 0 gesetzt
    und das geht ja dann noch weiter also nicht nur bei 3 ;D

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Onplayerconnect:
    SetPVarInt(playerid,"forspreeKills",0);


    [pwn]onplayerdeath:
    SetPVarInt(killerid, "forspreeKills", GetPVarInt(killerid, "forspreeKills") +1);
    SetPVarInt(playerid,"forspreeKills",0);
    new string[120],name[MAX_PLAYER_NAME];
    GetPlayerName(killerid,name, sizeof(name));
    if(havekills(killerid,3))
    {
    format(string,sizeof(string),"%s hat mit 3Kills ein Killing Spree!(+30hp/+1500$) ",name);
    SendClientMessageToAll(0xFFA000FF,string);
    }
    else
    {
    if(havekills(killerid,6))
    {
    format(string,sizeof(string),"%s dominiert mit 6 Kills!(+50hp/+3000$) ",name);
    SendClientMessageToAll(0xFFA000FF,string);
    }
    }
    return 1;
    }


    stock havekills(playerid,anzahl)
    {
    if(GetPVarInt(playerid,"forspreeKills")==anzahl)return 1;
    return 0;
    }

  • warum immer bei on player death das soll doch nicht kommen wenn ich sterbe oO
    wenn ich bei onplayerdeath ne abfrage mach ob er 3 kills hat und dann SendClientMessage dann ist das doch ob er 3 kills hat wenn er stirbt oder versteh ich das falsch ?

  • SetPVarInt(killerid, "forspreeKills", GetPVarInt(killerid, "forspreeKills") +1);
    Wenn der Spieler(<- also Killerid) jemande gekillt hat füge bei forspreeKills für killerid 1 hinzu.
    & bei 3Kills bekommt er ne Nachricht das durch den Stock , den dieser Fragt diese Kills ab.


    EDIT : Playerid ist der , der gestorben ist & killerid der jemand gekillt hat.

  • hmm kapier ich nicht ;D
    ich hab das so:

    new killstreak[MAX_PLAYERS];
    new Kills[MAX_PLAYERS];


    onplayerdeath



    Kills[killerid] += 1;
    Kills[playerid] = 0;
    killstreak[playerid] = 0;


    onplayercommand


    if(!strcmp(strget(cmdtext, 0), "/killstreak1"))
    {
    if(Kills[playerid] == 3)
    {
    if(killstreak[playerid] == 0)
    {
    SetPlayerHealth(playerid,100);
    killstreak[playerid] = 1;
    SendClientMessage(playerid,0x00FF00FF,"Du hast die Killstreakserie eingelöst");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000FF, "Du hast nicht genug Kills [3]");
    return 1;
    }
    }

    if(!strcmp(strget(cmdtext, 0), "/killstreak2"))
    {
    if(Kills[playerid] == 5)
    {
    if(killstreak[playerid] == 1)
    {
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    SendClientMessage(playerid,0x00FF00FF,"Du hast die Killstreakserie eingelöst");
    killstreak[playerid] = 2;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000FF, "Du hast nicht genug Kills [5]");
    return 1;
    }
    }








    is halt nicht eingerückt
    da will ich dann ne nachricht bekommen das ich mitbekommt ja jetzt hab ich 3 kills ;D

  • ne du hast das falsch verstanden :D ich müsste dann anstatt
    killstreak[killerid] = 1;
    SendClientMessage machen damit ich ja die nachricht bekomme das Killstreak wird ja durch den befehl auf 1 gesetzt

  • onplayercommand ? dann muss der Spieler ein Command eingeben um das eingezeigt zu bekommen ?!
    & Internet hat dir doch die vorlage gegeben



    //onplayerdeath


    Kills[killerid] += 1;
    Kills[playerid] = 0;
    killstreak[playerid] = 0;
    new string[120],name[MAX_PLAYER_NAME];
    GetPlayerName(killerid,name, sizeof(name));
    if(Kills[killerid] == 3) //Killerid < Der der den Spieler gekillt hat...
    {

    format(string,sizeof(string),"%s hat mit 3Kills ein Killing Spree!(+30hp/+1500$) ",name);
    killstreak[killerid] = 1;
    SendClientMessageToAll(0xFFA000FF,string);
    }

    Einmal editiert, zuletzt von Saboh ()

  • neeein bei command is der killstreak also wenn ich 3 kills habe mach ich /killstreak1 dann fragt er ab hab ich 3kills wenn ja wird mein leben auf 100 gesetet.
    und dass von internet geht nicht -.-