/camera Probleme oO

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
  • Also mein Problem ist schwer zu erklären..
    Ich hab hier den Befehl /camera.
    Mit dem Befehl kann man die Playerkamera dann zu verschiedenen Standpunkten verschieben, wie bei echten
    Kameras halt.
    Und der Ort von dem aus ich /camera mache liegt, sagen wir, in der Wüste.
    Wenn ich jetzt einen Ort reingescriptet habe, der weit von der Wüste entfernt ist (z.B. das LSPD), dann werden die Texturen nicht
    geladen.
    Das konnte ich lösen, indem ich es so reingescriptet habe, dass wenn du jetz z.B. /camera 5 machst, dich 10 Meter unters
    LSPD geportet wirst. Mit dieser Lösung wurden die Texturen geladen.
    Jedoch zeigt er mir jetzt an (wenn ich Kamera wechseln will, z.B. von /camera 5 zu /camera 8), dass ich am Kontrollzentrum sein muss.
    Das ist deswegen geschehen, dass ich 10 Meter unters LSPD geportet wurde.
    Ich hoffe mir kann jetzt jmd. weiterhelfen, dass ich (egal wo ich bin, aber trotzdem man nur am CP /camera machn kann!) auf die Kameras zugreifen kann^^
    Ich poste hier noch den Scriptteil, falls ihn jmd. braucht.
    if(strcmp(cmd, "/camera", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pLeader]== 13)
    {
    if(!PlayerToPoint(4.0,playerid,-441.3912,2593.4473,47.9643))
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist nicht im Kontrollzentrum !");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "BENUTZUNG: /camera [number 1 - 9] (0 = AUS)");
    return 1;
    }
    new number = strval(tmp);
    if(number < 0 || number > 9) { SendClientMessage(playerid, COLOR_GREY, " Camera Number can't be below 1 or above 6 !"); return 1; }
    TogglePlayerControllable(playerid, 0);
    GetPlayerPos(playerid, Unspec[playerid][Coords][0],Unspec[playerid][Coords][1],Unspec[playerid][Coords][2]);
    if(number == 1) { SetPlayerCameraPos(playerid, 118.1011,1931.3221,22.5527); SetPlayerCameraLookAt(playerid, 98.9656,1920.9819,18.2180); }
    else if(number == 2)
    {
    SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, -384.0906,2455.7146,57.1729); SetPlayerCameraLookAt(playerid, -454.6434,2444.4929,47.8664);
    SetPlayerPos(playerid, -384.0906,2455.7146,37.1729);
    }
    else if(number == 3) { SetPlayerCameraPos(playerid, -375.5078,2572.4436,48.0439); SetPlayerCameraLookAt(playerid, -373.3245,2555.3127,39.1375);
    SetPlayerPos(playerid, -375.5078,2572.4436,28.0439);
    }
    else if(number == 4) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, -313.5163,2489.6052,62.3611); SetPlayerCameraLookAt(playerid, -350.6290,2510.4980,36.3124);
    SetPlayerPos(playerid, -313.5163,2489.6052,62.3611);
    }
    else if(number == 5) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, 1515.3293,-1689.2743,19.2422); SetPlayerCameraLookAt(playerid, 1536.3868,-1660.9712,13.5469);
    SetPlayerPos(playerid, 1515.3293,-1689.2743,5.2422);
    }
    else if(number == 6) {
    SetPlayerCameraPos(playerid, 1515.5198,-1642.0814,19.2422); SetPlayerCameraLookAt(playerid, 1534.4851,-1683.7422,13.3828);
    SetPlayerPos(playerid, 1515.5198,-1642.0814,5.2422);
    SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    }
    else if(number == 7) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, 1175.4746,-962.5681,50.6797); SetPlayerCameraLookAt(playerid, 1213.5614,-922.4760,42.9271);
    SetPlayerPos(playerid, 1175.4746,-962.5681,35.6797);
    }
    else if(number == 8) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, 1235.1565,-743.5441,97.5103); SetPlayerCameraLookAt(playerid, 1247.2988,-766.9556,92.1002);
    SetPlayerPos(playerid, 1235.1565,-743.5441,77.5103);
    }
    else if(number == 9) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, 1251.6777,-785.9006,93.2916); SetPlayerCameraLookAt(playerid, 1244.3627,-767.7976,91.9526);
    SetPlayerPos(playerid, 1251.6777,-785.9006,70.2916); }
    else if(number == 0)
    {
    SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    MedicBill[playerid] = 0;
    TogglePlayerControllable(playerid, 1);
    SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pModel], Unspec[playerid][Coords][0], Unspec[playerid][Coords][1], Unspec[playerid][Coords][2], 10.0, -1, -1, -1, -1, -1, -1);
    SpawnPlayer(playerid);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " You are not a Cop / Soldier !");
    return 1;
    }
    }
    return 1;
    }


    Hoffe auf Antworten^^
    Und irgendwie ist das Problem schwer zu schildern, deshalb sieht der Text so komisch aus^^


    MfG,
    Pain

  • Hey,


    sorry ich kann dein Problem nicht beheben,denn ich bin noch dabei alles zu lernen (scripten und so..) .
    Allerdings habe ich eine Frage bezüglich den Kameras:
    Kann mir einer mal genau erklären welche Funktion
    was genau tut und jeweils vllt ein Bsp geben ??


    Wäre echt nett.Für mich bitte eine Erklärung für Vollidioten xD


    MfG MAPPER

  • xD wieso schreibst du was hier rein wennn du nicht scripten kannst ? :) (war Spaß)

    [FGR] First German Reallife

    is back!!

    Sonntag, 06-02-2011

    Server Eröffnung!

    :P

  • Sry ich schau so selten hier in dieses UnterForum ^^ Also deine Lösung ist ein Bool


    new bool:UsingCamera[MAX_PLAYERS];


    public OnPlayerConnect(playerid)
    {
    UsingCamera[playerid] = false;
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmd, "/camera", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pLeader]== 13)
    {
    if(UsingCamera[playerid] == false && !PlayerToPoint(4.0,playerid,-441.3912,2593.4473,47.9643))
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist nicht im Kontrollzentrum !");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "BENUTZUNG: /camera [number 1 - 9] (0 = AUS)");
    return 1;
    }
    new number = strval(tmp);
    if(number < 0 || number > 9) { SendClientMessage(playerid, COLOR_GREY, " Camera Number can't be below 1 or above 6 !"); return 1; }
    TogglePlayerControllable(playerid, 0);
    GetPlayerPos(playerid, Unspec[playerid][Coords][0],Unspec[playerid][Coords][1],Unspec[playerid][Coords][2]);
    UsingCamera[playerid] = true;
    if(number == 1) { SetPlayerCameraPos(playerid, 118.1011,1931.3221,22.5527); SetPlayerCameraLookAt(playerid, 98.9656,1920.9819,18.2180); }
    else if(number == 2)
    {
    SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, -384.0906,2455.7146,57.1729); SetPlayerCameraLookAt(playerid, -454.6434,2444.4929,47.8664);
    SetPlayerPos(playerid, -384.0906,2455.7146,37.1729);
    }
    else if(number == 3) { SetPlayerCameraPos(playerid, -375.5078,2572.4436,48.0439); SetPlayerCameraLookAt(playerid, -373.3245,2555.3127,39.1375);
    SetPlayerPos(playerid, -375.5078,2572.4436,28.0439);
    }
    else if(number == 4) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, -313.5163,2489.6052,62.3611); SetPlayerCameraLookAt(playerid, -350.6290,2510.4980,36.3124);
    SetPlayerPos(playerid, -313.5163,2489.6052,62.3611);
    }
    else if(number == 5) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, 1515.3293,-1689.2743,19.2422); SetPlayerCameraLookAt(playerid, 1536.3868,-1660.9712,13.5469);
    SetPlayerPos(playerid, 1515.3293,-1689.2743,5.2422);
    }
    else if(number == 6) {
    SetPlayerCameraPos(playerid, 1515.5198,-1642.0814,19.2422); SetPlayerCameraLookAt(playerid, 1534.4851,-1683.7422,13.3828);
    SetPlayerPos(playerid, 1515.5198,-1642.0814,5.2422);
    SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    }
    else if(number == 7) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, 1175.4746,-962.5681,50.6797); SetPlayerCameraLookAt(playerid, 1213.5614,-922.4760,42.9271);
    SetPlayerPos(playerid, 1175.4746,-962.5681,35.6797);
    }
    else if(number == 8) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, 1235.1565,-743.5441,97.5103); SetPlayerCameraLookAt(playerid, 1247.2988,-766.9556,92.1002);
    SetPlayerPos(playerid, 1235.1565,-743.5441,77.5103);
    }
    else if(number == 9) { SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    SetPlayerCameraPos(playerid, 1251.6777,-785.9006,93.2916); SetPlayerCameraLookAt(playerid, 1244.3627,-767.7976,91.9526);
    SetPlayerPos(playerid, 1251.6777,-785.9006,70.2916); }
    else if(number == 0)
    {
    SetPlayerPos(playerid, -441.3912,2593.4473,47.9643);
    UsingCamera[playerid] = false;
    MedicBill[playerid] = 0;
    TogglePlayerControllable(playerid, 1);
    SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pModel], Unspec[playerid][Coords][0], Unspec[playerid][Coords][1], Unspec[playerid][Coords][2], 10.0, -1, -1, -1, -1, -1, -1);
    SpawnPlayer(playerid);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " You are not a Cop / Soldier !");
    return 1;
    }
    }
    return 1;
    }
    return 0;
    }


    Wenn du fragen bezüglich dem hast, bitte stellen...

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • :O
    Ich hätte wirklich nicht gedacht, dass so ein kleiner bool so vie machen kann :o
    Ich bin dir vielmals dankbar^^
    Also man definiert einen bool-Wert und legt fest, dass er am Anfang false ist.
    Und wenn man außerdem /camera machen will, nicht an den Koordinaten ist und der bool-Wer false ist, zeigt er eine Fehlermeldung an.
    Soweit so gut.
    Wenn man jedoch an den Koordinaten ist und /camera macht, wird der Wert auf true gesetzt und man kann /camera benutzen.
    Da der Wert die ganze Zeit true bleibt, muss er auch nicht die ganze Zeit die Koordinaten am Kontrollzentrum abfragen^^
    Eine Frage hätt ich noch:
    dieses &&, heißt es, dass alle Bedinungen erfüllt werden müssen oder nur eine der Bedinungen?


    Und nochmal großes Danke dir :D


    MfG,
    Pain

  • also zB:


    if( Bedienung1 && Bedienung2) //Da müssen beide erfüllt sein


    aber bei


    if( Bedienung1 || Bedienung2) //Bedeutet, dass nur eine Erfüllt sein muss

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!