anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 09 Jun, 2025 14:51

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa 06 Mär, 2010 10:58 
Offline
User
User

Registriert: Di 02 Feb, 2010 19:34
Beiträge: 10
Geschlecht: Männlich
Skype: todibohr
Guten morgen alle zusamm'.

Ich benutze diese Standard-Emote & Talk Farben.

Ich würde nun gerne für einige Ereignisse im Wald und auch für das normale sprechen auf den Plätzen die commentemotecolor und die commenttalkcolor aus der Datenbank ziehen. Nun habe ich nur folgendes Problem, dass ich nicht weiß wie ich diese Werte aus dem Datenbankfeld prefs rausziehen kann. Ich versteh nicht wie die Daten dort eingespeichert sind, da sie bei jedem Spieler unterschiedlich sind.

Hier die Datenbankabfrage aus der viewcommentary() (common.php):

PHP:
$sql = "SELECT commentary.*,
accounts.name,
accounts.login,
accounts.loggedin,
accounts.location,
accounts.laston,
accounts.prefs

FROM commentary
INNER JOIN accounts
ON accounts.acctid = commentary.author
WHERE section = '$section'
AND accounts.locked=0
ORDER BY commentid DESC
LIMIT ".($com*$limit).",$limit";
$result = db_query($sql) or die(db_error(LINK));
$counttoday=0;
for ($i=0;$i < db_num_rows($result);$i++){
$row = db_fetch_assoc($result);

Ist die Standard-Abfrage nur um das Feld prefs erweitert.

Wenn ich nun aber versuche mit $row['prefs']['commentemotecolor'] die Farbe aufzurufen führt er nur den ersten Buchstaben des Datenfeldes aus, Da nun ['commentemotecolor'] den Wert 0 für dieses Array erhält. Ich habe dann in der Datenbank die Zeichen abgezählt bis zum gesuchten Zeichen (bei meinem eigenen Char) und die Zahl eingefügt. Hab dann aber gemerkt, dass die prefs bei jedem Spieler anders angelegt ist.

Ich selbst komme leider nicht mehr weiter und hoffe auf Hilfe. ;)

Vielen Dank schon mal im Voraus!


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 06 Mär, 2010 11:31 
Offline
Held
Held

Registriert: Fr 17 Okt, 2008 20:06
Beiträge: 253
Geschlecht: Männlich
LoGD: off
Ich weiß zwar nicht, was das problem ist. Aber was mir auffällt, wenn ich durch die common.php schaue.. du hast sowohl

$HTTP_GET_VARS

als auch

$_GET

in der common.php drin. Falsl du in der dbwrapper kein $HTTP_GET_VARS = $_GET oder sowas drin hast. Würde ich dir raten dich für eins entscheiden ;)

_________________
Wenn ihr mir sagt wie ich es als Datei hochlade, dann kann ich die Source hochladen die ihr wollt .D


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 06 Mär, 2010 12:39 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1604
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
Das Feld 'prefs' wird mit mehreren Werten befüllt, die "serialized" gespeichert werden. Um daraus wieder einzelne Werte zu bekommen, musst du diese aus dem serialized String erst wieder in ein Array schreiben.

Dir fehlt eigentlich nur ein

$row['prefs'] = unserialize($row['prefs']);

bevor du mit

$row['prefs']['commentemotecolor']

auf den gewünschten Wert zugreifen kannst.

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 06 Mär, 2010 16:38 
Offline
User
User

Registriert: Di 02 Feb, 2010 19:34
Beiträge: 10
Geschlecht: Männlich
Skype: todibohr
anpera hat geschrieben:
$row['prefs'] = unserialize($row['prefs']);


Super! Vielen Dank!

Hab damit noch nie gearbeitet deshalb hab ich auch keine Ahnung davon gehabt. ;)

Gruß vom Goblin
Nomegz


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do 11 Mär, 2010 14:55 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
Nochmal von vorn: Du willst einige Standard-Texte in den Farben so gestalten wie der User eingestellt hat? Quasi um zu verdeutlichen dass er mit einem NPC spricht/interagiert?
Solange nur jeder seine eigenen Einstellungen sieht brauchst du keine Datenbankabfrage sondern nimmst einfach $session['user'] und hier liegen die prefs schon unserialisiert vor. Dies wird z.B. dafür verwendet ob der User Töne hören will.

Die folgende Zeile setzt $c auf die Sprachfarbe falls vorhanden, ansonsten auf `3. Du musst dann nur noch die betreffenden Farben durch $c ersetzen.
$this->bbcode_second_pass_code('', '$c='`'.($session['user']['prefs']['commenttalkcolor']>''?$session['user']['prefs']['commenttalkcolor']:'3');
')

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do 11 Mär, 2010 20:17 
Offline
User
User

Registriert: Di 02 Feb, 2010 19:34
Beiträge: 10
Geschlecht: Männlich
Skype: todibohr
Salator hat geschrieben:
Nochmal von vorn: Du willst einige Standard-Texte in den Farben so gestalten wie der User eingestellt hat? Quasi um zu verdeutlichen dass er mit einem NPC spricht/interagiert?
Solange nur jeder seine eigenen Einstellungen sieht brauchst du keine Datenbankabfrage sondern nimmst einfach $session['user'] und hier liegen die prefs schon unserialisiert vor. Dies wird z.B. dafür verwendet ob der User Töne hören will.

Die folgende Zeile setzt $c auf die Sprachfarbe falls vorhanden, ansonsten auf `3. Du musst dann nur noch die betreffenden Farben durch $c ersetzen.
$this->bbcode_second_pass_code('', '$c='`'.($session['user']['prefs']['commenttalkcolor']>''?$session['user']['prefs']['commenttalkcolor']:'3');
')


Hehe. Ich hoffe das wird nun einigen anderen weiterhelfen, die sich damit nicht auskennen, aber das war mir nun schon bewusst. ;)

Bei mir gings nun aber darum, das für den aktuellen Charakter die Farben von anderen Charakteren eingefügt werden.


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 19 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