LoGD Standardrelease steht hier zum Download zur Verfügung!
<?php
// 24062004
require_once "common.php";
addcommentary();
page_header("Mericks Ställe");
// Haustier-Mod by Chaosmaker <webmaster@chaosonline.de>
// http://logd.chaosonline.de
function getpet($petid=0) {
$sql = "SELECT * FROM items WHERE id='$petid'";
$result = db_query($sql);
if (db_num_rows($result)>0) {
$row = db_fetch_assoc($result);
$row['buff'] = unserialize($row['buff']);
return $row;
}
else {
return array();
}
}
$playerpet = getpet($session['user']['petid']);
$petrepaygems = round($playerpet['gems']*2/3);
$repaygold = round($playermount['mountcostgold']*2/3,0);
$repaygems = round($playermount['mountcostgems']*2/3,0);
$futtercost = $session[user][level]*20;
addnav("Zurück zum Dorf","village.php");
addnav("Zurück zum Markt","marktplatz.php");
addnav("Tier füttern");
if ($session[user][rpchar]!=1){
if ($playermount['mountname']!="" && $session[user][fedmount]==0) addnav("f?{$playermount['mountname']} füttern (`^$futtercost`0 Gold)","stables.php?op=futter");
if ($playermount['mountname']!="") addnav("S?{$playermount['mountname']} Spezialfutter geben","stables.php?op=spezialfutter");
if ($playermount['mountname']!="") addnav("N?{$playermount['mountname']}'s Name ändern","stables.php?op=mountname");
addnav("Mit Sienna reden","stables.php?op=talk");
}
if ($session['user']['petid']>0) addnav("t?{$playerpet['name']} füttern","stables.php?op=futterpet");
if ($_GET[op]==""){
checkday();
output("`WHinter der Kneipe, etwas links von Pegasus' Rüstungen, befindet sich ein Stall,
wie man ihn in jedem Dorf erwartungsgemäß findet. Doch dieser Stall ist anders. Hier findest
du neben den üblichen Pferden die man in jedem Stall findet die kuriosesten Kreaturen. Einhörner,
Phegasusse, Phönixe und sogar Drachen sind nur einige die sich nebeneinander tummeln. Sauber ist der Stall
und der Duft von frischen Heu hängt in der Luft. Ja, dieser Stall scheint etwas herzumachen und
wird scheinbar gut gepflegt wie auch die Tiere die hier stehen.
Darin kümmert sich Merick, ein stämmig wirkender Zwerg, um verschiedene Tiere.
`n`n
Du näherst dich ihm, als er plötzlich herumwirbelt und seine Heugabel in deine ungefähre Richtung streckt. \"`6Ach,
'tschuldigung min ".($session[user][sex]?"Mädl":"Jung").", heb dich nit kommen hörn un heb gedenkt,
du bischt sicha Cedrik, der ma widda sein Zwergenweitwurf ufbessern will. Naaahw, wat
kann ich für disch tun?`W\" Eingeschüchtert durch den wilden Kleinen und sein Gehabe gehst du einige Schritte näher.`n`n`n ");
viewcommentary("stables","`WHier kannst du mit Merick reden`0",30,"sagt:");
output("`n`n`&Eine sondersame weisse Stute flüstert dir sanft in dein Ohr das dies ein Ort des Rollenspiels ist.
Bitte halte dich an die Rpg-Regeln.`n`n`n`n`n");
} elseif ($_GET['op']=="examinepet") {
$pet = getpet($_GET['id']);
if (count($pet)==0) {
output("`W\"`6Ach, ich heb keen solches Tier da!`W\" ruft der Zwerg!");
}
else {
output("`W\"`6Ai, ich heb wirklich n paar feine Viecher hier!`W\" kommentiert der Zwerg.`n`n");
output("`7Kreatur: `&{$pet['name']}`n");
output("`7Beschreibung: `&{$pet['description']}`n");
output("`7Preis: `^{$pet['gold']}`& Gold, `%{$pet['gems']}`& Edelstein".($pet['gems']==1?"":"e")."`n");
output("`n");
addnav("Dieses Tier kaufen","stables.php?op=buypet&id={$pet['id']}");
}
}elseif($_GET['op']=="examine"){
$sql = "SELECT * FROM mounts WHERE mountid='{$_GET['id']}'";
$result = db_query($sql);
if (db_num_rows($result)<=0){
output("`W\"`6Ach, ich heb keen solches Tier da!`W\" ruft der Zwerg!");
}else{
output("`W\"`6Ai, ich heb wirklich n paar feine Viecher hier!`W\" kommentiert der Zwerg.`n`n");
$mount = db_fetch_assoc($result);
output("`7Kreatur: `&{$mount['mountname']}`n");
output("`7Beschreibung: `&{$mount['mountdesc']}`n");
output("`7Preis: `^{$mount['mountcostgold']}`& Gold, `%{$mount['mountcostgems']}`& Edelstein".($mount['mountcostgems']==1?"":"e")."`n");
output("`n");
addnav("Dieses Tier kaufen","stables.php?op=buymount&id={$mount['mountid']}");
}
} elseif ($_GET['op']=='buypet') {
$pet = getpet($_GET['id']);
if (count($pet)==0) {
output("`W\"`&Ach, ich heb keen solches Tier da!`W\" ruft der Zwerg!");
}
else {
if (
$session['user']['gold'] < $pet['gold']
||
($session['user']['gems']+$petrepaygems) < $pet['gems']
){
output("`WMerick schaut dich schief von der Seite an. \"`6Ähm, was gläubst du was du hier machst? Kanns u nich sehen, dass {$pet['name']} `^{$pet['gold']}`W Gold und `%{$pet['gems']}`W Edelsteine kostet?`W\"");
}
else {
$feeddays = getsetting("daysperday",4);
if ($session['user']['petid']>0) {
output("`WDu übergibst dein(e/n) {$playerpet['name']} und bezahlst den Preis für dein neues Tier. Merick führt ein(e/n) schöne(n/s) neue(n/s) `&{$pet['name']}`7 für dich heraus und gibt dir Futter für $feeddays Tage dazu!`n`n");
}
else {
output("`WDu bezahlst den Preis für dein neues Tier und Merick führt ein(e/n) schöne(n/s) neue(n/s) `&{$pet['name']}`W für dich heraus und gibt dir Futter für $feeddays Tage dazu!`n`n");
}
// delete old pet
$sql = 'DELETE FROM items WHERE id='.$session['user']['petid'];
db_query($sql);
// insert new pet
$sql = "INSERT INTO items (name,class,owner,value1,value2,gold,gems,description,hvalue,buff)
VALUES ('{$pet['name']}','Haustiere',{$session['user']['acctid']},{$pet['value1']},{$pet['value2']},{$pet['gold']},{$pet['gems']},'".addslashes($pet['description'])."',{$session['user']['house']},'".addslashes(serialize($pet['buff']))."')";
db_query($sql);
$session['user']['petid'] = db_insert_id(LINK);
$session['user']['petfeed'] = date('Y-m-d H:i:s',time() + $feeddays * (3600*24 / getsetting("daysperday",4)));
$goldcost = -$pet['gold'];
$session['user']['gold'] += $goldcost;
$gemcost = $petrepaygems - $pet['gems'];
$session['user']['gems'] += $gemcost;
debuglog(($goldcost <= 0?"spent ":"gained ") . abs($goldcost) . " gold and " . ($gemcost <= 0?"spent ":"gained ") . abs($gemcost) . " gems trading for a new pet");
// Recalculate so the selling stuff works right
$playerpet = $pet;
$petrepaygems = round($playerpet['gems']*2/3,0);
}
}
}elseif($_GET['op']=='buymount'){
$sql = "SELECT * FROM mounts WHERE mountid='{$_GET['id']}'";
$result = db_query($sql);
if (db_num_rows($result)<=0){
output("`W\"`6Ach, ich heb keen solches Tier da!`W\" ruft der Zwerg!");
}else{
$mount = db_fetch_assoc($result);
if (
($session['user']['gold']+$repaygold) < $mount['mountcostgold']
||
($session['user']['gems']+$repaygems) < $mount['mountcostgems']
){
output("`WMerick schaut dich schief von der Seite an. \"`6Ähm, was gläubst du was du hier machst? Kanns u nich sehen, dass {$mount['mountname']} `^{$mount['mountcostgold']}`W Gold und `%{$mount['mountcostgems']}`6 Edelsteine kostet?`7\"");
}else{
if ($session['user']['hashorse']>0){
output("`WDu übergibst dein(e/n) {$playermount['mountname']} und bezahlst den Preis für dein neues Tier. Merick führt ein(e/n) schöne(n/s) neue(n/s) `W{$mount['mountname']}`7 für dich heraus!`n`n");
$session[user][reputation]--;
}else{
output("`WDu bezahlst den Preis für dein neues Tier und Merick führt ein(e/n) schöne(n/s) neue(n/s) `&{$mount['mountname']}`W für dich heraus!`n`n");
}
$goldcost = $repaygold-$mount['mountcostgold'];
$session['user']['gold']+=$goldcost;
$gemcost = $repaygems-$mount['mountcostgems'];
$session['user']['gems']+=$gemcost;
//debuglog(($goldcost <= 0?"spent ":"gained ") . abs($goldcost) . " gold and " . ($gemcost <= 0?"spent ":"gained ") . abs($gemcost) . " gems trading for a new mount");
$session['bufflist']['mount']=unserialize($mount['mountbuff']);
// Recalculate so the selling stuff works right
db_query("DELETE FROM mounts_usr WHERE acctid='".$session['user']['acctid']."'");
db_query("INSERT INTO mounts_usr (acctid, mountname, mountdesc, mountcategory, mountlevel, mountbuff, mountcostgems, mountcostgold, mountactive, mountforestfights, tavern, newday, recharge, partrecharge, mine_canenter, mine_candie, mine_cansave, mine_tethermsg, mine_deathmsg, mine_savemsg) VALUES ('".$session['user']['acctid']."', '".$mount['mountname']."', '".addslashes($mount['mountdesc'])."', '".addslashes($mount['mountcategory'])."', '".$mount['mountlevel']."', '".$mount['mountbuff']."', '".$mount['mountcostgems']."', '".$mount['mountcostgold']."', '".$mount['mountactive']."', '".$mount['mountforestfights']."', '".$mount['tavern']."', '".addslashes($mount['newday'])."', '".addslashes($mount['recharge'])."', '".addslashes($mount['partrecharge'])."', '".$mount['mine_canenter']."', '".$mount['mine_candie']."', '".$mount['mine_cansave']."', '".addslashes($mount['mine_tethermsg'])."', '".addslashes($mount['mine_deathmsg'])."', '".addslashes($mount['mine_savemsg'])."')");
$playermount = getmount($session['user']['acctid']);
$repaygold = round($playermount['mountcostgold']*2/3,0);
$repaygems = round($playermount['mountcostgems']*2/3,0);
}
}
} elseif ($_GET['op']=='sellpet') {
$sql = 'DELETE FROM items WHERE id='.$session['user']['petid'];
db_query($sql);
$session['user']['gems'] += $petrepaygems;
debuglog("gained $petrepaygems gems selling their pet");
$session['user']['petid'] = 0;
$session['user']['petfeed'] = '0000-00-00 00:00:00';
output("`WSo schwer es dir auch fällt, dich von dein(er/em) {$playerpet['name']} `Wzu trennen, tust du es doch und eine einsame Träne entkommt deinen Augen.`n`n");
output("`WAber in dem Moment, in dem du die `%$petrepaygems`W Edelsteine erblickst, fühlst du dich gleich ein wenig besser.");
}elseif($_GET['op']=='spezialfutter') {
$script = "stables.php";
$case = "spezialfutter";
futterwahl($_POST['id'],$m_futter,$script,$case);
}elseif ($_GET['op']=='mountname') {
mountname($_POST['newname'],$_POST['status']);
}elseif ($_GET['op']=='talk') {
sienna($_GET['thema']);
}elseif($_GET['op']=='sellmount'){
$session['user']['gold']+=$repaygold;
$session['user']['gems']+=$repaygems;
debuglog("gained $repaygold gold and $repaygems gems selling their mount");
unset($session['bufflist']['mount']);
output("`7So schwer es dir auch fällt, dich von dein(er/em) {$playermount['mountname']} zu trennen, tust du es doch und eine einsame Träne entkommt deinen Augen.`n`n");
db_query("DELETE FROM mounts_usr WHERE acctid='".$session['user']['acctid']."'");
$playermount = array();
output("`WAber in dem Moment, in dem du die ".($repaygold>0?"`^$repaygold`W Gold ".($repaygems>0?" und ":""):"").($repaygems>0?"`%$repaygems`7 Edelsteine":"")." erblickst, fühlst du dich gleich ein wenig besser.");
$session[user][reputation]-=2;
} elseif ($_GET['op']=='futterpet') {
if (empty($_POST['days'])) {
output('Das Futter kostet `^'.$playerpet['value1'].' Gold`0 und
`%'.$playerpet['value2'].' Edelsteine`0 pro Tag.`n');
output('<form action="stables.php?op=futterpet" method="post">',true);
output('`WFür wie viele Tage möchtest du Futter kaufen?');
output('<input type="text" name="days" value="0"> <input type="submit" value="Kaufen!">',true);
output('</form>',true);
addnav('','stables.php?op=futterpet');
}
else {
$days = (int)$_POST['days'];
if ($session['user']['gold']>=$playerpet['value1']*$days && $session['user']['gems']>=$playerpet['value2']*$days) {
$session['user']['gold'] -= $playerpet['value1']*$days;
$session['user']['gems'] -= $playerpet['value2']*$days;
if ($playerpet['value1']>0) {
if ($playerpet['value2']>0) {
$coststr = '`^'.($playerpet['value1']*$days).' Gold`0 und `%'.($playerpet['value2']*$days).' Edelsteine`0';
}
else $coststr = '`^'.($playerpet['value1']*$days).' Gold`0';
}
else {
$coststr = '`%'.($playerpet['value2']*$days).' Edelsteine`0';
}
output('`WMerick nimmt die '.$coststr.' `Wund gibt dir genug Futter, um dein(e/n) '.$playerpet['name'].' `Wdie nächsten '.$days.' `WTage zu versorgen.`n');
$oldtime = strtotime($session['user']['petfeed']);
if ($oldtime < time()) $oldtime = time();
$newtime = $oldtime + $days * (3600*24 / getsetting("daysperday",4));
$session['user']['petfeed'] = date('Y-m-d H:i:s',$newtime);
}
else {
output('`WDu kannst das Futter nicht bezahlen. Merick weigert sich, dein Tier für dich durchzufüttern.');
}
}
}elseif($_GET['op']=='futter'){
if ($session ['user']['stones'] ==1){
$buff = unserialize($playermount['mountbuff']);
output("Dein {$playermount['mountname']} macht sich gierig über das Futter her und frisst es bis auf den letzten Krümel. Da du den `3`bRing der Verfressenheit`b`0 bei dir hast, gibt Merick dir dein Gold zurück.");
$session['bufflist']['mount']=$buff;
$session[user][fedmount]=1;
}else{
if ($session[user][gold]>=$futtercost) {
$buff = unserialize($playermount['mountbuff']);
if ($session['bufflist']['mount']['rounds'] == $buff['rounds']) {
output("Dein {$playermount['mountname']} ist satt und rührt das vorgesetzte Futter nicht an. Darum gibt Merick dir dein Gold zurück.");
}else if ($session['bufflist']['mount']['rounds'] > $buff['rounds']*.5) {
$futtercost=$futtercost/2;
output("Dein {$playermount['mountname']} nascht etwas von dem vorgesetzten Futter und lässt den Rest stehen. {$playermount['mountname']} ist voll regeneriert. ");
output("Da aber noch über die Hälfte des Futters übrig ist, gibt dir Merick 50% Preisnachlass.`nDu bezahlst nur $futtercost Gold.");
$session[user][gold]-=$futtercost;
$session[user][reputation]--;
}else{
$session[user][gold]-=$futtercost;
output("Dein {$playermount['mountname']} macht sich gierig über das Futter her und frisst es bis auf den letzten Krümel.`n");
output("Dein {$playermount['mountname']} ist vollständig regeneriert und du gibst Merick die $futtercost Gold.");
$session[user][reputation]--;
}
$session['bufflist']['mount']=$buff;
$session[user][fedmount]=1;
} else {
output("`WDu hast nicht genug Gold dabei, um das Futter zu bezahlen. Merick weigert sich dein Tier für dich durchzufüttern und empfiehlt dir, im Wald nach einer grasbewachsenen Lichtung zu suchen.");
}
}
}
$dk = $session[user][dragonkills];
$sql = "SELECT mountname,mountid,mountcategory FROM mounts WHERE mountactive=1 AND dragonkill<='$dk' ORDER BY mountcategory,mountcostgems,mountcostgold";
$result = db_query($sql);
$category="";
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
if ($category!=$row['mountcategory']){
addnav($row['mountcategory']);
$category = $row['mountcategory'];
}
if ($session[user][rpchar]!=1){
addnav("Betrachte {$row['mountname']}`0","stables.php?op=examine&id={$row['mountid']}");
}
}
if ($session['user']['housekey']>0) {
$sql = 'SELECT name, id FROM items WHERE class="Haust.Prot" ORDER BY gold ASC, gems ASC';
$result = db_query($sql);
if (db_num_rows($result)>0) {
addnav('Haustiere');
while ($row = db_fetch_assoc($result)) {
addnav("Betrachte {$row['name']}`0",'stables.php?op=examinepet&id='.$row['id']);
}
}
}
if ($playermount['mountname']!=""){
output("`n`nMerick bietet dir `^$repaygold`& Gold und `%$repaygems`& Edelsteine für dein(e/n) {$playermount['mountname']}.");
addnav("Sonstiges");
addnav("Verkaufe {$playermount['mountname']}","stables.php?op=sellmount");
}
if ($session['user']['petid']>0) {
if ($session['user']['hashorse']==0) addnav("Sonstiges");
output("`n`n`WMerick bietet dir `%$petrepaygems`W Edelsteine für dein(e/n) {$playerpet['name']}.");
addnav("Verkaufe {$playerpet['name']}","stables.php?op=sellpet");
}
page_footer();
?>