Scheiß Debuger
Moderator: Flashy
-
- Alpha-Squad
- Beiträge: 1593
- Registriert: 01 Feb 2002, 19:22
- Kontaktdaten:
Scheiß Debuger
kann mir mal einer Erklären was der debuger mit illegal use of the type as an expression meint
übersetzt kommt da nur müll raus
bitte es ist sehr wichtig denn das ist ca 70 % aller Errors die kommen
übersetzt kommt da nur müll raus
bitte es ist sehr wichtig denn das ist ca 70 % aller Errors die kommen
Führer der SoS (soldiers of shadow)
Enominis Satanis
Die Your God is Dead
Behold Satans Rise
(Action)Gamer für Gewalt und Terror
Enominis Satanis
Die Your God is Dead
Behold Satans Rise
(Action)Gamer für Gewalt und Terror
Sicher, dass du nicht vielleicht Compiler statt Debugger meinst?shadow the deat hat geschrieben:kann mir mal einer Erklären was der debuger mit illegal use of the type as an expression meint
Du könntest ja mal die entsprechenden Zeilen aus dem Quelltext ins Forum kopieren. So ganz ohne Quelltext zu raten, warum das Programm nicht läuft, ist nicht schön.
Some scientists claim that hydrogen, because it is so plentiful, is the basic building block of the universe. I dispute that. I say there is more stupidity than hydrogen, and that is the basic building block of the universe.
(Frank Zappa)
(Frank Zappa)
-
- Alpha-Squad
- Beiträge: 1593
- Registriert: 01 Feb 2002, 19:22
- Kontaktdaten:
ok mach ich
thx ja ich meinte den debuger des compiler
[PHP]BOOLEAN ReadInWeaponStats()
{
FILE *CSV;
CSV = fopen("TABLEDATA\\Weapons.csv", "r");
while((fscanf(CSV,"%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
WEAPONTYPE.uiIndex,WEAPONTYPE.szWeaponName,WEAPONTYPE.ubWeaponClass,
WEAPONTYPE.ubWeaponType,WEAPONTYPE.ubCalibre,WEAPONTYPE.ubReadyTime,
WEAPONTYPE.ubShotsPer4Turns,WEAPONTYPE.ubShotsPerBurst,
WEAPONTYPE.ubBurstPenalty,WEAPONTYPE.ubBulletSpeed,WEAPONTYPE.ubImpact,
WEAPONTYPE.ubDeadliness,WEAPONTYPE.bAccuracy,WEAPONTYPE.ubMagSize,
WEAPONTYPE.usRange,WEAPONTYPE.usReloadDelay,WEAPONTYPE.ubAttackVolume,
WEAPONTYPE.ubHitVolume,WEAPONTYPE.sSound,WEAPONTYPE.sBurstSound,
WEAPONTYPE.sReloadSound,WEAPONTYPE.sLocknLoadSound,
WEAPONTYPE.bBaseAutofireCost,WEAPONTYPE.bAutofireShotsPerFiveAP)) != EOF )
fclose(CVS);
return 0;
}[/PHP] ich verwende den CSV
es kommt immer im Zusammenhang mit WEAPONTYPE.uiIndex
erstmal für die Hilfe
thx ja ich meinte den debuger des compiler
[PHP]BOOLEAN ReadInWeaponStats()
{
FILE *CSV;
CSV = fopen("TABLEDATA\\Weapons.csv", "r");
while((fscanf(CSV,"%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
WEAPONTYPE.uiIndex,WEAPONTYPE.szWeaponName,WEAPONTYPE.ubWeaponClass,
WEAPONTYPE.ubWeaponType,WEAPONTYPE.ubCalibre,WEAPONTYPE.ubReadyTime,
WEAPONTYPE.ubShotsPer4Turns,WEAPONTYPE.ubShotsPerBurst,
WEAPONTYPE.ubBurstPenalty,WEAPONTYPE.ubBulletSpeed,WEAPONTYPE.ubImpact,
WEAPONTYPE.ubDeadliness,WEAPONTYPE.bAccuracy,WEAPONTYPE.ubMagSize,
WEAPONTYPE.usRange,WEAPONTYPE.usReloadDelay,WEAPONTYPE.ubAttackVolume,
WEAPONTYPE.ubHitVolume,WEAPONTYPE.sSound,WEAPONTYPE.sBurstSound,
WEAPONTYPE.sReloadSound,WEAPONTYPE.sLocknLoadSound,
WEAPONTYPE.bBaseAutofireCost,WEAPONTYPE.bAutofireShotsPerFiveAP)) != EOF )
fclose(CVS);
return 0;
}[/PHP] ich verwende den CSV
es kommt immer im Zusammenhang mit WEAPONTYPE.uiIndex
erstmal für die Hilfe
Führer der SoS (soldiers of shadow)
Enominis Satanis
Die Your God is Dead
Behold Satans Rise
(Action)Gamer für Gewalt und Terror
Enominis Satanis
Die Your God is Dead
Behold Satans Rise
(Action)Gamer für Gewalt und Terror
Was ist denn WEAPONTYPE? Hast du eventuell ein struct mit dem Namen WEAPONTYPE definiert und gar keine Variable dieses Typs angelegt?shadow the deat hat geschrieben: es kommt immer im Zusammenhang mit WEAPONTYPE.uiIndex
Es müsste übrigens am Ende fclose(CSV); heissen.
Some scientists claim that hydrogen, because it is so plentiful, is the basic building block of the universe. I dispute that. I say there is more stupidity than hydrogen, and that is the basic building block of the universe.
(Frank Zappa)
(Frank Zappa)
-
- Bravo-Squad
- Beiträge: 575
- Registriert: 14 Mär 2003, 21:32
- Kontaktdaten:
Howdy Rowdies!
Also wenn du die Bear's Pit-Dateien meinst, ist eigentlich CVS und nicht CSV korrekt, aber das ist wohl nur ein Schönheitsfehler .
Das mit dem Index könnte damit zusammenhängen, da die Index-Nummer ja eigentlich in Items.c und nicht in der Weapons.c steckt. Nach den Variablen die du da erwähnst, hab ich jetzt einfach mal darauf geschlossen, dass du das anstelle der Waffentabelle in der Weapons.c reinkopiert hast. Auch daran gedacht, dass z.B. ASRIFLE verschieden viele Variablen wie z.B. SN_RIFLE oder BLADE haben? Das sind auch immer wieder potentielle Fehlerquellen.
Dr.X
Also wenn du die Bear's Pit-Dateien meinst, ist eigentlich CVS und nicht CSV korrekt, aber das ist wohl nur ein Schönheitsfehler .
Das mit dem Index könnte damit zusammenhängen, da die Index-Nummer ja eigentlich in Items.c und nicht in der Weapons.c steckt. Nach den Variablen die du da erwähnst, hab ich jetzt einfach mal darauf geschlossen, dass du das anstelle der Waffentabelle in der Weapons.c reinkopiert hast. Auch daran gedacht, dass z.B. ASRIFLE verschieden viele Variablen wie z.B. SN_RIFLE oder BLADE haben? Das sind auch immer wieder potentielle Fehlerquellen.
Dr.X
"I believe in the golden rule. The man with the gold . . . rules!" - Mr.T
[Tutorial zum Waffenbilder und -werte ändern]
[Tutorial zum Waffenbilder und -werte ändern]
-
- Alpha-Squad
- Beiträge: 1593
- Registriert: 01 Feb 2002, 19:22
- Kontaktdaten:
Azrael hat geschrieben:Was ist denn WEAPONTYPE? Hast du eventuell ein struct mit dem Namen WEAPONTYPE definiert und gar keine Variable dieses Typs angelegt?
Es müsste übrigens am Ende fclose(CSV); heissen.
das ist original in der weapon.h normaler weise müsste es so gehn
@fclose jo hab ich auch mitbekommen
[PHP]typedef struct
{
UINT8 ubWeaponClass; // handgun/shotgun/rifle/knife
UINT8 ubWeaponType; // exact type (for display purposes)
UINT8 ubCalibre; // type of ammunition needed
UINT8 ubReadyTime; // APs to ready/unready weapon
UINT8 ubShotsPer4Turns; // maximum (mechanical) firing rate
UINT8 ubShotsPerBurst;
UINT8 ubBurstPenalty; // % penalty per shot after first
UINT8 ubBulletSpeed; // bullet's travelling speed
UINT8 ubImpact; // weapon's max damage impact (size & speed)
UINT8 ubDeadliness; // comparative ratings of guns
INT8 bAccuracy; // accuracy or penalty
UINT8 ubMagSize;
UINT16 usRange;
UINT16 usReloadDelay;
UINT8 ubAttackVolume;
UINT8 ubHitVolume;
UINT16 sSound;
UINT16 sBurstSound;
UINT16 sReloadSound;
UINT16 sLocknLoadSound;
UINT8 bBaseAutofireCost;
UINT8 bAutofireShotsPerFiveAP;
INT8 szWeaponName[MAX_WEAPON_NAME_LENGTH+1]; //+1 for the null terminator
UINT32 uiIndex;
} WEAPONTYPE;[/PHP]
@ Mysterious Dr.X
daran liegst es nicht da die werte die er nicht brauch mit 0 belegt sind und somit das funktioniert schau dir mal das XML von Digi an daran kann man es sehn
und @ CSV CVS jo da komm ich immer durcheinander das eine ist der Source da andere ein Datenformat
aber trotzdem danke zwar hats mir noch nicht geholfen aber egal
Führer der SoS (soldiers of shadow)
Enominis Satanis
Die Your God is Dead
Behold Satans Rise
(Action)Gamer für Gewalt und Terror
Enominis Satanis
Die Your God is Dead
Behold Satans Rise
(Action)Gamer für Gewalt und Terror
Danke, danach habe ich gesucht.shadow the deat hat geschrieben: typedef struct
{
...
} WEAPONTYPE;
Also: Das struct WEAPONTYPE ist ein _Datentyp_ und keine Variable. Du kannst den Datentyp nicht an die Funktion fscanf übergeben, sondern musst vorher eine Variable des Typs anlegen, also zum Beispiel
WEAPONTYPE myWeapon;
Danach kannst du dann myWeapon.uiIndex usw. an fscanf übergeben.
Ich habe gerade gesehen, dass in der Weapon.h auch noch der Array
extern WEAPONTYPE Weapon[ MAX_WEAPONS ];
definiert ist. Da du ja anscheinend die Waffendaten aus einer Datei laden willst, macht es eventuell Sinn, direkt in den Array zu schreiben.
Some scientists claim that hydrogen, because it is so plentiful, is the basic building block of the universe. I dispute that. I say there is more stupidity than hydrogen, and that is the basic building block of the universe.
(Frank Zappa)
(Frank Zappa)
-
- Alpha-Squad
- Beiträge: 1593
- Registriert: 01 Feb 2002, 19:22
- Kontaktdaten:
jo thx genau das hat mit gefehlt
da merkt man mal das Programmer immer was neues lernen und nie aufhören können was neues zu lernen
so ich denk mal das ihr bis Weihnachten externe Waffen habt
edit
jetzt gibt er den gleichen Fehler
WEAPONTYPE Weapon[ MAX_WEAPONS ] =
{
FILE *CSV;
WEAPONTYPE waffen;
CSV = fopen("TABLEDATA\\Weapons.csv", "r");
while((fscanf(CSV,"%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
waffen.uiIndex,waffen.szWeaponName,waffen.ubWeaponClass,
waffen.ubWeaponType,waffen.ubCalibre,waffen.ubReadyTime,
waffen.ubShotsPer4Turns,waffen.ubShotsPerBurst,
waffen.ubBurstPenalty,waffen.ubBulletSpeed,waffen.ubImpact,
waffen.ubDeadliness,waffen.bAccuracy,waffen.ubMagSize,
waffen.usRange,waffen.usReloadDelay,waffen.ubAttackVolume,
waffen.ubHitVolume,waffen.sSound,waffen.sBurstSound,
waffen.sReloadSound,waffen.sLocknLoadSound,
waffen.bBaseAutofireCost,waffen.bAutofireShotsPerFiveAP)) != EOF )
fclose(CSV);
return 0;
}
aus also langsam hab ich wirklich kein Plan mehr
da merkt man mal das Programmer immer was neues lernen und nie aufhören können was neues zu lernen
so ich denk mal das ihr bis Weihnachten externe Waffen habt
edit
jetzt gibt er den gleichen Fehler
WEAPONTYPE Weapon[ MAX_WEAPONS ] =
{
FILE *CSV;
WEAPONTYPE waffen;
CSV = fopen("TABLEDATA\\Weapons.csv", "r");
while((fscanf(CSV,"%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
waffen.uiIndex,waffen.szWeaponName,waffen.ubWeaponClass,
waffen.ubWeaponType,waffen.ubCalibre,waffen.ubReadyTime,
waffen.ubShotsPer4Turns,waffen.ubShotsPerBurst,
waffen.ubBurstPenalty,waffen.ubBulletSpeed,waffen.ubImpact,
waffen.ubDeadliness,waffen.bAccuracy,waffen.ubMagSize,
waffen.usRange,waffen.usReloadDelay,waffen.ubAttackVolume,
waffen.ubHitVolume,waffen.sSound,waffen.sBurstSound,
waffen.sReloadSound,waffen.sLocknLoadSound,
waffen.bBaseAutofireCost,waffen.bAutofireShotsPerFiveAP)) != EOF )
fclose(CSV);
return 0;
}
aus also langsam hab ich wirklich kein Plan mehr
Führer der SoS (soldiers of shadow)
Enominis Satanis
Die Your God is Dead
Behold Satans Rise
(Action)Gamer für Gewalt und Terror
Enominis Satanis
Die Your God is Dead
Behold Satans Rise
(Action)Gamer für Gewalt und Terror
-
- Bravo-Squad
- Beiträge: 575
- Registriert: 14 Mär 2003, 21:32
- Kontaktdaten:
Howdy Rowdies!
Eben das gefällt mir nicht, dass deine Version für Werte die nicht gebraucht werden eine 0 einfügt. Probier's doch mal aus und bau ein neues Messer per Hand ein. Alle Werte, die du nicht brauchst füllst du mit "0,". Wirst sehen das es nicht funktioniert. In der Ja2.exe - und damit auch bei WEdit - steht da später halt "0", aber im Source musst du das sensibler behandeln! Wenn du dir nicht wirklich sicher bist, ob das nicht das Problem ist, dann forsche mal mehr in die Richtung .
Dr.X
Eben das gefällt mir nicht, dass deine Version für Werte die nicht gebraucht werden eine 0 einfügt. Probier's doch mal aus und bau ein neues Messer per Hand ein. Alle Werte, die du nicht brauchst füllst du mit "0,". Wirst sehen das es nicht funktioniert. In der Ja2.exe - und damit auch bei WEdit - steht da später halt "0", aber im Source musst du das sensibler behandeln! Wenn du dir nicht wirklich sicher bist, ob das nicht das Problem ist, dann forsche mal mehr in die Richtung .
Dr.X
"I believe in the golden rule. The man with the gold . . . rules!" - Mr.T
[Tutorial zum Waffenbilder und -werte ändern]
[Tutorial zum Waffenbilder und -werte ändern]
Du kannst so auch keinen Array initialisieren.
Ich würde das folgendermassen machen:
Die ganze Array-Initialisierung (ab Zeile 120 in der originalen Weapons.c) duch die Zeile
WEAPONTYPE Weapon[ MAX_WEAPONS ];
ersetzen.
Dann schreibst du dir eine Funktion, die den Array mit Werten aus der Textdatei belegt (der Code ist ungetestet, keine Ahnung, ob da noch Fehler drin sind):
void InitWeapons() {
int i=0;
CSV = fopen("TABLEDATA\\Weapons.csv", "r");
while( (!feof(CSV)) && (i<MAX_WEAPONS)) {
fscanf(CSV,"%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", Weapon.uiIndex,Weapon.szWeaponName, ...); // usw. für die restlichen Waffenwerte
i++;
}
fclose(CSV);
}
Dann musst du dir nur noch die passende Stelle suchen, in der du die Methode zur Belegung des Arrays aufrufst.
Ich würde das folgendermassen machen:
Die ganze Array-Initialisierung (ab Zeile 120 in der originalen Weapons.c) duch die Zeile
WEAPONTYPE Weapon[ MAX_WEAPONS ];
ersetzen.
Dann schreibst du dir eine Funktion, die den Array mit Werten aus der Textdatei belegt (der Code ist ungetestet, keine Ahnung, ob da noch Fehler drin sind):
void InitWeapons() {
int i=0;
CSV = fopen("TABLEDATA\\Weapons.csv", "r");
while( (!feof(CSV)) && (i<MAX_WEAPONS)) {
fscanf(CSV,"%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", Weapon.uiIndex,Weapon.szWeaponName, ...); // usw. für die restlichen Waffenwerte
i++;
}
fclose(CSV);
}
Dann musst du dir nur noch die passende Stelle suchen, in der du die Methode zur Belegung des Arrays aufrufst.
Some scientists claim that hydrogen, because it is so plentiful, is the basic building block of the universe. I dispute that. I say there is more stupidity than hydrogen, and that is the basic building block of the universe.
(Frank Zappa)
(Frank Zappa)
-
- Alpha-Squad
- Beiträge: 1593
- Registriert: 01 Feb 2002, 19:22
- Kontaktdaten: