hello.
i hope someone can help me
i have a little problem every account manager i use its cant read my char its can create account but cant read the char or create the char.
i did configured the user data/info root in the configure so why?thanks
Printable View
hello.
i hope someone can help me
i have a little problem every account manager i use its cant read my char its can create account but cant read the char or create the char.
i did configured the user data/info root in the configure so why?thanks
Which Account manager do you use?
i tried xpt [the one with the white and blue skins] and xternalpt wich released not long time ago and another one..with all of them the same problem cant read the chars..i do have chars but i created them ingame.
i think better i post here my char.php maybe you will see if anything wrong
char.php
Code:<?if (ArcadePT!=1) exit;?>
<?
/*----------------------------------------------------------------------
Painel Arcade V. 1.7
Desenvolvidor Por: Mak (mak@arcadept.com.br)
Server ArcadePT - www.arcadept.com.br
----------------------------------------------------------------------*/
function RandomPass($numchar){
$letras = "A,B,C,D,E,F,G,H,I,J,K,1,2,3,4,5,6,7,8,9,0";
$array = explode(",", $letras);
shuffle($array);
$senha = implode($array, "");
return substr($senha, 0, $numchar);
}
$pgid = RandomPass(5);
$qCharID=($_SESSION["charID"])?$_SESSION["charID"]:$_SESSION["ID"];
if($_POST[action]!="Criar Char")
{
?>
<form method="post" onSubmit="disabledBttn(this)" action="<?=$_SERVER[PHP_SELF]."?".$_SERVER[QUERY_STRING]?>&pgid=$pgid">
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="2">
<tr>
<td bgcolor="#CCCC99"><strong><img src="imgs/setinha.gif" width="11" height="11"> CREATE NEW CHARACTER</strong></td>
</tr>
<tr>
<td><input type="text" name="newchar" maxlength="15">
<select name="class">
<option>Fighter</option>
<option>Mechanician</option>
<option>Archer</option>
<option>Pikeman</option>
<option>Atalanta</option>
<option>Knight</option>
<option>Magician</option>
<option>Priestess</option>
</select>
<input type="submit" value="Criar Char" class="button"></td>
</tr>
</table>
<input type="hidden" name="action" value="Criar Char">
</form>
<?
}
else
{
include_once("gravarchar.php");
// Fill in 00 to left character
$leftLen=10-strlen($qCharID);
for($i=0;$i<$leftLen;$i++)
{
$addOnLeft.=pack("h*",00);
}
$writeAccName=$qCharID.$addOnLeft;
$charInfo=$dirUserInfo . ($func->numDir($qCharID)) . "/" . $qCharID . ".dat";
if(!file_exists($charInfo))
{
copy("criarchars/info.dat",$dirUserInfo . ($func->numDir($qCharID)) . "/" . $qCharID. ".dat");
$fRead=false;
$fOpen = fopen($charInfo, "r");
while (!feof($fOpen)) {
@$fRead = "$fRead" . fread($fOpen, filesize($charInfo) );
}
fclose($fOpen);
// Change character class ----------------------------------------------------------------
$sourceStr = substr($fRead, 0, 16) . $writeAccName . substr($fRead, 26);
$fOpen = fopen($charInfo, "wb");
fwrite($fOpen, $sourceStr, strlen($sourceStr));
fclose($fOpen);
echo "O ARQUIVO ID DE ACC CRIADO, AGORA CRIE UM CHAR!";
}
else
{
if( filesize($charInfo)==240)
{
$newName=trim($func->char_filter(trim($_POST["newchar"])),"\x00");
//Limpando Caracteres de acentos
function strace($a)
{
$a = eregi_replace("[אבגהד]","a",$a);
$a = eregi_replace("[טיךכ]","e",$a);
$a = eregi_replace("[לםמן]","i",$a);
$a = eregi_replace("[עףפצץ]","o",$a);
$a = eregi_replace("[שת]","u",$a);
$a = eregi_replace("[ְֱֲֳִ]","A",$a);
$a = eregi_replace("[ָֹֺֻ]","E",$a);
$a = eregi_replace("[ּֽ־ֿ]","I",$a);
$a = eregi_replace("[ׂ׃װײױ]","O",$a);
$a = eregi_replace("[]","U",$a);
$a = eregi_replace("ח","c",$a);
$a = eregi_replace("ַ","C",$a);
$a = eregi_replace("ס","n",$a);
$a = eregi_replace("ׁ","N",$a);
$a = str_replace("´","",$a);
$a = str_replace("`","",$a);
$a = str_replace("¨","",$a);
$a = str_replace("^","",$a);
$a = str_replace("~","",$a);
return $a;
}
$newName = strace("$newName");
if(!$func->is_valid_string($newName))
{
$charDat = $dirUserData . ($func->numDir($newName)) . "/" . $newName . ".dat";
if(!file_exists($charDat))
{
copy("criarchars/char.dat",$dirUserData . ($func->numDir($newName)) . "/" . $newName. ".dat");
$fRead=false;
$fOpen = fopen($charInfo, "r");
$fRead =fread($fOpen,filesize($charInfo));
@fclose($fOpen);
// list char information
$charNameArr=array(
"48" => trim(substr($fRead,0x30,15),"\x00"),
"80" => trim(substr($fRead,0x50,15),"\x00"),
"112"=> trim(substr($fRead,0x70,15),"\x00"),
"144"=> trim(substr($fRead,0x90,15),"\x00"),
"176"=> trim(substr($fRead,0xb0,15),"\x00"),
);
$chkEmpArr=array();
$chkChar=array();
foreach($charNameArr as $key=>$value)
{
if(empty($value)) $chkEmpArr[]=$key;
else $chkChar[]=$key;
}
if(count($chkChar)<5)
{
// point to each information line
$startPoint=$chkEmpArr[0];
$endPoint=$startPoint+15;
// Write info-----------------------------------------------------------------------
$fRead=false;
$fOpen = fopen($charInfo, "r");
while (!feof($fOpen)) {
@$fRead = "$fRead" . fread($fOpen, filesize($charInfo) );
}
fclose($fOpen);
// Fill in 00 to left character
$addOnLeft=false;
$leftLen=15-strlen($newName);
for($i=0;$i<$leftLen;$i++)
{
$addOnLeft.=pack("h*",00);
}
$writeName=$newName.$addOnLeft;
$sourceStr = substr($fRead, 0, $startPoint) . $writeName . substr($fRead, $endPoint);
$fOpen = fopen($charInfo, "wb");
fwrite($fOpen, $sourceStr, strlen($sourceStr));
fclose($fOpen);
// Write data-------------------------------------------------------------------------
$fRead=false;
$fOpen = fopen($charDat, "r");
while (!feof($fOpen)) {
@$fRead = "$fRead" . fread($fOpen, filesize($charDat) );
}
fclose($fOpen);
$bin = $func->char2Num($_POST["class"]);
$bina= pack("h*",$bin);
// Change character class ----------------------------------------------------------------
$sourceStr = substr($fRead, 0, 16) . $writeName . substr($fRead, 31, 17) . ($func->charResetHair($_POST['class'], 1)) . substr($fRead, 69, 43) . ($func->charResetHair($_POST['class'], 2)) . substr($fRead, 136, 60) . $bina . substr($fRead, 1*** 7) . ($func->charResetState($_POST['class'])) . substr($fRead, 224, 284) . ($func->charResetSkill()) . substr($fRead, 524, 0) . ($func->charResetMastery()) . substr($fRead, 556, 148) . $writeAccName . substr($fRead, 714);
$fOpen = fopen($charDat, "wb");
fwrite($fOpen, $sourceStr, strlen($sourceStr));
fclose($fOpen);
echo "CHAR CRIADO,COM LEVEL 80 E TODAS AS QUESTS!";
}
else
{
echo "VOCE PODE TER ATE 5 CHARS NESSA CONTA!";
}
}
else
{
echo "PERSONAGEM JA EXISTE";
}
}
else
{
echo "O NOME QUE VC ESCOLHEU NAO PODE SER UTILIZADO!";
}
}
else
{
echo "ARQUIVO CORROMPIDO!";
}
}
echo "<br><a href=\"$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]&pgid=$pgid\">VOLTAR</a>";
}
//------------------------------------------------------------ DELETE CHARACTER
if($_SESSION["charDir"])
{
if($_POST[action]!="Apagar Char")
{
?>
<form method="post" onSubmit="disabledBttn(this)" action="<?=$_SERVER[PHP_SELF]."?".$_SERVER[QUERY_STRING]?>&pgid=$pgid">
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="2">
<tr>
<td bgcolor="#CCCC99"><strong><img src="imgs/setinha.gif" width="11" height="11"> APAGAR CHAR </strong></td>
</tr>
<tr>
<td><input type="submit" value="Apagar Char" class="button" onClick="cf=confirm('PERIGO! QUER APAGAR CHAR MESMO?');if(!cf){return false}"></td>
</tr>
</table>
<input type="hidden" name="action" value="Apagar Char">
</form>
<?
}
else
{
include_once("consultachar.php");
if (!$naodeleta)
{
$charInfo=$dirUserInfo . ($func->numDir($qCharID)) . "/" . $qCharID . ".dat";
$fRead=false;
$fOpen = fopen($charInfo, "r");
$fRead =fread($fOpen,filesize($charInfo));
@fclose($fOpen);
// list char information
$charNameArr=array(
"48" => trim(substr($fRead,0x30,15),"\x00"),
"80" => trim(substr($fRead,0x50,15),"\x00"),
"112"=> trim(substr($fRead,0x70,15),"\x00"),
"144"=> trim(substr($fRead,0x90,15),"\x00"),
"176"=> trim(substr($fRead,0xb0,15),"\x00"),
);
$chkCharLine=array();
foreach($charNameArr as $key=>$value)
{
if($_SESSION["charName"]==$value) $chkCharLine[]=$key;
}
// Remove character from information file--------------------------------------
// Fill in 00 to left character
$addOnLeft=false;
for($i=0;$i<15;$i++)
{
$addOnLeft.=pack("h*",00);
}
$startPoint=$chkCharLine[0];
$endPoint=$startPoint+15;
$fRead=false;
$fOpen = fopen($charInfo, "r");
while (!feof($fOpen)) {
@$fRead = "$fRead" . fread($fOpen, filesize($charInfo) );
}
fclose($fOpen);
$sourceStr = substr($fRead, 0, $startPoint) . $addOnLeft . substr($fRead, $endPoint);
$fOpen = fopen($charInfo, "wb");
fwrite($fOpen, $sourceStr, strlen($sourceStr));
fclose($fOpen);
copy($dirUserData . ($func->numDir($_SESSION["charName"])) . "/" . $_SESSION["charName"] . ".dat" ,$dirUserDelete . "/" . $_SESSION["charName"] . ".dat");
unlink($dirUserData . ($func->numDir($_SESSION["charName"])) . "/" . $_SESSION["charName"] . ".dat");
echo "CHARACTER ". $_SESSION["charName"] ." FOI APAGADO!";
$_SESSION["charDir"]='';
$_SESSION["charNum"]='';
$_SESSION["charID"]='';
$_SESSION["charName"]='';
$_SESSION["charLevel"]='';
$_SESSION["charClass"]='';
echo "<br><a href=\"$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]&pgid=$pgid\">VOLTAR</a>";
}
else
{
echo "<table width=440 border=0 cellspacing=0 cellpadding=0>
<tr>
<td height=100 align=center><b><font color=#FF0000>$nomechar FOI CRIADO HOJE, PORTANTO TEM O PRAZO DE 1 DIA NO MINIMO PARA PODER SER DELETADO!</font></b></td>
</tr>
</table>";
echo "<meta HTTP-EQUIV='Refresh' CONTENT='2;URL=index.php'>";
}
}
}
?>
first one is char.php second one is gravarchar.phpCode:<?php
/*----------------------------------------------------------------------
Painel Arcade V. 1.7
Desenvolvidor Por: Mak (mak@arcadept.com.br)
Server ArcadePT - www.arcadept.com.br
----------------------------------------------------------------------*/
$nomechar = $_POST["newchar"];
$dia = date("d");
$mes = date("m");
$ano = date("Y");
$dados = "$nomechar;$dia;$mes;$ano\r\n";
//nome do arquivo texto:
$arq = "controlechars.txt";
$abre = fopen($arq, "r");
$total = fread($abre, filesize($arq));
fclose($abre);
$abre = fopen($arq, "w");
$total = "$dados $total";
$salva = fwrite($abre, $total);
//fecha o arquivo
fclose($abre);
?>
both of them responsible on the chars reading/creating.