Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
Forums overviewStranded II overview Scripts overviewLog in to reply

German Scripting - Fragen/Probleme

6,780 replies
Page
To the start Previous 1 238 39 40339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Shadowdown
User Off Offline

Quote
sorry das ich euch hier mit "anfängerfragen" nerve, aber das tutorial ist hmmm ich will nich sagen zu kompliziert geschrieben, aber ich meine das ihr das so im forum besser erklären könnt alls wen es nur so im tutorial steht... z.b. wen ich eine passage im tutorial nich kapiere, kann ich den script vergessen...wenn ich hier frage kann mir ein anderer es noch mal erklären und dann hab ich vielleicht bessere chancen es zu verstehen

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
is schon ok, dafür sin wir ja ne Community im Wiki gibts auch tuts, aber eher für speziele Skripts. Es kommt aber nochmehr.

Kann man in Scripts "geteilt durch" und "mal" rechnen? Wenn ja wie. Is sehr wichtig.
edited 1×, last 10.11.06 02:36:20 pm

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
ist nicht gesagt. Hätte DC auch erst einbauen müssen. als ich es probiert habe ging meine Methode nich, kann aber auch sein dass ich nen Fehler gemacht habe.

hm, ok funzt. er kann aber nicht mit Kommazahlen rechnen. Ja ich weis das man da nen Punkt als Komma nimmt.

old Re: Scripting - Fragen/Probleme

HW
User Off Offline

Quote
Grundsätzlich funktionieren die Grundrechenarten, auch Multiplikation und Division. Das Problem ist einfach, dass für die Variablen offensichtlich Ganzzahlen genommen werden (in BB werden auch standardmäßig Ganzzahlen für Variablen verwendet wenn man nicht explizit etwas anderes angibt, und eine Floatimplementierung gibt es in S2 nicht)
DC müsste also noch einbringen dass man Floatvariablen einsetzen kann. Ist auch für sin etc. vonnöten.
edited 1×, last 11.11.06 04:37:09 pm

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
Ok, das mit den Kommazahlen wär halt auchnoch wichtig. Jetzt hab ichs halt umgangen aber naja.

Nächstes.
Ein Koordinatensystem, zur einfachheit mal 2d (werd auch nur x und z brauchen)

Man hat einen Punkt A auf zB 5|7

Nach oben ist 0°

Man hat einen Winkel von 56°

Man hat eine Entfernung von 6

Von Punkt A ausgehend, gibt es da eine möglichkeit die Koordinaten des neuen Punktes zu berechnen?

Das sind doch die Trigonometrischen Formeln?
Kann mir bitte mal jemand die Formell erklären wenn es denn geht?

old Re: Scripting - Fragen/Probleme

HW
User Off Offline

Quote
Problem ist nur dass die trigonometrischen Funktionen grade wegen diesem Kommaproblem nicht richtig funktionieren. Die trig. Funktionen geben normalerweise Werte zwischen 0 und 1 zurück, durch das Problem eben nur einen dieser zwei Werte...

Aber ich werds dir trotzdem mal erklären, sollte es mal funzen:
Hier mal die Formeln für die Koordinaten des gesuchten Punkts, entsprechend deiner Situation.
x=5+6*cos(90-56)
y=7+6*sin(90-56)

Wenn du mehr Infos brauchst, schau mal auf der Robsite, da werden einige Tuts aufgelistet. Ansonsten kannst du auch hier nachfragen wenn du was nicht verstehst.
Eine Erklärung zu schreiben wäre etwas zu langwierig, deswegen der Verweis auf ein Tut.

Edit@DC: Dass es um die trigonometrischen Funktionen geht hat er ja offensichtlich so schon begriffen.

Edit²: Ich sehe grade dass die trig. Funktionen doch noch richtig funktionieren inzwischen, sie geben jetzt den 100fachen Wert zurück. Das heißt, du musst die Klausel mit dem 6*sin/cos(56) hinterher nur durch 100 teilen, dann hast du ungefähre Koordinatenwerte.
edited 1×, last 10.11.06 03:39:01 pm

