Killing spree

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
  • new string[120],name[MAX_PLAYER_NAME];
    GetPlayerName(killerid,name, sizeof(name));
    if(GetPVarInt(killerid,"Kills",3))
    {
    format(string,sizeof(string),"%s hat mit 3Kills ein Killing Spree! ",name);
    SendClientMessageToAll(0xFFA000FF,string);
    if(GetPVarInt(killerid,"Kills",3))


    C:\Users\Plyer\Desktop\mysql\gamemodes\dm12.pwn(175) : warning 202: number of arguments does not match definition

  • Schau dir doch einfach im Wiki die Funktion GetPVarInt an: http://wiki.sa-mp.com/wiki/GetPVarInt


    Wenn man ein wenig Englisch kann müsste die Fehlermeldung auch verständlich sein: "Anzahl an Argumenten stimmt nicht mit Definition überein".. Heißt, du hast zuviele Argumente/Parameter (nenn's wie du willst).


    Also:


    if(GetPVarInt(killerid,"Kills") == 3) { //...


    //EDIT:
    Ja, mit der Funktion kannst du es auch machen.

  • Um es noch einmal zu erklären:
    GetPVarInt(killerid,"Kills")liefert dir genau einen Wert zurück. Diesen kannst du dann vergleichen, zuweisen oder whatever damit anstellen.
    z.B. mit einem einfachen == 3 als Vergleich, oder z.B.new blubb = GetPVarInt(killerid,"Kills") als Zuweisung.
    Wenn du die '3', also den Vergleichswert, in die Funktion reinschreibst (wie bei deinem ersten Versuch if(GetPVarInt(killerid,"Kills",3)) ) weiß die Funktion ja nicht was sie mit der 3 anstellen soll.


    Wie eXchange irgendwo sagte (sinngemäß): Erst die Logik des ganzen beherrschen, dann die Befehle pauken und anwenden ;)
    Einfache Vergleiche sind das so ziemlich häufigste was du in deinem Script schreibst, das solltest du eig. im Schlaf beherrschen. Genau wie die Verwendung von Variablen.
    Hättest es ja z.B. auch so machen können:
    new blubb = GetPVarInt(killerid,"kills");
    if(blubb == 3)
    {


    Viele Wege führen nach Rom ;)

  • if(havekills(killerid,3))
    {
    format(string,sizeof(string),"%s hat mit 3Kills ein Killing Spree! ",name);
    SendClientMessageToAll(0xFFA000FF,string);
    GivePlayerMoney(killerid,1000);
    }
    else
    {
    if(havekills(killerid,6))
    {
    format(string,sizeof(string),"%s dominiert mit 6 Kills! ",name);
    SendClientMessageToAll(0xFFA000FF,string);
    GivePlayerMoney(killerid,3000);
    }
    }
    }

  • Ja klar, weil du doch prüfst, ob der Spieler 3 Kills hat. Wenn der Spieler 4 Kills hat, oder 5 Kills, oder auch 20 Kills, hat er immernoch > 3 Kills. ;)


    Bzw, du hast nicht nur ne Abfrage mit 3 Kills, sondern auch 6 Kills. Da wird das so nicht wirklich was. Frag dann lieber auf ob der Spieler wirklich Kills == 3 hat, und nicht Kills >= 3. Dann brauchst du auch nichts auf 0 zu setzen.