anpera.net
http://anpera.homeip.net/phpbb3/

Gildensystem
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=1682
Seite 6 von 36

Autor:  Eliwood [ Di 04 Okt, 2005 20:55 ]
Betreff des Beitrags: 

Er meint, do sollst in der gildenverwalt.php
[php]db_Free_result($counter_);[/php]
Suchen, und davor
[php]//[php] (Zwei Slashes)
setzen.

Autor:  EA Neumann [ Di 04 Okt, 2005 21:07 ]
Betreff des Beitrags: 

Eliwood hat geschrieben:
Er meint, do sollst in der gildenverwalt.php
[php]db_Free_result($counter_);[/php]
Suchen, und davor
[php]//[php] (Zwei Slashes)
setzen.


Gemacht, keine Änderung des Problems mit der Meldung!!!

Autor:  Kevz [ Di 04 Okt, 2005 21:20 ]
Betreff des Beitrags: 

Siehe http://de.php.net/mysql_free_result
db_free_result gibt speicher frei

Autor:  Meteora [ Di 04 Okt, 2005 21:30 ]
Betreff des Beitrags: 

da ich keinen zugriff auf deinen lib - ordner habe, kann ich dir auch nicht weiterhelfen

Autor:  EA Neumann [ Di 04 Okt, 2005 23:17 ]
Betreff des Beitrags: 

Kevz hat geschrieben:
Siehe http://de.php.net/mysql_free_result
db_free_result gibt speicher frei


:pein: Auf die Idee hätte ich auch kommen können und müssen - DANKE!!!


Meteora hat geschrieben:
da ich keinen zugriff auf deinen lib - ordner habe, kann ich dir auch nicht weiterhelfen


Der Inhalt ist der gleiche wie hier in diesem Thread aus Seite 1, sprich der lib-Ordner zu dem Gilden-Hack - ich hoffe das hilf dir und du kannst mir damit weiterhelfen.

Autor:  Meteora [ Mi 05 Okt, 2005 07:11 ]
Betreff des Beitrags: 

nein, ich muss sehen ob du wirklichg das gemacht hast was ich dir gesagt habe!

Autor:  Meteora [ Mi 05 Okt, 2005 10:47 ]
Betreff des Beitrags: 

Waffeneditierfunktion

(Edit: Doppelpost, selbsthau)
Installation in der Datei

PW:
PW:
i_write_guild_addons

Um den Servern zu helfen, die Eliwoods Gildenaddon benutzen, seid so nett und schreibt selbst auch addons für sein Gildenaddon!

Dateianhänge:
Dateikommentar: Waffeneditierfunktion by Hadriel
wponedit.rar [1.63 KIB]
153-mal heruntergeladen

Autor:  EA Neumann [ Mi 05 Okt, 2005 11:13 ]
Betreff des Beitrags: 

Meteora hat geschrieben:
nein, ich muss sehen ob du wirklichg das gemacht hast was ich dir gesagt habe!


Also, dass ich die lib-Sachen so gemacht habe, davon kannst du mal ausgehen, da ich die ja nur in den LIB-Ordner hochladen musste - den LIB-Ordner habe ich ja extra dafür erstellt, da er zuvor noch nicht vorhanden war. Zudem habe ich noch die Waffeneditier-Sachen die du gerade zuvor gepostet hast eingebaut.

Hier mal die lib/gilden.php
[php]<?php
#-----------------------------------------#
# Gildensystem Version: 1.3 #
# ~~ 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
-------------------------------------------------------------------
*/

/* Define Settings */
define("dkrequired",20); // Benötigte Drachenkills
define("goldprice",30000); // Goldpreis der Gilde
define("gemprice",50); // Edelsteinpreis der Gilde
define("bewerbpreis",2500); // Preis zum Bewerben
define("maxgold",2500000); // Goldlagergrösse
define("maxgems",2500); // Edelsteinlagergrösse
define("minchar",8); // Mindestlänge das Gildennamens, ohne Farbcodes
define("highestleader",2); // Höchste leaderid (Leaderkennungszahl)
define("buildactive",TRUE); // Ausbau aktiv?
define("goldperlevel",3000); // Goldtransfer pro Level
define("gemsperlevel",3); // Edelsteintransfer pro Level
DEFINE("SQL_CACHE",FALSE); // Bitte, nur aktivieren, wenn garantiert wegen dem keine Fehlermeldungen kommen!
define("maxweapons",10); // Maximale Waffen pro Gilde