old Re: Scripting - Fragen/Probleme

HW
User Off Offline

Quote
Kommt daher dass sin() und cos() eig. die Waagrechte als 0° ansehen, deswegen muss man das umrechnen.
Alternativ müsste es auch funzen wenn man die Funktionen einfach umtauscht, d.h. sin für X-Wert und cos für Y-Wert.

Edit: Wenn ich meinte dass da Klammern hingehören hätte ich welche hingemacht...
Nein, Klammern gehören da nicht hin und sind falsch, die werden bloß überhöhte Ergebnisse liefern.
Das mit dem 5+ und dem 7+ kommt daher, dass man ja eigentlich von einem bestimmten Punkt ausgeht und somit die errechneten Sinus/Cosinuswerte zu den alten Koordinaten hinzuzählen muss.

old kommazahlenbehelf

Guest

Quote
kenn kein blitzbasic, aber man kann sich mit kommazahlen so behelfen:

cos(0.3) ist bei mir zB 0.995. (weis nicht ob ihr den Winkel in grad oder rad angeben muesst)


wenn ich das in einer ganzzahligen variable speichern will, also
x=cos(0.3)
kommt raus:
x=0 (bei mir zumindest, vielleicht rundet bb auch auf)

um das problem zu umgehen:

x=1000*cos(0.3)
fuehrt zu:
x=995

da habt ihr eure kommastellen, zumindest 3 davon als naeherung. wenn ihr mehr haben wollt, dann multipliziert nicht mit 1000 sondern 10000 oder hunderttausend. Die grenze hier nach oben ist dann nur wieviele stellen bb platz hat fuer eine ganze zahlen. sind normalerweise 8 oder 16 stellen, oder eine weniger fuers vorzeichen.

wenn ihr die zahl jetzt wieder benutzen wollt, dann schreibt einfach in jede rechnung, wo sie vorkommt anstatt x einfach x/1000 oder 10000 oder was es auch immer ist. das funktioniert deswegen, weil die nachkommastellen in der rechnung nicht verloren gehen, erst beim in eine variable schreiben.

ich hoff das hilft. bei anderen programmiersprachen gehts jedenfalls.

elmio

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
So hab ich das ja auch umgangen

noch etwas was ich nich kappiere, Fehler: Missmatched Brackets:

1
$var=sin(getyaw("unit",1));
edited 1×, last 10.11.06 03:59:33 pm

old Re: Scripting - Fragen/Probleme

HW
User Off Offline

Quote
@elmio: Das frühere Problem bei den trigonometrischen Funktionen war, dass sie schon von der S2-Engine her sofort einen gerundeten Wert zurückgeben, bei dem eine Multiplikation schon zu spät käme als dass sie was hälfe. Das Problem ist jetzt aber wie schon gesagt behoben, eben auf die Weise wie du das hier vorgeführt hast.

Edit@Lizard: Versuch mal den getyaw Wert erst in einer Variablen zu speichern und diese dann dem Sinus zu übergeben.
Ist wohl ein Parserbug.

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
Ups, sry, Doppelpost hab ich übersehen

an der Stelle mit msg
1
2
3
4
5
on:use {
$yaw=getyaw("unit",1);
$var=(sin($yaw));
msg "$var";
}


kann es sein das S2 einen Fehler beim Runden macht, sprich wenn er 4,2364 in eine Variable packen soll, er nich 4 sondern 0 speichert?
edited 1×, last 10.11.06 04:08:08 pm

old Re: Scripting - Fragen/Probleme

HW
User Off Offline

Quote
Flying Lizard has written
an der Stelle mit msg

Das sagt mir ja viel, vor allem wenn ich dein Script nicht habe...

Auf jeden Fall wäre mir ein solcher "Rundungsfehler" alles andere als geläufig und da müsste DC schon einiges verwurstelt haben, damit sowas rauskommt.
Anders gesagt, es ist sehr unwahrscheinlich dass es so ist wie du sagtest.

Zeig am besten mal dein Script her.
To the start Previous 1 238 39 40339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview