Beiträge von Cheevy.Shakur

    Also ich versteh das bei dir so du switchst direkt zum Spieler in die Kabine , also soll man den Spieler in der Kabine sehen.


    Das ganze geht halt eben nicht du kannst die Positionen des Spielers nicht setzen während er gerade in der Kamerafahrt ist bzw TogglePlayerSpectating ist auf 1.
    Dazu müsstest du einen Actor erstellen, damit das möglich ist oder


    du brichst die Kamerafahrt ab setzst mit SetSpawnInfo erst die Spawninformationen setzst TogglePlayerSpectating auf 0 und setzst die Kamera vor den Spieler via SetPlayerCameraPos und SetPlayerCameraLookAt

    Sicher das es nicht funktioniert, den Spieler in die Kabine zu setzten und dann InterpolateCameraPos etc.. mit zu nutzen?
    Wenn ich z.B SetSpawnInfo verwende, spawnt der Spieler an den Positionen unter OnPlayerSpawn..

    Funktioniert irgendwie nicht.

    • Timer bei OnPlayerRequestClass ruft Login/Register System auf -> Spectacting dort auf 1
    • Bei der Skin Auswahl dann erst SetSpawnInfo und dann Spectating auf 0
    • Spieler spawnt an den Koordinaten vom Public OnPlayerSpawn


    //Skin Auswahl
    SetSpawnInfo(playerid, 0, 0, 0,0,0,0,0,0,0,0, 0, 0 );
    TogglePlayerSpectating(playerid,0);
    InterpolateCameraPos(playerid, 1506.195678, -1580.983032, 14.677125, 1492.117309, -1571.259521, 14.386649, 5000);
    InterpolateCameraLookAt(playerid, 1504.332153, -1576.355224, 14.345337, 1489.328979, -1567.197387, 13.535666, 5000);
    SetPlayerPos(playerid,1490.3431,-1571.6420,13.5659);
    SetPlayerFacingAngle(playerid,217.1232);
    SetTimerEx("SkinAuswahl",5000,false,"i",playerid);

    Hallo,


    ich habe eine Funktion geschrieben, in der ich 4 verschiedene Sprites auswählen kann. Leider funktioniert nur Sprite 1, also 0. Bei den anderen kommt kein weiterer Sprite.
    Hier mal der Code:
    stock InfoText(playerid,overview[50],text[200],time,sprite)
    {
    if(!InfoTextState[playerid])
    {
    KillTimer(InfoBoxTimer[playerid]);
    TextDrawShowForPlayer(playerid,InfoTextdraw[0]);
    TextDrawShowForPlayer(playerid,InfoTextdraw[1]);
    if(sprite == 0)
    {
    PlayerTextDrawShow(playerid,InfoTextdrawSprite[playerid][0]);
    }
    else if(sprite == 1)
    {
    PlayerTextDrawShow(playerid,InfoTextdrawSprite[playerid][1]);
    }
    else if(sprite == 2)
    {
    PlayerTextDrawShow(playerid,InfoTextdrawSprite[playerid][2]);
    }
    else if(sprite == 3)
    {
    PlayerTextDrawShow(playerid,InfoTextdrawSprite[playerid][3]);
    }

    Hallo,


    ich habe einen sehr komischen Denkfehler im Script.
    Die Registrierung und Login auf basierenden Textdraws ist fertig, also kommt nun die Skin Auswahl.


    Man muss sich das so vorstellen

    • Spieler akzeptiert Nutzungsbestimmungen
    • InterpolateCameraPos und InterplateCameraLookAt folgen, welche im selbst gemappten Interior in die Kabine switchen
    • Spieler befindet sich nicht dort, obwohl ich mit SetPlayerPos arbeite (Virtuelle Welt ausgeschlossen)


    Klar, ich denke es ist ein kleiner Denkfehler, jedoch habe ich gerade echt 0 Plan.
    Hier mal die Pastebin ID, damit man vielleicht mal drüber schauen kann. (http://pastebin.com/qGcUyd6S)


    Ich lasse den Spieler nirgendwo spawnen, sondern gebe ihn direkt in den Spectating Modus und dann folgen auch schon die Textdraws.


    Hoffentlich kann wer helfen.


    MfG,
    Cheevy

    Hallo,


    ich habe ein Problem, dass der Spieler ohne Grund gekickt wird. (Wollte gerade mein Skin System schreiben, jedoch wird er gekickt.
    Hier mal der Code:
    //Dialoge zerstören lassen, da fertig mit Registrierung
    for(new i = 0; i<23; i++)
    {
    TextDrawHideForPlayer(playerid,StartTextdraw[i]);
    }
    PlayerTextDrawDestroy(playerid,LoginName[playerid]);
    PlayerTextDrawDestroy(playerid,TextdrawKreuzPassword[playerid]);
    PlayerTextDrawDestroy(playerid,TextdrawKreuzName[playerid]);
    PlayerTextDrawDestroy(playerid,TextdrawHakenPassword[playerid]);
    PlayerTextDrawDestroy(playerid,TextdrawHakenName[playerid]);
    PlayerTextDrawDestroy(playerid,LoginPasswort[playerid]);

    //Andere relevante Dinge
    Nutzungsbestimmungen[playerid] = -1;
    SpielerInfo[playerid][pEingeloggt] = 1;
    SavePlayer(playerid);

    //Skin Auswahl
    ClearChat(playerid,0);
    TogglePlayerSpectating(playerid,0);
    TogglePlayerControllable(playerid,0);
    SetPlayerPos(playerid,1490.3431,-1571.6420,13.5659);
    SetPlayerFacingAngle(playerid,217.1232);
    SetPlayerCameraPos(playerid,1491.8641,-1573.9424,14.5664);
    SetPlayerCameraLookAt(playerid,1490.3431,-1571.6420,13.5659);
    SetPlayerVirtualWorld(playerid,playerid);
    SendClientMessage(playerid,-1,"Skin Auswahl");


    Die Kick Funktion existiert nur in OnPlayerSpawn, welche aber nicht aufgerufen wird, hab das ganze mal geprintet.

    Hier bitte:
    //Spieler laden
    cache_get_field_content(0,"Geburtsdatum",SpielerInfo[extraid][pGeburtsdatum],MySQL,11);
    cache_get_field_content(0,"Email",SpielerInfo[extraid][pEmail],MySQL,64);
    SpielerInfo[extraid][pAlter] = cache_get_field_content_int(0, "Alter", MySQL);
    SpielerInfo[extraid][pEingeloggt] = cache_get_field_content_int(0, "Eingeloggt", MySQL);
    SpielerInfo[extraid][pSkin] = cache_get_field_content_int(0, "Skin", MySQL);
    SpielerInfo[extraid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", MySQL);
    SpielerInfo[extraid][pGeld] = cache_get_field_content_int(0, "Geld", MySQL);
    SpielerInfo[extraid][pLevel] = cache_get_field_content_int(0, "Level", MySQL);
    SpielerInfo[extraid][pEingeloggt] = 1;
    SetPlayerScore(extraid,SpielerInfo[extraid][pLevel]);

    //Andere Dinge
    TogglePlayerSpectating(extraid,0);
    TogglePlayerControllable(extraid,1);
    ClearChat(extraid,0);
    format(string,sizeof(string),"Willkommen {FFA000}%s %s{FEFEFE}, auf unserem Server {FFA000}"SERVERNAME"{FEFEFE}.",GetAdminRang(extraid),GetName(extraid));
    SendClientMessage(extraid,COLOR_WHITE,string);
    SpawnPlayer(extraid);

    Kannst du mir zufällig sagen, warum die Zeilen E-Mail und Geburtsdatum sowie Alter nach dem erneuten Login leer sind?


    Darauf war das per TV bezogen. Genauso ist manchmal eine Spalte auf 0 obwohl vorher was stand.
    Eine kleine Frage noch nebenbei, Eingeloggt wird nicht auf 1 gesetzt, setzte das ganze nach der Ladefunktion im Login.


    SpielerInfo[extraid][pEingeloggt] = 1;

    Ah, hier kam gerade nach dem X ten Versuch ein Print.

    Code
    [16:30:40] Setze skin für ID: 0 zu 212. (Cheevy)
    [16:30:44] Setze skin für ID: 1 zu 0. (Recible)


    Würdest du über die Ladefunktion per TV mal drüber schauen?
    Der Skin wird nicht gesetzt, obwohl in der Datenbank 212 steht.

    Code
    [17:20:19] Setze skin für ID: 1 zu 212. (Cheevy)

    Ok, gut. Er wird mir jedoch nicht gesetzt, jemand anderen schon. Ebenfalls erhalte ich die Nachricht ich sei ein Spieler, obwohl ich Rang 3 habe.
    cache_get_field_content(0,"Geburtsdatum",SpielerInfo[extraid][pGeburtsdatum],MySQL,11);
    cache_get_field_content(0,"Email",SpielerInfo[extraid][pEmail],MySQL,64);
    SpielerInfo[extraid][pAlter] = cache_get_field_content_int(0, "Alter", MySQL);
    SpielerInfo[extraid][pEingeloggt] = cache_get_field_content_int(0, "Eingeloggt", MySQL);
    SpielerInfo[extraid][pSkin] = cache_get_field_content_int(0, "Skin", MySQL);
    SpielerInfo[extraid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", MySQL);
    SpielerInfo[extraid][pGeld] = cache_get_field_content_int(0, "Geld", MySQL);
    SpielerInfo[extraid][pEingeloggt] = 1;
    SetPlayerSkin(extraid,SpielerInfo[extraid][pSkin]);


    format(string,sizeof(string),"Willkommen {FFA000}%s %s{FEFEFE}, auf unserem Server {FFA000}"SERVERNAME"{FEFEFE}.",GetAdminRang(extraid),GetName(extraid));
    SendClientMessage(extraid,COLOR_WHITE,string);


    stock GetAdminRang(playerid)
    {
    new rang[54];
    switch(SpielerInfo[playerid][pAdminlevel])
    {
    case 0:{rang="Spieler";}
    case 1:{rang="Supporter";}
    case 2:{rang="Administrator";}
    case 3:{rang="Projektleiter";}
    }
    return rang;
    }


    Wenn ich mich nun neu einlogge und dann wieder auslogge sind ebenso die Spalten E-Mail und Geburtsdatum leer.
    Woran liegt der Fehler?


    Jeffry

    Hi,


    meine Accounts werden nicht richtig geladen. (Adminlevel und Skin, z.B wird der Skin bei mir nicht geladen, bei wen anders schon)
    Hier mal die MySQL Log, wenn die nichts nützliches liefert, zeige ich ein wenig vom Code.


    //e: Push

    Hallo,


    ich habe ein Problem, dass ich sehr komisch spawne. Ich bin sozusagen im Himmel, mein Charakter ist irgendwie "verkrüppelt", sprich er sieht ganz komisch aus.
    Hier mal mein OnPlayerSpawn Public, AddPlayerClass befindet sich im Script! Spawnen lasse ich den Spieler nach dem Login per SpawnPlayer, wobei ja eigentlich OnPlayerSpawn aufgerufen wird.
    SetPlayerPos(playerid, 1958.33, 1343.12, 15.36);
    SetCameraBehindPlayer(playerid);


    AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0);

    Funktioniert, danke.
    Jedoch habe ich noch einen einzigen Fehler. Ich wollte abfragen, ob das Passwort richtig ist. (Dann sollten die jeweiligen Textdraws gesetzt werden)
    mysql_format(MySQL,string,sizeof(string),"md5('%e')",inputtext);
    SetPVarString(playerid,"Passwort",string);
    GetPVarString(playerid,"Passwort",Password,sizeof(Password));
    mysql_format(MySQL,query,sizeof query,"SELECT * FROM `"#SERVERTAG"_accounts` WHERE `Name` = '%e' AND `Passwort` = %s",GetName(playerid),Password);
    mysql_tquery(MySQL,query,"LoginRegisterAbfrage","siii",query,SQL_PASSWORDRIGHT,playerid,MySQL);


    case SQL_PASSWORDRIGHT:
    {
    switch(num_rows)
    {
    case 0:
    {
    PlayerTextDrawShow(extraid,TextdrawKreuzPassword[extraid]);
    }
    case 1:
    {
    PlayerTextDrawShow(extraid,TextdrawHakenPassword[extraid]);
    }
    }
    }


    Leider bleibt er immer nur bei dem einen Textdraw, anstatt es zu wechseln.

    Huhu,


    ich habe ein Problem. Hier wollte ich das Passwort vorerst in ein PVar speichern und es später direkt in den Query geben.
    new string[128];
    format(string,sizeof(string),"md5('%s')",inputtext);
    SetPVarString(playerid,"Passwort",string);


    Leider funktioniert das ganze irgendwie nicht..


    Hier der Query:
    new Password[32],query[100];
    GetPVarString(playerid,"Passwort",Password,sizeof(Password));
    mysql_format(MySQL,query,sizeof query,"SELECT * FROM `"#SERVERTAG"_accounts` WHERE `Name` = '%s' AND `Passwort` = '%s'",GetName(playerid),Password);
    mysql_tquery(MySQL,query,"LoginRegisterAbfrage","siii",query,SQL_LOADACCOUNT,playerid,MySQL);


    Jeffry