Ein neues Thema erstellen  Auf das Thema antworten  [ 137 Beiträge ]  Gehe zu Seite Vorherige 13 4 5 6 7 Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 25.11.2002, 22:42 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
nach ein wenig mehr rumprobieren glaube ich, dass der fehler nur kommt, wenn adminmod mit den zeilenumbrüchen rumpfuscht. wenn ich die datei selbet tippe gehts....bloss dass das sortieren auch nciht richtig funktioniert :(


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25.11.2002, 22:46 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Code:
for (j=iNumber-1;j>=0; j--){
	for (i=0;i<=j;i++){
		if(Data[i]>Data[i+1]){
			Buffer[0]=Data[0][i];
			Buffer[1]=Data[1][i];
			Data[0][i+1]=Data[0][i];
			Data[1][i+1]=Data[1][i];
			Data[0][i]=Buffer[0];
			Data[1][i]=Buffer[1];
		}
	}
}
Das müsste Bubblesort sein. Zumindest so ähnlich. Lohnt sich aber nur bei Arrays kleiner als 20, sonst steigt der Rechenbedarf. Ansonsten kannst Du Dir mal Quicksort ansehen.
Ich hab es jetzt nicht ausprobiert, aber das Prinzip müsste stimmen.
Über den Restcode schweige ich mal. Da wären noch einige optimierungswürdig Dinge. Schau erst mal, dass Du die Sortierung in den Griff bekommst. Aber eins schon vorweg: "Niemals WHILE in Verbindung mit statischen Felder ohne Abfangroutine verwenden!"

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25.11.2002, 22:58 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
den compile error hab ich wegbekommen, aber irgendwie isses das nicht. hier meine datei:
Code:
de_dust 4
de_cbble 3
cs_office 8
cs_italy 1
de_dust2 1
cs_assault 7
de_vertigo 6
1room 8
und was er draus macht


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25.11.2002, 23:07 
Benutzeravatar

Registriert: 24.11.2001, 01:00
Beiträge: 248
joa hier wird ja hart gearbeitet *gg*

Rinde hab mal nochen kleinen fehler glau bich gefunden

Undzwar kommt nich immer der Vote am ende der map also die anzeige kommte der sound auch nur nich immer die auswahl vom vote...

Und wenn die anzeige doch mal erscheint und man no change wählt kommt zum schluss *vote passed* und change map to due to vote..Also die map anzeige bleibt leer...

Wollte ich mal ebnd so sagen *g*

_________________
<werbung>

www.teamarab.de
62.4.81.251:27085 #teamarab.de | Doenerbude
62.4.74.200:27020 #teamarab.de | Muckibude
80.239.224.29:27700 - #teamarab.de ][ Muckibude | bY quado.net -

#teamarab.de @ Q - Net

</werbung>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25.11.2002, 23:13 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Ich glaube in meiner routine ist noch ein kleiner Bug drin. Muss wohl so lauten:
Code:
for (j=iNumber-1;j>0; j--){
   for (i=0;i<j;i++){
Probier's nochmal. Ansonsten musst Du mal das ganze Schritt für Schritt überlegen. Bubblesort ist nicht soo schwierig.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25.11.2002, 23:17 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
sieht aber genauso aus. naja, ich werd wohl für heute schluss machen. 4 stunden klausur morgen und ncoh nicht gelernt :roll:


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 12:54 

Registriert: 30.09.2002, 13:45
Beiträge: 10
hiho ich wollte wissen was ich einstellen muss das 5 min vor ende der map das plugin automatisch gestartet wird ? habe folgendes in meiner plugin.ini zurzeit
Code:
addons/adminmod/scripts/plugin_rindy_votemap.amx
addons/adminmod/scripts/plugin_base.amx
addons/adminmod/scripts/plugin_chat.amx
addons/adminmod/scripts/plugin_cheat.amx
addons/adminmod/scripts/plugin_CS.amx
# addons/adminmod/scripts/plugin_hldsld_mapvote.amx
addons/adminmod/scripts/plugin_message.amx
addons/adminmod/scripts/plugin_retribution.amx
addons/adminmod/scripts/plugin_spawn.amx
# addons/adminmod/scripts/plugin_TFC.amx
addons/adminmod/scripts/plugin_chicken_l.amx
addons/adminmod/scripts/plugin_sank_al.amx
greetz virus


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 15:42 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
admin_vote_autostart 1


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 17:03 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
blacky, besten dank für deine mühe, aber ich behalt meinen, der funzt jetzt nämlich
Code:
for(i=1;i<iNumber;i++) { 
    for(j=0;j<i;j++) { 
        if(Data[1][i] > Data[1][j]) { 
            Buffer[0] = Data[0][i]; 
            Buffer[1] = Data[1][i]; 
            for(k=i-1;k>=j;k--) { 
                Data[0][k+1] = Data[0][k]; 
                Data[1][k+1] = Data[1][k]; 
            } 
            Data[0][j] = Buffer[0]; 
            Data[1][j] = Buffer[j];  // <----- das muss 1 sein, nicht j
        } 
    } 
} 
klar dass das den error erzeugt wenn j = 2 ist

/edit: grml textformatierung in code tags geht nicht


Zuletzt geändert von Rinde am 26.11.2002, 17:05, insgesamt 1-mal geändert.

Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 17:03 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
wie sieht es aus mit der Sortier-Funktion :-)

Ich bastel vielleicht heute abend auch nochmal dran.

Bisher habe ich das 'while' rausgeworfen und mit einer Schleife von 0 bis max 249 (filesize) ersetzt.
habe in die Schleife ein strbreak rein gemacht. (sMap und sNominate, was ich zu iNominate per strtonum umwandle und in Data[0] benutze...) Das mit Deinem strtonum habe ich nicht verstanden...bzw. was ist wenn eine Map schon 11 (mehrstellige Zahl) Nominates hat...

Die Sortier-Funktion habe ich noch nicht verstanden (eure beiden Vorschläge funzen nicht)

Die Ausgabe der Sortierung habe ich auf 5 Zeilen begrenzt. Geht zur Zeit nicht, da die Sortierung der Data nicht geht...

Muss der Buffer nicht auch 2-Dimensional sein?? Buffer[0] ??? wie?? Größe 0?? nicht versteh...komisch das dann ein amx_error 4 entsteht?? :-)

Es gibt einen Thread, wo ich auch schon mal nach einer Sortierung Frage....und kompetente Leute haben geantwortet...
Nur leider bin ich nicht kompetent genug, um diese Vorschläge umzusetzen...

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 17:05 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
oh ja, die while funktion hab ich auch geändert
Code:
    new Data[2][250];
    new UserName[MAX_NAME_LENGTH];
    new LineData[MAX_DATA_LENGTH];
    new Outstring[255] = "Top voted maps:^n";
    new Line = 0;
    new i = 0;
    convert_string(HLUserName,UserName,MAX_NAME_LENGTH);
    for(Line=1;Line<=250;Line++) {
        if(readfile("addons/adminmod/statistics.txt",LineData,Line,MAX_DATA_LENGTH) == 1) {
            if(strlen(LineData) > 3 && strcount(LineData,' ') == 1 && LineData[0] != '#') {
                Data[0][i] = Line;
                Data[1][i] = strtonum(LineData[strchr(LineData,' ')+1]);
                i++;
            }
        } else {
            break;
        }
    }
    Sort(Data,i);
    for(i=0;i<g_Statistics && i<filesize("addons/adminmod/statistics.txt");i++) {
        readfile("addons/adminmod/statistics.txt",LineData,Data[0][i],MAX_DATA_LENGTH);
        snprintf(LineData,MAX_DATA_LENGTH,"^n  %i. %s",i+1,LineData);
        strcat(Outstring,LineData,255);
    }
    messageex(UserName,Outstring,print_tty);
    return PLUGIN_HANDLED;
}
ohja,
Data[1] = strtonum(LineData[strchr(LineData,' ')+1]);
kann ich dir erklären: LineData[x] ist der string LineData ab dem zeichen mit index x, LineData[0] wäre der komplette string. strchr gibt den index des ersten leerzeichens aus. d.h. der teil von LineData ab einem zeichen hinter dem ersten leerzeichen wird komplett in ne zahl umgewandelt.


