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

Hauserweiterung - Aufwerten seines Hauses
https://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=1533
Seite 1 von 1

Autor:  Zeroground [ Do 07 Jul, 2005 21:56 ]
Betreff des Beitrags:  Hauserweiterung - Aufwerten seines Hauses

Folgende Anleitung ist die Anleitung zum einfügen eines Hausaufwertsystems, welches dem User die möglichkeit gibt, ein Haus zu bauen (Normal wie immer) und es danach gegen einen bestimmten Preis Aufzuwerten, sowohl Namentlich, als auch von der Kapazität für den Schatz.

Ich möchte darauf hinweisen, das diese Funktion auf die Original houses.php gecoded wurde, somit nur für diese 100% funktioniert.


Es wird empfohlen ein Backup zu erstelen!!!!
(sollte igentlich standard sein...)

$this->bbcode_second_pass_code('', '
//--------------------------------------------------\\
// Hack von Zeroground \\
//Bei Fragen, E-Mail an : P_P_V_A@msn.com \\
//--------------------------------------------------\\


//-->INSTALLATION
//-->Öffne houses.php
//-->finde
$goldcost=30000;
$gemcost=50;

//-->danach enfügen


$sql="SELECT houses.*,accounts.name AS besitzer FROM houses LEFT JOIN accounts ON accounts.acctid=houses.owner";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
//Haus-schatz-maximum

if ($row[status]==0)
{
$Hausgoldmax='0';
$Hausedelmax='0';
$Hausupgradegold='0';
$Hausupgradeedel='0';
}
if ($row[status]==1)
{
$Hausgoldmax='15000';
$Hausedelmax='25';
$Hausupgradegold='10000';
$Hausupgradeedel='15';
}

if ($row[status]==2)
{
$Hausgoldmax='0';
$Hausedelmax='0';
$Hausupgradegold='0';
$Hausupgradeedel='0';
}
if ($row[status]==3)
{
$Hausgoldmax='0';
$Hausedelmax='0';
$Hausupgradegold='0';
$Hausupgradeedel='0';
}
if ($row[status]==4)
{
$Hausgoldmax='10000';
$Hausedelmax='15';
$Hausupgradegold='0';
$Hausupgradeedel='0';
}

if ($row[status]==5)
{
$Hausgoldmax='25000';
$Hausedelmax='35';
$Hausupgradegold='20000';
$Hausupgradeedel='25';
}

if ($row[status]==6)
{
$Hausgoldmax='40000';
$Hausedelmax='50';
$Hausupgradegold='25000';
$Hausupgradeedel='30';
}

if ($row[status]==7)
{
$Hausgoldmax='55000';
$Hausedelmax='65';
$Hausupgradegold='35000';
$Hausupgradeedel='35';
}

if ($row[status]==8)
{
$Hausgoldmax='70000';
$Hausedelmax='75';
$Hausupgradegold='40000';
$Hausupgradeedel='40';
}

if ($row[status]==9)
{
$Hausgoldmax='80000';
$Hausedelmax='85';
$Hausupgradegold='50000';
$Hausupgradeedel='50';
}

if ($row[status]==10)
{
$Hausgoldmax='95000';
$Hausedelmax='95';
$Hausupgradegold='60000';
$Hausupgradeedel='60';
}

if ($row[status]==11)
{
$Hausgoldmax='110000';
$Hausedelmax='110';
$Hausupgradegold='70000';
$Hausupgradeedel='65';
}

if ($row[status]==12)
{
$Hausgoldmax='135000';
$Hausedelmax='135';
$Hausupgradegold='80000';
$Hausupgradeedel='85';
}

if ($row[status]==13)
{
$Hausgoldmax='300000';
$Hausedelmax='300';
}

// Hausschatzdepot Ende
//News Variablen
if ($row[status]==1) $Hausaufgewertet ='!Kellerloch';
if ($row[status]==4) $Hausaufgewertet ='!Kerkerloch`0';
if ($row[status]==5) $Hausaufgewertet ='!Bruchbude`0';
if ($row[status]==6) $Hausaufgewertet ='!Haus`0';
if ($row[status]==7) $Hausaufgewertet ='!Wohnhaus`0';
if ($row[status]==8) $Hausaufgewertet ='!Nobelhauss`0';
if ($row[status]==9) $Hausaufgewertet ='!Villa`0';
if ($row[status]==10) $Hausaufgewertet ='!Festung`0';
if ($row[status]==11) $Hausaufgewertet ='!Schloss`0';
if ($row[status]==12) $Hausaufgewertet ='!Göttergleicher Tempel`0';
//News Variablen Ende

//--> Finde
if ($row[status]==0) output("`6im Bau`0");
if ($row[status]==1) output("`!Rattenloch`0");
if ($row[status]==2) output("`^zum Verkauf`0");
if ($row[status]==3) output("`4Verlassen`0");

//--> Ersetze mit (achtung 2 Mal im original enthalten... Beidemale ersetzen!!)
if ($row[status]==0) output("`6im Bau`0");
if ($row[status]==1) output("`!Rattenloch`0");
if ($row[status]==2) output("`^zum Verkauf`0");
if ($row[status]==3) output("`4Verlassen`0");
if ($row[status]==4) output("`!Kellerloch");
if ($row[status]==5) output("`!Kerkerloch`0");
if ($row[status]==6) output("`!Bruchbude`0");
if ($row[status]==7) output("`!Haus`0");
if ($row[status]==8) output("`!Wohnhaus`0");
if ($row[status]==9) output("`!Nobelhauss`0");
if ($row[status]==10) output("`!Villa`0");
if ($row[status]==11) output("`!Festung`0");
if ($row[status]==12) output("`!Schloss`0");
if ($row[status]==13) output("`!Göttergleicher Tempel`0");

//--> Finde

$amt=abs((int)$_POST[gold]);
if ($amt>$session[user][gold]){
output("`2So viel Gold hast du nicht dabei.");
}else if($row[gold]>round($goldcost/2)){
output("`2Der Schatz ist voll.");
}else if($amt>(round($goldcost/2)-$row[gold])){
output("`2Du gibst alles, aber du bekommst beim besten Willen nicht so viel in den Schatz.");
}else if ($amt<0){
output("`2Wenn du etwas aus dem Schatz nehmen willst, versuche nicht, etwas negatives hineinzutun.");
}else if ($session[user][amountouttoday]+$amt > $maxout) {
output("`2Du darfst nicht mehr als `^$maxout`2 Gold pro Tag deponieren.");
}else{


//--> Ersetze mit
$amt=abs((int)$_POST[gold]);
if ($amt>$session[user][gold]){
output("`2So viel Gold hast du nicht dabei.");
}else if($row[gold]>$Hausgoldmax){
output("`2Der Schatz ist voll.");
}else if($amt>($Hausgoldmax-$row[gold])){
output("`2Du gibst alles, aber du bekommst beim besten Willen nicht so viel in den Schatz.");
}else if ($amt<0){
output("`2Wenn du etwas aus dem Schatz nehmen willst, versuche nicht, etwas negatives hineinzutun.");
}else if ($session[user][amountouttoday]+$amt > $maxout) {
output("`2Du darfst nicht mehr als `^$maxout`2 Gold pro Tag deponieren.");
}else{

//--> Finde
}else{
$amt=abs((int)$_POST[gems]);
if ($amt>$session[user][gems]){
output("`2So viele Edelsteine hast du nicht.");
}else if($row[gems]>=round($gemcost/2)){
output("`2Der Schatz ist voll.");
}else if($amt>(round($gemcost/2)-$row[gems])){
output("`2Du gibst alles, aber du bekommst beim besten Willen nicht so viel in den Schatz.");
}else if ($amt<0){
output("`2Wenn du etwas aus dem Schatz nehmen willst, versuche nicht, etwas negatives hineinzutun.");
}else{

//--> Ersetze mit

}else{
$amt=abs((int)$_POST[gems]);
if ($amt>$session[user][gems]){
output("`2So viele Edelsteine hast du nicht.");
}else if($row[gems]>=$Hausedelmax){
output("`2Der Schatz ist voll.");
}else if($amt>($Hausedelmax-$row[gems])){
output("`2Du gibst alles, aber du bekommst beim besten Willen nicht so viel in den Schatz.");
}else if ($amt<0){
output("`2Wenn du etwas aus dem Schatz nehmen willst, versuche nicht, etwas negatives hineinzutun.");
}else{

//--> Finde
if (getsetting('activategamedate','0')==1) output("Wir schreiben den `^".getgamedate()."`2.`n");
output ("Es ist jetzt `^".getgametime()."`2 Uhr.`n`n");

//-->Danach einfügen

//Hausupgrade script
if ($_GET[op]=="drin")
{
if ($_GET[act]=="upg")
{
if ($session['user']['gold']>= $Hausupgradegold)
{
if ($session['user']['gems']>= $Hausupgradeedel)
{
$session['user']['gold']-= $Hausupgradegold;
$session['user']['gems']-= $Hausupgradeedel;
if ($row[status]==1)
{$sql = "UPDATE houses SET status=5 WHERE owner=".$session[user][acctid]." ";
}
else{
$sql = "UPDATE houses SET status=(status+1) WHERE owner=".$session[user][acctid]." ";
}
db_query($sql);
output("------------------------------------------------`n");
output("Du hast dein Zuhause erfolgreich Aufgewertet!`n");
output("Herzlichen Glückwunsch!`n");
addnews($session['user']['name']." hat sein Haus Aufgewertet zu ".$Hausaufgewertet);
output("------------------------------------------------`n");
}
else
{
output("---------------------------------------------------------------------------------`n");
output("Es scheint als hast du nicht genug Gold oder Edelsteine bei dir`n");
output("Das Bauamt schickt dich zurück und sagt du sollst wiederkommen wenn du alles dabei hast.`n");
output("---------------------------------------------------------------------------------`n");
}
}
else
{
output("---------------------------------------------------------------------------------`n");
output("Es scheint als hast du nicht genug Gold oder Edelsteine bei dir`n");
output("Das Bauamt schickt dich zurück und sagt du sollst wiederkommen wenn du alles dabei hast.`n");
output("---------------------------------------------------------------------------------`n"); }
}
}
//Hausupgrade Ende
output("---------------------------------------------------------------------------------`n");
output("Momentan kann deine Schatzkammer ".$Hausgoldmax." Gold und ".$Hausedelmax." Edelsteine fassen.`n");
output("Der Nächste Ausbau deines Hauses kostet ".$Hausupgradegold." Gold und ".$Hausupgradeedel." Edelsteine`n");
output("---------------------------------------------------------------------------------`n");


//--> Finde
if ($session[user][house]==$session[housekey]){
addnav("Haus umbenennen","houses.php?op=drin&act=rename");
addnav("Beschreibung ändern","houses.php?op=drin&act=desc");

//--> Danach einfügen
addnav("Haus Aufwerten","houses.php?op=drin&act=upg");


// == FERTIG ==\\
')

Autor:  Squall [ Mi 23 Nov, 2005 04:17 ]
Betreff des Beitrags: 

nett..gibt nur ein problem...habe alles so eingesetz wie es da steht..
nur kommt:wenn ich auf Aufwerten klinke..kein Preis fürs Aufwerten...nur ein glückwunsch..das ich es geschafft habe :?
ohne irgendwas dafür getan zuhaben...naja und das steht zwar da..das es ne villa ist..trotzdem kann man nicht mehr hinein tun :(

Mfg

Autor:  Meteora [ Mi 23 Nov, 2005 10:31 ]
Betreff des Beitrags: 

die

[php]
$Hausgoldmax='0';
$Hausedelmax='0';
[/php]

bestimmen, wie viel in den schatz passt... folglich also 0 Gold und 0 Gems...
kannst du nach belieben ändern (same mit
[php]
$Hausupgradegold='0';
$Hausupgradeedel='0';
[/php],welche den Preis bestimmen.)

Autor:  Auric [ Mi 23 Nov, 2005 10:46 ]
Betreff des Beitrags: 

Hübsch, vor allem recht umfangreich
was ich dir als Update noch empehlen könnte wären spezielle Räume, die erst ab einem gewissen Level zu erreichen sind, oder unterschiedliche Schlüssel-anzahlen

So hab ichs zumindest bei mir.
aber echt nicht schlecht

Auric

Autor:  Eliwood [ Mi 23 Nov, 2005 17:19 ]
Betreff des Beitrags:  Re: Hauserweiterung - Aufwerten seines Hauses

Eine Bitte...

Mach bei sovielen Möglichkeiten wenigstens folgendes:

[php]
switch($row['status'])
{
case 0:
$Hausgoldmax='0';
$Hausedelmax='0';
$Hausupgradegold='0';
$Hausupgradeedel='0';
break;
// [...]
}
[/php]

anstatt von:

[php]if ($row[status]==0)
{
$Hausgoldmax='0';
$Hausedelmax='0';
$Hausupgradegold='0';
$Hausupgradeedel='0';
}
if ($row[status]==1)
{
$Hausgoldmax='15000';
$Hausedelmax='25';
$Hausupgradegold='10000';
$Hausupgradeedel='15';
}

if ($row[status]==2)
{
$Hausgoldmax='0';
$Hausedelmax='0';
$Hausupgradegold='0';
$Hausupgradeedel='0';
}
if ($row[status]==3)
{
$Hausgoldmax='0';
$Hausedelmax='0';
$Hausupgradegold='0';
$Hausupgradeedel='0';
}
if ($row[status]==4)
{
$Hausgoldmax='10000';
$Hausedelmax='15';
$Hausupgradegold='0';
$Hausupgradeedel='0';
}

if ($row[status]==5)
{
$Hausgoldmax='25000';
$Hausedelmax='35';
$Hausupgradegold='20000';
$Hausupgradeedel='25';
}

if ($row[status]==6)
{
$Hausgoldmax='40000';
$Hausedelmax='50';
$Hausupgradegold='25000';
$Hausupgradeedel='30';
}

if ($row[status]==7)
{
$Hausgoldmax='55000';
$Hausedelmax='65';
$Hausupgradegold='35000';
$Hausupgradeedel='35';
}

if ($row[status]==8)
{
$Hausgoldmax='70000';
$Hausedelmax='75';
$Hausupgradegold='40000';
$Hausupgradeedel='40';
}

if ($row[status]==9)
{
$Hausgoldmax='80000';
$Hausedelmax='85';
$Hausupgradegold='50000';
$Hausupgradeedel='50';
}

if ($row[status]==10)
{
$Hausgoldmax='95000';
$Hausedelmax='95';
$Hausupgradegold='60000';
$Hausupgradeedel='60';
}

if ($row[status]==11)
{
$Hausgoldmax='110000';
$Hausedelmax='110';
$Hausupgradegold='70000';
$Hausupgradeedel='65';
}

if ($row[status]==12)
{
$Hausgoldmax='135000';
$Hausedelmax='135';
$Hausupgradegold='80000';
$Hausupgradeedel='85';
}

if ($row[status]==13)
{
$Hausgoldmax='300000';
$Hausedelmax='300';
} [/php]


[Ja, es gäbe noch mind. eine weitere Möglichkeit, und zwra die Preise etc. in nem array zu speichern und dann per $Hausgoldmax[$row['status']] aufzurufen - Ist sicherlich auch schneller, aber da muss man einiges umdenken ;) ]


Aber Ansonsten: Nett und eine gute Umsetzung [, ich hätte jetzt noch das ganze Feld status umgekrempelt].

Autor:  Squall [ Do 24 Nov, 2005 06:35 ]
Betreff des Beitrags: 

:pein: öhm...weiß ja nicht ob das beabsichtigt ist aber nun zu meinem problem...ich hab zugang zu 4 häusern...ich als admin..habe mein haus 4 mal erweitert...aber die anderen,wenn ich in deren ihr haus bin..können genauso viel gold und gems wie ich reinlegen..obwohl sie noch keine verbesserung haben :?

Öhm...naja..mal den erfinder frag..ob das normal ist oder irgendwo ein fehler vorliegt?

Mfg Squall

Autor:  anpera [ Do 24 Nov, 2005 20:51 ]
Betreff des Beitrags: 

Hmm, ja, in dem SQL-Befehl am Anfang fehlt irgendwie die Abfrage, für welches Haus die Daten abgerufen werden sollen. An dieser Stelle im Code ist teilweise auch noch gar nicht bekannt, in welches Haus der Spieler geht, von daher ist eine solche Abfrage gar nicht immer möglich.
Schätze mal, das System muss nochmal überarbeitet werden. ;)

[edit]
Beim Löschen und gelöscht werden von Usern und beim Verkauf könnten die neuen Statuswerte Probleme machen. Es wäre vielleicht besser, dafür ein weiteres Feld in die houses-Tabelle einzufügen. Ist schließlich irgendwie unlogisch, wenn man einen gottgleichen Tempel verkauft/verlässt und es kommt wieder ein Kellerloch dabei raus.

Autor:  Squall [ Fr 25 Nov, 2005 00:54 ]
Betreff des Beitrags: 

:o ich verstehe...hmm..dann werd ich wohl lieber die standart housphp wieder hochladen und mal schaun..ob hier irgendwo ein ein verbessertes Wohnviertel gib.

Aber danke für die Antwort anpera :lol:

Mfg :wink:

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