Alle Dateien, die hier eingesehen werden können, sind unter der GNU GPL lizenziert. Wenn du etwas darin findest, das du gerne hättest, so schreibe mir doch bitte eine Anfrage damit ich, wenn ich es rausgeben will, alle Änderungen raussuchen könnte. Denn ich übernehme keine Verantwortung, solltest du was rausnehmen und es geht nicht. Und Support deswegen geb ich schon gar nicht.
Solltest du eine Schwachstelle im Code finden, sei es eine kritische Lücke oder eine Möglichkeit zu cheaten, dann bitte ich dich, mir das mitzuteilen. Solltest du beim cheaten erwischt werden, werde ich deinen Account eigenhändig löschen & bannen; Solltest du meinen Server angreifen, so werde ich meine Rechtsschutzversicherung kontaktieren.
Verzeichnisse:
<?php
/*
#############################################################################
# ToDo: #
# - Formel für die Preisberechnung #
# #
#############################################################################
*/
/*
-------los gehts-------
copyright by Tsukasa
http://dragon.osomyr.com
addon Edelstein Börse für
#############################################################################
# Edelstein Addon 1 by phonix #
# http://www.game.bitpage.de #
#############################################################################
-------Installer----------
CREATE TABLE `gems` (
`gemid` int(10) unsigned NOT NULL auto_increment,
`name` varchar(50) default NULL,
`gemzahl` varchar(20) NOT NULL default '',
`gemcost` int(10) unsigned default '0',
`id` int(8) NOT NULL default '0',
PRIMARY KEY (`gemid`)
) TYPE=MyISAM AUTO_INCREMENT=3181 ;
#############################################################################
*/
require_once "common.php";
page_header("Edelstein-Börse");
output("`c`bEdelstein-Börse`c`b");
if ($_GET['op']==""){
addnav("Wege");
addnav("Zurück zum Marktplatz","marktplatz1.php");
addnav("Aktualisieren","gem2.php");
rawoutput("<p style='text-align: center;'><IMG SRC=\"images/gem1.jpg\" /> </p>") ;
rawoutput("<p>".$fliesstext."</p>");
output("`nDu fragst die hinter dem Tresen stehende Gestalt, ob sie auch Edelsteine verkauft. Der Edelsteinhändler blickt dich an und hält einen kurzen Moment inne. Du kannst nicht erkennen, ob das nun ein gutes oder ein schlechtes Zeichen ist - auf jeden Fall wärst du im Moment froh, du hättest ihn nie danach gefragt`n`n");
output("Die Gestalt fängt lauthals an zu lachen, da sie die Angst in deinem Gesicht sehen kann: \"Natürlich verkaufe ich auch Edelsteine, aber die sind nicht grade billig! Ich weiß nicht, ob sich das einer wie du überhaupt leisten kann!\"`n`n");
output("Ein wenig verdutzt zeigst du trotzig deinen prall gefüllten Goldbeutel.`n`n");
output("Die Gestalt grinst dich an und holt eine Kiste mit den schönsten Edelsteinen hervor, die du jemals gesehen hast:`n`n`n`n");
// output("<table width='50%' align='center' border='0'><tr align='center'><td align='center'><img src='images/schatztruhe.gif' width='250' height='250' align='center'/></td></tr></table>",true);
output("<center><img src='images/schatztruhe.jpg' width='250' height='250' align='center'/></center>",true);
/* $sql = "
SELECT
gemid,
gemcost,
gemzahl,
gemcost/gemzahl as gemprice
FROM
gems
WHERE
1
ORDER BY
gemid ASC";
$result = db_query($sql) or die(db_error(LINK));
*/ //==> wird benötigt für die Gem-Charts
$gemsinstore=(getsetting ("gemstoregems",0));
$mingems=(getsetting ("mingempricegems",5));
$maxgems=(getsetting ("maxgempricegems",100));
if (($session[user][guildID] || $session[user][clanID]) && (int)getsetting("guilds",0)) {
populate_guilds();
$ThisGuild=&$session[guilds][$session[user][guildID]+$session[user][clanID]];
}
$price=getgemprice(1,"buy");
$price5=getgemprice(5,"buy");
$price10=getgemprice(10,"buy");
if ($gemsinstore>=10) {
output("`n`n`n`n`7Derzeit sind `!".$gemsinstore."`7 Edelsteine im Handel. `n`nIch verkaufe dir gern einen für `^".$price."`7 Gold, 5 für `^".$price5."`7 Gold oder 10 für `^".$price10."`7 Gold.`nWillst du welche an mich abgeben bekommst du `^".(round(getgemprice(1,"sell")*0.9))."`7 Gold für einen, `^".(round(getgemprice(5,"sell")*0.9))."`7 Gold für 5 oder `^".(round(getgemprice(10,"sell")*0.9))."`7 Gold für 10 Edelsteine.`n");
if ((int)$ThisGuild[GemPurchaseDiscount]>0)
output("`7Durch deine ".($ThisGuild[IsGuild]?"Gilden":"Clan")."zugehörigkeit bekommst du einen Rabatt von `!".$ThisGuild[GemPurchaseDiscount]." %`7.`n");
} elseif ($gemsinstore>=5) {
output("`n`n`n`n`7Derzeit sind `!".$gemsinstore."`7 Edelsteine im Handel. `n`nIch verkaufe dir gern einen für `^".$price."`7 Gold oder 5 für `^".$price5."`7 Gold.`nWillst du welche an mich abgeben bekommst du `^".(round(getgemprice(1,"sell")*0.9))."`7 Gold für einen, `^".(round(getgemprice(5,"sell")*0.9))."`7 Gold für 5 oder `^".(round(getgemprice(10,"sell")*0.9))."`7 Gold für 10 Edelsteine.`n");
if ((int)$ThisGuild[GemPurchaseDiscount]>0)
output("`7Durch deine ".($ThisGuild[IsGuild]?"Gilden":"Clan")."zugehörigkeit bekommst du einen Rabatt von `!".$ThisGuild[GemPurchaseDiscount]." %`7.`n");
} elseif ($gemsinstore>=0){
output("`n`n`n`n`7Derzeit sind `!".$gemsinstore."`7 Edelsteine im Handel. `n`nIch verkaufe dir gern einen für `^".$price."`7 Gold.`nWillst du welche an mich abgeben bekommst du `^".(round(getgemprice(1,"sell")*0.9))."`7 Gold für einen, `^".(round(getgemprice(5,"sell")*0.9))."`7 Gold für 5 oder `^".(round(getgemprice(10,"sell")*0.9))."`7 Gold für 10 Edelsteine.`n");
if ((int)$ThisGuild[GemPurchaseDiscount]>0)
output("`7Durch deine ".($ThisGuild[IsGuild]?"Gilden":"Clan")."zugehörigkeit bekommst du einen Rabatt von `!".$ThisGuild[GemPurchaseDiscount]." %`7.`n");
} else {
output("`n`n`n`n`7Derzeit sind leider keine Edelsteine zum Verkauf da.`n`nAber ich kaufe deine gern für `^".(round($price*0.9))."`7 Gold an.`n`n");
if ((int)$ThisGuild[GemPurchaseDiscount]>0)
output("`7Durch deine ".($ThisGuild[IsGuild]?"Gilden":"Clan")."zugehörigkeit bekommst du einen Rabatt von `!".$ThisGuild[GemPurchaseDiscount]." %`7.`n");
}
if ($gemsinstore<=($mingems+5)){
output("`nIch hoffe nicht du bist so witzig und verkaufst zu dem Preis deine Steine?`n");
} elseif ($gemsinstore>=($maxgems-5)) {
output("`nDie Nachfrage ist riesig, wollt ihr nicht ein paar Steine verkaufen?`n");
} else {
output("`nHeut ist ein gute Tag mit Edelsteinen zu handeln.`n");
}
if($session[user][gems]<10){ //==> weniger als 10 Edelsteine
if ($session[user][gems]<5){ //==> weniger als 5 Edelsteine
if ($session[user][gems]>0){ //==> 1-4 Edelsteine
if ($session[user][gold]>=$price10){ // ==> genug Gold für mindestens 10 Steine
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
if ($gemsinstore>=5){
output("<input type='submit' class='button' name='buy5' style='margin-top: 10px;' value='5 Edelsteine kaufen'><br>",true);
}
if ($gemsinstore>=10){
output("<input type='submit' class='button' name='buy10' style='margin-top: 10px;' value='10 Edelsteine kaufen'>",true);
}
output("</form>",true);
addnav("","gem2.php?op=buy");
} elseif ($session[user][gold]>=$price5){ // ==> genug Gold für mindestens 5 Steine
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
if ($gemsinstore>=5){
output("<input type='submit' class='button' name='buy5' style='margin-top: 10px;' value='5 Edelsteine kaufen'>",true);
}
output("</form>",true);
addnav("","gem2.php?op=buy");
} elseif ($session[user][gold]>=$price){ // ==> genug Gold für mindestens einen Stein
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'>",true);
output("</form>",true);
addnav("","gem2.php?op=buy");
} else { // zu wenig Gold
output("`nDu kannst dir leider keine Edelsteine leisten.`n`n");
output("<form action='gem2.php?op=buy' method='POST'>",true);
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'>",true);
output("</form>",true);
addnav("","gem2.php?op=buy");
}
} else { //==> Keine Edelsteine
if ($session[user][gold]>=$price10){ // ==> genug Gold für mindestens 10 Steine
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'><br>",true);
}
if ($gemsinstore>=5){
output("<input type='submit' class='button' name='buy5' style='margin-top: 10px;' value='5 Edelsteine kaufen'><br>",true);
}
if ($gemsinstore>=10){
output("<input type='submit' class='button' name='buy10' style='margin-top: 10px;' value='10 Edelsteine kaufen'>",true);
}
output("</form>",true);
addnav("","gem2.php?op=buy");
} elseif ($session[user][gold]>=$price5){ // ==> genug Gold für mindestens 5 Steine
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'><br>",true);
}
if ($gemsinstore>=5){
output("<input type='submit' class='button' name='buy5' style='margin-top: 10px;' value='5 Edelsteine kaufen'>",true);
}
output("</form>",true);
addnav("","gem2.php?op=buy");
} elseif ($session[user][gold]>=$price){ // ==> genug Gold für mindestens einen Stein
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("</form>",true);
addnav("","gem2.php?op=buy");
} else { // zu wenig Gold
output("`nDu hast leider keine Edelsteine zum Verkaufen und kannst dir auch keine leisten.`n`n");
}
}
} else { //==> 5 oder mehr Edelsteine
if ($session[user][gold]>=$price10){ // ==> genug Gold für mindestens 10 Steine
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
if ($gemsinstore>=5){
output("<input type='submit' class='button' name='buy5' style='margin-top: 10px;' value='5 Edelsteine kaufen'>",true);
}
output("<input type='submit' class='button' name='sell5' style='margin-top: 10px;' value='5 Edelsteine verkaufen'><br>",true);
if ($gemsinstore>=10){
output("<input type='submit' class='button' name='buy10' style='margin-top: 10px;' value='10 Edelsteine kaufen'>",true);
}
output("</form>",true);
addnav("","gem2.php?op=buy");
} elseif ($session[user][gold]>=$price5){ // ==> genug Gold für mindestens 5 Steine
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
if ($gemsinstore>=5){
output("<input type='submit' class='button' name='buy5' style='margin-top: 10px;' value='5 Edelsteine kaufen'>",true);
}
output("<input type='submit' class='button' name='sell5' style='margin-top: 10px;' value='5 Edelsteine verkaufen'>",true);
output("</form>",true);
addnav("","gem2.php?op=buy");
} elseif ($session[user][gold]>=$price){ // ==> genug Gold für mindestens einen Stein
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
output("<input type='submit' class='button' name='sell5' style='margin-top: 10px;' value='5 Edelsteine verkaufen'>",true);
output("</form>",true);
addnav("","gem2.php?op=buy");
} else { // zu wenig Gold
output("`nDu kannst dir leider keine Edelsteine leisten.`n`n");
output("<form action='gem2.php?op=buy' method='POST'>",true);
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
output("<input type='submit' class='button' name='sell5' style='margin-top: 10px;' value='5 Edelsteine verkaufen'>",true);
output("</form>",true);
addnav("","gem2.php?op=buy");
}
}
} else { //==> 10 oder mehr Edelsteine
if ($session[user][gold]>=$price10){ // ==> genug Gold für mindestens 10 Steine
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
if ($gemsinstore>=5){
output("<input type='submit' class='button' name='buy5' style='margin-top: 10px;' value='5 Edelsteine kaufen'>",true);
}
output("<input type='submit' class='button' name='sell5' style='margin-top: 10px;' value='5 Edelsteine verkaufen'><br>",true);
if ($gemsinstore>=10){
output("<input type='submit' class='button' name='buy10' style='margin-top: 10px;' value='10 Edelsteine kaufen'>",true);
}
output("<input type='submit' class='button' name='sell10' style='margin-top: 10px;' value='10 Edelsteine verkaufen'>",true);
output("</form>",true);
addnav("","gem2.php?op=buy");
} elseif ($session[user][gold]>=$price5){ // ==> genug Gold für mindestens 5 Steine
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
if ($gemsinstore>=5){
output("<input type='submit' class='button' name='buy5' style='margin-top: 10px;' value='5 Edelsteine kaufen'>",true);
}
output("<input type='submit' class='button' name='sell5' style='margin-top: 10px;' value='5 Edelsteine verkaufen'><br>",true);
output("<input type='submit' class='button' name='sell10' style='margin-top: 10px;' value='10 Edelsteine verkaufen'>",true);
output("</form>",true);
addnav("","gem2.php?op=buy");
} elseif ($session[user][gold]>=$price){ // ==> genug Gold für mindestens einen Stein
output("<form action='gem2.php?op=buy' method='POST'>",true);
if ($gemsinstore>0){
output("<input type='submit' class='button' name='buy' style='margin-top: 10px;' value='Edelstein kaufen'>",true);
}
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
output("<input type='submit' class='button' name='sell5' style='margin-top: 10px;' value='5 Edelsteine verkaufen'><br>",true);
output("<input type='submit' class='button' name='sell10' style='margin-top: 10px;' value='10 Edelsteine verkaufen'>",true);
output("</form>",true);
addnav("","gem2.php?op=buy");
} else { //==> zu wenig Gold
output("`nDu kannst dir leider keine Edelsteine leisten.`n`n");
output("<form action='gem2.php?op=buy' method='POST'>",true);
output("<input type='submit' class='button' name='sell' style='margin-top: 10px;' value='Edelstein verkaufen'><br>",true);
output("<input type='submit' class='button' name='sell5' style='margin-top: 10px;' value='5 Edelsteine verkaufen'><br>",true);
output("<input type='submit' class='button' name='sell10' style='margin-top: 10px;' value='10 Edelsteine verkaufen'>",true);
output("</form>",true);
addnav("","gem2.php?op=buy");
}
}
} else if ($HTTP_GET_VARS[op]=="buy"){
if ($_POST[buy]!=""){
$price=getgemprice(1,"buy");
if ($session[user][gold]>=$price) {
$session[user][gems]++;
$session[user][gold]-=$price;
if ((getsetting ("gemstoregems",0))!=1){
savesetting ("gemstoregems",(getsetting ("gemstoregems",0)-1));
} else {
savesetting ("gemstoregems","0");
}
}
} elseif ($_POST[buy5]!=""){
$price=getgemprice(5,"buy");
if ($session[user][gold]>=$price) {
$session[user][gems]+=5;
$session[user][gold]-=$price;
if ((getsetting ("gemstoregems",0))!=5){
savesetting ("gemstoregems",(getsetting ("gemstoregems",0)-5));
} else {
savesetting ("gemstoregems","0");
}
}
} elseif ($_POST[buy10]!=""){
$price=getgemprice(10,"buy");
if ($session[user][gold]>=$price) {
$session[user][gems]+=10;
$session[user][gold]-=$price;
if ((getsetting ("gemstoregems",0))!=10){
savesetting ("gemstoregems",(getsetting ("gemstoregems",0)-10));
} else {
savesetting ("gemstoregems","0");
}
}
} elseif ($_POST[sell]!=""){
$price=getgemprice(1,"sell");
$session[user][gems]--;
$session[user][gold]+=(round($price*0.9));
savesetting ("gemstoregems",(getsetting ("gemstoregems",0))+1);
} elseif ($_POST[sell5]!=""){
$price=getgemprice(5,"sell");
$session[user][gems]-=5;
$session[user][gold]+=(round($price*0.9));
savesetting ("gemstoregems",(getsetting ("gemstoregems",0))+5);
} elseif ($_POST[sell10]!=""){
$price=getgemprice(10,"sell");
$session[user][gems]-=10;
$session[user][gold]+=(round($price*0.9));
savesetting ("gemstoregems",(getsetting ("gemstoregems",0))+10);
}
redirect("gem2.php");
}
page_footer();
function getgemprice($gems,$trade)
{ //berechnet den Preis für $value Steine
global $session;
$gemsinstore=(getsetting ("gemstoregems",0));
$minprice=(getsetting ("mingemprice",7000));
$maxprice=(getsetting ("maxgemprice",700));
$mingems=(getsetting ("mingempricegems",100));
$maxgems=(getsetting ("maxgempricegems",15));
$guilddiscount=0;
if (($session[user][guildID]>0 || $session[user][clanID]>0) && (int)getsetting("guilds",0)==1) {
$ThisGuild=&$session[guilds][$session[user][guildID]+$session[user][clanID]];
$guilddiscount=(int)$ThisGuild[GemPurchaseDiscount]/(float)100;
}
$price=0;
for ($i=0;$i<$gems;$i++){
if ($trade=="buy"){
$gemsinstore--;
if($gemsinstore<=$maxgems){
$price+=round($maxprice*(1-$guilddiscount));
} elseif ($gemsinstore>=$mingems) {
$price+=round($minprice*(1-$guilddiscount));
} else {
$wachstum=($minprice-$maxprice)/($mingems-$maxgems);
$price+=round(($wachstum*$gemsinstore-$wachstum*$maxgems+$maxprice)*(1-$guilddiscount));
}
} elseif ($trade=="sell"){
$gemsinstore++;
if($gemsinstore<=$maxgems){
$price+=round($maxprice*(1+$guilddiscount));
} elseif ($gemsinstore>=$mingems) {
$price+=round($minprice*(1+$guilddiscount));
} else {
$wachstum=($minprice-$maxprice)/($mingems-$maxgems);
$price+=round(($wachstum*$gemsinstore-$wachstum*$maxgems+$maxprice)*(1+$guilddiscount));
}
} else {
$price=0;
}
}
return $price;
}
?>