Scheiß Debuger

Von Fragen zum Editor über die Landschaftsgestaltung und das Einfügen komplexer Mechanismen, RPCs oder Ähnlichem bis zur kompletten Projektplanung ist hier alles willkommen, was mit der Veränderung von Ja 2 und UB zu tun hat...

Moderator: Flashy

Antworten
shadow the deat
Alpha-Squad
Beiträge: 1593
Registriert: 01 Feb 2002, 19:22
Kontaktdaten:

Scheiß Debuger

Beitrag von shadow the deat » 14 Dez 2004, 15:31

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 :confused:
:lhdevil: :uriel: Führer der SoS :lhdevil: (soldiers of shadow)

:lhdevil: Enominis Satanis :lhdevil:

Die Your God is Dead
Behold Satans Rise :hail:


(Action)Gamer für Gewalt und Terror :k:

Azrael
Alpha-Squad
Beiträge: 1332
Registriert: 19 Mai 2001, 11:00
Kontaktdaten:

Beitrag von Azrael » 14 Dez 2004, 19:13

shadow the deat hat geschrieben:kann mir mal einer Erklären was der debuger mit illegal use of the type as an expression meint
Sicher, dass du nicht vielleicht Compiler statt Debugger meinst?
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)

shadow the deat
Alpha-Squad
Beiträge: 1593
Registriert: 01 Feb 2002, 19:22
Kontaktdaten:

Beitrag von shadow the deat » 14 Dez 2004, 19:30

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


:erdbeerteechug: erstmal für die Hilfe :D
:lhdevil: :uriel: Führer der SoS :lhdevil: (soldiers of shadow)

:lhdevil: Enominis Satanis :lhdevil:

Die Your God is Dead
Behold Satans Rise :hail:


(Action)Gamer für Gewalt und Terror :k:

Azrael
Alpha-Squad
Beiträge: 1332
Registriert: 19 Mai 2001, 11:00
Kontaktdaten:

Beitrag von Azrael » 15 Dez 2004, 00:56

shadow the deat hat geschrieben: es kommt immer im Zusammenhang mit WEAPONTYPE.uiIndex
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. ;)
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)

Mysterious Dr.X
Bravo-Squad
Beiträge: 575
Registriert: 14 Mär 2003, 21:32
Kontaktdaten:

Beitrag von Mysterious Dr.X » 15 Dez 2004, 14:37

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
:summer: "I believe in the golden rule. The man with the gold . . . rules!" - Mr.T :summer:
[Tutorial zum Waffenbilder und -werte ändern]

shadow the deat
Alpha-Squad
Beiträge: 1593
Registriert: 01 Feb 2002, 19:22
Kontaktdaten:

Beitrag von shadow the deat » 15 Dez 2004, 16:57

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 :D
[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 :azzangel:


aber trotzdem danke zwar hats mir noch nicht geholfen aber egal :keks:
:lhdevil: :uriel: Führer der SoS :lhdevil: (soldiers of shadow)

:lhdevil: Enominis Satanis :lhdevil:

Die Your God is Dead
Behold Satans Rise :hail:


(Action)Gamer für Gewalt und Terror :k:

Azrael
Alpha-Squad
Beiträge: 1332
Registriert: 19 Mai 2001, 11:00
Kontaktdaten:

Beitrag von Azrael » 15 Dez 2004, 19:20

shadow the deat hat geschrieben: typedef struct
{
...
} WEAPONTYPE;
Danke, danach habe ich gesucht.
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)

shadow the deat
Alpha-Squad
Beiträge: 1593
Registriert: 01 Feb 2002, 19:22
Kontaktdaten:

Beitrag von shadow the deat » 16 Dez 2004, 13:46

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 :erdbeerteechug:


so ich denk mal das ihr bis Weihnachten externe Waffen habt :D


€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 :confused:
:lhdevil: :uriel: Führer der SoS :lhdevil: (soldiers of shadow)

:lhdevil: Enominis Satanis :lhdevil:

Die Your God is Dead
Behold Satans Rise :hail:


(Action)Gamer für Gewalt und Terror :k:

Mysterious Dr.X
Bravo-Squad
Beiträge: 575
Registriert: 14 Mär 2003, 21:32
Kontaktdaten:

Beitrag von Mysterious Dr.X » 16 Dez 2004, 20:45

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
:summer: "I believe in the golden rule. The man with the gold . . . rules!" - Mr.T :summer:
[Tutorial zum Waffenbilder und -werte ändern]

Azrael
Alpha-Squad
Beiträge: 1332
Registriert: 19 Mai 2001, 11:00
Kontaktdaten:

Beitrag von Azrael » 17 Dez 2004, 00:14

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.
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)

shadow the deat
Alpha-Squad
Beiträge: 1593
Registriert: 01 Feb 2002, 19:22
Kontaktdaten:

Beitrag von shadow the deat » 17 Dez 2004, 14:03

thx

das sieht man mal das ich an einigen Stellen dolle Defiziede habe *lol*


naja egal man lernt halt aus Fehlern

ich teste es Sonntag eher komme ich nicht zu


:erdbeerteechug:
:lhdevil: :uriel: Führer der SoS :lhdevil: (soldiers of shadow)

:lhdevil: Enominis Satanis :lhdevil:

Die Your God is Dead
Behold Satans Rise :hail:


(Action)Gamer für Gewalt und Terror :k:

Antworten