LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /logd/stables.php

Hier klicken für den Source, ODER
Weitere Dateien, von denen du den Quelltext sehen kannst:
(Das Lesen des Source, um sich spielerische Vorteile zu verschaffen, ist nicht erlaubt. Solltest du Schwachstellen oder Fehler entdecken, bist du als Spieler verpflichtet, diese zu melden.)

Source von: /logd/stables.php

<?php

require_once "common.php";
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);
$petrepaygold round($playerpet['gold']*2/3);
// Ende Haustiermod

if($session['user']['rp_only'] == '0') {
    
$repaygold round($playermount['mountcostgold']*2/3,0);
    
$repaygems round($playermount['mountcostgems']*2/3,0);
    
$repaydp round($playermount['mountcostdp']*2/3,0);
} else {
    
$repaygold round($playermount['mountcostgoldrp']*2/3,0);
    
$repaygems round($playermount['mountcostgemsrp']*2/3,0);
    
$repaydp round($playermount['mountcostdprp']*2/3,0);
}
$config unserialize($session['user']['donationconfig']);
$futtercost $session[user][level]*20;
$spezfuttercost $session['user']['level']+$session['user']['dragonkills'];

/*
        $buff = unserialize($playermount['mountbuff']);
        print_r('Playermount: ');
        print_r($buff);
        echo "<br>";
        print_r('Mountbuff: ');
        print_r($session['bufflist']['mount']);
        echo "<br>";
*/

addnav("Zurück zum Marktplatz","marktplatz.php");
addnav("Zurück zum Dorf","village.php");