/* 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."' OR leaderid='$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===true) output(" `&[<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("`2#----------------------------------------------------------------------#");
output("`2# - `3Bewerbungskosten: `^".bewerbpreis." Gold `2#");
output("`2# - `3Goldkosten für gegründete Gilde: `^".goldprice." Gold `2#");
output("`2# - `3Edelsteinkosten für gegründete Gilde: `%".gemprice." Edelsteine `2#");
output("`2#----------------------------------------------------------------------#");
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)
{
global $output;
$output.="<form action='$action' method='POST'><table>";
rowform("Name der Gilde (Ohne Farbcodes)","<input type='text' size='30' value='{$_POST['gildenname_b']}' maxlength='100' name='gildenname_b'>");
rowform("Name der Gilde (Mit Farbcode","<input type='text' size='30' value='{$_POST['gildenname']}' maxlength='100' name='gildenname'>");
rowform("Prefix (Ohne Farbcodes)","<input type='text' size='5' value='{$_POST['gildenprefix_b']}' maxlength='5' name='gildenprefix_b'>");
rowform("Prefix (Mit Farbcodes)","<input type='text' size='5' value='{$_POST['gildenprefix']}' maxlength='18' name='gildenprefix'>");
rowform(false,"<input 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 = "ERROR! Verwende bitte gleiche Namen, danke.";
$allow = false;
}
elseif($_POST['gildenprefix_b']!=striptag($_POST['gildenprefix']))
{
$error = "ERROR! Verwende bitte gleiche Prefixe, danke.";
$allow = false;
}
elseif($_POST['gildenname_b']=="" || strlen($_POST['gildenname_b'])<minchar)
{
$error = "ERROR! Name leer oder zu kurz.";
$allow = false;
}
elseif($_POST['gildenprefix_b']=="")
{
$error = "ERROR! Prefix leer!";
$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;
if($session['user']['gold']<(int)$_POST['gold'])
{
$errorart = 1;
$error .= "`\$Du kannst nicht mehr Gold einzahlen, als du bei dir hast!";
return false;
}
elseif($session['user']['gems']<(int)$_POST['gems'])
{
$errorart = 2;
$error .= "`\$Du kannst nicht mehr Edelsteine einzahlen, als du bei dir hast!";
return false;
}
elseif(!is_int((int)$_POST['gold']) || !is_int((int)$_POST['gems']))
{
$errorart = 3;
$error .= "`\$Gib eine Zahl ein!";
return false;
}
elseif(($_POST['gold']+$session['guild']['gold'])>maxgold)
{
$errorart = 4;
$error .= "`\$Goldspeicher voll!";
return false;
continue;
}
elseif(($_POST['gems']+$session['guild']['gems'])>maxgold)
{
$errorart = 5;
$error .= "`\$Edelsteinspeicher voll!";
return false;
}
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]>=3 || 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("Name");
rawoutput("</td><td>");
output("Aktueller Rang");
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("Seite ".($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("`\$Du darfst die Gilde SO nicht verlassen.");
}
else
{
db_unbuffered_query("UPDATE accounts SET isleader='0',memberid='0',gildenactive='0',rankid='0',gildengold='0',gildengems='0' WHERE acctid='$my_acctid'");
$session['user']['isleader'] = 0;
$session['user']['memberid'] = 0;
$session['user']['rankid'] = 0;
$session['user']['gildenactive'] = 0;
$session['user']['gildengold'] = 0;
$session['user']['gildengems'] = 0;
systemmail($session['guild']['leaderid'],"Kündigung","`^".$my_name."`# hat die fristlose Kündigung eingereicht!");
unset($session['guild']);
//die(print_r(func_get_args()));
//redirect("gildenstrasse.php");
addnav("Zurück zur Gildenstrasse","gildenstrasse.php");
page_header("Gildenstrasse");
page_footer();
exit();
}
}
?>[/php]


Hier einmal die lib/gildenbuilding.php
[php]<?php
#-----------------------------------------#
# Gildensystem Version: 1.3 #
# ~~ Funktionen für die Gebäude ~~ #
# Autor: Eliwood #
# Mit Unterstüzung von: Nephilea #
#-----------------------------------------#

if(file_exists("lib/invhandler.php"))
require_once "lib/invhandler.php";

function showweapons($withlink=true)
{
global $session;
$result = db_unbuffered_query("SELECT * FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='weapon' AND value4>0 ORDER BY value1 ASC");
addnav("Waffen");
rawoutput("<table align='center' bgcolor='#999999'>");
rawoutput("<tr class='trhead'><td>Name</td><td>Schaden</td><td>Goldkosten</td><td>Stückzahl im Lager</td>");
if($session['user']['acctid']==$session['guild']['leaderid']){

rawoutput("<td>Bearbeiten</td></tr>");

}
$i = 0;
while($row = db_fetch_assoc($result))
{
$tableclass = ($i%2==1?"trlight":"trdark");
$mylink = "";
if($row['value3']<=$session['user']['gold']) $mylink = "gilden.php?op=build&action=weapon&weaponid=".$row['value1'];
if($withlink===true) addnav($row['data'],$mylink);
rawoutput("<tr class='$tableclass'>"
."<td>".$row['data']."</td>"
."<td>".$row['value2']."</td>"
."<td>".$row['value3']."</td>"
."<td>".$row['value4']."</td>");
if($session['user']['acctid']==$session['guild']['leaderid']){
rawoutput("<td><a href='gildenverwalt.php?op=verwaltbuild&action=weapon&do=edit&weaponid=".$row['value1']."'>Bearbeiten</a></td>");
}
rawoutput("</tr>");
addnav("","gildenverwalt.php?op=verwaltbuild&action=weapon&do=edit&weaponid=".$row['value1']."");
$i++;
}
rawoutput("</table>");
if($withlink===true) output("`\$`n`n--->Wenn du eine Waffen kaufen willst, klicke rechts oben auf den Navpunkt.");
}

function editweapon($id,$formlink)
{
global $session;
$weapon = db_fetch_assoc(db_unbuffered_query("SELECT * FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='weapon' AND value1='$id'"));
allownav($formlink);
$values = array(1=>48,225,585,990,1575,2250,2790,3420,4230,5040,5850,6840,8010,9000,10350);
rawoutput("<form method='POST' action='$formlink'><table>");
rawoutput("<input type='hidden' name='id' value='$id'>");
rawoutput("<tr><td>Name der Waffe</td>");
rawoutput("<td><input type='text' name='name' value='$weapon[data]' /></td></tr>");
rawoutput("<tr><td colspan='2' rowspan='2' align='center' valign='middle'><input class='button' type='submit' value='Waffe bearbeiten' /></td></tr><tr></tr>");
rawoutput("</table></form>");
}

function update_weapon($id){
global $session;
db_query("UPDATE gilden_data SET data='".$_POST['name']."' WHERE value1=".$id." AND gildenid=".$session['guild']['gildenid']);
}

function give_new_weapon($name,$description,$attack=0,$gold=0)
{
// Gives Users a New Waepon
global $session;
if (!is_int($attack)) $defence = 0;
if (!is_int($gold)) $gold = 0;
$sql="INSERT INTO items (name,class,owner,value1,gold,description) VALUES ('$name','Waffe','".$session['user']['acctid']."','$attack','$gold','$description')";
db_query($sql) or die("Ach, so nen Mist, schon wieder verbockt!");
}

function buyweapon($id)
{
global $session;
$weapon = db_fetch_assoc(db_unbuffered_query("SELECT * FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='weapon' AND value1='$id'"));
give_new_weapon($weapon['data'],"Eine Waffe, von der Gilde gekauft",$weapon['value2'],$weapon['value3']);
if(($weapon['value4']-1)==0) // Wenn keine Stückzahlen mehr vorhanden sind, Waffe aus der Datenbank löschen
db_query("DELETE FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='weapon' AND value1='$id'");
else // Wenn es noch was von der Waffe hat => Stückzahl verringern
db_query("UPDATE gilden_data SET value4=value4-'1' WHERE gildenid='".$session['guild']['gildenid']."' AND name='weapon' AND value1='$id'");
guild_update("gold",$session['guild']['gold']+$weapon['value3']);
$session['user']['gold']-=$weapon['value3'];
}

function insertweapon($name,$attack,$piece)
{
global $session;
$values = array(1=>48,225,585,990,1575,2250,2790,3420,4230,5040,5850,6840,8010,9000,10350);
$result = db_unbuffered_query("SELECT MAX(value1) AS maxid FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='weapon'");
$a = db_fetch_assoc($result);
$id = ($a['maxid']+1);
db_unbuffered_query("INSERT INTO gilden_data (gildenid,name,value1,data,value2,value3,value4) VALUES ('".$session['guild']['gildenid']."','weapon','$id','$name','$attack','".$values[$attack]."','$piece')");
db_free_result();
}

function weaponform($formlink)
{
global $session;
allownav($formlink);
$values = array(1=>48,225,585,990,1575,2250,2790,3420,4230,5040,5850,6840,8010,9000,10350);
rawoutput("<form method='POST' action='$formlink'><table>");
rawoutput("<tr><td>Name der Waffe</td>");
rawoutput("<td><input type='text' name='name' /></td></tr>");
rawoutput("<tr><td>Schaden</td>");
rawoutput("<td><select name='damage'>");
for($i=1;$i<=15;$i++)
{
rawoutput("<option value='$i'>$i (Goldkosten: ".$values[$i].")");
}
rawoutput("</select></td></tr>");
rawoutput("<tr><td>Wieviel davon herstellen?</td>");
rawoutput("<td><select name='piece'>");
for($i=1;$i<=20;$i++)
{
rawoutput("<option value='$i'>$i");
}
rawoutput("</select></td></tr>");
rawoutput("<tr><td colspan='2' rowspan='2' align='center' valign='middle'><input class='button' type='submit' value='Waffe schmieden' /></td></tr><tr></tr>");
rawoutput("</table></form>");
}



/*
Eine Liste mit den Wichtigen Informationen über die Tabelle gilden_data:

Waffen:
name => weapon
value1 => Waffenprimärschlüssel
data => Waffenname
value2 => Angriffspunkte
value3 => Waffenwert in Gold
value4 => Stückzahl
// Die Waffen werden ins Inventar übertragen!

*/
?>[/php]

