anpera.net
https://anpera.homeip.net/phpbb3/

Grafbar Anzeige
https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=5372
Seite 1 von 1

Autor:  Adrian [ Mi 01 Feb, 2012 17:10 ]
Betreff des Beitrags:  Grafbar Anzeige

Hallo,

ich komme bei einem Problem nicht weiter,vielleicht hat da jemand eine brauchbare Lösung für mich.
Und zwar möchte ich einen Anzeigebalken haben der sich durch ein genauen Wert stetig verringert und nicht durch zufallsprinzip mal mehr mal weniger wird wie in diesem Code:

$rand=e_rand(10,100);
output("`n".grafbar(100,$rand,120,20)."",true);

Wie könnte also der Code ausschauen wenn ich selbst bestimmen will ,mit einem festen Wert wieviel es abnimmt,und bei weiteren aktionen weiterhin abnimmt oder auch mal wieder zunimmt.

Autor:  MySql [ Do 02 Feb, 2012 05:28 ]
Betreff des Beitrags:  Re: Grafbar Anzeige

$this->bbcode_second_pass_code('', 'grafbar( int $full, int $left [, int $width = 70, int $height = 20 ] )')

Die Angabe von $width und $height ist bei grafbar schon mal nicht zwingend notwendig. Allerdings müssen $full und $left definitiv angegeben werden.

    $full
  • Wie hoch ist der Wert an dem $left gemessen wird?
    $left
  • Wie hoch ist der Wert des stetig sinkenden Wertes?

Demnach ist der erste Werte, also $full, ein konstanter Wert, der sich nicht ändert. Wo hingegen sich der Wert $left, wie z.B. bei der Anzeige der Lebens- oder Erfahrungspunkte verändert. Wollen wir nun keinen zufälligen Startwert bei $left haben, benutzen wir definitiv keine rand-Funktionen. Ende vom Lied? Genau, entferne die rand-Abfrage und trage Deinen spezifischen Wert ein.

Im Anschluss ins richtige Forum verschoben. ( Modder Forum & Technischer Support )

Autor:  Adrian [ Fr 03 Feb, 2012 13:34 ]
Betreff des Beitrags:  Re: Grafbar Anzeige

Und wie schreib ich das in meinen normalen php Script das dieser Code auch funktioniert?
Parse error: syntax error, unexpected T_VARIABLE in....sagt er mir.
Und wenn width und height nicht notwendig sind,kann ich die einfach auslassen und das ganze würde dann wie aussehen?
Nach der Erklärung hab ich das so verstanden:

grafbar( int $full = 100, int $left = 20 )

Autor:  Harthas [ Fr 03 Feb, 2012 14:14 ]
Betreff des Beitrags:  Re: Grafbar Anzeige

Die Stichwörter "int" entfernen. Sie dienen eigentlich dazu, den erwarteten Datentyp in der Funktionsdefinition anzugeben.
PHP unterstützt Typehinting allerdings nur sehr begrenzt.

Autor:  MySql [ Fr 03 Feb, 2012 14:32 ]
Betreff des Beitrags:  Re: Grafbar Anzeige

Args. Die von mir im vorhergegangenem Post geschriebenen int's sollten nur verständlich machen, von welchem Typ der Wert ist. int / numeric. Selbstverständlich wird int nicht nicht mit in das Script übernommen, zumindest (sofern überhaupt erwünscht) nicht so. int, string, array etc. Angaben werden vor einem Wert oder einer Variable immer mit Klammern definiert.

$this->bbcode_second_pass_code('', '$int = (int)$session['user']['race'];')

Falsch hingegen wäre:

$this->bbcode_second_pass_code('', '$int = int $session['user']['race']; # Parse error.')

Seit PHP 5 kann man allerdings Type Hinting benutzen, welches nur in Funktions- und Methoden-Deklarationen funktioniert. Objekte und "array" sind hier die einzigen zulässigen Typen.

$this->bbcode_second_pass_code('', 'class myClass {

public function serialize( array $neddle ) {

return serialize($neddle);

}

}

$arr = array(1,2,3);
$mC = new myClass;
$arr = $mC->serialize($arr);

# Catchable fatal error:

class myClassSecond {

public function addition( int $neddle ) {

return $neddle+($neddle*100)/($neddle-3);

}

}

$mCS = new myClassSecond;
echo $mCS->addition(5000);')

Nur damit nicht gesagt wird, ich hätte gesagt das man das gar nicht darf..

Nun zu Deiner Frage:

$this->bbcode_second_pass_code('', 'grafbar( int $full, int $left [, int $width = 70, int $height = 20 ] )')

$full und $left erklärte ich bereits. $width gibt lediglich an, wie lang das erste stellte Objekt ist. Standard 70px. Demnach gibt $height an, wie hoch das erstellte Objekt ist. Standard 20px.

$this->bbcode_second_pass_code('', 'grafbar(100,100);')

Somit wäre die Anzeige komplett. Je mehr Du von $left substrahierst, desto geringer wird auch die grafbar Anzeige.

$this->bbcode_second_pass_code('', 'grafbar(100,50);')

50%

$this->bbcode_second_pass_code('', 'grafbar(100,0);')

0%

My.

Autor:  Adrian [ Fr 03 Feb, 2012 14:46 ]
Betreff des Beitrags:  Re: Grafbar Anzeige

@Sql,

wie die Grafbar selbst funktioniert hatte ich ja verstanden gehabt und hab es auch ohne die Int jetzt zum laufen gebracht.
Ich hätte auch diesen hier nehmen können:
".grafbar(100,($row['bonus']+100),200,20)."

Aber das war nicht mein Problem,sondern ich wollte das die Anzeigetafel bei 100 beginnt und bei jeder weiteren Aktion sich um -10 verringert,ohne das ich ständig die grafbar komplett eingeben muss und dann im Takt +90,+80 ...uws... sondern so ähnlich wie $session[user][bonus] -=10;
Gäbe es da irgendwas?

Autor:  MySql [ Fr 03 Feb, 2012 17:30 ]
Betreff des Beitrags:  Re: Grafbar Anzeige

Zieh bei jeder Aktion einfach 10 Punkte vom Feld bonus ab?

$this->bbcode_second_pass_code('', 'grafbar(100,($row['bonus'] ? $row['bonus'] : 100));')

Ist $row['bonus'] leer / 0, setzt er die grafbar wieder auf 100 - permanent, bis $row['bonus'] über 1 ist.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/