Ein neues Thema erstellen  Auf das Thema antworten  [ 87 Beiträge ]  Gehe zu Seite Vorherige 1 2 3 4 5 Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 07.01.2003, 20:23 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
1. AND ist in der If-Schleife immer ein "&&".

2.
Code:
g_Menu[UserIndex] -= 1;
Das wird HL zum abstürzen bringen. Ist ein Small-Compiler Bug. Schreib:
Code:
g_Menu[UserIndex] = g_Menu[UserIndex]-1;
Das gilt nur für Arrayfelder. Einfache Variablen lassen sich so schon berechnen.

3. Mal eine Frage, was macht das << in:
Code:
i = 1<<(g_Menu[UserIndex] * 7 - 8 + i);
Hab ich so noch nie gesehen. Was macht das?

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 07.01.2003, 20:31 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
1. && hab ich schon probiert, das geht aber dann nciht, so schon
2. array += 1 geht, nur array++ macht nen crash
3. bit shift.
1<<3 verschiebt die bits der zahl 1 (32 bit signed integer) 000000000000000000000000000001 um 3 nach links, also
000000000000000000000000001000 = 8


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.01.2003, 00:58 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
zu 1. es muss definitiv && heißen. Versuch doch mal in Kombination mit der Verwendung von "== 1". Vielleicht geht das ja.
zu 2. hmmm, ich meinte allein schon der Ausdruck wäre problematisch.
zu 3. Danke, mal sehen, ob ich's mal gebrauchen kann. Glaube derzeit aber eher nicht.

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.01.2003, 17:15 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
zu 1. es geht mit && definitiv nicht
zu 2. --
zu 3. --


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.01.2003, 20:01 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
OK, gaaanz einfach (Ich hab's ausprobiert).
Der Compiler mag den Inhalt der Array-Zelle nicht vergleichen (zumindest meckert er).
Definiere z.B.
Code:
new g_sMaps;
Und mach dann das:
Code:
g_sMaps=g_SelectedMaps[UserIndex];
if(g_sMaps && i) {
Dann bekam ich keine Fehlermeldung mehr.

PLÖD!!

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.01.2003, 20:10 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
small is kagga :(
danke dir :)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.01.2003, 20:20 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
eigentlich... mit && hab ich die fehlermeldung eh nie gekriegt, nur mit &. und mit deiner lösung funktionierts genausowenig. die einizge funktionierende lösung die ich bisher gefunden habe hab ich oben gepostet, inklusive compilerwarnings


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.01.2003, 20:39 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
ich hab ne möglichkeit die geht und keine warnings macht!!!111!!
Code:
                new Maps = g_SelectedMaps[UserIndex] & ~i;
                if(Maps != g_SelectedMaps[UserIndex]) {
                    g_SelectedMaps[UserIndex] -= i;
                } else {
                    g_SelectedMaps[UserIndex] += i;
                }


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.01.2003, 20:43 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
eigentlich umständlich, so isses noch besser!!!111!
Code:
                new Maps = g_SelectedMaps[UserIndex] & i;
                if(Maps == i) {
                    g_SelectedMaps[UserIndex] -= i;
                } else {
                    g_SelectedMaps[UserIndex] += i;
                }


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 00:28 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Einen Augenblick. Was funzt nicht. Die Warnings wegbekommen oder Dein Code?

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 14:11 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
der code den ich hatte hat funktionier. aber er hat warnings produziert. dein code hat nicht funktioniert, aber keine warnings produziert. der code 2 posts weiter oben funktioniert und macht keine warnings, ebenso wie der darüber


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 16:31 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Dann würde ich mal darüber nachdenken, warum Dein Code ZUFÄLLIGERweise funktioniert. Denn ein einfaches "&" ist definitiv falsch. Nur weil etwas auf den ersten Blick funktioniert muss es nicht richtig sein.
Ich weiß da jetzt auch nicht weiter. Schau einfach mal. Dir wird schon was einfallen. ;)

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 17:20 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Sofern nur 2 Werte (0 und 1) benutzt werden, kann auch die bitweise UND-Verknüpfung (&) problemlos benutzt werden. && ist sicher resourcenschonender...


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 17:29 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
und ich dachte ein &variable hat was mit "call by reference" zu tun und das haufigst angewandte was mit "call by value". Und ich wußte nicht, dass man ein einzelnes & auch als Vergleich heranziehen kann.

Leider habe ich diese beiden Sachen auch noch nicht richtig verstanden...

_________________
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: 09.01.2003, 18:00 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
ich will mit dem & auch nicht vergleichen! ich will eine rechenoperation damit durchführen und das ergebnis vergleichen.


Zuletzt geändert von Rinde am 09.01.2003, 18:01, insgesamt 1-mal geändert.

Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 18:00 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Zum Vergleich wird das Ergebnis der Operation herangezogen, in diesem Fall ist die Operation ein &.

Beispiel:
Code:
if(a=1) machwas();
else machnix();
a=1 ist eine Zuweisung, in a steht also 1 drin, das Ergebnis dieser Operation ist also 1. In diesem Fall wird immer machwas() ausgeführt, der else-Zweig dagegen nie...
Genauso gibts bei der bitweisen UND-Operation auch irgendein Ergebnis, welches dann zur Auswertung benutzt wird.

Wahr ist bei Small mangels Boolean alles was nicht 0 ist, Falsch ist definiert mit 0.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 18:02 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Zitat:
ich will mit dem & uach nicth vergleichechen! ich will eine rechenoperation damit durchführen und das ergebnis vergleichen.
Vielleicht sollte man doch mal die "anstößigen" Quellcodezeilen hier posten, damit man genau weiss, was gemeint ist und was nicht.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 18:05 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
ich würde es anders sagen. & ist ein operator genau wie + oder *
Code:
if(i + j == 6) {
   ...
} else {
   ...
}
geht problemlos
Code:
if(i & j == 6) {
   ...
} else {
   ...
}
aber nicht


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 18:24 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Zitat:
ich würde es anders sagen. & ist ein operator genau wie + oder *
Hat ja niemand was gegenteiliges behauptet...
Zitat:
Code:
if(i & j == 6) {
   ...
} else {
   ...
}
aber nicht
Warum sollte das nicht gehen?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.01.2003, 19:22 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Rinde: Du hättest ja mal BlackKnight den Tip geben können, dass Du die ausgewählten Maps als Bitmaske abspeicherst, besonders nachdem er Dir offenbahrt hat, dass ihm diverse Bitoperationen unbekannt sind. Stattdessen willst Du eine Warnung des Compilers wegbekommen, die doch eigentlich genau das beschreibt, was Du auch bezweckst. So sieht es für mich aus, als ob Du selbst nicht so genau weisst, was Du da eigentlich programmiert hast...


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 87 Beiträge ]  Gehe zu Seite Vorherige 1 2 3 4 5 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 ]"