Wantedvergabe per ClickPlayer...

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
  • Abend zusammen,
    hab ein Problem und zwar ist folgendes,
    wenn ich als Cop ein Wanted vergebe,
    wird zwar bei den jenigen Angezeigt: "Wanted erhalten X wegen Y " usw.


    Jedoch erhält er kein Wanted sondern der Polizist der es ausgestellt hat.


    Es läuft über OnPlayerClickPlayer


    hier mal ein case von der Vergabe:


    Spoiler anzeigen
    if(dialogid == DIALOG_COP)
    {
    if(IsACop(playerid))
    {
    if(response == 1)
    {
    new giveplayer[MAX_PLAYER_NAME];
    new sendername[MAX_PLAYER_NAME];
    new stringn[200];
    GetPlayerName(pVerbrecher[playerid],giveplayer,sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(SpielerInfo[pVerbrecher[playerid]][pJailed] > 0)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Spieler ist bereits im Gefängnis!");
    return 1;
    }
    switch (listitem)
    {
    case 0://Stvo
    {
    format(stringn,sizeof(stringn),"Du hast %s 1 Wanted wegen StVO Missachtung gegeben!",giveplayer);
    SendClientMessage(playerid, COLOR_YELLOW, stringn);
    SetPlayerWantedLevel(playerid,GetPlayerWantedLevel(playerid)+1);
    format(stringn,sizeof(stringn),"Du hast ein Verbrechen begangen: StVO Missachtung, Polizist: %s", sendername);
    SendClientMessage(pVerbrecher[playerid], COLOR_LIGHTRED, stringn);
    format(stringn,sizeof(stringn),"*Vergebene Wanteds: 1, Aktuelles WantedLevel: %d", WantedLevel[pVerbrecher[playerid]]);
    SendClientMessage(pVerbrecher[playerid],COLOR_YELLOW, stringn);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsACop(i))
    {
    format(stringn, sizeof(stringn), "%s wird gesucht, Verbrechen: StVO Missachtung, Polizist: %s, Vergebene Wanteds: 1", giveplayer, sendername);
    SendClientMessage(i, TEAM_BLUE_COLOR, stringn);
    }
    }
    }


    seht ihr hier einen Fehler?
    Wäre euch dankbar über eine Antwort

  • wenn ich jetzt
    new giveplayer[32] = strval(clickedplayerid);


    Dann bei den Befehl:
    SetPlayerWantedLevel(giveplayer, GetPlayerWantedLevel(playerid)+1);


    bekomme ich erstmal den Error zwecks clickedplayerid
    wenn ich das Definiere bekomme ich wieder diesen Error:
    error 035: argument type mismatch (argument 1)

  • Also erst ma tut das schon ein wenig weh aber hier mal dein code richtig

    if(dialogid == DIALOG_COP)
    {
    if(IsACop(playerid))
    {
    if(response == 1)
    {
    new giveplayer[MAX_PLAYER_NAME];
    new sendername[MAX_PLAYER_NAME];
    new stringn[200];
    GetPlayerName(pVerbrecher[playerid],giveplayer,sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(SpielerInfo[pVerbrecher[clickedplayerid]][pJailed] > 0)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Spieler ist bereits im Gefängnis!");
    return 1;
    }
    switch (listitem)
    {
    case 0://Stvo
    {
    format(stringn,sizeof(stringn),"Du hast %s 1 Wanted wegen StVO Missachtung gegeben!",giveplayer);
    SendClientMessage(playerid, COLOR_YELLOW, stringn);
    SetPlayerWantedLevel(clickedplayerid,GetPlayerWantedLevel(clickedplayerid)+1);
    format(stringn,sizeof(stringn),"Du hast ein Verbrechen begangen: StVO Missachtung, Polizist: %s", sendername);
    SendClientMessage(pVerbrecher[clickedplayerid], COLOR_LIGHTRED, stringn);
    format(stringn,sizeof(stringn),"*Vergebene Wanteds: 1, Aktuelles WantedLevel: %d", WantedLevel[pVerbrecher[clickedplayerid]]);
    SendClientMessage(pVerbrecher[clickedplayerid],COLOR_YELLOW, stringn);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsACop(i))
    {
    format(stringn, sizeof(stringn), "%s wird gesucht, Verbrechen: StVO Missachtung, Polizist: %s, Vergebene Wanteds: 1", giveplayer, sendername);
    SendClientMessage(i, TEAM_BLUE_COLOR, stringn);
    }
    }
    }





    //edit: einfach die playerid´s die auf den ANDEREN User fallen durch clickedplayerid ersetzen ;) mehr hab ich nicht gemacht


    public Inkompetenz
    {
    return 2;
    }

  • Hat hier schon irgendwer sein Hirn eingeschaltet ?
    Es gibt kein clickedplayer.
    Das sollte man normalerweise erkennen, dass das unter ondialogresponse ist.
    Zeig mal pls deinen onplayerclickplayer


    Beavis war der einzige, der irwas produktives gschriebn hat



    //achja freak, stimmt es muss dir wehtun diesen callback nicht zu erkennen

  • So hier mal der Public:


    Spoiler anzeigen
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    if(IsACop(playerid))
    {
    ShowUserDialog(playerid, DIALOG_COP,DIALOG_STYLE_LIST,"Verbrechen auswählen","StVO\nVerweigerung\nAlkohol am Steuer\nDrogenkonsum\nTelefonieren am Steuer\nFlucht\nWaffen Öffentlichkeit\nZielen auf Beamte\nBeamten/Zivil Angriff\nDrohungen\nMaterial Besitz\nDrogen Besitz\nWaffen ohne Schein\nBankraub\nBeamten/Zivil Mord\nSchießerei\nSachbeschädigung\nKidnapping\nDrohen mit Bombe\nPräsidentenmord\nPräsidenten Entführung\n","Auswählen","Beenden");
    pVerbrecher[playerid] = clickedplayerid;
    }
    return 1;
    }


    (e) hatte falschen public eingefügt :S

    Einmal editiert, zuletzt von ReborN ()