Hier mal die lib/gildenverwaltfunc.php
[php]<?php
#-----------------------------------------#
# Gildensystem Version: 1.3 #
# ~~ Funktionen für die Verwaltung ~~ #
# Autor: Eliwood #
# Mit Unterstüzung von: Nephilea #
#-----------------------------------------#

function aufnehm($id,$name)
{
global $session;
output("`#Du nimmst `^$name`# in die Gilde auf.`n");
$body = "`#Du wurdest in der Gilde `^{$session['guild']['gildenname']}`# aufgenommen.";
$subject = "`@Aufgenommen!";
systemmail($id,$subject,$body);
$sql = "UPDATE accounts SET memberid='{$session['guild']['gildenid']}' WHERE acctid='$id'";
db_query($sql);
$sql = "DELETE FROM bewerbungen WHERE bewerberid='$id'";
db_query($sql);
}

function ablehn($id,$name)
{
global $session;
output("`#Du verweigerst `^$name`# die Aufnahme in die Gilde.`n");
$body = "`#Der eintritt in die Gilde `^{$session['guild']['gildenname']}`# wurde dir verweigert.";
$subject = "`\$Abgelehnt!";
systemmail($id,$subject,$body);
$sql = "DELETE FROM bewerbungen WHERE bewerberid='$id'";
db_query($sql);
$sql = "UPDATE accounts SET gildenactive='0' WHERE acctid='$id'";
db_query($sql);
}