Zuletzt geändert von Rinde am 26.11.2002, 17:08, insgesamt 1-mal geändert.

Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 17:08 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
darf nicht = 250 sein....oder? 250 ist die 0....

was ist mit dem strtonum...klappen dann die mehrstelligen Zahlen?

wie groß ist g_Statistic bei Dir?

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 17:09 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
mehrstellige zahlen sollten klappen.
250 = 0? gnaa hast recht.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 17:11 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
hihi..das war ja schnell editiert :-)

Nun dann werde ich es auch mal testen :-)

Wie mach ich das ganze jetzt mit einer Liste von Namen?

Meier
Müller
Schmitz
Peter
Karl
??

Die sollen richtig sortiert werden!

NACHTRAG:

Zur Optimierung sollten alle Nullwerte des Data[1] rausfliegen.

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 17:19 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Geht das auch?
Code:
new iLinemax=filesize(TextFile);
	for(i=0;i<iLinemax;i++){
		readfile(TextFile,LineData,i,MAX_DATA_LENGTH);
		strbreak(LineData,Map,Nominate,MAX_DATA_LENGTH);
		iNominate = strtonum(Nominate);
		if(iNominate!=0){
			Data[0][i] = i;
			Data[1][i] = iNominate;
		}
	}

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 17:21 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
dieses hier funzt jetzt sehr gut.
Code:
public admin_showstatistic(HLCommand,HLData,HLUserName,UserIndex) {
    new Data[2][251];
    new UserName[MAX_NAME_LENGTH];
    new LineData[MAX_DATA_LENGTH];
    new Outstring[255] = "Top voted maps:^n";
    new Line = 0;
    new i = 0;
    convert_string(HLUserName,UserName,MAX_NAME_LENGTH);
    for(Line=1;Line<251;Line++) {
        if(readfile("addons/adminmod/statistics.txt",LineData,Line,MAX_DATA_LENGTH) == 1) {
            if(strlen(LineData) > 3 && strcount(LineData,' ') == 1 && LineData[0] != '#') {
                Data[0][i] = Line;
                Data[1][i] = strtonum(LineData[strchr(LineData,' ')+1]);
                i++;
            }
        } else {
            break;
        }
    }
    Sort(Data,i);
    Line = min(g_Statistics,i);
    for(i=0;i<Line;i++) {
        readfile("addons/adminmod/statistics.txt",LineData,Data[0][i],MAX_DATA_LENGTH);
        snprintf(LineData,MAX_DATA_LENGTH,"^n  %i. %s",i+1,LineData);
        strcat(Outstring,LineData,255);
    }
    messageex(UserName,Outstring,print_tty);
    return PLUGIN_HANDLED;
}
es hat dieses file
Code:
de_dust 0
de_cbble 347
cs_office 82
cs_italy -13
de_dust2 17
cs_assault 7
de_vertigo 63
1room 89
anstandslos korrekt sortiert, obwohl g_Statistics grösser als die anzahl der maps war. immoment fallen mir keine verbesserungen mehr ein
und diese
Code:
Line = min(g_Statistics,i);
stellt sicher, dass die nullwerte rausfliegen.
noch was? achso, deine namen. willst du die alphabetisch sortieren oder wie?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 18:08 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
jep!

mit Sonderzeichen...(Clantags haben ja meist welche)

Ist aus meinem admin_look

Das Textfile LOOK.txt hat als Aufbau:

WONID Name

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 18:14 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
mmh, mit strings ist das schwieriger. mal sehen ob ich nachher noch zeit habe, aber erstmal muss ich zum cw


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 18:35 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Nee, nee, nee.

SDal, was passiert, wenn die Datei länger als 250 Zeilen lang ist? Nur mal so ne Frage.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 26.11.2002, 18:39 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
keine Ahnung...amx_error 4 nehme ich an. :-)

Aber hier zu Rindes Sortierung...ich habe mir den Code kopiert, aber bei mir sortiert er gar nichts...er nimmt den letzten Eintrag und Ende...

aber ich suche mal weiter...

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 137 Beiträge ]  Gehe zu Seite Vorherige 13 4 5 6 7 Nächste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"