anpera.net
http://anpera.homeip.net/phpbb3/

Neues Hausscript (für 0.9.7)
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=1500
Seite 17 von 19

Autor:  Rikkarda [ Sa 10 Jan, 2009 14:49 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Tidus hat geschrieben:
Also wenn du die Anleitung befolgt hast wie es dort stand müsstest du meines erachtens in die configuration.php folgendes eingefügt haben:

PHP:
"defaulthousemodule"=>"Standard-Hausmodul (wird beim Betreten angezeigt),enum$modules",


ich habe es unter dem zeug mit dem haus drin, und um es zu ändern musst du einfach nur üebr die Admingrotte in die Spieleinstellungen gehen und dort in diesem auswahl teil auswählen welches modul angezeigt werden soll, z.b. das default modul.. ;)



und den teil selber natürlich auch einfügen:

PHP:
$modules = '';
$sql = 'SELECT moduleid, modulename FROM housemodules ORDER BY modulename ASC';
$result = db_query($sql);
while ($row = db_fetch_assoc($result)) $modules .= ','.$row['moduleid'].','.$row['modulename'];
db_free_result($result);



bei mir ist das oben unter dem Part:

PHP:
$enum="enum";
for ($i=0;$i<=86400;$i+=300){
$enum.=",$i,".((int)($i/60/60)).":".($i/60 %60)."";
}