if (
$_GET[op]==""){
    
checkday();
    
output("`7Hinter der Kneipe, etwas links von Pegasus' Rüstungen, befindet sich ein Stall,
    wie man ihn in jedem Dorf erwartungsgemäß findet.
    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. \"`&Ach,
    '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?`7\""
);
} elseif (
$_GET['op']=="examinepet"){
    
$pet getpet($_GET['id']);
    if (
count($pet)==0){
        
output("`7\"`&Ach, ich heb keen solches Tier da!`7\" ruft der Zwerg!");
    } else{
        
output("`7\"`&Ai, ich heb wirklich n paar feine Viecher hier!`7\" 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("`7\"`&Ach, ich heb keen solches Tier da!`7\" ruft der Zwerg!");
    }else{
        
output("`7\"`&Ai, ich heb wirklich n paar feine Viecher hier!`7\" kommentiert der Zwerg.`n`n");
        
$mount db_fetch_assoc($result);
        
output("`7Kreatur: `&{$mount['mountname']}`n");
        
output("`7Beschreibung: `&{$mount['mountdesc']}`n");
        if(
$session['user']['rp_only'] == '0'output("`7Preis: `^{$mount['mountcostgold']}`& Gold, `%{$mount['mountcostgems']}`& Edelstein".($mount['mountcostgems']==1?"":"e").", `\${$mount['mountcostdp']}`& Donation-Punkte`n");
        else 
output("`7Preis: `^{$mount['mountcostgoldrp']}`& Gold, `%{$mount['mountcostgemsrp']}`& Edelstein".($mount['mountcostgemsrp']==1?"":"e").", `\${$mount['mountcostdprp']}`& Donation-Punkte`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("`7\"`&Ach, ich heb keen solches Tier da!`7\" ruft der Zwerg!");
        }
        else {
            if (
                
$session['user']['gold'] < $pet['gold']
                 ||
                (
$session['user']['gems']+$petrepaygems) < $pet['gems']
            ){
                
output("`7Merick schaut dich schief von der Seite an. \"`&Ähm, was gläubst du was du hier machst? Kanns u nich sehen, dass {$pet['name']} `^{$pet['gold']}`& Gold und `%{$pet['gems']}`& Edelsteine kostet?`7\"");
            }
            else {
                
$feeddays getsetting("daysperday",4);
                if (
$session['user']['petid']>0) {
                    
output("`7Du ü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("`7Du bezahlst den Preis für dein neues Tier und 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");
                }
                
// 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("`7\"`&Ach, ich heb keen solches Tier da!`7\" ruft der Zwerg!");
    }else{
        
$mount db_fetch_assoc($result);
        if (
            (
$session['user']['rp_only'] == '0' && (($session['user']['gold']+$repaygold) < $mount['mountcostgold'] || ($session['user']['gems']+$repaygems) < $mount['mountcostgems'] || ($session['user']['donation']-$session['user']['donationspent']+$repaydp) < $mount['mountcostdp']))
            ||
            (
$session['user']['rp_only'] != '0' && (($session['user']['gold']+$repaygold) < $mount['mountcostgoldrp'] || ($session['user']['gems']+$repaygems) < $mount['mountcostgemsrp'] || ($session['user']['donation']-$session['user']['donationspent']+$repaydp) < $mount['mountcostdprp']))
        ){
            if(
$session['user']['rp_only'] == '0'output("`7Merick schaut dich schief von der Seite an. \"`&Ähm, was gläubst du was du hier machst? Kanns u nich sehen, dass {$mount['mountname']} `^{$mount['mountcostgold']}`& Gold, `%{$mount['mountcostgems']}`& Edelsteine und `\${$mount['mountcostdp']}`& Donation-Punkte kostet?`7\"");
            else 
output("`7Merick schaut dich schief von der Seite an. \"`&Ähm, was gläubst du was du hier machst? Kanns u nich sehen, dass {$mount['mountname']} `^{$mount['mountcostgoldrp']}`& Gold, `%{$mount['mountcostgemsrp']}`& Edelsteine und, `\${$mount['mountcostdprp']}`& Donation-Punkte kostet?`7\"");
        }else{
            if (
$session['user']['hashorse']>0){
                
output("`7Du ü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) `&{$mount['mountname']}`7  für dich heraus!`n`n");
                if(
$session['user']['rp_only'] == '0'$session[user][reputation]--;
            }else{
                
output("`7Du bezahlst den Preis für dein neues Tier und Merick führt ein(e/n) schöne(n/s) neue(n/s) `&{$mount['mountname']}`7 für dich heraus!`n`n");
            }
            
$session['user']['hashorse']=$mount['mountid'];
            
$session['user']['gold']+=$goldcost;
            if(
$session['user']['rp_only'] == '0') {
                
$gemcost $repaygems-$mount['mountcostgems'];
                
$goldcost $repaygold-$mount['mountcostgold'];
                
$dpcost $repaydp-$mount['mountcostdp'];
            } else {
                
$gemcost $repaygems-$mount['mountcostgemsrp'];
                
$goldcost $repaygold-$mount['mountcostgoldrp'];
                
$dpcost $repaydp-$mount['mountcostdprp'];
            }
            
$session['user']['gold']+=$goldcost;
            
$session['user']['gems']+=$gemcost;
            
$session['user']['donationspent']-=$dpcost;

            
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
            
if($session['user']['rp_only'] == '0') {
                
$playermount getmount($mount['mountid']);
                
$repaygold round($playermount['mountcostgold']*2/3,0);
                
$repaygems round($playermount['mountcostgems']*2/3,0);
                
$repaydp round($playermount['mountcostdp']*2/3,0);
            } else {
                
$playermount getmount($mount['mountid']);
                
$repaygold round($playermount['mountcostgoldrp']*2/3,0);
                
$repaygems round($playermount['mountcostgemsrp']*2/3,0);
                
$repaydp round($playermount['mountcostdprp']*2/3,0);
            }
        }
    }
} elseif (
$_GET['op']=='sellpet') {
    
$sql 'DELETE FROM items WHERE id='.$session['user']['petid'];
    
db_query($sql);
    
$session['user']['gems'] += $petrepaygems;
    
$session['user']['gold'] += $petrepaygold;
    
debuglog("gained $petrepaygems gems,  $petrepaygold gold selling their pet");
    
$session['user']['petid'] = 0;
    
$session['user']['petfeed'] = '0000-00-00 00:00:00';
    
output("`7So schwer es dir auch fällt, dich von dein(er/em) {$playerpet['name']} zu trennen, tust du es doch und eine einsame Träne entkommt deinen Augen.`n`n");
    
output("Aber in dem Moment, in dem du die $petrepaygold `7Goldstücke und `%$petrepaygems`7 Edelsteine erblickst, fühlst du dich gleich ein wenig besser.");
}elseif(
$_GET['op']=='sellmount'){
    
$session['user']['gold']+=$repaygold;
    
$session['user']['gems']+=$repaygems;
    
$session['user']['donationspent']-=$repaydp;
    
debuglog("gained $repaygold gold and $repaygems gems selling their mount");
    unset(
$session['bufflist']['mount']);
    
$session['user']['hashorse']=0;
    
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");
    
output("Aber in dem Moment, in dem du die ".($repaygold>0?"`^$repaygold`7 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 `%0 Edelsteine`0 pro Tag.`nMit den `^'.$session['user']['gold'].' `0Goldstücken in deinem Beutel kannst du für '.(floor($session['user']['gold']/$playerpet['value1'])).' Tage Futter kaufen.');
            
output('<form action="stables.php?op=futterpet" method="post">',true);
            
output('Für wie viele Tage möchtest du Futter kaufen?');
            
output('<input type="text" name="days"> <input type="submit" value="Kaufen!">',true);
            
output('</form>',true);
            
output("<script language='javascript'>document.getElementById('days').focus();</script>",true);
            
addnav('','stables.php?op=futterpet');
        }
        else {
            
$days = (int)$_POST['days'];
            if (
$session['user']['gold']>=$playerpet['value1']*$days && $session['user']['gems']>=0*$days) {
                
$session['user']['gold'] -= $playerpet['value1']*$days;
                if (
$playerpet['value1']>0) {
                    if (
$playerpet['value2']>0) {
                        
$coststr '`^'.($playerpet['value1']*$days).' Gold`0 und `%0 Edelsteine`0';
                    }
                    else 
$coststr '`^'.($playerpet['value1']*$days).' Gold`0';
                }
                else {
                    
$coststr '`%0 Edelsteine`0';
                }
                
output('Merick nimmt die '.$coststr.' und gibt dir genug Futter, um dein(e/n) '.$playerpet['name'].' die nächsten '.$days.' Tage 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('`7Du kannst das Futter nicht bezahlen. Merick weigert sich, dein Tier für dich durchzufüttern.');
            }
        }
}elseif(
$_GET['op']=='futter'){
    
$mountfights=0;
    
$begleiter=unserialize($playermount['mountbuff']);
    
$runden=round($begleiter['rounds']/10);
    if (!
is_array($config['mountfights'])) $config['mountfights']=array();
    
reset($config['mountfights']);
    while (list(
$key,$val)=each($config['mountfights'])){
        
$config['mountfights'][$key]['left']--;
//        output("`@Dein {$playermount['mountname']}`@ bekommt {$runden} Extrarunden für die Punkte auf `^{$val['bought']}`@.");
        
$mountfights++;
        if (
$val['left']>1){
//            output(" Du hast `^".($val['left']-1)."`@ Tage von diesem Kauf übrig.`n");
        
}else{
            unset(
$config['mountfights'][$key]);
//            output(" Dieser Kauf ist damit abgelaufen.`n");
        
}
    }
    
$begleiter['rounds']=round($begleiter['rounds']*(1+$mountfights/10));
    
$buff $begleiter;

    if (
$session ['user']['stones'] ==1){
        
output("Dein {$playermount['mountname']}`0 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.");
      if(
$session['bufflist']['mount']['rounds']>0$session['bufflist']['mount']['rounds']=$buff['rounds'];
        else 
$session['bufflist']['mount']=$buff;
        
$session[user][fedmount]=1;

    if (
$session['user']['gott']==6){
        if(
$session['user']['hashorse']>0){
            
$session['bufflist']['mount']['rounds']+=floor($session['bufflist']['mount']['rounds']/10);
        }
    }

    }else{
        if (
$session[user][gold]>=$futtercost) {
             if (
$session['bufflist']['mount']['rounds'] == $buff['rounds']) {
                
output("Dein {$playermount['mountname']}`0 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']}`0 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']}`0 macht sich gierig über das Futter her und frisst es bis auf den letzten Krümel.`n");
                
output("Dein {$playermount['mountname']}`0 ist vollständig regeneriert und du gibst Merick die $futtercost Gold.");
                
$session[user][reputation]--;
            }
          if(
$session['bufflist']['mount']['rounds']>0$session['bufflist']['mount']['rounds']=$buff['rounds'];
            else 
$session['bufflist']['mount']=$buff;
            
$session[user][fedmount]=1;

            if (
$session['user']['gott']==6){
                if(
$session['user']['hashorse']>0){
                    
$session['bufflist']['mount']['rounds']+=floor($session['bufflist']['mount']['rounds']/10);
                }
            }

            
        } else {
            
output("`7Du 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.");
        }
    }

//Spezialfutter-Mod von Linus für Alvion (http://alvion-logd.de)
}elseif($_GET['op']=='spezfutter'){
    
$donationleft=$session['user']['donation']-$session['user']['donationspent'];
    if (
$donationleft>=$spezfuttercost && $session['user']['spezfedmount']==0){
        
output("Dein/e {$playermount['mountname']} `0macht sich gierig über das Spezialfutter her und frisst es bis auf den letzten Krümel. Du kannst deine(r/m) {$playermount['mountname']}`0 ansehen wie neue Energien durch ihre/seine Muskeln fließen.");
        if(
$session['bufflist']['mount']['atkmod']>$session['bufflist']['mount']['defmod']){
            
$session['bufflist']['mount']['atkmod']=round($session['bufflist']['mount']['atkmod']*1.1,2);
            
$session['bufflist']['mount']['defmod']=round($session['bufflist']['mount']['defmod']*1.3,2);
        }elseif (
$session['bufflist']['mount']['atkmod']<$session['bufflist']['mount']['defmod']){
            
$session['bufflist']['mount']['atkmod']=round($session['bufflist']['mount']['atkmod']*1.3,2);
            
$session['bufflist']['mount']['defmod']=round($session['bufflist']['mount']['defmod']*1.1,2);
        }else {
            
$session['bufflist']['mount']['atkmod']=round($session['bufflist']['mount']['atkmod']*1.2,2);
            
$session['bufflist']['mount']['defmod']=round($session['bufflist']['mount']['defmod']*1.2,2);
        }
        
$session['user']['spezfedmount']=1;
        
$session['user']['donationspent']+=$spezfuttercost;
/*
        print_r('Spez_Mountbuff: ');
        print_r($session['bufflist']['mount']);
        echo "<br>";
*/
    
}elseif ($donationleft<$spezfuttercost){
        
output("`7Du hast nicht genug DP, um das Spezialfutter zu bezahlen. Merick weigert sich deinen Begleiter für dich durchzufüttern.");
    }
}

if (
$session['user']['hashorse']>0){
    if(
$session[user][fedmount]==0addnav("f?{$playermount['mountname']} füttern `0(`^$futtercost`0 Gold)","stables.php?op=futter");
    if(
$session[user][spezfedmount]==&& $session['bufflist']['mount']['rounds']>0addnav("S?Spezialfutter für {$playermount['mountname']} `0(`^$spezfuttercost`0 Donationpunkte)","stables.php?op=spezfutter");
}
if (
$session['user']['petid']>0addnav("t?{$playerpet['name']} füttern","stables.php?op=futterpet");

$sql "SELECT * FROM mounts WHERE mountactive=1 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']['dragonkills'] >= $row['mountmindk']) || $session['user']['rp_only'] >|| $session['user']['herotattoo'] >0)    addnav("{$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('Wachtiere - nur für das Haus');
        while (
$row db_fetch_assoc($result)) {
            
addnav("{$row['name']}`0",'stables.php?op=examinepet&id='.$row['id']);
        }
    }
}

if (
$session['user']['hashorse']>0){
    
output("`n`n`&Merick bietet dir `^$repaygold`& Gold, `%$repaygems`& Edelsteine `$$repaydp`& Donation-Punkte für dein(e/n) {$playermount['mountname']}`&.");
    
addnav("Sonstiges");
    
addnav("Verkaufe {$playermount['mountname']}","stables.php?op=sellmount");
}

if (
$session['user']['petid']>0) {
    
$playerpet getpet($session['user']['petid']);
    
$petrepaygems round($playerpet['gems']*2/3);
    
$petrepaygold round($playerpet['gold']*2/3);
    if (
$session['user']['hashorse']==0addnav("Sonstiges");
    
output("`n`n`0Merick bietet dir `^$petrepaygold`& Gold`0, `%$petrepaygems`7 Edelsteine für dein(e/n) {$playerpet['name']}`0.");
    
addnav("Verkaufe {$playerpet['name']}","stables.php?op=sellpet");
}                              

page_footer();
?>