function showbewerber()
{
global $session;
$sql = "SELECT bewerbungen.*, "
."accounts.name, "
."accounts.acctid, "
."accounts.login "
."FROM bewerbungen "
."INNER JOIN accounts "
."ON accounts.acctid = bewerbungen.bewerberid "
."WHERE gildenid='".$session['guild']['gildenid']."'"
."ORDER BY bewerbid ASC";
$result = db_query($sql) or die(db_errno($sql,LINK).": ".db_error($sql,LINK));
$i = 0;
rawoutput("<table align='center' bgcolor='#999999' cellpadding='1' cellspacing='1'>");
rawoutput("<tr class='trhead'>");
rawoutput("<td>");
output("Bewerbername");
rawoutput("</td><td>");
output("Optionen");
rawoutput("</td></tr>");
while($row = db_fetch_assoc($result))
{
$bgcolor = ($i%2?"trdark":"trlight");
$login = RawUrlEncode($row['login']);
$link = array(1=>"gildenverwalt.php?op=nimm&id=$row[acctid]&login=$login",2=>"gildenverwalt.php?op=ablehn&id=$row[acctid]&login=$login");
rawoutput("<tr class='$bgcolor'><td>");
output($row['name']);
rawoutput("</td><td>");
output("<a href='$link[1]'>`0[`2Annehmen`0]</a> &nbsp; <a href='$link[2]'>`0[`^Ablehnen`0]</a>",true);
rawoutput("</td></tr>");
allownav($link[1]);
allownav($link[2]);
$i++;
}
if($i == 0)
{
output("<tr><td align='center' colspan='2'>`~`b`iKeine Bewerbungen vorhanden`i`b</td></tr>",true);
}
rawoutput("</table>");
}

function showtitles($link = "gildenverwalt.php?op=ranks")
{
global $session,$output;
$sql = "SELECT * FROM gildenranks WHERE gildenid='".$session['guild']['gildenid']."' ORDER BY sortid,rankname DESC ".page("rankid","gildenranks","gildenverwalt.php?op=ranks","WHERE gildenid='{$session['guild']['gildenid']}'")."";
$result = db_unbuffered_query($sql);
$output .= "<table align='center' bgcolor='#999999' cellpadding='1' cellspacing='1'>";
$output .= "<tr class='trhead'>";
$output .= "<td>";
output("Rangname");
$output .= "</td><td>";
output("Optionen");
$output .= "</td>";
$output .= "</tr>";
$i = 0;
while($row = db_fetch_assoc($result))
{
$bgcolor = ($i%2?"trlight":"trdark");
$output .= "<tr class='$bgcolor'>";
$output .= "<td>";
output("`&".stripslashes($row['rankname']));
$output .= "</td><td>";
$linkb = $link."&id=".$row['rankid'];
$link1 = $linkb."&subop=edit";
$link2 = $linkb."&subop=del";
output("`0<a href='$link1'>`&[`2Rename`&]</a> `0<a href='$link2'>`&[`\$Löschen`&]</a>",true);
$output .= "</td>";
$output .= "</tr>";
allownav($link1);
allownav($link2);
$i++;
}
$output .= "</table>";
$linkb = $link."&subop=add";
output("`n`n`c<a href='$linkb'>[ Rang hinzufügen ]</a>`c",true);
allownav($linkb);

}

