su_check(access_control::SU_RIGHT_EDITORRENAME,true);
page_header("RP-Namensänderung");
output('`c`b`gRP-Namensänderung`b`c`n');
output('`&Das kleine Spielzeug zum Ändern des Namens.`n`n
`2Ungefähre Preisliste (berechnet nach DK * (10+DK/10)):`n
`g10 DKs: `2100 `gDP`n
20 DKs: `2240 `gDP`n
30 DKs: `2390 `gDP`n
50 DKs: `2750 `gDP`n
75 DKs: `21313 `gDP`n
Über 100 DKs pauschal: `22000 `gDP`n`n
Diese Werte sind als Richtlinien gedacht und müssen selbst eingegeben werden, können also je nach Bedarf angepasst werden. Der entsprechende Wert für die DK-Anzahl des Users wird berechnet. Der User verliert seine Gilde, seinen Partner, sein Amt und seinen Expezugang, der Forenname wird geändert und Einträge in History und Dorfamt gemacht. Spieler wie evtl. vorhandener Partner erhalten eine Systemmail.`n
`n
`n');
addnav('Zurück');
grotto_nav();
addnav('S?Neue Suche',$str_filename);
switch($_GET['op'])
{
case 'finish':
{
headoutput('`n`4Der Name wurde geändert!`n`n');
break;
}
case 'rename':
{
$pid = $_GET['pid'];
$str_msg = '';
$sql = 'SELECT * FROM accounts WHERE acctid="'.$pid.'"';
$res = db_query($sql);
$name = db_fetch_assoc($res);
$shortname = $name['login'];
$str_name = $shortname;
if($_GET['act'] == 'save' && strlen($_POST['newname']) > 0 && strlen($_POST['donation']) > 0 && $_POST['donation'] <= $_GET['dp'])
{
$bool_save = true;
// Name checken
// Auf jeden Fall Formatierungstags raus
$str_name = strip_appoencode(trim($_POST['newname']),3);
// Auf Korrektheit prüfen
$str_valid = user_rename($pid,stripslashes($str_name));
if(true !== $str_valid)
{
switch($str_valid)
{
case 'login_banned':
$str_msg .= 'Dieser Name ist gebannt!';
break;
case 'login_blacklist':
$str_msg .= 'Dieser Name ist verboten!';
break;
case 'login_dupe':
$str_msg .= 'Diesen Namen gibt es leider schon!';
break;
case 'login_tooshort':
$str_msg .= 'Dein gewählter Name ist zu kurz (Min. '.getsetting('nameminlen',3).' Zeichen)!';
break;
case 'login_toolong':
$str_msg .= 'Dein gewählter Name ist zu lang (Max. '.getsetting('namemaxlen',3).' Zeichen)!';
break;
case 'login_badword':
$str_msg .= 'Dein gewählter Name enthält unzulässige Begriffe!';
break;
case 'login_spaceinname':
$str_msg .= 'Dein gewählter Name enthält Leerzeichen, was leider nicht erlaubt ist!';
break;
case 'login_specialcharinname':
$str_msg .= 'Dein gewählter Name enthält Sonderzeichen, was leider nicht erlaubt ist!';
break;
case 'login_criticalcharinname':
$str_msg .= 'Dein gewählter Name enthält eines der folgenden Zeichen, die für einen Namen nicht geeignet sind:`n
'.str_replace('\\','',getsetting('criticalchars',''));
break;
case 'login_titleinname':
$str_msg .= 'Dein gewählter Name enthält einen Titel, der ein Teil des Spiels ist!';
break;
default:
$str_msg .= 'Irgendwas stimmt mit diesem Namen nicht!';
break;
} // Ende switch
output('`n`n`c`$`bFehler:`b `^'.$str_msg.'`c');
$bool_save = false;
} // Ende if != true
if($bool_save)
{
// Eintrag in History
addhistory('`^`b'.$shortname.' hat einen neuen Namen angenommen!`b',1,$pid);
debuglog(' änderte für '.$_POST['donation'].' DP den Namen von '.$shortname.' zu ',$pid);
// Eintrag ins Dorfamt
$sql = 'INSERT INTO boards SET section="namechange",author='.$pid.',message="Früherer Name: '.$shortname.'",postdate=NOW(),expire="'.date("Y-m-d H:i:s",strtotime(date("r")."+100 days")).'"';
db_query($sql);
// Titelreset
$newtitle=$titles[$name['dragonkills']][$_POST['sex']];
if (empty($newtitle))
{
$newtitle = $titles[sizeof($titles)-1][$_POST['sex']];
}
user_set_aei(array('ctitle'=>'','ctitle_backup'=>''),$pid);
// Aus Gilde entfernen, Kommentar
if($name['guildid'] > 0)
{
insertcommentary(1,'/msg '.$shortname.' `7ist spurlos aus dem Dorf verschwunden...','guild-'.$name['guildid'],1,1);
require_once(LIB_PATH.'dg_funcs.lib.php');
dg_remove_member($name['guildid'],$pid,true);
}
$pacctid=$name['marriedto'];
if ($pacctid>0 && $paccitid<4294967295)
{
// Erst Partner löschen
user_update(
array
(
'charisma'=>0,
'marriedto'=>0
),
$pacctid
);
systemmail($pacctid,'`v'.$shortname.' `vist verschwunden','`v'.$shortname.' `vhat das Dorf verlassen. Du bist nun wieder solo!');
}
// Dann den eigenen Kram
saveuser();
user_update(
array
(
'charisma'=>0,
'marriedto'=>0,
'profession'=>0,
'expedition'=>0,
'donationspent'=>array('sql'=>true,'value'=>'donationspent+'.intval($_POST['donation'])),
'sex'=>$_POST['sex'],
'title'=>$newtitle,
'race'=>$_POST['race']
),
$pid
);
// Gesamtname aktualisieren
user_set_name($pid);
systemmail($pid,'`3Ein neues Leben','`3Du hast einen neuen Namen angenommen und dafür `#'.$_POST['donation'].' `3DP gezahlt. Dein neuer Name lautet `#'.$str_name.'`3!');
redirect($str_filename.'?op=finish');
exit();
} // Ende if bool save
} // Ende get act save
if(!$bool_save)
{
$dp_netto=$name['donation']-$name['donationspent'];
$dpad=round($name['dragonkills']*(10+$name['dragonkills']/10));
$sql = 'SELECT name,id FROM races WHERE active=1 ORDER BY name ASC';
$result = db_query($sql);
$races='';
while ($m = db_fetch_assoc($result)){
$races.='';
}
$str_lnk = $str_filename.'?op=rename&act=save&pid='.$name['acctid'].'&dp='.$dp_netto;
addnav('',$str_lnk);
output('');
} // Ende if bool save
break;
} // Ende case rename
default:
{
if($_GET['act'] == 'search' && strlen($_POST['search']) > 0)
{
$search = str_create_search_string($_POST['search']);
$sql = 'SELECT login,acctid FROM accounts WHERE login LIKE "'.$search.'"';
$res = db_query($sql);
$link = $str_filename.'?act=id';
output('');
addnav('',$link);
} // Ende if
elseif($_GET['act'] == 'id' && $_POST['ziel'])
{
$ziel = (int)$_POST['ziel'];
$sql = 'SELECT * FROM accounts WHERE acctid='.$ziel;
$res = db_query($sql);
$name = db_fetch_assoc($res);
$pid = $name['acctid'];
if ($name['sex']) ($geschl='`rWeiblich'); else ($geschl='`wMännlich');
$dp_netto=$name['donation']-$name['donationspent'];
$dpad=round($name['dragonkills']*(10+$name['dragonkills']/10));
// Partnername
if ($name['marriedto']!=0)
{
$sql = 'SELECT name FROM accounts WHERE acctid='.$name['marriedto'];
$res = db_query($sql);
$pname = db_fetch_assoc($res);
}
// Gildenname
if ($name['guildid']!=0)
{
require_once(LIB_PATH.'dg_funcs.lib.php');
require_once('dg_output.php');
$guild = dg_load_guild($name['guildid'],array('name','ranks','guildid','founder'));
$gname = $guild['name'];
$gfounder = $guild['founder'];
}
// Rassenname
$sql = 'SELECT name FROM races WHERE id="'.$name['race'].'"';
$res = db_query($sql);
$rname = db_fetch_assoc($res);
// Amt
if ($name['profession']!=0)
{
$prof = $profs[$name['profession']];
$aname = $prof[3].$prof[$name['sex']];
}
output('Name: `2'.$name['name'].'`g`n');
output('Geschlecht: '.$geschl.'`g`n');
output('Rasse: `2'.$rname['name'].'`g`n');
output('Heldentaten: `2'.$name['dragonkills'].'`g`n`n');
output('Donationpoints: `2'.$dp_netto.'`g`n');
output('Empfohlene Kosten: `4'.$dpad.'`g`n`n');
output('`gDer User wird verlieren:`n');
if ($name['marriedto']!=0) output('Partner: `2'.$pname['name'].'`g`n');
if ($name['profession']!=0) output('Amt: `2'.$aname.'`g`n');
if ($name['guildid']!=0) output('Gilde: `2'.$gname.'`g`n');
if ($name['acctid']==$gfounder) output('`$Gründer der Gilde!`g`n');
if ($name['expedition']!=0) output('Zur Expedition `@zugelassen`g`n');
output('`n'.create_lnk('Diesen Char umbenennen',$str_filename.'?op=rename&pid='.$name['acctid']));
} // Ende elseif
else
{
output('`gWer soll einen neuen Namen bekommen?`n`n');
$link = $str_filename.'?act=search';
output('');
addnav('',$link);
} // Ende else
break;
}
} // Ende switch op
page_footer();
?>