Beiträge von x0rYyy

    Moin, ich will die top10 ausfiltern, jedoch


    weder


    for(new j, k = 1; j<10; j++, k++)
    {
    if(TopKillerKills[j] < kills)
    {
    TopKillerName[k] = TopKillerName[j]; // ...
    TopKillerKills[k] = TopKillerKills[j]; // ...
    TopKillerTode[k] = TopKillerTode[j];


    TopKillerName[j] = name;
    TopKillerKills[j] = kills;
    TopKillerTode[j] = tode;
    }
    }


    noch


    for(new i=9, j=8; i>=0; i--, j--)
    {
    TopKillerName[i] = TopKillerName[j]; // ...
    TopKillerKills[i] = TopKillerKills[j]; // ...
    TopKillerTode[i] = TopKillerTode[j];

    TopKillerName[j] = name;
    TopKillerKills[j] = kills;
    TopKillerTode[j] = tode;
    }


    funktioniert, dieselbe Person hat dann 9x den 1. - 9. Platz und irgendein anderer hat dann den 10. Platz.


    aber so kriege ich es hin:


    if(TopKillerKills[0] < kills)
    {


    TopKillerName[1] = TopKillerName[0];
    TopKillerKills[1] = TopKillerKills[0];
    TopKillerTode[1] = TopKillerTode[0];


    TopKillerName[0] = name;
    TopKillerKills[0] = kills;
    TopKillerTode[0] = tode;
    }
    else if(TopKillerKills[1] < kills)
    {


    TopKillerName[2] = TopKillerName[1];
    TopKillerKills[2] = TopKillerKills[1];
    TopKillerTode[2] = TopKillerTode[1];


    TopKillerName[1] = name;
    TopKillerKills[1] = kills;
    TopKillerTode[1] = tode;
    }


    else if(TopKillerKills[2] < kills)
    {
    TopKillerName[3] = TopKillerName[2];
    TopKillerKills[3] = TopKillerKills[2];
    TopKillerTode[3] = TopKillerTode[2];


    TopKillerName[2] = name;
    TopKillerKills[2] = kills;
    TopKillerTode[2] = tode;
    }



    Liegt es an dem else? Und wie baue ich dass dann in den Loop ein... Kann ja sein, dass ich mir das alles schwerer mache, als es in wirklichkeit ist, aber ich erkenn den Fehler nicht, obwohl ich mich entsinne, diesen gleichen Denkfehler bereits einmal gehabt zu haben..


    MfG


    /edit1-2: Eingerückt..


    /edit3: Weiß niemand was ? :/

    Du versuchst ja dierekt in das ENum zu laden. Wenn du diese 3 sachen jetzt überspringen würdest, würde das die reihenfolge durcheinander bringen und es wird nicht mehr richtig geladen.

    Ich will ja nicht unbedingt, dass er die überspringt, sondern so lässt wie sie sind o.ä. Um halt die Sache weniger ressourcenfressender zu machen^^


    und btw.:
    Mein Enum geht ja weiter ( sind ja noch ca. 5 Sachen zusätzlich drinne ) werden die auch geladen? Das wäre ja dann sinnloses laden, ist dann die Methode, wo man alles einzeln macht, schneller und ressourcenschonender?

    Moin, habe folgendes Problem:


    Ich will Variablen nicht doppelt auslesen, name, passwort, ... sind ja bereits ausgelesen. Daher: Wie schaffe ich es, dass sscanf die ersten drei überspringt?


    Damit gehts, aber ladet IP, Username und Passwort mit: s[16]s[24]s[16]


    sscanf(string, "e<p<|>{i}s[16]s[24]s[16]iiiiiiiiiiiiS[128]S[128]S[20]>",pInfo[playerid]);


    Dann habe ich, da dies alles strings sind, einfach mal mit i angefangen:


    sscanf(string, "e<p<|>{i}iiiiiiiiiiiiS[128]S[128]S[20]>",pInfo[playerid]);


    Aber so sind alle Werte 0, und außerdem, falls das keine strings gewesen wären, also s[] i s[] hätte ich das auch nicht so hingekriegt.


    Gibt es denn eine andere Variante?


    Mein enum:


    enum Info
    {
    IP[16],
    Name[MAX_PLAYER_NAME],
    Passwort[16],
    Alter,
    Geschlecht,
    Geld,
    Kills,
    Tode,
    gTeam,
    gRank,
    Bank,
    Drugs,
    Uhr,
    AdminRank,
    Banned,
    BanGrund[32],
    AusfuehrenderAdmin[MAX_PLAYER_NAME],
    RegisterDatum,
    Registered,
    druguse,
    gInvite,
    logged,
    HatTutorial
    }


    So wird der String ( von der Query ) dann geladen:


    vollständige Textfelder ID IP Name Passwort Alter Geschlecht Geld Kills Tode gTeam gRank Bank Drugs Uhr AdminRank Banned BanGrund AusfuehrenderAdmin RegisterDatum
    1| |Namö |test |17 |0 |9600|50 |10 |7 |1 |0 |500 |0 |1337 |0 | | |0000-00-00 00:00:00


    Und wenn wir schon dabei sind, wie kann ich zb. einfach einzelne überspringen? Sagen wir, ich will IP nicht auslesen, Name aber schon und Passwort wieder nicht?


    MfG


    /edit: eingerrückt

    if(strcmp(cmdtext,"/weapons",true)==0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2,287.6984,-106.5030,1001.5156)) return SendClientMessage(playerid,GELB,"Du bist nicht am Pult");
    {
    ShowPlayerDialog(playerid,Waffenmenu,DIALOG_STYLE_LIST,"Waffen","Pistole\n M4\nAk47\nMP5\n","Auswählen","Abbrechen");
    }
    return 1;
    }


    Nach ner if Abfrage kein Semikolon ;)

    Ich denk ma du hast deine Variable so: new dm; ?!


    Mach sie so: new dm[MAX_PLAYERS];


    Dann änderst du jedes "dm" in dm[playerid]


    Dann, das unter OnPlayerDeath:


    if(dm[playerid] == 1) { SetPlayerPos(playerid,1304.8160,2107.2097,11.0156); return 1; }

    jop, warum machst du es aber auch unter ongamemodeinit?!
    Du willst doch das Auto dort speiochern wo es zum letzten mal war es er disconnected ist oder?
    Wenn ja mach das unter OnPlayerDisconnect^^

    new SpielerDatei[64];
    new String[128];
    new Name[MAX_PLAYER_NAME];
    new Geld = SpielerDatei[playerid][Bankgeld];
    GetPlayerName(playerid, Name, sizeof(Name));
    format(String, sizeof(String), "[Kontostand von %s]\nGeld: %d\nSparkasse", Name,Geld);
    ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, 0, "Sparkasse Kontostand", String, "Weiter","Weiter");