So Eliwood hat es geschaft noch mals vielen lieben Dank an Dich dass Du dir soviel Zeit genommen und das Problem gelöst hast
Und nun für alle die dieses Problem so haben wie ichs hatte
Ihr müsst diesen Befehl in eurer DB ausführen:
CREATE TABLE `specialvars` (
`id` int(11) NOT NULL default '0',
`var` varchar(40) NOT NULL default '',
`value` varchar(40) default NULL,
`assign` char(1) default NULL,
`player1` int(11) NOT NULL default '0',
`player2` int(11) NOT NULL default '0',
`text` varchar(255) default NULL
) TYPE=MyISAM;
In der common.php
vor:
[php]$beta = (getsetting("beta",0) == 1 || $session['user']['beta']==1);
?>[/php]
dies setzen:
[php]// Synchronisationsproblem
// Function by Raven @
http://www.rabenthal.de
//
function get_special_var ($var=FALSE) { // by Raven @ rabenthal
global $session;
if($var){
$sql="SELECT * FROM specialvars WHERE player1 = ".$session[user][acctid]." AND var = ".$var."";
}else{
$sql="SELECT * FROM specialvars WHERE player1 = ".$session[user][acctid]."";
}
$result=db_query($sql);
$anzahl = db_num_rows($result);
for ($i=0;$i<=$anzahl;$i++){
$row = db_fetch_assoc($result); // hole Datensatz
$okay = 0;
switch($row['var']){
case "charm":
if ($row['assign'] == '0') $wert = (int)$row[value]; else $wert = (int)$row[value] * -1;
$session[user][charm] = $session[user][charm] + $wert;
$okay = 1;
break;
case "charisma":
$session[user][charisma] = $row[value];
if ($row['text'] == "Heirat") $session[user][marriedto] = $row['player2'];
$okay = 1;
break;
case "seenlover":
$session[user][seenlover] = (int)$row[value];
$okay = 1;
break;
case "donation":
if ($row['assign'] == '0') $wert = (int)$row[value]; else $wert = (int)$row[value] * -1;
$session[user][donation] = $session[user][donation] + $wert;
$okay = 1;
break;
case "goldinbank":
if ($row['assign'] == '0') $wert = (int)$row[value]; else $wert = (int)$row[value] * -1;
$session[user][goldinbank] = $session[user][goldinbank] + $wert;
if (substr($row[text],0,11)=="Überweisung"){
systemmail($session[user][acctid],"`^Du hast eine Überweisung erhalten!`0","`6{$row['text']}!");
}
$okay = 1;
break;
case "goldcginbank":
if ($row['assign'] == '0') $wert = (int)$row[value]; else $wert = (int)$row[value] * -1;
$session[user][goldinbank] = $session[user][goldinbank] + $wert;
if (substr($row[text],0,11)=="Überweisung"){
systemmail($session[user][acctid],"`^Du hast eine Überweisung erhalten!`0","`6{$row['text']}!");
}
$session[user][cg_getgold]+=$wert;
$okay = 1;
break;
case "gems":
if ($row['assign'] == '0') $wert = (int)$row[value]; else $wert = (int)$row[value] * -1;
$session[user][gems] = $session[user][gems] + $wert;
if (substr($row[text],0,11)=="Überweisung"){
systemmail($session[user][acctid],"`^Du hast eine Überweisung erhalten!`0","`6{$row['text']}!");
}
$okay = 1;
break;
case "cggems":
if ($row['assign'] == '0') $wert = (int)$row[value]; else $wert = (int)$row[value] * -1;
$session[user][gems] = $session[user][gems] + $wert;
if (substr($row[text],0,11)=="Überweisung"){
systemmail($session[user][acctid],"`^Du hast eine Überweisung erhalten!`0","`6{$row['text']}!");
}
$session[user][cg_getgems]+=$wert;
$okay = 1;
break;
case "location":
$session[user][location] = (int)$row[value];
$okay = 1;
break;
case "prayer":
$session[user][prayer] = (int)$row[value];
$okay = 1;
break;
case "loggedin":
$session[user][loggedin] = (int)$row[value];
$okay = 1;
break;
case "jailtime":
$session[user][jailtime] = (int)$row[value];
$okay = 1;
break;
case "transferredtoday":
if ($row['assign'] == '0') $wert = (int)$row[value]; else $wert = (int)$row[value] * -1;
$session[user][transferredtoday] = $session[user][transferredtoday] + $wert;
$okay = 1;
break;
case "goldafterdk":
if ($row['assign'] == '0') $wert = (int)$row[value]; else $wert = (int)$row[value] * -1;
$session[user][goldafterdk]=$wert;
$okay = 1;
break;
}
if ($okay == 1){
$sql = "DELETE FROM specialvars WHERE id = ".$row[id]."";
db_query($sql);
}
}
}
function set_special_var ($var, $value, $assign, $player_1, $player_2, $text) { // by Raven @ rabenthal
$sql="SELECT max(id) as max from specialvars";
$result=db_query($sql);
$row=db_fetch_assoc($result);
$maxzahl = $row[max]+1;
$sql="INSERT INTO specialvars (id,var,value,player1,player2,assign,text)
VALUES( ".$maxzahl."
,'$var'
,'$value'
,".(int)$player_1."
,".(int)$player_2."
,'$assign'
,'$text'
)";
return db_query($sql) or die(db_error($link));
} [/php]
in der village.php unter:
[php]checkday();[/php]
dies setzen:
[php]get_special_var();
if ($session[user][guildID]!=0){
get_clanguild_var($session[user][guildID]);
}else if($session[user][clanID]!=0){
get_clanguild_var($session[user][clanID]);
} [/php]
fertig
