TekaZudo
seuserver.com.br
DESCRIÇÃO
Anuncie aqui neste countdown e dê maior visibilidade ao seu lançamento |
Full Global • Custom Quests • Custom Outfits • Lottery System • Version 15x
Inicia em:
--
Participar
Histórico de Curtidas
-
Moose recebeu reputação de Alecrim em VIP System by Mock 100%facinho entra no sqlite studio abre a tabela account ai vai em edit table, clica em add column digita o nome da coluna vip_time em data type deixa VARCHAR na frente bota 255 em column constraints seleciona not null depois clica em add e pronto.
ou deleta a tabela accounts e executa essa no sql query
CREATE TABLE accounts (
id INTEGER PRIMARY KEY
NOT NULL,
name VARCHAR( 255 ) NOT NULL,
password VARCHAR( 255 ) NOT NULL,
premdays INTEGER NOT NULL
DEFAULT ( 0 ),
lastday INTEGER NOT NULL
DEFAULT ( 0 ),
email VARCHAR( 255 ) NOT NULL
DEFAULT ( '' ),
[key] VARCHAR( 32 ) NOT NULL
DEFAULT ( 0 ),
blocked BOOLEAN NOT NULL
DEFAULT ( 0 ),
warnings INTEGER NOT NULL
DEFAULT ( 0 ),
group_id INTEGER NOT NULL
DEFAULT ( 1 ),
salt VARCHAR( 40 ) NOT NULL
DEFAULT ( '' ),
vip_time VARCHAR( 255 ) NOT NULL
);
-
Moose recebeu reputação de wessiley em Sistema SHOP System - sem siteEsse sistema usa premium points, bom para otserv que nao tem site baiak, mapa proprio daria pra usar com global tambem fica a escolha de quem usar.
Testado em: TFS 0.3 e 0.4
Vamos instalar o sistema, primeiro entre em data/libs e abra o arquivo 050-function.lua e adicione:
depois de ter feito isso vamos criar a talkactions que comprará o item e removerá os pontos da conta, entre em data/talkactions/scripts e crie o arquivo vipsword.lua e adicione:
function onSay(cid, words, param) if ChecarPontos(cid) >= 2 then doPlayerAddItem(cid,2400,1) RemoverPontos(cid, 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce compro uma vip sword por 2 pontos!") else doPlayerSendCancel(cid, "Voce nao tem pontos suficiente!") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return TRUE end
Configurando:
ChecarPontos(cid) >= 2
doPlayerAddItem(cid,2400,1)
RemoverPontos(cid, 2)
No Verde e Laranja coloca quantos pontos quer remover da conta.
No Azul id do item.
No Vermelho quantidade do item.
apos te configurado abra o talkactions.xml e adicione a seguinte linha:
<talkaction words="!vipsword" event="script" value="vipsword.lua"/>
para cada item que vc quizer adiciona basta crar um novo arquivo lua por o script e editar com o items desejado e adicionando em talkactions.xml.
Os adms que quizerem por os pontos para vender por crystal coin o script e esse abaixo, entre em data/talkactions/scripts e crie o arquivo buypontos.lua e adicione:
function onSay(cid, words, param) if getPlayerItemCount(cid, 2160) >= 10 then doPlayerRemoveItem(cid, 2160, 10) AddPontos(cid, 5) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce comprou 10 pontos") else doPlayerSendCancel(cid, "Voce nao tem dinheiro suficiente para comprar pontos!") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return TRUE end
Configurando:
getPlayerItemCount(cid, 2160) >= 10 then
doPlayerRemoveItem(cid, 2160, 10)
AddPontos(cid, 5)
No Marron coloca quantos crystal coin quer remover do player
No Rosa quantidade de pontos para adicionar ao player.
apos te configurado abra o talkactions.xml e adicione a seguinte linha:
<talkaction words="!buypontos" event="script" value="buypontos.lua"/>
para funcionar perfeitamente execute no mysql:
-
Moose recebeu reputação de kinomoto em [9.71] Azeroth Server V.2.1Azeroth Server
Updated 09/12/2012: v2.1
Versão: 9.71
Distro: TheForgottenServer
Mapa Base: Yourots Edited e Mix Yourots
Features:
> 7 Cidades:
Azeroth
Avalon
Zatur
Liberty Bay
Gloria
Sand Trap
Tiquanda
> Montarias por quest(NPC Mount Master, cavernas ao norte de Azeroth).
> NPCs de Travel/Boat diferentes para cada cidade.
> Corrigidos Vários Bugs do mapa.
> Templo Reformado
> Retirados Vários Itens custom e suas quests do antigo Riot Server.
> Adicionada Dragon Dungeon.
> Adicionado Vulcão de Goroma.
> Adicionada Quest Especial em Gloria (NPC Gloria Scientist).
> Adicionada Ferumbras Tower.
> Várias Hunts adicionadas.
> Adicionada Formorgar Mines.
> Sistema de Refinamento e Slot.
> 6 Novas Mounts.
> Principais Quests:
Annihilator
Pits of Inferno
The Inquisition
FireWalker Boots
Demon Helmet
Draken
Hell Conquer
> 23 Raids Automáticas e configuradas:
Rats (Azeroth)
Crabs (Azeroth)
Bugs (Gloria)
Orshabaal (Demon Field)
Demodras (Dragon Dungeon)
Stonecracker (Behemoth Caves)
Morgaroth (Goroma Volcano)
Ghazbaran (Formorgar Mines)
Ferumbras (Ferumbras Tower)
Elfs (Saragoka Village)
Orcs (Azeroth)
Quaras (Desert Sea)
Bandits (Avalon Road)
Pirates (Liberty bay)
The Old Widow (Plains of Havoc)
Scarabs (Sand Trap)
The Count (Azeroth)
Undeads (Plains of Havoc)
Massacre (Pits of Inferno)
The Horned Fox (Azeroth)
Mutated Monsters (Gloria)
Apes (Tiquanda)
Werewolf (Wolf Caves)
> Sistema de Guerras pelo Castelo [Honor Castle, a oeste de Azeroth]
Evento automático. Quando a guerra é anunciada as guilds podem batalhar pelo controle do castelo, dando use no monumento do último andar e permanecendo assim até a guerra acabar. O último jogador a ter o controle do castelo antes do tempo acabar será o vencedor, e sua guild se tornará dona do castelo. Todos os membros da Guild ganharão uma recompensa e poderão acessar o mapa do subsolo. Os membros de outras Guilds serão teleportados para o templo e não poderão acessar o castelo.
O sistema envia mensagens a todos antes de o evento começar, quando começar, quando o dono do castelo muda, antes de se finalizar e ao finalizar, relatando o conquistador do castelo e a guild vencedora.
Imagens:
Raids
Para editar o tempo e as chances das raids, vá em data/raids/raids.xml:
Cada linha corresponde a uma Raid. O interval2 corresponde ao tempo para executar a chance, e esta é a probabilidade da raid acontecer. O tempo do interval2 é contado em minutos, e a chance, em porcentagem.
Castle
Para editar o tempo de ocorrência da Guerra pelo Castelo, vá em data/globalevents/globalevents.xml:
O interval corresponde ao tempo, em milisegundos, que demorará para acontecer o evento. Está preconfigurado para acontecer sempre 1 vez por semana, contando a partir do momento de abertura do servidor, mas você pode configurar para ele acontecer a uma hora fixa do dia etc. Aconselho nunca colocar um tempo menor do que 1 h e meia ou 2h (7200000 milisegundos), pois se o tempo de inicialização for menor que o tempo de duração, você vai ter alguns erros feios.
Upgrade & Slot System
Os items podem ser refinados, tendo seu ataque, defesa e armadura aumentados. Existem 2 items para melhorar os equipamentos: Upgrade Powder(8301) que pode ser obtido em quests, drops de monstros e por mineração, possui chance de falha. Quando o upgrade falha o equipamento não é perdido, apenas voltará 1 level (de +3 para +2 por exemplo). Também há o Perfect Powder, que é muito raro de se encontrar e é obtido de quests difíceis e drop de bosses das raids. Este possui 100% de chance de sucesso.
Os jogadores também poderão abrir Slots em seus equipamentos e, de forma aleatória, criar equipamentos únicos com bônus de Hp, Mp, Ml, Shielding, Cas (Club, Axe e Sword Skill) e Distance.
Juntando os 2, você poderá fazer coisas como essa:
Enjoy =]
Não há teleports diretos para hunts ou quests.
Não há items ou monstros editados(além dos trainers).
Não há sistema VIP(premium account valorizada).
Não há raids com monstros excessivamente fortes nas cidades iniciais.
Créditos:Unknow YourOts Edited, Mix Yourots Team, Crystal Server Team, Tryller, Mock,Vmspk, TFS Team, Vampira ( Link MediaFire) e um pouquinho (bem pouquinho) pra mim xD.
Download Azeroth Server V 2.1 - Completo [4SHARED]
Comandos: !war para executar a guerra pelo castelo manualmente, !reset para interromper o funcionamento da war e !castle para limpar todos os dados, ou seja, o castelo volta a ser terra de ninguém.
V 2.0
> Servidor 9.60
> Distro TFS 9.6
> Trainer OFFLLINE - Nao esta adicionado no MAPA mais e so vc entrar em actions ver os IDs das estatuas e adicionar
> Principais quests testadas e funcionando
> Addons e Mounts 100%
V 2.1
> Servidor 9.70
> Distro TFS 9.70
> Trainer Beds 100%
> Mounts 9.7 100%
Contato: [email protected]
Edit - Coloquei os Scans
Edit2 - Adicionado comando
Edit3 - Atualização
Edit4 - Atualização
-
Moose recebeu reputação de L3K0T em distro fechar com hora marcada.se for shutdown e so fazer assim, Em data/globalevents/scripts, crie um arquivo chamado autoshut.lua e adicione dentro:
function onThink(interval, lastExecution, thinkInterval) doShutdown() return true end E em globalevents.xml, essa tag:
<globalevent name="Shutdown" time="6:00" event="script" value="autoshut.lua"/>
ai pra colcoar outros horarios e so vc ir adicionado no globalevents.xml e alterando a hora ex:
<globalevent name="Shutdown2" time="12:00" event="script" value="autoshut.lua"/> <globalevent name="Shutdown3" time="18:00" event="script" value="autoshut.lua"/> <globalevent name="Shutdown4" time="00:00" event="script" value="autoshut.lua"/>
e pronto isso ai.
-
Moose recebeu reputação de Gui Lima em VIP System by Mock 100%facinho entra no sqlite studio abre a tabela account ai vai em edit table, clica em add column digita o nome da coluna vip_time em data type deixa VARCHAR na frente bota 255 em column constraints seleciona not null depois clica em add e pronto.
ou deleta a tabela accounts e executa essa no sql query
CREATE TABLE accounts (
id INTEGER PRIMARY KEY
NOT NULL,
name VARCHAR( 255 ) NOT NULL,
password VARCHAR( 255 ) NOT NULL,
premdays INTEGER NOT NULL
DEFAULT ( 0 ),
lastday INTEGER NOT NULL
DEFAULT ( 0 ),
email VARCHAR( 255 ) NOT NULL
DEFAULT ( '' ),
[key] VARCHAR( 32 ) NOT NULL
DEFAULT ( 0 ),
blocked BOOLEAN NOT NULL
DEFAULT ( 0 ),
warnings INTEGER NOT NULL
DEFAULT ( 0 ),
group_id INTEGER NOT NULL
DEFAULT ( 1 ),
salt VARCHAR( 40 ) NOT NULL
DEFAULT ( '' ),
vip_time VARCHAR( 255 ) NOT NULL
);
-
Moose recebeu reputação de rafanasser em Paladins atacando e usando potions!simples mais e um otimo topico eu mesmo estava atraz disso e nunca tinha conseguido achar, rep+ pra ti
-
Moose recebeu reputação de cleitonbandeira em [9.71] Global Compacto+Trainers OfflineGlobal Compacto
Updated 09/12/2012: v2.1
Versão: 9.71
Distro: TheForgottenServer
Mapa Base: Mapa Global Compacto
cidades
Carlin
Thais
Port Hope
Ankrahmarum
Svargrond
Edron
Informações
Npc's da cidade igual global e alguns editados.
Sistema de Addon igual a do Global
Teleportes para hunt's + de 60 no total
Sistema [VIP]
Distro TFS 0.3.7
Trainers Offline Statuas e camas
Mounts 9.70
Magias 9.60+
E tem muitooo mais coisa se tem que baixa isso é um espetaculo.
Imagen
Download Global Compacto - Completo [4SHARED]
Créditos:
EddyHavoc: (Atualizações e versão 9.44)
Soldoran: (Servidor 8.60)
Moose: (Atualização 9.7, Magias, Mounts, Addons e Sistemas)
Virus Scan: Virus Total
-
Moose recebeu reputação de jNo em [Resolvido] Alguém me passa o script do The Plasmother?<?xml version="1.0" encoding="UTF-8"?> <monster name="The Plasmother" nameDescription="the plasmother" race="venom" experience="8900" speed="310" manacost="0"> <health now="16050" max="16050"/> <look type="238" corpse="6532"/> <targetchange interval="5500" chance="10"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" skill="30" attack="50"/> <attack name="speed" interval="1000" chance="8" radius="6" target="0" speedchange="-800" duration="10000"> <attribute key="areaEffect" value="poison"/> </attack> <attack name="earth" interval="2000" chance="15" target="0" radius="4" min="-200" max="-350"> <attribute key="areaEffect" value="poison"/> </attack> <attack name="earth" interval="3000" chance="15" target="1" radius="4" min="-200" max="-530"> <attribute key="areaEffect" value="greenspark"/> <attribute key="shootEffect" value="poison"/> </attack> </attacks> <defenses armor="30" defense="30"> <defense name="healing" interval="1000" chance="75" min="505" max="605"> <attribute key="areaEffect" value="blueshimmer"/> </defense> </defenses> <elements> <element firePercent="-20"/> <element enerPercent="15"/> </elements> <immunities> <immunity poison="1"/> <immunity lifedrain="1"/> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="Blubb"/> </voices> <loot> <item id="2148" countmax="70" chance1="20000" chancemax="0"/><!-- gold coins --> <item id="2148" countmax="60" chance1="20000" chancemax="0"/><!-- gold coins --> <item id="2148" countmax="45" chance1="20000" chancemax="0"/><!-- gold coins --> <item id="2152" countmax="13" chance1="25000" chancemax="0"/><!-- platinum coin --> <item id="6500" chance1="45000" chancemax="0"/><!-- demonic essence --> <item id="2144" countmax="3" chance1="5000" chancemax="0"/><!-- black pearl --> <item id="2146" countmax="3" chance1="5000" chancemax="0"/><!-- small sapphire --> <item id="5944" chance="35000"/><!-- soul orb --> <item id="6535" chance="100000"/><!-- the plasmother's remains --> </loot> </monster> -
Moose recebeu reputação de lagoa em Script de teleporte para encantar pedras por vocação e levelBaixe o anexo extraia coloca a pasta na pasta data/movements/scripts
depois abre o movements.xml e adicione:
alters.rar
-
Moose recebeu reputação de Skyforever em [pedido]Creaturescripts - Deletando chardeu o seguitne erro:
-
Moose recebeu reputação de Markin em [pedido]Creaturescripts - Deletando chardeu o seguitne erro:
-
Moose deu reputação a Artur Henrique em Paladins atacando e usando potions!Se não estiver na area correta, peço para que algum moderador mude.
Bem gente, eu estava com um problema que era tipo, os paladins não atacavam ao usar potions e runes.. Após uma longa busca de como concertar isso, eu encontrei em outro forum e decidi trazer aqui afinal sei que muita gente tem problemas com isso, é algo bem simples olha:
Abra Weapons.xml, e adicione essa tag em todas as Ammunitions de RP
swing="true"
Vai ficar tipo:
Antes:
<distance id="7367" level="42" event="function" value="default"/>
Depois:
<distance id="7367" level="42" swing="true" event="function" value="default"/>
Bem gente é isso, espero ter ajudado.. vlws ai
-
Moose recebeu reputação de tiagoduuarte em Passar o OT do Host pro meu PCcompacta o ot, envia para a pasta /var/www e baixa pelo seu navegador ex:
zip -r otserv.zip pastadoot
depois dezipado manda pro www
mv otserv.zip /var/www
ai depois so ir no navegador: http://seusite/otserv.zip e faça o download.
-
Moose recebeu reputação de sear10 em Sistema SHOP System - sem siteEsse sistema usa premium points, bom para otserv que nao tem site baiak, mapa proprio daria pra usar com global tambem fica a escolha de quem usar.
Testado em: TFS 0.3 e 0.4
Vamos instalar o sistema, primeiro entre em data/libs e abra o arquivo 050-function.lua e adicione:
depois de ter feito isso vamos criar a talkactions que comprará o item e removerá os pontos da conta, entre em data/talkactions/scripts e crie o arquivo vipsword.lua e adicione:
function onSay(cid, words, param) if ChecarPontos(cid) >= 2 then doPlayerAddItem(cid,2400,1) RemoverPontos(cid, 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce compro uma vip sword por 2 pontos!") else doPlayerSendCancel(cid, "Voce nao tem pontos suficiente!") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return TRUE end
Configurando:
ChecarPontos(cid) >= 2
doPlayerAddItem(cid,2400,1)
RemoverPontos(cid, 2)
No Verde e Laranja coloca quantos pontos quer remover da conta.
No Azul id do item.
No Vermelho quantidade do item.
apos te configurado abra o talkactions.xml e adicione a seguinte linha:
<talkaction words="!vipsword" event="script" value="vipsword.lua"/>
para cada item que vc quizer adiciona basta crar um novo arquivo lua por o script e editar com o items desejado e adicionando em talkactions.xml.
Os adms que quizerem por os pontos para vender por crystal coin o script e esse abaixo, entre em data/talkactions/scripts e crie o arquivo buypontos.lua e adicione:
function onSay(cid, words, param) if getPlayerItemCount(cid, 2160) >= 10 then doPlayerRemoveItem(cid, 2160, 10) AddPontos(cid, 5) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce comprou 10 pontos") else doPlayerSendCancel(cid, "Voce nao tem dinheiro suficiente para comprar pontos!") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return TRUE end
Configurando:
getPlayerItemCount(cid, 2160) >= 10 then
doPlayerRemoveItem(cid, 2160, 10)
AddPontos(cid, 5)
No Marron coloca quantos crystal coin quer remover do player
No Rosa quantidade de pontos para adicionar ao player.
apos te configurado abra o talkactions.xml e adicione a seguinte linha:
<talkaction words="!buypontos" event="script" value="buypontos.lua"/>
para funcionar perfeitamente execute no mysql:
-
Moose recebeu reputação de Markin em Sistema SHOP System - sem siteEsse sistema usa premium points, bom para otserv que nao tem site baiak, mapa proprio daria pra usar com global tambem fica a escolha de quem usar.
Testado em: TFS 0.3 e 0.4
Vamos instalar o sistema, primeiro entre em data/libs e abra o arquivo 050-function.lua e adicione:
depois de ter feito isso vamos criar a talkactions que comprará o item e removerá os pontos da conta, entre em data/talkactions/scripts e crie o arquivo vipsword.lua e adicione:
function onSay(cid, words, param) if ChecarPontos(cid) >= 2 then doPlayerAddItem(cid,2400,1) RemoverPontos(cid, 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce compro uma vip sword por 2 pontos!") else doPlayerSendCancel(cid, "Voce nao tem pontos suficiente!") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return TRUE end
Configurando:
ChecarPontos(cid) >= 2
doPlayerAddItem(cid,2400,1)
RemoverPontos(cid, 2)
No Verde e Laranja coloca quantos pontos quer remover da conta.
No Azul id do item.
No Vermelho quantidade do item.
apos te configurado abra o talkactions.xml e adicione a seguinte linha:
<talkaction words="!vipsword" event="script" value="vipsword.lua"/>
para cada item que vc quizer adiciona basta crar um novo arquivo lua por o script e editar com o items desejado e adicionando em talkactions.xml.
Os adms que quizerem por os pontos para vender por crystal coin o script e esse abaixo, entre em data/talkactions/scripts e crie o arquivo buypontos.lua e adicione:
function onSay(cid, words, param) if getPlayerItemCount(cid, 2160) >= 10 then doPlayerRemoveItem(cid, 2160, 10) AddPontos(cid, 5) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce comprou 10 pontos") else doPlayerSendCancel(cid, "Voce nao tem dinheiro suficiente para comprar pontos!") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return TRUE end
Configurando:
getPlayerItemCount(cid, 2160) >= 10 then
doPlayerRemoveItem(cid, 2160, 10)
AddPontos(cid, 5)
No Marron coloca quantos crystal coin quer remover do player
No Rosa quantidade de pontos para adicionar ao player.
apos te configurado abra o talkactions.xml e adicione a seguinte linha:
<talkaction words="!buypontos" event="script" value="buypontos.lua"/>
para funcionar perfeitamente execute no mysql:
-
Moose recebeu reputação de vida em [Resolvido] editando itenso problema nao e no item vai em data\weapons abra o weapons.xml e procura o id da sword ai vai esta algo mais ou menos assim:
<melee id="7873" level="45" unproperly="1" event="function" value="default"> <vocation id="4"/> </melee> e adiciona depois do <vocation id="4"/>: <vocation id="8"/> <vocation id="12"/> e salva reabre o ot e funcionará. -
Moose recebeu reputação de gabdi16 em Erro no NPCnao tem nada errado com o npc esses erros ai da por que a lib do seus NPC nao sao compativeis
-
Moose recebeu reputação de Fausto32 em Como por para o playay ganhar 3 dias de vip ao criar a acc em Mysql?Tente esse novo e faça bkp do original.
<b> <?php $location = array( 'GER' =>'Europe', // 'USA' =>'North America' ); $default = 'all'; $worlds = array(); $worlds[0] = array('GER', 'open'); /* $worlds[1] = array('GER', 'optional'); $worlds[2] = array('GER', 'hardcore'); $worlds[3] = array('USA', 'open'); $worlds[4] = array('USA', 'optional'); $worlds[5] = array('USA', 'hardcore'); */ $voc = array(); // if empty, Rook Sample will be used $voc[1] = 'Sorcerer'; $voc[2] = 'Druid'; $voc[3] = 'Paladin'; $voc[4] = 'Knight'; $suggestname = NULL; // not available $version = '860'; // for download link foreach($worlds as $k =>$v) // remove invalid worlds if(!isset($location[$v[0]]) || !isset($config['site']['worlds'][$k])) unset($worlds[$k]); $tmp = array(); foreach($location as $k =>$v) // remove invalid/unused locations foreach($worlds as $i =>$j) if($j[0] == $k) { $tmp[$k] = $v; break; } $location = $tmp; unset($tmp); if(isset($_POST['step']) && $_POST['step'] == 'docreate') { $e = array(); $s = isset($_POST['accountname']) ? $_POST['accountname'] : ''; if($s == '') $e['acc'] = 'Please enter an account name!'; elseif(strlen($s) < 6) $e['acc'] = 'This account name is too short!'; elseif(strlen($s) > 30) $e['acc'] = 'This account name is too long!'; else { $s = strtoupper($s); if(!ctype_alnum($s)) $e['acc'] = 'This account name has an invalid format. Your account name may only consist of numbers 0-9 and letters A-Z!'; elseif(!preg_match('/[A-Z]/', $s)) $e['acc'] = 'Your account name must include at least one letter A-Z!'; else { $con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.'); mysql_select_db($config['server']['sqlDatabase']); if(mysql_num_rows(mysql_query('SELECT id FROM accounts WHERE name=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0) $e['acc'] = 'This account name is already used. Please select another one!'; } } $s = isset($_POST['name']) ? trim($_POST['name']) : ''; if(empty($s)) $e['name'] = 'Please enter a name for your character!'; elseif(strlen($s) < 3 || strlen($s) > 15) $e['name'] = 'A name must have at least 3 but no more than 15 letters!'; elseif(preg_match('/[^a-zA-Z ]/', $s)) $e['name'] = 'This name contains invalid letters. Please use only A-Z, a-z and space!'; elseif(!ctype_upper($s[0])) $e['name'] = 'The first letter of a name has to be a capital letter!'; elseif(strpos($s, ' ') !== false) $e['name'] = 'This name contains more than one space between words. Please use only one space between words!'; else { foreach(explode(' ', $s) as $k =>$v) { $words[$k] = str_split($v); $len = strlen($v); if($len == 1) { $e['name'] = 'This name contains a word with only one letter. Please use more than one letter for each word!'; break; } elseif($len > 14) { $e['name'] = 'This name contains a word that is too long. Please use no more than 14 letters for each word!'; break; } } if(!isset($e['name'])) { $total=0; foreach($words as $k =>$p) { if(isset($e['name'])) break; $total++; if($total > 3) { $e['name'] = 'This name contains more than 3 words. Please choose another name!'; break; } $len=0; foreach($p as $i =>$j) { $len++; if($i != 0 && ctype_upper($j)) { $e['name'] = 'In names capital letters are only allowed at the beginning of a word!'; break; } elseif($i == $len-1) { $ff=null; for($h=0;$h<strlen($v); $h++) { if(in_array(strtolower($v[$h]), array('a','e','i','o','u')) !== false) { $ff=true; break; } } if(!$ff) { $e['name'] = 'This name contains a word without vowels. Please choose another name!'; break; } } } } if(!isset($e['name'])) { $s = strtolower($s); for($i = 0; $i < strlen($s); $i++) if($s[$i] == $s[($i+1)] && $s[$i] == $s[($i+2)]) { $e['name'] = 'This character name is already used. Please select another one!'; break; } if(!isset($e['name'])) { foreach(array('aa ', 'ee', 'ii', 'oo', 'uu', 'gm','cm', 'aff ', 'god ', 'abc', 'tutor', 'game', 'admin', 'the ') as $v) if($v == substr($s, 0, strlen($v))) { $e['name'] = 'This character name is already used. Please select another one!'; break; } if(!isset($e['name'])) { foreach(array('game', 'customer', 'support', 'fuck', 'haha', 'sux', ' abc', 'suck', 'noob', 'tutor', 'admin', 'account', 'gay', 'password', 'manager', 'frost dragon', 'dragon lord', 'dragon', 'demon', 'minotaur', 'hydra') as $v) if(strpos($s, $v) !== false) { $e['name'] = 'This character name is already used. Please select another one!'; break; } if(!isset($e['name'])) { if(!isset($con)) { $con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.'); mysql_select_db($config['server']['sqlDatabase']); } if(mysql_num_rows(mysql_query('SELECT id FROM players WHERE name=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0) $e['name'] = 'This character name is already used. Please select another one!'; } } } } } } if(!isset($_POST['world']) || empty($_POST['world'])) $e['world'] = 'Please select a game world for your character!'; if(!isset($_POST['sex']) || ($_POST['sex'] != 'male' && $_POST['sex'] != 'female')) $e['sex'] = 'Please select the sex for your character!'; if(count($voc) != 0 && (!isset($_POST['vocation']) || !is_numeric($_POST['vocation']) || !isset($voc[$_POST['vocation']]))) $e['vocation'] = 'Please select the vocation for your character!'; $s = isset($_POST['email']) ? $_POST['email'] : ''; if($s == '') $e['email'] = 'Please enter your email address!'; elseif(strlen($s) > 49) $e['email'] = 'Your email address is too long!'; elseif(!filter_var($s, FILTER_VALIDATE_EMAIL)) $e['email'] = 'This email address has an invalid format. Please enter a correct email address!'; else { if(!isset($con)) { $con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.'); mysql_select_db($config['server']['sqlDatabase']); } if(mysql_num_rows(mysql_query('SELECT id FROM accounts WHERE email=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0) $e['email'] = 'This email address is already used. Please enter another email address!'; } $s1 = isset($_POST['password1']) ? $_POST['password1'] : ''; $s2 = isset($_POST['password2']) ? $_POST['password2'] : ''; if(empty($s2)) $e['pass'] = 'Please enter the password again!'; elseif($s1 != $s2) $e['pass'] = 'The two passwords do not match!'; else { $err = array(); if(strlen($s1) < 8 || strlen($s1) > 29) $err[] = 'The password must have at least 8 and less than 30 letters!'; if(!ctype_alnum($s1)) $err[] = 'The password contains invalid letters!'; if(!preg_match('/[a-zA-Z]/', $s1)) $err[] = 'The password must contain at least one letter A-Z or a-z!'; elseif(!preg_match('/[0-9]/', $s1)) $err[] = 'The password must contain at least one letter other than A-Z or a-z!'; if(count($err) != 0) { $e['pass'] = ''; for($i=0; $i < count($err); $i++) $e['pass'] .= ($i == 0 ? '' : '<br/>').$err[$i]; } } if(!isset($_POST['agreeagreement']) || empty($_POST['agreeagreement'])) $e['agreement'] = 'You have to agree to the Tibia Service Agreement in order to create an account!'; if(!isset($_POST['agreerules']) || empty($_POST['agreerules'])) $e['rules'] = 'You have to agree to the Tibia Rules in order to create an account!'; if(!isset($_POST['agreeprivacy']) || empty($_POST['agreeprivacy'])) $e['privacy'] = 'You have to agree to the Tibia Privacy Policy in order to create an account!'; if(count($e) == 0) { $worldid = NULL; foreach($config['site']['worlds'] as $id =>$name) if($worlds[$id] && $name == $_POST['world']) { $worldid = $id; break; } if($worldid === FALSE) $e['world'] = 'Please select a valid game world.'; } if(count($e) != 0) { $main_content = '<div class="SmallBox"><div class="MessageContainer"><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif)"/></div><div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div><div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div><div class="ErrorMessage"><div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"/></div><div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"/></div><div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif)"/></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($e as $error) $main_content .= $error.'<br/>'; $main_content .= '</div><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif)"/></div><div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div><div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div></div></div><br/>'; } else { $random = rand(1, 9999999); $n = $random; $cur = array(); $q = mysql_query('SELECT id FROM accounts'); while ($r = mysql_fetch_array($q, MYSQL_NUM)) $cur[] = $r[0]; while(true) { if(!in_array($n, $cur)) break; $n++; if($n > 9999999) $n = 1; if($n == $random) die('Failed to create account.'); } if(mysql_query("INSERT INTO accounts (id,name,password,premdays,email,created) VALUES($n,'".$_POST['accountname']."','".($config['server']['encryptionType'] == 'plain' ? $_POST['password1'] : hash($config['server']['encryptionType'], $_POST['password1']))."','".($config['site']['newaccount_premdays'])."','".$_POST['email']."',".time().")") === true) { $sample = (count($voc) == 0 ? 'Rook' : $voc[$_POST['vocation']]).' Sample'; $q = mysql_query("SELECT id,vocation,town_id,experience,level,maglevel,health,healthmax,mana,manamax,soul,lookbody,lookfeet,lookhead,looklegs,lookaddons,cap,save,posx,posy,posz FROM players WHERE name='$sample' LIMIT 1"); if(mysql_num_rows($q) != 1) die('Missing sample character ('.$sample.')'); $q = mysql_fetch_array($q); mysql_query('INSERT INTO players (name,world_id,account_id,level,vocation,health,healthmax,experience,lookbody,lookfeet,lookhead,looklegs,looktype,lookaddons,maglevel,mana,manamax,soul,town_id,posx,posy,posz,cap,sex,created) VALUES(\''.$_POST['name'].'\','.$worldid.','.$n.','.$q['level'].','.$q['vocation'].','.$q['health'].','.$q['healthmax'].','.$q['experience'].','.$q['lookbody'].','.$q['lookfeet'].','.$q['lookhead'].','.$q['looklegs'].','.($_POST['sex'] == 'female' ? 136 : 128).','.$q['lookaddons'].','.$q['maglevel'].','.$q['mana'].','.$q['manamax'].','.$q['soul'].','.$q['town_id'].','.$q['posx'].','.$q['posy'].','.$q['posz'].','.$q['cap'].','.($_POST['sex'] == 'female' ? 0 : 1).','.time().')'); } else die('Failed to create account.'); $main_content = '<div class="SmallBox"><div class="MessageContainer"><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif)"/></div><div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div><div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div><div class="Message"><div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"/></div><div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"/></div><table><tr><td class="LabelV">Note:</td><td style="width:100%"><p>Your account and character have been created successfully.</p></td></tr></table></div><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif)"/></div><div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div><div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div></div></div><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif)"></div><div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></div><div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></div><br/><div class="TableContainer"><table class="Table4" cellpadding="0" cellspacing="0"><div class="CaptionContainer"><div class="CaptionInnerContainer"><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif)"></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"/></span><div class="Text">Download Client</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"/></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif)"></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></span></div></div><tr><td><div class="InnerTableContainer"><table style="width:100%"><tr><td><table width="100%" cellpadding=0 cellspacing=0><tr><td style="vertical-align:top"><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td><table style="width:100%;text-align:center"><tr><td><a href="http://tibiaclient.com/files/tibia'.$version.'.exe" type="application/octet-stream" target="_top"><img style="width:180px;height:180px;border:0px" src="account/download_windows.png"/></a></td><td><a href="http://tibiaclient.com/files/tibia'.$version.'.tar" type="application/octet-stream" target="_top"><img style="width:180px;height:180px;border:0px" src="account/download_linux.png"/><br/></a></td></tr><tr><td valign="top"><a href="http://www.mediafire...g48tx82cm8neenj" type="application/octet-stream" target="_top">Baixe nosso Cliente Propio</a></td><td valign="top"><a href="http://tibiaclient.com/files/tibia'.$version.'.tar" type="application/octet-stream" target="_top">Linux Tibia Client '.(sprintf('%01.2f', $version / 100)).'</a></td></tr><tr><td colspan="2">[<span class="HelpLink" onClick="window.open(\'http://www.tibia.com...=requirementes\' \'Help\', \'width=380px, height=310px, scrollbars=yes\')"><a>system requirements</a></span>]</td></tr></table></td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td><td style="vertical-align:top"><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td style="text-align:center"><img style="width:254px;height:218px;margin:7px" src="account/successful_download.jpg"/></td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr></table><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td class="LabelV">Disclaimer</td></tr><tr><td>The software and any related documentation is provided "as is" without warranty of any kind. The entire risk arising out of use of the software remains with you. In no event shall CipSoft GmbH be liable for any damages to your computer or loss of data.</td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr></table></div></table></div></td></tr>'; return; } } else $_POST['step'] = ''; $main_content .= '<script type="text/javascript" src="account/jquery.js"></script> <script type="text/javascript" src="account/create_character.js"></script> <script type="text/javascript">var PreselectServerLocation="'.$default.'";var g_FormName="CreateAccountAndCharacter";var g_FieldName="accountname";document.getElementById("ActiveSubmenuItemIcon_createaccount").style.visibility = "visible";'; foreach($worlds as $k =>$v) // create dynamic server list $main_content .= 'ServerList.push(new Array(\''.$config['site']['worlds'][$k].'\', \''.$v[0].'\', \''.$v[1].'\'));'; $main_content .= '</script><div style="position:relative;top:0px;left:0px"><form action="/index.php?subtopic=createaccount" method=post name="CreateAccountAndCharacter"><div class="TableContainer"><table class="Table5" cellpadding="0" cellspacing="0"><div class="CaptionContainer"><div class="CaptionInnerContainer"><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif)"></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"></span><div class="Text">Create New Account</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif)"></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span></div></div><tr><td><div class="InnerTableContainer"><table style="width:100%"><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td class="LabelV150"><span id="accountname_label"'.(isset($e['acc']) ? ' class=red"' : '').'>Account Name:</span></td><td><input id="accountname" name="accountname" class="CipAjaxInput" style="width:206px;float:left" value="'.(isset($_POST['accountname]) ? htmlspecialchars(substr($_POST['accountname'], 0, 30)) : '').'" size=30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_accountname.php\',PostData: \'a_AccountName=\'+this.value,Method: \'POST\'})"/><div id="accountname_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step] != 'docreate' || isset($e['acc']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id=accountname_errormessage" class="FormFieldError">'.(isset($e['acc]) ? $e['acc'] : '').'</span></td></tr><tr><td class=LabelV150"><span id="email_label"'.(isset($e['email]) ? ' class="red"' : '').'>Email Address:</span></td><td><input id="email" name="email" class="CipAjaxInput" style="width:206px;float:left" value="'.(isset($_POST['email']) ? htmlspecialchars(substr($_POST['email'], 0, 50)) : '').'" autocomplete=off" size="30" maxlength="50" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_email.php\',PostData: \'a_EMail=\'+this.value,Method: \'POST\'})"/><div id="email_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step] != 'docreate' || isset($e['email']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id=email_errormessage" class="FormFieldError">'.(isset($e['email]) ? $e['email'] : '').'</span></td></tr><tr><td class=LabelV150"><span id="password1_label"'.(isset($e['pass]) ? ' class="red"' : '').'>Password:</span></td><td><input id="password1" type="password" autocomplete="off" name="password1" style="width:206px;float:left" value="'.(isset($_POST['password1']) ? htmlspecialchars(substr($_POST['password1'], 0, 30)) : '').'" size=30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_password.php\',PostData: \'a_Password1=\'+getElementById(\'password1\').value+\'&a_Password2=\'+getElementById(\'password2\').value,Method: \'POST\'})"/><div id="password1_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step] != 'docreate' || isset($e['pass']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td class=LabelV150"><span id="password2_label"'.(isset($e['pass]) ? ' class="red"' : '').'>Password Again:</span></td><td><input id="password2" type="password" name="password2" style="width:206px;float:left" value="'.(isset($_POST['password2']) ? htmlspecialchars(substr($_POST['password2'], 0, 30)) : '').'" size=30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_password.php\',PostData: \'a_Password1=\'+getElementById(\'password1\').value+\'&a_Password2=\'+getElementById(\'password2\').value,Method: \'POST\'})"/><div id="password2_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step] != 'docreate' || isset($e['pass']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id=password_errormessage" class="FormFieldError">'.(isset($e['pass]) ? $e['pass'] : '').'</span></td></tr></table></div></div><div class=TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td class="LabelV150"><span id="charactername_label"'.(isset($e['name]) ? ' class="red"' : '').'>Character Name:</span></td><td><input id="charactername" name="name" class="CipAjaxInput" style="width:206px;float:left;position:relative" style="float:left" value="'.(isset($_POST['name']) ? htmlspecialchars(str_replace('+', ' ', substr(trim($_POST['name']), 0, 30))) : '').'" size=30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_charactername.php\',PostData: \'a_CharacterName=\'+this.value,Method: \'POST\'})"/><div id="charactername_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step] != 'docreate' || isset($e['name']) ? 'n' : '').'ok.gif)"></div>'; if($suggestname) $main_content .= '<br/><small>[<a class="CipAjaxLink" href="https://secure.tibia...suggestname.php" ajaxcip="true" ajaxcip_datatype="Container">suggest name</a>]</small>'; $main_content .= '</td></tr><tr><td></td><td><span id="charactername_errormessage" class="FormFieldError">'.(isset($e['name']) ? $e['name'] : '').'</span></td></tr><tr><td class=LabelV150"><span'.(isset($e['sex]) ? ' class="red"' : '').'>Sex:</span></td><td><table width="100%"><tr><td><span style="margin-right:75px" class="OptionContainer"><label for="sex_male"><span class="OptionContainer"><input id="sex_male" type="radio" name="sex" value="male"'.(($_POST['sex'] == 'male' || $_POST['step'] != 'docreate') ? ' checked=checked"' : '').'/><label for="sex_male">male</label></span></label></span><span class="OptionContainer"><label for="sex_female"><span class="OptionContainer"><input id="sex_female" type="radio" name="sex" value="female"'.($_POST['sex] == 'female' ? ' checked="checked"' : '').'/><label for="sex_female">female</label></span></label></span></td><td></td></tr></table></td></tr>'.(isset($e['sex']) ? '<tr><td></td><td><span class=FormFieldError">'.$e['sex].'</span></td></tr>' : ''); if(count($voc) != 0) { $main_content .= '<tr><td class="LabelV150"><span'.(isset($e['vocation']) ? ' class="red"' : '').'>Vocation:</span></td><td><table width="100%"><tr><td>'; foreach($voc as $k => $v) $main_content .= '<span style="margin-right:15px" class="OptionContainer"><label for="vocation_'.$k.'"> <span class="OptionContainer"><input id="vocation_'.$k.'" type="radio" name="vocation" value="'.$k.'"'.($_POST['vocation'] == $k ? ' checked="checked"' : '').'/><label for="vocation_'.$k.'">'.$v.'</label></span></label></span>'; $main_content .= '</td><td></td></tr></table></td></tr>'.(isset($e['vocation']) ? '<tr><td></td><td><span class=FormFieldError">'.$e['vocation].'</span></td></tr>' : ''); } $main_content .= '</table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%">'; if(count($location)>1) { // show server location filter $main_content .= '<tr id="filterbox_location"><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Location:</span></td><td><table width="100%"><tr><td width="33%" valign="top"><script>CreateFilterOption(\'server_location\', \'all\', \'all\')</script> </td>'; $i=0; foreach($location as $k =>$v) { $i++; $main_content .= '<td '.($i == count($location) ? '' : 'width="33%" ').'valign="top"><script>CreateFilterOption(\'server_location\', \''.$k.'\', \''.$v.'\')</script> </td>'; } $main_content .= '</tr></table></td></tr>'; } $main_content .= '<tr id="filterbox_pvp"><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Type:</span></td><td><div>'; $optional=true; $open=true; $hardcore=true; foreach($worlds as $k =>$v) { // remove selection if there's no valid worlds if($optional && $v[1] == 'optional') unset($optional); elseif($open && $v[1] == 'open') unset($open); elseif($hardcore && $v[1] == 'hardcore') unset($hardcore); elseif(!$optional && !$open && !$hardcore) break; } $n = 0; foreach(array($optional, $open, $hardcore) as $k) if(!$k) $n++; $main_content .= '<table width="'.round(33.33 * $n).'%"><tr>'; if(!$optional) $main_content .= '<td width="'.(100 / $n).'%" align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'optional\', \'Optional PvP\')</script></b> Only if both sides agree, characters can be fought<br/><br/></td>'; if(!$open) $main_content .= '<td width="'.(100 / $n).'%" align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'open\', \'Open PvP\')</script></b> Killing other characters is possible, but restricted<br/><br/></td>'; if(!$hardcore) $main_content .= '<td align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'hardcore\', \'Hardcore PvP\')</script></b> Killing other characters is not restricted at all<br/><br/></td>'; $main_content .= '</tr></table></div></td></tr><tr><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Name:</span></td><td><div id="js_world_box" style="display:none"><table width="100%"><tr id="world_list_tr" style="text-align:left"></tr></table><span onClick="ToggleVisibility(\'js_world_box\', \'suggested_world_box\'); UpdateServerList(); "><small>[<a style="cursor:pointer">suggest game world</a>]</small></span></div><div id="suggested_world_box">Suggested world: <span id="suggested_world_div"></span><br/><span onClick="ToggleVisibility(\'suggested_world_box\', \'js_world_box\'); "><small>[<a style="cursor:pointer">change game world</a></span>]</small></div></td></tr><tr><td><table id="js_world_box" width="100%"><tr id="world_list_tr"></tr></table><table id="plain_world_box" width="100%"><tr><td>'; foreach($worlds as $k =>$v) $main_content .= '<input id="server_static_'.$config['site']['worlds'][$k].'" type=radio" name="world" value="'.$config['site]['worlds'][$k].'"'.($config['site']['worlds'][$k] == $_POST['world'] ? ' checked=checked"' : '').'><label for="server_static_'.$config['site]['worlds'][$k].'">'.$config['site']['worlds'][$k].'</label><br/>'; $main_content .= '</td></tr></table></td></tr>'.(isset($e['world']) ? '<tr><td></td><td><span class=FormFieldError">'.$e['world].'</span></td></tr>' : '').'</table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td><b>Please select all of the following check boxes:</b></td></tr><tr><td><input type="checkbox" name="agreeagreement" value="true" onClick="if(this.checked == true) { document.getElementById(\'agreeagreement_errormessage\').innerHTML = \'\';} else { document.getElementById(\'agreeagreement_errormessage\').innerHTML = \'You have to agree to the Tibia Service Agreement in order to create an account!\';}"'.($_POST['step'] == 'docreate' && !isset($e['agreement']) ? ' checked=checked"' : '').'/>I agree to the <a href="/index.php?subtopic=legaldocuments&page=agreement" target="_blank">Tibia Service Agreement</a>.</td></tr><tr><td><span id="agreeagreement_errormessage" class="FormFieldError">'.(isset($e['agreement]) ? $e['agreement'] : '').'</span></td></tr><tr><td><input type=checkbox" name="agreerules" value="true" onClick="if(this.checked == true) { document.getElementById(\'agreerules_errormessage\').innerHTML = \'\';} else { document.getElementById(\'agreerules_errormessage\').innerHTML = \'You have to agree to the Tibia Rules in order to create an account!\';}"'.($_POST['step] == 'docreate' && !isset($e['rules']) ? ' checked=checked"' : '').'/>I agree to the <a href="/index.php?subtopic=legaldocuments&page=rules" target="_blank">Tibia Rules</a>.</td></tr><tr><td><span id="agreerules_errormessage" class="FormFieldError">'.(isset($e['rules]) ? $e['rules'] : '').'</span></td></tr><tr><td><input type=checkbox" name="agreeprivacy" value="true" onClick="if(this.checked == true) { document.getElementById(\'agreeprivacy_errormessage\').innerHTML = \'\';} else { document.getElementById(\'agreeprivacy_errormessage\').innerHTML = \'You have to agree to the Tibia Privacy Policy in order to create an account!\';}"'.($_POST['step] == 'docreate' && !isset($e['privacy']) ? ' checked=checked"' : '').'/>I agree to the <a href="/index.php?subtopic=legaldocuments&page=privacy" target="_blank">Tibia Privacy Policy</a>.</td></tr><tr><td><span id="agreeprivacy_errormessage" class="FormFieldError">'.(isset($e['privacy]) ? $e['privacy'] : '').'</span></td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><script type="text/javascript">PreselectWorld="'; if(isset($_POST['world']) && !empty($_POST['world'])) foreach($config['site']['worlds'] as $id =>$name) if($worlds[$id] && $name == $_POST['world']) { $main_content .= $name; break; } $main_content .= '";InitializeCharacterCreator(PreselectServerLocation, \''.(!$optional ? 'optional' : (!$open ? 'open' : 'hardcore')).'\')</script></table></div></table></div></td></tr><br/></div><center><table border="0" cellspacing="0" cellpadding="0"><tr><td style="border:0px"><input type="hidden" name=step value=docreate><input type="hidden" name=noframe value=""><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)"><div onMouseOver="MouseOverBigButton(this)" onMouseOut="MouseOutBigButton(this)"><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif)"></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif"></div></div></td><tr></form></table></center><script type="text/javascript" language="javascript">document.forms[\'CreateAccountAndCharacter\'].elements[\'accountname\'].focus();</script><script type="text/javascript" src="account/generic.js"></script><script type="text/javascript" src="account/ajaxcip.js"></script>'; -
Moose recebeu reputação de porxmex em um (ctrl+f no terminal )apt-get install unrar
unrar x otserv.rar
para descompactar para uma pasta especifica
unrar x otserv.rar /home ou nome da pasta que quizer.
-
Moose recebeu reputação de LucasDipic em [Resolvido] Erro Ao Compilar Servidor Linuxuse esse comando eu usso no ubuntu 10.4 e nunca deu esse erro executa ele se tivr alguma lib que nao foi instalado esse comando vai instalar.
apt-get install libboost1.40-dev libboost-system1.40-dev libboost-filesystem1.40-dev libboost-date-time1.40-dev libboost-regex1.40-dev libboost-thread1.40-dev libgmp3-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libsqlite0-dev libsqlite3-dev sqlite3 libmysql++-dev libmysqlclient-dev mysql-client-5.1 mysql-common libxml2-dev libxml++2.6-dev cpp gcc g++ make automake autoconf pkg-config subversion liblua5.1-sql-mysql-dev liblua5.1-sql-sqlite3-dev zlib1g-dev mysql-client zlib1g libcrypto++-dev libcrypto++8
-
Moose recebeu reputação de tiagoduuarte em [AJUDA] Global Events de stamina parou de funcionar qnd passe pra mysqldb.executeQuery("UPDATE `players` SET `stamina` = "..stamina_now+minutes.." WHERE `id` = "..id)
troque para
db.executeQuery("UPDATE `players` SET `stamina` = "..stamina_now+minutes.." WHERE `id` = "..id";")
-
Moose recebeu reputação de Markin em [Resolvido] Galinha que bota ovoscomedinhass olha o post ai talves voce saiba fazer.
-
Moose recebeu reputação de Markin em [Resolvido] Galinha que bota ovosNinguem pra ajudar no forum?
-
Moose recebeu reputação de tiagoduuarte em [DUVIDA] Znote é bom?sim e muito bom, usei ele um tempo tem uma boa segurança scripts faceis de entender
-
Moose recebeu reputação de juliorpv em MOD Arena Svargrond BugadoBem gente meu problema e o seguinte eu tenho um global 9.81 e uso o MOD Arena Svargrond do adm Matheus, porem faço a primeira arena sem problemas. na segunda começa dar esse erro:
[12:53:40.592] mysql_real_query(): INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES (7,'','1'),(7,'0','1'),(7,'12036','1'),(7
,'20500','1'),(7,'42300','0'),(7,'42301','0'),(7,'42302','0'),(7,'42303','0'),(7,'42304','0'),(7,'42305','0'),(7,'42306','0'),(7,'42307','0'),
(7,'42308','0'),(7,'42309','0'),(7,'42310','0'),(7,'42311','0'),(7,'42312','0'),(7,'42313','0'),(7,'42314','0'),(7,'42315','0'),(7,'42316','0'
),(7,'42317','0'),(7,'42318','0'),(7,'42319','0'),(7,'42320','0'),(7,'42321','0'),(7,'42322','0'),(7,'42323','0'),(7,'42324','0'),(7,'42325','
0'),(7,'42326','0'),(7,'42327','0'),(7,'42328','0'),(7,'42329','0'),(7,'42350','0'),(7,'42352','0'),(7,'42355','0'),(7,'42360','1'),(7,'42361'
,'1'),(7,'42370','1'),(7,'42371','1'),(7,'45450','2'),(7,'45451','0'),(7,'46000','42309'),(7,'47000','1073790106') - MYSQL ERROR: Duplicate entry '7-0' for key 'player_id_2' (1062)
[12:53:40.599] Error while saving player: Teste
de duplicação e nao salva o char, ai começa o problema de poder clonar items, se alguem sabe como resolver e me ajudar ganha meu rep+
UP será quem ninguem sabe de nada?
UP alguem sabe algum coisa sobre pelo amor de deus.