Rank liste... Hilfe beim Script

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
  • Hey Leute,


    Ich habe ein Problem und brauche dringend eure hilfe.
    Ich weis leider nicht wie ich aus 4 Werten den Wert mit
    der größten Summe als erstes im Chat anzeigen soll wen ich /ranks
    machen will. Ich habe folgende werte:


    Wert1 ( 1000 )
    Wert2 ( 920 )
    Wert3 ( 120 )
    Wert4 ( 400 )


    Die sind in einer INI gespeichert und werden immer upgadetet. Es soll halt
    der "Wert" mit der grösten Summe also der Zahl ( In diesem Beispiel "1000" bei "Wert1" )
    im Chat geordnen der Größe nach angezeigt werden. ^^


    Bitte um Hilfe! :)

  • Hier bitte, hab dir was programmiert ^^


    //Wenn der Boolean DESC WAHR ist, dann ordnet er die Zahlen aufsteigend, wenn der Boolean FALSCH ist, dann
    //absteigend.
    OrderIntArray(array[],length,bool:DESC=true)
    {
    #define MAX_ARRAY_SIZE (32) //Wieviele Zahlen es max. zum ordnen gibt. Je höher, desto mehr Arbeitsspeicher.
    if(length>MAX_ARRAY_SIZE) return false;
    new cache[MAX_ARRAY_SIZE],size=length,range,cnr=-2147483647,lnr=2147483646;
    for(new order;order!=size;order++)
    {
    for(range=0;range!=size;range++)
    {
    if((DESC&&array[range]>cnr&&array[range]<lnr)) cnr = array[range];
    else if(!DESC&&array[range]>cnr&&array[range]<lnr) lnr = array[range];
    }
    if(order>0&&cache[order-1]==(DESC?cnr:lnr)) break;
    cache[order]=(DESC?cnr:lnr);
    if(DESC) {lnr=cnr; cnr=-2147483647;}
    else {cnr=lnr; lnr=2147483646;}
    }
    for(new edit;edit!=size;edit++) array[edit]=cache[edit];
    return true;
    }


    Und hier eine kleine Verwendung mit deinen Zahlen


    new Werte[]={1000,920,100,400};


    main()
    {
    OrderIntArray(Werte,sizeof(Werte),false);
    for(new edit;edit!=sizeof(Werte);edit++) printf("WERT in Feld %d: %d",edit,Werte[edit]);
    }

    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!