Beiträge von Kaliber

    Was muss ich jetzt unter dem LoadAccount noch ändern?

    new string[128];
    mysql_format(dbhandle, string, sizeof(string), "SELECT * FROM user WHERE username='%e' LIMIT 1;", SpielerName(playerid));
    new Cache:result = mysql_query(dbhandle, string);
    cache_set_active(result);

    Das alles löschen.


    Vorrausgesetzt du verwendest jetzt den selben Query per mysql_tquery :)

    Danke es funktioniert nun wunderbar.

    Bitte mach keine Vollzitate, das ist störend.


    Und ich hatte noch einen kleinen Fehler in der Version, nimm die, die ich da jetzt gepostet hatte.


    Und zwar wenn ich im Taxi einsteige und den Preis eingebe wird es am falschen Taxi geupdatet.

    1. Du solltest noch checken ob der Preis auch gültig ist. also > 0 und < 99999 usw :D


    2.

    Vehicle[Taxis[vehicleid]][vehText]

    Das sieht komisch aus.


    Eventuell eher so: Vehicle[vehicleid][vehText]


    Aber ich hab keine Ahnung, wie du das Label setzt und was genau Vehicle ist und macht. Ich kann hier nur raten ^^

    [15:26:15] 5 | ArcadioN

    Ah ja, hab vergessen die Leeren zu skippen. //Edit: Noch was vergessen, schreib es so:


    bis ich In-Game bin, da ich es früher so gemacht habe unter DIALOG_REGISTER:
    "SetTimerEx("LoadAccount", 1500, false, "d", playerid);"

    ...Du solltest dir mal anschauen (Tutorials), was es bedeutet Dinge asynchron laden zu lassen.
    Du solltest unter DIALOG_REGISTER anstatt dem Timer einfach mysql_pquery oder mysql_tquery nutzen und dann kein mysql_query mehr im Callback.


    Du willst nämlich gar kein mysql_query nutzen, deshalb nutzt du ja die Cache Version.
    mysql_query lädt alles synchron, du willst es aber asynchron, sonst bringen dir auch die Neusten Plugins überhaupt nix.

    Ich bin Adminlevel 6 und mir wird Ingame anzeiegt das ich Communityhelfer helfer bin ? :o

    Bist du sicher, dass du das bist? :huh:


    Kannste ja leicht rausfinden, schreib mal die Schleife so:



    C
    for(new i=GetPlayerPoolSize(); i!=-1; i--)
    {
        if(!Spieler[i][pLoggedIn] || !Spieler[i][pAdminlevel]) continue;
        sort[c][0] = Spieler[i][pAdminlevel]-1, sort[c++][1] = i;
        printf("%d | %s",Spieler[i][pAdminlevel]-1,Spieler[i][pName]);
    }

    Und dann poste mal den Debug ausschnitt aus dem server_log :)

    Jetzt ist dies aber nicht mehr sortiert sprich,

    Achso du wolltest es sortiert, das musst du auch schreiben ^^ Denn bei deinem Code...war das auch nicht sortiert.


    Hol dir diese Include: https://raw.githubusercontent.…d-sort/master/md-sort.inc


    Und inkludiere die, anschließend kannst du das so machen:


    Ich hoffe es kann mir einer helfen.

    Hier mal etwas schöner:



    Dein Fehler war, dass du das SendClientMessage nicht in die Schleife gesetzt hattest :)

    Versuch mal:


    Du packst alle modelids von den Objekten in ein Array (in der Reihenfolge, wie du sie ausliest..also rot sollte am 0. index, gelb am 1. usw stehen)


    C
    new neons[] = {18647, ...};
    
    
    //Und dann so:
    neon1[i] = CreateObject(neons[Neon[i]-1], 0, 0, 0, 0, 0, 0);
    neon2[i] = CreateObject(neons[Neon[i]-1], 0, 0, 0, 0, 0, 0);
    AttachObjectToVehicle(neon1[i], 0.94, 0, -0.48, 0, 0, 0);
    AttachObjectToVehicle(neon2[i], -0.94, 0, -0.48, 0, 0, 0);

    Hmm, interessant, ich mach nicht soviel mit Angular, aber probier mal:


    Also mal vorne weg, schau mal deine Deklaration an:



    new TrunkInvGetRowItem[128][MAX_PLAYERS][MAX_ROWS];


    und nutzen tust du sie so:


    TrunkInvGetRowItem[playerid][r]


    Naa fällt dir ein Fehler auf? :)


    Du nutzt dein Array, als ob du es so deklariert hättest:


    new TrunkInvGetRowItem[MAX_PLAYERS][MAX_ROWS][128];

    Ist es falsch strmid zu nutzen?

    Sagen wir mal nicht falsch, aber ungünstig.


    Besser wäre hier, wie du schon erwähnt hast format oder noch besser, da dein String hier konstant ist einfach direkt setzen lassen.


    Der Grund, warum dein Format nicht funktioniert ist, dass du sizeof so verwenden musst, wenn du die 3te Dimension abfragst: sizeof(TrunkInvGetRowItem[][])


    Aber wie schon gesagt, einfach direkt setzen ist ja kein Problem:


    TrunkInvGetRowItem[playerid][r] = "Margherita";