Beiträge von malE

    Also ich hab es momentan so:

    SetPlayerCameraPos(playerid, Kamera[i][k_X], Kamera[i][k_Y], Kamera[i][k_Z]);
    SetPlayerCameraLookAt(playerid, Kamera[i][k_RotX], Kamera[i][k_RotY], Kamera[i][k_RotZ]);


    Und die PlayerCamera wird wieder so gesetzt, wie im Bild von meinem Beitrag zuvor.

    Diese Funktionen benutze ich bereits.
    Soll ich anstatt den X Y Z Koords RotX, RotY, RotZ einfügen oder wie und wenn in welche Funktion von den beiden.


    Kleines Beispiel:


    Ich möchte die CameraPos haben wo die Kamera hinschaut, Bild.
    Aber letztendlich passiert das, Bild.
    Die RotX Koord der Kamera ist leicht verändert, gibt es irgendeine Möglichkeit womit ich mit SetPlayerCameraPos() oder SetPlayerCameraLookAt() auch die Rots setzen kann?

    Kann mir jemand erklären wie ich diese Funktion benutzen kann, siehe Bild.
    Denn ich möchte, dass ein Spieler eine Kamera ( Objekt ) bewegen und rotieren kann.
    Damit er letztendlich sozusagen durch die Kamera schauen kann mit SetPlayerCameraPos().


    Ich hoffe ihr habt verstanden, was ich meine.

    Wie funktionierte nochmal, dass man zwischen zwei MySQL-Anbindungen switchen kann.

    #if SwitchMySQL == 1
    /*#define MYSQL_HOST ""
    #define MYSQL_USER ""
    #define MYSQL_PASS ""
    #define MYSQL_DBSE ""
    #endif
    #if SwitchMySQL == 2
    #define MYSQL_HOST ""
    #define MYSQL_USER ""
    #define MYSQL_PASS ""
    #define MYSQL_DBSE ""
    #endif

    Wenn du dir ein Beispiel an meinem Beispiel nimmst, würdest du vielleicht selbst weiter kommen.
    Habs nicht getestet.


    z.B so!
    OnGameModeInit

    SetTimer("UpdateWeizen", 1000, true);



    forward UpdateWeizen();
    public UpdateWeizen()
    {
    for(new i=0; i < sizeof(Weizen); i++)
    {
    if(Weizen[i][w_Objekt] == -1)continue;
    Weizen[i][w_Zustand] +=5;
    if(Weizen[i][w_Zustand] 10){
    DestroyObject(Weizen[i][w_Objekt]), CreateObject(ID, Weizen[i][w_X], Weizen[i][w_Y], Weizen[i][w_Z]+0.15, 0.0, 0.0, 0.0); // So "wächst" die Pflanze
    }
    }
    }



    enum enum_Weizen
    {
    w_ID,
    w_Besitzer[MAX_PLAYER_NAME],
    w_Objekt, // Die Pflanze
    Float:w_X,
    Float:w_Y,
    Float:w_Z,
    w_Zustand // Dafür das die Pflanzen wachsen
    }
    new Weizen[100][enum_Weizen];

    Man läd auf einen Root etc, nie seine .pwn Datei hoch, nur seine .amx.
    Außerdem sollte man diesen Schnipsel im Script immer drin haben, der lässt nämlich einen deCompiler crashen.


    Es sieht eigentlich alles korrekt aus.

    ocmd:showrangnames(playerid)
    {
    new string[145];
    if(sInfo[playerid][fraktion] == 0)return SendClientMessage(playerid, -1, "Du bist in keiner Fraktion.");
    if(sInfo[playerid][rang] != 5)return SendClientMessage(playerid, -1, noaccess);
    new fID = sInfo[playerid][fraktion];
    format(string,sizeof(string),"%s\n%s\n%s\n%s\n%s\n%s", fInfo[fID][frang1], fInfo[fID][frang2], fInfo[fID][frang3], fInfo[fID][frang4], fInfo[fID][frang5], fInfo[fID][frang6]);
    ShowPlayerDialog(playerid, DIALOG_RANGNAMES, DIALOG_STYLE_LIST, "Fraktionsränge", string, "Ändern", "Schließen");
    return 1;
    }

    Versuchs mal so.


    public LoadFraktionRangs()
    {
    print("LoadFraktionRangs - wurde aufgerufen");
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields);
    if(!num_rows)return print("LoadFraktionRangs - num_rows = 0");
    for(new i = 0; i < num_rows; i++)
    {
    new result[92];
    cache_get_field_content(0, "rangname1", result);
    format(fInfo[i][frang1], 92, result);
    cache_get_field_content(0, "rangname2", result);
    format(fInfo[i][frang2], 92, result);
    cache_get_field_content(0, "rangname3", result);
    format(fInfo[i][frang3], 92, result);
    cache_get_field_content(0, "rangname4", result);
    format(fInfo[i][frang4], 92, result);
    cache_get_field_content(0, "rangname5", result);
    format(fInfo[i][frang5], 92, result);
    cache_get_field_content(0, "rangname6", result);
    format(fInfo[i][frang6], 92, result);

    printf("Step 1: LoadFraktionRangs - rangname1: %s",fInfo[i][frang1]);
    printf("Step 2: LoadFraktionRangs - rangname2: %s",fInfo[i][frang2]);
    printf("Step 3: LoadFraktionRangs - rangname3: %s",fInfo[i][frang3]);
    printf("Step 4: LoadFraktionRangs - rangname4: %s",fInfo[i][frang4]);
    printf("Step 5: LoadFraktionRangs - rangname5: %s",fInfo[i][frang5]);
    printf("Step 6: LoadFraktionRangs - rangname6: %s",fInfo[i][frang6]);
    }
    return print("LoadFraktionRangs - wurde geladen");
    }

    Versuchs mal so.

    Lädst du die Rangnamen nicht beim Laden der Fraktion in eine Variable?
    Dann könntest du nämlich einfach die Variable benutzen zum auslesen.

    @xCurry
    Ich weiß zwar nicht genau was du meinst, aber ich habe mal dir ein Code geschrieben.
    So habe ich dich verstanden ( siehe Code ).
    Am besten du testest es inGame einmal und sagst mir dann bescheid, wenn musst du es vielleicht noch ein wenig anpassen.
    Das Objekt, welches erstellt wird ist eine kleine grüne Pflanze.


    Es ist nur ein Beispiel Code, d.h es ist auf nichts angepasst.


    http://pastebin.com/ETXDP0Yr