Spec / Beobachten Problem

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
  • X( Ich stehe grade auf meiner Leitung^^ finde grade echt denn Fheler nicht also hier mal der Schnippsl..


    dcmd_spec(playerid,params[])
    {
    new giveid,pName[24],str[128];
    GetPlayerName(giveid, pName, 24);
    if(IsPlayerAdmin(playerid)){
    if(sscanf(params,"d",giveid))return SendClientMessage(playerid,COLOUR_RED,"BENUTZE: /spec [Spieler-ID]");
    if(!IsPlayerConnected(giveid))return SendClientMessage(playerid,COLOUR_RED,"* Spieler nicht gefunden!");
    format(str, 128, "* Du beobachtest nun %s", pName);
    SetCameraBehindPlayer(giveid);
    SendClientMessage(playerid,COLOUR_YELLOW, str);
    }
    else return SendClientMessage(playerid, COLOUR_RED, "* Du bist kein Admin!");
    return 1;
    }


    Er schreibt mir dann Du beobachtest nun , aber es passiert nix , und ich bin gerade zu doof um denn Fehler zu erkennen woran liegt es das ich nicht beobachten kann ? ?(

  • Das setzt lediglich die Kamera von SpielerID "i" zurück (hinter ihn) ;)


    Du musst (wenn der Spieler zu Fuß unterwegs ist) PlayerSpectatePlayer benutzen.
    Wenn sich der Spieler in nem Fahrzeug befindet, PlayerSpectateVehicle stattdessen verwenden.


    Wichtig ist, dass du vorher dem Spieler mit TogglePlayerSpectating(also der, der spectatet)mit eben dieser Funktion das Spectaten "aktivierst".



    Mögliches Beispiel aus der SAMP Wiki:


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

  • Habs raus war ein riesen Denkfehler ^^ fals es sonst noch wer braucht hier :


    if(strcmp(cmd,"/spec",true)==0)
    {
    if(IsPlayerAdmin(playerid))
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_YELLOW, "BENUTZE: /spec [Spieler-ID]");
    return 1;
    }
    if(strval(tmp) == playerid) {
    SendClientMessage(playerid, COLOR_YELLOW, "Du kannst Dich nicht selber beobachten !");
    return 1;
    }
    giveplayerid = strval(tmp);
    if(!IsPlayerConnected(giveplayerid)) {
    format(string, sizeof(string), "ID (%d) Ist kein Aktiver Spieler",giveplayerid);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    return 1;
    }
    TogglePlayerSpectating(playerid, 1);
    SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid));
    SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid));
    if (IsPlayerInAnyVehicle(giveplayerid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(giveplayerid));
    else PlayerSpectatePlayer(playerid, giveplayerid);
    return 1;
    }