function createtitle($id=false)
{
global $output,$session;
if(!isset($_POST['rankname']))
{
if($id!==false)
{
$sql = "SELECT * FROM gildenranks WHERE rankid='$id'";
$row = db_fetch_assoc(db_query($sql));
}
$output .= "<form action='gildenverwalt.php?op=ranks&subop=save' method='POST'><table>";
allownav("gildenverwalt.php?op=ranks&subop=save");
$output .= "<tr><td>";
$output .= "Titelname: ";
$output .= "</td><td>";
$output .= "<input type='text' name='rankname' value='".stripslashes($row[rankname])."'>";
$output .= "</td></tr>";
$output .= "<tr><td>";
$output .= "<input type='hidden' name='rankid' value='".($id===false?"not":$id)."'>";
$output .= "</td><td>";
$output .= "<input type='submit' value='Bestätigen'>";
$output .= "</td></tr>";
$output .= "</table";
}
elseif($id===false)
{
$sql = "INSERT INTO gildenranks (`rankname`,`gildenid`) VALUES ('".addslashes($_POST['rankname'])."','".$session['guild']['gildenid']."')";
db_query($sql);
output("`2Rang hinzugefügt!`n");
}
else
{
$sql = "UPDATE gildenranks SET rankname='".addslashes($_POST[rankname])."' WHERE rankid='$id'";
db_query($sql);
output("`2Rang aktualisiert!`n");
}
}

function deletetitle($id)
{
global $output;
output("`4`cTitel gelöscht`c`n");
if(db_query("DELETE FROM gildenranks WHERE rankid='$id' LIMIT 1")) return true; else return false;
}

