Ir para conteúdo

Xagah

Membro
  • Registro em

  • Última visita

Tudo que Xagah postou

  1. Tenta assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) function onGetFormulaValues(cid, level, item) local arma= getPlayerWeapon(cid).itemid darma= getItemAttribute(arma.uid, 'attack') skillsword= getPlayerSkill(cid, 2) local forca= getPlayerStorageValue(cid, 70001) local agilidade= getPlayerStorageValue(cid, 70003) min = -(level*0.25) + -(forca*0.5) + -(agilidade*0.2) + -(skillsword*0.4) + -darma max = -(level*0.35) + -(forca*0.6) + -(agilidade*0.3) + -(skillsword*0.8) + -darma return min, max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onUseWeapon(cid, var) return doCombat(cid, combat, var) end Pra que que vc usa o 'script'? Porque aí fica mais fácil pra eu testar aqui...
  2. Xagah postou uma resposta no tópico em Suporte Tibia OTServer
    Vc deve ter colocado dentro do 'items.xml'. Não adianta coloca só ali. Vc precisa ir no arquivo: Data > Movements> movements.xml E insere lá também. Aí funciona. Se não souber como configurar volta aí....
  3. Cara, penso que entendi em partes o que perguntou.... Primeiro tenta só mudar a ordem que aqueles itens foram inseridos no mapa. Geralmente isto ocorre porque todos estes itens possuem como atributo ser 'Always on Top', aí, dependendo da ordem que colocar fica feio. Se não foi isto, dá uma explicada melhor o que tem de diferença ali... Abraço.
  4. Faz o seguinte. Vá na pasta 'doc' (no mesmo lugar onde está a pasta 'data') e abra o arquivo 'LUA_FUNCTIONS' com um editor de texto (pode ser o NotePad C++) e cole aqui. Neste arquivo estão as funções '.lua' que estão 'escondidas' dentro do 'Forgotten.exe'. Se no meio destas funções não houver nada que possamos usar, aí crio uma e te ensino como usá-la no server. Fácin. Abraço.
  5. Não...tipo assim. Cada NPC tem um 'script' próprio. Todavia, algumas funções são idênticas para todos eles. Assim, para não precisar 'repetir em todos os 'scripts' estas mesmas funções (o que deixaria o server mais pesado) foram criados arquivos chamados 'NpcHandler' e 'NPCsystem'. Deste modo, todas as vezes que precisa-se utilizar aquelas funções (as iguais em todos os NPC´s) são 'consultados' estes dois arquivos. Pronto, agora sim... Então... você postou dois 'scripts' para analisarmos. Assim, embora aquela sua 'tela preta' dizer certinho onde o erro esta e vc ter dito o que 'tem na linha 558', eu preciso ver o resto. E este resto não está nos 'scripts' que vc colocou no início, porque eles tem menos do que 558 linhas, entendeu? uaheihAIEUAI.. acabei.
  6. Pior seria se ele tivesse colocado: "Estou com uma dúvida. Ajudem!" Mas @billybmx, faça o seguinte: se não conseguir explicar o erro, bata um 'printscreen' da tela e cole aqui pra gente analisar. Agora, do jeito que tá aí o @vankk e o @Hadagalberto Jr. têm razão, ninguém vai entender o seu problema.
  7. Cara, entrei no seu server, tá bugada posição do Templo.
  8. Xagah postou uma resposta no tópico em Suporte Tibia OTServer
    Vá em: File > Import > Import Monsters and NPC... > (encontre a pasta de scripts de NPC do seu server) depois faça o mesmo com a pasta 'Monsters'. Ainda não funcionou? Vá em: Viem > Show Creatures (marque esta opção). Ajudei? Rep+.
  9. Cara, ao menos no OT que eu uso não há a função 'getPlayerPz(cid)'. Se entendi bem vc checa se o Player está atacando ou não, não é? Então troque: getPlayerPz(cid) <= 0 Por: (not isPlayerPzLocked(cid)) Deverá dar o mesmo efeito. Ajudei? Rep+.
  10. Bom, primeiro que aqui é o TibiaKing Mas blz, depende. Se você utiliza um sistema de PET´s no mínimo usa 'storages'. Aí, se for este o caso, seria melhor se mostrasse o 'script', mas pelo jeito deve ser exclusivo seu. Se puder deixar mais detalhes... Abraço.
  11. Cara, tem algo estranho. O 'log' de erros acusa que o problema está no 'script' NpcHandler na linha 558, mas o que mostrou tem somente 539 linhas. Está analisando o 'script' correto?
  12. Olá, bom dia. Então, o 'ip' e a 'porta' que você irá inserir no 'ip changer' não é aleatório, mas, isto sim, o que aparece na tela do executável. Assim, o @PostadorHunter tem razão em parte. Se você está jogando em sua casa, o 'ip' 192.168.1.3 só é o 'ip' do seu computador dentro do seu rotedor 'wifi'.. não é o 'ip' que será utilizado. Para pegar o 'ip' correto abra o 'log' do executável e procure o seguinte: * A seta vermelha indica o 'ip' que deverá utilizar no 'ip changer' * A seta amarela indica o 'ip' que está utilizando. É o 'ip' que 'seus' amigos devem utilizar, não você. * Setas verdes indicam as portas utilizadas. Pode ser qualquer uma. Deu certo? Se ajudei, rep+.
  13. Cara, precisa ser um item? Eu coloquei no meu server e geral reclamou e pediu pra virar uma magia. É esta aqui;. Crie um arquivo chamado 'citytp.lua' e coloque dentro da pasta spells. function onCastSpell(cid, var) local function doTeleport(cid, count) if (not isPlayer(cid)) then return true end doSendAnimatedText(getCreaturePosition(cid), (30 - count).."s", COLOR_ORANGE) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_YELLOW_RINGS) if (count == 30) then return doCreatureSetNoMove(cid, false) and doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) else addEvent(doTeleport, 1000, cid, count + 1) end return true end if (not isPlayerPzLocked(cid)) then if (not getCreatureCondition(cid, 1024)) then return doCreatureSetNoMove(cid, true) and doTeleport(cid, 0) else doPlayerSendTextMessage(cid,MESSAGE_STATUS_SMALL,"You cannot use this command while you are infight.") return false end else doPlayerSendTextMessage(cid,MESSAGE_STATUS_SMALL,"You cannot use this command while you are pz locked.") return false end end E, depois, dentro de spells.xml vc coloca isto: <instant name="City Teleport" words="exani hom" lvl="100" mana="0" aggressive="0" selftarget="1" exhaustion="1200000" needlearn="0" event="script" value="citytp.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> <instant nam Veja, vc pode configurar a palavra para chamar a magic ('exani hom'), o level para usar, a mana usada e um 'cooldown' de 2 horas (120 mil milisegundos). Se, ainda assim, quiser com item, me avisa aqui que faço e mando aqui.
  14. A mensagem está dizendo que seu servidor não está conseguindo se conectar à sua base de dados. O nome da sua base de dados é "555"? Vc 'diz' para o servidor que é para usar a 'database' em: sqlDatabase = "555" sqlDatabase = "555" No lugar do 555 vc coloca o nome da sua base de dados. Vc está usando o Wamp ou o Xamp como gerenciador de banco de dados?
  15. Conforme bem lembrou o @Heyron, itens que são utilizados dentro de Scripts não podem ter a cid compartilhada. Assim, se vai usar um mesmo CID ('sprite' com mesma configuração no '.dat'), vc terá que criar um CID diferente para ele. Não entendo o porque disto também. Mas, para retirar todos os itens expostos ao players, dentro do Remere aperte 'ctrl + F' e insira o ID. Todo local no mapa que tiver este ID será mostrado em uma lista. Para mostrar, dentro da sua pasta 'data' onde podem estar sendo usados, utilize o programa 'NotePad C++'. Abra-o, aperte 'ctrl + shift + F', em localizar coloque o 'id' do item, em pasta selecione a sua pasta 'data' e clique em 'localizar todos'. Será formada uma lista de todos os locais onde o 'id' está sendo mencionado dentro do seu server.
  16. Xagah postou uma resposta no tópico em Suporte Tibia OTServer
    Aqui no próprio site tem um Tutorial. Se ajudei, rep+
  17. Usa este aqui: <b> <?php $location = array( 'GER' =>'Europe', // 'USA' =>'North America' ); $default = 'all'; $worlds = array(); $worlds[0] = array('GER', 'open'); /* $worlds[1] = array('GER', 'optional'); $worlds[2] = array('GER', 'hardcore'); $worlds[3] = array('USA', 'open'); $worlds[4] = array('USA', 'optional'); $worlds[5] = array('USA', 'hardcore'); */ $voc = array(); // if empty, Rook Sample will be used $voc[1] = 'Sorcerer'; $voc[2] = 'Druid'; $voc[3] = 'Paladin'; $voc[4] = 'Knight'; $suggestname = NULL; // not available $version = '860'; // for download link foreach($worlds as $k =>$v) // remove invalid worlds if(!isset($location[$v[0]]) || !isset($config['site']['worlds'][$k])) unset($worlds[$k]); $tmp = array(); foreach($location as $k =>$v) // remove invalid/unused locations foreach($worlds as $i =>$j) if($j[0] == $k) { $tmp[$k] = $v; break; } $location = $tmp; unset($tmp); if(isset($_POST['step']) && $_POST['step'] == 'docreate') { $e = array(); $s = isset($_POST['accountname']) ? $_POST['accountname'] : ''; if($s == '') $e['acc'] = 'Please enter an account name!'; elseif(strlen($s) < 6) $e['acc'] = 'This account name is too short!'; elseif(strlen($s) > 30) $e['acc'] = 'This account name is too long!'; else { $s = strtoupper($s); if(!ctype_alnum($s)) $e['acc'] = 'This account name has an invalid format. Your account name may only consist of numbers 0-9 and letters A-Z!'; elseif(!preg_match('/[A-Z]/', $s)) $e['acc'] = 'Your account name must include at least one letter A-Z!'; else { $con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.'); mysql_select_db($config['server']['sqlDatabase']); if(mysql_num_rows(mysql_query('SELECT id FROM accounts WHERE name=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0) $e['acc'] = 'This account name is already used. Please select another one!'; } } $s = isset($_POST['name']) ? trim($_POST['name']) : ''; if(empty($s)) $e['name'] = 'Please enter a name for your character!'; elseif(strlen($s) < 2 || strlen($s) > 29) $e['name'] = 'A name must have at least 2 but no more than 29 letters!'; elseif(preg_match('/[^a-zA-Z ]/', $s)) $e['name'] = 'This name contains invalid letters. Please use only A-Z, a-z and space!'; elseif(!ctype_upper($s[0])) $e['name'] = 'The first letter of a name has to be a capital letter!'; elseif(strpos($s, ' ') !== false) $e['name'] = 'This name contains more than one space between words. Please use only one space between words!'; else { foreach(explode(' ', $s) as $k =>$v) { $words[$k] = str_split($v); $len = strlen($v); if($len == 1) { $e['name'] = 'This name contains a word with only one letter. Please use more than one letter for each word!'; break; } elseif($len > 14) { $e['name'] = 'This name contains a word that is too long. Please use no more than 14 letters for each word!'; break; } } if(!isset($e['name'])) { $total=0; foreach($words as $k =>$p) { if(isset($e['name'])) break; $total++; if($total > 3) { $e['name'] = 'This name contains more than 3 words. Please choose another name!'; break; } $len=0; foreach($p as $i =>$j) { $len++; if($i != 0 && ctype_upper($j)) { $e['name'] = 'In names capital letters are only allowed at the beginning of a word!'; break; } elseif($i == $len-1) { $ff=null; for($h=0;$h<strlen($v); $h++) { if(in_array(strtolower($v[$h]), array('a','e','i','o','u')) !== false) { $ff=true; break; } } if(!$ff) { $e['name'] = 'This name contains a word without vowels. Please choose another name!'; break; } } } } if(!isset($e['name'])) { $s = strtolower($s); for($i = 0; $i < strlen($s); $i++) if($s[$i] == $s[($i+1)] && $s[$i] == $s[($i+2)]) { $e['name'] = 'This character name is already used. Please select another one!'; break; } if(!isset($e['name'])) { foreach(array('aa ', 'ee', 'ii', 'oo', 'uu', 'gm','cm', 'aff ', 'god ', 'abc', 'tutor', 'game', 'admin', 'the ') as $v) if($v == substr($s, 0, strlen($v))) { $e['name'] = 'This character name is already used. Please select another one!'; break; } if(!isset($e['name'])) { foreach(array('game', 'customer', 'support', 'fuck', 'haha', 'sux', ' abc', 'suck', 'noob', 'tutor', 'admin', 'account', 'gay', 'password', 'manager') as $v) if(strpos($s, $v) !== false) { $e['name'] = 'This character name is already used. Please select another one!'; break; } if(!isset($e['name'])) { if(!isset($con)) { $con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.'); mysql_select_db($config['server']['sqlDatabase']); } if(mysql_num_rows(mysql_query('SELECT id FROM players WHERE name=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0) $e['name'] = 'This character name is already used. Please select another one!'; } } } } } } if(!isset($_POST['world']) || empty($_POST['world'])) $e['world'] = 'Please select a game world for your character!'; if(!isset($_POST['sex']) || ($_POST['sex'] != 'male' && $_POST['sex'] != 'female')) $e['sex'] = 'Please select the sex for your character!'; if(count($voc) != 0 && (!isset($_POST['vocation']) || !is_numeric($_POST['vocation']) || !isset($voc[$_POST['vocation']]))) $e['vocation'] = 'Please select the vocation for your character!'; $s = isset($_POST['email']) ? $_POST['email'] : ''; if($s == '') $e['email'] = 'Please enter your email address!'; elseif(strlen($s) > 49) $e['email'] = 'Your email address is too long!'; elseif(!filter_var($s, FILTER_VALIDATE_EMAIL)) $e['email'] = 'This email address has an invalid format. Please enter a correct email address!'; else { if(!isset($con)) { $con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.'); mysql_select_db($config['server']['sqlDatabase']); } if(mysql_num_rows(mysql_query('SELECT id FROM accounts WHERE email=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0) $e['email'] = 'This email address is already used. Please enter another email address!'; } $s1 = isset($_POST['password1']) ? $_POST['password1'] : ''; $s2 = isset($_POST['password2']) ? $_POST['password2'] : ''; if(empty($s2)) $e['pass'] = 'Please enter the password again!'; elseif($s1 != $s2) $e['pass'] = 'The two passwords do not match!'; else { $err = array(); if(strlen($s1) < 8 || strlen($s1) > 29) $err[] = 'The password must have at least 8 and less than 30 letters!'; if(!ctype_alnum($s1)) $err[] = 'The password contains invalid letters!'; if(!preg_match('/[a-zA-Z]/', $s1)) $err[] = 'The password must contain at least one letter A-Z or a-z!'; elseif(!preg_match('/[0-9]/', $s1)) $err[] = 'The password must contain at least one letter other than A-Z or a-z!'; if(count($err) != 0) { $e['pass'] = ''; for($i=0; $i < count($err); $i++) $e['pass'] .= ($i == 0 ? '' : '<br/>').$err[$i]; } } if(!isset($_POST['agreeagreement']) || empty($_POST['agreeagreement'])) $e['agreement'] = 'You have to agree to the Tibia Service Agreement in order to create an account!'; if(!isset($_POST['agreerules']) || empty($_POST['agreerules'])) $e['rules'] = 'You have to agree to the Tibia Rules in order to create an account!'; if(!isset($_POST['agreeprivacy']) || empty($_POST['agreeprivacy'])) $e['privacy'] = 'You have to agree to the Tibia Privacy Policy in order to create an account!'; if(count($e) == 0) { $worldid = NULL; foreach($config['site']['worlds'] as $id =>$name) if($worlds[$id] && $name == $_POST['world']) { $worldid = $id; break; } if($worldid === FALSE) $e['world'] = 'Please select a valid game world.'; } if(count($e) != 0) { $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($e as $error) $main_content .= $error.'<br/>'; $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/>'; } else { $random = rand(1, 9999999); $n = $random; $cur = array(); $q = mysql_query('SELECT id FROM accounts'); while ($r = mysql_fetch_array($q, MYSQL_NUM)) $cur[] = $r[0]; while(true) { if(!in_array($n, $cur)) break; $n++; if($n > 9999999) $n = 1; if($n == $random) die('Failed to create account.'); } if(mysql_query("INSERT INTO accounts (id,name,password,email,created) VALUES($n,'".$_POST['accountname']."','".($config['server']['encryptionType'] == 'plain' ? $_POST['password1'] : hash($config['server']['encryptionType'], $_POST['password1']))."','".$_POST['email']."',".time().")") === true) { $sample = (count($voc) == 0 ? 'Rook' : $voc[$_POST['vocation']]).' Sample'; $q = mysql_query("SELECT id,vocation,town_id,experience,level,maglevel,heal th,healthmax,mana,manamax,soul,lookbody,lookfeet,l ookhead,looklegs,lookaddons,cap,save,posx,posy,pos z FROM players WHERE name='$sample' LIMIT 1"); if(mysql_num_rows($q) != 1) die('Missing sample character ('.$sample.')'); $q = mysql_fetch_array($q); mysql_query('INSERT INTO players (name,world_id,account_id,level,vocation,health,he althmax,experience,lookbody,lookfeet,lookhead,look legs,looktype,lookaddons,maglevel,mana,manamax,sou l,town_id,posx,posy,posz,cap,sex,created) VALUES(\''.$_POST['name'].'\','.$worldid.','.$n.','.$q['level'].','.$q['vocation'].','.$q['health'].','.$q['healthmax'].','.$q['experience'].','.$q['lookbody'].','.$q['lookfeet'].','.$q['lookhead'].','.$q['looklegs'].','.($_POST['sex'] == 'female' ? 136 : 128).','.$q['lookaddons'].','.$q['maglevel'].','.$q['mana'].','.$q['manamax'].','.$q['soul'].','.$q['town_id'].','.$q['posx'].','.$q['posy'].','.$q['posz'].','.$q['cap'].','.($_POST['sex'] == 'female' ? 0 : 1).','.time().')'); } else die('Failed to create 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><tr><td class="LabelV">Note:</td><td style="width:100%"><p>Your account and character have been created successfully.</p></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><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><br/><div class="TableContainer"><table class="Table4" 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">Download Client</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><table width="100%" cellpadding=0 cellspacing=0><tr><td style="vertical-align:top"><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%;text-align:center"><tr><td><a href="http://tibiaclient.com/files/tibia'.$version.'.exe" type="application/octet-stream" target="_top"><img style="width:180px;height:180px;border:0px" src="account/download_windows.png"/></a></td><td><a href="http://tibiaclient.com/files/tibia'.$version.'.tar" type="application/octet-stream" target="_top"><img style="width:180px;height:180px;border:0px" src="account/download_linux.png"/><br/></a></td></tr><tr><td valign="top"><a href="http://tibiaclient.com/files/tibia'.$version.'.exe" type="application/octet-stream" target="_top">Windows Tibia Client '.(sprintf('%01.2f', $version / 100)).'</a></td><td valign="top"><a href="http://tibiaclient.com/files/tibia'.$version.'.tar" type="application/octet-stream" target="_top">Linux Tibia Client '.(sprintf('%01.2f', $version / 100)).'</a></td></tr><tr><td colspan="2">[<span class="HelpLink" onClick="window.open(\'http://www.tibia.com/support/content/help.php?subtopic=requirementes\', \'Help\', \'width=380px, height=310px, scrollbars=yes\')"><a>system requirements</a></span>]</td></tr></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><td style="vertical-align:top"><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 style="text-align:center"><img style="width:254px;height:218px;margin:7px" src="account/successful_download.jpg"/></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><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">Disclaimer</td></tr><tr><td>The software and any related documentation is provided "as is" without warranty of any kind. The entire risk arising out of use of the software remains with you. In no event shall CipSoft GmbH be liable for any damages to your computer or loss of data.</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>'; return; } } else $_POST['step'] = ''; $main_content .= '<script type="text/javascript" src="account/jquery.js"></script> <script type="text/javascript" src="account/create_character.js"></script> <script type="text/javascript">var PreselectServerLocation="'.$default.'";var g_FormName="CreateAccountAndCharacter";var g_FieldName="accountname";document.getElementById( "ActiveSubmenuItemIcon_createaccount").style.visib ility = "visible";'; foreach($worlds as $k =>$v) // create dynamic server list $main_content .= 'ServerList.push(new Array(\''.$config['site']['worlds'][$k].'\', \''.$v[0].'\', \''.$v[1].'\'));'; $main_content .= '</script><div style="position:relative;top:0px;left:0px"><form action="index.php?subtopic=createaccount" method=post name="CreateAccountAndCharacter"><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">Create New Account</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="LabelV150"><span id="accountname_label"'.(isset($e['acc']) ? ' class="red"' : '').'>Account Name:</span></td><td><input id="accountname" name="accountname" class="CipAjaxInput" style="width:206px;float:left" value="'.(isset($_POST['accountname']) ? htmlspecialchars(substr($_POST['accountname'], 0, 30)) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_accountname.php\',PostData: \'a_AccountName=\'+this.value,Method: \'POST\'})"/><div id="accountname_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['acc']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id="accountname_errormessage" class="FormFieldError">'.(isset($e['acc']) ? $e['acc'] : '').'</span></td></tr><tr><td class="LabelV150"><span id="email_label"'.(isset($e['email']) ? ' class="red"' : '').'>Email Address:</span></td><td><input id="email" name="email" class="CipAjaxInput" style="width:206px;float:left" value="'.(isset($_POST['email']) ? htmlspecialchars(substr($_POST['email'], 0, 50)) : '').'" autocomplete="off" size="30" maxlength="50" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_email.php\',PostData: \'a_EMail=\'+this.value,Method: \'POST\'})"/><div id="email_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['email']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id="email_errormessage" class="FormFieldError">'.(isset($e['email']) ? $e['email'] : '').'</span></td></tr><tr><td class="LabelV150"><span id="password1_label"'.(isset($e['pass']) ? ' class="red"' : '').'>Password:</span></td><td><input id="password1" type="password" autocomplete="off" name="password1" style="width:206px;float:left" value="'.(isset($_POST['password1']) ? htmlspecialchars(substr($_POST['password1'], 0, 30)) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_password.php\',PostData: \'a_Password1=\'+getElementById(\'password1\').val ue+\'&a_Password2=\'+getElementById(\'password2\') .value,Method: \'POST\'})"/><div id="password1_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['pass']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td class="LabelV150"><span id="password2_label"'.(isset($e['pass']) ? ' class="red"' : '').'>Password Again:</span></td><td><input id="password2" type="password" name="password2" style="width:206px;float:left" value="'.(isset($_POST['password2']) ? htmlspecialchars(substr($_POST['password2'], 0, 30)) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_password.php\',PostData: \'a_Password1=\'+getElementById(\'password1\').val ue+\'&a_Password2=\'+getElementById(\'password2\') .value,Method: \'POST\'})"/><div id="password2_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['pass']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id="password_errormessage" class="FormFieldError">'.(isset($e['pass']) ? $e['pass'] : '').'</span></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="LabelV150"><span id="charactername_label"'.(isset($e['name']) ? ' class="red"' : '').'>Character Name:</span></td><td><input id="charactername" name="name" class="CipAjaxInput" style="width:206px;float:left;position:relative" style="float:left" value="'.(isset($_POST['name']) ? htmlspecialchars(str_replace('+', ' ', substr(trim($_POST['name']), 0, 30))) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_charactername.php\',PostData: \'a_CharacterName=\'+this.value,Method: \'POST\'})"/><div id="charactername_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['name']) ? 'n' : '').'ok.gif)"></div>'; if($suggestname) $main_content .= '<br/><small>[<a class="CipAjaxLink" href="https://secure.tibia.com/account/content/ajax_suggestname.php" ajaxcip="true" ajaxcip_datatype="Container">suggest name</a>]</small>'; $main_content .= '</td></tr><tr><td></td><td><span id="charactername_errormessage" class="FormFieldError">'.(isset($e['name']) ? $e['name'] : '').'</span></td></tr><tr><td class="LabelV150"><span'.(isset($e['sex']) ? ' class="red"' : '').'>Sex:</span></td><td><table width="100%"><tr><td><span style="margin-right:75px" class="OptionContainer"><label for="sex_male"><span class="OptionContainer"><input id="sex_male" type="radio" name="sex" value="male"'.(($_POST['sex'] == 'male' || $_POST['step'] != 'docreate') ? ' checked="checked"' : '').'/><label for="sex_male">male</label></span></label></span><span class="OptionContainer"><label for="sex_female"><span class="OptionContainer"><input id="sex_female" type="radio" name="sex" value="female"'.($_POST['sex'] == 'female' ? ' checked="checked"' : '').'/><label for="sex_female">female</label></span></label></span></td><td></td></tr></table></td></tr>'.(isset($e['sex']) ? '<tr><td></td><td><span class="FormFieldError">'.$e['sex'].'</span></td></tr>' : ''); if(count($voc) != 0) { $main_content .= '<tr><td class="LabelV150"><span'.(isset($e['vocation']) ? ' class="red"' : '').'>Vocation:</span></td><td><table width="100%"><tr><td>'; foreach($voc as $k => $v) $main_content .= '<span style="margin-right:15px" class="OptionContainer"><label for="vocation_'.$k.'"> <span class="OptionContainer"><input id="vocation_'.$k.'" type="radio" name="vocation" value="'.$k.'"'.($_POST['vocation'] == $k ? ' checked="checked"' : '').'/><label for="vocation_'.$k.'">'.$v.'</label></span></label></span>'; $main_content .= '</td><td></td></tr></table></td></tr>'.(isset($e['vocation']) ? '<tr><td></td><td><span class="FormFieldError">'.$e['vocation'].'</span></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><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%">'; if(count($location)>1) { // show server location filter $main_content .= '<tr id="filterbox_location"><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Location:</span></td><td><table width="100%"><tr><td width="33%" valign="top"><script>CreateFilterOption(\'server_l ocation\', \'all\', \'all\')</script>&nbsp;&nbsp;</td>'; $i=0; foreach($location as $k =>$v) { $i++; $main_content .= '<td '.($i == count($location) ? '' : 'width="33%" ').'valign="top"><script>CreateFilterOption(\'serv er_location\', \''.$k.'\', \''.$v.'\')</script>&nbsp;&nbsp;</td>'; } $main_content .= '</tr></table></td></tr>'; } $main_content .= '<tr id="filterbox_pvp"><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Type:</span></td><td><div>'; $optional=true; $open=true; $hardcore=true; foreach($worlds as $k =>$v) { // remove selection if there's no valid worlds if($optional && $v[1] == 'optional') unset($optional); elseif($open && $v[1] == 'open') unset($open); elseif($hardcore && $v[1] == 'hardcore') unset($hardcore); elseif(!$optional && !$open && !$hardcore) break; } $n = 0; foreach(array($optional, $open, $hardcore) as $k) if(!$k) $n++; $main_content .= '<table width="'.round(33.33 * $n).'%"><tr>'; if(!$optional) $main_content .= '<td width="'.(100 / $n).'%" align="center" valign="top"><b><script>CreateFilterOption(\'serve r_pvp_type\', \'optional\', \'Optional PvP\')</script></b>&nbsp;&nbsp;Only if both sides agree, characters can be fought<br/><br/></td>'; if(!$open) $main_content .= '<td width="'.(100 / $n).'%" align="center" valign="top"><b><script>CreateFilterOption(\'serve r_pvp_type\', \'open\', \'Open PvP\')</script></b>&nbsp;&nbsp;Killing other characters is possible, but restricted<br/><br/></td>'; if(!$hardcore) $main_content .= '<td align="center" valign="top"><b><script>CreateFilterOption(\'serve r_pvp_type\', \'hardcore\', \'Hardcore PvP\')</script></b>&nbsp;&nbsp;Killing other characters is not restricted at all<br/><br/></td>'; $main_content .= '</tr></table></div></td></tr><tr><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Name:</span></td><td><div id="js_world_box" style="display:none"><table width="100%"><tr id="world_list_tr" style="text-align:left"></tr></table><span onClick="ToggleVisibility(\'js_world_box\', \'suggested_world_box\'); UpdateServerList(); "><small>[<a style="cursorointer">suggest game world</a>]</small></span></div><div id="suggested_world_box">Suggested world: <span id="suggested_world_div"></span><br/><span onClick="ToggleVisibility(\'suggested_world_box\', \'js_world_box\'); "><small>[<a style="cursorointer">change game world</a></span>]</small></div></td></tr><tr><td><table id="js_world_box" width="100%"><tr id="world_list_tr"></tr></table><table id="plain_world_box" width="100%"><tr><td>'; foreach($worlds as $k =>$v) $main_content .= '<input id="server_static_'.$config['site']['worlds'][$k].'" type="radio" name="world" value="'.$config['site']['worlds'][$k].'"'.($config['site']['worlds'][$k] == $_POST['world'] ? ' checked="checked"' : '').'><label for="server_static_'.$config['site']['worlds'][$k].'">'.$config['site']['worlds'][$k].'</label><br/>'; $main_content .= '</td></tr></table></td></tr>'.(isset($e['world']) ? '<tr><td></td><td><span class="FormFieldError">'.$e['world'].'</span></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><b>Please select all of the following check boxes:</b></td></tr><tr><td><input type="checkbox" name="agreeagreement" value="true" onClick="if(this.checked == true) { document.getElementById(\'agreeagreement_errormess age\').innerHTML = \'\';} else { document.getElementById(\'agreeagreement_errormess age\').innerHTML = \'You have to agree to the Tibia Service Agreement in order to create an account!\';}"'.($_POST['step'] == 'docreate' && !isset($e['agreement']) ? ' checked="checked"' : '').'/>I agree to the <a href="/index.php?subtopic=legaldocuments&page=agreement" target="_blank">Tibia Service Agreement</a>.</td></tr><tr><td><span id="agreeagreement_errormessage" class="FormFieldError">'.(isset($e['agreement']) ? $e['agreement'] : '').'</span></td></tr><tr><td><input type="checkbox" name="agreerules" value="true" onClick="if(this.checked == true) { document.getElementById(\'agreerules_errormessage\ ').innerHTML = \'\';} else { document.getElementById(\'agreerules_errormessage\ ').innerHTML = \'You have to agree to the Tibia Rules in order to create an account!\';}"'.($_POST['step'] == 'docreate' && !isset($e['rules']) ? ' checked="checked"' : '').'/>I agree to the <a href="/index.php?subtopic=legaldocuments&page=rules" target="_blank">Tibia Rules</a>.</td></tr><tr><td><span id="agreerules_errormessage" class="FormFieldError">'.(isset($e['rules']) ? $e['rules'] : '').'</span></td></tr><tr><td><input type="checkbox" name="agreeprivacy" value="true" onClick="if(this.checked == true) { document.getElementById(\'agreeprivacy_errormessag e\').innerHTML = \'\';} else { document.getElementById(\'agreeprivacy_errormessag e\').innerHTML = \'You have to agree to the Tibia Privacy Policy in order to create an account!\';}"'.($_POST['step'] == 'docreate' && !isset($e['privacy']) ? ' checked="checked"' : '').'/>I agree to the <a href="/index.php?subtopic=legaldocuments&page=privacy" target="_blank">Tibia Privacy Policy</a>.</td></tr><tr><td><span id="agreeprivacy_errormessage" class="FormFieldError">'.(isset($e['privacy']) ? $e['privacy'] : '').'</span></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><script type="text/javascript">PreselectWorld="'; if(isset($_POST['world']) && !empty($_POST['world'])) foreach($config['site']['worlds'] as $id =>$name) if($worlds[$id] && $name == $_POST['world']) { $main_content .= $name; break; } $main_content .= '";InitializeCharacterCreator(PreselectServerLocat ion, \''.(!$optional ? 'optional' : (!$open ? 'open' : 'hardcore')).'\')</script></table></div></table></div></td></tr><br/></div><center><table border="0" cellspacing="0" cellpadding="0"><tr><td style="border:0px"><input type="hidden" name=step value=docreate><input type="hidden" name=noframe value=""><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></center><script type="text/javascript" language="javascript">document.forms[\'CreateAccountAndCharacter\'].elements[\'accountname\'].focus();</script><script type="text/javascript" src="account/generic.
  18. Está interno porque está utilizando um IP interno. Provavelmente um "127.0.0.1" ou algum que tenha início com 192.168... Ainda está na busca de resposta
  19. Opa, boa noite. Velho, meu server é Inteiro com as funções do World of Warcraft e do Runescape. Logo, sim, é possível. Tem experiência com OT servers?
  20. O "debug" não é por causa do Script, mas por causa dos atributos dos itens. Para corrigir, abra seu item editor de ".otb" e dê um "reload" nos atributos, salve e reinicie o server. Se não corrigir, ainda dentro do ITem Editor, crie um novo Item ("create item") e insira a "cid" dele. Se ainda assim não funcionar volte aqui.
  21. Xagah postou uma resposta no tópico em Suporte Tibia OTServer
    Duas perguntas: 1 - O que é o item de id 6500? 2 - Vc está o "Tibia Classic Control"? Isto porque a sua função afirma que quando vc utiliza este item (em qualquer lugar) ele Summona o monstro "Hell" no local onde vc está. Assim, a primeira solução, ao meu ver, é saber que item é este que, mesmo sendo removido ao fim da função, pode ser reutilizado. Se não for isto, dá pra inserir um "storage", o que seria útil para "players", mas não se for para GOD.
  22. Opa, boa noite. Então, conforme comentei estes dias, o Tibia Client até a versão 10 (mais ou menos) foi criado utilizando formatação de 4 bits. Por isto, a quantidade máxima de sprites é de 65525. O modo de solucionar é utilizar uma versão 8 bits do Tibia, ou seja, vc teria que atualizar seu Server. Isto porque das versões acima da 10 foi utilizada formatação 8 bits, aí cabem muitos mais sprites. Sério, não tem como. Perdi semanas pra compreender o funcionamento do sistema e aceitar. Assim, não se trata de um "bug", mas de uma limitação de informação basilar.
  23. O problema é quando pisa no "tile" ou quando chega perto de algum lugar?
  24. Xagah postou uma resposta no tópico em Suporte Tibia OTServer
    Aparece algum tipo de erro ou simplesmente não entra? As vezes o IP que inserriu no config.lua
  25. Xagah postou uma resposta no tópico em Suporte Tibia OTServer
    @wevertonvrb Desculpe, mas vc está equivocado. Quando há a função math.random ele varia de uma maneira aleatória de 0 a 10 (uma vez que no caso o número máximo é 10). Assim, se colocar 100 a chance vai ficar menor ainda. Pra retirar a chance onde consta: local chances = math.random(10) Mude para: local chances = 1

Informação Importante

Confirmação de Termo