Frage zu Formel
BxBender
- php
Hallo.
Ich habe da eine Formel in einer PHP-Datei, da steige ich nicht ganz durch. Wie wird die Berechnung genau durchgeführt?
Wenn ich für Level den Level eines Helden (RPG) einsetze, was kommt dabei heraus? Ich muss diese Formel ein wenig für mein Rollenspielsystem im Board anpassen.
Ich komme bloß mit den int, log und rand nicht so recht klar.
Bin halt Anfänger. Kann mich da einer aufklären?
Vielleicht kann da einer auch ein Beispiel mit 1 oder 2 Level angeben?
Vielen lieben Dank.
Gruß
BxBender
// formula for calculating the amount of damage done by fists
function cal_fists($level) {
return floor(log10($level) * 30 + rand(-(int)($level * .15), (int)($level * .15))) + 1;}
Hallo,
Vielleicht kann da einer auch ein Beispiel mit 1 oder 2 Level angeben?
Setz es doch einfach ein.
// formula for calculating the amount of damage done by fists
function cal_fists(1) {
return floor(log10(1) * 30 + rand(-(int)(1 * .15), (int)(1 * .15))) + 1;}
floor(0*30+rand(-.15,.15))+1
Das wird im Durchschnitt 1 sein.
Gruß,
Henning
guten Abend,
Ich habe da eine Formel in einer PHP-Datei, da steige ich nicht ganz durch. Wie wird die Berechnung genau durchgeführt?
Um welche Formel handelt es sich?
Wie sieht die "PHP-Datei" aus?
Welche Berechnung soll durchgeführt werden?
Wenn ich für Level den Level eines Helden (RPG) einsetze, was kommt dabei heraus?
Was ist ein Level?
Was ist ein Held?
Was ist RPG?
Ich muss diese Formel ein wenig für mein Rollenspielsystem im Board anpassen.
Um welches Rollenspielsystem handelt es sich?
Welches Board hast du in Betrieb?
Ich komme bloß mit den int, log und rand nicht so recht klar.
Was bedeutet int in diesem Zusammenhang?
Was bedeutet log in diesem Zusammenhang?
Was bedeutet rand in diesem Zusammenhang?
Bin halt Anfänger. Kann mich da einer aufklären?
Nein.
Was du zuerst lernen müßtest: stelle Fragen so, daß man auch versteht, wovon du sprichst. Gib Beispiele deiner bisherigen Arbeit (möglichst als link) an, so daß man sich das anschauen kann.
Vielleicht kann da einer auch ein Beispiel mit 1 oder 2 Level angeben?
Ich könnte dir mehrere Beispiele angeben, aber sie würden garantiert nicht zu deinem Rollenspiel passen.
Grüße aus Berlin
Christoph S.
Hallo BxBender,
Wenn ich für Level den Level eines Helden (RPG) einsetze,
und das ganze jetzt noch mal auf Deutsch?
Ich komme bloß mit den int, log und rand nicht so recht klar.
mit int wird afaik der Variablentyp festgelegt, log ist eine mathematische Funktion (Logarithmus sollte dir eigentlich was sagen :-)) log10 rechnet den 10er Logarithmus aus ->http://de3.php.net/log10. rand gibt eine Zufallszahl aus die zwischen den angegebenen Parametern liegt ->http://de2.php.net/rand
Vielleicht kann da einer auch ein Beispiel mit 1 oder 2 Level angeben?
was meinst du mit 1 oder 2 Level? $level hat nichts mit irgendeinem Spielelevel zu tun, das ist lediglich eine Variable die der Funktion übergeben wird. (btw: wo hast du die Funktion eigentlich her?)
Vielen lieben Dank.
irgendwie werde ich nicht so ganz schlau, was du eigentlich willst.
return
das was hinter return steht, gibt die Funktion zurück
hier die Formel etwas aufgeschlüsselt:
floor(
floor() rundet ab (->http://de3.php.net/floor) hier wird also die ausgerechnete Zahl abgerundet
log10($level) * 30 +
hier wird der 10er Logarithmus mit 30 multipliziert
rand(-(int)($level * .15),(int)($level * .15))
es wird eine Zufallszahl ermittelt, die zwischen dem negativen und dem positiven Produkt aus der in $level angegebenen Zahl und 0,15 liegt.
) + 1;
na das ist ja wohl einfach :-)
Grüße aus Nürnberg
Tobias
Hallo BxBender,
Wenn ich für Level den Level eines Helden (RPG) einsetze,
und das ganze jetzt noch mal auf Deutsch?Ich komme bloß mit den int, log und rand nicht so recht klar.
mit int wird afaik der Variablentyp festgelegt, log ist eine mathematische Funktion (Logarithmus sollte dir eigentlich was sagen :-)) log10 rechnet den 10er Logarithmus aus ->http://de3.php.net/log10. rand gibt eine Zufallszahl aus die zwischen den angegebenen Parametern liegt ->http://de2.php.net/randVielleicht kann da einer auch ein Beispiel mit 1 oder 2 Level angeben?
was meinst du mit 1 oder 2 Level? $level hat nichts mit irgendeinem Spielelevel zu tun, das ist lediglich eine Variable die der Funktion übergeben wird. (btw: wo hast du die Funktion eigentlich her?)Vielen lieben Dank.
irgendwie werde ich nicht so ganz schlau, was du eigentlich willst.return
das was hinter return steht, gibt die Funktion zurückhier die Formel etwas aufgeschlüsselt:
floor(
floor() rundet ab (->http://de3.php.net/floor) hier wird also die ausgerechnete Zahl abgerundetlog10($level) * 30 +
hier wird der 10er Logarithmus mit 30 multipliziertrand(-(int)($level * .15),(int)($level * .15))
es wird eine Zufallszahl ermittelt, die zwischen dem negativen und dem positiven Produkt aus der in $level angegebenen Zahl und 0,15 liegt.) + 1;
na das ist ja wohl einfach :-)Grüße aus Nürnberg
Tobias
Hallo nochmal.
Das ist zwar alles ganz nett, aber mit dem komischen log komme ich nicht klar - und den Kommas zwischendurch.
Ich würde die Formel ganz gerne vereinfachen:
Da es sich um eine Formel in einem Rollenspiel (RPG) handelt, sollte mit rand ein Würfel simuliert werden. Also sollte ein Wert von 1-6 ausgegeben werden. Dieser sollte wiederum mit dem Level des Helden $level addiert werden. Wenn der Held demnach Stufe/Level 4 ist, ergibt sich ein Wert von W6(Würfelwert) + 4. Das soll dann als Schadenswert in die Berechnung eines Kampfes einfließen.
Kann mir das jemand mal kurz aufschreiben?
Ich könnte mir dann wohl was passendes auch für andere Dinge zusammenschustern.
Wäre wirklich nett.
Ansonsten komme ich irgendwie nicht so richtig weiter.
Wer mal einen Blick auf das Rollenspiel werfen möchte:
http://www.bxbender.space-4you.com/wbboard/portal.php
Leider muss man registriert sein, um am RPG teilnehmen zu können.
Hallo,
[Fullquote gelöscht]
Da es sich um eine Formel in einem Rollenspiel (RPG) handelt, sollte mit rand ein Würfel simuliert werden. Also sollte ein Wert von 1-6 ausgegeben werden. Dieser sollte wiederum mit dem Level des Helden $level addiert werden. Wenn der Held demnach Stufe/Level 4 ist, ergibt sich ein Wert von W6(Würfelwert) + 4. Das soll dann als Schadenswert in die Berechnung eines Kampfes einfließen.
Schau dir http://de2.php.net/manual/de/function.rand.php an und setze einfach die Werte ein, die du eben gesagt hast. Dazu sollte man sich noch http://de2.php.net/manual/de/function.srand.php anschauen.
Gruß,
Henning
Hallo,
[Fullquote gelöscht]
Da es sich um eine Formel in einem Rollenspiel (RPG) handelt, sollte mit rand ein Würfel simuliert werden. Also sollte ein Wert von 1-6 ausgegeben werden. Dieser sollte wiederum mit dem Level des Helden $level addiert werden. Wenn der Held demnach Stufe/Level 4 ist, ergibt sich ein Wert von W6(Würfelwert) + 4. Das soll dann als Schadenswert in die Berechnung eines Kampfes einfließen.
Schau dir http://de2.php.net/manual/de/function.rand.php an und setze einfach die Werte ein, die du eben gesagt hast. Dazu sollte man sich noch http://de2.php.net/manual/de/function.srand.php anschauen.
Gruß,
Henning
Also müsste ich folgendes schreiben?:
function cal_fists($level) {
return floor(log10($level) * 30 + rand(-(int)($level * .15), (int)($level * .15))) + 1;}
mache zu:
function cal_fists($level) {
int rand ( [ int 1 [, int 6]]) + $level;}
Hallo,
Hallo,
[Fullquote gelöscht]
[noch ein Fullquote gelöscht]
function cal_fists($level) {
int rand ( [ int 1 [, int 6]]) + $level;}
Naja fast. Vielleicht solltest du dich mal mit Funktionen, Variablen und Programmsyntax beschäftigen. Wenn Programmiersprachen erklärt werden haben bestimmte Zeichen besondere Aussagen. Wie z.B. [] bedeuten dies kann auch weggelassen werden. Diese Zeichen gehören also nicht zur Funktion.
Gruß,
Henning
Hallo,
Hallo,
[Fullquote gelöscht]
[noch ein Fullquote gelöscht]
function cal_fists($level) {
int rand ( [ int 1 [, int 6]]) + $level;}
Naja fast. Vielleicht solltest du dich mal mit Funktionen, Variablen und Programmsyntax beschäftigen. Wenn Programmiersprachen erklärt werden haben bestimmte Zeichen besondere Aussagen. Wie z.B. [] bedeuten dies kann auch weggelassen werden. Diese Zeichen gehören also nicht zur Funktion.
Gruß,
Henning
AHHHHHH, jetzt hab ich es kapiert !
Jetzt funzt mein RPG endlich, wie ich es haben möchte.
Danke vielmals. :-))
Hallo BxBender,
[Fullquote gelöscht]
*grmpf* ->http://learn.to/quote
return floor(log10($level) * 30 + rand(-(int)($level * .15), (int)($level * .15))) + 1;}
wo hast du diese komische Funkion überhaupt her?
function cal_fists($level) {
int rand ( [ int 1 [, int 6]]) + $level;}
wenn du dir den Text unter der Funktion durchgelesen hättest und die Beispiele angeschaut, wüsstest du, was an dieser Zeile falsch ist
[x] du willst dir http://de2.php.net/functions anschauen (besonders http://de2.php.net/functions.returning-values)
[x] du willst dir die von Henning geposteten Links nochmal genau anschauen (besonders den 1.) und die eckigen Klammern* sowie das int** jeweils weglassen
* Die eckigen Klammern stehen um optionale Parameter
** das int (oder auch was anderes) gibt an, was für einen Variablentyp die Funktion erwartet bzw. zurückgibt
Grüße aus Nürnberg
Tobias [ja, ich bin gemein :-)]
Hallo,
return floor(log10($level) * 30 + rand(-(int)($level * .15), (int)($level * .15))) + 1;}
wo hast du diese komische Funkion überhaupt her?
Zumal ich die Funktion für eine Schadensbestimmung sehr merkwürdig finde. Bis Level 10 wirkt sich eigentlich nur der Logarithmus aus (schneller Anstieg auf 30). Ab Level 10 steigt der Logarithmus kaum, dafür wird der Wahrscheinlichkeitsbereich immer größer und es können größere Schwankungen auftreten.
Level 1: ~1
Level 3: ~15
Level 5: ~20
Level 10: ~30
Level 50: ~44-58
Level 100: ~45-75
Gruß,
Henning