|
|
Files in Cod2 |
serthy
Codemeister
Dabei seit: 29.07.2010
Beiträge: 628
|
|
hey
ich hoffe ihr könnt mir weiterhelfen, seid mitunter die letzte hoffnung!
und zwar geht es darum:
ich möchte ein paar dinge in files speichern bzw aus ihnen lesen
d.h. in klartext
ich speichere z.b. meine kills in einem file auf dem server ab und wenn ich wieder auf den server komme, soll es mir die kills laden (quasi eine art statistik)
ich bekomme files bereits geschrieben und (wahrscheinlich) auch geöffnet
wenn ich zuhause normal cod2 starte und auf neuen server starten gehe, macht es fast alles wie es soll, es legt mit meine kills in ein file
und zwar in den ordner main/scriptdata
das ganze sollte auch auf einen normalen gamesserver gehen, tut es allerdings nicht
ich hab einen fs_game ordner mit meinen mod drin, den auch aufgerufen (mod geht im spiel) allerdings erstellt es mir keinen file
könnt ihr mir da weiterhelfen?
im prinzip wäre der unterschied von dem server und meinem pc nur das der server "+dedicated 2" und mein pc "+dedicated 0" ist
EDIT:
files lesen geht nur mit dedicated 2! die datei wird automatisch erstellt
hier eine kleine beschreibung:
fileNum = openFile( filename , modus )
> fileNum = nummer des geöffneten files >= 0, falls -1, konnte die datei nicht geöffnet werden
> filename = name der datei zB. test.txt
> modus = ie soll die datei geöffnet werden? ("read","write","append" nur möglich, hier bitte bei google nachsehen was die einzelnen bewirken in der C programmierung)
argCount = fReadLn( fileNum )
> fReadLn() muss immer angewendet werden, es liest die nächste zeile aus
> argCount = wie viele argumente (von komma getrennte strings) sich in einer zeile befinden, bei -1 ist die datei zuende, kann nur im modus "read" benutzt werden
element = fGetArg( fileNum , argNum )
>fGetArg() liest ein argument aus, das in der zeile an der stelle argNum steht
closed = closeFile( fileNum )
> schliest die geöffnete datei
> closed = bei -1 fehler bei closefile()
> sollte immer benutzt werden, da es sonst zu einem error kommt
hier mal ein ganz kleines beispiel:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
|
test()
{
// eine neue datei erstellen im "write"-modus
file = openFile( "test.txt" , "write" );
if( file == -1 ) // wenn fehler, hier abbrechen
{
iprintln( "Fehler beim erstellen der Datei!" );
return;
}
//nun existiert die datei, also lass uns etwas reinschreiben!
text1 = "Ich bin die erste Zeile in der Datei!";
text2 = "Ich bin die zweite Zeile in der Datei!";
text3 = "Ich bin die dritte Zeile in der Datei!";
text4 = "und ich komme nach einem Komma in der dritten Zeile!";
// "\n" ist eine neue Zeile
fprintln( file , text1 + "\n" + text2 + "\n" + text3 );
fPrintLn( file , text4 );
closed = closeFile( file ); // schliese die datei!
if( closed == -1 ) // fehler beim schließen?
iprintln( "Fehler beim schließen der Datei!" );
// und jetzt lass uns das wieder auslesen :)
file = openFile( "test.txt" , "read" ); // öffne die datei test.txt im read-modus
if( file == -1 ) // wenn fehler, hier abbrechen
{
iprintln( "Fehler beim öffnen der Datei!" );
return;
}
lines = fReadLn( file ); // wie viele argumente in der ersten zeile?
while( lines != -1 ) // solange wir nicht am ende der datei angekommen sind...
{
for( i = 0 ; i < lines ; i++ )
{
text = fGetArg( file , i ); // ...lies die elemente aus der datei...
iprintln( text ); // ...und gib sie auf dem screen aus
}
lines = fReadLn( file );
}
closed = closeFile( file ); // schliese die datei!
if( closed == -1 ) // fehler beim schließen?
iprintln( "Fehler beim schließen der Datei!" );
} |
|
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von serthy: 13.03.2012 21:16.
|
|
|
|
|
|
|
|
Impressum ||Datenschutzerklärung
|