function showuser()
{
global $output,$session;
$sql = "SELECT acctid,name,login,isleader,rankid FROM accounts WHERE memberid='".$session['guild']['gildenid']."' ".page("acctid","accounts","gildenverwalt.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("Name");
rawoutput("</td><td>");
output("Aktueller Rang");
rawoutput("</td><td>");
output("Optionen");
rawoutput("</td></tr>");
while($row = db_fetch_assoc($result))
{
/* Ränge laden */
$result_2 = db_query("SELECT * FROM gildenranks WHERE gildenid='{$session[guild][gildenid]}' ORDER BY rankid");
$ranklist.="<option value='0' ".($row['rankid']==0?"selected='selected'":"").">Kein Titel\n";
while($ranks = db_fetch_assoc($result_2))
{
$ranklist.="<option ".($ranks['rankid']==$row['rankid']?" selected='selected' ":" ")."value='{$ranks[rankid]}'>{$ranks[rankname]}\n";
if($ranks['rankid'] == $row['rankid']) $acrank = $ranks['rankname'];
}
$bgcolor = ($i%2?"trdark":"trlight");
rawoutput("<tr class='$bgcolor'><td>");
output($row['name']);
rawoutput("</td><td>");
output($acrank);
rawoutput("</td><td>");
$links = array(
1=>"gildenverwalt.php?op=members&action=leader",
2=>"gildenverwalt.php?op=members&action=rank",
3=>"gildenverwalt.php?op=members&action=dropmember&dropid=".$row['acctid']
);
allownav($links[1]);
allownav($links[2]);
allownav($links[3]);
/* Verwalterid zuweisen lassen */
output(" <form action='$links[1]' method='POST'><input type='hidden' name='acctid' value='$row[acctid]'><input name='id' type='text' size='2' value='$row[isleader]'><input class='button' type='submit' value='Verwalterid zuweisen'></form> ",true);
/* Rang zuweisen lassen */
output(" <form action='$links[2]' method='POST'>"
."<select type='hidden' value='$row[acctid]' name='rank'>"
.$ranklist
."</select>"
."<input name='acctid' type='hidden' value='$row[acctid]'>"
."<input class='button' type='submit' value='Rangzuweisen'>"
."</form>`n",true);
output("`0[`0<a href='$links[3]'>`\$Entlassen</a>`0]",true);
rawoutput("</td></tr>");
$i++;
unset($ranklist);
unset($acrank);
unset($links);
}
rawoutput("</table>");
}

function showuser_pay()
{
global $output,$session;
$sql = "SELECT acctid,name,login,isleader,rankid FROM accounts WHERE memberid='".$session['guild']['gildenid']."' AND acctid!='".$session['user']['acctid']."' ".page("acctid","accounts","gildenverwalt.php?op=belohnen","WHERE memberid='".$session['guild']['gildenid']."' AND acctid!='".$session['user']['acctid']."'")."";
$result = db_query($sql);
rawoutput("<table align='center' bgcolor='#999999' cellpadding='1' cellspacing='1'>");
rawoutput("<tr class='trhead'>");
rawoutput("<td>");
output("Name");
rawoutput("</td><td>");
output("Optionen");
rawoutput("</td></tr>");
while($row = db_fetch_assoc($result))
{
$bgcolor = ($i%2?"trdark":"trlight");
rawoutput("<tr class='$bgcolor'><td>");
output($row['name']);;
rawoutput("</td><td>");
$links = array(1=>"gildenverwalt.php?op=belohnen&action=gold","gildenverwalt.php?op=belohnen&action=gems");
allownav($links[1]);
allownav($links[2]);
/* Gold */
output(" <form action='$links[1]' method='POST'>"
."<input type='hidden' name='acctid' value='$row[acctid]'>"
."<input type='hidden' name='art' value='gold'>"
."<input name='value' type='text' size='5' value='0'>"
."<input class='button' type='submit' value='Gold auszahlen'>"
."</form> ",true);
/* Edelsteine */
output(" <form action='$links[2]' method='POST'>"
."<input type='hidden' name='acctid' value='$row[acctid]'>"
."<input type='hidden' name='art' value='gems'>"
."<input name='value' type='text' size='5' value='0'>"
."<input class='button' type='submit' value='Edelsteine auszahlen'>"
."</form> ",true);
rawoutput("</td></tr>");
$i++;
}
rawoutput("</table>");
}

fuNcTiOn show_text($art)
{
GlObAl $session;
switch ($art):
case "desc": $field = "gildendesc"; $ptitle = "Beschreibung ändern"; break;
case "story": $field = "gildenstory"; $ptitle = "Geschichte ändern"; break;
case "regeln": $field = "gildenregeln"; $ptitle = "Regeln ändern"; break;
endswitch;
page_title($ptitle);
rawoutput("<p align='center'>");
output("`#Aktuell:`n`n");
output(stripslashes($session['guild'][$field]),true);
output("`#`n`nÄndern:`n`n");
$link = "gildenverwalt.php?op=texte&text=".$art."";
allownav($link);
rawoutput("<form action='$link' method='POST'>");
rawoutput("<textarea class='input' rows='20' cols='50' name='text'>".stripslashes($session['guild'][$field])."</textarea><br />");
rawoutput("<input type='submit' class='button' value='Änderungen übernehmen'>");
rawoutput("<input type='hidden' value='$field' name='field'>");
rawoutput("</form>");
output("`\$HTML erlaubt, für Absätze ``n oder <br> verwenden.");
rawoutput("</p>");
}

function show_build_navs()
{
global $session;
/* Marktplatz Stufe 1 (Nötig)*/
$result = db_query("SELECT * FROM `gilden_ausbau` WHERE `ownerguild`='".$session['guild']['gildenid']."' AND `name`='Marktplatz'") or die(db_error(LINK));
if(db_num_rows($result)==0)
{
$row = db_fetch_assoc($result);
addnav("Marktplatz bauen (Stufe `^1`0)","gildenverwalt.php?op=build&action=marktplatz&stufe=1");
}
/* Sonstiges */
else
{
$row = db_fetch_assoc($result);
$count = db_fetch_assoc(db_unbuffered_query("SELECT COUNT(name) AS count FROM gilden_ausbau WHERE name!='Marktplatz' AND ownerguild='".$session['guild']['gildenid']."'"));
$count = $count['count'];
$freeplaces = ($row['value1']-$count);
// $freeplaces = 0;
addnav("Noch ".($freeplaces)." Plätze frei","");
if($freeplaces == 0)
{
$sql = "SELECT * FROM gilden_ausbau WHERE name='Marktplatz' AND stufe>'$row[stufe]' ORDER BY stufe ASC LIMIT 1";
$result2 = db_query($sql) or die(db_error(LINK));
if(db_num_rows($result2)>0)
{
$row2 = db_Fetch_Assoc($result2);
addnav($row['name']." ausbauen (Stufe `^$row2[stufe]`0)","gildenverwalt.php?op=build&action=$row2[link]&stufe=$row2[stufe]");
}
else {addnav("Marktplatz nicht weiter ausbaubar","");}
}
else
{
$sql_ = "SELECT * FROM gilden_ausbau WHERE ownerguild='0' AND name!='Marktplatz'";
$result2_ = db_query($sql_);
while($row2 = db_fetch_assoc($result2_))
{
$check_sql = db_query("SELECT * FROM gilden_ausbau WHERE ownerguild='{$session[guild][gildenid]}' AND name='$row2[name]'");
if(db_num_rows($check_sql)==0)
{
$navlink = "";
if($row2['goldcost']<$session['guild']['gold'] && $row2['gemcost']<$session['guild']['gems'])
$navlink = "gildenverwalt.php?op=build&action=".$row2['link'];
addnav($row['name'],$navlink);
} // end if
} // end while
} // end else
} // end else
} // end function

function build_something($what)
{
global $session;
$sql = "SELECT * FROM gilden_ausbau WHERE ownerguild='0' AND link='$what'";
$row = db_fetch_assoc(db_unbuffered_query($sql));
}

/* User entlassen */
function drop_member($id)
{
global $session,$highestleader;
$drop_user = db_fetch_assoc(db_unbuffered_query("SELECT name,isleader FROM accounts WHERE acctid='$id'"));
if($drop_user['isleader']>=highestleader)
{
output("`\$ERROR! Du darfst den Gründer nicht entlassen!");
}
elseif($session['user']['isleader']<highestleader && $session['user']['isleader']>0 && $drop_user['isleader']>0)
{
output("`\$ERROR! Nur der Gründer kann eingesetzte Verwalter entlassen!");
}
elseif($id === $session['user']['acctid'])
{
output("`\$ERROR! Du KANNST dich nicht entlassen, du musst schon deine Kündigung einreichen ;D");
}
else
{
db_unbuffered_query("UPDATE accounts SET isleader='0',memberid='0',gildenactive='0' WHERE acctid='$id'");
output("`c`b`2User ".$drop_user['name']."`2 entlassen!`b`n`c;: ".$highestleader);
}
}

function renameform($action)
{
global $output,$session;
$output.="<form action='$action' method='POST'><table>";
rowform("Name der Gilde (Ohne Farbcodes)","<input type='text' size='30' value='{$session['guild']['gildenname_b']}' maxlength='100' name='gildenname_b'>");
rowform("Name der Gilde (Mit Farbcode","<input type='text' size='30' value='{$session['guild']['gildenname']}' maxlength='100' name='gildenname'>");
rowform("Prefix (Ohne Farbcodes)","<input type='text' size='5' value='{$session['guild']['gildenprefix_b']}' maxlength='5' name='gildenprefix_b'>");
rowform("Prefix (Mit Farbcodes)","<input type='text' size='5' value='{$session['guild']['gildenprefix']}' maxlength='18' name='gildenprefix'>");
rowform(false,"<input type='submit' class='button' value='Bestätigen'>");
$output.="</table></form>";
addnav("",$action);
}

function dropguild($id)
{
global $session;
db_query("DELETE FROM gilden WHERE gildenid='$id' LIMIT 1"); // Gilde löschen
db_query("DELETE FROM gildenranks WHERE gildenid='$id' LIMIT 1"); // Ränge löschen
db_query("DELETE FROM gilden_ausbau WHERE ownerguild='$id' LIMIT 1"); // Gebäude löschen
db_query("DELETE FROM gilden_data WHERE gildenid='$id' LIMIT 1"); // Ausbau-Daten löschen
db_query("UPDATE accounts SET isleader='0',memberid='0',gildenactive='0',rankid='0',gildengold='0',gildengems='0' WHERE memberid='$id'"); // User entlassen
$session['user']['memberid'] = 0;
$session['user']['gildenactive'] = 0;
$session['user']['rankid'] = 0;
$session['user']['isleader'] = 0;
$session['user']['gildengold'] = 0;
$session['user']['gildengems'] = 0;
addnews("`#Die Gilde `@{$session['guild']['gildenname']}`# wurde von `@{$session['user']['name']}`# aufgelöst.");
saveuser();
redirect("gildenstrasse.php");
}
?>[/php][/php]

Autor:  Meteora [ Mi 05 Okt, 2005 11:19 ]
Betreff des Beitrags: 

wieso machst du es so schwer und lässt den lib-ordner im source verborgen?

(übrigens bekomme ich auch keine fehlermeldung)

Autor:  EA Neumann [ Mi 05 Okt, 2005 11:39 ]
Betreff des Beitrags: 

Meteora hat geschrieben:
wieso machst du es so schwer und lässt den lib-ordner im source verborgen?

(übrigens bekomme ich auch keine fehlermeldung)


Werde den später noch freigeben, ich habe schonmal während du gepostet hast, die php in dem lib-Ordner sind oben gepostet!!!

Autor:  Meteora [ Mi 05 Okt, 2005 11:42 ]
Betreff des Beitrags: 

[php]
function insertweapon($name,$attack,$piece)
{
global $session;
$values = array(1=>48,225,585,990,1575,2250,2790,3420,4230,5040,5850,6840,8010,9000,10350);
$result = db_unbuffered_query("SELECT MAX(value1) AS maxid FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='weapon'");
$a = db_fetch_assoc($result);
$id = ($a['maxid']+1);
db_unbuffered_query("INSERT INTO gilden_data (gildenid,name,value1,data,value2,value3,value4) VALUES ('".$session['guild']['gildenid']."','weapon','$id','$name','$attack','".$values[$attack]."','$piece')");
db_free_result();
}
[/php]

das db_free_result(); kommentieren (=> //db_free_result(); )

Autor:  EA Neumann [ Mi 05 Okt, 2005 11:59 ]
Betreff des Beitrags: 

Meteora hat geschrieben:
[php]
function insertweapon($name,$attack,$piece)
{
global $session;
$values = array(1=>48,225,585,990,1575,2250,2790,3420,4230,5040,5850,6840,8010,9000,10350);
$result = db_unbuffered_query("SELECT MAX(value1) AS maxid FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='weapon'");
$a = db_fetch_assoc($result);
$id = ($a['maxid']+1);
db_unbuffered_query("INSERT INTO gilden_data (gildenid,name,value1,data,value2,value3,value4) VALUES ('".$session['guild']['gildenid']."','weapon','$id','$name','$attack','".$values[$attack]."','$piece')");
db_free_result();
}
[/php]

das db_free_result(); kommentieren (=> //db_free_result(); )


:pein: hatte gemäß Eliwood (er hatte mir kurz erklärt was du mit kommentieren meintest) nur in der gildenverwalt.php das db_free_result(); kommentiert, nicht aber in der gildenbuilding.php!!!
Nun läuft es aber ohne Fehler ich DANKE :wink: allen die sich der Sache angenommen haben -> ganz besonders dir Meteora!!!

Autor:  Eliwood [ Mi 05 Okt, 2005 12:12 ]
Betreff des Beitrags: 

Grosses, dickes Sorry

Hab vergessen, dass es da auch noch eins hat, das damit zusammen hängt :pein:

*Meteora für das Einspringen und die Editierfunktion herzlichst dankt*

Autor:  Eliwood [ Do 06 Okt, 2005 20:31 ]
Betreff des Beitrags: 

Update

Kleine Bugfixes

NEU:

Admintool, um die Gilden zu Administrieren (Momentan NUR die Gilden selbst)

Alle Dateien hochladen

Suche {superuser.php}
[php]addnav("Itemeditor","itemeditor.php");[/php]
Füge danach ein:
[php]addnav("Gildentool","gildentool.php");[/php]

Viel Spass damit :D

Autor:  Meteora [ Do 06 Okt, 2005 21:02 ]
Betreff des Beitrags: 

und es gibt ne editierfunktion für waffen ;) nur so als zusatz*hust* *nicht aufmerksam machen will* *hust*

Autor:  Ventus [ Fr 07 Okt, 2005 10:07 ]
Betreff des Beitrags: 

$this->bbcode_second_pass_code('', '
SELECT SQL_CACHE gilden.*,accounts.acctid,accounts.login FROM gilden INNER JOIN accounts ON gilden.leaderid=accounts.acctid AND gilden.gildenid!='1'

You have an error in your SQL syntax near '.*,accounts.acctid,accounts.login FROM gilden INNER JOIN accounts ON gilden.lead' at line 1
')

Wenn man sich alle Gilden im Admin Tool ansehen will ;)


SELECT SQL_CACHE * FROM gilden WHERE gildenid= '1' OR leaderid='1'

You have an error in your SQL syntax near 'FROM gilden WHERE gildenid= '1' OR leaderid='1'' at line 1

Wenn man in die Gildelstrasse gehen will!

Hilföö^^!

Autor:  Kevz [ Fr 07 Okt, 2005 10:13 ]
Betreff des Beitrags: 

Dann mach mal das SQL_CACHE weg

Autor:  Ventus [ Fr 07 Okt, 2005 10:36 ]
Betreff des Beitrags: 

Ich finds nicht, hat jemand ne Ahnung in welche Datei das ist?

Autor:  Meteora [ Fr 07 Okt, 2005 10:54 ]
Betreff des Beitrags: 

lib/gilden.php

setze dort

DEFINE("SQL_CACHE",TRUE);
auf
FALSE

Autor:  Seto [ Sa 08 Okt, 2005 13:37 ]
Betreff des Beitrags: 

hi,
ich habe en prob das bei mir wenn ich mich auslogge udn wieder ein loge die gilden aus meiner vital liste weg sind und nur noch da steht Gilden ().
Was hab ich da falsch eingebaut und wie kann ich das beheben?

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