Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 07/25/11 em todas áreas
-
Exp Ring (Anel De Experiencia)
GuuhMaster e um outro reagiu a gonorreiaswat por um tópico no fórum
Tópico atualizado. Como o nome diz, é um anél que aumenta a experiência de sua caçada' (configurável) \o/ Vamos lá... 1º Passo 2º Passo 3º Passo Aqui, temos duas opções... O Exp Ring Tradicional é para server com Experiência fixa, ou seja, a EXP é sempre a mesma.. Já o Exp Ring por Stages é para server que a Experiência varia de acordo com o level do player. Clique no Spoiler referente ao seu server. EXP RING Tradicional: EXP RING por Stages: Para aprender configurar a rate do Script clique no spoiler abaixo: Se quer um Anel de Experiencia Recarregável (como soft boots), clique no Spoiler abaixo. É, acho que é isso... Qualquer coisa postem aqui para resolvermos juntos. Eu editei o Script, criei o NPC e criei o Tutorial. Créditos pelo tutorial: AdrianoSwaTT Créditos pelo Exp Ring Stages: Vodkart Créditos pelo Script: OTLand Abraços, espero que seja útil'2 pontos -
[8.54] Mapa Pokemon Betinhowz666
Daniel S e um outro reagiu a betinhowz666 por um tópico no fórum
Hello Como prometido irei disponibilizar agora o download do mapa pokemon que estive trabalhando. Coloquei as houses mais não o respaw. Apresentações ? Vamos lá para uma prévia das cidades. As hunt's vocês terão que baixar para conferir CITY 1 CITY 2 CITY 3 CITY 4 Me ajudem a atingir 200 REP +, Que farei este mapa ficar muito melhor do que está. Antes era 150 REP+, Mas por conta de alguns moderadores me tirarem REP + dizendo que eu tinha feito outra conta para me dar REP + agora será 200. Segue o download do mapa e o que precisa para que você abra-o MAPA BETINHOWZ666 SPR POR PIRADECO Créditos: PeeWee - por fazer parte do mapa Piradeco - pelas .spr e .dat betinhowz666 - por estar editando. (EU)2 pontos -
Créditos Titulo: Templos e Depots 1 - Templos Primeiramente bom dia a todos, templos, afinal, o que são e para que servem. Creditos: tibia wiki Templos - Como fazer? (IDS NO FINAL DO TOPICO) Como eu digo em todos os tutoriais antes de começar um mapa temos que construir a estrutura dele, o chão, vamos imaginar o local em que vamos utilizar para fazer o nosso templo, veja a seguir: Perceba que eu não usei o auto-border, pois ele da bug no mapa. Após ter feito o chão onde irá ficar o templo e em volta vamos fazer as borders e as paredes, grounds no mapa veja veja que eu infeitei o templo com alguns pilares, uns postes fora e aquele tile cinza la fora pode deixar sem mexer nele por inquanto, vamos para o prox. passo. Templos - Detalhes Os detalhes são essenciais em qualquer mapa, dão vida, neste caso irei adicionar umas casas ao lado do templo, um NPC no templo, e colocar uma grama verdinha nos tiles cinzas com uma fonte, veja: Agora vem a parte final, iremos adicionar poucas arvores, uns arbustos, grass tufts, flores, pequenas rachaduras no chão, camas nas casas, poço, e um pouco de vegetação ao lado das casas. e agora adicionar os telhados, pode ser de qualquer tipo, de preferencia não muito simples, por que o templo tem que ser bonito, vamos fazer também o segundo andar, onde poderemos colocar algum NPc que vende bless, se você quiser que venda itens ou compra, e um portal para quem quiser virar morador neste templo (quando morrer volta ali) resultado final: 2 - Depots Depots, o que são? Creditos: Tibiawiki Depots - Como fazer Os depots (DPs) ficam no centro das cidades (geralmente) neles pode conter npcs (bank, parcels, runes e outros que você colocar) e portais para hunts, se você quiser, você pode também fazer de seu templo um depot como no mapa BAIAK, para fazer um depot é bom deixar 3 andares, em todos cheios de espaços para players guardarem seus itens, dps tem que ter espaços, pois sempre tem bastante gente neles, vou fazer um depot simples, com 3 dps para guardar itens, confira o primeiro andar (bank e npc de addons). Agora o segundo andar onde vou colocar uns dps (pouco espaço) e um local para quem quiser conversar, e o telhado do primeiro andar (não faça depots quadrados demais), veja. Depots - Detalhes Detalhes, parte importante, em seu templo poderá adicionar, se quiser, um balde de lixo, parcels, itens e frascos de potions (e algumas pedrinhas) jogados em cima do telhado, janelas, tochas de fogo para iluminar, não coloque dentro do depot: agua, vegetação, monstros. Perceba a vegetação em volta do templo, arbustos algumas arvores, uns baldes de agua e como sempre uns grass tufts, adicione o que achar bonito mas não exagere. veja. IDS: Bom é isso, espero que tenham aprendido Gostou? REP+2 pontos
-
Stackpos
sfmlarl e um outro reagiu a Demonbholder por um tópico no fórum
Faaaaala galerinha! A pedido do usuário PsyMcKenzie estou aqui para postar este tutorial. Espero que seja útil para todos que tem alguma dúvida quanto ao Stackpos. Eu sinceramente não domino completamente a magia dos stackpos, mas espero poder tirar algumas dúvidas de quem sabe e ensinar quem ainda não sabe. Vamos logo ao tutorial: Stackpos • Introdução Stackpos é um dos index da tabela que guarda posições. Toda posição é uma tabela, exemplo: {x=160, y=50, z=7}, mas o que pouca gente sabe, é que o stackpos também faz parte desta tabela. Todos sabem que em uma unica posição podem haver vários itens, formando uma pilha de itens, portanto, para diferenciar a posição de um item da pilha para o outro foi criado o stackpos, que é o número que diz em qual lugar da pilha está o item. • Descobrindo o Stackpos O stackpos segue um padrão, ou seja, uma ordem. Vou mostrar primeiramente os stackpos especiais: 0 - O stackpos 0 de uma posição é sempre o tile, ou seja, o chão. 253 - Este número refere-se ao stackpos das criaturas que estão na posição, sejam monstros, players ou npcs. 255 - O item mais alto de um pilha tem o stackpos 255, além do stackpos normal dela. Agora vou mostrar como descobrir o stackpos de um item apenas olhando para a pilha. Considere a seguinte pilha: Primeiro vamos contar quantos itens tem a pilha. Neste caso, em um total de 4 itens (tile, table, chair, coin). Tile sempre terá o stackpos 0. Agora os outros recebem o stackpos contrário da ordem deles acima do chão. Coin receberá o stackpos 1 e 255. Chair receberá o stackpos 2. Table receberá o stackpos 3. Simples não? É sempre ao contrário da ordem deles acima do chão. Vamos a mais um exemplo para ficar bem claro, considere a seguinte pilha: Tile receberá o stackpos 0. Ring receberá o stackpos 1 e 255. Hammer receberá o stackpos 2. Coin receberá o stackpos 3. Chair receberá o stackpos 4. Table receberá o stackpos 5. • Montando uma Tabela com Stackpos Eu havia tido anteriormente que toda posição é uma tabela. Para montarmos uma posição com o index stackpos, simplesmente adicionamos ele no final, exemplo: {x=160, y=50, z=7, stackpos=253} Simples, não é mesmo? • Funções Auxiliares Sempre que preciso descobrir o stackpos através de um script, uso as seguintes funções: Pegar o stackpos pela posição e id do item. function getItemStackpos(position, id) if getTileItemById(position, id).itemid == 0 then return nil end for i = 0, 255 do local pos = getThingFromPos({x=position.x, y=position.y, z=position.z, stackpos=i}) if pos.itemid == id then return i end end end Para pegar o stackpos pelo uid do item, usamos a função getThingPos(uid), a qual já retorna uma tabela com o stackpos do item. É isso galera, qualquer dúvida só perguntar. Até mais.2 pontos -
[Vídeo] Virando Morador De [Yalahar]
Henrique Moura e um outro reagiu a fsg por um tópico no fórum
Oláa pessoal, este vídeo é o meu segundo vídeo tutorial de como se Naturalizar Morador de Yalahar, então vai ai mais um tutorial... http://www.youtube.com/watch?v=3W-75UaeLxs Cidade: Yalahar Tutorial: Se Naturalizando Morador Onde está circulado de preto é onde que você tem que ir! (Temple) Espero que gostem.2 pontos -
[Tutorial]Criando Website Com Xampp
onark123 reagiu a ultimate1996 por um tópico no fórum
Opa, fala xTibia '-'.. Vi que muitas pessoas estavam querendo fazer um site para seu servidor e não sabem como fazer... Então resolvi postar um tutorial completíssimo aqui.. O que vamos precisar? -&gt; Xampp ( 1.6.5 ) - Download - http://www.oldapps.com/xampp.php?old_xampp=38 -&gt; Gesior Acc. Maker ( 0.3.8 ) - Download - http://www.mediafire.com/?u0bao9bcp9ua5vr -&gt; Um servidor de sua escolha.Pode ser qualquer um desde que tenha o arquivo .mysql. PS: NÃO RESPONDO A QUEM TIVER O ERRO DO INSTALL.PHP . ESSE ERRO É CAUSADO POR CAUSA DA UTILIZAÇÃO DE OUTRA VERSÃO DO XAMPP E DO GESIOR, POR ESSE MOTIVO EU COLOQUEI O XAMPP 1.6.5 QUE ESTÁ FUNCIONANDO! NÃO USE A VERSÃO MAIS RECENTE DO XAMPP! Vamos ao tutorial! Espere... vai criar um site sem saber como funciona? O site de seu servidor será feito em PHP. E o que vai ter nele? Os jogadores de seu servidor poderão criar suas contas, ver notícias do servidor, ver outros jogadores, criar guildas, e muito mais dependendo de como você manusear seu website. OBS1 : É altamente recomendável que escolha uma forte senha para sua conta de Admin. Pois se seu servidor tiver sucesso, certamente "hackers" tentarão atacar sua database e seu servidor. OBS 2: Seu site ficará online apenas quando o Xampp estiver ativo com o Apache e MySQL sendo executados, ou seja, apenas quando você estiver no computador. Para seu site ficar online 24 horas, você precisaria de uma hospedagem para php. Agora que já temos tudo, vamos começar !! 1°) Abra o instalador do XamPP, e instale-o. 2°) Selecione aonde a pasta do XamPP ficará salva. (de preferência algum lugar de fácil acesso) 3°) Deixe apenas a primeira e a segunda opções marcadas e clique em Next. 4°) Aguarde o fim da instação e provavelmente uma tela preta irá aparecer. 5°) Após o fim da instalação, clique em Yes para abrir o XamPP e dê Start em Apache e MySQL. 6°) Clique em Admin do Apache. Você será redirecionado para a sua localhost (endereço que apenas você entra). Clique em Português (Brasil). 7°) No canto esquerdo do site , clique na Aba Segurança. Vá descendo até achar " http://localhost/sec...mppsecurity.php " . Clique. OBS : Se você não conseguiu abrir a página de Segurança, vá na pasta do seu Xampp/security/htdocs/lang e renomeie o arquivo pt para pt_br . 8°) Após ter clicado, deverá ser redirecionado para uma página parecida com essa: OBS :Faça o numero 1 e depois clique em Alterar Senha. Depois Faça o numero 3 e clique em Tornar Seguro o Diretorio do XamPP. 9°) Após ter feito isso, dê Stop no MySql (no XamPP) e dê Start denovo. Agora vá em seu navegador e digite : localhost/phpmyadmin 10°) Digite a senha que foi criada há pouco tempo que eu disse que era para a criação do banco de dados. 11°) Minimize seu navegador e vá na pasta de seu servidor, e abra o arquivo config.lua. Tire todos os espaços iniciais e as "frases" iniciadas com o sinal de " - " . Veja : 12°) Não feche o config.lua ainda, vá descendo até achar informações sobre a database de seu servidor ... algo parecido com isto : sqlType = "mysql" &lt;- se estiver em sqlite, mude para mysql sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "123456" &lt; - coloque a senha que foi criada para entrar no banco de dados. sqlDatabase = "otserv" &lt; - coloque o nome de sua database , coloque " otserv " para facilitar. sqlFile = "otserv.s3db" &lt; - de prefencia, coloque " otserv.s3db " ( o mesmo nome de sua database ) sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 encryptionType = "plain" 13°) Salve e feche o config.lua. Agora vamos voltar a pagina minimizada (localhost/phpmyadmin) : 14°) Clique na aba Importar na parte superior da tela. 15°) Agora Selecione o Arquivo para Importar. Selecione o arquivo terminado em .sql que fica na pasta de seu servidor e clique em Executar no canto inferior direito. 16°) Pronto !! A database de seu servidor foi criada. Agora vamos instalar os arquivos do site. 17°) Abra a pasta do XamPP/htdocs. Apague tudo que tem dentro de htdocs e cole tudo o que veio dentro da pasta do Gesior ACC. 18°) Abra o XamPP novamente e clique em Admin do Apache. 19°) Uma nova pagina foi aberta, agora você terá que fazer mais 5 passos rápidos. 19.1) Set Server Path Coloque o diretório da pasta de seu servidor. Ex : C:\Users\user\Desktop\Tibia Server Clique em Set Server Path. 19.2) Check database connection 19.3) Add tables and columns to DB 19.4) Agora desça e clique no botão. 19.5) Set Admin Account Coloque uma senha SEGURA pois esse será o password do administrador do site e servidor. 19.6) Load Monsters from OTS Carregue os monstros do servidor. 19.7) Load Spells from OTS Carregue as magias do servidor. 20°) Agora você deverá ser redirecionado para seu site, e você pode acessá-lo pelo localhost ou pelo ip do seu servidor. Para acessar sua database, digite em seu navegador : localhost/phpmyadmin Pronto !! Seu site foi criado :] Colocando seu site online pelo 8090 e Desbloqueando a porta 8090 : 1° - Acesse a pasta do XamPP/apache/conf e abra o arquivo httpd com o bloco de notas. Procure por : Listen 80 E por : ServerName localhost:80 Substitua todos os 80 por 8090. 2° - Dentro da pasta conf, abra a pasta extra, e em seguida abra httpd-ssl e procure por : Listen 443 E por: <virtualhost _default_:443=""> Substitua esses 443 por 4499. Agora vá em seu firewall e Adicione a Porta 8090 e Porta 80 e marca a opção TCP. Se usar Roteador, desbloqueie as portas também. Site por porta 80 localhost Site por porta 8090 localhost:8090 Colocando seu site online pela porta 80 (A porta 80 seria o ip normal de seu servidor. Exemplo : teste.servegame.com. ) A porta 80 não necessita de nada no final. Para que as pessoas entrem pela porta 80, não necessita mudar nada na pasta do Xampp. Pois ela ja está configurada para entrarem. Só é necessário desbloquear a porta 80 no seu modem ou roteador. E desbloquear a porta 80 pelo Firewall também. VIDEO AULA - FEITA EM 2/4/2012 (DESCULPA , AS VEZES TENHO QUE PENSAR QUANDO FALO EM PORTUGUES, PORQUE NAO MORO NO BRASIL)!! Créditos : 100% por Mim :] Não mexo mais com Tibia, mas ainda respondo a qualquer dúvida que eu esteja capacitado a responder (:1 ponto -
[Gesior Acc] Guild War System Com Escudos
guiduarteee reagiu a walefxavier por um tópico no fórum
Vou postar o tão famoso Guild War System Com Escudos. Vou começar pelo site : Vá em Xampp/Htdocs e crie e um arquivo chamado wars.php,dentro add isto: <?php $main_content = "<h1 align=\"center\">Guild Wars</h1> <script type=\"text/javascript\"><!-- function show_hide(flip) { var tmp = document.getElementById(flip); if(tmp) tmp.style.display = tmp.style.display == 'none' ? '' : 'none'; } --></script> <a onclick=\"show_hide('information'); return false;\" style=\"cursor: pointer;\"><h1><center>» Click to se the commands «<center></h1></a> <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\" id=\"information\" style=\"display: none;\";> <tr align=\"center\"><b>You must send this commands in GUILD CHAT.</tr> <tr style=\"background: #512e0b;\"><td align=\"center\" class=\"white\"><b>Command</b></td><td colspan=\"2\" align=\"center\" class=\"white\"><b>Description</b></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war invite, guild name, fraglimit</b></td><td>Sends an invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150<BR></font><B>(Invite a guild to war with 150 frags count.)</B></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/war invite, guild name, fraglimit, money</b></td><td>Send the invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150, 10000</font><br><B> (Invite a guild to war with 150 frags count and payment of 10000 gold coins <- you need donate to guild to use it.)<B></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war accept, guild name</b></td><td>Accepts the invitation to start a war. Example: <font color=red><BR>/war accept, Chickens</font><BR><B>(Accept the war against guild \"Chickens\".)</b></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/war reject, guild name</b></td><td>Rejects the invitation to start a war. Example: <font color=red><BR>/war reject, Chickens</font><BR><B>(Reject a invitation to war from Chickens.)</B></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war cancel, guild name</b></td><td>Cancels the invitation. Example: <font color=red><BR>/war cancel, Chickens</font><br><b>(Cancel my guild invitation to war with Chickens.)</b></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/balance</b></td><td>See the guild balance - balance of money.</td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/balance donate value</b></td><td>Deposits money on the guild's bank account. All players can donate. Example: <font color=red><BR>/balance donate 100000 </font><BR><B>(You will donate 100k to your guild balance.)</B></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/balance pick value</b></td><td>Withdraws money from the guild's bank account. Can be used only by the guild leader. Example: <font color=red><BR>/balance pick 100000 </font><BR><B>(You will withdraw 100k from your guild balance.)</B></td></tr> </table> <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\"> <tr> <td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Aggressor</b></td> <td style=\"background: #512e0b\" class=\"white\"><b>Information</b></td> <td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Enemy</b></td> </tr><tr style=\"background: #F1E0C6;\">"; $count = 0; foreach($SQL->query('SELECT * FROM `guild_wars` WHERE `status` IN (1,4) OR ((`end` >= (UNIX_TIMESTAMP() - 604800) OR `end` = 0) AND `status` IN (0,5));') as $war) { $a = $ots->createObject('Guild'); $a->load($war['guild_id']); if(!$a->isLoaded()) continue; $e = $ots->createObject('Guild'); $e->load($war['enemy_id']); if(!$e->isLoaded()) continue; $alogo = $a->getCustomField('logo_gfx_name'); if(empty($alogo) || !file_exists('guilds/' . $alogo)) $alogo = 'default_logo.gif'; $elogo = $e->getCustomField('logo_gfx_name'); if(empty($elogo) || !file_exists('guilds/' . $elogo)) $elogo = 'default_logo.gif'; $count++; $main_content .= "<tr style=\"background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\"> <td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$a->getId()."\"><img src=\"guilds/".$alogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$a->getName()."</a></td> <td align=\"center\">"; switch($war['status']) { case 0: { $main_content .= "<b>Pending acceptation</b><br />Invited on " . date("M d Y, H:i:s", $war['begin']) . " for " . ($war['end'] > 0 ? (($war['end'] - $war['begin']) / 86400) : "unspecified") . " days. The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment.")."<br />Will expire in three days."; break; } case 3: { $main_content .= "<s>Canceled invitation</s><br />Sent invite on " . date("M d Y, H:i:s", $war['begin']) . ", canceled on " . date("M d Y, H:i:s", $war['end']) . "."; break; } case 2: { $main_content .= "Rejected invitation<br />Invited on " . date("M d Y, H:i:s", $war['begin']) . ", rejected on " . date("M d Y, H:i:s", $war['end']) . "."; break; } case 1: { $main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred; font-weight: bold;\">On a brutal war</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ($war['end'] > 0 ? ", will end up at " . date("M d Y, H:i:s", $war['end']) : "") . ".<br />The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment."); break; } case 4: { $main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred;\">Pending end</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", signed armstice on " . date("M d Y, H:i:s", $war['end']) . ".<br />Will expire after reaching " . $war['frags'] . " frags. ".($war['payment'] > 0 ? "The payment is set to " . $war['payment'] . " bronze coins." : "There's no payment set."); break; } case 5: { $main_content .= "<i>Ended</i><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", ended on " . date("M d Y, H:i:s", $war['end']) . ". Frag statistics: <span style=\"color: red;\">" . $war['guild_kills'] . "</span> to <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span>."; break; } default: { $main_content .= "Unknown, please contact with gamemaster."; break; } } $main_content .= "<br /><br /><a onclick=\"show_hide('war-details:" . $war['id'] . "'); return false;\" style=\"cursor: pointer;\">» Details «</a></td> <td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$e->getId()."\"><img src=\"guilds/".$elogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$e->getName()."</a></td> </tr> <tr id=\"war-details:" . $war['id'] . "\" style=\"display: none; background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\"> <td colspan=\"3\">"; if(in_array($war['status'], array(1,4,5))) { $deaths = $SQL->query('SELECT `pd`.`id`, `pd`.`date`, `gk`.`guild_id` AS `enemy`, `p`.`name`, `pd`.`level` FROM `guild_kills` gk LEFT JOIN `player_deaths` pd ON `gk`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `gk`.`war_id` = ' . $war['id'] . ' AND `p`.`deleted` = 0 ORDER BY `pd`.`date` DESC')->fetchAll(); if(!empty($deaths)) { foreach($deaths as $death) { $killers = $SQL->query('SELECT `p`.`name` AS `player_name`, `p`.`deleted` AS `player_exists`, `k`.`war` AS `is_war` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `p`.`id` = `pk`.`player_id` WHERE `k`.`death_id` = ' . $death['id'] . ' ORDER BY `k`.`final_hit` DESC, `k`.`id` ASC')->fetchAll(); $count = count($killers); $i = 0; $others = false; $main_content .= date("j M Y, H:i", $death['date']) . " <span style=\"font-weight: bold; color: " . ($death['enemy'] == $war['guild_id'] ? "red" : "lime") . ";\">+</span> <a href=\"index.php?subtopic=characters&name=" . urlencode($death['name']) . "\"><b>".$death['name']."</b></a> "; foreach($killers as $killer) { $i++; if($killer['is_war'] != 0) { if($i == 1) $main_content .= "killed at level <b>".$death['level']."</b> by "; else if($i == $count && $others == false) $main_content .= " and by "; else $main_content .= ", "; if($killer['player_exists'] == 0) $main_content .= "<a href=\"index.php?subtopic=characters&name=".urlencode($killer['player_name'])."\">"; $main_content .= $killer['player_name']; if($killer['player_exists'] == 0) $main_content .= "</a>"; } else $others = true; if($i == $count) { if($others == true) $main_content .= " and few others"; $main_content .= ".<br />"; } } } } else $main_content .= "<center>There were no frags on this war so far.</center>"; } else $main_content .= "<center>This war did not began yet.</center>"; $main_content .= "</td> </tr>"; } if($count == 0) $main_content .= "<tr style=\"background: ".$config['site']['darkborder'].";\"> <td colspan=\"3\">Currently there are no active wars.</td> </tr>"; $main_content .= "</table>"; $main_content .= '<div align="right"><small><b>Customized by: <a href="http://www.xtibia.com/forum/user/240289-walef-xavier">Walef Xavier</a></b></small></div><br />'; ?> Agora vá em Xampp/Htdocs/index.php e add o seguinte: case "wars"; $subtopic = "wars"; $topic = "Guild Wars"; include("wars.php"); break; Agora para finalizar a parte do site vá em Xampp/Htdocs/Layout/Tibiacom/layout.php e add o seguinte: <a href='?subtopic=wars'> <div id='submenu_wars' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_polls' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>Guild Wars</font></div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Agora vamos para seu Ot: Va em GlobalEvents/scripts/start.lua e add o seguinte: db.executeQuery("DELETE FROM `guild_wars` WHERE `status` = 0 AND `begin` < " .. (os.time() - 2 * 86400) .. ";") db.executeQuery("UPDATE `guild_wars` SET `status` = 5, `end` = " .. os.time() .. " WHERE `status` = 1 AND `end` > 0 AND `end` < " .. os.time() .. ";") Agora vá em Lib e crie um arquivo .lua chamado 101-war,dentro add o seguinte: WAR_GUILD = 0 WAR_ENEMY = 1 Agora para finalizar vamos colocar os comandos em Talkactions ! Vá em Talkactions/scripts e crie dois arquivos chamados war.lua e balance.lua,dentro add o seguinte: War.lua function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0) return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return true end local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free() end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild if(t[1] == "cancel") then query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy end tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp:getID() == -1) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end if(t[1] == "accept") then local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment") _tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. tmp:getDataInt("id") if(t[1] == "accept") then doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD) doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY) end tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return true end if(t[1] == "invite") then local str = "" tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp:getID() ~= -1) then if(tmp:getDataInt("status") == 0) then if(tmp:getDataInt("guild_id") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end tmp:free() end if(str ~= "") then doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0) return true end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.max(100000, math.min(1000000000, payment)) tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.query("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return true end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status) if(tmp:getID() ~= -1) then local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id") tmp:free() doGuildRemoveEnemy(guild, enemy) doGuildRemoveEnemy(enemy, guild) db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end if(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1") if(tmp:getID() ~= -1) then if(tmp:getDataInt("end") > 0) then tmp:free() doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id") tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end balance.lua local function isValidMoney(value) if(value == nil) then return false end return (value > 0 and value <= 99999999999999) end function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(guild == 0) then return false end local t = string.explode(param, ' ', 1) if(getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER and isInArray({ 'pick' }, t[1])) then if(t[1] == 'pick') then local money = { tonumber(t[2]) } if(not isValidMoney(money[1])) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end local result = db.getResult('SELECT `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end money[2] = result:getDataLong('balance') result:free() if(money[1] > money[2]) then doPlayerSendChannelMessage(cid, '', 'The balance is too low for such amount.', TALKTYPE_CHANNEL_W, 0) return true end if(not db.query('UPDATE `guilds` SET `balance` = `balance` - ' .. money[1] .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;')) then return false end doPlayerAddMoney(cid, money[1]) doPlayerSendChannelMessage(cid, '', 'You have just picked ' .. money[1] .. ' money from your guild balance.', TALKTYPE_CHANNEL_W, 0) else doPlayerSendChannelMessage(cid, '', 'Invalid sub-command.', TALKTYPE_CHANNEL_W, 0) end elseif(t[1] == 'donate') then local money = tonumber(t[2]) if(not isValidMoney(money)) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end if(getPlayerMoney(cid) < money) then doPlayerSendChannelMessage(cid, '', 'You don\'t have enough money.', TALKTYPE_CHANNEL_W, 0) return true end if(not doPlayerRemoveMoney(cid, money)) then return false end db.query('UPDATE `guilds` SET `balance` = `balance` + ' .. money .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;') doPlayerSendChannelMessage(cid, '', 'You have transfered ' .. money .. ' money to your guild balance.', TALKTYPE_CHANNEL_W, 0) else local result = db.getResult('SELECT `name`, `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end doPlayerSendChannelMessage(cid, '', 'Current balance of guild ' .. result:getDataString('name') .. ' is: ' .. result:getDataLong('balance') .. ' bronze coins.', TALKTYPE_CHANNEL_W, 0) result:free() end return true end Agora vá em Talkactions/talkactions.xml e add as duas tags: <talkaction words="/war" channel="0" event="script" value="war.lua" desc="(Guild channel command) War management."/> <talkaction words="/balance" channel="0" event="script" value="balance.lua" desc="(Guild channel command) Balance management."/> Pronto,seu Guild War Systema está instalado...mas para funcionar necessitará das tabelas na sua database e do Tfs 0.4 .Vou posta-los abaixo,respectivamente. . Tabelas . Para quem ainda não sabe add tabelas a sua database,vou ensinar: Acesse seu phpmyadmin,digite sua senha (caso tenha),clique no nome da sua database a esquerda,assim que carregar a sua database clique em SQL lá em cima...Aparecerá um espaço em branco lá voce irá add as seguintes tabelas...e depois clicar em Executar. CREATE TABLE IF NOT EXISTS `guild_wars` ( `id` INT NOT NULL AUTO_INCREMENT, `guild_id` INT NOT NULL, `enemy_id` INT NOT NULL, `begin` BIGINT NOT NULL DEFAULT '0', `end` BIGINT NOT NULL DEFAULT '0', `frags` INT UNSIGNED NOT NULL DEFAULT '0', `payment` BIGINT UNSIGNED NOT NULL DEFAULT '0', `guild_kills` INT UNSIGNED NOT NULL DEFAULT '0', `enemy_kills` INT UNSIGNED NOT NULL DEFAULT '0', `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `status` (`status`), KEY `guild_id` (`guild_id`), KEY `enemy_id` (`enemy_id`) ) ENGINE=InnoDB; ALTER TABLE `guild_wars` ADD CONSTRAINT `guild_wars_ibfk_1` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_wars_ibfk_2` FOREIGN KEY (`enemy_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `guilds` ADD `balance` BIGINT UNSIGNED NOT NULL AFTER `motd`; CREATE TABLE IF NOT EXISTS `guild_kills` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `guild_id` INT NOT NULL, `war_id` INT NOT NULL, `death_id` INT NOT NULL ) ENGINE = InnoDB; ALTER TABLE `guild_kills` ADD CONSTRAINT `guild_kills_ibfk_1` FOREIGN KEY (`war_id`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_2` FOREIGN KEY (`death_id`) REFERENCES `player_deaths` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_3` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0; Pronto o Guild Wars System está totalmente instalado...falta apenas o Tfs 0.4 ! O meu The Forggoten Server 0.4 também comprei do mesmo cara que me vendeu o GWS,tenho um também que comprei na ChaitoSoft,mais conversei com eles por Msn e não permitirão que eu postasse pra ninguem,rsrs. Então vou postar o link do download e o scan: TFS 0.4 DEV Scan Ai está a DEV.... Também será necessario usar o items.xml e items.otb , a não ser que o que vc tenha seja compativel com o distro. Item.xml e otb Scan Obs: Este distro não carrega scripts que tenha a função "dbExecute.query",sempre que tiver mude para "db.query" .Todo o script ja está configurado para funcionar assim,não se preucupe. Só isso,obrigado a todos...que Deus Abençoe voces sempre !1 ponto -
[Actions] Soccer System
abmauro reagiu a patrickjean por um tópico no fórum
Falaé galerinha do XTibia, estou aqui para postar mais um script que eu mesmo criei!!! #Caracteristicas e Informações @Nome: Soccer System @Versão: 1.0 @Autor: Potreco =D @Versão testada = TFS 0.3.5 #Instalação: @Actions: @Movements: @ShotScreens: Espero que gostem do Script!! Qualquer duvida, poste aqui... Gostou?? Te Ajudei??? REP++ =D1 ponto -
[Tutorial] Corrigindo O Erro Na Istalação Gesior
dragopereira reagiu a kamykasypk por um tópico no fórum
Olá pessoal do XTibia Apesar de não ter muita experiencia com formatação de tópicos, estou aqui para informar-vos, criadores de Website que estão com problemas na instalação do Gesior, uma solução fácil e rápida desse erro: É o seguinte. Eu descobri que o php.ini ( arquivo que determina extensões , index e etc ) do xampp atualizado ( 1.7x), não está compatível com a linguagem .php dos arquivos do Gesior. Qual a solução ? Simples. Passo 1 Desinstale seu xampp e todos os seus serviços ( mysql, apache e os outros ). Passo 2 Baixe e instale esse xampp v 1.6.5 : Download Passo 3 Siga os passos do video-tutorial: Clique Aqui ! Pronto. Agora é so alegria . Se não deu certo, pode postar suas dúvidas aqui . Dá Rep + aí pessoal . Até mais pessoal, espero que dê certo, pois pra mim deu ! Créditos: Kamykasy ( EU ) Os comentários são o fogo do tópico !1 ponto -
Sistema De Novos Items
Edenfield reagiu a MatheusGlad por um tópico no fórum
Bem, como todos sabem, não da pra criar 2 items com o mesmo sprite, somente editando a source e o dat etc... Usando esse sistema que eu fiz voce nao precisara editar nada somente adicionar os scripts. Primeiramente vá na pasta lib e crie um arquivo ItemsEditedLib.lua e adicione isso dentro: function doPlayerAddEditedItem(cid, itemid) local newxml = io.open("data/items/newitems.xml", "r") local configs = {} for i in newxml:read("*a"):gmatch("<item (.-)</item>") do local itemid = tonumber(i:match('id="(.-)"')) local itemconfig = { ["spriteid"] = tonumber(i:match('spriteid.-=.-"(.-)"')), ["article"] = i:match('article.-=.-"(.-)"'), ["name"] = i:match('name.-=.-"(.-)"'), ["description"] = i:match('key.-=.-"description".-value.-=.-"(.-)"'), ["defense"] = tonumber(i:match('key.-=.-"defense".-value.-=.-"(.-)"')), ["attack"] = tonumber(i:match('key.-=.-"attack".-value.-=.-"(.-)"')), ["extradefense"] = tonumber(i:match('key.-=.-"extradef".-value.-=.-"(.-)"')), ["armor"] = tonumber(i:match('key.-=.-"armor".-value.-=.-"(.-)"')), ["extraattack"] = tonumber(i:match('key.-=.-"extraatk".-value.-=.-"(.-)"')), } configs[itemid] = itemconfig end if configs[itemid] then local item = doPlayerAddItem(cid, configs[itemid].spriteid) for i,x in pairs(configs[itemid]) do doItemSetAttribute(item, i, x) end end end Depois vá na pasta items e adicione um arquivo newitems.XML (XML NAO LUA!!!) e adicione isso dentro: <?xml version="1.0" encoding="UTF-8"?> <items> <item id="100" spriteid="2400" article="a" name="magic edited sword"> <attribute key="description" value="Arma editada." /> <attribute key="defense" value="45" /> <attribute key="attack" value="100" /> <attribute key="extradef" value="10" /> <attribute key="extraatk" value="10" /> </item> <item id="101" spriteid="2472" article="a" name="master plate armor"> <attribute key="description" value="Armor editada." /> <attribute key="armor" value="19" /> </item> </items> Bem como voces podem ver, o xml guarda os novos items, o xml funciona praticamente como o items.xml so que tem um novo campo o "spriteid", nele fica o itemid original. Eu sei que ainda faltam atributos, com o tempo e com os pedidos eu vou adicionando. (É importante que voces peçam por novos atributos, porque os outros são mais complicados e eu nao vou faze-los para ninguem usar) Atributos: "description" "defense" "attack" "extradefense" "armor" "extraattack" Para adicionar os novos itemids aos players use doPlayerAddEditedItem(cid, ITEMID) em vez de doPlayerAddItem...1 ponto -
1 ponto
-
# Revolution Website # Nome: Revolution Website Versão: 8.5+ Autor: Bruno333 Coméntario: Bom, eu vi que tem varios Poketibia e nenhum site , então resolvi fazer um bom, leve e pratico! *lembrando que eu,uso como base o site do Nicaw SVN 19b Configurando o site: Primeiro passo e acessar o phpmyadmin (http://localhost/ ou http://localhost:8090) Entre na sua conta do PhpMyAdmin, "Root" "sua senha" Agora cria uma database (coloque um nome mais simples que puder, aconselho coloca o nome de "tibia") agora la em cima no menu tem o butão [iMPORTAR] Clique ele! Depois irar aparecer uma pagina, com um butão chamado PROCURAR, clique e va até a pasta do seu ot.. e importa a database do ot. Caso não tenho pode baixar Clicando aqui[/url] Agora continuando no [iMPORTAR] vc deve importar agora a database no NICAW ACC, que se encontra na pasta xampp/htdocs/documents nome do arquivo eh shema.mysql (database do nicaw) Podemos fechar o internet explorer e configurar logo! va a pasta Xampp/htdocs/config.inc e abra ele! Vamos agora configurar: # Set data directory of your OT server $cfg['dirdata'] = 'C:\otserv\data; $cfg['house_file'] = 'world/map-house.xml'; # MySQL server settings $cfg['SQL_Server'] = 'localhost'; $cfg['SQL_User'] = 'root'; $cfg['SQL_Password'] = '123456'; $cfg['SQL_Database'] = 'tibia'; Configurando: Onde a pasta data do seu ot está localizado entre na pasta data/world do seu ot e ve o arquivo que ta no final com house.xml e coloque no lugar do map-house.xml senha do seu phpmyadmin! Nome da tua database, aconselho colocar a database com nome de tibia!! ai so colocar como está ai em cima! Agora feche e salve.. Va a pasta do seu ot abra config lua e aperte ctrl + f e procure por root la vc encontrara tpw assim: sql_host = "localhost" sql_user = "root" sql_pass = "SUA SENHA" sql_db = "COLOQUE O NOME DA TUA DATABASE" * só lembrando galera que o site eu ia usar em meu servidor então tem certas funções que esta configurada para meu servidor mais quem tem um conhecimento minimo consegue de boa fazer as devidas mudanças! SS Agora o mais importante de tudo o Download e Scan !!! Revolution WebSite Scan !!! Bom galerinha do Xtibia é isso ai, espero que gostem do meu Website qualquer Duvida ou Bug's postem aqui Não se esqueça de quem gostou da um +Repp que não vai cair a mão tbem !!!1 ponto
-
Lista De Efeitos 8.54 E Como Usá-Los
Exgamesjoao reagiu a Antharaz por um tópico no fórum
Como todos sabem, saber qual é o número do efeito que você deseja é difícil... ainda mais com tant lista de efeitos desatualizadas por aew. :fist: Então resolvi fazer uma lista atualizada de 68 efeitos (8.54) que está abaixo: Para usar os efeitos basta colocar o comando doSendMagicEffect(posição,efeito). Aonde posição é as coordenadas aonde o efeito será aplicado e o efeito é o próprio efeito. Vamos supor que eu queira usar o efeito de fumacinha no player como se tivesse dado algo errado quando usasse um item em outro. Eu colocaria assim: function onUse(cid, item, frompos, item2, topos) doSendMagicEffect(cid,2) return FALSE end Caso não funcione o código acima por algum motivo, troque o cid do doSendMagicEffect por frompos.1 ponto -
[Atualizado] O Mapa Ideal
Fortspoke reagiu a Renato Ribeiro por um tópico no fórum
Olá Ééékstibianos! (: [Atualizado: 16, julho de 2010] Pronto para começar a criar o seu mapa ideal? Estou trazendo aqui "o mapa ideal", com referências de tutoriais do próprio XTibia. No fim está os créditos, onde estão todos os autores dos tutoriais. Elaborado e escrito por min. O mapa ideal? O mapa ideal é aquele que é jogável, coerente e belo. E o XTibia tem conteúdo de sobra para você desenvolver seu mapa ideal! Muitos não acham, muitos não procuram e também muitos não conhecem muito de fóruns e não sabem procurar. Sim, sim, muitos não sabem. Por estes e mais motivos, muitos criam "listão" com tutoriais vários tutoriais. Porém este é diferente, pois quando o "listão" é simplesmente vários tutoriais aleatórios pegos na seção de tutoriais, este aqui contém conteúdo para todos os pontos principais para um bom mapa, seguindo uma espécia de organograma por tópicos de cada parte do mapa. O MAPA Dois pontos principais de um mapa, certamente é a Cidade e a Hunt. Isso não temos dúvidas. Certo? Porém para todos os tópicos, existem subtópicos, se é que me entendem. Como por exemplo as Cidades. Para cidades temos as casas, os formatos, os barcos etc. Para as hunts temos as montanhas, as cavernas, dicas etc. SEU EDITOR Primeiramente para que você possa começar a criar mapas bons é necessário você conhecer sobre seu editor. Em sua maioria existem muitas funções que você pode não conhecer. Então é bom começar lendo tutoriais sobre seu editor não é? • Aprenda a usar seu Remeres Map Editor (RME) antes de tudo. Clique aqui. TREINO • Em tudo para você se tornar craque, ou você nasce com o dom, ou você tem que treinar. Por isso, criei dicas, para que você possa aprender técnicas para treinar mais fácilmente, sem menores problemas e até podendo aprender mais rápido de que outras formas. Clique aqui. O NECESSÁRIO Sua cidade: • Casas, pois cidade sem casa não é cidade. Clique aqui. • Formatos continentais agradáveis e coerentes. Clique aqui. • Formatos de bordas sempre deixa o mapa belo, não só na cidade quanto em hunts principalmente. Clique aqui. • Construções em geral. Lojas principalmente, você precisa saber fazer também! Clique aqui. • Barcos... Hum, muitos se confundem com aquele monte de ids. "Onde poe aquilo? E isto?" Certamente. Mas aqui você aprende. Clique aqui. • O templo tem que ser muito bonito, pois é onde o jogador nasce, e como se diz, a primeira impressão é a que fica. Clique aqui. • Um bom mapa também tem que ter suas vilas. Vilas são pequenas cidades onde tem poucas casas e poucas construções que ficam em um lugar isolado em beira de mares mais precisamente perto de florestas (é o mais comum, porém nem todas são assim). Não puis tutorial porque é simplesmente uma cidade, faça tudo que você fez para criar a cidade, mas faça muuito menor. Outros de cidades: • Aprenda a criar cidade de dwarf. Clique aqui. • Crie uma cidade do zero. Tutorial em desenvolvimento por min. Breve atualizarei. • Aprenda aqui a criar um calabouço real. Clique aqui. RolePlaying Game: Sim, sim! Rpg em um mapa deveria ser mais importante do que tudo, o que normalmente não é Um mapa pode ser extremamente belo, coerente, jogável, pode ser maravilhoso, mas só se tornará fantástico a partir de um bom RPG. • Aprenda dicas de RPG para seu mapa. Clique aqui. Sua hunt: • É muito importante saber fazer suas caves! Formatos em geral é muito importante... Clique aqui. • Não só saber fazer sua cave, mas também saber detalhar ela, isto sim é o mais importante. Clique aqui. • Montanhas, concerteza. "Mas Renato, aqui só sai aquele wall reto, não sai a montanha" Ahá, solução: Clique aqui. • Para uma montanha bela, tem que saber detalhar ela, é fundamental. Clique aqui e aqui. • Cachoeiras? Sim, cachoeiras deixa seu mapa super bonito, porém muitos não sabem fazer e muitos fazem com bugs. Aprenda! Clique aqui. • Nature, huuum, uma parte muito importante. Confesso que não sou expert nesta área, mas para todo bom mapa, tem que ter uma boa nature. Concerteza é um elemento fundamental em qualquer mapa. Clique aqui. • Muitos criam montanhas de gelo com bugs. Olha, vou ser sincero, muitos não... a maioria! Então aprenda aqui técnicas e dicas para criar não só uma montanha de gelo mas sim um ambiente agradável de gelo para seu mapa. Clique aqui. Outras de hunts: • Crie área de lizards, estilo o de zao. Clique aqui. Breve atualizações com mais tutoriais. Link quebrado? Sugestão? Erros? Críticas? Comente! Um abração galera!1 ponto -
[8.4] [Sql] Samuel Yurots V11
geovanateamo reagiu a Samuel2011 por um tópico no fórum
venho distrui pra vcs meu ot na base yurots modificado, da varios erro no console da mais no spaw mais é ínstavel, executavel editado pela sourcer distribuido por min, Monsters Balanceados. Novos Comandos. /ban "bani ip" !buyvip !rank !rank reset !afk on !afk off /ps nome player, oi "só pra god" #1 spell nova samuel157 "só pra vocaçoes bomba" Download Servidor: http://www.4shared.com/file/UpvT3Tmu/Samuel_Yurots_v11_84.html Dlls: http://www.4shared.com/file/a-JvM22F/Dlls.html Sourcer: http://www.4shared.com/file/Rvc8Bya9/forgottenserver-031pl2r92tar.html Scan: nao tem pq virostotal nao quer abri mais garanto q ta tudo limpo Creditos: ao criador do bomba ao criador slayer. Bye1 ponto -
Eae Galera! entao galera vi que muitos usuarios do forum tem perguntado os looktype de cada lider de ginasio como eu to com um projeto quase completo (Pokemon History com todos os sistemas svke) resolvi postar aqui pra ajudar a todos Liders: Brock looktype: 178 head:8 body:1 legs:85 feet:3 addons:0 Misty looktype: 176 head:8 body:1 legs:85 feet:3 addons:0 Lt Surge looktype: 238 head:8 body:1 legs:85 feet:3 addons:0 Sabrina looktype: 243 head:8 body:1 legs:85 feet:3 addons:0 Erika looktype: 241 head:8 body:1 legs:85 feet:3 addons:0 Giovanni looktype: 252 head:8 body:1 legs:85 feet:3 addons:0 Koga looktype: 242 head:8 body:1 legs:85 feet:3 addons:0 Blaine looktype: 239 head:8 body:1 legs:85 feet:3 addons:0 Topico ta bem simples mas espero ter ajudado Obrigado! GOSTOU? REP+1 ponto
-
Tutorial Adicionando Mounts
Gabriel Couto reagiu a Nolis por um tópico no fórum
Olá xtibia. explicando. Alguns servidores 8.70~9.1 ja tem os scripts, mas caso não tiver aqui estarei explicando como fazer tudinho. Primeiro, Mount Uteis para 9.10. pastadoot/DATA/XML copie um arquivo e renomeie para mounts <?xml version="1.0" encoding="UTF-8"?> <mounts> <mount id="1" clientid="368" name="Widow Queen" speed="20" /> <mount id="2" clientid="369" name="Racing Bird" speed="20" /> <mount id="3" clientid="370" name="War Bear" speed="20" /> <mount id="4" clientid="371" name="Black Sheep" speed="20" /> <mount id="5" clientid="372" name="Midnight Panther" speed="20" /> <mount id="6" clientid="373" name="Draptor" speed="20" /> <mount id="7" clientid="374" name="Titanica" speed="20" /> <mount id="8" clientid="375" name="Tin Lizzard" speed="20" /> <mount id="9" clientid="376" name="Blazebringer" speed="20" /> <mount id="10" clientid="377" name="Rapid Boar" speed="20" /> <mount id="11" clientid="378" name="Stampor" speed="20" /> <mount id="12" clientid="379" name="Undead Cavebear" speed="20" /> <mount id="13" clientid="387" name="Mule" speed="20" /> <mount id="14" clientid="388" name="Tiger Slug" speed="20" /> <mount id="15" clientid="389" name="Uniwheel" speed="20" /> <mount id="16" clientid="390" name="Crystal Wolf" speed="20" /> <mount id="17" clientid="392" name="Brown War Horse" speed="20" /> <mount id="18" clientid="401" name="Kingly Deer" speed="20" /> <mount id="19" clientid="402" name="Tamed Panda" speed="20" /> <mount id="20" clientid="405" name="Dromedary" speed="20" /> <mount id="21" clientid="406" name="Sandstone Scorpion" speed="20" /> <mount id="22" clientid="421" name="Rented Horse" speed="20" /> <mount id="23" clientid="426" name="Fire War Horse" speed="20" /> </mounts> Antenção! esses mounts são para versão 9.10. se quiser os da versão 8.70 ai vai: <?xml version="1.0" encoding="UTF-8"?> <mounts> <mount id="1" clientId="368" name="Widow Queen" speed="20" premium="yes" /> <mount id="2" clientId="369" name="Racing Bird" speed="40" premium="yes" /> <mount id="3" clientId="370" name="War Bear" speed="20" premium="yes" /> <mount id="4" clientId="371" name="Black Sheep" speed="20" premium="yes" /> <mount id="5" clientId="372" name="Midnight Panther" speed="30" premium="yes" /> <mount id="6" clientId="373" name="Draptor" speed="40" premium="yes" /> <mount id="7" clientId="374" name="Titanica" speed="30" premium="yes" /> <mount id="8" clientId="375" name="Tin Lizzard" speed="30" premium="yes" /> <mount id="9" clientId="376" name="Blazebringer" speed="40" premium="yes" /> <mount id="10" clientId="377" name="Rapid Boar" speed="40" premium="yes" /> <mount id="11" clientId="378" name="Stampor" speed="40" premium="yes" /> <mount id="12" clientId="379" name="Undead Cavebear" speed="40" premium="yes" /> </mounts> Ta, agora ta pronto, mas quando o player logar, ele não vai receber o mount, então vá em pastadoot/DATA/CREATURESCRIPTS/SCRIPTS copie um arquivo e renomeie para mountOnLogin ]function onLogin(cid) if(isPlayer(cid)) then local storageId = 30010 if getPlayerStorageValue(cid, storageId) == -1 then doPlayerAddMount(cid, 1) doPlayerAddMount(cid, 2) doPlayerAddMount(cid, 3) doPlayerAddMount(cid, 4) doPlayerAddMount(cid, 5) doPlayerAddMount(cid, 6) doPlayerAddMount(cid, 7) doPlayerAddMount(cid, 8) doPlayerAddMount(cid, 9) doPlayerAddMount(cid, 10) doPlayerAddMount(cid, 11) doPlayerAddMount(cid, 12) doPlayerAddMount(cid, 13) doPlayerAddMount(cid, 14) doPlayerAddMount(cid, 15) doPlayerAddMount(cid, 16) doPlayerAddMount(cid, 17) doPlayerAddMount(cid, 18) doPlayerAddMount(cid, 19) doPlayerAddMount(cid, 20) doPlayerAddMount(cid, 21) doPlayerAddMount(cid, 22) doPlayerAddMount(cid, 23) setPlayerStorageValue(cid, storageId, 1) end end return TRUE end <event type="login" name="LoginMount" script="mountOnLogin.lua"/> Atenção! esse ai é para 9.10, para 8.70 ai vai: function onLogin(cid) if(isPlayer(cid)) then local storageId = 30010 if getPlayerStorageValue(cid, storageId) == -1 then doPlayerAddMount(cid, 1) doPlayerAddMount(cid, 2) doPlayerAddMount(cid, 3) doPlayerAddMount(cid, 4) doPlayerAddMount(cid, 5) doPlayerAddMount(cid, 6) doPlayerAddMount(cid, 7) doPlayerAddMount(cid, 8) doPlayerAddMount(cid, 9) doPlayerAddMount(cid, 10) doPlayerAddMount(cid, 11) doPlayerAddMount(cid, 12) setPlayerStorageValue(cid, storageId, 1) end end return TRUE end <event type="login" name="LoginMount" script="mountOnLogin.lua"/> Garanto que vai ajudar muita gente. Gostou? REP+1 ponto -
Editando Spr Completo
bikun reagiu a Leoprotons por um tópico no fórum
Bom estou trazendo pra voçes um tutorial com varios progamas. * No meu deu erro com auguns e Susses com outros 1- Bem vamos as funções dos progamas ?Sprite Editor 0.2 / 0.4 Extrair o Tibia.spr ?Reebowsprite 1.3 Extrair o Tibia.spr ?Demonic data editor Editar as Propriedades dos itens ?Ase Sprite Editor 0.8.2 Editar as Sprites 2- Intalando os progamas ?No caso do Reebowsprite 1.3 ,Sprite editor 0.2 ou Sprite editor 0.4 ,você tera de extrair os arquivos do progama numa pasta junto com o arquivo "Tibia.spr". ?Demonic data editor e Ase Sprite Editor e so extrair. 3- Extraindo as Sprites ?Como ja expliquei voce deve colocar os arquivos do progama e do Tibia.spr junto. ?Clique em Extract/Extract Sprites. *Sera criada umas pasta com diversas imagens no formato bmp "bitmap" 4- Editando as Sprites ?Bem Aqui voçe ira utilizar o Ase Sprite Editor, Paint, Fotoshop... oque seja... *leia auguns tutoriais sobre sprite ira ajudar muito. Indico este : http://www.xtibia.com/forum/topic/154097-tutorialadicionar-novas-sprites-no-cliente-pt1/ ?Salve a Imagem no formato bmp "bitmap" e substitua uma das sprites extraidas *tente manter uma certa organizaçao pra nao se perder na hora de utilizalas 5- Propriedades ?Bem e aqui que o DatEditor entra voce pode usalo pra editar augumas propriedades "Nao tem muitas funçoes" ?Ou pode usalo na Etapa 3 da seguinte forma 6- Compactando as Sprites ?Voce usara novamente um dos progamas Reebowsprite 1.3 ,Sprite editor 0.2/0.4 com a pasta com as sprites extraidas no mesmo local. ?E so clicar em Copile/pack sprites e fazer a festa com suas novas sprites 7- Bom aqui estao os downloads dos arquivos e Scan Sprite Editor 0.2 Download Scan Sprite Editor 0.4 Download Scan ReebowSprite Download Scan Ase Sprite Editor 0.8.2 Download Scan Demonic Data Editor Download Scan BOA SORTE A TODOS!!! E um tutorial bem Resumido se tiverem auguem que achem que deva ser adicionado, gostaria muito que digam... Quem puder me ajudar Rep+ / e ou fassam os download dos progamas. Creditos: Tutorial: Leoprotons Progamas: A seus devidos desenvolvedores Peço que não retire os creditos ao copiar1 ponto -
Criando Monstros Para Areas Vips
Gabriel Couto reagiu a mxlr14 por um tópico no fórum
Eai galera hoje vim aqui mostrar como se pega um monstro e deixa ele vip, para colocar em área vip.(tópico bem para super iniciantes, igual a mim). Obrigado pela atenção de todos gente, este foi meu primeiro post, super basico espero que gostem peço desculpa se postei no lugar errado e peço desculpas pelo meu português ridiculo minha conta é antiga mas é minha primeira vez postando algo aqui. Obrigado novamente e comentem (criticas, duvidas, sugestões) abraços a todos .1 ponto -
Olá, iglu entrável não é novidade, mas geralmente as pessoas os fazem com teleport, vou ensinar aqui como fazer um iglu sem teleport, com um caminho logicamente correto e bonito xD... Exemplos: Bom, gostou até agora? Então ensinarei a fazer, é MUITO simples... Primeiro, crie uma área e coloque um iglu: Depois, coloque o chão da entrada dele como uma escada (ID: 459) e "tape" o buraco com uma borda de neve. (ID Depende da posição do Iglu, varia entre os IDs 4747 e 4748) Agora coloque a "porta" do iglu de volta no lugar e tcharam! Já temos um caminho logicamente correto para o subsolo! xD Agora, vamos ao subsolo... Para fazer o subsolo do iglu, você deve usar diversos recursos utilizados em cavernas glaciais... Primeiro, cubra tudo de neve, e faça o formato que quer com as paredes de ID 6822 até 6833, se quiser, coloque algumas partes com terra, e faça como na segunda screenshot. (IDs utilizados para isso: 351 para o chão de terra, 101 para o "chão externo" e 371 a 382 para as paredes) Depois de ter a base pronta, coloque alguns lixos, e enfeite como quiser... O resultado final deve ficar MAIS OU MENOS assim: E já tem um iglu entrável! xD! Quem quiser esse mapa aí que fiz pro tutorial pode baixá-lo aqui: (Rapidshare) Dúvidas? Não hesite em postar. Novamente, créditos ao GoD DooM Sinister//1 ponto
-
Ferlations Fire
Henrique Moura reagiu a Fernandinand por um tópico no fórum
Ta ai gente, demorei umas 4h fazendo isso ai, e ainda não gostei mt do resultado ;/ V1 Link V2 Link Oq vocês acham?1 ponto -
Ip Changer 9.1
willian987 reagiu a albere por um tópico no fórum
ae pessoal na verdade nao é vcs abaixa ip change vai la no ip changer onde tem as versoes dos ots e em baixo ta escrito auto clica la e ja ta pronto pra usar a versao 9.1 e 9.0 se ajudei de mais rep :button_ok: sou novo aki se tiver na area erra move ae aki em casa foi1 ponto -
O Brasão - Maldição Da Magia
Gabriel Couto reagiu a Henrique Moura por um tópico no fórum
Maldição da Magia Saia para uma nova caçada. Os campos ao leste de Thais haviam sidos pacificados desde a posse do novo rei. Talvez isso o proporcionasse essa nova coragem que dava essa sensação de poder à ele. Ele nunca foi assim, nunca se sentiu assim. As muralhas eram grandes e certamente era difícil escalá-las, mas ele saberia que o que esperava por ele era muito maior do que qualquer caminho que teria de percorrer, e então prosseguiu sem hesitação em nenhum momento. Ele só queria chegar ao topo, fazer seu trabalho, voltar ao rei e pegar a recompensa. Era um mercenário, não se importava com ninguém ou com algo. Que se dane para que o rei iria utilizar tal pedra, isso não seria mais problema dele, ele só queria fazer-lhe o melhor: ser rico. A cada gota de suor que derramava sobre a escalada lembrava-se de moedas de ouros escorregando sobre os seus dedos e caindo sobre um baú cheio delas. Ele era doente, sua doença poderia ser comparada a dos anões por cerveja, ou a de trolls por sujeira. Mas o que o diferenciava disso tudo era uma coisa, que talvez fosse a mais importante de sua vida. Ele era um homem. Finalmente, só mais um pouco, ele estava quase lá. De repente um rugido forte, pedras caíram sobre ele, ele resistiu, mas não poderia permanecer por muito tempo, sua mão estava machucada e a pressão do vento sobre o seu corpo o empurrava contra a montanha de rochas pontiagudas, o que o machucava seriamente. Ele resistiu por um tempo, até o vento cessou. Continuou a subida. O que o atraí para esses perigos que provavelmente nunca o trará vivo de volta é apenas o ouro. Esse rapaz tornou-se altamente subornável e corrompido pela riqueza, seu coração foi corrompido. Ouro era tudo que pensava. Mas talvez isso esteja relacionado com a morte de seus pais. Talvez. Afinal, é triste a morte de aldeões quando não podem pagar os impostos. Mas isso não torna o fato surreal. Os reinos antigos eram muito severos, principalmente nas terras do norte. Ele ainda se lembrava daquela noite. Eles estavam quase sem comida, mal tinham moedas para sobreviverem, estavam juntando migalhas para comer e poder assim juntar dinheiro para a taxa do reino. Foi inútil, os soldados invadiram a pequena casa, procuraram por qualquer material de valor e não encontraram nada. Julgaram pouco o que lhe deram, e então, usando o nome do rei, eles assinaram brutalmente os seus pais. O sangue deles espirrou em seu rosto, e junto às lagrimas criaram uma memória atormentadora inesquecível. Vinte anos. Ele viveu todo esse tempo relembrando a crueldade do rei toda noite, era uma perturbação constante. As memórias perdiam a intensidade, mas quando ele ingressava num trabalho, elas vinham com toda a intensidade. Apesar do seu amor pelas moedas de ouro, as próprias traziam essas lembranças. Esse amor pelas moedas era difícil de entender. Ele deveria odiá-las, foi por causa delas que seus pais foram mortos. Não, talvez, por escassez delas. Se eles as tivessem, não teriam sido mortos. Era esse o seu receio. Chegou ao topo de montanha, cansado. Esvaziou o seu odre de água e recuperou o fôlego. Retirou sua espada da bainha e caminhou em frente lentamente. _DRAGÃO! O grito furioso ecoou por toda a montanha, ressoando em cada estalagmite e estalactites dos túneis sob a montanha. Um rugido forte e monstruoso foi ouvido, e então ele correu na direção deste rugido. As paredes de um túnel que ele havia recém entrado foram surpreendidas por chamas altas e fortes, que logo cessou quando foi procedida por um rugido ensurdecedor. O dragão agora era visível. Ele correu entre os túneis e o dragão o perseguia. Cada passo estremecia o chão e fazia que as estalactites se soltassem, cada passo fazia o chão ceder, o túnel estava desmoronando, e quando o dragão rugia, era como se a montanha inteira fosse ceder. Uma pedra caiu sobre sua cabeça e ele caiu. Tonto por alguns instantes, o dragão se aproximava. Ele abriu a sua grande boca e soltou outro furacão de fogo. Ele se virou e protegeu sua cabeça, sentiu suas costas arderem sendo queimadas pelo fogo infernal do dragão. Num ultimo desesperado ato, pegou sua espada e levantou-se. Travaria então uma batalha sangrenta com o dragão, que logo perdeu a cabeça. Triunfante após a vitória caminhou até o corpo sem cabeça do dragão, retirou da boca uma pedra vermelha e brilhante, de aspecto resistente e infinitamente maravilhoso. A entrada do túnel por onde havia entrado estava bloqueada pelo desmoronamento, só o restou andar para o outro lado. Antes que pudesse atingir a saída, os túneis que interceptavam aquele foram preenchidos por fortes e ensurdecedores rugidos vindos de todos os lados, e ele se percebeu cercado. _Wyverns? Ele mentiu pra mim, disse que só havia um dragão, não fui informado sobre Wyverns! Fui enviado à morte! Seu ódio pela corte só aumentara. Ele correu em direção a saída e os wyverns foram atrás, eram três. São menores que dragões, mas isso não faziam deles oponentes mais fracos. De modo rápido, um wyvern voou sobre os outros e então o capturou. Suas enormes garras foram cortadas pela lâmina de sua espada e ele caiu junto à elas, o wyvern caiu ao seu lado, fazendo que o chão estremecesse. Ele se sentia turvo, logo iria perder a consciência e cair em profundo desmaio. Os wyverns se aproximaram furiosos, mas antes que pudessem abocanhá-lo, foram interrompidos. Foram jogados contra o túnel outra vez, e subitamente as pedras caíram sobre eles. Os poderosos e perigosos wyverns foram mortos facilmente. Somente alguém muito poderoso poderia ter feito aquilo. Ele olhou para seu lado esquerdo e encontrou uma figura desconhecida. Usava um chapéu longo e uma túnica preta que ia do pescoço aos pés, uma capa cinzenta e um cajado marrom com uma pedra azul brilhante na ponta. Sua barba era branca e seus cabelos, de fato. O velho caminhou até ele, e então se ajoelhou ao seu lado. Recitou algumas palavras que ele não pode ouvir, mas então se sentia melhor. O estado de lucidez voltara. _Quem és? Por que me ajudas? O velho desapareceu subitamente. Ele, espantado, recolheu suas coisas e desejava sair daquele lugar o mais rápido possível, reivindicar suas moedas de ouro e sair da cidade em busca de outro trabalho. No sopé da montanha, antes que pudesse montar seu cavalo, ele viu o velho outra vez. Estava parado observando-o com uma expressão de alegria. Ele não ligou, montou em seu cavalo e seguiu na direção oeste, mas antes que pudesse ser perdido de vista no horizonte alaranjado, ouviu a voz do velho. _A propósito, me chamo Ferumbras. O velho desapareceu. O jovem mercenário tentou olhar para trás, mas sentiu uma forte dor no peito. Caiu do cavalo e sua própria espada perfurou seu peito. A pedra ao seu lado foi tingida de vermelho.1 ponto -
Pra mim mesmo eu prefiro o win7 tem mais facilidade de uso, porém os dois são bons..1 ponto
-
[Duvida]Límite De Hp? Como Almentar?
gustavoMtek reagiu a Subwat por um tópico no fórum
pior que tem limite mesmo,o limite é 2kkk de life,meu ot exp alta tmbm tem isso,eu uso o comando buyvida,ae quando chega no 2kkk ela começa a voltar a vida..,ou quando eu vo fazer um bixo com mais de 2kkk de life,ele ja nasce morto. xD é nas sources só se vc souber mecher pra arrrumar isso xD1 ponto -
[Arquivado]Versão 9.10 Otserv.
lucas051191 reagiu a Tryller por um tópico no fórum
Falou merda >.< desde quando oTServ SVN é server comum? LOL Se não fosse o OTServ SVN você nem teriam OT hoje emdia >.<1 ponto -
Ajuda Com Rings
Hyuugax reagiu a gonorreiaswat por um tópico no fórum
Montei aqui, estou testando e tirando alguns bugs... Já posto aqui.. @@@ EDIT Vamos lá... Item usado: Emerald Blange - ID: 2127 Abra seu arquivo "movements.xml" e adicione essas duas tags. Agora vá na pasta Scripts da pasta movements e cria um arquivo chamado "chaosbangle.lua"... Cole isso dentro: <~~ Configurando ~~> Como editar Outfit para transformação Para configurar os Skills que o player irá ganhar É, acho que é isso... Poste o Resultado Créditos: Abraços :smile_positivo:1 ponto -
Arma Soltando Magias
luskinha77 reagiu a Nolis por um tópico no fórum
pastadoseuot/DATA/WEAPONS/SCRIPTS copie um arquivo e renomeie para demonrage weapons.xml1 ponto -
[8.54] Mapa Pokemon Betinhowz666
adeftronic reagiu a betinhowz666 por um tópico no fórum
Agora são 200 rep + para a nova atualização ! (talvez) Lembrando que eu ainda não voltei no xtibia, voltarei só quando algum dos moderadores vim falar comigo, para resolver ésta história que eu estava com uma conta para dar rep + caso contrario não vou postar o ot que eu vinha fazendo e nem a atualização.1 ponto -
[Iniciante] Como Registrar Sua Account
Henrique Moura reagiu a fsg por um tópico no fórum
Usuários registrados recebem uma recovery key, que pode ser usada para recuperar a account no caso de perda de acesso ao endereço de email assimilado a ela. Usuários já registrados podem pedir uma nova recovery key pagando uma taxa de 5 euros. Premium Accounts podem ser compradas apenas para accounts registradas. Somente usuários registrados podem fazer o tutor test para se tornarem tutores. São 3 passos básicos para registrar uma account: Inserindo os dados do registro Verificando os dados Anotando sua recovery key REGISTRANDO A SUA ACCOUNT Faça o login na sua conta através do site oficial ou clicando na imagem: Clique no botão "Register Account". Figura 01: Botão "Register Account" A tela de registro aparecerá, com uma barra de progressos no topo indicando em qual dos passos você está no momento. Vejamos com detalhes: Inserindo os dados do registro a) Preencha cuidadosamente o formulário, prestando atenção nos campos. É muito importante que você preencha usando os seus dados reais! O endereço correto é fundamental para que, em caso de problemas, você possa receber em sua casa uma nova recovery key. Figura 02: Preencha os dados First Name: Digite seu primeiro nome. Last Name: Digite seu sobrenome. Street Address: Digite seu endereço (rua, número, apartamento). ZIP Code: Digite seu CEP. City: Digite a cidade em que você mora. Country: Digite o país em que você mora. Date of Birth: Digite a sua data de nascimento. Gender: Informe o seu sexo (male para masculino, female para feminino). b) Após digitar corretamente os dados, clique no botão "Continue" Figura 03: Clique em "Continue" 2. Verificando os dados a) Leia com cuidado as informações digitadas, e verifique se há algum erro. Se encontrou algum erro, clique em "Back". b) Se estiver tudo certinho, digite a sua senha no campo designado e clique em "Submit" Figura 04: Conferindo seus dados 3. Anotando sua recovery key Antes de prosseguir, ANOTE COM BASTANTE ATENÇÃO a sua recovery key. Guarde em um lugar seguro! Não salve no seu computador! Você não receberá um email contendo esta recovery key. Em caso de perda, você pode solicitar uma nova recovery key pagando uma pequena taxa. Figura 05: Anote a sua recovery key Pronto! Você já registrou a sua conta. Figura 06: Registro completo Se você precisar alterar seus dados no futuro, entre na sua account, clique no botão "Edit" e faça as modificações necessárias. Estas mudanças levarão 30 dias para entrar em vigor, e você deve confirma-las novamente após os 30 dias. Boa sorte em Tibia! Fonte: TibiaBR1 ponto -
[Vídeo] Virando Morador De [Ankrahmun]
Henrique Moura reagiu a fsg por um tópico no fórum
Oláa pessoal, este vídeo é um tutorial de como se Naturalizar Morador de Ankrahmun, então vai ai um tutorial... http://www.youtube.com/watch?v=hlpJj310hpY Cidade: Ankrahmun Tutorial: Se Naturalizando Morador Onde está circulado de preto é onde que você tem que ir! (Temple) Espero que gostem.1 ponto -
Sobre o problema 2, tenta testar uma vez substituindo: king.xml: <?xml version="1.0" encoding="UTF-8"?> <npc name="King Johnny" script="data/npc/scripts/promotion.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="332" head="0" body="0" legs="0" feet="0" addons="0"/> </npc> e o promotion.lua para: 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 local node1 = keywordHandler:addKeyword({'promot'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can promote you for 20000 gold coins. Do you want me to promote you?'}) node1:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 20000, level = 20, promotion = 1, text = 'Congratulations! You are now promoted.'}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) npcHandler:addModule(FocusModule:new()) acho que tu já deve ter tentado fazer isso, mas caso não tentou fica uma tentativa aí1 ponto
-
[Action] Sistem Rank E Premium Por Action
Tiagohells reagiu a ienamix por um tópico no fórum
ta ok da pra tu me passo o sitema sem ta 100% mesmo1 ponto -
The Inquisition Quest + Demon Hunter Outfit
sheep123 reagiu a Fernandinand por um tópico no fórum
Tipo: Missão conjunto Nível necessário: 100 Localização: Começa em Thais Premium: Sim Duração: Curto; 1~2h Notas: • Você precisa de acesso ao norte de Zao. • Você deve perceber que na área dos monstros, o nome e link deles fica do lado esquerdo da imagem, e é separado pela cor do monstro para maior facilidade. • Como eu disse no final dos monstros, eu puis quase todos eles, mas no caminho você irá encontrar mais monstros e alguns mais fortes que os outros. • Você precisará ter feito pelo menos 1 Seal da Pits of Inferno para conseguir completar todas as missões daqui. • Você só precisa fazer até a 5ª missão para conseguir a Outfit! Legenda: Runas, fields e magias. Monstros. Itens, poções, equipamentos. NPC's ou cidades. As falas que você tem que falar com os NPC's. Coisas importantes, qualquer dos dois serve. As coisas assim são localizações pelo TibiaML World Map. Mas as vezes, assim: +1 e -1, e assim por diante, significam os andares. Observação: As listas de monstros e recompensas logo abaixo não conta com a legenda! Recompensa! Demon Hunter Outfits Blessing of the Inquisition Terá acesso à Demon Forge. Terá a habilidade de passar da primeira missão de Blood Brothers, sem precisar completá-la! ------------#-----------#-----------#----------- Emerald Sword Hellforged Axe Obsidian Truncheon Warsinger Bow Royal Crossbow Spellbook of Dark Mysteries Master Archer's Armor Fireborn Giant Armor ou Robe of Underworld Esteja preparado para: Juggernauts,Demons,Behamoths,Hellfire Fighters,Ungreez,The Ruthless Seven Minions,Undead Dragons,Hellhounds,Massive Fire Elemental,Giant Spider,Quara Hydromancer,The Count,Dark Torturer,Massive Water Elemental,Quara Predator,Quara Pincher,Crystal Spider,Lost Soul,Nightmare,Hand of Cursed Fate e outros. Você deverá levar: 20 Vampire Dust 20 Demonic Essence Garlic Necklace Rope Machete Shovel 1 Crystal Coin A missão! Antes de tudo, você terá de pedir para fazer a quest, é claro. Então, vá até Henricus -1 e peça para ele uma missão. Jogador: hi Henricus: Greetings, fellow believer Player! Jogador: inquisitor Henricus: The churches of the gods entrusted me with the enormous and responsible task to lead the inquisition. I leave the field work to inquisitors who I recruit from fitting people that cross my way. Jogador: join Henricus: Do you want to join the inquisition? Jogador: yes Henricus: So be it. Now you are a member of the inquisition. You might ask me for a mission to raise in my esteem. Jogador: mission Henricus: Let's see if you are worthy. Take an inquisitor's field guide from the box in the back room. ... Henricus: Follow the instructions in the guide to talk to the Thaian guards that protect the walls and gates of the city and test their loyalty. Then report to me about your mission. Missão 1: O interrogatório Sua missão é interrogar os 5 guardas de Thais para ver se eles respeitam o comportamento herege. Tim, Kulag, Grof, Miles e Walter são seus nomes. Se tudo der certo, irá aparecer uma cruz sagrada em você. Grof, The Guard • Você pode encontrar ele aqui. • Cumprimente ele dizendo "hi". • Então pergunte a ele se não há nenhum trouble (problema). • Após isso, pergunte para ele sobre authorities (autoridades). Walter, The Guard • Você pode encontrar ele aqui. • Cumprimente ele dizendo "hi". • Então pergunte a ele se não há nenhum trouble (problema). • Após isso, pergunte para ele sobre authorities (autoridades). • Então você deve perguntar o que ele acha que as autoridades podem fazer para avoided (evitar) o problema. • Finalmente, pergunte gods would allow (como os deuses deixaram) isso acontecer. Kulag, The Guard • Você pode encontrar ele aqui. • Cumprimente ele dizendo "hi". • Então pergunte a ele se não há nenhum trouble (problema). • Após isso, pergunte para ele sobre authorities (autoridades). Miles, The Guard • Você pode encontrar ele aqui. • Cumprimente ele dizendo "hi". • Então pergunte a ele se não há nenhum trouble (problema). • Após isso, pergunte se ele acha que a falta de problemas pode ser explicada pela foresight of the authorities (negligência das autoridades). • Então deverá perguntar also for the gods (também para os deuses). • Finalmente, pergunte-o se ele acha que trouble will arise in the near future (algum problema poderá vir a ocorrer no futuro). Tim, The Guard • Você pode encontrar ele aqui. • Cumprimente ele dizendo "hi". • Então pergunte a ele se não há nenhum trouble (problema). • Após isso, pergunte para ele sobre authorities (autoridades). • Então você deve perguntar o que ele acha que as autoridades podem fazer para avoided (evitar) o problema. • Finalmente, pergunte gods would allow (como os deuses deixaram) isso acontecer. Missão 2: Eclipse Henricus pede para você pegar o Witches Gremoire, ele manda você para Femor Hills aonde você pode voar para a Witches' Mountain, diga Eclipse para Uzon e ele vai levar você. Tenha cuidado, você vai encontrar 7 Witches, um Ghoul e um Dark Magician. Também alguns Cats para atrapalhar você. É recomendado usar Stoneshower Rune nas Witches para você não gastar muita poção de vida. Use o frasco de água sagrada que ele deu para você no grande caldeirão ao centro (uma explosão vai aparecer nele) e abra o baú a sua esquerda. Volte até Henricus e fale com ele. Jogador: hi Henricus: Greetings, fellow believer Jogador! Jogador: Mission Henricus: Listen, we have information about a heretic coven that hides in a mountain called the Big Old One. The witches reach this cursed place on flying brooms and think they are safe there... Henricus: I've arranged a flying carpet that will bring you to their hideout. Travel to Femor Hills and tell the carpet pilot the codeword 'eclipse'... Henricus: He'll bring you to your destination. At their meeting place, you'll find a cauldron in which they cook some forbidden brew... Henricus: Use this vial of holy water to destroy the brew. Also steal their grimoire and bring it to me. Missão 3: Caça ao Vampiro • A primeira parte de sua missão é localizar o Dwarfish Vampire Hunter (anão caçador de vampiros), Storkus, que fica aqui. • Quando você encontrar ele, ele vai pedir 20 Vampire Dusts. Mas por sorte, você deve ter trazido pois eu pus lá em cima que era obrigatório trazer. • Depois, ele quer que você mate o Vampire Lord The Count no Green Claw Swamp. Entregue seu anel como prova que você o matou para Storkus, o Lord esta perto da Blood Herb Quest, que fica aqui. Missão 4: A ruína mal assombrada Henricus vai te dar um frasco. Vá até Liberty Bay e use o frasco na velha casa. (ela fica perto da "Sugar Street 3b". É a noroeste da cidade, mas não fora dela!) . Use o frasco no canto noroeste. Após usar o frasco, um Pirate Ghost vai aparecer e a porta se fechará. Mate-o se quiser e, após aproximadamente 10 segundos, a porta se abrirá novamente. Se você for Knight, não esqueça de levar alguma runa ou arma encantada, pois o Pirate Ghost é imune à ataque físico (sword). Retorne para Thais e reporte sua missão para Henricus. Missão 5: Essências necessárias Consiga 20 Demonic Essence e peça para Henricus uma missão. Ele quer 20 Demonic Essence, entregue para ele e você irá ganhar finalmente o Demon Hunter Outfit sem os addons. Basta você conversar com Henricus sobre outfit. Missão 6: O Demônio Ungreez Antes de tudo, terá de ir para Edron. • Vá até a Edron Hero Cave e desça alguns andares, aqui está a localização. • Ungreez demora entre 5-15 minutos para surgir, depende da quantidade de jogadores online no servidor. Cada pessoa deve matar ele uma vez. Se você estiver em party, lembre que você deve hitar mais do que todos para o boss ser considerado seu! Missão 7: A ligação da sombra • Para essa parte, você deve ter completado pelo menos um trono da Pits of Inferno Quest (em breve aqui no XTibia!). • Essa é a parte mais difícil da quest. Você vai precisar de alguns jogadores level 200+ e um time básico (de 15 a 20 jogadores) com level 150 ou superior. • Se você morrer ou sair de um teleporte, você pode sempre voltar. Para fazer essa missão, você deve ir até o Demon Forge. O Demon Forge é localizado no sul da Vampire Shield Quest (clique no link e visite a quest aqui no XTibia!). Você vai encontrar uma porta de level 100+ e uma porta de quest (maçaneta brilhando) e você só pode entrar após matar Ungreez. Após entrar no teleporte, você encontrará alguns Hellfire Fighters, Fire Devils e Fire Elementals. Continue indo ao sul para chegar ao teleporte principal. Demon Forge • Você deve matar os bosses nessa ordem. • Se você morrer antes de ir para o teleporte para matar o boss demoníaco, você terá que fazer o trono tudo de novo. • Você pode retornar onde você saiu indo no teleporte do próximo trono inacabado. • Você não receberá nenhuma notificação, e não aparecerá nada no seu Quest Log após cada trono. O caminho negro: Ushuriel • Para começar os tronos, você não precisa ir em nenhum teleporte, apenas suba as escadas à oeste. • Você vai enfrentar vários Hellfire Fighters e Massive Fire Elementals. Continue indo à oeste e depois suba as escadas. • Agora você precisará passar por um grande corredor, cheio de Gargoyles, Behemoths e Juggernauts. Tenha cuidado quando for lurar, porque podem vir 4 Juggernauts de uma vez só. • Quando você chegar no final do corredor, encontrará um teleporte. Entre nele para enfrentar Ushuriel. • Ushuriel não é muito forte, mas é preciso ter cuidado. As torres não podem ver invisibilidade, simplesmente use um Stealth Ring ou a magia e mate Ushuriel com Icicles Rune. • Depois de ter matado Ushuriel, volte ao teleporte de antes para ser teletransportado para o próximo trono. As cavernas de cristais: Zugorosh • Você será atacado por algumas Crystal Spiders, Spectres e Ice Golems. Vá à leste o máximo que você puder. Quando você chegar a uma parede, vá ao sul e depois à oeste até encontrar uma escada. Cuidado, no caminho você encontrará as criaturas mencionadas e até mesmo Hand of Cursed Fates. • Suba as escadas para encontrar você mesmo no 'The Mirror Maze of Madness' (o espelho do labirinto da loucura). Todos os Phantasms encontrados vão ser falsos, ou seja, terão somente 65 de vida. Você encontrará, entretanto, Giant Spiders e Nightmares verdadeiros. • A direção que você deve seguir é: leste, subir a escada, oeste e sul, descer a escada, ao sul e depois a oeste, descer a escada, oeste, subir a escada, norte e depois oeste, descer a escada, sul e depois leste, subir a escada, e finalmente você encontrará um teleporte. • Entre nele para ir numa caverna submarina. Você caminhará devagar, como se estivesse em Calassa por exemplo. Aqui você encontrará Massive Water Elementals, Quara Pinchers], Quara Predators e Quara Hydromancers. • O caminho é reto, e quando você chegar no final, você verá o teleporte. Não entre no teleporte e volte imediatamente. • Agora você poderá enfrentar Zugurosh. Ele é imune e forte a tudo, exceto a magias de fogo e gelo. As torres apenas atacarão você (deixaram amaldiçoado), mas não vão tirar danos diretamente. O blocker deve lurar o demônio para longe do teleporte para que os shooters possam sumonar Fire Elementals para ficar mais fácil matar. • Quando ele estiver morto, vá ao teleporte para ser teletransportado para o próximo trono. O corredor sangrento: Madareth • Aqui você vai enfrentar um grande número de Dark Torturers, Betrayed Wraiths, Lost Souls e Hand of Cursed Fate. Mate os Dark Torturers primeiro. • Continue indo ao norte e depois à oeste para encontrar uma escada. Suba a escada, mas esteja preparado para enfrentar as criaturas já mencionadas. É recomendável que dois Knights High Level (level 200 ou superior) subam para blockar as criaturas e, imediatamente, Druids para healar eles, também Mages de level 150+ para usar Rage of the Skies ou Eternal Winter. • Vá para oeste, depois sul e você vai encontrar outras escadas. Você poderá usar a mesma tática anterior. Vá para o leste, norte e então você encontrará um teleporte. • Entre no teleporte e você vai encontrar Juggernauts, Hellfire Fighters, Plaguesmiths, Furies e Destroyers. Shooters devem usar Magic Wall Rune para formar uma barreira ou muitos monstros irão vir ao mesmo tempo. • Depois de matar todos os monstros, vá para o sudeste da sala e você vai encontrar um teleporte para a Madareth's Ward. Sorcerers e Druids podem usar runas de Icicle Runes e Paladinos podem usar Assassin Stars e Divine Missiles para matar Madareth. • Quando ele estiver morto, vá até o teleporte para ir até o próximo trono. Os túneis: Latrivan e Golgordan • Os túneis contém Son of Verminors, Plaguesmiths, Blightwalkers e Defilers espalhados em todo o lugar. • Após entrar nos túneis, vá para leste, e ao mesmo tempo ao norte, quando chegar na parede você vai encontrar um teleporte. Siga a linha azul e o teleporte está na cruz branca. • O teleporte leva para o campo de batalha que contêm Furys, Hellhounds, Destroyers, Blightwalkers, Hand of Cursed Fates, Hellfire Fighters, Nightmares, Dark Torturers, e alguns Juggernauts. Siga a linha azul e o teleporte está na cruz branca. O Arcano: Annihilon • O Arcano é um lugar com Warlocks, Lichs, Hand of Cursed Fates, Braindeaths, Vampires, Undead Dragons, Efreets, Diabolic Imps, e talvez mais. Siga a linha azul do mapa abaixo. • O Poço das Almas é repleto de Betrayed Wraiths, Spectres, Lost Souls, Phantasms, Demons e mais. • Vá até o sul, enquanto anda pela parede à oeste para evitar a maioria do spawn. Continue até o sul e você vai encontrar o teleporte até Annihilon. O Enxame: Hellgorak • Você será recebido por muitos Nightmares, Bonebeasts, Son of Verminor e Juggernauts. Vá para o norte e suba as rampas, onde você vai enfrentar muitas criaturas como Ancient Scarabs e Hellhounds. Continue para o norte onde vai ter mais rampas e criaturas, como Giant Spiders. Novamente, vá para o norte e leste para as últimas rampas. Mate os Juggernauts, Son of Verminor, Nightmares e Demons. • Entre no teleporte e enfrente Hellgorak. • Ele é imune/forte contra todos os danos, por isso todos os Mages devem convencer os Dreadbeasts sumonados pelas torres na sala. Estes danos permitem que você derrote ele. Esse é o único jeito de derrotar Hellgorak. • Matando-o, entre no teleporte para ir até o Shadow Nexus. The Shadow Nexus • A sala final consiste em Furys, Juggernauts, Demons, Undead Dragons e Hellhounds. Muitos blockers são necessários para evitar os ataques de Demons que são sumonados constantemente pelos Magic Pillars. Uma estratégia é usar runas de campo para não ter espaço para as criaturas surgirem (em mundos Optional PvP, Parcels podem ser usados). Cada Magic Pillars sumona 1 Demons. Existe no total 5 Magic Pillars. As suas localizações são mostradas na imagem acima, marcadas com um círculo azul, o Shadow Nexus são os dois pequenos pontos vermelhos no centro da sala. Os jogadores devem se aproximar exatamente no centro da tela, nos magic wall. Os jogadores devem: • Use o frasco no magic wall para eletrificar ele. • Use o frasco quando a parede mudar de eletricidade para fogo (Fire Field) no topo. • O magic wall vai voltar para o estágio de eletricidade e depois de 20 segundos vai voltar a queimar (Fire Field) no topo. • Use o frasco de novo na magic wall, e de novo ele vai voltar ao estágio de eletricidade. • O magic wall vai voltar para o estágio de eletricidade e depois de 20 segundos vai voltar a queimar (Fire Field) no topo. • Use o frasco de novo no magic wall pela terceira vez. • O magic wall torna-se totalmente incendiado com Fire Field no topo. • A partir daí, o jogador deve usar o frasco mais uma vez para completar a sua missão. O fogo completo tem a duração de cerca de 10 segundos, e se algum jogador conseguir alcançar o Fire Field e usar seu frasco nele, ele vai completar a missão instantaneamente. Um máximo de pessoas que podem completar essa missão é de 4-5 por Fire Field completo, depois disso ele vai voltar para sua posição original, e as medidas acima devem ser repetidas. Imagem dos players usando os frascos no Fire Field. Font: 10% iToouch, 90% TibiaWiki. Bom gente, quem não dar rep+ eu vou dar uma surra de madeira! Aushduasd, putz deu muito trabalho, pelo menos consegui! Até a próxima pessoal ;p1 ponto -
Aonde briga? SKOAKOSOPAPKOOSPA1 ponto
-
[Tutorial]Criando Quest !
23icaro reagiu a kiriguibidin por um tópico no fórum
CRIANDO QUEST'S ! 1° Crie um baú de chest no fim da quest ou em um local desejado a sua escolha : Uploaded with ImageShack.us 2° De um duplo click no bau e coloca em action ID um número maior que 2000 , e em unique ID , de preferencia um numero maior que 20000.(Não repita os mesmos numeros em outras quest ) Uploaded with ImageShack.us 3°De um duplo click nos quadrados pretos, procure o item por nome ou ID, e selecione : Uploaded with ImageShack.us É isso galera ! Dúvidas é so postar ! REP+ PORFAVOR !1 ponto -
Tutorial Lagos
aspratextibia reagiu a Nolis por um tópico no fórum
Olá galerinha do xTibia, vim mais uma vez postar um tutorial meu, dessa vez é um assunto bem interessante, lagos, você ja deve ter visto por ai alguém colocar "vitoria regia" no MAR ou em RIOS, Isso é completamente errado. Segundo minhas fontes, vitoria regia nasce, cresce e vive em lagos no meio das arvores, ou seja, em águas paradas. Hoje vou mostrar como fazer esses lagos ficarem perfeitos. Então Vamos Começar! Introdução Parte 1 - Area Antes de começar qualquer coisa é preciso ter a area, ou seja, o local que você vai usar, vou colocar uma area de 20x20 que é onde vai ficar o lago e o resto. Parte 2 - Construção/Planejamentos Agora Vamos planejar o que será feito, todo mapa que você fizer, terá que pensar antes 'o que fazer?' depois disso e só ir com calma, de pouco a pouco você consegue muito, após ter feito a area (20x20) coloque um lago com água de id 4608 e em volta do lado acrescente 'red mountain' de id 7988-7996 (ground 8133), apenas faça isso e podemos ir para o proximo passo, mas faça com calma, nunca tenha pressa pois a pressa é inimiga da perfeição . Veja a imagem abaixo: Parte 3 - Vegetação/Equilíbrio Bom agora e a parte em que você mais deve se dedicar, após ter acrescentado o lago va em /doodads/nature/lilypads e acrescente no lago, mas não muito junto, espalhe pela agua, agora no doodad você pode usar varios recursos, exemplo, acrescente alguns tall swamp grass, trees, green trees, grass tufts, swamp plants, uns log covered in moss para ficar mais real, espalhe uns 2-3 dead bushes, uns tall jungle grass, se quiser pode acrescentar algumas small rocks (mas não na agua claro), e outras vegetações que for de sua preferencia (desde que combine com o tipo de mapa que você está fazendo), a vegetação deve ser equilibrada, por exemplo, se há um deserto, não vai ter plantas, arvores, muita água, terá arvores mortas, pedras, areia (óbvio), Por isso procure pesquisar se aquele tipo de planta que você vai acrescentar seja o tipo serto para o seu local. Confira! Parte 4 - Resultado Final Agora é a etapa importante, se você gostou do seu mapa, procure olhar bem ele, detalhe em detalhe, procure bugs em cada canto, por que se estiver 1 bug só ja é um problema, para concluir você pode infeitar em volta, pode fazer uma selva, uma cidade perto dali, ou fazer outros lagos em volta. Confira o Resultado! Hora Da Dica Do Dan Procure fazer lagos, montanhas, casas entre outros 'aredondados' não faça aquela coisa quadrada sem graça que o pessoal do xTibia não irá gostar. Tende deixar detalhes óbvios em seu map, uma rachadura no chao, uma placa, um grass tuts, grass tufts são exelentes em nossos mapas, não faça so um quadrado um teto uma porta e uma janela, procure caprichar. Nunca use vitoria regia (lilylads) no mar ou em rios correntes. Faça mapas tranquilos que dão censasão de harmonia, use sua criatividade, se você não consegue fazer um belo mapa relaxa que aos poucos você pega o geito. Se For postar uma foto de um mapa seu e alguém te chingar por que achou feio não de bola, apenas aceite as opiniões construtivas. Não se esqueça de me dar um REP+1 ponto -
.:COLOCANDO UM SITE PHP NO AR:. Créditos: By: Rike(Eu, Tuto e .htaccess) Links: Rike(Eu, PHP, Link AppServer). Bom, há uns programinhas necessários pra rodar um site... Como o novo PHP que fiz utiliza alguns recursos de PHP5(O easy-php não tem suporte), vou disponibilizar outro Webserver aqui, com suporte a PHP5. Programas: -AppServ- http://prdownloads.sourceforge.net/appserv...10.exe?download -Scripts em PHP(Exclusivos para 7.6, by Me)- <a href="http://www.badongo.com/file/2389654" target="_blank">http://www.badongo.com/file/2389654</a> -AppServer- *Instale-o em qualquer lugar, a sua escolha. *Na parte que ele pede o domínio, e o e-mail, escreva localdomain e um e-mail qualquer(Pode ser falso) *Na pasta AppServer, onde você deve colocar os arquivos do site é no WWW. *Não precisa mudar nada de port =] E ele inicia o site junto com o Windows. *Para acessar seu site, acesse somente assim: http://SEUIP -Configurando o PHP- *Baixe os Scripts. *Descompacte o .rar na pasta www do AppServer, se ele perguntar se pode substituir, escolha Sim para Todos. *Agora, abra o config.php com algum editor de texto. *Terá o seguinte: *$diraccount= É o diretório de Accounts do OTServer. Coloque o diretório separando cada pasta com uma barra assim /, e quando terminar coloque /, enfim, como está o modelo. *$dirplayer= É o diretório de Players do OTServer. O mesmo de cima só que de players. *$dirhouses= É o diretório de Houses do OTServer. O mesmo de cima só que de houses. A próxima parte é a de índices, mas ignore, não é necessário mexer ali. OBS: Se quiser que os ranks e a procura peguem perfeitamente, você deve deixar no seu OT apenas os chars criados com ESTE php. Pode ocorrer de um player criado por outro site seja diferente(Muito provável), então, previna-se. *$maxplayers= Máximo de pessoas que entrarão no OTServer. *$site= Endereço do seu Site. *$servername= Nome do seu OTServer. *$serverip= IP do seu OTServer. *$serverport= Port do seu OTServer(Recomendado não alterar). *$titulo= O mesmo que o $topo. *$topo= Titúlo que aparecerá no topo da página. *$maxnumberacc= Número máximo de caracteres para a account. *$noticia= Notícia curta e rápida que aparecerá na página principal do site. *$new= Notícia rápida para deixar passando no site. *$sobre= Comentários sobre sua equipe. *$contato= Deixe true se quiser que exiba o e-mail de contato, senão, false. *$mail= Seu e-mail de contato(Caso $contato esteja em False, não precisa colocar). *$exibirgm= Deixe true se quiser que exiba os GMs, senão, false. *$gms= Os GMs do OTServer(Caso $exibirgm esteja em True, senão não precisa mudar)(Separe cada GM com <BR>). *$regras= Regras do OTServer(Separe cada Regra com <BR>). *$exprate= Quantos X é a EXP. *$mlrate= Quantos X é o Magic Level. *$skillrate= Quantos X é as Skills. *$lootrate= Quantos X é o Loot(1x= Loot normal). *$sqmhouse= Preço por SQM de uma casa. *$wrldmode= Modo do OTServer(PvP, Non-PvP, etc). *$prcrunas= Preço médio das runas. *$mostracount= Coloque TRUE se quiser que apareça um contador de accounts já feitas no servidor, ou coloque FALSE se não quiser. *$count= Nome do arquivo que guardará o número de pessoas que fizeram cadastro. OBS: Para mudar os equips iniciais, configure no Criarplayer.php, na pasta accounts, lá no finalzinho. -Protegendo seu OTServer- *Para proteger seu server, abra o Bloco de Notas e nele escreva: *Salve-o na pasta do seu ot como .htaccess . *Crie uma cópia do .htaccess e coloque esta cópia na pasta Ips, que fica na pasta account do PHP. *OBS: COLOQUE APENAS NA PASTA DO SEU OT, SENÃO O PHP VAI BUGAR E NÃO VAI DAR PRA CRIAR CHAR!!! -Colocando o site no ar com IP fixo- *Entre em <a href="http://www.no-ip.com" target="_blank">http://www.no-ip.com</a> . *Clique em Sign-Up Now! *Preencha todos os dados(Coloque e-mail certo, será necessário depois). *Se cadastre e espere o e-mail chegar. *Entre no e-mail, confirme sua conta do No-IP e entre com seu login no No-Ip. *No menu Hosts/Redirects, vá em Add. *No Hostname, escolha um nome a sua escolha. *Irá ter um "no-ip.info" embaixo, clique nele pra escolher um outro tipo de domínio... Exemplo: servegame.com . *Deixe tudo como está e clique em Create Host. *Como todo mundo sabe, ao reiniciar o computador ou a Internet, o IP irá mudar, então no site do No-IP, para facilitar, no canto superior esquerdo há um Current IP: <IP>, copie o <IP> lá no site e no config.lua do OT altere o IP. *No seu Host do No-IP também é necessário fazer isto, portanto copie o IP que aparece no site, vá em Manage no Menu, e no seu Host clique em Modify. *Na caixa IP Address altere o IP pelo que você copiou. *Lembrando: SEMPRE QUE REINICIAR A NET OU O PC REPITA ESTE PROCESSO DE ALTERAÇÃO DO IP! -Testando a segurança do seu site- *Entre em seu site...(http://seuip/index.php) *Após o "seuip", digite /A PASTA DO SEU OT . *Se não aparecer nada, muito bem, sua pasta do OTServer está protegida! *Não apareceu nada? Então parabéns! *Seu site está bem protegido e seu OT não sofrerá hackings... -Finalizando- *Rode seu OT! *E pronto! Site ON, OT ON! ^^ *Seu site poderá ser acessado por: *Exemplo: OBS: Caso o PHP seja outro, o processo fundamental do config.php não vai mudar muito.Faça do seu jeito, fuce tudo, procure bastante pelos erros, seja persistente! Outra opção para ver seu IP é o site <a href="http://www.whatip.com" target="_blank">http://www.whatip.com</a> , e o site <a href="http://www.meuip.com.br" target="_blank">http://www.meuip.com.br</a> . Espero ter ajudado MUITA gente! ^^' Flwwwww e COMENTEM!!! Atualizado pela última vez no dia: 05/03/07, PHP Completamente diferente. *PHP Atualizado novamente, com muitos fixes.* *Caso seu site não consiga ser acessado por outras pessoas, sinto dizer, mas você não vai poder abrir sites com Internet Compartilhada. Verifique também se o endereço está certo.*1 ponto
-
Olá, eu estava sem sono, ai resolvi fazer algo de útil, então criei esta cave, espero que gostem :peace: Images: Download: Dragon Lord Cave.rar Scan: http://www.virustotal.com/pt/analisis/c26eb6d389aa1447041f0cb044ea65864255e83b9154e890411dc0d255c39fe1-1265696166 Enjoy it. cya~~1 ponto
-
Como Se Livrar De Pks, Aprenda A Driblar Esses Covardes!
fsg reagiu a dirceujunior1 por um tópico no fórum
excelente tutorial(principalmente para quem ta começando com tibia agora)-1 pontos