LoGD Standardrelease steht hier zum Download zur Verfügung!
<?php
#-----------------------------------------#
# Gildensystem Version: 1.5b #
# ~~ Funktionen für die Gebäude ~~ #
# Autor: Eliwood #
# Mit Unterstüzung von: Nephilea #
#-----------------------------------------#
/* 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!
Rüstungen:
name => armor
value1 => Rüstungsprimärschlüssel
data => Rüstungsname
value2 => Defensivpunkte
value3 => Rüstungswert in Gold
value4 => Stückzahl
// Die Rüstungen werden ins Inventar übertragen!
Diplomatie:
name => diplomatie
value1 => Vertragsid
value2 => Antragspartner
value3 => Art des Verhältnisses:
0 => Neutral
1 => Friedensangebot
2 => Bündnis
3 => Verfeindet
4 => Kriegszustand
value4 => Unterzeichnet (Partner) [Falls Kriegserklärung oder bei Verfeindung wird das Einverständnis nicht gebraucht!]
data => Optionaler Text
// Um diplomatische Beziehungen aufzubauen, wird das Diplomatenzentrum benötigt (Gebäude) */
$cost_values = array(1=>48,225,585,990,1575,2250,2790,3420,4230,5040,5850,6840,8010,9000,10350);
function getDiscount ($price,$what) {
//2006 by Banshee
global $session;
$factor = 100;
$sql = "SELECT value1 FROM gilden_ausbau WHERE ownerguild='".$session['guild']['gildenid']."' AND link = '".$what."'";
$result = db_query ($sql) or die (mysql_error());
$row = db_fetch_assoc($result);
if (db_num_rows ($result)) {
$factor = $row[value1];
}
return round($price* $factor/100);
}
/* Invhandlerfuncs 2005 by Eliwood */
function give_new_weapon($name,$description,$attack=0,$gold=0)
{
// Gives Users a New Weapon
global $session;
if (!is_numeric($attack)) $attack = 0;
if (!is_numeric($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 give_new_armor($name,$description,$defence=0,$gold=0)
{
// Gives Users a New Armor
global $session;
if (!is_numeric($defence)) $defence = 0;
if (!is_numeric($gold)) $gold = 0;
$sql="INSERT INTO items (name,class,owner,value1,gold,description) VALUES ('$name','Rüstung','".$session['user']['acctid']."','$defence','$gold','$description')";
db_query($sql) or die("Ach, so nen Mist, schon wieder verbockt!");
}
/* End Invhandlerfuncs */
/* Waffenshop */
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'>");
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");
$i++;
$mylink = "";
if($row['value3']<=$session['user']['gold']) $mylink = "gilden.php?op=build&action=weapon&weaponid=".$row['value1'];
if($withlink===true) {
addnav($row['data'],$mylink);
addnav("",$mylink);
}
rawoutput("<tr class='$tableclass'>"
."<td>".($myLink!=""?"<a href='$myLink'>":"").appoencode($row['data']).($myLink!=""?"</a>":"")."</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>");
addnav("","gildenverwalt.php?op=verwaltbuild&action=weapon&do=edit&weaponid=".$row['value1']."");
}
rawoutput("</tr>");
}
rawoutput("</table>");
}
function editweapon($id,$formlink)
{
/* Function by Hadriel */
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);
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)
{
/* Function by Hadriel */
global $session;
db_query("UPDATE gilden_data SET data='".$_POST['name']."' WHERE value1=".$id." AND gildenid=".$session['guild']['gildenid']." AND name='weapon'");
}
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,$cost_values;
$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','".getDiscount($cost_values[$attack],'weapon')."','$piece')");
}
function weaponform($formlink)
{
global $session,$cost_values,$maxstufe;
allownav($formlink);
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: ".$cost_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>");
}
/* Rüstungsshop */
function showarmors($withlink=true)
{
global $session;
$result = db_unbuffered_query("SELECT * FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='armor' AND value4>0 ORDER BY value1 ASC");
addnav("Rüstungen");
rawoutput("<table align='center'>");
rawoutput("<tr class='trhead'><td>Name</td><td>Defensivkraft</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");
$i++;
$mylink = "";
if($row['value3']<=$session['user']['gold']) $mylink = "gilden.php?op=build&action=armor&armorid=".$row['value1'];
if($withlink == true) {
addnav($row['data'],$mylink);
addnav("",$mylink);
}
rawoutput("<tr class='$tableclass'>"
."<td>".($myLink!=""?"<a href='$myLink'>":"").appoencode($row['data']).($myLink!=""?"</a>":"")."</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=armor&do=edit&armorid=".$row['value1']."'>Bearbeiten</a></td>");
addnav("","gildenverwalt.php?op=verwaltbuild&action=armor&do=edit&armorid=".$row['value1']."");
}
rawoutput("</tr>");
}
rawoutput("</table>");
}
function editarmor($id,$formlink)
{
/* Function by Hadriel */
global $session;
$armor = db_fetch_assoc(db_unbuffered_query("SELECT * FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='armor' AND value1='$id'"));
allownav($formlink);
rawoutput("<form method='POST' action='$formlink'><table>");
rawoutput("<input type='hidden' name='id' value='$id'>");
rawoutput("<tr><td>Name der Rüstung</td>");
rawoutput("<td><input type='text' name='name' value='$armor[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_armor($id)
{
/* Function by Hadriel */
global $session;
db_query("UPDATE gilden_data SET data='".$_POST['name']."' WHERE value1=".$id." AND gildenid=".$session['guild']['gildenid']." AND name='armor'");
}
function buyarmor($id)
{
global $session;
$armor = db_fetch_assoc(db_unbuffered_query("SELECT * FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='armor' AND value1='$id'"));
give_new_armor($armor['data'],"Eine Rüstung, von der Gilde gekauft",$armor['value2'],$armor['value3']);
if(($armor['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='armor' 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='armor' AND value1='$id'");
guild_update("gold",$session['guild']['gold']+$armor['value3']);
$session['user']['gold']-=$armor['value3'];
}
function insertarmor($name,$attack,$piece)
{
global $session,$cost_values;
$result = db_unbuffered_query("SELECT MAX(value1) AS maxid FROM gilden_data WHERE gildenid='".$session['guild']['gildenid']."' AND name='armor'");
$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']."','armor','$id','$name','$attack','".getDiscount($cost_values[$attack],'armor')."','$piece')");
}
function armorform($formlink)
{
global $session,$cost_values;
allownav($formlink);
rawoutput("<form method='POST' action='$formlink'><table>");
rawoutput("<tr><td>Name der Rüstung</td>");
rawoutput("<td><input type='text' name='name' /></td></tr>");
rawoutput("<tr><td>Defensive</td>");
rawoutput("<td><select name='damage'>");
for($i=1;$i<=15;$i++)
{
rawoutput("<option value='$i'>$i (Goldkosten: ".$cost_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='Rüstung schmieden' /></td></tr><tr></tr>");
rawoutput("</table></form>");
}
function dormitory () {
global $session;
addnav("Dormitorium");
addnav ("Einschlafen","gilden.php?op=build&action=dormitory&sleep=sleep");
if ($_GET[sleep] == "sleep") {
$result = db_query ("SELECT value2 FROM gilden_ausbau WHERE ownerguild=".$session['guild']['gildenid']." AND link='dormitory'");
$row = mysql_fetch_assoc ($result);
if ($row[value2]) {
db_query("UPDATE gilden_ausbau SET value2= value2 - 1 WHERE ownerguild=".$session['guild']['gildenid']." AND link='dormitory'");
$session['user']['location']=4;
$session['user']['loggedin']=0;
$sql = "UPDATE accounts SET loggedin=0,location=4 WHERE acctid = ".$session[user][acctid];
db_query($sql) or die(sql_error($sql));
$session=array();
redirect("index.php");
} else { //no room in dormitory
output ("Du schleichst Dich in den Schlafsaal, musst aber feststellen, dass alle Betten belegt sind. Tja, da musst Du wohl in die Felder.");
}
} elseif ($_REQUEST[sleep] == "wakeup") {
output ("Du wachst auf.");
db_query("UPDATE gilden_ausbau SET value2= value2 + 1 WHERE ownerguild=".$session['guild']['gildenid']." AND link='dormitory'");
$session['user']['location']=0;
} else {
output ("Hier können sich Gildenmitglieder beruhigt zur Ruhe legen...");
}
}
function wall () {
output ("Du steigst auf die Befestigungsanlage. Es ist ein bisschen windig hier oben, aber für den tollen Blick über Everon lohnt es sich.`n");
output ("Nachdem Du Dich ausgiebig umgeschaut hast, steigst Du wieder hinab.`n");
}
/* Diplomatie */
function load_diplomatie_array() {
$array = array(
-1=>"Nicht möglich",
0=>"Nicht möglich",
1=>"Bündnis",
2=>"Friedensangebot",
3=>"neutral",
4=>"verfeindet",
5=>"Kriegszustand",
);
return $array;
}
function diplomatie_show_guilds ($id = false) {
global $session;
$bez = load_diplomatie_array();
$sql = "SELECT gildenid,gildenname_b,gildenprefix_b,leaderid FROM gilden
WHERE gildenid!='".$id."'
ORDER BY gildenname";
$result = db_query ($sql);
if (db_num_rows($result) == 0) {
output ("keine Gilden vorhanden");
} else {
$out.="<table align='center'><tr class='trhead'>
<th>Gildenname</th><th>Prefix</th><th>Leader</th><th>Beziehung</th>
</tr>";
while ($row = db_fetch_assoc($result)) {
$leader = db_fetch_assoc(db_query("SELECT name FROM accounts WHERE acctid = '$row[leaderid]'"));
if(db_num_rows(db_query("SELECT name FROM gilden_ausbau WHERE ownerguild='{$row['gildenid']}' AND name='Diplomatenzentrum'"))) {
$sql2 = "SELECT value3 FROM gilden_data
WHERE name='diplomatie'
AND gildenid='".$id."'
AND value2 = '$row[gildenid]'";
$result2 = db_query ($sql2);
if (db_num_rows ($result2)) {
$row2 = db_fetch_assoc ($result2);
}
$out.= "<tr>";
$out.= "<td>$row[gildenname_b] </td>";
if (!$row2[value3]) $row2[value3] = 3;
$out.= "<td>$row[gildenprefix_b]</td><td>$leader[name]</td><td>".$bez[$row2['value3']]."$alliance</td></tr>\n";
unset ($row2['value3']);
} //if ausbau erlaubt
} //while
$out.= "</table>\n";
} //if gilden
output ($out,true);
} //diplomatie_show_guilds
?>