Thema: Probleme mit if und Variablen Do Feb 05, 2009 7:04 pm
Folgender script:
Zitat :
func RandomNum(){ var x = [562,81,247,372]; return (x[Random(4)]); }
protected func InitializePlayer(int iPlr) { //hier steht bla
//Positionen var y; if(RandomNum = 562) y = 329; if(RandomNum = 81) y = 359; if(RandomNum = 247) y = 247; if(RandomNum = 372) y = 67; ForcePosition(GetHiRank(iPlr),RandomNum(),y);
//hier steht wieder bla return(1); }
Soo entweder da ist ein Fehler oder ich habe if und die variablen nicht so ganz verstanden . Wenn mir das jemand erklären könnte wäre ich sehr dankbar. Rulez
_________________ "hier könnte ihre Werbung stehen anfrage bitte per PM an mOwl"
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Probleme mit if und Variablen Fr Feb 06, 2009 12:09 am
Mit Einfachem = hast du eine Zuordnung, nur doppelt (also ==) kannst du es zum Vergleich verwenden.
Und RandomNum in if() brauch auch ein paar schöne Klammern.
Und wenn du es danach wieder aufrufst, kommt eine andere Zahl raus.
Mit zwei Arrays in RandomNum wäre es leichter, einfach referenzen als Parameter angeben, dann kannst du zwei Zahlen rauskriegen.
tHE_fREAK Fähnrich
Alter : 30 Anmeldedatum : 25.11.08
Thema: Re: Probleme mit if und Variablen Fr Feb 06, 2009 12:51 am
Also müsste das dan so aussehen (oder so ähnlich^^)
Code:
func RandomNum(){ var x = [562,81,247,372]; return (x[Random(4)]); }
protected func InitializePlayer(int iPlr) { //hier steht bla
//Positionen var y, RandNum;
RandNum = RandomNum(); //hier wird einmal eine zufällige Zahl aus dem array auf die Variable gelegt
if(RandNum == 562) y = 329; //und viermal mit == verglichen if(RandNum == 81) y = 359; if(RandNum == 247) y = 247; if(RandNum == 372) y = 67;
ForcePosition(GetHiRank(iPlr),RandNum,y);
//hier steht wieder bla return(1); }
Im Endeffekt gibts 4 verschiedene Möglichkeiten, wo der HiRank hinversetzt wird In deinem Script ist jetzt die y-Koordinate von der x-Koordinate abhängig.
wenn du bei ForcePosition() statt RandNum RandomNum() reinschreibst, hast du 4² also 16 Möglichkeiten und die Koordinaten wären voneinander unabhängig weil dann ja zufällig eine aus 4 x-Koordinaten mit einer aus 4 y-Koordinaten zusammengelegt wird das ließe sich aber anders geschickter und kürzer lösen (wie Umezawa gessagt hat, mit zwei arrays)
mOwl Oberst
Anmeldedatum : 07.01.09
Thema: Re: Probleme mit if und Variablen Fr Feb 06, 2009 9:04 am
Es sollen nur 4 Koordinaten sein:562,329;81,359;247,247;372,67 <-- das sind die 4 Startpunkte danke für die Tipps
_________________ "hier könnte ihre Werbung stehen anfrage bitte per PM an mOwl"
Liech Fregattenkapitän
Alter : 33 Anmeldedatum : 02.02.09
Thema: Re: Probleme mit if und Variablen Fr Feb 06, 2009 10:40 pm
Man kann variable auch mit zurück gegebenen werten speisen, zb so:
Zitat :
y = RandomNum();
Das würde dein script wesentlich verkürzen.
mOwl Oberst
Anmeldedatum : 07.01.09
Thema: Re: Probleme mit if und Variablen Fr Feb 06, 2009 11:46 pm
Liech schrieb:
Man kann variable auch mit zurück gegebenen werten speisen, zb so:
Zitat :
y = RandomNum();
Das würde dein script wesentlich verkürzen.
der y wert ist aber nicht Gleich dem x Wert sondern (um es normal zu sagen). Wenn X bla ist ist y gleich bla. Diesen Satz habe ich dann einfach mal so frei übersetzt was dann so aussieht:
Zitat :
if(RandNum == 81) y = 359;
und so geht es ja auch zum Schluss
Liech Fregattenkapitän
Alter : 33 Anmeldedatum : 02.02.09
Thema: Re: Probleme mit if und Variablen Sa Feb 07, 2009 12:57 am
Diese Methode ist... sagen wir mal nicht die eleganteste, aber jetzt seh ich deine denkweise ein. Das beste in diesem fall wäre wohl referenzen zu benutzen Das Hier wäre wohl eine elegantere lösung dafür (Ja mir ist langweilig )
Zitat :
static const rndxlist = [562,81,247,372]; //konstanten sind schneller als variablen. Nur den wert kann man nicht ändern (in dem fall nicht nötig, weswegen konstanten hier toller sind) static const rndylist = [329,359,247,67];
func RandomNum(&x,&y){//& = referenzen. Wird die referenz (zb x) verändert, ändert sich auch das x mit dem das aufgerufen wird var rnd = Random(GetLength(rndxlist)); //GetLength gibt die menge an werten zurück die ein array enthält (also 4) x = rndxlist[rnd]; y = rndylist[rnd]; }
protected func InitializePlayer(int iPlr) {
var x,y; RandomNum(x,y); //x und y werden in der funktion (aufgrund der referenz) verändert, weswegen sie die zufalls zahlen haben SetPosition(x,y,GetHiRank(iPlr));//ForcePosition ist veraltet
return(1); }
mOwl Oberst
Anmeldedatum : 07.01.09
Thema: Re: Probleme mit if und Variablen Sa Feb 07, 2009 9:55 am
Liech dir ist tatsächlich langweilig. OK ich habe jetzt mal beide Lösungen ausprobiert. Beide Funktionen aber ich nehme die erste weil die noch meine Grundidee beinhält (auch wenn sie nicht so elegant ist)
ruelz _________________ "hier könnte ihre Werbung stehen anfrage bitte per PM an mOwl"