anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: So 21 Apr, 2019 19:53

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Grafbar Anzeige
BeitragVerfasst: Mi 01 Feb, 2012 17:10 
Offline
Lehrling
Lehrling

Registriert: Mi 16 Dez, 2009 14:54
Beiträge: 41
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Grafbar Anzeige
BeitragVerfasst: Do 02 Feb, 2012 05:28 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
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 )

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Grafbar Anzeige
BeitragVerfasst: Fr 03 Feb, 2012 13:34 
Offline
Lehrling
Lehrling

Registriert: Mi 16 Dez, 2009 14:54
Beiträge: 41
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 )


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Grafbar Anzeige
BeitragVerfasst: Fr 03 Feb, 2012 14:14 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Die Stichwörter "int" entfernen. Sie dienen eigentlich dazu, den erwarteten Datentyp in der Funktionsdefinition anzugeben.
PHP unterstützt Typehinting allerdings nur sehr begrenzt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Grafbar Anzeige
BeitragVerfasst: Fr 03 Feb, 2012 14:32 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
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.

Code:
$int = (int)$session['user']['race'];


Falsch hingegen wäre:

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.

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:

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.

Code:
grafbar(100,100);


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

Code:
grafbar(100,50);


50%

Code:
grafbar(100,0);


0%

My.

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Grafbar Anzeige
BeitragVerfasst: Fr 03 Feb, 2012 14:46 
Offline
Lehrling
Lehrling

Registriert: Mi 16 Dez, 2009 14:54
Beiträge: 41
@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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Grafbar Anzeige
BeitragVerfasst: Fr 03 Feb, 2012 17:30 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
Zieh bei jeder Aktion einfach 10 Punkte vom Feld bonus ab?

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.

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


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:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum