LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /logd/gilden.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/gilden.php

<?php
#-----------------------------------------#
#   Gildensystem Version: 1.5b            #
#   ~~ Funktionen ~~                      #
#   Autor: Eliwood                        #
#   Mit Unterstüzung von: Nephilea        #
#-----------------------------------------#

/* Struktur zusätzlicher Accounts-Felder:
-------------------------------------------------------------------
|   Feldname       Typus           SIGNED || Charset    Null?  default
|   memberid           int(11)                UNSIGNED              Nein       0
|      gildenactive      enum('0', '1')     latin1_german1_ci     Nein      0
|      rankid            int(11)                                   Nein      0
|      isleader          int(3)                UNSIGNED             Nein      0
|      gildengold        int(11)                                   Nein      0
|      gildengems        int(11)                                   Nein      0
-------------------------------------------------------------------
*/

/* Einstellungen laden */

/* Define Settings */
define("dkrequired",(int)getsetting("gilden_dkrequired",0)); // Benötigte Drachenkills
define("goldprice",(int)getsetting("gilden_goldprice",25000)); // Goldpreis der Gilde
define("gemprice",(int)getsetting("gilden_gemprice",20)); // Edelsteinpreis der Gilde
define("bewerbpreis",(int)getsetting("gilden_bewerbpreis",1000)); // Preis zum Bewerben
define("maxgold",(int)getsetting("gilden_maxgold",1000000)); // Goldlagergrösse
define("maxgems",(int)getsetting("gilden_maxgems",1000)); // Edelsteinlagergrösse
define("minchar",(int)getsetting("gilden_minchar",10)); // Mindestlänge das Gildennamens, ohne Farbcodes
define("highestleader",(int)getsetting("gilden_highestleader",2)); // Höchste leaderid (Leaderkennungszahl)
define("buildactive",(bool)getsetting("gilden_buildactive",TRUE)); // Ausbau aktiv?
define("goldperlevel",(int)getsetting("gilden_goldperlevel",1000)); // Goldtransfer pro Level
define("gemsperlevel",(int)getsetting("gilden_gemsperlevel",2)); // Edelsteintransfer pro Level
define("maxweapons",(int)getsetting("gilden_maxweapons",5)); // Maximale Waffen pro Gilde
define("maxarmors",(int)getsetting("gilden_maxarmors",5)); // Maximale Rüstungen pro Gilde

DEFINE("SQL_CACHE",(bool)getsetting("gilden_SQL_CACHE",FALSE)); // Bitte, nur aktivieren, wenn garantiert wegen dem keine Fehlermeldungen kommen!

/* Define Functions */

/* Gilde laden */
function loadguild($id)
{
   global 
$session,$SQL_CACHE;
   if(
$id 0)
   {
    
$sql "SELECT ".(SQL_CACHE==true?"SQL_CACHE":"")." * FROM gilden WHERE gildenid= '".$id."'";
    
$result db_query($sql);
    
$session['guild'] = db_fetch_assoc($result);
    
db_free_result($result);
    
$session['guild']['gildenname'] = stripslashes($session['guild']['gildenname']);
    
$session['guild']['gildenprefix'] = stripslashes($session['guild']['gildenprefix']);
    
$sql "SELECT rankname FROM gildenranks WHERE rankid='".$session['user']['rankid']."'";
    
$rank db_fetch_assoc(db_unbuffered_query($sql));
    
$session['rank'] = $rank['rank'];
   }
}

/* Gilde speichern, eigentlich nicht mehr nötig, aber ich lass es mal drinne */
function saveguild($id)
{
  global 
$session;
  if(
$id>0)
  {
    
$sql="UPDATE `gilden` SET ";
    
// unset($session['house']['houseid']);
    
reset($session[house]);
      while(list(
$key,$val)=each($session[house])){
          if (
is_array($val)){
                
$sql.="`".$key."` = '".addslashes(serialize($val))."', ";
            }else{
                
$sql.="`".$key."` = '".addslashes($val)."', ";
            }
      }
      
$sql substr($sql,0,strlen($sql)-2);
      
$sql.=" WHERE `gildenid` = '".$id."' LIMIT 1";
    
db_unbuffered_query($sql,LINK);
  }
}

/* Zeige Gilden */
function showguilds($id=false,$withlink=false,$detaillink=false)
{
  global 
$session,$output,$SQL_CACHE;
  if(
$id === false)
  {
    
$output.="<table align='center' bgcolor='#999999' cellpadding='2' cellspacing='1'>";
    
$output.="<tr class='trhead'><td>";
    
output("Kürzel");
    
$output.="</td><td>";
    
output("Name der Gilde");
    
$output.="</td><td>";
    
output("Leader");
    
$output.="</td><td>";
    
output("Punkte");
    if(
$withlink !== false || $detaillink!==false)
    {
      
$output.="</td><td>";
      
output("Ops");
    }
    
$output.="</td></tr>";
    
$sql "SELECT ".(SQL_CACHE==true?"SQL_CACHE":"")." * FROM gilden WHERE active='1' ORDER BY gildenpunkte DESC";
    
$result db_query($sql);
    
$i 0;
    while(
$row db_fetch_assoc($result))
    {
      
$sql "SELECT ".(SQL_CACHE==true?"SQL_CACHE":"")." name FROM accounts WHERE acctid='".$row['leaderid']."'";
      
$row2 db_fetch_assoc(db_unbuffered_query($sql));
      
$bgcolor = ($i%2==1?"trdark":"trlight");
      
$output.="<tr class='$bgcolor'><td>";
      
output(stripslashes($row['gildenprefix']));
      
$output.="</td><td>";
      
output(stripslashes($row['gildenname']));
      
$output.="</td><td>";
      
output($row2['name']);
      
$output.="</td><td align='center'>";
      
output("`&".$row['gildenpunkte']."`0");
      if(
$withlink !== false || $detaillink===true)
      {
        
$output.="</td><td>";
        if(
$withlink !== false)
        {
          
output("`&[<a href='".$withlink."&id=".$row['gildenid']."'> `xBewerben </a>`&] |",true);
          
addnav("",$withlink."&id=".$row['gildenid']);
        }
        
/* Details (PopUp) */
        
if($withlink !== false || $detaillink===trueoutput(" `&[<a href='showdetail.php?id=".$row['gildenid']."' target='window_popup' onClick=\"".popup("showdetail.php?id=".$row['gildenid'])."; return false;\"> `xDetails </a>`&]",true);
      }
      
$output.="</td></tr>";
      
$i++;
    }
    
db_free_result($result);
  }
  else
  {
    
$sql "SELECT ".(SQL_CACHE==true?"SQL_CACHE":"")." * FROM gilden WHERE active='1' AND gildenid='$id'";
    
$result db_query($sql);
    
$row db_fetch_assoc($result);
    
output("<p align='center'>",true);
    
output("`b".stripslashes($row['gildenname'])."`b`n`n");
    
output("`3~~ Beschreibung `3~~`n`n");
    
output(stripslashes($row['gildendesc']),true);
    
output("`n`n`3~~ Geschichte `3~~`n`n");
    
output(stripslashes($row['gildenstory']),true);
    
output("`n`n`3~~ Regeln `3~~`n`n");
    
output(stripslashes($row['gildenregeln']),true);
    
output("</p>",true);
  }
}

/* Preistafel */
function preistafel()
{
  global 
$bewerbpreis,$goldprice,$gemprice;
  
rawoutput("<pre>");
  
output("");
  
output("`f#-----`F--------------`h----------------------------------`F-------------`f----#");
  
output("`f# - `fB`Fe`hwerbungskosten: `^".bewerbpreis." Go`Fl`fd                                        `2#");
  
output("`f# - `fG`Fo`hldkosten für gegründete Gilde: `^".goldprice." Go`Fl`fd                        `2#");
  
output("`f# - `fE`Fd`helsteinkosten für gegründete Gilde: `%".gemprice." Edelstei`Fn`fe                `2#");
  
output("`f#------`F--------------`h----------------------------------`F------------`f----#");
  
rawoutput("</pre>");
}

/* Zeilen, 1 Zeile, 2 Spalten */
function rowform($title=false,$input=false)
{
  global 
$output;
  if(
$title===false)
  {
    
$output.= "<tr><td colspan='2' align='center'>";
    
$output.= $input;
    
$output.= "</td></tr>";
  }
  else
  {
    
$output.= "<tr><td>";
    
$output.= $title;
    
$output.= "</td><td>";
    
$output.= $input;
    
$output.= "</td></tr>";
  }
}

/* Formular für die Gründung */
function grundform($action,$tool=false)
{
  global 
$output;
  
$output.="<form action='$action' method='POST'><table>";
  
rowform("`fN`Fa`hme der Gilde (Ohne Farbcod`Fe`fs)","<input type='text' size='30' value='{$_POST['gildenname_b']}' maxlength='100' name='gildenname_b'>");
  
rowform("`fN`Fa`hme der Gilde (Mit Farbcod`Fe`fs)","<input type='text' size='30' value='{$_POST['gildenname']}' maxlength='100' name='gildenname'>");
  
rowform("`fP`Fr`hefix (Ohne Farbcod`Fe`fs)","<input type='text' size='5' value='{$_POST['gildenprefix_b']}' maxlength='5' name='gildenprefix_b'>");
  
rowform("`fP`Fr`hefix (Mit Farbcod`Fe`fs)","<input type='text' size='5' value='{$_POST['gildenprefix']}' maxlength='18' name='gildenprefix'>");
  if(
$tool===true)
  {
    
rowform("`fB`Fe`hsitz`Fe`fr","<input type='text' size='10' value='{$_POST['leaderid']}' maxlength='10' name='leaderid'>");
  }
  
rowform(false,"<input class='button' type='submit' value='Bestätigen'>");
  
$output.="</table></form>";
  
addnav("",$action);
}

/* Eingabe überprüfen */
function check_input($var)
{
  global 
$error,$minchar;
  if(
$_POST['gildenname_b']!=striptag($_POST['gildenname']))
  {
    
$error "`fE`FR`hROR! Verwende bitte gleiche Namen, dan`Fk`fe.";
    
$allow false;
  }
  elseif(
$_POST['gildenprefix_b']!=striptag($_POST['gildenprefix']))
  {
    
$error "`fE`FR`hROR! Verwende bitte gleiche Prefixe, dan`Fk`fe.";
    
$allow false;
  }
  elseif(
$_POST['gildenname_b']=="" || strlen($_POST['gildenname_b'])<minchar)
  {
    
$error "`fE`FR`hROR! Name leer oder zu ku`Fr`fz.";
    
$allow false;
  }
  elseif(
$_POST['gildenprefix_b']=="")
  {
    
$error "`fE`FR`hROR! Prefix le`Fe`fr!";
    
$allow false;
  }
  else 
$allow true;
  return 
$allow;
}

/* Links erlauben (Funktionsgleich mit addnav("",$link) */
if(!function_exists("allownav"))
{  
  function 
allownav($link)
  {
    global 
$session;
    
$session['allowednavs'][$link.$extra]=true;
    
$session['allowednavs'][str_replace(" ""%20"$link).$extra]=true;
    
$session['allowednavs'][str_replace(" ""+"$link).$extra]=true;
  }
}

/* Tribut checken */
function check_tribut()
{
  global 
$session,$errorart,$error,$maxgold,$maxgems,$gold,$gems;
  if(
$session['user']['gold']<$gold)
  {
    
$errorart 1;
    
$error .= "`fD`Fu`h kannst nicht mehr Gold einzahlen, als du bei dir ha`Fs`ft!";
    return 
false;
  }
  elseif(
$session['user']['gems']<$gems)
  {
    
$errorart 2;
    
$error .= "`fD`Fu`h kannst nicht mehr Edelsteine einzahlen, als du bei dir ha`Fs`ft!";
    return 
false;
  }
  elseif(!
is_numeric($gold) || !is_numeric($gems))
  {
    
$errorart 3;
    
$error .= "`fG`Fi`hb eine Zahl e`Fi`fn!";
    return 
false;
  }
  elseif((
$gold+$session['guild']['gold'])>maxgold)
  {
    
$errorart 4;
    
$error .= "`fG`Fo`hldspeicher vo`Fl`fl!";
    return 
false;
    continue;
  }
  elseif((
$gems+$session['guild']['gems'])>maxgems)
  {
    
$errorart 5;
    
$error .= "`fE`Fd`helsteinspeicher vo`Fl`fl!";
    return 
false;
  }
  elseif(
$gold || $gems 0)
  {
    
$errorart 6;
    
$error .= "`fA`Fr`hgh... Cheater! Negative Zahlen zählen nic`Fh`ft!";
  }
  else return 
true;
}

if(!
function_exists("page_title"))
{
  function 
page_title($data)
  {
    
output("`c`b$data`b`c`n",true);
  }
}

if(!
function_exists("db_unbuffered_query"))
{
  function 
db_unbuffered_query($sql) {
  global 
$session,$dbqueriesthishit,$dbtimethishit;
      
$dbqueriesthishit++;
  
$dbtimethishit -= getmicrotime();
      
$fname DBTYPE."_unbuffered_query";
      
$r $fname($sql) or die(($session[user][superuser]>=|| 1?"<pre>".HTMLEntities($sql)."</pre>":"").db_error(LINK));
  
$dbtimethishit += getmicrotime();
      return 
$r;
  }
}

function 
showuser_public()
{
  global 
$output,$session;
  
$sql "SELECT acctid,name,login,isleader,rankid FROM accounts WHERE memberid='".$session['guild']['gildenid']."' ".page("acctid","accounts","gilden.php?op=members","WHERE memberid='".$session['guild']['gildenid']."'")."";
  
$result db_query($sql);
  
rawoutput("<table align='center' bgcolor='#999999' cellpadding='1' cellspacing='1'>");
  
rawoutput("<tr class='trhead'>");
  
rawoutput("<td>");
  
output("`fN`Fam`fe");
  
rawoutput("</td><td>");
  
output("`fA`Fk`htueller Ra`Fn`fg");
  
rawoutput("</td></tr>");
  while(
$row db_fetch_assoc($result))
  {
    
$result_2 db_unbuffered_query("SELECT rankname FROM gildenranks WHERE rankid='{$row[rankid]}'");
    
$raw db_fetch_assoc($result_2);
    
$bgcolor = ($i%2?"trdark":"trlight");
    
rawoutput("<tr class='$bgcolor'><td>");
    
output($row['name']);
    
rawoutput("</td><td>");
    
output($raw['rankname']);
    
rawoutput("</td></tr>");
    
$i++;
  }
  
rawoutput("</table>");
}

if(!
function_exists("page"))
{
  function 
page($callfield,$table,$site,$whereclause,$perpage=30)
  {
    
// Seitenfunktion 2005 by Eliwood
      
$sql "SELECT count($callfield) AS c FROM $table ".$whereclause."";
      
///output($sql);
    
$result db_unbuffered_query($sql);
    
$row db_fetch_assoc($result);
    
$total $row['c'];
    
$perpage=30;
    if (
$_GET['page']==""$_GET['page']=1;
    
$pageoffset = (int)$_GET['page'];
        if (
$pageoffset>0$pageoffset--;
        
$pageoffset*=$perpage;
        
$from $pageoffset+1;
        
$to min($pageoffset+$perpage,$total);
    
$limit=" LIMIT $pageoffset,$perpage ";
    
/* Seiten verlinken */
        
addnav("Seiten");
    for (
$i=0;$i<$total;$i+=$perpage){
        
addnav("`fS`Fe`hi`Ft`fe ".($i/$perpage+1)." (".($i+1)."-".min($i+$perpage,$total).")","$site&page=".($i/$perpage+1));
    }
    return 
$limit;
  }
}

function 
guild_update($field,$value)
{
  global 
$session,$link;
  
$sql "UPDATE gilden SET `$field`='".addslashes($value)."' WHERE gildenid='{$session['guild']['gildenid']}'";
  
db_query($sql) or die(db_error(LINK));
  
$session['guild'][$field] = $value;
}

function 
show_builded_navs()
{
  global 
$session;
  
$sql "SELECT * FROM gilden_ausbau WHERE ownerguild='".$session['guild']['gildenid']."' AND name='marktplatz'";
  
$result db_query($sql);
  if(
db_num_rows($result)==1)
  {
    
addnav("Marktplatz");
    
$sql "SELECT * FROM gilden_ausbau WHERE ownerguild='".$session['guild']['gildenid']."' AND name!='marktplatz'";
    
$result db_unbuffered_query($sql);
    while(
$row db_fetch_assoc($result))
    {
      
addnav($row['name'],"gilden.php?op=build&action=$row[link]");
    }
  }
}

function 
is_buildet($what)
{
  global 
$session;
  
$result db_query("SELECT * FROM `gilden_ausbau` WHERE link='$what' AND ownerguild='".$session['guild']['gildenid']."'");
  if(
db_num_rows($result)==1)
    return 
true;
  else
    return 
false;
}

function 
drop_me($my_acctid,$my_name,$my_leaderid)
{
  global 
$highestleader,$session;
  if(
$my_leaderid >= highestleader)
  {
    
output("`fD`Fu`h darfst die Gilde SO nicht verlass`Fe`fn.");
  }
  else
  {
    
db_unbuffered_query("UPDATE accounts SET isleader='0',memberid='0',gildenactive='0',rankid='0' WHERE acctid='$my_acctid'");
    
$session['user']['isleader'] = 0;
    
$session['user']['memberid'] = 0;
    
$session['user']['gildenactive'] = '0';
    
$session['user']['rankid'] = 0;
    
systemmail($session['guild']['leaderid'],"`fK`Fü`hndigu`fn`fg","`^".$my_name."`h hat die fristlose Kündigung eingereic`Fh`ft!");
    unset(
$session['guild']);
    
addnav("`fZ`Fu`hrück zur Gildenstras`Fs`fe","gildenstrasse.php");
    
page_header("Gildenstrasse");
    
page_footer();
    exit();
  }
}
?>