Hallo alle mit einander.
Ich habe nun angefangen in Chaosmakers Haussystem, ein eigenes Zimmer zu erstellen. Habe dazu die Vorlage verwendet und mich ein wenig an den bereits vorhandenen orientiert.
Da ich jedoch innerhalb des Raumes das Tier, bei mir sinds Droiden, füttern (aufladen) lassen möchte und das zu einem günstigeren Preis als in den Ställen, habe ich Codeschnipsel aus der stall-datei übernommen und versucht diese entsprechend umzuschreiben.
Guckt man hier:
[php]<?php
// default module template
// use this to create modules for houses
// Author: Chaosmaker <webmaster@chaosonline.de>
// all function names MUST end with the module's name (as in $info['modulename'])!!!
// hint: use search&replace ;) replace 'Droidenkammer' with your module's (internal) name.
function module_getinfo_Droidenkammer() {
$info = array(
'modulename'=>'droidenkammer', // internal name; use letters, numbers and underscores only!
'modulefile'=>basename(__FILE__), // filename of the module; if you allow to rename the script, do NOT change this!
'moduleauthor'=>'Skywalker031', // the author's name
'moduleversion'=>'0.1', // the module's version number
'built_in'=>'1', // '1', if each house should have this module built-in; otherwise '0'
'linkcategory'=>'Weitere Räume', // the category (in houses.php's menu) under which the link to this module should be shown
'linktitle'=>'Droidenkammer', // the link title of the module
'showto'=>'owner,guest' // who should use this module? possible options: 'owner', 'guest' and 'owner,guest'
);
return $info;
}
function module_install_Droidenkammer() {
// insert data into module table - do NOT change this (well... just change the function name ;))!
$info = module_getinfo_Droidenkammer();
$sql = "INSERT INTO housemodules
(modulefile, modulename, moduleversion, moduleauthor, built_in, linkcategory, linktitle,showto)
VALUES ('{$info['modulefile']}', '{$info['modulename']}', '{$info['moduleversion']}', '{$info['moduleauthor']}', '{$info['built_in']}', '{$info['linkcategory']}', '{$info['linktitle']}', '{$info['showto']}')";
db_query($sql);
$moduleid = db_insert_id(LINK);
// insert global module data (you can add several entries - but do NOT
// change anything else than "FieldName" and "FieldValue"!)
/*
$sql = 'INSERT INTO housemoduledata (moduleid, name, houseid, value)
VALUES ('.$moduleid.',"FieldName",0,"FieldValue")';
db_query($sql);
*/
/* install_moduledata begin */
/* install_moduledata end */
// here you can change everything else needed (e.g. adding settings)
// be careful: these changes must be global; per-house-changes will be done
// in module_build()!
/* install_other begin */
/* install_other end */
}
function module_uninstall_Droidenkammer() {
// uninstalling the module
// this function should also contain all module_destroy contents
// getting moduleid - do NOT change this (same as above... the function name should be changed)!
$info = module_getinfo_Droidenkammer();
$moduleid = getmoduleid($info['modulename']);
// deleting module from db - do NOT change this!
$sql = 'DELETE FROM housemodules WHERE moduleid='.$moduleid;
db_query($sql);
// deleting internal module data - do NOT change this!
$sql = 'DELETE FROM housemoduledata WHERE moduleid='.$moduleid;
db_query($sql);
// here you should delete all other added things (e.g. settings) of this module
/* delete_other begin */
/* delete_other end */
}
function module_build_Droidenkammer($houseid) {
// this is only needed if 'built_in' in module_info() is set to 0
// getting moduleid - do NOT change this (function name... blablabla)!
$info = module_getinfo_Droidenkammer();
$moduleid = getmoduleid($info['modulename']);
// setting flag for house - do NOT change this!
$sql = 'INSERT INTO housemoduledata (moduleid, name, houseid, value)
VALUES ('.$moduleid.',"#activated#",'.$houseid.',"1")';
db_query($sql);
// here you can change everything else needed (e.g. changing user settings)
// be careful: these changes must be for this house only; global changes will be done
// in module_install()!
/* build_other begin */
/* build_other end */
}
function module_destroy_Droidenkammer($houseid) {
// this is only needed if 'built_in' in module_info() is set to 0
// getting moduleid - do NOT change this (function name... moooooooooh!)!
$info = module_getinfo_Droidenkammer();
$moduleid = getmoduleid($info['modulename']);
// deleting module data of this house - do NOT change this!
$sql = 'DELETE FROM housemoduledata WHERE moduleid='.$moduleid.' AND houseid='.$houseid;
db_query($sql);
// here you should delete all other added things (e.g. user settings) of this module and house
/* destroy_other begin */
/* destroy_other end */
}
function module_show_Droidenkammer() {
// this is the main part of the module where all output is done ;)
// don't forget the navs; only the default module does not need them (but may add some)
// to return to the main module, use this link: houses.php?op=drin&module (without id!)
// don't forget 'global $session;' if you need the player's data (and you WILL need them!)
/* content_show begin */
global $session;
addcommentary();
$sql = 'SELECT houses.housename, houses.owner FROM houses LEFT JOIN accounts ON accounts.acctid=houses.owner WHERE houses.houseid='.$session['user']['specialmisc']['houseid'];
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
output("`2`b`c$row[housename] `2 (Droidenkammer)`c`b`n`n");
$futtercost = $session[user][level]*10;
viewcommentary("house-".$session['user']['specialmisc']['houseid'],"Mit anderen reden:",20,"sagt");
// show furniture
output("`n`n`n<table border='0'><tr><td>`2`bExtra Ausstattung`b</td></tr><tr>",true);
output("</td><td>",true);
$sql = "SELECT name,description FROM items WHERE value1={$session['user']['specialmisc']['houseid']} AND class='Möbel' ORDER BY class,id ASC";
$result = db_query($sql) or die(db_error(LINK));
while ($item = db_fetch_assoc($result)) {
output("`n`&$item[name]`0 (`i$item[description]`i)");
}
output("</td></tr></table>",true);
if ($session['user']['hashorse']=0) {
output("`2Es ist jetzt `^".getgametime()."`2 Uhr, und du befindest dich in der Droidenkammer.`n`n`n");
output("`2Auf einer Steinbank an der einen Wand, siehst du diverses Werkzeug zum montieren von Droiden.`n");
output("`2An der anderen Seite steht eine Droiden-Ladestation und ein Com-Terminal.`n");
addnav("Droidenkammer");
addnav("Werkzeug benutzen","houses.php?op=drin&act=werkzeug");
addnav("Ladestation ansehen","houses.php?op=drin&act=laden");
addnav("Com-Terminal","houses.php?op=drin&act=terminal");
addnav("Zurück");
addnav("Zurück zum Wohnblock","houses.php?op=drin&module=");
}
addnav("Zurück");
addnav("Zurück zum Wohnblock","houses.php?op=drin&module=");
if($_GET[act]==""){
output("`2Es ist jetzt `^".getgametime()."`2 Uhr, und du befindest dich in der Droidenkammer.`n`n`n");
} elseif ($_GET[act]=="werkzeug"){
output("`2Mit dem Werkzeug ziehst du einige Schrauben und Muttern an deinem Droiden fest. Nun klappert auch nichts mehr. Freudig gehst du zurück.");
addnav("Zurück");
addnav("Zurück zum Wohnblock","houses.php?op=drin&module=");
} elseif ($_GET[act]=="laden") {
output("`2Die Ladestation gibt deinem Droiden, gegen 50% der Kosten bei Watto, wieder neue Kraft, sobald er sich an der Station angeschlossen hat.`n");
addnav("{$playermount['mountname']} laden (`^$futtercost`0 Credits)","houses.php?op=drin&act=futter");
addnav("Zurück");
addnav("Zurück zum Wohnblock","houses.php?op=drin&module=");
} elseif ($_GET[act]=="terminal") {
output("`2Dein Droide schliesst sich an das Com-Terminal an und bekommt somit die neusten Informationen, die er sogleich an dich weitergibt");
addnav("Holo News","news.php",false,true);
addnav("Zurück");
addnav("Zurück zum Wohnblock","houses.php?op=drin&module=");
}
if($_GET[act]=='futter'){
if ($session[user][gold]>=$futtercost) {
$buff = unserialize($playermount['mountbuff']);
if ($session['bufflist']['mount']['rounds'] == $buff['rounds']) {
output("Dein {$playermount['mountname']} ist geladen. Darum brauchst du nichts zu bezahlen.");
}else if ($session['bufflist']['mount']['rounds'] > $buff['rounds']*.5) {
$futtercost=$futtercost/2;
output("Dein {$playermount['mountname']} lädt sich nur etwas auf. {$playermount['mountname']} ist voll geladen. ");
output("Da aber noch über die Hälfte der Aufladung übrig ist, bekommst du nochmal 50% Preisnachlass.`nDu bezahlst nur $futtercost Credits.");
$session[user][gold]-=$futtercost;
$session[user][reputation]--;
}else{
$session[user][gold]-=$futtercost;
output("Dein {$playermount['mountname']} lädt sich voll auf.`n");
output("Dein {$playermount['mountname']} ist vollständig geladen und du legst $futtercost Creditstreifen in die Zahlluke der Ladestation.");
$session[user][reputation]--;
}
$session['bufflist']['mount']=$buff;
$session[user][fedmount]=1;
} else {
output("`7Du hast nicht genug Credits dabei, um die Aufladung deines Droiden zu bezahlen.");
}
// uncomment these lines if you want to show the default navs even if this is not the default module
// global $shownavs;
// $shownavs = true;
// uncomment these lines if you want to hide the default navs even if this is the default module
// global $shownavs;
// $shownavs = false;
/* content_show end */
}
?>[/php]
Leider bekomme ich nun eine Fehlermeldung, wenn ich auf Module beim Hausmeister gehe. Ich kann diesen Raum also nicht installieren.
Die Fehlermeldung lautet
Zitat:
Parse error: syntax error, unexpected $end in /www/htdocs/theleg/freihagen/logd/housemodules/droidenkammer.php on line 220
ich habe nun schon einige ";" gefunden, die fehlten aber leider finde ich nicht den Grund, dieser Fehlermeldung.
Auch in Selfphp hab ich dazu nichts gefunden. Auch habe ich hier im Forum gesucht, aber nicht wirklich etwas gefunden, was mir eine 100%ige Antwort gegeben hätte.
Über eine Antwort zur Lösung dieses Problems würde ich mich sehr freuen.