Ir para conteúdo

Boush

Membro
  • Registro em

  • Última visita

Tudo que Boush postou

  1. Alguém sabe como posso implementar em meu site a opção do player poder esconder os itens? <img id="ContentBoxHeadline" class="Title" src="layouts/tibiacom/images/header/headline-accountmanagement.gif" alt="Contentbox headline"> <?php if(!defined('INITIALIZED')) exit; if(!$logged) if($action == "logout") $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Logout Successful</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>You have logged out of your '.htmlspecialchars($config['server']['serverName']).' account. In order to view your account you need to <a href="?subtopic=accountmanagement" >log in</a> again.</td></tr> </table> </div> </table></div></td></tr>'; else { if(isset($isTryingToLogin)) { switch(Visitor::getLoginState()) { case Visitor::LOGINSTATE_NO_ACCOUNT: $main_content .= 'Account with that name doesn\'t exist.'; break; case Visitor::LOGINSTATE_WRONG_PASSWORD: $main_content .= 'Wrong password to account.'; break; } } $main_content .= 'Please enter your account name and your password.<br/><a href="?subtopic=createaccount" >Create an account</a> if you do not have one yet.<br/><br/><form action="?subtopic=accountmanagement" method="post" ><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Login</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >Account Name:</span></td><td style="width:100%;" ><input type="password" name="account_login" SIZE="10" maxlength="10" ></td></tr><tr><td class="LabelV" ><span >Password:</span></td><td><input type="password" name="password_login" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table width="100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=lostaccount" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Account lost?" alt="Account lost?" src="'.$layout_name.'/images/buttons/_sbutton_accountlost.gif" ></div></div></td></tr></form></table></td></tr></table>'; } else { if($action == "") { $account_reckey = $account_logged->getCustomField("key"); if($account_logged->getPremDays() > 0) $account_status = '<b><font color="green">Premium Account, '. $account_logged->getPremDays() .' days left</font></b>'; else $account_status = '<b><font color="red">Free Account</font></b>'; if(empty($account_reckey)) $account_registred = '<b><font color="red">No</font></b>'; else if($config['site']['generate_new_reckey'] && $config['site']['send_emails']) $account_registred = '<b><font color="green">Yes ( <a href="?subtopic=accountmanagement&action=newreckey"> Buy new Rec key </a> )</font></b>'; else $account_registred = '<b><font color="green">Yes</font></b>'; $account_created = $account_logged->getCreateDate(); $account_email = $account_logged->getEMail(); $account_email_new_time = $account_logged->getCustomField("email_new_time"); if($account_email_new_time > 1) $account_email_new = $account_logged->getCustomField("email_new"); $account_rlname = $account_logged->getRLName(); $account_location = $account_logged->getLocation(); if($account_logged->isBanned()) if($account_logged->getBanTime() > 0) $welcome_msg = '<font color="red">Your account is banished until '.date("j F Y, G:i:s", $account_logged->getBanTime()).'!</font>'; else $welcome_msg = '<font color="red">Your account is banished FOREVER!</font>'; else $welcome_msg = 'Welcome to your account!'; $main_content .= '<div class="SmallBox" > <div class="MessageContainer" ><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div><div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div><div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div><div class="Message" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div><div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div><table><td width="100%"></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=logout" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Logout" alt="Logout" src="'.$layout_name.'/images/buttons/_sbutton_logout.gif" ></div></div></td></tr></form></table></td></tr></table> </div><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/><center><table><tr><td><img src="'.$layout_name.'/images/content/headline-bracer-left.gif" /></td><td style="text-align:center;vertical-align:middle;horizontal-align:center;font-size:17px;font-weight:bold;" >'.$welcome_msg.'<br/></td><td><img src="'.$layout_name.'/images/content/headline-bracer-right.gif" /></td></tr></table><br/></center>'; //if account dont have recovery key show hint if(empty($account_reckey)) $main_content .= '<div class="SmallBox" ><div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div><div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div><div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div><div class="Message" ><div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div><div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div><table><tr><td class="LabelV" >Hint:</td><td style="width:100%;" > <font color="red"> <b><h3>CREATE YOUR RECOVERY KEY AND SAVE IT! WE CANT GIVE YOUR CHAR BACK IF YOU GOT HACKED!!!!!! Click on "Register Account" and get your free recovery key today!</b></font></h3></td></tr></table><div align="center" ><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=registeraccount" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Register Account" alt="Register Account" src="'.$layout_name.'/images/buttons/_sbutton_registeraccount.gif" ></div></div></td></tr></form></table></div></div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div><div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div><div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; if($account_email_new_time > 1) if($account_email_new_time < time()) $account_email_change = '<br>(You can accept <b>'.htmlspecialchars($account_email_new).'</b> as a new email.)'; else { $account_email_change = ' <br>You can accept <b>new e-mail after '.date("j F Y", $account_email_new_time).".</b>"; $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="Message" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div><table><tr><td class="LabelV" >Note:</td><td style="width:100%;" >A request has been submitted to change the email address of this account to <b>'.htmlspecialchars($account_email_new).'</b>. After <b>'.date("j F Y, G:i:s", $account_email_new_time).'</b> you can accept the new email address and finish the process. Please cancel the request if you do not want your email address to be changed! Also cancel the request if you have no access to the new email address!</td></tr></table><div align="center" ><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=changeemail" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Edit" alt="Edit" src="'.$layout_name.'/images/buttons/_sbutton_edit.gif" ></div></div></td></tr></form></table></div> </div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/><br/>'; } $main_content .= '<a name="General+Information" ></a><div class="TopButtonContainer" ><div class="TopButton" ><a href="#top" > <image style="border:0px;" src="'.$layout_name.'/images/content/back-to-top.gif" /></a></div></div><div class="TableContainer" ><table class="Table3" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >General Information</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div> </div><tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td><div class="TableShadowContainerRightTop" > <div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif);" ></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif);" ><div class="TableContentContainer" > <table class="TableContent" width="100%" ><tr style="background-color:'.$config['site']['darkborder'].';" ><td class="LabelV" >Email Address:</td><td style="width:90%;" >'.htmlspecialchars($account_email).''.$account_email_change.'</td></tr><tr style="background-color:'.$config['site']['lightborder'].';" ><td class="LabelV" >Created:</td><td>'.date("j F Y, G:i:s", $account_created).'</td></td><tr style="background-color:'.$config['site']['darkborder'].';" ><td class="LabelV" >Last Login:</td><td>'.date("j F Y, G:i:s", time()).'</td></tr><tr style="background-color:'.$config['site']['lightborder'].';" ><td class="LabelV" >Account Status:</td><td>'.$account_status.'</td></tr><tr style="background-color:'.$config['site']['darkborder'].';" ><td class="LabelV" >Registred:</td><td>'.$account_registred.'</td></tr></table></div></div><div class="TableShadowContainer" ><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif);" ><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif);" ></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif);" ></div> </div></div></td></tr><tr><td><table class="InnerTableButtonRow" cellpadding="0" cellspacing="0" ><tr><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=changepassword" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Change Password" alt="Change Password" src="'.$layout_name.'/images/buttons/_sbutton_changepassword.gif" ></div></div></td></tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=changeemail" method="post" ><tr><td style="border:0px;" ><input type="hidden" name=newemail value="" ><input type="hidden" name=newemaildate value=0 ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Change Email" alt="Change Email" src="'.$layout_name.'/images/buttons/_sbutton_changeemail.gif" ></div></div></td></tr></form> </table></td><td width="100%"></td>'; //show button "register account" if(empty($account_reckey)) $main_content .= '<td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=registeraccount" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Register Account" alt="Register Account" src="'.$layout_name.'/images/buttons/_sbutton_registeraccount.gif" ></div></div></td></tr></form></table></td>'; $main_content .= '</tr></table></td></tr></table></div></table></div></td></tr><br/><a name="Public+Information" ></a><div class="TopButtonContainer" ><div class="TopButton" ><a href="#top" ><image style="border:0px;" src="'.$layout_name.'/images/content/back-to-top.gif" /></a></div></div><div class="TableContainer" > <table class="Table5" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" ><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >Public Information</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td><div class="TableShadowContainerRightTop" > <div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif);" ></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif);" ><div class="TableContentContainer" > <table class="TableContent" width="100%" ><tr><td><table style="width:100%;"><tr><td class="LabelV" >Real Name:</td><td style="width:90%;" >'.$account_rlname.'</td></tr><tr><td class="LabelV" >Location:</td><td style="width:90%;" >'.$account_location.'</td></tr></table></td><td align=right><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=changeinfo" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Edit" alt="Edit" src="'.$layout_name.'/images/buttons/_sbutton_edit.gif" ></div></div></td></tr></form></table></td></tr> </table> </div></div><div class="TableShadowContainer" > <div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif);" > <div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif);" ></div> <div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif);" ></div> </div></div></td></tr> </table> </div> </table></div></td></tr><br/><br/>'; $main_content .= '<a name="Characters" ></a><div class="TopButtonContainer" ><div class="TopButton" ><a href="#top" ><image style="border:0px;" src="'.$layout_name.'/images/content/back-to-top.gif" /></a></div></div><div class="TableContainer" > <table class="Table3" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" ><div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >Characters</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td><div class="TableShadowContainerRightTop" ><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif);" ></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif);" ><div class="TableContentContainer" > <table class="TableContent" width="100%" ><tr class="LabelH" ><td style="width:65%" >Name</td><td style="width:15%" >Level</td><td style="width:7%">Status</td><td style="width:5%">&#160;</td></tr>'; $account_players = $account_logged->getPlayersList(); //show list of players on account foreach($account_players as $account_player) { $player_number_counter++; $main_content .= '<tr style="background-color:'; if(is_int($player_number_counter / 2)) $main_content .= $config['site']['darkborder']; else $main_content .= $config['site']['lightborder']; $main_content .= ';" ><td><NOBR>'.$player_number_counter.'.&#160;'.htmlspecialchars($account_player->getName()); if($account_player->isDeleted()) $main_content .= '<font color="red"><b> [ DELETED ] </b> <a href="?subtopic=accountmanagement&action=undelete&name='.urlencode($account_player->getName()).'">>> UNDELETE <<</a></font>'; $main_content .= '</NOBR></td><td><NOBR>'.$account_player->getLevel().' '.htmlspecialchars($vocation_name[$account_player->getVocation()]).'</NOBR></td>'; if(!$account_player->isOnline()) $main_content .= '<td><font color="red"><b>Offline</b></font></td>'; else $main_content .= '<td><font color="green"><b>Online</b></font></td>'; $main_content .= '<td>[<a href="?subtopic=accountmanagement&action=changecomment&name='.urlencode($account_player->getName()).'" >Edit</a>]</td></tr>'; } $main_content .= '</table> </div></div><div class="TableShadowContainer" > <div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif);" > <div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif);" ></div> <div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif);" ></div> </div></div></td></tr><tr><td><table class="InnerTableButtonRow" cellpadding="0" cellspacing="0" ><tr><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=createcharacter" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Create Character" alt="Create Character" src="'.$layout_name.'/images/buttons/_sbutton_createcharacter.gif" ></div></div></td></tr></form></table></td><td style="width:100%;" ></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=deletecharacter" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Delete Character" alt="Delete Character" src="'.$layout_name.'/images/buttons/_sbutton_deletecharacter.gif" ></div></div></td></tr></form></table></td></tr></table></td></tr> </table> </div> </table></div></td></tr><br/><br/>'; } //########### CHANGE PASSWORD ########## if($action == "changepassword") { $new_password = trim($_POST['newpassword']); $new_password2 = trim($_POST['newpassword2']); $old_password = trim($_POST['oldpassword']); if(empty($new_password) && empty($new_password2) && empty($old_password)) { $main_content .= 'Please enter your current password and a new password. For your security, please enter the new password twice.<br/><br/><form action="?subtopic=accountmanagement&action=changepassword" method="post" ><div class="TableContainer" ><table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" ><div class="CaptionInnerContainer" ><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >Change Password</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >New Password:</span></td><td style="width:90%;" ><input type="password" name="newpassword" size="30" maxlength="29" ></td></tr><tr><td class="LabelV" ><span >New Password Again:</span></td><td><input type="password" name="newpassword2" size="30" maxlength="29" ></td></tr><tr><td class="LabelV" ><span >Current Password:</span></td><td><input type="password" name="oldpassword" size="30" maxlength="29" ></td></tr></table> </div> </table></div></td></tr><br/><table style="width:100%;" ><tr align="center"><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } else { if(empty($new_password) || empty($new_password2) || empty($old_password)) { $show_msgs[] = "Please fill in form."; } if($new_password != $new_password2) { $show_msgs[] = "The new passwords do not match!"; } if(empty($show_msgs)) { if(!check_password($new_password)) { $show_msgs[] = "New password contains illegal chars (a-z, A-Z and 0-9 only!) or lenght."; } if(!$account_logged->isValidPassword($old_password)) { $show_msgs[] = "Current password is incorrect!"; } } if(!empty($show_msgs)) { //show errors $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($show_msgs as $show_msg) { $main_content .= '<li>'.$show_msg; } $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; //show form $main_content .= 'Please enter your current password and a new password. For your security, please enter the new password twice.<br/><br/><form action="?subtopic=accountmanagement&action=changepassword" method="post" ><div class="TableContainer" ><table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" ><div class="CaptionInnerContainer" ><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >Change Password</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >New Password:</span></td><td style="width:90%;" ><input type="password" name="newpassword" size="30" maxlength="29" ></td></tr><tr><td class="LabelV" ><span >New Password Again:</span></td><td><input type="password" name="newpassword2" size="30" maxlength="29" ></td></tr><tr><td class="LabelV" ><span >Current Password:</span></td><td><input type="password" name="oldpassword" size="30" maxlength="29" ></td></tr></table> </div> </table></div></td></tr><br/><table style="width:100%;" ><tr align="center"><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } else { $org_pass = $new_password; $account_logged->setPassword($new_password); $account_logged->save(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Password Changed</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>Your password has been changed.'; if($config['site']['send_emails'] && $config['site']['send_mail_when_change_password']) { $mailBody = '<html> <body> <h3>Password to account changed!</h3> <p>You or someone else changed password to your account on server <a href="'.$config['server']['url'].'"><b>'.htmlspecialchars($config['server']['serverName']).'</b></a>.</p> <p>New password: <b>'.htmlspecialchars($org_pass).'</b></p> </body> </html>'; $mail = new PHPMailer(); if ($config['site']['smtp_enabled']) { $mail->IsSMTP(); $mail->Host = $config['site']['smtp_host']; $mail->Port = (int)$config['site']['smtp_port']; $mail->SMTPAuth = $config['site']['smtp_auth']; $mail->Username = $config['site']['smtp_user']; $mail->Password = $config['site']['smtp_pass']; } else $mail->IsMail(); $mail->IsHTML(true); $mail->From = $config['site']['mail_address']; $mail->AddAddress($account_logged->getEMail()); $mail->Subject = $config['server']['serverName']." - Changed password"; $mail->Body = $mailBody; if($mail->Send()) $main_content .= '<br /><small>Your new password were send on email address <b>'.htmlspecialchars($account_logged->getEMail()).'</b>.</small>'; else $main_content .= '<br /><small>An error occorred while sending email with password!</small>'; } $main_content .= '</td></tr> </table> </div> </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; $_SESSION['password'] = $new_password; } } } //############# CHANGE E-MAIL ################### if($action == "changeemail") { $account_email_new_time = $account_logged->getCustomField("email_new_time"); if($account_email_new_time > 10) {$account_email_new = $account_logged->getCustomField("email_new"); } if($account_email_new_time < 10) { if($_POST['changeemailsave'] == 1) { $account_email_new = trim($_POST['new_email']); $post_password = trim($_POST['password']); if(empty($account_email_new)) { $change_email_errors[] = "Please enter your new email address."; } else { if(!check_mail($account_email_new)) { $change_email_errors[] = "E-mail address is not correct."; } } if(empty($post_password)) { $change_email_errors[] = "Please enter password to your account."; } else { if(!$account_logged->isValidPassword($post_password)) { $change_email_errors[] = "Wrong password to account."; } } if(empty($change_email_errors)) { $account_email_new_time = time() + $config['site']['email_days_to_change'] * 24 * 3600; $account_logged->set("email_new", $account_email_new); $account_logged->set("email_new_time", $account_email_new_time); $account_logged->save(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >New Email Address Requested</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>You have requested to change your email address to <b>'.htmlspecialchars($account_email_new).'</b>. The actual change will take place after <b>'.date("j F Y, G:i:s", $account_email_new_time).'</b>, during which you can cancel the request at any time.</td></tr> </table> </div> </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } else { //show errors $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($change_email_errors as $change_email_error) { $main_content .= '<li>'.$change_email_error.'</li>'; } $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; //show form $main_content .= 'Please enter your password and the new email address. Make sure that you enter a valid email address which you have access to. <b>For security reasons, the actual change will be finalised after a waiting period of '.$config['site']['email_days_to_change'].' days.</b><br/><br/><form action="?subtopic=accountmanagement&action=changeemail" method="post" ><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Change Email Address</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ></tr><td class="LabelV" ><span >New Email Address:</span></td> <td style="width:90%;" ><input name="new_email" value="'.htmlspecialchars($_POST['new_email']).'" size="30" maxlength="50" ></td><tr></tr><td class="LabelV" ><span >Password:</span></td> <td><input type="password" name="password" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table style="width:100%;" ><tr align="center"><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><input type="hidden" name=changeemailsave value=1 ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } } else { $main_content .= 'Please enter your password and the new email address. Make sure that you enter a valid email address which you have access to. <b>For security reasons, the actual change will be finalised after a waiting period of '.$config['site']['email_days_to_change'].' days.</b><br/><br/><form action="?subtopic=accountmanagement&action=changeemail" method="post" ><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Change Email Address</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ></tr><td class="LabelV" ><span >New Email Address:</span></td> <td style="width:90%;" ><input name="new_email" value="'.htmlspecialchars($_POST['new_email']).'" size="30" maxlength="50" ></td><tr></tr><td class="LabelV" ><span >Password:</span></td> <td><input type="password" name="password" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table style="width:100%;" ><tr align="center"><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><input type="hidden" name=changeemailsave value=1 ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } } else { if($account_email_new_time < time()) { if($_POST['changeemailsave'] == 1) { $account_logged->set("email_new", ""); $account_logged->set("email_new_time", 0); $account_logged->setEmail($account_email_new); $account_logged->save(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Email Address Change Accepted</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>You have accepted <b>'.htmlspecialchars($account_logged->getEmail()).'</b> as your new email adress.</td></tr> </table> </div> </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } else { $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Email Address Change Accepted</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>Do you accept <b>'.htmlspecialchars($account_email_new).'</b> as your new email adress?</td></tr> </table> </div> </table></div></td></tr><br /><table width="100%"><tr><td width="30">&nbsp;</td><td align=left><form action="?subtopic=accountmanagement&action=changeemail" method="post"><input type="hidden" name="changeemailsave" value=1 ><INPUT TYPE=image NAME="I Agree" SRC="'.$layout_name.'/images/buttons/sbutton_iagree.gif" BORDER=0 WIDTH=120 HEIGHT=17></FORM></td><td align=left><form action="?subtopic=accountmanagement&action=changeemail" method="post"><input type="hidden" name="emailchangecancel" value=1 ><input type=image name="Cancel" src="'.$layout_name.'/images/buttons/sbutton_cancel.gif" BORDER=0 WIDTH=120 HEIGHT=17></form></td><td align=right><form action="?subtopic=accountmanagement" method="post" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></form></td><td width="30">&nbsp;</td></tr></table>'; } } else { $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Change of Email Address</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>A request has been submitted to change the email address of this account to <b>'.htmlspecialchars($account_email_new).'</b>.<br/>The actual change will take place on <b>'.date("j F Y, G:i:s", $account_email_new_time).'</b>.<br>If you do not want to change your email address, please click on "Cancel".</td></tr> </table> </div> </table></div></td></tr><br/><table style="width:100%;" ><tr align="center"><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement&action=changeemail" method="post" ><tr><td style="border:0px;" ><input type="hidden" name="emailchangecancel" value=1 ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Cancel" alt="Cancel" src="'.$layout_name.'/images/buttons/_sbutton_cancel.gif" ></div></div></td></tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } } if($_POST['emailchangecancel'] == 1) { $account_logged->set("email_new", ""); $account_logged->set("email_new_time", 0); $account_logged->save(); $main_content = '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Email Address Change Cancelled</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>Your request to change the email address of your account has been cancelled. The email address will not be changed.</td></tr> </table> </div> </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } } //########### CHANGE PUBLIC INFORMATION (about account owner) ###################### if($action == "changeinfo") { $new_rlname = htmlspecialchars(trim($_POST['info_rlname'])); $new_location = htmlspecialchars(trim($_POST['info_location'])); if($_POST['changeinfosave'] == 1) { //save data from form $account_logged->set("rlname", $new_rlname); $account_logged->set("location", $new_location); $account_logged->save(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Public Information Changed</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>Your public information has been changed.</td></tr> </table> </div> </table></div></td></tr><br><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } else { //show form $account_rlname = $account_logged->getCustomField("rlname"); $account_location = $account_logged->getCustomField("location"); $main_content .= 'Here you can tell other players about yourself. This information will be displayed alongside the data of your characters. If you do not want to fill in a certain field, just leave it blank.<br/><br/><form action="?subtopic=accountmanagement&action=changeinfo" method=post><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Change Public Information</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" >Real Name:</td><td style="width:90%;" ><input name="info_rlname" value="'.$account_rlname.'" size="30" maxlength="50" ></td></tr><tr><td class="LabelV" >Location:</td><td><input name="info_location" value="'.$account_location.'" size="30" maxlength="50" ></td></tr></table> </div> </table></div></td></tr><br/><table width="100%"><tr align="center"><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><input type="hidden" name="changeinfosave" value="1" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } } //############## GENERATE RECOVERY KEY ########### if($action == "registeraccount") { $reg_password = trim($_POST['reg_password']); $old_key = $account_logged->getCustomField("key"); if($_POST['registeraccountsave'] == "1") { if($account_logged->isValidPassword($reg_password)) { if(empty($old_key)) { $dontshowtableagain = 1; $acceptedChars = 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'; $max = strlen($acceptedChars)-1; $new_rec_key = NULL; // 10 = number of chars in generated key for($i=0; $i < 10; $i++) { $cnum[$i] = $acceptedChars{mt_rand(0, $max)}; $new_rec_key .= $cnum[$i]; } $account_logged->set("key", $new_rec_key); $account_logged->save(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Registered</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" >Thank you for registering your account! You can now recover your account if you have lost access to the assigned email address by using the following<br/><br/><font size="5">&nbsp;&nbsp;&nbsp;<b>Recovery Key: '.htmlspecialchars($new_rec_key).'</b></font><br/><br/><br/><b>Important:</b><ul><li>Write down this recovery key carefully.</li><li>Store it at a safe place!</li>'; if($config['site']['send_emails'] && $config['site']['send_mail_when_generate_reckey']) { $mailBody = '<html> <body> <h3>New recovery key!</h3> <p>You or someone else generated recovery key to your account on server <a href="'.$config['server']['url'].'"><b>'.htmlspecialchars($config['server']['serverName']).'</b></a>.</p> <p>Recovery key: <b>'.htmlspecialchars($new_rec_key).'</b></p> </body> </html>'; $mail = new PHPMailer(); if ($config['site']['smtp_enabled']) { $mail->IsSMTP(); $mail->Host = $config['site']['smtp_host']; $mail->Port = (int)$config['site']['smtp_port']; $mail->SMTPAuth = $config['site']['smtp_auth']; $mail->Username = $config['site']['smtp_user']; $mail->Password = $config['site']['smtp_pass']; } else $mail->IsMail(); $mail->IsHTML(true); $mail->From = $config['site']['mail_address']; $mail->AddAddress($account_logged->getEMail()); $mail->Subject = $config['server']['serverName']." - recovery key"; $mail->Body = $mailBody; if($mail->Send()) $main_content .= '<br /><small>Your recovery key were send on email address <b>'.htmlspecialchars($account_logged->getEMail()).'</b>.</small>'; else $main_content .= '<br /><small>An error occorred while sending email with recovery key! You will not receive e-mail with this key.</small>'; } $main_content .= '</ul> </table> </div> </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } else $reg_errors[] = 'Your account is already registred.'; } else $reg_errors[] = 'Wrong password to account.'; } if($dontshowtableagain != 1) { //show errors if not empty if(!empty($reg_errors)) { $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($reg_errors as $reg_error) $main_content .= '<li>'.$reg_error; $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; } //show form $main_content .= 'To generate recovery key for your account please enter your password.<br/><br/><form action="?subtopic=accountmanagement&action=registeraccount" method="post" ><input type="hidden" name="registeraccountsave" value="1"><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Generate recovery key</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >Password:</td><td><input type="password" name="reg_password" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table style="width:100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } } //############## GENERATE NEW RECOVERY KEY ########### if($action == "newreckey") { $reg_password = trim($_POST['reg_password']); $reckey = $account_logged->getCustomField("key"); if((!$config['site']['generate_new_reckey'] || !$config['site']['send_emails']) || empty($reckey)) $main_content .= 'You cant get new rec key'; else { $points = $account_logged->getCustomField('premium_points'); if($_POST['registeraccountsave'] == "1") { if($account_logged->isValidPassword($reg_password)) { if($points >= $config['site']['generate_new_reckey_price']) { $dontshowtableagain = 1; $acceptedChars = 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'; $max = strlen($acceptedChars)-1; $new_rec_key = NULL; // 10 = number of chars in generated key for($i=0; $i < 10; $i++) { $cnum[$i] = $acceptedChars{mt_rand(0, $max)}; $new_rec_key .= $cnum[$i]; } $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Registered</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><ul>'; $mailBody = '<html> <body> <h3>New recovery key!</h3> <p>You or someone else generated recovery key to your account on server <a href="'.$config['server']['url'].'"><b>'.htmlspecialchars($config['server']['serverName']).'</b></a>.</p> <p>Recovery key: <b>'.htmlspecialchars($new_rec_key).'</b></p> </body> </html>'; $mail = new PHPMailer(); if ($config['site']['smtp_enabled']) { $mail->IsSMTP(); $mail->Host = $config['site']['smtp_host']; $mail->Port = (int)$config['site']['smtp_port']; $mail->SMTPAuth = $config['site']['smtp_auth']; $mail->Username = $config['site']['smtp_user']; $mail->Password = $config['site']['smtp_pass']; } else $mail->IsMail(); $mail->IsHTML(true); $mail->From = $config['site']['mail_address']; $mail->AddAddress($account_logged->getEMail()); $mail->Subject = $config['server']['serverName']." - new recovery key"; $mail->Body = $mailBody; if($mail->Send()) { $account_logged->set("key", $new_rec_key); $account_logged->set("premium_points", $account_logged->get("premium_points")-$config['site']['generate_new_reckey_price']); $account_logged->save(); $main_content .= '<br />Your recovery key were send on email address <b>'.htmlspecialchars($account_logged->getEMail()).'</b> for '.$config['site']['generate_new_reckey_price'].' premium points.'; } else $main_content .= '<br />An error occorred while sending email ( <b>'.htmlspecialchars($account_logged->getEMail()).'</b> ) with recovery key! Recovery key not changed. Try again.'; $main_content .= '</ul> </table> </div> </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } else $reg_errors[] = 'You need '.$config['site']['generate_new_reckey_price'].' premium points to generate new recovery key. You have <b>'.$points.'<b> premium points.'; } else $reg_errors[] = 'Wrong password to account.'; } if($dontshowtableagain != 1) { //show errors if not empty if(!empty($reg_errors)) { $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($reg_errors as $reg_error) $main_content .= '<li>'.$reg_error.'</li>'; $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; } //show form $main_content .= 'To generate NEW recovery key for your account please enter your password.<br/><font color="red"><b>New recovery key cost '.$config['site']['generate_new_reckey_price'].' Premium Points.</font> You have '.$points.' premium points. You will receive e-mail with this recovery key.</b><br/><form action="?subtopic=accountmanagement&action=newreckey" method="post" ><input type="hidden" name="registeraccountsave" value="1"><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Generate recovery key</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >Password:</td><td><input type="password" name="reg_password" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table style="width:100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } } } //###### CHANGE CHARACTER COMMENT ###### if($action == "changecomment") { $player_name = $_REQUEST['name']; $new_comment = htmlspecialchars(substr(trim($_POST['comment']),0,2000)); $new_hideacc = (int) $_POST['accountvisible']; if(check_name($player_name)) { $player = new Player(); $player->find($player_name); if($player->isLoaded()) { $player_account = $player->getAccount(); if($account_logged->getId() == $player_account->getId()) { if($_POST['changecommentsave'] == 1) { $player->set("hide_char", $new_hideacc); $player->set("comment", $new_comment); $player->save(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Character Information Changed</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>The character information has been changed.</td></tr> </table> </div> </table></div></td></tr><br><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } else { $main_content .= 'Here you can see and edit the information about your character.<br/>If you do not want to specify a certain field, just leave it blank.<br/><br/><form action="?subtopic=accountmanagement&action=changecomment" method="post" ><div class="TableContainer" > <table class="Table5" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Edit Character Information</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td><div class="TableShadowContainerRightTop" > <div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif);" ></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif);" > <div class="TableContentContainer" > <table class="TableContent" width="100%" ><tr><td class="LabelV" >Name:</td><td style="width:80%;" >'.htmlspecialchars($player_name).'</td></tr><tr><td class="LabelV" >Hide Account:</td><td>'; if($player->getCustomField("hide_char") == 1) { $main_content .= '<input type="checkbox" name="accountvisible" value="1" checked="checked">'; } else { $main_content .= '<input type="checkbox" name="accountvisible" value="1" >'; } $main_content .= ' check to hide your account information</td></tr> </table> </div></div><div class="TableShadowContainer" > <div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif);" > <div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif);" ></div> <div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif);" ></div> </div></div></td></tr><tr><td><div class="TableShadowContainerRightTop" > <div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif);" ></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif);" > <div class="TableContentContainer" > <table class="TableContent" width="100%" ><tr><td class="LabelV" ><span >Comment:</span></td><td style="width:80%;" ><textarea name="comment" rows="10" cols="50" wrap="virtual" >'.$player->getCustomField("comment").'</textarea><br>[max. length: 2000 chars, 50 lines (ENTERs)]</td></tr> </table> </div></div><div class="TableShadowContainer" > <div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif);" ><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif);" ></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif);" ></div></div></div></td></tr></td></tr> </table> </div> </table></div></td></tr><br/><table style="width:100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><input type="hidden" name="name" value="'.htmlspecialchars($player->getName()).'"><input type="hidden" name="changecommentsave" value="1"><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } } else { $main_content .= "Error. Character <b>".htmlspecialchars($player_name)."</b> is not on your account."; } } else { $main_content .= "Error. Character with this name doesn't exist."; } } else { $main_content .= "Error. Name contain illegal characters."; } } //### DELETE character from account ### if($action == "deletecharacter") { $player_name = trim($_POST['delete_name']); $password_verify = trim($_POST['delete_password']); if($_POST['deletecharactersave'] == 1) { if(!empty($player_name) && !empty($password_verify)) { if(check_name($player_name)) { $player = new Player(); $player->find($player_name); if($player->isLoaded()) { $player_account = $player->getAccount(); if($account_logged->getId() == $player_account->getId()) { if($account_logged->isValidPassword($password_verify)) { if(!$player->isOnline()) { //dont show table "delete character" again $dontshowtableagain = 1; //delete player $player->set('deleted', 1); $player->save(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Character Deleted</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>The character <b>'.htmlspecialchars($player_name).'</b> has been deleted.</td></tr> </table> </div> </table></div></td></tr><br><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } else $delete_errors[] = 'This character is online.'; } else { $delete_errors[] = 'Wrong password to account.'; } } else { $delete_errors[] = 'Character <b>'.htmlspecialchars($player_name).'</b> is not on your account.'; } } else { $delete_errors[] = 'Character with this name doesn\'t exist.'; } } else { $delete_errors[] = 'Name contain illegal characters.'; } } else { $delete_errors[] = 'Character name or/and password is empty. Please fill in form.'; } } if($dontshowtableagain != 1) { if(!empty($delete_errors)) { $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($delete_errors as $delete_error) { $main_content .= '<li>'.$delete_error; } $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; } $main_content .= 'To delete a character enter the name of the character and your password.<br/><br/><form action="?subtopic=accountmanagement&action=deletecharacter" method="post" ><input type="hidden" name="deletecharactersave" value="1"><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Delete Character</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >Character Name:</td><td style="width:90%;" ><input name="delete_name" value="" size="30" maxlength="29" ></td></tr><tr><td class="LabelV" ><span >Password:</td><td><input type="password" name="delete_password" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table style="width:100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } } //### UNDELETE character from account ### if($action == "undelete") { $player_name = trim($_GET['name']); if(!empty($player_name)) { if(check_name($player_name)) { $player = new Player(); $player->find($player_name); if($player->isLoaded()) { $player_account = $player->getAccount(); if($account_logged->getId() == $player_account->getId()) { if(!$player->isOnline()) { $player->set('deleted', 0); $player->save(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Character Undeleted</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>The character <b>'.htmlspecialchars($player_name).'</b> has been undeleted.</td></tr> </table> </div> </table></div></td></tr><br><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } else $delete_errors[] = 'This character is online.'; } else $delete_errors[] = 'Character <b>'.htmlspecialchars($player_name).'</b> is not on your account.'; } else $delete_errors[] = 'Character with this name doesn\'t exist.'; } else $delete_errors[] = 'Name contain illegal characters.'; } } //## CREATE CHARACTER on account ### if($action == "createcharacter") { $main_content .= '<script type="text/javascript"> var nameHttp; function checkName() { if(document.getElementById("newcharname").value=="") { document.getElementById("name_check").innerHTML = \'<b><font color="red">Please enter new character name.</font></b>\'; return; } nameHttp=GetXmlHttpObject(); if (nameHttp==null) { return; } var newcharname = document.getElementById("newcharname").value; var url="?subtopic=ajax_check_name&name=" + newcharname + "&uid="+Math.random(); nameHttp.onreadystatechange=NameStateChanged; nameHttp.open("GET",url,true); nameHttp.send(null); } function NameStateChanged() { if (nameHttp.readyState==4) { document.getElementById("name_check").innerHTML=nameHttp.responseText; } } </script>'; $newchar_name = ucwords(strtolower(trim($_POST['newcharname']))); $newchar_sex = $_POST['newcharsex']; $newchar_vocation = $_POST['newcharvocation']; $newchar_town = $_POST['newchartown']; if($_POST['savecharacter'] != 1) { $main_content .= 'Please choose a name'; if(count($config['site']['newchar_vocations']) > 1) $main_content .= ', vocation'; $main_content .= ' and sex for your character. <br/>In any case the name must not violate the naming conventions stated in the <a href="?subtopic=tibiarules" target="_blank" >'.htmlspecialchars($config['server']['serverName']).' Rules</a>, or your character might get deleted or name locked.'; if($account_logged->getPlayersList()->count() >= $config['site']['max_players_per_account']) $main_content .= '<b><font color="red"> You have maximum number of characters per account on your account. Delete one before you make new.</font></b>'; $main_content .= '<br/><br/><form action="?subtopic=accountmanagement&action=createcharacter" method="post" ><input type="hidden" name=savecharacter value="1" ><div class="TableContainer" > <table class="Table3" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" ><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >Create Character</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div> </div><tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td><div class="TableShadowContainerRightTop" > <div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif);" ></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif);" > <div class="TableContentContainer" ><table class="TableContent" width="100%" ><tr class="LabelH" ><td style="width:50%;" ><span >Name</td><td><span >Sex</td></tr><tr class="Odd" ><td><input id="newcharname" name="newcharname" onkeyup="checkName();" value="'.htmlspecialchars($newchar_name).'" size="30" maxlength="29" ><BR><font size="1" face="verdana,arial,helvetica"><div id="name_check">Please enter your character name.</div></font></td><td>'; $main_content .= '<input type="radio" name="newcharsex" value="1" '; if($newchar_sex == 1) $main_content .= 'checked="checked" '; $main_content .= '>male<br/>'; $main_content .= '<input type="radio" name="newcharsex" value="0" '; if($newchar_sex == "0") $main_content .= 'checked="checked" '; $main_content .= '>female<br/></td></tr></table></div></div></table></div>'; if(count($config['site']['newchar_towns']) > 1 || count($config['site']['newchar_vocations']) > 1) $main_content .= '<div class="InnerTableContainer" > <table style="width:100%;" ><tr>'; if(count($config['site']['newchar_vocations']) > 1) { $main_content .= '<td><table class="TableContent" width="100%" ><tr class="Odd" valign="top"><td width="160"><br /><b>Select your vocation:</b></td><td><table class="TableContent" width="100%" >'; foreach($config['site']['newchar_vocations'] as $char_vocation_key => $sample_char) { $main_content .= '<tr><td><input type="radio" name="newcharvocation" value="'.$char_vocation_key.'" '; if($newchar_vocation == $char_vocation_key) $main_content .= 'checked="checked" '; $main_content .= '>'.htmlspecialchars($vocation_name[$char_vocation_key]).'</td></tr>'; } $main_content .= '</table></table></td>'; } if(count($config['site']['newchar_towns']) > 1) { $main_content .= '<td><table class="TableContent" width="100%" ><tr class="Odd" valign="top"><td width="160"><br /><b>Select your city:</b></td><td><table class="TableContent" width="100%" >'; foreach($config['site']['newchar_towns'] as $town_id) { $main_content .= '<tr><td><input type="radio" name="newchartown" value="'.$town_id.'" '; if($newchar_town == $town_id) $main_content .= 'checked="checked" '; $main_content .= '>'.htmlspecialchars($towns_list[$town_id]).'</td></tr>'; } $main_content .= '</table></table></td>'; } if(count($config['site']['newchar_towns']) > 1 || count($config['site']['newchar_vocations']) > 1) $main_content .= '</tr></table></div>'; $main_content .= '</table></div></td></tr><br/><table style="width:100%;" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } else { if(empty($newchar_name)) $newchar_errors[] = 'Please enter a name for your character!'; if(empty($newchar_sex) && $newchar_sex != "0") $newchar_errors[] = 'Please select the sex for your character!'; if(count($config['site']['newchar_vocations']) > 1) { if(empty($newchar_vocation)) $newchar_errors[] = 'Please select a vocation for your character.'; } else $newchar_vocation = $config['site']['newchar_vocations'][0]; if(count($config['site']['newchar_towns']) > 1) { if(empty($newchar_town)) $newchar_errors[] = 'Please select a town for your character.'; } else $newchar_town = $config['site']['newchar_towns'][0]; if(empty($newchar_errors)) { if(!check_name_new_char($newchar_name)) $newchar_errors[] = 'This name contains invalid letters, words or format. Please use only a-Z, - , \' and space.'; if($newchar_sex != 1 && $newchar_sex != "0") $newchar_errors[] = 'Sex must be equal <b>0 (female)</b> or <b>1 (male)</b>.'; if(count($config['site']['newchar_vocations']) > 1) { $newchar_vocation_check = FALSE; foreach($config['site']['newchar_vocations'] as $char_vocation_key => $sample_char) if($newchar_vocation == $char_vocation_key) $newchar_vocation_check = TRUE; if(!$newchar_vocation_check) $newchar_errors[] = 'Unknown vocation. Please fill in form again.'; } else $newchar_vocation = 0; } if(empty($newchar_errors)) { $check_name_in_database = new Player(); $check_name_in_database->find($newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $number_of_players_on_account = $account_logged->getPlayersList()->count(); if($number_of_players_on_account >= $config['site']['max_players_per_account']) $newchar_errors[] .= 'You have too many characters on your account <b>('.$number_of_players_on_account.'/'.$config['site']['max_players_per_account'].')</b>!'; } if(empty($newchar_errors)) { $char_to_copy_name = $config['site']['newchar_vocations'][$newchar_vocation]; $char_to_copy = new Player(); $char_to_copy->find($char_to_copy_name); if(!$char_to_copy->isLoaded()) $newchar_errors[] .= 'Wrong characters configuration. Try again or contact with admin. ADMIN: Edit file config/config.php and set valid characters to copy names. Character to copy <b>'.htmlspecialchars($char_to_copy_name).'</b> doesn\'t exist.'; } if(empty($newchar_errors)) { // load items and skills of player before we change ID $char_to_copy->getItems()->load(); if($newchar_sex == "0") $char_to_copy->setLookType(136); $char_to_copy->setID(null); // save as new character $char_to_copy->setLastIP(0); $char_to_copy->setLastLogin(0); $char_to_copy->setLastLogout(0); $char_to_copy->setName($newchar_name); $char_to_copy->setAccount($account_logged); $char_to_copy->setSex($newchar_sex); $char_to_copy->setTown($newchar_town); $char_to_copy->setPosX(0); $char_to_copy->setPosY(0); $char_to_copy->setPosZ(0); $char_to_copy->setCreateIP(Visitor::getIP()); $char_to_copy->setCreateDate(time()); $char_to_copy->setSave(); // make character saveable $char_to_copy->save(); // now it will load 'id' of new player if($char_to_copy->isLoaded()) { $char_to_copy->saveItems(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Character Created</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>The character <b>'.htmlspecialchars($newchar_name).'</b> has been created.<br/>Please select the outfit when you log in for the first time.<br/><br/><b>See you on '.$config['server']['serverName'].'!</b></td></tr> </table> </div> </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } else { echo "Error. Can\'t create character. Probably problem with database. Try again or contact with admin."; exit; } } else { $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($newchar_errors as $newchar_error) $main_content .= '<li>'.$newchar_error; $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; $main_content .= 'Please choose a name'; if(count($config['site']['newchar_vocations']) > 1) $main_content .= ', vocation'; $main_content .= ' and sex for your character. <br/>In any case the name must not violate the naming conventions stated in the <a href="?subtopic=tibiarules" target="_blank" >'.$config['server']['serverName'].' Rules</a>, or your character might get deleted or name locked.<br/><br/><form action="?subtopic=accountmanagement&action=createcharacter" method="post" ><input type="hidden" name=savecharacter value="1" ><div class="TableContainer" > <table class="Table3" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" ><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >Create Character</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div> </div><tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td><div class="TableShadowContainerRightTop" > <div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif);" ></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif);" > <div class="TableContentContainer" ><table class="TableContent" width="100%" ><tr class="LabelH" ><td style="width:50%;" ><span >Name</td><td><span >Sex</td></tr><tr class="Odd" ><td><input id="newcharname" name="newcharname" onkeyup="checkName();" value="'.$newchar_name.'" size="30" maxlength="29" ><BR><font size="1" face="verdana,arial,helvetica"><div id="name_check">Please enter your character name.</div></font></td><td>'; $main_content .= '<input type="radio" name="newcharsex" value="1" '; if($newchar_sex == 1) $main_content .= 'checked="checked" '; $main_content .= '>male<br/>'; $main_content .= '<input type="radio" name="newcharsex" value="0" '; if($newchar_sex == "0") $main_content .= 'checked="checked" '; $main_content .= '>female<br/></td></tr></table></div></div></table></div>'; if(count($config['site']['newchar_towns']) > 1 || count($config['site']['newchar_vocations']) > 1) $main_content .= '<div class="InnerTableContainer" > <table style="width:100%;" ><tr>'; if(count($config['site']['newchar_vocations']) > 1) { $main_content .= '<td><table class="TableContent" width="100%" ><tr class="Odd" valign="top"><td width="160"><br /><b>Select your vocation:</b></td><td><table class="TableContent" width="100%" >'; foreach($config['site']['newchar_vocations'] as $char_vocation_key => $sample_char) { $main_content .= '<tr><td><input type="radio" name="newcharvocation" value="'.htmlspecialchars($char_vocation_key).'" '; if($newchar_vocation == $char_vocation_key) $main_content .= 'checked="checked" '; $main_content .= '>'.htmlspecialchars($vocation_name[0][$char_vocation_key]).'</td></tr>'; } $main_content .= '</table></table></td>'; } if(count($config['site']['newchar_towns']) > 1) { $main_content .= '<td><table class="TableContent" width="100%" ><tr class="Odd" valign="top"><td width="160"><br /><b>Select your city:</b></td><td><table class="TableContent" width="100%" >'; foreach($config['site']['newchar_towns'] as $town_id) { $main_content .= '<tr><td><input type="radio" name="newchartown" value="'.htmlspecialchars($town_id).'" '; if($newchar_town == $town_id) $main_content .= 'checked="checked" '; $main_content .= '>'.htmlspecialchars($towns_list[$town_id]).'</td></tr>'; } $main_content .= '</table></table></td>'; } if(count($config['site']['newchar_towns']) > 1 || count($config['site']['newchar_vocations']) > 1) $main_content .= '</tr></table></div>'; $main_content .= '</table></div></td></tr><br/><table style="width:100%;" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } } } }
  2. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local items = { item1 = {2159, 2145}, -- item1 item que será pedido e que será dado na primeira troca item2 = {2159, 2146} -- item2 item que será pedido e que será dado na segunda troca item3 = {2159, 2146} -- É SÓ ADICIONAR UMA LINHA AQUI item4 = {2159, 2146} -- SE QUISER MAIS ITENS COLOQUE EM BAIXO DISSO POR EX: item5 = {2159, 2146} } } } local counts = { count1 = {10, 1}, count2 = {10, 1} count3 = {10, 1} -- a mesma coisa aqui count4 = {10, 1} -- se arrumou item5, adiciona aqui count5 } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'removedor de frags') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('Você trocou '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..'x '.. getItemNameById(items.item1[2]) ..'.', cid) else selfSay('Você precisa de '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid) end elseif msgcontains(msg, 'power exp ring') then if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then doPlayerRemoveItem(cid, items.item2[1], counts.count2[1]) doPlayerAddItem(cid, items.item2[2], counts.count2[2]) selfSay('Você trocou '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' por '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid) else selfSay('Você precisa de '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid) end elseif msgcontains(msg, 'Nome do item aqui') then if getPlayerItemCount(cid, items.item3[1]) >= counts.count3[1] then doPlayerRemoveItem(cid, items.item3[1], counts.count3[1]) doPlayerAddItem(cid, items.item3[2], counts.count3[2]) selfSay('Você trocou '.. counts.count3[1] ..' '.. getItemNameById(items.item3[1]) ..' por '.. counts.count3[2] ..' '.. getItemNameById(items.item3[2]) ..'.', cid) else selfSay('Você precisa de '.. counts.count3[1] ..' '.. getItemNameById(items.item3[1]) ..'.', cid) end elseif msgcontains(msg, 'Nome do item aqui') then if getPlayerItemCount(cid, items.item4[1]) >= counts.count4[1] then doPlayerRemoveItem(cid, items.item4[1], counts.count4[1]) doPlayerAddItem(cid, items.item4[2], counts.count4[2]) selfSay('Você trocou '.. counts.count4[1] ..' '.. getItemNameById(items.item4[1]) ..' por '.. counts.count4[2] ..' '.. getItemNameById(items.item4[2]) ..'.', cid) else selfSay('Você precisa de '.. counts.count4[1] ..' '.. getItemNameById(items.item4[1]) ..'.', cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  3. eu fiz isso mas dava erro na hora compilar, existe algum outro jeito?
  4. function onSay(player, words, param) if not player:getGroup():getAccess() then return true end if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local itemCount = cleanMap() if itemCount > 0 then player:sendTextMessage(MESSAGE_STATUS_WARNING, "Cleaned " .. itemCount .. " item" .. (itemCount > 1 and "s" or "") .. " from the map.") end return false end O titulo do topico ja diz tudo, vocês podem conferir meu script de /clean
  5. tem como arrumar ele pra dar presentes a cada 20h?
  6. Boush postou uma resposta no tópico em Suporte Tibia OTServer
    Olá estou tentando configurar um npc que troque addon por itens, eu consegui inserir a Entrepreuner Addon e está funcionando tudo certo, depois eu inseri a Beastmaster Addon, só oque acontece é que quando vou falar pro npc "first beastmaster addon" ou "second beastmaster addon" ele está me entregando a Entrepreuner Addon. segue o script: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -- Storage IDs -- citizen = 22001 hunter = 22004 mage = 22056 knight = 22007 nobleman = 22009 summoner = 22011 warrior = 22013 barbarian = 22015 druid = 22017 wizard = 22019 oriental = 22021 pirate = 22023 assassin = 22025 beggar = 22027 shaman = 22029 norseman = 22031 nightmare = 22033 jester = 22035 brotherhood = 22037 wayfarer = 22039 pumpkin = 22040 yalaharian = 22041 glooth = 22042 rift = 22043 elementalist = 22044 entrepreneur = 26568 beastmaster = 28010 newaddon = 'Here you are, enjoy your brand new addon!' noitems = 'You do not have all the required items.' noitems2 = 'You do not have all the required items or you do not have the first addon, which by the way, is a requirement for this addon.' already = 'It seems you already have this addon, don\'t you try to mock me son!' -- beastmaster START -- function beastmasterFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,beastmaster) if addon == -1 then if getPlayerItemCount(cid,25378) >= 500 then if doPlayerRemoveItem(cid,25378,500) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 636, 1) doPlayerAddOutfit(cid, 637, 1) setPlayerStorageValue(cid,beastmaster,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function beastmasterSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,beastmaster+1) if addon == -1 then if getPlayerItemCount(cid,25378) >= 1000 then if doPlayerRemoveItem(cid,25378,1000) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 636, 2) doPlayerAddOutfit(cid, 637, 2) setPlayerStorageValue(cid,beastmaster+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- beastmaster END -- -- entrepreneur START -- function entrepreneurFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,entrepreneur) if addon == -1 then if getPlayerItemCount(cid,25378) >= 500 then if doPlayerRemoveItem(cid,25378,500) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 471, 1) doPlayerAddOutfit(cid, 472, 1) setPlayerStorageValue(cid,entrepreneur,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function entrepreneurSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,entrepreneur+1) if addon == -1 then if getPlayerItemCount(cid,25378) >= 1000 then if doPlayerRemoveItem(cid,25378,1000) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 471, 2) doPlayerAddOutfit(cid, 472, 2) setPlayerStorageValue(cid,entrepreneur+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- entrepreneur END -- -- ELEMENTALIST START -- function elementalistFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,elementalist) if addon == -1 then if getPlayerItemCount(cid,13940) >= 1 then if doPlayerRemoveItem(cid,13940,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 432, 2) doPlayerAddOutfit(cid, 433, 2) setPlayerStorageValue(cid,elementalist,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function elementalistSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,elementalist+1) if addon == -1 then if getPlayerItemCount(cid,13756) >= 1 then if doPlayerRemoveItem(cid,13756,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 432, 1) doPlayerAddOutfit(cid, 433, 1) setPlayerStorageValue(cid,elementalist+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- ELEMENTALIST END -- -- rift START -- function riftFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,rift) if addon == -1 then if getPlayerItemCount(cid,21400) >= 10 then if doPlayerRemoveItem(cid,21400,10) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 845, 1) doPlayerAddOutfit(cid, 846, 1) setPlayerStorageValue(cid,rift,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function riftSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,rift+1) if addon == -1 then if getPlayerItemCount(cid,25378) >= 200 then if doPlayerRemoveItem(cid,25378,200) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 845, 2) doPlayerAddOutfit(cid, 846, 2) setPlayerStorageValue(cid,rift+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- rift END -- -- GLOOTH START -- function GloothFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,glooth) if addon == -1 then if getPlayerItemCount(cid,21400) >= 10 then if doPlayerRemoveItem(cid,21400,10) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 610, 1) doPlayerAddOutfit(cid, 618, 1) setPlayerStorageValue(cid,glooth,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function GloothSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,glooth+1) if addon == -1 then if getPlayerItemCount(cid,25378) >= 200 then if doPlayerRemoveItem(cid,25378,200) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 610, 2) doPlayerAddOutfit(cid, 618, 2) setPlayerStorageValue(cid,glooth+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- GLOOTH END -- -- YALAHAR START -- function YalaharianFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,yalaharian) if addon == -1 then if getPlayerItemCount(cid,21400) >= 5 then if doPlayerRemoveItem(cid,21400,10) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 324, 1) doPlayerAddOutfit(cid, 325, 1) setPlayerStorageValue(cid,yalaharian,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function YalaharianSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,yalaharian+1) if addon == -1 then if getPlayerItemCount(cid,25378) >= 100 then if doPlayerRemoveItem(cid,25378,100) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 324, 2) doPlayerAddOutfit(cid, 325, 2) setPlayerStorageValue(cid,yalaharian+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- YALAHAR END -- -- HALLOWEN START -- function PumpkinFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,pumpkin) if addon == -1 then if getPlayerItemCount(cid,21400) >= 15 then if doPlayerRemoveItem(cid,21400,20) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 759, 1) doPlayerAddOutfit(cid, 760, 1) setPlayerStorageValue(cid,pumpkin,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function PumpkinSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,pumpkin+1) if addon == -1 then if getPlayerItemCount(cid,25378) >= 250 then if doPlayerRemoveItem(cid,25378,250) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 759, 2) doPlayerAddOutfit(cid, 760, 2) setPlayerStorageValue(cid,pumpkin+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- HALLOWEN END -- -- CITIZEN START -- function CitizenFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,citizen) if addon == -1 then if getPlayerItemCount(cid,5878) >= 100 then if doPlayerRemoveItem(cid,5878,100) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 128, 1) doPlayerAddOutfit(cid, 136, 1) setPlayerStorageValue(cid,citizen,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function CitizenSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,citizen+1) if addon == -1 then if getPlayerItemCount(cid,5890) >= 100 and getPlayerItemCount(cid,5902) >= 50 and getPlayerItemCount(cid,2480) >= 1 then if doPlayerRemoveItem(cid,5890,100) and doPlayerRemoveItem(cid,5902,50) and doPlayerRemoveItem(cid,2480,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 128, 2) doPlayerAddOutfit(cid, 136, 2) setPlayerStorageValue(cid,citizen+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- CITIZEN END -- -- HUNTER START -- function HunterFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,hunter) if addon == -1 then if getPlayerItemCount(cid,5947) >= 1 and getPlayerItemCount(cid,5876) >= 100 and getPlayerItemCount(cid,5948) >= 100 and getPlayerItemCount(cid,5891) >= 5 and getPlayerItemCount(cid,5887) >= 1 and getPlayerItemCount(cid,5888) >= 1 and getPlayerItemCount(cid,5889) >= 1 then if doPlayerRemoveItem(cid,5947,1) and doPlayerRemoveItem(cid,5876,100) and doPlayerRemoveItem(cid,5948,100) and doPlayerRemoveItem(cid,5891,5) and doPlayerRemoveItem(cid,5887,1) and doPlayerRemoveItem(cid,5888,1) and doPlayerRemoveItem(cid,5889,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 129, 1) doPlayerAddOutfit(cid, 137, 1) setPlayerStorageValue(cid,hunter,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function HunterSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,hunter+1) if addon == -1 then if getPlayerItemCount(cid,5875) >= 1 then if doPlayerRemoveItem(cid,5875,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 129, 2) doPlayerAddOutfit(cid, 137, 2) setPlayerStorageValue(cid,hunter+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- HUNTER END -- -- MAGE START -- function MageFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,mage) if addon < 2 then if getPlayerSex(cid) == 0 then -- PLAYERSEX == 0 é female if getPlayerItemCount(cid,5958) >= 1 then if doPlayerRemoveItem(cid,5958,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 138, 1) --doPlayerAddOutfit(cid, 130, 1) setPlayerStorageValue(cid,mage,1) end else selfSay(noitems, cid) end elseif getPlayerSex(cid) == 1 then -- PLAYERSEX == 1 é male if getPlayerItemCount(cid,2181) >= 1 and getPlayerItemCount(cid,2182) >= 1 and getPlayerItemCount(cid,2183) >= 1 and getPlayerItemCount(cid,2185) >= 1 and getPlayerItemCount(cid,2186) >= 1 and getPlayerItemCount(cid,2187) >= 1 and getPlayerItemCount(cid,2188) >= 1 and getPlayerItemCount(cid,2189) >= 1 and getPlayerItemCount(cid,2190) >= 1 and getPlayerItemCount(cid,2191) >= 1 and getPlayerItemCount(cid,5904) >= 10 and getPlayerItemCount(cid,2193) >= 20 and getPlayerItemCount(cid,5809) >= 1 then if doPlayerRemoveItem(cid,2181,1) and doPlayerRemoveItem(cid,2182,1) and doPlayerRemoveItem(cid,2183,1) and doPlayerRemoveItem(cid,2185,1) and doPlayerRemoveItem(cid,2186,1) and doPlayerRemoveItem(cid,2187,1) and doPlayerRemoveItem(cid,2188,1) and doPlayerRemoveItem(cid,2189,1) and doPlayerRemoveItem(cid,2190,1) and doPlayerRemoveItem(cid,2191,1) and doPlayerRemoveItem(cid,5904,10) and doPlayerRemoveItem(cid,2193,20) and doPlayerRemoveItem(cid,5809,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 130, 1) doPlayerAddOutfit(cid, 138, 1) setPlayerStorageValue(cid,mage,1) end else selfSay(noitems, cid) end end else selfSay(already, cid) end end end function MageSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,mage+1) if addon < 2 then if getPlayerSex(cid) == 0 then -- PLAYERSEX == 0 é female if getPlayerItemCount(cid,5894) >= 70 and getPlayerItemCount(cid,5911) >= 20 and getPlayerItemCount(cid,5883) >= 40 and getPlayerItemCount(cid,5922) >= 35 and getPlayerItemCount(cid,5886) >= 10 and getPlayerItemCount(cid,5881) >= 60 and getPlayerItemCount(cid,5882) >= 40 and getPlayerItemCount(cid,5904) >= 15 and getPlayerItemCount(cid,5905) >= 30 then if doPlayerRemoveItem(cid,5894,70) and doPlayerRemoveItem(cid,5911,20) and doPlayerRemoveItem(cid,5883,40) and doPlayerRemoveItem(cid,5922,35) and doPlayerRemoveItem(cid,5886,10) and doPlayerRemoveItem(cid,5881,60) and doPlayerRemoveItem(cid,5882,40) and doPlayerRemoveItem(cid,5904,15) and doPlayerRemoveItem(cid,5905,30) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 138, 2) --doPlayerAddOutfit(cid, 130, 2) setPlayerStorageValue(cid,mage+1,1) end else selfSay(noitems, cid) end elseif getPlayerSex(cid) == 1 then -- PLAYERSEX == 1 é male if getPlayerItemCount(cid,5903) >= 1 then if doPlayerRemoveItem(cid,5903,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 130, 2) doPlayerAddOutfit(cid, 138, 2) setPlayerStorageValue(cid,mage+1,1) end else selfSay(noitems, cid) end end else selfSay(already, cid) end end end -- MAGE END -- -- KNIGHT START -- function KnightFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,knight) if addon == -1 then if getPlayerItemCount(cid,5892) >= 1 and getPlayerItemCount(cid,5880) >= 100 then if doPlayerRemoveItem(cid,5892,1) and doPlayerRemoveItem(cid,5880,100) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 131, 1) doPlayerAddOutfit(cid, 139, 1) setPlayerStorageValue(cid,knight,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function KnightSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,knight+1) if addon == -1 then if getPlayerItemCount(cid,5893) >= 100 and getPlayerItemCount(cid,5924) >= 1 and getPlayerItemCount(cid,5885) >= 1 and getPlayerItemCount(cid,5887) >= 1 then if doPlayerRemoveItem(cid,5893,100) and doPlayerRemoveItem(cid,5924,1) and doPlayerRemoveItem(cid,5885,1) and doPlayerRemoveItem(cid,5887,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 131, 2) doPlayerAddOutfit(cid, 139, 2) setPlayerStorageValue(cid,knight+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- KNIGHT END -- -- NOBLEMAN START -- function NoblemanFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end local player_gold = getPlayerItemCount(cid,2148) local player_plat = getPlayerItemCount(cid,2152)*100 local player_crys = getPlayerItemCount(cid,2160)*10000 local player_money = player_gold + player_plat + player_crys if isPremium(cid) then addon = getPlayerStorageValue(cid,nobleman) if addon == -1 then if player_money >= 150000 then if doPlayerRemoveMoney(cid,150000) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 132, 1) doPlayerAddOutfit(cid, 140, 1) setPlayerStorageValue(cid,nobleman,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function NoblemanSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end local player_gold = getPlayerItemCount(cid,2148) local player_plat = getPlayerItemCount(cid,2152)*100 local player_crys = getPlayerItemCount(cid,2160)*10000 local player_money = player_gold + player_plat + player_crys if isPremium(cid) then addon = getPlayerStorageValue(cid,nobleman+1) if addon == -1 then if player_money >= 150000 then if doPlayerRemoveMoney(cid,150000) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 132, 2) doPlayerAddOutfit(cid, 140, 2) setPlayerStorageValue(cid,nobleman+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- NOBLEMAN END -- -- SUMMONER START -- function SummonerFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,summoner) if addon == -1 then if getPlayerSex(cid) == 1 then if getPlayerItemCount(cid,5958) >= 1 then if doPlayerRemoveItem(cid,5958,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 133, 1) doPlayerAddOutfit(cid, 141, 1) setPlayerStorageValue(cid,summoner,1) end else selfSay(noitems, cid) end elseif getPlayerSex(cid) == 0 then if getPlayerItemCount(cid,2181) >= 1 and getPlayerItemCount(cid,2182) >= 1 and getPlayerItemCount(cid,2183) >= 1 and getPlayerItemCount(cid,2185) >= 1 and getPlayerItemCount(cid,2186) >= 1 and getPlayerItemCount(cid,2187) >= 1 and getPlayerItemCount(cid,2188) >= 1 and getPlayerItemCount(cid,2189) >= 1 and getPlayerItemCount(cid,2190) >= 1 and getPlayerItemCount(cid,2191) >= 1 and getPlayerItemCount(cid,5904) >= 10 and getPlayerItemCount(cid,2193) >= 20 and getPlayerItemCount(cid,5809) >= 1 then if doPlayerRemoveItem(cid,2181,1) and doPlayerRemoveItem(cid,2182,1) and doPlayerRemoveItem(cid,2183,1) and doPlayerRemoveItem(cid,2185,1) and doPlayerRemoveItem(cid,2186,1) and doPlayerRemoveItem(cid,2187,1) and doPlayerRemoveItem(cid,2188,1) and doPlayerRemoveItem(cid,2189,1) and doPlayerRemoveItem(cid,2190,1) and doPlayerRemoveItem(cid,2191,1) and doPlayerRemoveItem(cid,5904,10) and doPlayerRemoveItem(cid,2193,20) and doPlayerRemoveItem(cid,5809,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 133, 1) doPlayerAddOutfit(cid, 141, 1) setPlayerStorageValue(cid,summoner,1) end else selfSay(noitems, cid) end end else selfSay(already, cid) end end end function SummonerSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,summoner+2) if addon == -1 then if getPlayerSex(cid) == 1 then -- PLAYERSEX == 1 é male if getPlayerItemCount(cid,5894) >= 70 and getPlayerItemCount(cid,5911) >= 20 and getPlayerItemCount(cid,5883) >= 40 and getPlayerItemCount(cid,5922) >= 35 and getPlayerItemCount(cid,5886) >= 10 and getPlayerItemCount(cid,5881) >= 60 and getPlayerItemCount(cid,5882) >= 40 and getPlayerItemCount(cid,5904) >= 15 and getPlayerItemCount(cid,5905) >= 30 then if doPlayerRemoveItem(cid,5894,70) and doPlayerRemoveItem(cid,5911,20) and doPlayerRemoveItem(cid,5883,40) and doPlayerRemoveItem(cid,5922,35) and doPlayerRemoveItem(cid,5886,10) and doPlayerRemoveItem(cid,5881,60) and doPlayerRemoveItem(cid,5882,40) and doPlayerRemoveItem(cid,5904,15) and doPlayerRemoveItem(cid,5905,30) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 133, 2) --doPlayerAddOutfit(cid, 141, 2) setPlayerStorageValue(cid,summoner+1,1) end else selfSay(noitems, cid) end elseif getPlayerSex(cid) == 0 then -- PLAYERSEX == 0 é female if getPlayerItemCount(cid,5903) >= 1 then if doPlayerRemoveItem(cid,5903,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 133, 2) doPlayerAddOutfit(cid, 141, 2) setPlayerStorageValue(cid,summoner+1,1) end else selfSay(noitems, cid) end end else selfSay(already, cid) end end end -- SUMMONER END -- -- WARRIOR START -- function WarriorFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,warrior) if addon == -1 then if getPlayerItemCount(cid,5925) >= 100 and getPlayerItemCount(cid,5899) >= 100 and getPlayerItemCount(cid,5884) >= 1 and getPlayerItemCount(cid,5919) >= 1 then if doPlayerRemoveItem(cid,5925,100) and doPlayerRemoveItem(cid,5899,100) and doPlayerRemoveItem(cid,5884,1) and doPlayerRemoveItem(cid,5919,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 134, 1) doPlayerAddOutfit(cid, 142, 1) setPlayerStorageValue(cid,warrior,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function WarriorSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,warrior+1) if addon == -1 then if getPlayerItemCount(cid,5887) >= 1 and getPlayerItemCount(cid,5880) >= 100 then if doPlayerRemoveItem(cid,5887,1) and doPlayerRemoveItem(cid,5880,100) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 134, 2) doPlayerAddOutfit(cid, 142, 2) setPlayerStorageValue(cid,warrior+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- WARRIOR END -- -- BARBARIAN START -- function BarbarianFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,barbarian) if addon == -1 then if getPlayerItemCount(cid,5884) >= 1 and getPlayerItemCount(cid,5885) >= 1 and getPlayerItemCount(cid,5911) >= 50 and getPlayerItemCount(cid,5910) >= 50 and getPlayerItemCount(cid,5886) >= 10 then if doPlayerRemoveItem(cid,5884,1) and doPlayerRemoveItem(cid,5885,1) and doPlayerRemoveItem(cid,5911,50) and doPlayerRemoveItem(cid,5910,50) and doPlayerRemoveItem(cid,5886,10) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 143, 1) doPlayerAddOutfit(cid, 147, 1) setPlayerStorageValue(cid,barbarian,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function BarbarianSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,barbarian+1) if addon == -1 then if getPlayerItemCount(cid,5880) >= 100 and getPlayerItemCount(cid,5892) >= 1 and getPlayerItemCount(cid,5893) >= 50 and getPlayerItemCount(cid,5876) >= 50 and getPlayerStorageValue(cid,barbarian) then if doPlayerRemoveItem(cid,5880,100) and doPlayerRemoveItem(cid,5892,1) and doPlayerRemoveItem(cid,5893,50) and doPlayerRemoveItem(cid,5876,50) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 143, 2) doPlayerAddOutfit(cid, 147, 2) setPlayerStorageValue(cid,barbarian+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- BARBARIAN END -- -- DRUID START -- function DruidFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,druid) if addon == -1 then if getPlayerItemCount(cid,5897) >= 50 and getPlayerItemCount(cid,5896) >= 50 then if doPlayerRemoveItem(cid,5897,50) and doPlayerRemoveItem(cid,5896,50) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 144, 1) doPlayerAddOutfit(cid, 148, 1) setPlayerStorageValue(cid,druid,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function DruidSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,druid+1) if addon == -1 then if getPlayerItemCount(cid,5937) >= 1 and getPlayerItemCount(cid,5939) >= 1 and getPlayerItemCount(cid,5906) >= 100 and getPlayerItemCount(cid,5942) >= 1 and getPlayerItemCount(cid,5940) >= 1 then if doPlayerRemoveItem(cid,5937,1) and doPlayerRemoveItem(cid,5939,1) and doPlayerRemoveItem(cid,5906,100) and doPlayerRemoveItem(cid,5942,1) and doPlayerRemoveItem(cid,5940,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 144, 2) doPlayerAddOutfit(cid, 148, 2) setPlayerStorageValue(cid,druid+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- DRUID END -- -- WIZARD START -- function WizardFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,wizard) if addon == -1 then if getPlayerItemCount(cid,2488) >= 1 and getPlayerItemCount(cid,2123) >= 1 and getPlayerItemCount(cid,2492) >= 1 and getPlayerItemCount(cid,2536) >= 1 then if doPlayerRemoveItem(cid,2488,1) and doPlayerRemoveItem(cid,2123,1) and doPlayerRemoveItem(cid,2492,1) and doPlayerRemoveItem(cid,2536,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 145, 1) doPlayerAddOutfit(cid, 149, 1) setPlayerStorageValue(cid,wizard,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function WizardSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,wizard+1) if addon == -1 then if getPlayerItemCount(cid,5922) >= 50 and getPlayerStorageValue(cid,wizard) then if doPlayerRemoveItem(cid,5922,50) and getPlayerStorageValue(cid,wizard) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 145, 2) doPlayerAddOutfit(cid, 149, 2) setPlayerStorageValue(cid,wizard+1,1) end else selfSay(noitems2, cid) end else selfSay(already, cid) end end end -- WIZARD END -- -- ORIENTAL START -- function OrientalFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,oriental) if addon == -1 then if getPlayerItemCount(cid,5945) >= 1 then if doPlayerRemoveItem(cid,5945,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 146, 1) doPlayerAddOutfit(cid, 150, 1) setPlayerStorageValue(cid,oriental,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function OrientalSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,oriental+1) if addon == -1 then if getPlayerItemCount(cid,5883) >= 100 and getPlayerItemCount(cid,5895) >= 100 and getPlayerItemCount(cid,5891) >= 2 and getPlayerItemCount(cid,5912) >= 100 then if doPlayerRemoveItem(cid,5883,100) and doPlayerRemoveItem(cid,5895,100) and doPlayerRemoveItem(cid,5891,2) and doPlayerRemoveItem(cid,5912,100) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 146, 2) doPlayerAddOutfit(cid, 150, 2) setPlayerStorageValue(cid,oriental+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- ORIENTAL END -- -- PIRATE START -- function PirateFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,pirate) if addon == -1 then if getPlayerItemCount(cid,6126) >= 100 and getPlayerItemCount(cid,6097) >= 100 and getPlayerItemCount(cid,6098) >= 100 then if doPlayerRemoveItem(cid,6126,100) and doPlayerRemoveItem(cid,6097,100) and doPlayerRemoveItem(cid,6098,100) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 151, 1) doPlayerAddOutfit(cid, 155, 1) setPlayerStorageValue(cid,pirate,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function PirateSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,pirate+1) if addon == -1 then if getPlayerItemCount(cid,6099) >= 1 and getPlayerItemCount(cid,6100) >= 1 and getPlayerItemCount(cid,6101) >= 1 and getPlayerItemCount(cid,6102) >= 1 then if doPlayerRemoveItem(cid,6099,1) and doPlayerRemoveItem(cid,6100,1) and doPlayerRemoveItem(cid,6101,1) and doPlayerRemoveItem(cid,6102,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 151, 2) doPlayerAddOutfit(cid, 155, 2) setPlayerStorageValue(cid,pirate+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- PIRATE END -- -- ASSASSIN START -- function AssassinFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,assassin) if addon == -1 then if getPlayerItemCount(cid,5912) >= 50 and getPlayerItemCount(cid,5910) >= 50 and getPlayerItemCount(cid,5911) >= 50 and getPlayerItemCount(cid,5913) >= 50 and getPlayerItemCount(cid,5914) >= 50 and getPlayerItemCount(cid,5909) >= 50 and getPlayerItemCount(cid,5886) >= 10 then if doPlayerRemoveItem(cid,5912,50) and doPlayerRemoveItem(cid,5910,50) and doPlayerRemoveItem(cid,5911,50) and doPlayerRemoveItem(cid,5913,50) and doPlayerRemoveItem(cid,5914,50) and doPlayerRemoveItem(cid,5909,50) and doPlayerRemoveItem(cid,5886,10) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 152, 1) doPlayerAddOutfit(cid, 156, 1) setPlayerStorageValue(cid,assassin,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function AssassinSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,assassin+1) if addon == -1 then if getPlayerItemCount(cid,5930) >= 1 and getPlayerItemCount(cid,5804) >= 1 then if doPlayerRemoveItem(cid,5930,1) and doPlayerRemoveItem(cid,5804,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 152, 2) doPlayerAddOutfit(cid, 156, 2) setPlayerStorageValue(cid,assassin+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- ASSASSIN END -- -- BEGGAR START -- function BeggarFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end local player_gold = getPlayerItemCount(cid,2148) local player_plat = getPlayerItemCount(cid,2152)*100 local player_crys = getPlayerItemCount(cid,2160)*10000 local player_money = player_gold + player_plat + player_crys if isPremium(cid) then addon = getPlayerStorageValue(cid,beggar) if addon == -1 then if getPlayerItemCount(cid,5883) >= 100 and player_money >= 20000 then if doPlayerRemoveItem(cid,5883,100) and doPlayerRemoveMoney(cid,20000) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 153, 1) doPlayerAddOutfit(cid, 157, 1) setPlayerStorageValue(cid,beggar,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function BeggarSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,beggar+1) if addon == -1 then if getPlayerItemCount(cid,6107) >= 1 then if doPlayerRemoveItem(cid,6107,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 153, 2) doPlayerAddOutfit(cid, 157, 2) setPlayerStorageValue(cid,beggar+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- BEGGAR END -- -- SHAMAN START -- function ShamanSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,shaman) if addon == -1 then if getPlayerItemCount(cid,3955) >= 5 and getPlayerItemCount(cid,5015) >= 1 then if doPlayerRemoveItem(cid,3955,5) and doPlayerRemoveItem(cid,5015,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 154, 2) doPlayerAddOutfit(cid, 158, 2) setPlayerStorageValue(cid,shaman,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function ShamanFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,shaman+1) if addon == -1 then if getPlayerItemCount(cid,3966) >= 5 and getPlayerItemCount(cid,3967) >= 5 then if doPlayerRemoveItem(cid,3966,5) and doPlayerRemoveItem(cid,3967,5) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 154, 1) doPlayerAddOutfit(cid, 158, 1) setPlayerStorageValue(cid,shaman+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- SHAMAN END -- -- NORSEMAN START -- function NorsemanFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,norseman) if addon == -1 then if getPlayerItemCount(cid,7290) >= 5 then if doPlayerRemoveItem(cid,7290,5) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 251, 1) doPlayerAddOutfit(cid, 252, 1) setPlayerStorageValue(cid,norseman,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function NorsemanSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,norseman+1) if addon == -1 then if getPlayerItemCount(cid,7290) >= 10 then if doPlayerRemoveItem(cid,7290,10) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 251, 2) doPlayerAddOutfit(cid, 252, 2) setPlayerStorageValue(cid,norseman+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- NORSEMAN END -- -- NIGHTMARE START -- function NightmareFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,nightmare) if addon == -1 then if getPlayerItemCount(cid,6500) >= 500 then if doPlayerRemoveItem(cid,6500,500) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 268, 1) doPlayerAddOutfit(cid, 269, 1) setPlayerStorageValue(cid,nightmare,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function NightmareSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,nightmare+1) if addon == -1 then if getPlayerItemCount(cid,6500) >= 1500 then if doPlayerRemoveItem(cid,6500,1500) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 268, 2) doPlayerAddOutfit(cid, 269, 2) doPlayerAddItem(cid, 6391, 1) setPlayerStorageValue(cid,nightmare+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- NIGHTMARE END -- -- JESTER START -- function JesterFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,jester) if addon == -1 then if getPlayerItemCount(cid,5879) >= 1 and getPlayerItemCount(cid,5878) >= 4 then if doPlayerRemoveItem(cid,5879,1) and doPlayerRemoveItem(cid,5878,4) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 273, 1) doPlayerAddOutfit(cid, 270, 1) setPlayerStorageValue(cid,jester,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function JesterSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,jester+1) if addon == -1 then if getPlayerItemCount(cid,5909) >= 5 then if doPlayerRemoveItem(cid,5909,5) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 273, 2) doPlayerAddOutfit(cid, 270, 2) setPlayerStorageValue(cid,jester+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- JESTER END -- -- BROTHERHOOD START -- function BrotherhoodFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,brotherhood) if addon == -1 then if getPlayerItemCount(cid,6500) >= 500 then if doPlayerRemoveItem(cid,6500,500) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 278, 1) doPlayerAddOutfit(cid, 279, 1) setPlayerStorageValue(cid,brotherhood,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function BrotherhoodSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,brotherhood+1) if addon == -1 then if getPlayerItemCount(cid,6500) >= 1500 then if doPlayerRemoveItem(cid,6500,1500) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 278, 2) doPlayerAddOutfit(cid, 279, 2) doPlayerAddItem(cid, 6433, 1) setPlayerStorageValue(cid,brotherhood+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- BROTHERHOOD END -- --WAYFARER START -- function WayfarerFirst(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,wayfarer) if addon == -1 then if getPlayerItemCount(cid,12657) >= 1 then if doPlayerRemoveItem(cid,12657,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 366, 1) doPlayerAddOutfit(cid, 367, 1) setPlayerStorageValue(cid,wayfarer,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end function WayfarerSecond(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if isPremium(cid) then addon = getPlayerStorageValue(cid,wayfarer+1) if addon == -1 then if getPlayerItemCount(cid,12656) >= 1 then if doPlayerRemoveItem(cid,12656,1) then selfSay(newaddon, cid) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerAddOutfit(cid, 366, 2) doPlayerAddOutfit(cid, 367, 2) setPlayerStorageValue(cid,wayfarer+1,1) end else selfSay(noitems, cid) end else selfSay(already, cid) end end end -- WAYFARER END -- keywordHandler:addKeyword({'addons'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "I can offer you first & second addons of the following outfits: Citizen, Hunter, Mage, Knight, Nobleman, Summoner, Warrior, Barbarian, Druid, Wizard, Oriental, Pirate, Assassin, Beggar, Shaman, Norseman, Elementalist, Nightmare, Jester, Brotherhood, Entrepreneur and Beastmaster."}) keywordHandler:addKeyword({'help'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "What you do is that you type 'first hunter addon' or 'second hunter addon' where you replace 'hunter' with whatever outfit you'd like to achieve the addons for. Assuming that you already collected all the required pieces, say 'yes' and voíla - you got yourself an addon!"}) node1 = keywordHandler:addKeyword({'first citizen addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first citizen addon you need to give me 100 minotaur leathers. Do you have them with you?'}) node1:addChildKeyword({'yes'}, CitizenFirst, {}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node2 = keywordHandler:addKeyword({'second citizen addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first hunter addon you need to give me 100 chicken feathers, 50 honeycombs and a legion helmet. Do you have them with you?'}) node2:addChildKeyword({'yes'}, CitizenSecond, {}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node3 = keywordHandler:addKeyword({'first hunter addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first hunter addon you need to give me Elane Crossbow, 100 lizard leathers, 100 red dragon leather, 5 enchanted chicken wings, a piece of royal steel, a piece of hell steel and a piece of draconian steel. Do you have them with you?'}) node3:addChildKeyword({'yes'}, HunterFirst, {}) node3:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node4 = keywordHandler:addKeyword({'second hunter addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second hunter addon you need to give me a pair of sniper gloves. Do you have them with you?'}) node4:addChildKeyword({'yes'}, HunterSecond, {}) node4:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node5 = keywordHandler:addKeyword({'first mage addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first mage addon you need to give me a winning lottery ticket if you are a female. Otherwise, you need to give me all kind of wands and rods, 10 magic sulphurs, 20 ankhs and a soul stone. Do you have it with you?'}) node5:addChildKeyword({'yes'}, MageFirst, {}) node5:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node6 = keywordHandler:addKeyword({'second mage addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second mage addon you need to give me 70 bat wings, 20 red pieces of cloth, 40 ape fur, 35 holy orchid, 10 spools of spider silk yarn, 60 lizard scales, 40 red dragon scales, 15 magic sulphurs and 30 vampire dusts if you are a female. Otherwise, you need to give me a ferumbras\' hat. Do you have them with you?'}) node6:addChildKeyword({'yes'}, MageSecond, {}) node6:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node7 = keywordHandler:addKeyword({'first knight addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first knight addon you need to give me a chunk of crude iron and 100 iron ores. Do you have it with you?'}) node7:addChildKeyword({'yes'}, KnightFirst, {}) node7:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node8 = keywordHandler:addKeyword({'second knight addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second knight addon you need to give me 100 perfect behemoth fangs, a damaged steel helmet, warrior\'s sweat and a royal steel. Do you have them with you?'}) node8:addChildKeyword({'yes'}, KnightSecond, {}) node8:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node9 = keywordHandler:addKeyword({'first nobleman addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first nobleman addon you need to give me 150,000 gold pieces. Do you have it with you?'}) node9:addChildKeyword({'yes'}, NoblemanFirst, {}) node9:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node10 = keywordHandler:addKeyword({'second nobleman addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second nobleman addon you need to give me 150,000 gold pieces. Do you have them with you?'}) node10:addChildKeyword({'yes'}, NoblemanSecond, {}) node10:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node11 = keywordHandler:addKeyword({'first summoner addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = '{[MALE]} To achieve the first summoner addon you need to give me a winning lottery ticket. {[FEMALE]} You need to give me all kind of wands and rods, 10 magic sulphurs, 20 ankhs and a soul stone. Do you have it with you?'}) node11:addChildKeyword({'yes'}, SummonerFirst, {}) node11:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node12 = keywordHandler:addKeyword({'second summoner addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = '{[MALE]} To achieve the second summoner addon you need to give me 70 bat wings, 20 red pieces of cloth, 40 ape fur, 35 holy orchid, 10 spools of spider silk yarn, 60 lizard scales, 40 red dragon scales, 15 magic sulphurs and 30 vampire dusts. {[FEMALE]} You need to give me a ferumbras\' hat. Do you have them with you?'}) node12:addChildKeyword({'yes'}, SummonerSecond, {}) node12:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node13 = keywordHandler:addKeyword({'first warrior addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first warrior addon you need to give me 100 hardened bones, 100 turtle shells, a fighting spirit and a dragon claw. Do you have it with you?'}) node13:addChildKeyword({'yes'}, WarriorFirst, {}) node13:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node14 = keywordHandler:addKeyword({'second warrior addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second warrior addon you need to give me 100 iron ores and a piece of royal steel. Do you have them with you?'}) node14:addChildKeyword({'yes'}, WarriorSecond, {}) node14:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node15 = keywordHandler:addKeyword({'first barbarian addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first barbarian addon you need to give me a fighting spirit, the warrior\'s sweat, 50 red pieces of cloth, 50 green pieces of cloth and 10 spool of yarns. Do you have them with you?'}) node15:addChildKeyword({'yes'}, BarbarianFirst, {}) node15:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node16 = keywordHandler:addKeyword({'second barbarian addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second barbarian addon you need to give me 100 iron ore, a chunk of crude iron, 50 behemoth fangs and 50 lizard leathers. Do you have them with you?'}) node16:addChildKeyword({'yes'}, BarbarianSecond, {}) node16:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node17 = keywordHandler:addKeyword({'first druid addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first druid addon you need to give me 50 wolf paws and 50 bear paws. Do you have them with you?'}) node17:addChildKeyword({'yes'}, DruidFirst, {}) node17:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node18 = keywordHandler:addKeyword({'second druid addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second druid addon you need to give me Botanist Container, Ceiron\'s waterskin, 100 demon dusts, a blessed wooden stake and Ceirons wolf tooth chain. Do you have them with you?'}) node18:addChildKeyword({'yes'}, DruidSecond, {}) node18:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node19 = keywordHandler:addKeyword({'first wizard addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first wizard addon you need to give me a dragon scale mail, a pair of crown legs, a medusa shield and a ring of the sky. Do you have them with you?'}) node19:addChildKeyword({'yes'}, WizardFirst, {}) node19:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node20 = keywordHandler:addKeyword({'second wizard addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second wizard addon you need to give me 50 holy orchids. Do you have them with you?'}) node20:addChildKeyword({'yes'}, WizardSecond, {}) node20:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node21 = keywordHandler:addKeyword({'first oriental addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first oriental addon you need to give me a mermaid comb. Do you have it with you?'}) node21:addChildKeyword({'yes'}, OrientalFirst, {}) node21:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node22 = keywordHandler:addKeyword({'second oriental addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second oriental addon you need to give me 100 ape furs, 100 fish fins, 2 enchanted chicken wings and 100 blue pieces of cloth. Do you have them with you?'}) node22:addChildKeyword({'yes'}, OrientalSecond, {}) node22:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node23 = keywordHandler:addKeyword({'first pirate addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first pirate addon you need to give me 100 hooks, 100 peg legs and 100 eye patches. Do you have them with you?'}) node23:addChildKeyword({'yes'}, PirateFirst, {}) node23:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node24 = keywordHandler:addKeyword({'second pirate addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second pirate addon you need to give me brutus bloodbeard\'s hat, lethal lissy\'s shirt, ron the ripper\'s sabre and deadeye devious\' eye patch. Do you have them with you?'}) node24:addChildKeyword({'yes'}, PirateSecond, {}) node24:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node25 = keywordHandler:addKeyword({'first assassin addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first assassin addon you need to give me 50 Blue Piece of Cloths, 50 Green Piece of Cloths, 50 Red Piece of Cloths, 50 Brown Piece of Cloths, 50 Yellow Piece of Cloths, 50 White Piece of Cloths and 10 Spool of Yarns. Do you have them with you?'}) node25:addChildKeyword({'yes'}, AssassinFirst, {}) node25:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node26 = keywordHandler:addKeyword({'second assassin addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second assassin addon you need to give me 1 Behemoth Claw and 1 Nose Ring. Do you have them with you?'}) node26:addChildKeyword({'yes'}, AssassinSecond, {}) node26:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node27 = keywordHandler:addKeyword({'first beggar addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first beggar addon you need to give me 100 ape furs and 20,000 gold pieces. Do you have them with you?'}) node27:addChildKeyword({'yes'}, BeggarFirst, {}) node27:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node28 = keywordHandler:addKeyword({'second beggar addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second beggar addon you need to give me simon the beggar\'s staff. Do you have it with you?'}) node28:addChildKeyword({'yes'}, BeggarSecond, {}) node28:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node29 = keywordHandler:addKeyword({'second shaman addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first shaman addon you need to give me 5 dworf voodoo dolls and a mandrake. Do you have them with you?'}) node29:addChildKeyword({'yes'}, ShamanSecond, {}) node29:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node30 = keywordHandler:addKeyword({'first shaman addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second shaman addon you need to give me 5 banana staffs and 5 tribal masks. Do you have them with you?'}) node30:addChildKeyword({'yes'}, ShamanFirst, {}) node30:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node31 = keywordHandler:addKeyword({'first norseman addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first norseman addon you need to give me 5 shards. Do you have them with you?'}) node31:addChildKeyword({'yes'}, NorsemanFirst, {}) node31:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node32 = keywordHandler:addKeyword({'second norseman addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second norseman addon you need to give me 10 shards. Do you have them with you?'}) node32:addChildKeyword({'yes'}, NorsemanSecond, {}) node32:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node33 = keywordHandler:addKeyword({'first nightmare addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first nightmare addon you need to give me 500 demonic essences. Do you have them with you?'}) node33:addChildKeyword({'yes'}, NightmareFirst, {}) node33:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node34 = keywordHandler:addKeyword({'second nightmare addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second nightmare addon you need to give me 1500 demonic essences (you will receive Nightmare Shield). Do you have them with you?'}) node34:addChildKeyword({'yes'}, NightmareSecond, {}) node34:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node35 = keywordHandler:addKeyword({'first jester addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first jester addon you need to give me a giant spider silk and 4 minotaur leathers. Do you have them with you?'}) node35:addChildKeyword({'yes'}, JesterFirst, {}) node35:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node36 = keywordHandler:addKeyword({'second jester addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second jester addon you need to give me 5 white piece of cloth. Do you have them with you?'}) node36:addChildKeyword({'yes'}, JesterSecond, {}) node36:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node37 = keywordHandler:addKeyword({'first brotherhood addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first brotherhood addon you need to give me 500 demonic essences. Do you have them with you?'}) node37:addChildKeyword({'yes'}, BrotherhoodFirst, {}) node37:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node38 = keywordHandler:addKeyword({'second brotherhood addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second brotherhood addon you need to give me 1500 demonic essences (you will receive Necromancer Shield). Do you have them with you?'}) node38:addChildKeyword({'yes'}, BrotherhoodSecond, {}) node38:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node39 = keywordHandler:addKeyword({'first wayfarer addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first wayfarer addon you need to give me the Old Cape. Do you have them with you?'}) node39:addChildKeyword({'yes'}, WayfarerFirst, {}) node39:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node40 = keywordHandler:addKeyword({'second wayfarer addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second wayfarer addon you need to give me the Sedge Hat. Do you have them with you?'}) node40:addChildKeyword({'yes'}, WayfarerSecond, {}) node40:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node41 = keywordHandler:addKeyword({'first pumpkin addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first pumpkin addon you need to give me 15 Silver Raid Tokens. Do you have them with you?'}) node41:addChildKeyword({'yes'}, PumpkinFirst, {}) node41:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node42 = keywordHandler:addKeyword({'second pumpkin addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second pumpkin addon you need to give me 250 Copper Tokens. Do you have them with you?'}) node42:addChildKeyword({'yes'}, PumpkinSecond, {}) node42:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node43 = keywordHandler:addKeyword({'first yalaharian addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first Yalaharian addon you need to give me 5 Silver Raid Tokens. Do you have them with you?'}) node43:addChildKeyword({'yes'}, YalaharianFirst, {}) node43:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node44 = keywordHandler:addKeyword({'second yalaharian addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second Yalaharian addon you need to give me 100 Copper Tokens. Do you have them with you?'}) node44:addChildKeyword({'yes'}, YalaharianSecond, {}) node44:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node45 = keywordHandler:addKeyword({'first glooth addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first Glooth addon you need to give me 10 Silver Raid Tokens. Do you have them with you?'}) node45:addChildKeyword({'yes'}, GloothFirst, {}) node45:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node46 = keywordHandler:addKeyword({'second glooth addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second Glooth addon you need to give me 200 Copper Tokens. Do you have them with you?'}) node46:addChildKeyword({'yes'}, GloothSecond, {}) node46:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node47 = keywordHandler:addKeyword({'first rift warrior addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first Rift Warrior addon you need to give me 10 Silver Raid Tokens. Do you have them with you?'}) node47:addChildKeyword({'yes'}, riftFirst, {}) node47:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node48 = keywordHandler:addKeyword({'second rift warrior addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second Rift Warrior addon you need to give me 200 Copper Token. Do you have them with you?'}) node48:addChildKeyword({'yes'}, riftSecond, {}) node48:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) -- elementalist node49 = keywordHandler:addKeyword({'first elementalist addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first Elementalist addon you need to give me 1 Elemental Spikes. Do you have them with you?'}) node49:addChildKeyword({'yes'}, elementalistFirst, {}) node49:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node50 = keywordHandler:addKeyword({'second elementalist addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second Elementalist addon you need to give me 1 Mages Cap. Do you have them with you?'}) node50:addChildKeyword({'yes'}, elementalistSecond, {}) node50:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) -- elementalist end node51 = keywordHandler:addKeyword({'first entrepreneur addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first Entrepreneur addon you need to give me 500 Copper Tokens. Do you have them with you?'}) node51:addChildKeyword({'yes'}, entrepreneurFirst, {}) node51:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node52 = keywordHandler:addKeyword({'second entrepreneur addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second Entrepreneur addon you need to give me 1000 Copper Tokens. Do you have them with you?'}) node52:addChildKeyword({'yes'}, entrepreneurSecond, {}) node52:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) --beastmaster node53 = keywordHandler:addKeyword({'first beastmaster addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the first Beastmaster addon you need to give me 500 Copper Tokens. Do you have them with you?'}) node53:addChildKeyword({'yes'}, entrepreneurFirst, {}) node53:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) node54 = keywordHandler:addKeyword({'second beastmaster addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To achieve the second Beastmaster addon you need to give me 1000 Copper Tokens. Do you have them with you?'}) node54:addChildKeyword({'yes'}, entrepreneurSecond, {}) node54:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got all neccessary items.', reset = true}) --beastmaster end npcHandler:addModule(FocusModule:new())
  7. ninguém pode ajudar mesmo?
  8. baixa esse programa notepad++ o arquivo config.lua fica na primeira pasta do seu ot, ai vc aperta com o botao direito em cima dele e arruma pra editar com notepad++ procura por essa config -- Connection Config -- NOTE: maxPlayers set to 0 means no limit ip = "127.0.0.1" <<<<<------- vc vai arrumar o ipv4 aqui bindOnlyGlobalAddress = false loginProtocolPort = 7171 gameProtocolPort = 7172 statusProtocolPort = 7171 maxPlayers = "2100" motd = "Bem vindo ao melhor global!" onePlayerOnlinePerAccount = true allowClones = false serverName = "Global" statusTimeout = 5000 replaceKickOnLogin = true maxPacketsPerSecond = 1000 feito isso é só salvar e tentar abrir
  9. vê se esta arrumando o ip certo no config.lua se no seu vc estiver usando uma Virtual Machine com ubuntu, abra o terminal emulador e digite ifconfig e procure o IP que aparece na frente de "inet end.:", caso o seu servidor esteja em windows, abra o cmd e digite ipconfig procure o seu adpatdor de "Ethernet" e sera o o IP que fica na frente de Endereço IPV4. Caso queira abrir para amigos o servidor, faça o que eu disse nesse post.
  10. por exemplo o meu modem é da vivo, e mostra a porta externa e interna.
  11. abra as portas 7171,7172,7173 e 80 no seu firewall do windows e depois vá no seu modem e abra as mesma portas, em IP Externo vc deixa em branco (para que todos consigam conectar) e IP interno arruma seu endereço Ipv4 que vc pega no cmd>ipconfig, depois disso cria uma conta no no-ip e cria um DNS dinamico, ai vc arruma o ip que vc pega no site meuip.com.br e digita o seu novo dns por exemeplo ot.tibia.servegame.com, feito isso vc pega esse ip "ot.tibia.servegame.com" e arruma no seu config.lua e passa o seu ip do meuip.com.br para os seus amigos.
  12. manda uma foto de como aparece
  13. Olá, estou criando uma arena pvp no meu servidor, quando se tira pvp ela funciona normal (se o player morre para outro player, volta pro templo sem perder nada) o que eu gostaria de saber é como posso configurar a arena pvp para que se o player morrer para algum monstro e não perder nada. O que está acontecendo é que se o player morrer para monstro X ele não volta pro templo, perde experiencia e fica morrendo repetidamente sem conseguir relogar.
  14. XML do NPC que dá acesso: NPC que dá acesso e item: XML do npc que dá acesso e item: Portal com acesso: "Data/movements/scripts", nome_do_arquivo.lua: "Data/movements", no arquivo movements.xml adicione a TAG: <movevent type="StepIn" actionid="actionID_desejada" event="script" value="nome_do_arquivo.lua" /> Só colocar a actionID_desejada no teleport. Não testei os NPC's, se der erro me avise. Desculpe pelo up excessivo, eu só tenho uma dúvida antes de testar os npc, a storage que o npc dá, é a actionID que tenho que arrumar na porta?
  15. Olá, preciso de dois tipos diferentes de NPC um que de storage para passar em alguma porta ou portal ao falar com ele tipo "hi - yes ou sim", outro que entregue um item configuravel e de uma storage para acessar alguma porta ou portal e um script de porta que só consiga passar caso tenha o item configuravel (no caso um anel) equipado. TFS 0.4
  16. [7/5/2015 0:18:46] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Legolas.lua [7/5/2015 0:18:46] data/npc/scripts/Legolas.lua:12: '}' expected (to close '{' at line 10) near 'st' ta dando isso

Informação Importante

Confirmação de Termo