Ir para conteúdo

Lyon

Membro
  • Registro em

  • Última visita

Tudo que Lyon postou

  1. Summ,obrigado por se dispor ajudar,mas eu precisava que fosse mudado a função doPlayerSetVocation pela doPlayerSetPromotionLevel,mas agora o do Garou funcionou,mas vou reputar você assim que tiver pontos porque você mostrou interesse em ajudar,valew! Bruno o seu codigo foi oque funcionou,apenas mudei uma função que é a doCreatureSetStorage(cid, 2590, 0) pela setPlayerStorageValue(cid,2590,0),agradeço sua colaboração,você me ajudou muito,assim que tiver meus pontos de reputação eu farei de ambos,obrigado! ++++++++++++EDITADO+++++++++++ Tive que reabrir porque passou 2 erros desapercebidos... O npc que recebe a letter ele esta entregando a storage mesmo se eu estiver sem a letter,apenas com a storage do npc que deu a carta,o correto seria ele falar comigo se eu estiver de posse da letter e da storage,se faltar algum não deveria ser completada a fase 1 da quest. O outro erro é o seguinte quando eu chego no npc para completa a quest da entrega da lettert ele me da a promotion do jeito que eu precisava,mas se eu iniciar a conversa com ele novamente e falar promotion ele fala (Hey, you delivered my letter! Thanks, man. Here is your promotion!) tipo ele me da a promotion novamente,toda vez que eu falar promotion para ele ele fica me dando a promotion ao invés de ele ler a parte do script (You already are promoted!) e me dizer que ja sou promovido,ele ignora minha promotion e me dá outra mesmo ja possuindo. No resto fico do jeito que eu preciso,só esses 2 bugs pra deixar 100%.
  2. 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 function oracle(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end local cityNode = node:getParent():getParent() local vocNode = node:getParent() local destination = cityNode:getParameters().destination local town = cityNode:getParameters().town local vocation = vocNode:getParameters().vocation if(destination ~= nil and vocation ~= nil and town ~= nil) then if(getPlayerLevel(cid) < parameters.level) then npcHandler:say('Você deve primeiro atingir level ' .. parameters.level .. '!', cid) else if getPlayerVocation(cid) > 0 then npcHandler:say('Desculpe, você já tem uma vocação!') else doPlayerSetVocation(cid, vocation) doPlayerSetTown(cid, town) doTeleportThing(cid, destination) doSendMagicEffect(destination, CONST_ME_MAGIC_BLUE) end end end npcHandler:resetNpc() return true end function greetCallback(cid) if(getPlayerLevel(cid) < 8) then npcHandler:say('Volte quando crescer, filho!') return false else return true end end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setMessage(MESSAGE_GREET, 'Hello |PLAYERNAME|. Você está preparado para enfrentar o seu destino?') local yesNode = KeywordNode:new({'sim'}, oracle, {level = 8}) local noNode = KeywordNode:new({'nao'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Then what vocation do you want to become?'}) local node1 = keywordHandler:addKeyword({'sim'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Você deseja viajar para Carlin ,Venore ou Thais?'}) local node2 = node1:addChildKeyword({'carlin'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, town = 12, destination = {x=1255, y=1565, z=7}, text = 'Entao, qual vocação você deseja tornar-se? {Sorcerer}, {druid}, {paladin} or {knight}?'}) local node3 = node2:addChildKeyword({'sorcerer'}, StdModule.say, {npcHandler = npcHandler, vocation = 1, onlyFocus = true, text = 'Então, você deseja ser um mago poderoso? Tem certeza sobre isso? Esta decisao é irreversível!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node3 = node2:addChildKeyword({'druid'}, StdModule.say, {npcHandler = npcHandler, vocation = 2, onlyFocus = true, text = 'Tem certeza de que um druida é o que você deseja tornar-se? Esta decisão é irreversível!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node3 = node2:addChildKeyword({'paladin'}, StdModule.say, {npcHandler = npcHandler, vocation = 3, onlyFocus = true, text = 'Um mestre da pontaria. Tem certeza? Esta decisão é irreversível!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node3 = node2:addChildKeyword({'knight'}, StdModule.say, {npcHandler = npcHandler, vocation = 4, onlyFocus = true, text = 'Um poderoso guerreiro. Será mesmo a sua decisão final? Esta decisão é irreversível!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node2 = node1:addChildKeyword({'thais'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, town = 1, destination = {x=159, y=387, z=6}, text = 'thais, eh? So what vocation do you wish to become? {Sorcerer}, {druid}, {paladin} or {knight}?'}) local node3 = node2:addChildKeyword({'sorcerer'}, StdModule.say, {npcHandler = npcHandler, vocation = 1, onlyFocus = true, text = 'So, you wish to be a powerful magician? Are you sure about that? This decision is irreversible!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node3 = node2:addChildKeyword({'druid'}, StdModule.say, {npcHandler = npcHandler, vocation = 2, onlyFocus = true, text = 'Are you sure that a druid is what you wish to become? This decision is irreversible!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node3 = node2:addChildKeyword({'paladin'}, StdModule.say, {npcHandler = npcHandler, vocation = 3, onlyFocus = true, text = 'A ranged marksman. Are you sure? This decision is irreversible!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node3 = node2:addChildKeyword({'knight'}, StdModule.say, {npcHandler = npcHandler, vocation = 4, onlyFocus = true, text = 'A mighty warrior. Is that your final decision? This decision is irreversible!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node2 = node1:addChildKeyword({'venore'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, town = 1, destination = {x=469, y=172, z=7}, text = 'venore, eh? So what vocation do you wish to become? {Sorcerer}, {druid}, {paladin} or {knight}?'}) local node3 = node2:addChildKeyword({'sorcerer'}, StdModule.say, {npcHandler = npcHandler, vocation = 1, onlyFocus = true, text = 'So, you wish to be a powerful magician? Are you sure about that? This decision is irreversible!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node3 = node2:addChildKeyword({'druid'}, StdModule.say, {npcHandler = npcHandler, vocation = 2, onlyFocus = true, text = 'Are you sure that a druid is what you wish to become? This decision is irreversible!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node3 = node2:addChildKeyword({'paladin'}, StdModule.say, {npcHandler = npcHandler, vocation = 3, onlyFocus = true, text = 'A ranged marksman. Are you sure? This decision is irreversible!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) local node3 = node2:addChildKeyword({'knight'}, StdModule.say, {npcHandler = npcHandler, vocation = 4, onlyFocus = true, text = 'A mighty warrior. Is that your final decision? This decision is irreversible!'}) node3:addChildKeywordNode(yesNode) node3:addChildKeywordNode(noNode) keywordHandler:addKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Entao volte quando estiver pronto.'}) npcHandler:addModule(FocusModule:new()) Amigo estou usando este aqui em meu servidor,para mim esta funcionando normal,utilizo um servidor 8.6 - TFS0.4,teste e diga se funcionou,boa sorte! OBS,:Edite o idioma e posições ao seu gosto,hehe
  3. Possuo 2 npc um ele manda eu entregar uma letter escrita para o outro para que depois eu possa ser promovido,um tipo de missão,o outro é o recebedor da letter que vai recolher o item e me adicionar uma storage ,que ao volta ao primeiro npc ele vai checar e recolher a carta e colocar outra storage indicando que foi feita a entrega. Meu problema é o seguinte,do jeito que esta após fazer a quest eu posso me promover seguidamente no 1º NPC porque o script só ta trocando as vocações e não esta setando a promotion na database para o valor 1,porque não possui essa função relacionada a promotion,apenas a vocação em meus scripts,vou postar aqui para melhor entendimento: NPC 1: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local status = getPlayerStorageValue(cid,2590) local text = "Querido como voce esta? Espero que tenha tratado de sua saude mande-me noticias" --- Texto da carta local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'promotion') then if status == -1 then if getPlayerVocation(cid) < 4 then selfSay("So you need a promotion? I can give her for you, but first, give this letter to my brother, he always ask me if i'm god, bad, you now...", cid) setPlayerStorageValue(cid,2590,0) local item = doPlayerAddItem(cid,2597,1) doSetItemText(item,text) else selfSay("Sorry, you alredy have a promotion.", cid) end elseif status == 0 then selfSay("I'm waiting you deliver the letter...", cid) elseif status == 1 then selfSay("Hey, you delivered, thanks man, here is your promotion!", cid) doPlayerSetVocation(cid,getPlayerVocation(cid)+4) doSendMagicEffect(getCreaturePosition(cid),CONST_ME_MAGIC_BLUE) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) NPC 2 que retira a carta e adiciona storage: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end status = getPlayerStorageValue(cid,2590) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'letter') then if status == 0 then setPlayerStorageValue(cid,2590,1) selfSay("Hey, thanks, it's my brother's letter. Thank You very much. I'm gonna say to his about you.", cid) doPlayerRemoveItem(cid,2590,1) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Acredito que oque eu preciso fazer é substituir a função doPlayerSetVocation(cid,getPlayerVocation(cid)+4) por algo do tipo doPlayerSetPromotionLevel(cid, 1) ,não tenho certeza se é essa função correta e nem em qual local seria,alguem pode fazer essa correção para mim? Obrigado.. ___EDIT___ apenas ressaltar que esse script abaixo funciona perfeitamente,mas não possui rpg: 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({'promotion'}, 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())
  4. Defina,qual a diferença dele para os existente hoje?Não me recordo das outras versões.
  5. Lyon postou uma resposta no tópico em Suporte Tibia OTServer
    Estou tentando rodar esse npc guard em meu servidor (8.6 -0.4) e estou tendo erros seguidos no console,alguem sabe o motivo e a solução? Agradeço desde já a atenção. Erros: [11:27:18.375] [Error - NpcScript Interface] [11:27:18.375] data/npc/scripts/carlinguard.lua:onThink [11:27:18.375] Description: [11:27:18.375] (luaGetThingFromPos) Tile not found Script: local level = 10 ----- change this to make the npc hit more/less---------------------|damage_min = (level * 2 + maglevel * 3) * min_multiplier | local maglevel = 10 ----- change this to make the npc hit more/less -----------------|damage_max = (level * 2 + maglevel * 3) * max_multiplier | local min_multiplier = 2.1 ----- change this to make the npc hit more/less ----------|damage_formula = math.random(damage_min,damage_max) | local max_multiplier = 4.2 ----- change this to make the npc hit more/less --------------------------------------------------------------------- local check_interval = 5 ----- change this to the time between checks for a creature (the less time the more it will probably lag :S) local radiusx = 7 ----- change this to the amount of squares left/right the NPC checks (default 7 so he checks 7 squares left of him and 7 squares right (the hole screen) local radiusy = 5 ----- change this to the amount of squares left/right the NPC checks (default 5 so he checks 5 squares up of him and 5 squares down (the hole screen) local Attack_message = "An Invader, ATTACK!!!" ----- change this to what the NPC says when he sees a monster(s) local town_name = "Archgard" ----- the name of the town the NPC says when you say "hi" local Attack_monsters = TRUE ----- set to TRUE for the npc to attack monsters in his area or FALSE if he doesnt local Attack_swearers = TRUE ----- set to TRUE for the npc to attack players that swear near him or FALSE if he doesnt local Attack_pkers = TRUE ----- set to TRUE for the npc to attack players with white and red skulls or FALSE if he doesnt local health_left = 10 ----- set to the amount of health the npc will leave a player with if they swear at him (ie at 10 he will hit the player to 10 health left) local swear_message = "Take this!!!" ----- change this to what you want the NPC to say when he attackes a swearer local swear_words = {"shit", "fuck", "dick", "cunt"} ----- if "Attack_swearers" is set to TRUE then the NPC will attack anyone who says a word in here. Remember to put "" around each word and seperate each word with a comma (,) local hit_effect = CONST_ME_MORTAREA ----- set this to the magic effect the creature will be hit with, see global.lua for more effects local shoot_effect = CONST_ANI_SUDDENDEATH ----- set this to the magic effect that will be shot at the creature, see global.lua for more effects local damage_colour = TEXTCOLOR_RED ----- set this to the colour of the text that shows the damage when the creature gets hit ------------------end of config------------------ local check_clock = os.clock() ----- leave this local focus = 0 ----- leave this function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) health = getCreatureHealth(cid) - health_left if ((string.find(msg, '(%a*)hi(%a*)'))) and getDistanceToCreature(cid) < 4 then selfSay('Hello ' .. creatureGetName(cid) .. '! I am a defender of '..town_name..'.') doNpcSetCreatureFocus(cid) focus = 0 end if msgcontains(msg, 'time') then selfSay('The time is ' .. getWorldTime() .. '.') end if messageIsInArray(swear_words, msg) then if Attack_swearers == TRUE then selfSay('' .. swear_message ..' ') doCreatureAddHealth(cid,-health) doSendMagicEffect(getThingPos(cid),17) doSendAnimatedText(getThingPos(cid),health,180) doNpcSetCreatureFocus(cid) focus = 0 end end end function getMonstersfromArea(pos, radiusx, radiusy, stack) local monsters = { } local starting = {x = (pos.x - radiusx), y = (pos.y - radiusy), z = pos.z, stackpos = stack} local ending = {x = (pos.x + radiusx), y = (pos.y + radiusy), z = pos.z, stackpos = stack} local checking = {x = starting.x, y = starting.y, z = starting.z, stackpos = starting.stackpos} repeat creature = getThingfromPos(checking) if creature.itemid > 0 then if isCreature(creature.uid) == TRUE then if isPlayer(creature.uid) == FALSE then if Attack_monsters == TRUE then table.insert (monsters, creature.uid) check_clock = os.clock() end elseif isPlayer(creature.uid) == TRUE then if Attack_pkers == TRUE then if getPlayerSkullType(creature.uid) > 0 then table.insert (monsters, creature.uid) check_clock = os.clock() end end end end end if checking.x == pos.x-1 and checking.y == pos.y then checking.x = checking.x+2 else checking.x = checking.x+1 end if checking.x > ending.x then checking.x = starting.x checking.y = checking.y+1 end until checking.y > ending.y return monsters end function onThink() if (Attack_monsters == TRUE and Attack_pkers == TRUE) or (Attack_monsters == TRUE and Attack_pkers == FALSE) or (Attack_monsters == FALSE and Attack_pkers == TRUE) then if (os.clock() - check_clock) > check_interval then monster_table = getMonstersfromArea(getCreaturePosition(getNpcCid( )), radiusx, radiusy, 253) if #monster_table >= 1 then selfSay('' .. Attack_message ..' ') for i = 1, #monster_table do doNpcSetCreatureFocus(monster_table[i]) local damage_min = (level * 2 + maglevel * 3) * min_multiplier local damage_max = (level * 2 + maglevel * 3) * max_multiplier local damage_formula = math.random(damage_min,damage_max) doSendDistanceShoot(getCreaturePosition(getNpcCid( )), getThingPos(monster_table[i]), shoot_effect) doSendMagicEffect(getThingPos(monster_table[i]),hit_effect) doSendAnimatedText(getThingPos(monster_table[i]),damage_formula,damage_colour) doCreatureAddHealth(monster_table[i],-damage_formula) check_clock = os.clock() focus = 0 end elseif table.getn(monster_table) < 1 then focus = 0 check_clock = os.clock() end end end focus = 0 end
  6. Lyon postou uma resposta no tópico em Mapping Show Off
    Obras de arte,ficou show!
  7. Valeu por se propor a da uma ajuda,mas na minha pagina nao encontrei as linhas referidas,estou postando aqui: <?php $location = array( 'GER' =>'Europe', // 'USA' =>'North America' ); $default = 'all'; $worlds = array(); $worlds[0] = array('GER', $config['server']['worldType']); /* $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) > 10) $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-Z0-9]/', $s)) $e['acc'] = 'Your account name must include at least one letter A-Z!'; else { $con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.'); mysql_select_db($config['server']['sqlDatabase']); if(mysql_num_rows(mysql_query('SELECT id FROM accounts WHERE name=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0) $e['acc'] = 'This account name is already used. Please select another one!'; } } $s = isset($_POST['name']) ? trim($_POST['name']) : ''; if(empty($s)) $e['name'] = 'Please enter a name for your character!'; elseif(strlen($s) < 2 || strlen($s) > 29) $e['name'] = 'A name must have at least 2 but no more than 29 letters!'; elseif(preg_match('/[^a-zA-Z ]/', $s)) $e['name'] = 'This name contains invalid letters. Please use only A-Z, a-z and space!'; elseif(!ctype_upper($s[0])) $e['name'] = 'The first letter of a name has to be a capital letter!'; elseif(strpos($s, ' ') !== false) $e['name'] = 'This name contains more than one space between words. Please use only one space between words!'; else { foreach(explode(' ', $s) as $k =>$v) { $words[$k] = str_split($v); $len = strlen($v); if($len == 1) { $e['name'] = 'This name contains a word with only one letter. Please use more than one letter for each word!'; break; } elseif($len > 14) { $e['name'] = 'This name contains a word that is too long. Please use no more than 14 letters for each word!'; break; } } if(!isset($e['name'])) { $total=0; foreach($words as $k =>$p) { if(isset($e['name'])) break; $total++; if($total > 3) { $e['name'] = 'This name contains more than 3 words. Please choose another name!'; break; } $len=0; foreach($p as $i =>$j) { $len++; if($i != 0 && ctype_upper($j)) { $e['name'] = 'In names capital letters are only allowed at the beginning of a word!'; break; } elseif($i == $len-1) { $ff=null; for($h=0;$h<strlen($v); $h++) { if(in_array(strtolower($v[$h]), array('a','e','i','o','u')) !== false) { $ff=true; break; } } if(!$ff) { $e['name'] = 'This name contains a word without vowels. Please choose another name!'; break; } } } } if(!isset($e['name'])) { $s = strtolower($s); for($i = 0; $i < strlen($s); $i++) if($s[$i] == $s[($i+1)] && $s[$i] == $s[($i+2)]) { $e['name'] = 'This character name is already used. Please select another one!'; break; } if(!isset($e['name'])) { foreach(array('puta', 'caralho', 'karalho', 'porra', 'buceta', 'simone', 'corno','training', 'devovorga', 'energized raging mage', 'ot', 'otserv', 'thunder', 'serve', 'trimera', 'drugo', 'drugovich','adm','godsao','godzao','godsinho','GoDzinho','godzinho','Godzinho','god','GoD','GOd','God','GOD','mage mad', 'mad mage', 'abyssador', 'armadile', 'cliff strider', 'crystalcrusher', 'damaged crystal golem', 'deathstrike', 'stone devourer', 'hideous fungus', 'humongous fungus', 'humorless fungus', 'enraged crystal golem', 'wiggler', 'lost berserker', 'lava golem', 'magma crawler', 'weeper', 'gnomevil', 'ironblight', 'orewalker', 'vulcongra', 'mushroom sniffer', 'parasite', 'infected weeper', 'doctor gnomedix', 'pythius the rotten', 'lady bug', 'manta ray', 'deepling worker', 'god alone', 'bazir', 'crawler', 'deepling guard', 'deepling spellsinger', 'deepling warrior', 'manta', 'shark', 'spidris', 'spitter', 'waspoid', 'kollos', 'insectoid scout', 'calamary', 'fish', 'hive overseer', 'jellyfish', 'northern pike', 'spidris elite', 'swarmer', 'insectoid worker', 'deepling brawler', 'deepling master librarian', 'deepling tyrant', 'deepling elite', 'floor blob', 'hive pore', 'lesser swarmer', 'adi', 'adinmin', 'adimi', 'adimin', 'task', 'task clous', 'queen', 'queen eloise', 'aa ', 'ee', " ' ", 'ii', 'oo', 'uu', 'gm','cm', 'aff ', 'god ', 'abc', 'tutor', 'game', 'admin', 'the', 'rashid', 'alesar', 'benjamin', 'suzy', 'tajis', 'sarina', 'poach', 'Nah Bob', 'galuna', 'elane', 'chonndur', 'chondur', 'addoner', 'haroun', 'yaman', 'towncryer', 'jaul', 'obujos', 'hive overseer', 'crawler', 'deepling guard', 'deepling spellsinger', 'deepling warrior', 'lady bug', 'manta', 'shark', 'spidris', 'spitter', 'waspoid', 'kollos', 'lion event', 'tiger event', 'gerador azul i', 'gerador azul ii', 'gerador azul iii', 'gerador vermelho i', 'gerador vermelho ii', 'gerador vermelho iii', 'zombie event', 'emperium', 'guard', 'feromous', 'abomination fury', 'alvo', 'gate', 'elder beholder', 'trainer', 'beholder', 'yalaharian', 'protect cube', 'protect castle', 'protect statue', 'castle gates', 'lizard magistratus', 'lizard noble', 'askarak demon', 'askarak lord', 'askarak prince', 'bog frog', 'clay guardian', 'crystal wolf', 'death priest', 'deepling scout', 'desperate white deer', 'diamond servant', 'dromedary', 'donkey', 'elder mummy', 'enraged white deer', 'feverish citizen', 'filth toad', 'firestarter', 'ghoulish hyaena', 'golden servant', 'grave guard', 'groam', 'honour guard', 'horestis', 'horse', 'incredible old witch', 'insectoid scout', 'iron servant', 'kraknaknork', 'kraknaknork demon', 'running elite orc guard', 'sacred spider', 'sandstone scorpion', 'shaburak demon', 'shaburak lord', 'shaburak prince', 'slug', 'spider queen', 'starving wolf', 'thornfire wolf', 'tomb servant', 'weakened demon', 'wild dog', 'white deer', 'yielothax', 'boar', 'cake golem', 'crustacea gigantica', 'draptor', 'ghost rat', 'midnight panther', 'slime puddle', 'spectral scum', 'stampor', 'undead cavebear', 'brimstone bug', 'draken abomination', 'draken elite', 'fury of the emperor', 'glitterscale', 'heoni', 'lizard abomination', 'snake god essence', 'scorn of the emperor', 'snake think', 'souleater', 'spite of the emperor', 'wrath of the emperor', 'draken spellweaver', 'draken warmaster', 'ghastly dragon', 'gnarlhound', 'insect swarm', 'killer caiman', 'lancer beetle', 'lizard chosen', 'lizard dragon priest', 'lizard high guard', 'lizard legionnaire', 'lizard zaogun', 'orc marauder', 'sandcrawler', 'terramite', 'undead prospector', 'skeleton', 'wailing widow', 'berserker chicken', 'boogey', 'bride of night', 'demon parrot', 'dirtbeard', 'deer', 'esmeralda', 'essence of darkness', 'evil mastermind', 'evil sheep lord', 'evil sheep', 'fahim the wise', 'hide', 'hot dog', 'killer rabbit', 'medusa', 'mephiles', 'merikh the slaughterer', 'monstor', 'rottie the rotworm', 'shardhead', 'the bloodtusk', 'the many', 'the noxious spawn', 'the snapper', 'badger', 'bat', 'bear', 'black sheep', 'blood crab', 'blood crab underwater', 'carrion worm', 'cat', 'cave rat', 'chicken', 'cockroach', 'crab', 'crocodile', 'dire penguin', 'dog', 'elephant', 'flamingo', 'hyaena', 'husky', 'kitty', 'lion', 'mad sheep', 'mammoth', 'panda', 'parrot', 'penguin', 'pig', 'polar bear', 'rabbit', 'rat', 'rotworm', 'seagull', 'sheep', 'silver rabbit', 'skunk', 'squirrel', 'terror bird', 'thornback tortoise', 'tiger', 'tortoise', 'tortoise anti-bot', 'war wolf', 'winter wolf', 'wolf', 'dwarf', 'dwarf guard', 'dwarf geomancer', 'dwarf soldier', 'quara pincher', 'quara predator', 'quara constrictor', 'quara hydromancer', 'quara mantassin', 'quara pincher scout', 'quara predator scout', 'quara constrictor scout', 'quara hydromancer scout', 'quara mantassin scout', 'sea serpent', 'young sea serpent', 'achad', 'axeitus headbanger', 'bloodpaw', 'bovinus', 'colerian the barbarian', 'cursed gladiator', 'frostfur', 'orcus the cruel', 'rocky', 'the hairy one', 'avalanche', 'drasilla', 'grimgor guteater', 'kreebosh the exile', 'slim', 'spirit of earth', 'spirit of fire', 'spirit of water', 'the dark dancer', 'the hag', 'darakan the executioner', 'deathbringer', 'fallen mooh tah master ghar', 'gnorre chyllson', 'norgle glacierbeard', 'svoren the mad', 'the masked marauder', 'the obliverator', 'the pit lord', 'webster', 'flamethrower', 'hell hole', 'lavahole', 'dwarf dispenser', 'magicthrower', 'magic pillar', 'pillar', 'mechanical figher', 'plaguethrower', 'poisonthrower', 'shredderthrower', 'barbarian bloodwalker', 'barbarian brutetamer', 'barbarian headsplitter', 'barbarian skullhunter', 'arachir the ancient one', 'armenius', 'arthei', 'apprentice sheng', 'azerus', 'barbaria', 'battlemaster zunzu', 'big boss trolliver', 'blistering fire elemental', 'boreth', 'captain jones', 'chizzoron the distorter', 'the countess sorrow', 'cublarc the plunderer', 'deadeye devious', 'demodras', 'dharalion', 'diblis the fair', 'diseased bill', 'diseased dan', 'diseased fred', 'dracola', 'dreadmaw', 'earth overlord', 'energy overlord', 'fernfang', 'ferumbras', 'fire overlord', 'fleabringer', 'foreman kneebiter', 'freegoiz', 'general murius', 'grandfather tridian', 'grand mother foulscale', 'grorlam', 'hairman the huge', 'lizard templar', 'ice overlord', 'inky', 'koshei the deathless', 'lersatio', 'lethal lissy', 'lizard gate guardian', 'lord of the elements', 'mad technomancer', 'man in the cave', 'marziel', 'massacre', 'mooh tah master', 'mr. punish', 'munster', 'necropharus', 'ron the ripper', 'renegade orc', 'rotworm queen', 'rukor zad', 'shadow of boreth', 'shadow of lersatio', 'shadow of marziel', 'shard of corruption', 'sharptooth', 'sir valorcrest', 'splasher', 'smuggler baron silvertoe', 'stonecracker', 'the blightfather', 'the big bad one', 'the collector', 'the count', 'the evil eye', 'the frog prince', 'the handmaiden', 'the horned fox', 'the imperor', 'the old widow', 'the plasmother', 'the voice of ruin', 'the weakened count', 'thul', 'tiquandas revenge', 'ungreez', 'warlord ruzad', 'yakchal', 'yalahari', 'yeti', 'zarabustor', 'zebelon duskbringer', 'zulazza the corruptor', 'chakoya toolshaper', 'chakoya tribewarden', 'chakoya windcaller', 'dark torturer', 'demon', 'destroyer', 'diabolic imp', 'fire devil', 'gozzler', 'hand of cursed fate', 'hellfire fighter', 'hellhound', 'hellspawn', 'juggernaut', 'nightmare', 'nightmare scion', 'nightstalker', 'plaguesmith', 'bazir', 'orshabaal', 'zoralurk', 'frost dragon', 'wyrm', 'dragon lord', 'dragon', 'hydra', 'dragon hatchling', 'dragon lord hatchling', 'frost dragon hatchling', 'undead dragon', 'wyvern', 'blazing fire elemental', 'charged energy elemental', 'earth elemental', 'energy elemental', 'fire elemental', 'jagged earth elemental', 'massive earth elemental', 'massive energy elemental', 'massive fire elemental', 'massive water elemental', 'muddy earth elemental', 'overcharged energy elemental', 'roaring water elemental', 'slick water elemental', 'water elemental', 'elf arcanist', 'elf scout', 'elf', 'bones', 'deathslicer', 'exp bug', 'eye of the seven', 'fluffy', 'gamemaster', 'goblin demon', 'grynch clan goblin', 'hacker', 'the halloween hare', 'the ruthless herald', 'minishabaal', 'primitive', 'servant golem', 'tha exp carrier', 'the mutated pumpkin', 'tibia bug', 'undead minion', 'ashmunrah', 'arkhothep', 'dipthrah', 'mahrdis', 'morguthis', 'omruc', 'rahemos', 'thalas', 'vashresamun', 'frost giant', 'frost giantess', 'cyclops smith', 'cyclops drone', 'behemoth', 'cyclops', 'ice golem', 'the old whopper', 'stone golem', 'war golem', 'worker golem', 'damaged worker golem', 'goblin leader', 'goblin scavenger', 'goblin', 'goblin assassin', 'dworc fleshhunter', 'dworc venomsniper', 'dworc voodoomaster', 'acolyte of the cult', 'adept of the cult', 'amazon', 'crazed beggar', 'enlightened of the cult', 'novice of the cult', 'dark monk', 'monk', 'dark apprentice', 'dark magician', 'fury', 'gladiator', 'gang member', 'ice witch', 'infernalist', 'mad scientist', 'warlock', 'witch', 'necromancer', 'priestess', 'assasin', 'bandit', 'black knight', 'hero', 'hunter', 'nomad', 'morik the gladiator', 'smuggler', 'poacher', 'thief', 'undead jester', 'valkyrie', 'yaga the crone', 'wild warrior', 'baron brute', 'coldheart', 'doomhowl', 'dreadwing', 'fatality', 'haunter', 'incineron', 'menace', 'rocko', 'the axeorcist', 'the dreadorian', 'tirecz', 'tremorak', 'lizard sentinel', 'lizard snakecharmer', 'blue djinn', 'efreet', 'green djinn', 'marid', 'braindeath', 'bonelord', 'elder bonelord', 'gazer', 'mimic', 'stalker', 'wisp', 'minotaur archer', 'minotaur guard', 'minotaur mage', 'minotaur', 'banshee', 'betrayed wraith', 'blightwalker', 'bonebeast', 'crypt shambler', 'demon skeleton', 'dreadbeast', 'gargoyle', 'ghost', 'ghoul', 'ghostly apparition', 'grim reaper', 'gravelord oshuran', 'lich', 'lost soul', 'mummy', 'phantasm', 'pythius the rotten', 'skeleton warrior', 'spectre', 'tormented ghost', 'vampire', 'vampire bride', 'undead gladiator', 'zombie', 'mutated bat', 'mutated human', 'mutated rat', 'mutated tiger', 'werewolf', 'orc berserker', 'orc leader', 'orc rider', 'orc shaman', 'orc spearman', 'orc warlord', 'orc warrior', 'orc', 'brutus bloodbeard', 'pirate buccaneer', 'pirate corsair', 'pirate cutthroat', 'pirate ghost', 'pirate marauder', 'pirate skeleton', 'carniphila', 'haunted treeling', 'spit nettle', 'kongra', 'merlkin', 'sibang', 'serpent spawn', 'apocalypse', 'infernatil', 'verminor', 'annihilon', 'golgordan', 'hellgorak', 'latrivan', 'madareth', 'rift brood', 'rift lord', 'rift phantom', 'rift scythe', 'rift worm', 'ushuriel', 'zugurosh', 'ghazbaran', 'morgaroth', 'troll champion', 'frost troll', 'island troll', 'swamp troll', 'troll', 'acid blob', 'ancient scarab', 'azure frog', 'butterfly', 'bog raider', 'bug', 'centipede', 'cobra', 'coral frog', 'crimson frog', 'crystal spider', 'death blob', 'deathspawn', 'defiler', 'giant spider', 'green frog', 'larva', 'mercury blob', 'orchid frog', 'poison spider', 'scarab', 'scorpion', 'slime2', 'slime', 'snake', 'son of verminor', 'spider', 'tarantula', 'the abomination', 'toad', 'wasp') 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('puta', 'caralho', 'karalho', 'porra', 'buceta', 'corno', 'simone','training', 'devovorga', 'energized raging mage', 'ot', 'otserv', 'thunder', 'serve', 'trimera', 'drugo', 'drugovich', 'adm', 'godsao','godzao','godsinho','GoDzinho','godzinho','Godzinho','god','GoD','GOd','God','GOD','mage mad', 'mad mage', 'abyssador', 'armadile', 'cliff strider', 'crystalcrusher', 'damaged crystal golem', 'deathstrike', 'stone devourer', 'hideous fungus', 'humongous fungus', 'humorless fungus', 'enraged crystal golem', 'wiggler', 'lost berserker', 'lava golem', 'magma crawler', 'weeper', 'gnomevil', 'ironblight', 'orewalker', 'vulcongra', 'mushroom sniffer', 'parasite', 'infected weeper', 'doctor gnomedix', 'pythius the rotten', 'lady bug', 'manta ray', 'deepling worker', 'god alone', 'bazir', 'crawler', 'deepling guard', 'deepling spellsinger', 'deepling warrior', 'manta', 'shark', 'spidris', 'spitter', 'waspoid', 'kollos', 'insectoid scout', 'calamary', 'fish', 'hive overseer', 'jellyfish', 'northern pike', 'spidris elite', 'swarmer', 'insectoid worker', 'deepling brawler', 'deepling master librarian', 'deepling tyrant', 'deepling elite', 'floor blob', 'hive pore', 'lesser swarmer', 'adi', 'adinmin', 'adimi', 'adimin', 'task', 'task clous', 'queen', 'queen eloise', 'game', " ' ", 'customer', 'support', 'fuck', 'haha', 'sux', ' abc', 'suck', 'noob', 'tutor', 'admin', 'account', 'gay', 'password', 'manager', 'aa ', 'ee', " ' ", 'ii', 'oo', 'uu', 'gm','cm', 'aff ', 'god ', 'abc', 'tutor', 'game', 'admin', 'the', 'rashid', 'alesar', 'benjamin', 'suzy', 'tajis', 'sarina', 'poach', 'Nah Bob', 'galuna', 'elane', 'chonndur', 'chondur', 'addoner', 'haroun', 'yaman', 'towncryer', 'jaul', 'obujos', 'hive overseer', 'crawler', 'deepling guard', 'deepling spellsinger', 'deepling warrior', 'lady bug', 'manta', 'shark', 'spidris', 'spitter', 'waspoid', 'kollos', 'lion event', 'tiger event', 'gerador azul i', 'gerador azul ii', 'gerador azul iii', 'gerador vermelho i', 'gerador vermelho ii', 'gerador vermelho iii', 'zombie event', 'emperium', 'guard', 'feromous', 'abomination fury', 'alvo', 'gate', 'elder beholder', 'trainer', 'beholder', 'yalaharian', 'protect cube', 'protect castle', 'protect statue', 'castle gates', 'lizard magistratus', 'lizard noble', 'askarak demon', 'askarak lord', 'askarak prince', 'bog frog', 'clay guardian', 'crystal wolf', 'death priest', 'deepling scout', 'desperate white deer', 'diamond servant', 'dromedary', 'donkey', 'elder mummy', 'enraged white deer', 'feverish citizen', 'filth toad', 'firestarter', 'ghoulish hyaena', 'golden servant', 'grave guard', 'groam', 'honour guard', 'horestis', 'horse', 'incredible old witch', 'insectoid scout', 'iron servant', 'kraknaknork', 'kraknaknork demon', 'running elite orc guard', 'sacred spider', 'sandstone scorpion', 'shaburak demon', 'shaburak lord', 'shaburak prince', 'slug', 'spider queen', 'starving wolf', 'thornfire wolf', 'tomb servant', 'weakened demon', 'wild dog', 'white deer', 'yielothax', 'boar', 'cake golem', 'crustacea gigantica', 'draptor', 'ghost rat', 'midnight panther', 'slime puddle', 'spectral scum', 'stampor', 'undead cavebear', 'brimstone bug', 'draken abomination', 'draken elite', 'fury of the emperor', 'glitterscale', 'heoni', 'lizard abomination', 'snake god essence', 'scorn of the emperor', 'snake think', 'souleater', 'spite of the emperor', 'wrath of the emperor', 'draken spellweaver', 'draken warmaster', 'ghastly dragon', 'gnarlhound', 'insect swarm', 'killer caiman', 'lancer beetle', 'lizard chosen', 'lizard dragon priest', 'lizard high guard', 'lizard legionnaire', 'lizard zaogun', 'orc marauder', 'sandcrawler', 'terramite', 'undead prospector', 'skeleton', 'wailing widow', 'berserker chicken', 'boogey', 'bride of night', 'demon parrot', 'dirtbeard', 'deer', 'esmeralda', 'essence of darkness', 'evil mastermind', 'evil sheep lord', 'evil sheep', 'fahim the wise', 'hide', 'hot dog', 'killer rabbit', 'medusa', 'mephiles', 'merikh the slaughterer', 'monstor', 'rottie the rotworm', 'shardhead', 'the bloodtusk', 'the many', 'the noxious spawn', 'the snapper', 'badger', 'bat', 'bear', 'black sheep', 'blood crab', 'blood crab underwater', 'carrion worm', 'cat', 'cave rat', 'chicken', 'cockroach', 'crab', 'crocodile', 'dire penguin', 'dog', 'elephant', 'flamingo', 'hyaena', 'husky', 'kitty', 'lion', 'mad sheep', 'mammoth', 'panda', 'parrot', 'penguin', 'pig', 'polar bear', 'rabbit', 'rat', 'rotworm', 'seagull', 'sheep', 'silver rabbit', 'skunk', 'squirrel', 'terror bird', 'thornback tortoise', 'tiger', 'tortoise', 'tortoise anti-bot', 'war wolf', 'winter wolf', 'wolf', 'dwarf', 'dwarf guard', 'dwarf geomancer', 'dwarf soldier', 'quara pincher', 'quara predator', 'quara constrictor', 'quara hydromancer', 'quara mantassin', 'quara pincher scout', 'quara predator scout', 'quara constrictor scout', 'quara hydromancer scout', 'quara mantassin scout', 'sea serpent', 'young sea serpent', 'achad', 'axeitus headbanger', 'bloodpaw', 'bovinus', 'colerian the barbarian', 'cursed gladiator', 'frostfur', 'orcus the cruel', 'rocky', 'the hairy one', 'avalanche', 'drasilla', 'grimgor guteater', 'kreebosh the exile', 'slim', 'spirit of earth', 'spirit of fire', 'spirit of water', 'the dark dancer', 'the hag', 'darakan the executioner', 'deathbringer', 'fallen mooh tah master ghar', 'gnorre chyllson', 'norgle glacierbeard', 'svoren the mad', 'the masked marauder', 'the obliverator', 'the pit lord', 'webster', 'flamethrower', 'hell hole', 'lavahole', 'dwarf dispenser', 'magicthrower', 'magic pillar', 'pillar', 'mechanical figher', 'plaguethrower', 'poisonthrower', 'shredderthrower', 'barbarian bloodwalker', 'barbarian brutetamer', 'barbarian headsplitter', 'barbarian skullhunter', 'arachir the ancient one', 'armenius', 'arthei', 'apprentice sheng', 'azerus', 'barbaria', 'battlemaster zunzu', 'big boss trolliver', 'blistering fire elemental', 'boreth', 'captain jones', 'chizzoron the distorter', 'the countess sorrow', 'cublarc the plunderer', 'deadeye devious', 'demodras', 'dharalion', 'diblis the fair', 'diseased bill', 'diseased dan', 'diseased fred', 'dracola', 'dreadmaw', 'earth overlord', 'energy overlord', 'fernfang', 'ferumbras', 'fire overlord', 'fleabringer', 'foreman kneebiter', 'freegoiz', 'general murius', 'grandfather tridian', 'grand mother foulscale', 'grorlam', 'hairman the huge', 'lizard templar', 'ice overlord', 'inky', 'koshei the deathless', 'lersatio', 'lethal lissy', 'lizard gate guardian', 'lord of the elements', 'mad technomancer', 'man in the cave', 'marziel', 'massacre', 'mooh tah master', 'mr. punish', 'munster', 'necropharus', 'ron the ripper', 'renegade orc', 'rotworm queen', 'rukor zad', 'shadow of boreth', 'shadow of lersatio', 'shadow of marziel', 'shard of corruption', 'sharptooth', 'sir valorcrest', 'splasher', 'smuggler baron silvertoe', 'stonecracker', 'the blightfather', 'the big bad one', 'the collector', 'the count', 'the evil eye', 'the frog prince', 'the handmaiden', 'the horned fox', 'the imperor', 'the old widow', 'the plasmother', 'the voice of ruin', 'the weakened count', 'thul', 'tiquandas revenge', 'ungreez', 'warlord ruzad', 'yakchal', 'yalahari', 'yeti', 'zarabustor', 'zebelon duskbringer', 'zulazza the corruptor', 'chakoya toolshaper', 'chakoya tribewarden', 'chakoya windcaller', 'dark torturer', 'demon', 'destroyer', 'diabolic imp', 'fire devil', 'gozzler', 'hand of cursed fate', 'hellfire fighter', 'hellhound', 'hellspawn', 'juggernaut', 'nightmare', 'nightmare scion', 'nightstalker', 'plaguesmith', 'bazir', 'orshabaal', 'zoralurk', 'frost dragon', 'wyrm', 'dragon lord', 'dragon', 'hydra', 'dragon hatchling', 'dragon lord hatchling', 'frost dragon hatchling', 'undead dragon', 'wyvern', 'blazing fire elemental', 'charged energy elemental', 'earth elemental', 'energy elemental', 'fire elemental', 'jagged earth elemental', 'massive earth elemental', 'massive energy elemental', 'massive fire elemental', 'massive water elemental', 'muddy earth elemental', 'overcharged energy elemental', 'roaring water elemental', 'slick water elemental', 'water elemental', 'elf arcanist', 'elf scout', 'elf', 'bones', 'deathslicer', 'exp bug', 'eye of the seven', 'fluffy', 'gamemaster', 'goblin demon', 'grynch clan goblin', 'hacker', 'the halloween hare', 'the ruthless herald', 'minishabaal', 'primitive', 'servant golem', 'tha exp carrier', 'the mutated pumpkin', 'tibia bug', 'undead minion', 'ashmunrah', 'arkhothep', 'dipthrah', 'mahrdis', 'morguthis', 'omruc', 'rahemos', 'thalas', 'vashresamun', 'frost giant', 'frost giantess', 'cyclops smith', 'cyclops drone', 'behemoth', 'cyclops', 'ice golem', 'the old whopper', 'stone golem', 'war golem', 'worker golem', 'damaged worker golem', 'goblin leader', 'goblin scavenger', 'goblin', 'goblin assassin', 'dworc fleshhunter', 'dworc venomsniper', 'dworc voodoomaster', 'acolyte of the cult', 'adept of the cult', 'amazon', 'crazed beggar', 'enlightened of the cult', 'novice of the cult', 'dark monk', 'monk', 'dark apprentice', 'dark magician', 'fury', 'gladiator', 'gang member', 'ice witch', 'infernalist', 'mad scientist', 'warlock', 'witch', 'necromancer', 'priestess', 'assasin', 'bandit', 'black knight', 'hero', 'hunter', 'nomad', 'morik the gladiator', 'smuggler', 'poacher', 'thief', 'undead jester', 'valkyrie', 'yaga the crone', 'wild warrior', 'baron brute', 'coldheart', 'doomhowl', 'dreadwing', 'fatality', 'haunter', 'incineron', 'menace', 'rocko', 'the axeorcist', 'the dreadorian', 'tirecz', 'tremorak', 'lizard sentinel', 'lizard snakecharmer', 'blue djinn', 'efreet', 'green djinn', 'marid', 'braindeath', 'bonelord', 'elder bonelord', 'gazer', 'mimic', 'stalker', 'wisp', 'minotaur archer', 'minotaur guard', 'minotaur mage', 'minotaur', 'banshee', 'betrayed wraith', 'blightwalker', 'bonebeast', 'crypt shambler', 'demon skeleton', 'dreadbeast', 'gargoyle', 'ghost', 'ghoul', 'ghostly apparition', 'grim reaper', 'gravelord oshuran', 'lich', 'lost soul', 'mummy', 'phantasm', 'pythius the rotten', 'skeleton warrior', 'spectre', 'tormented ghost', 'vampire', 'vampire bride', 'undead gladiator', 'zombie', 'mutated bat', 'mutated human', 'mutated rat', 'mutated tiger', 'werewolf', 'orc berserker', 'orc leader', 'orc rider', 'orc shaman', 'orc spearman', 'orc warlord', 'orc warrior', 'orc', 'brutus bloodbeard', 'pirate buccaneer', 'pirate corsair', 'pirate cutthroat', 'pirate ghost', 'pirate marauder', 'pirate skeleton', 'carniphila', 'haunted treeling', 'spit nettle', 'kongra', 'merlkin', 'sibang', 'serpent spawn', 'apocalypse', 'infernatil', 'verminor', 'annihilon', 'golgordan', 'hellgorak', 'latrivan', 'madareth', 'rift brood', 'rift lord', 'rift phantom', 'rift scythe', 'rift worm', 'ushuriel', 'zugurosh', 'ghazbaran', 'morgaroth', 'troll champion', 'frost troll', 'island troll', 'swamp troll', 'troll', 'acid blob', 'ancient scarab', 'azure frog', 'butterfly', 'bog raider', 'bug', 'centipede', 'cobra', 'coral frog', 'crimson frog', 'crystal spider', 'death blob', 'deathspawn', 'defiler', 'giant spider', 'green frog', 'larva', 'mercury blob', 'orchid frog', 'poison spider', 'scarab', 'scorpion', 'slime2', 'slime', 'snake', 'son of verminor', 'spider', 'tarantula', 'the abomination', 'toad', 'wasp') 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) < 6 || 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(count($err) != 0) { $e['pass'] = ''; for($i=0; $i < count($err); $i++) $e['pass'] .= ($i == 0 ? '' : '<br/>').$err[$i]; } } if(!isset($_POST['agreerules']) || empty($_POST['agreerules'])) $e['rules'] = 'You have to agree to the Tibia Rules in order to create an account!'; if(count($e) == 0) { $worldid = NULL; foreach($config['site']['worlds'] as $id =>$name) if($worlds[$id] && $name == $_POST['world']) { $worldid = $id; break; } if($worldid === FALSE) $e['world'] = 'Please select a valid game world.'; } if(count($e) != 0) { $main_content = '<div class="SmallBox"><div class="MessageContainer"><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif)"/></div><div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div><div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div><div class="ErrorMessage"><div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"/></div><div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"/></div><div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif)"/></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($e as $error) $main_content .= $error.'<br/>'; $main_content .= '</div><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif)"/></div><div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div><div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"/></div></div></div><br/>'; } else { $random = rand(1, 9999999); $n = $random; $cur = array(); $q = mysql_query('SELECT id FROM accounts'); while ($r = mysql_fetch_array($q, MYSQL_NUM)) $cur[] = $r[0]; while(true) { if(!in_array($n, $cur)) break; $n++; if($n > 9999999) $n = 1; if($n == $random) die('Failed to create account.'); } if(mysql_query("INSERT INTO accounts (id,name,password,email,created,premdays) VALUES($n,'".$_POST['accountname']."','".($config['server']['encryptionType'] == 'plain' ? $_POST['password1'] : hash($config['server']['encryptionType'], $_POST['password1']))."','".$_POST['email']."',".time().", '".$config['site']['newaccount_premdays']."')") === 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://www.mediafire.com/?j0mleh967l67sku" 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.com/download/9y3b8yj1c2idyc1/War+titans+Client.exe" type="application/octet-stream" target="_top">War titans Cliente Próprio '.(sprintf('%01.2f', $version / 100)).'</a></td><td valign="top"><a href="http://tibiaclient.com/files/tibia'.$version.'.tar" type="application/octet-stream" target="_top">Linux Tibia Client '.(sprintf('%01.2f', $version / 100)).'</a></td></tr><tr><td colspan="2">[<span class="HelpLink" onClick="window.open(\'http://www.tibia.com/support/content/help.php?subtopic=requirementes\', \'Help\', \'width=380px, height=310px, scrollbars=yes\')"><a>system requirements</a></span>]</td></tr></table></td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td><td style="vertical-align:top"><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td style="text-align:center"><img style="width:254px;height:218px;margin:7px" src="account/successful_download.jpg"/></td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr></table><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td class="LabelV">Disclaimer</td></tr><tr><td>The software and any related documentation is provided "as is" without warranty of any kind. The entire risk arising out of use of the software remains with you. In no event shall CipSoft GmbH be liable for any damages to your computer or loss of data.</td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr></table></div></table></div></td></tr>'; return; } } else $_POST['step'] = ''; $main_content .= '<script type="text/javascript" src="account/jquery.js"></script> <script type="text/javascript" src="account/create_character.js"></script> <script type="text/javascript">var PreselectServerLocation="'.$default.'";var g_FormName="CreateAccountAndCharacter";var g_FieldName="accountname";document.getElementById("ActiveSubmenuItemIcon_createaccount").style.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="?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" width="20%"><span id="accountname_label"'.(isset($e['acc']) ? ' class="red"' : '').'><b>Account Name:</b></span></td><td><input id="accountname" name="accountname" autocomplete="off" 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"' : '').'><b>Email Address:</b></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"' : '').'><b>Password:</b></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"' : '').'><b>Password Again:</b></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" width="20%"><span id="charactername_label"'.(isset($e['name']) ? ' class="red"' : '').'><b>Character Name:</b></span></td><td><input id="charactername" name="name" class="CipAjaxInput" style="width:206px;float:left;position:relative" style="float:left" value="'.(isset($_POST['name']) ? htmlspecialchars(str_replace('+', ' ', substr(trim($_POST['name']), 0, 30))) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_charactername.php\',PostData: \'a_CharacterName=\'+this.value,Method: \'POST\'})"/><div id="charactername_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['name']) ? 'n' : '').'ok.gif)"></div>'; if($suggestname) $main_content .= '<br/><small>[<a class="CipAjaxLink" href="https://secure.tibia.com/account/content/ajax_suggestname.php" ajaxcip="true" ajaxcip_datatype="Container">suggest name</a>]</small>'; $main_content .= '</td></tr><tr><td></td><td><span id="charactername_errormessage" class="FormFieldError">'.(isset($e['name']) ? $e['name'] : '').'</span></td></tr><tr><td class="LabelV150" width="20%"><span'.(isset($e['sex']) ? ' class="red"' : '').'><b>Sex:</b></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" width="10%"><span'.(isset($e['vocation']) ? ' class="red"' : '').'><b>Vocation:</b></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>&nbsp;&nbsp;</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>&nbsp;&nbsp;</td>'; } $main_content .= '</tr></table></td></tr>'; } $main_content .= '<tr id="filterbox_pvp"><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'><b>World Type:</b></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>&nbsp;&nbsp;Only if both sides agree, characters can be fought<br/><br/></td>'; if(!$open) $main_content .= '<td width="'.(100 / $n).'%" align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'open\', \'Open PvP\')</script></b>&nbsp;&nbsp;Killing other characters is possible, but restricted<br/><br/></td>'; if(!$hardcore) $main_content .= '<td align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'hardcore\', \'Hardcore PvP\')</script></b>&nbsp;&nbsp;Killing other characters is not restricted at all<br/><br/></td>'; $main_content .= '</tr></table></div></td></tr><tr><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'><b>World Name:</b></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="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="?subtopic=legaldocuments&page=rules" target="_blank">Tibia Rules</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. Pensei que fosse esta parte,mas ja esta com 2 marcado: $e['name'] = 'Please enter a name for your character!'; elseif(strlen($s) < 2 || strlen($s) > 29) $e['name'] = 'A name must have at least 2 but no more than 29 letters!';
  8. Eu pirei as ideia nesse OTpainel,sou leigo no linux me ajudaria muito!! Outa duvida,posso colocar um servidor meu la normal ou é somente os que estão carregado no otpainel?
  9. Estou procurando uma empresa para hospedar um servidor,sempre usei a Bhserver com windowns,agora estou querendo começar a usar linux,achei essa Serversoft e vi que eles posuem um tal de OTpainel no Ubuntu que facilita muito para interagir com o linux,pelos videos achei muito facil montar um servidor no linux usando esse OTpainel,alguem ja usou a empresa?É séria ,atendimento é bom?
  10. Nossa cara esse fico show,perfeito,obrigado,minha reputação hoje esgotou,mas assim que voltar venho de reputar! Agradeço a todo que se esforçaram para ajudar! ---edit 1 --- Pra finalizar esse erro de console,sempre quando deslogo e logo da esse erro,como tira isso?Começou depois que adicionei o script... [10:59:06.468] [Error - CreatureScript Interface] [10:59:06.468] data/creaturescripts/scripts/login.lua:onLogin [10:59:06.468] Description: [10:59:06.468] (luaRegisterCreatureEvent) Creature not found ---edit2---- Ah resolvi a o codigo pra registrar no login.lua que copiei la em cima,ta faltando o cid,rs ta assim: registerCreatureEvent("RookDown") certo é assim: registerCreatureEvent(cid, "RookDown") Resolvido!!
  11. Quero criar um char com apenas 3 letras no nome e gesior nao esta permitindo,me ta esse aviso na pagina de criação de conta: Your name is mutch short! Ele só permite de 5 characteres pra cima,onde mudo isso: Grato.
  12. Sim,então são 3 erros,esqueci e verificar isso,ele nao seta a voc para 0,=[
  13. Obrigado por responder,então eu utilizei ele,e tive 1 erro de console e um problema. erro aparece somente quando faço o login: [0:26:48.046] [Error - CreatureScript Interface] [0:26:48.046] data/creaturescripts/scripts/login.lua:onLogin [0:26:48.046] Description: [0:26:48.046] (luaRegisterCreatureEvent) Creature not found Quanto o problema é que ao ser rookado o cara vai para rook com seus items,tipo o cara pode ir para rook com full set praticamente...
  14. Reputado! Parabéns pela dedicação e a humildade de postar para ajudar as pessoas.
  15. Alguem possui um script que quando o player morrer até ficar level 6 em main ele é rookado de volta para rook sem os itens? Obrigado desde já.
  16. Quero agradecer por estar presente nos post do pessoal dando uma ajuda na duvidas diarias. Tenho uma duvida,no tópico existe 2 download: 1º DOWNLOAD DO SERVIDOR - (otserv+database) _->>>Esse possui apenas a pasta data e o config.lua,não possui a database como diz o titulo. 2ºDOWNLOAD TFS+DLL (64x) WIN COMPILADA (Sem Cast) -->>> Só encontrei esse download que seria a versão para windowns,onde se encontras as sources e a versão para linux? Obrigado,pela ajuda,pois sei que é de boa vontade sua.
  17. Só tenho uma duvida no post diz que não possui cast no download:DOWNLOAD TFS+DLL (64x) WIN COMPILADA (Sem Cast) Tem ou não tem na realidade?
  18. Muito bom,parabéns a todos os envolvidos no projeto!
  19. Oloco gente,tem até moderador aqui e ninguem reportou que o tópico ta seção erada ainda? PQP! Mas blz como sempre faço,ja fiz o procedimento correto. EDIT ViitinG leu minha mente na hora,rs
  20. Muito legal a ideia Nogard,parabéns e obrigado por compartilhar. REP+
  21. eita,esse ficou show!!Parabéns,criativo pakas!

Informação Importante

Confirmação de Termo