Autowanteds 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

  • Function SetPlayerCriminal(playerid,declare,reason[])
    {
    if(IsPlayerConnected(playerid))
    {
    PlayerInfo[playerid][pCrimes] += 1;
    new turned[MAX_PLAYER_NAME];
    new turner[MAX_PLAYER_NAME];
    new turnmes[128];
    new wantedmes[128];
    new wlevel;
    strmid(PlayerCrime[playerid][pAccusedof], reason, 0, strlen(reason), 255);
    GetPlayerName(playerid, turned, sizeof(turned));
    if (declare == 255)
    {
    format(turner, sizeof(turner), "Unbekannt");
    strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
    }
    else
    {
    if(IsPlayerConnected(declare))
    {
    GetPlayerName(declare, turner, sizeof(turner));
    strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
    strmid(PlayerCrime[declare][pBplayer], turned, 0, strlen(turned), 255);
    strmid(PlayerCrime[declare][pAccusing], reason, 0, strlen(reason), 255);
    }
    }
    WantedLevel[playerid]++;
    wlevel = WantedLevel[playerid];
    format(turnmes, sizeof(turnmes), "Du hast ein Verbrechen begangen ( %s ). Zeuge: %s.",reason,turner);
    SendClientMessage(playerid, COLOR_LIGHTRED, turnmes);
    format(wantedmes, sizeof(wantedmes), "Momentanes Wantedlevel: %d", wlevel);
    SendClientMessage(playerid, COLOR_YELLOW, wantedmes);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop(i))
    {
    format(cbjstore, sizeof(turnmes), "HQ: Alle Einheiten: Reporter: %s",turner);
    SendClientMessage(i, TEAM_BLUE_COLOR, cbjstore);
    format(cbjstore, sizeof(turnmes), "HQ: Verbrechen: %s, Gesuchter: %s",reason,turned);
    SendClientMessage(i, TEAM_BLUE_COLOR, cbjstore);
    }
    }
    }
    }
    }



    Hallo ich habe eine Frage wie erstelle ich wen ein Spieler ein Spieler killt das er automatisch 2 Wanteds bekommt.
    Die nachricht soll dann so aussehn.



    Du hast ein Verbrechen begangen ( Mord. ) Zeuge: Niemand
    Monentanes Wantedlevel: %d


  • if(!IsPlayerCop(killerid) && IsPlayerCop(playerid))
    {
    SetPlayerWantedLevel(playerid,GetPlayerWantedLevel(killerid)+2);
    format(turnmes, sizeof(turnmes), "Du hast ein Verbrechen begangen ( Mord. ). Zeuge: Niemand.);
    SendClientMessage(playerid, COLOR_LIGHTRED, turnmes);
    format(wantedmes, sizeof(wantedmes), "Momentanes Wantedlevel: %d", wlevel);
    SendClientMessage(playerid, COLOR_YELLOW, wantedmes);
    }


    Kann das so stimmen :)?


    das die Cops keine Wanteds bekommen?

  • Die format in Zeile 4 kannste weglassen und direkt mit SendClientMessage ausgeben lassen da dort keine variablen übergeben werden. Ausserdem fehlt am ende ein " um den string zu beenden. Achte ausserdem darauf das killerid != INVALID_PLAYER_ID ist da es sonst zu Fehlern kommen kann gerade bei Arrays die MAXPLAYERS groß sind.

  • Macht ja schon eigentlich Sinn seine Funktion zu nutzen, die er oben mit angegeben hat. Eigentlich macht deine Funktion all das, was du möchtest - sofern die richtigen Parameter angegeben werden:


    SetPlayerCriminal(playerid,declare,reason[])


    playerid: Die SpielerID, die das Verbrechen begangen haben und die Wanteds erhalten soll.
    declare: Die SpielerID, die behauptet, dass playerid ein Verbrechen begangen hat. Für 255 ist der "Melder" Unbekannt.
    reason: Der Grund, wofür der Spieler verdächtigt wird und Wanteds bekommt.


    Wie schon richtig gesagt wurde, musst du die Funktion unter OnPlayerDeath aufrufen:


    if(killerid != INVALID_PLAYER_ID) SetPlayerCriminal(killerid, 255, "Mord");