Autor:  HonjiHyuga [ Sa 10 Jan, 2009 14:58 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Sry aber ich weiß net genau wo ich das einfügen soll...

kannst du mir vll sagen was ich suchen soll damit ich das darunter einfügen kann?

PLZ!!

Autor:  HonjiHyuga [ Sa 10 Jan, 2009 15:08 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Also ich habe das jetzt so eingefügt, aber ich lande immernoch im wv >_<

http://honji-x-hyuga.de/logd/source.php?url=/logd/configuration.php#source

EDIT: DANKE >>Rikkarda<< UnD >>Linus<< ICH HABS GESCHAFFT!!!!! DANKE DANKE DANKE *_*



Autor:  Rikkarda [ Sa 10 Jan, 2009 15:24 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

gern doch ;)

Autor:  Lyn [ So 22 Mär, 2009 12:10 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

HonjiHyuga hat geschrieben:

Also mitlerweile habe ich es hinbekommen die ganzen sachen zu verlinken ^^!! Danke schoneinmal!


*lol* ich bin jetzt auch alle 17 Seiten durch und hab die Lösung nicht gefunden. ... Da hab ich zum Schluss wohl eher überflogen *hust*

und mit dem Post von Auric
PHP:
// sei $zahl die nummer des aktuellen wohnviertels - biste abändern oder zuweisen!
$anzahl_wohnviertel = 3;
for($i=0;$i<=$anzahl_wohnviertel;$i++) {
if($i != $zahl) addnav("Zu Wohnviertel Nr. $i","houses.php?HIER_VARIABLENNAMEN_EINFÜGEN=$i");
}


Komm ich auch nicht wirklich zurecht ^^'''
Kann mir jemand sagen wie ich ein zweites Wohnviertel mit der ID 2 verlinke? o.o
Wäre suuppaaa lieb. Schon mal dankeschön dafür ^^

Autor:  Kevz [ So 22 Mär, 2009 13:10 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

$this->bbcode_second_pass_code('', '/**
* Mit dieser Funktion lässt sich der jeweilige Bezirk (Wohnviertel)
* anhand des Namens wiedergeben. Desweiteren lassen sich Tabellenfelder
* abfragen, um bei weiteren Verwendungszwecken damit zu Arbeiten.
*
* @param string $name Name von dem Bezirk (Wohnviertel)
* @param array $fields Tabellenfelder, bei weiteren Verwendungszweck
*
* @return array or integer
*/
function uptownByName ( $name, $fields = array() )
{
// Überprüfen, ob Attribute im Array vorhanden sind
// Falls nicht, handelt es sich um eine Überprüfung der Existenz
if ( count($fields) )
$sqlFields = '`'.implode('`, `', $fields).'`';
else
$sqlFields = '1';

$sql = 'SELECT %s FROM `houseconfig` WHERE `locname` = %s LIMIT 1';
$res = db_query(sprintf($sql, $sqlFields, $name)) or die (db_error($sql));

return (isset($sqlFields) ? db_fetch_assoc($res):db_num_rows($res));
}

/**
* Mit dieser Funktion lässt sich der jeweilige Bezirk (Wohnviertel)
* anhand der Locations- Id wiedergeben. Desweiteren lassen sich Tabellenfelder
* abfragen, um bei weiteren Verwendungszwecken damit zu Arbeiten.
*
* @param string $locationId Name von dem Bezirk (Wohnviertel)
* @param array $fields Tabellenfelder, bei weiteren Verwendungszweck
*
* @return array or integer
*/
function uptownByLocationId ( $locationId, $fields = array() )
{
// Überprüfen, ob Attribute im Array vorhanden sind
// Falls nicht, handelt es sich um eine Überprüfung der Existenz
if ( count($fields) )
$sqlFields = '`'.implode('`, `', $fields).'`';
else
$sqlFields = '1';

$sql = 'SELECT %s FROM `houseconfig` WHERE `locid` = %s LIMIT 1';
$res = db_query(sprintf($sql, $sqlFields, $locationId)) or die (db_error($sql));

return (isset($sqlFields) ? db_fetch_assoc($res):db_num_rows($res));
}


// Beispiel
$uptownArray = uptownByLocationId(2, array('locname', 'locid'));
if ( is_array($uptownArray) )
addnav('Wohnviertel '.$uptownArray['locname'], 'houses.php?location='.$uptownArray['locid']);')


Versuche es mal mit diesen beiden Funktionen, es ist recht Simpel gehalten und Du kannst somit deine Wohnviertel je nach bedarf abfragen, mit den dazugehörigen Feldern, falls eine weiterverarbeitung statt findet.

Autor:  drimatu [ Sa 30 Mai, 2009 17:56 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

hm, sorry, aber ich hab schon probleme damit die dql-befehle die in der houses.php stehen einzubinden. selbst dort erhalte ich schon viele fehlermeldungen. evt. kann mir jemand dabei helfen. mfg

Autor:  Auric [ Sa 30 Mai, 2009 18:12 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Was sind denn die Fehlermeldungen? Hellsehen können wir auch nicht!

Autor:  drimatu [ Sa 30 Mai, 2009 18:56 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

wenn ich nicht vollkommen verblödet bin soll man folgendes einspeisen:

DROP TABLE IF EXISTS `houseconfig`;
CREATE TABLE `houseconfig` (
`locid` int(10) unsigned NOT NULL auto_increment,
`location` varchar(255) NOT NULL default 'village.php',
`locname` varchar(50) NOT NULL default 'Wohnviertel',
`buy` enum('0','1') NOT NULL default '0',
`sell` enum('0','1') NOT NULL default '0',
`build` enum('0','1') NOT NULL default '0',
`rob` enum('0','1') NOT NULL default '0',
`defaultgoldprice` int(10) unsigned NOT NULL default '30000',
`defaultgemprice` int(10) unsigned NOT NULL default '50',
`buildprice_increase` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`locid`)
) TYPE=MyISAM COMMENT='Konfiguration der Wohnanlagen - was ist erlaubt?';

CREATE TABLE `housemodules` (
`moduleid` int(10) unsigned NOT NULL auto_increment,
`modulefile` varchar(50) NOT NULL default 'default.php',
`modulename` varchar(50) NOT NULL default 'living_room',
`moduleauthor` varchar(50) NOT NULL default '',
`moduleversion` varchar(20) NOT NULL default '',
`built_in` enum('0','1') NOT NULL default '1',
`linkcategory` varchar(50) NOT NULL default 'Räume',
`linktitle` varchar(50) NOT NULL default '',
`linkorder` smallint(3) unsigned NOT NULL default '1',
`showto` SET( 'owner', 'guest' ) DEFAULT 'owner,guest' NOT NULL,
PRIMARY KEY (`moduleid`),
UNIQUE `modulename` (`modulename`),
KEY `built_in` (`built_in`),
KEY `linkorder` (`linkorder`),
KEY `showto` (`showto`)
) TYPE=MyISAM COMMENT='Module der Häuser';
CREATE TABLE `housemoduledata` (
`moduleid` int(10) unsigned NOT NULL,
`name` varchar(50) NOT NULL default '',
`houseid` int(10) unsigned NOT NULL default '0',
`value` varchar(255) NULL,
PRIMARY KEY (`moduleid`,`name`,`houseid`)
) TYPE=MyISAM COMMENT='Moduldaten für die Häuser';
DROP TABLE IF EXISTS `houses`;
CREATE TABLE `houses` (
`houseid` int(10) unsigned NOT NULL auto_increment,
`owner` int(10) unsigned NOT NULL default '0',
`status` enum('build','sell','ready') NOT NULL default 'build',
`goldprice` int(10) unsigned NOT NULL default '30000',
`gemprice` int(10) unsigned NOT NULL default '50',
`housename` varchar(25) default NULL,
`description` text NOT NULL default '',
`locid` int(10) UNSIGNED NOT NULL default '1',
PRIMARY KEY (`houseid`),
KEY `locid` (`locid`),
KEY `owner` (`owner`)
) TYPE=MyISAM;
INSERT INTO `settings` VALUES
('startbuild','0'),
('mindkbuild','1'),
('minlevelbuild','5'),
('defaulthousemodule','1');

Fehler

SQL-Befehl:

CREATE TABLE `housemodules` (
`moduleid` int( 10 ) unsigned NOT NULL AUTO_INCREMENT ,
`modulefile` varchar( 50 ) NOT NULL default 'default.php',
`modulename` varchar( 50 ) NOT NULL default 'living_room',
`moduleauthor` varchar( 50 ) NOT NULL default '',
`moduleversion` varchar( 20 ) NOT NULL default '',
`built_in` enum( '0', '1' ) NOT NULL default '1',
`linkcategory` varchar( 50 ) NOT NULL default 'R䵭e', `l inktitle ` varchar( 50 ) NOT NULL default '',
`l inkorder ` smallint( 3 ) unsigned NOT NULL default '1 ', `s howto ` SET( 'owner ', 'guest ' ) DEFAULT 'owner,
guest ' NOT NULL ,
PRIMARY KEY ( `m oduleid `) , UNIQUE `m odulename ` (
`m odulename `) ,
KEY `b uilt_in ` (
`b uilt_in `) ,
KEY `l inkorder ` (
`l inkorder `) ,
KEY `s howto ` (
`s howto `)
) TYPE = MYISAM COMMENT = 'Module der H䵳er ';

MySQL meldet:
#1067 - Invalid default value for 'linkcategory'

evt kann mir jemand auch genau die sql-befehle die ausgeführt werden sollen in einer txt schicken.
mfg

Autor:  Liath [ Sa 30 Mai, 2009 20:42 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

scheinbar kommt er mit dem Charset nicht klar mit dem du die SQL Queries einfügen willst, änder das Charset mal auf latin1_swedish_ci dann sollte es gehen

Autor:  Auric [ Sa 30 Mai, 2009 21:24 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

latin1_general_ci oder latin1_german1_ci wäre wohl sie bessere Wahl. Sollte das der Fall gewesen sein nomm stattdessen utf-8 (general_ci)

Autor:  Kevz [ Mi 24 Jun, 2009 17:36 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Hallo zusammen,

habe gerade über einen Zufall gefunden, daß die Schatzkammer gar nicht über einen Log- mitarbeitet. Sprich, daß nicht Dokumentiert wird, oder auch hinterlegt wird - ob jemand Goldstücke, oder Edelsteine einge-/ausgezahlt hat.


Es wird nirgends dort mitgeloggt, mit der debuglog- Funktion, ob der Benutzer- oder auch Spieler etwas eingezahlt, oder abgehoben hat.

Das heißt, wenn ich in einem Haus bin - mit mehreren Bewohnern.. Und es wird regelmäßig eingezahlt- sowie ausgezahlt. Dann kann ich da bescheißen.


Ein kleines Beispiel,
wenn ich in einem Haus wohne - bin nur Mitbewohner - und nehme mir 2500 Goldstücke. Nun zahle ich aber wieder 3000 Goldstücke "eigentlich" wieder ein.

Ich tue es aber nicht. Denn ich gebe einfach im Chat den Befehl hier ein:
/me `@deponiert `^3500`@ Gold.


Ich habe in dem Moment also einfach nur vorgetäuscht, daß ich Goldstücke einzahle, aber es nicht tue. Und wenn nun der nächste Bewohner etwas einzahlt. Dann merkt es niemand mehr.. Denn wirklich verfolgen ob es stimmt, oder nicht - geht ja nicht, es wird ja nirgends mit Dokumentiert.


Theoretisch wäre es ja möglich so zu handhaben.. In der Praxis würde es auch durchaus klappen, wenn wirklich viele Mitbewohner da sind und Regelmäßig ein-/auszahlen.

Autor:  Linus [ Mi 24 Jun, 2009 18:46 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Kevz hat geschrieben:
Ein kleines Beispiel,
wenn ich in einem Haus wohne - bin nur Mitbewohner - und nehme mir 2500 Goldstücke. Nun zahle ich aber wieder 3000 Goldstücke "eigentlich" wieder ein.

Ich tue es aber nicht. Denn ich gebe einfach im Chat den Befehl hier ein:
/me `@deponiert `^3500`@ Gold.


Ich habe bei mir folgende Lösung hierzu umgesetzt:
In meiner Schatzkammer gibt es zwei Chat-Orte untereinander, im ersten werden die Kontobewegungen vom System eingetragen, hier kann der Spieler weder selbst posten, noch editieren oder per Chatdelete löschen (diese Möglichkeiten zum Betrügen gibt es auch auf vielen LoGDs).
Das sieht in meiner treasury.php folgendermassen aus:$this->bbcode_second_pass_code('', ' viewcommentary("house-treasury-".$session['user']['specialmisc']['houseid'],"Kontobewegungen:",30,"sagt",false);
output("`n`n`n`n");
viewcommentary("house-treasure-".$session['user']['specialmisc']['houseid'],"Mit Mitbewohnern reden:",30,"sagt",1,1);
')
Das funktioniert allerdings nur wenn die Funktion viewcommentary() entsprechend angelegt ist. Die Deklarationszeile dieser Funtion sieht folgendermassen aus:$this->bbcode_second_pass_code('', 'function viewcommentary($section,$message="Kommentar hinzufügen?",$limit=10,$talkline="sagt",$dopost=true,$farbtabelle=false,$button="Hinzufügen",$navis=true) {
')Die Aufrufparameter sollten eigentlich selbsterklärend sein: $dopost=false bedeutet weder Eingabezeile noch Editier- oder Löschbutton. $farbtabelle=true zeigt zusätzlich die Tabelle der Farbcodes unter dem Chatort an.
Auf Wunsch kann ich auch meine komplette viewcommentary() hier zitieren, aber die hat viele spezifische Änderungen für Alvion und ist im übrigen absolut nicht kompatibel zum MuchInOne-Bundle!

Autor:  Rikkarda [ Mi 24 Jun, 2009 18:49 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Ich denke für dieses von Kevz angesprochene Problem hat jeder schon auf seine Art und Weise eine Lösung gefunden. Viele Logds haben "buch des goldes/Edelsteine" oder Tabellen wo steht xy hat so und so Guthaben etc..
Aber am Ende ist eins für mich ausschlaggebend (bei mir dürfen eh nicht alle in die Kammer):

Wem du Zugang zu Deinem Haus gibst (und ggf. zu deine Schatzkammer) entscheidest DU alleine... Und wenn man dich bestielt oder betrügt... dann ist es eigene Schuld, denn im RL geb ich ja auch net Hinz+Kunz nen Schlüssel zur Wohnung und zum Safe :P

Autor:  Kevz [ Mi 24 Jun, 2009 19:06 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Ich wollte es nur am Rande anmerken, falls jemand bei stutzig geworden ist. Und indirekt ist es ja schon eine Sicherheitslücke - wohl mehr- oder weniger. :)

Denn ich habe mir mal mein Schatzkammer Archiv von damals mal angesehen und wollte das ganze ohne jegliche Änderung bereitstellen. Dabei ist es mir aufgefallen, daß soetwas gar nicht mit aufgezeichnet wird. Es wäre natürlich Optimal gewesen, wenn ein debuglog- da gewesen wäre.. so hätte ich das ganze bequem über MySQL auslesen können etc.

Autor:  Linus [ Mi 24 Jun, 2009 20:03 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Ich hatte es eine Zeit lang mal als debuglog drin. Wenn du aber viele aktive Kämpfer im Dorf hast, die natürlich ständig die Schatzkammern füllen und entleeren, macht das eine Menge Einträge, und das debuglog sieht schnell unübersichtlich aus. Und dass fand ich doppeltgemoppelt, da es vom System auch in die commentary der DB eingetragen wird. ;)

Autor:  Rantanplan [ Mi 10 Feb, 2010 02:50 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Hi,
bei mir wird links in der Leiste alles durcheinander angezeigt. Kann man das
irgendwie ändern? So das Sonstiges und Weitere Räume nur einmal da steht?

Dateianhänge:
eee.jpg
eee.jpg [ 20.44 KIB | 3359-mal betrachtet ]

Autor:  Rikkarda [ Mi 10 Feb, 2010 08:32 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

das hängt mit der Reihenfolge der Module zusammen. Du musst halt da ein wenig sortieren, aber vorsichtig, wenn du an die Schatzkammer gehst. Da könnte dann alles weg sein^^

Autor:  Rantanplan [ Mi 10 Feb, 2010 13:20 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Ach so, das heisst einfach Reihenfolge ändern? Werde es mal versuchen. Die Schatzkammern sind noch leer, also halb so wild :D
Danke!

Autor:  Erenya [ Mo 29 Mär, 2010 21:12 ]
Betreff des Beitrags:  Re: Neues Hausscript (für 0.9.7)

Schickes Hausscript.
Großes Lob an Chaosmaker.
Der Einbau war recht einfach, selbst für einen blutigen Anfänger wie mich. ^_^
Und die Hilfestellung hier im Thread hat dann noch sein übriges Getan dass es lief.
Danke für dieses schöne Script.

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