Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/06/11 em todas áreas
-
Abre o RME mapa editor e vá em arquivo > Importar > importar mapa. [ archive > import > import map ] e selecione o outro mapa. Depois disso, coloque os teleports REP+2 pontos
-
(Oficial) The Forgotten Server V0.2.10 - M. Spirit!
OForasteiro reagiu a luan12 por um tópico no fórum
(Oficial - SQL) The Forgotten Server v0.2.10 - M. Spirit! Esta é uma versão do The Forgotten Server atualizada para o cliente do Tibia 8.70 e Tibia 8.71, com os novos sistemas (sistema de montaria, magias, entre outros), lembrando que ainda não está totalmente completo, em breve terá mais atualizações. ( Informações ) Atualização Versão 0.2.10: Esta versão é para fixar os bugs mais críticos relatados em 0.2.9, e um número de outras questões que foram encontradas. Ele também vem com otimizações para o código de eventos globais, principalmente na prevenção de eventos globais terem impactos no desempenho do seu servidor. Este é, portanto, essencialmente uma versão para correção de bugs. Desejamos apresentar mais recursos e novos trabalhos a versão 0.3! ChangeLog: Screenshot: DLLs: (Necessário para rodar o servidor). -> http://download294.mediafire.com/72p6126345jg/2ao9klbmehkb3f8/TFS+DLLs+-+XTibia.com.7z Código Source: Subversion client: svn://svn.otland.net/public/forgottenserver/tags/0.2.10/ Browse: http://otland.net/subversion.php?svn=public&file=listing.php&repname=forgottenserver&path=/tags/0.2.10/ Download dos Distros: Download Completo (Distros + DLLs): Créditos: Desenvolvedores do TFS - (Talaturen - OTland) - - - - - - - - - - - - - - - - - - - - - - - - - É isso, té. (+REP)1 ponto -
Subwat Server V16 100 % Sem Bug Do God
Lucas2012Ramos reagiu a xXLukiinhasXx por um tópico no fórum
Bom Galerinha estou postando esse mapa que arrumei aki como forma de protesto contra akeles noobs que jogão em ot server's subwat e sabem onde estão os famosos bug's de virar god, então revoltado com isso abrir meu editor e arrumei o bug do meu mapa v16, percebendo que comigo funcionou resolvi aqui compartilhar. Obs: so mudei um pouco o templo nada de muito drastico. o bug estava junto ao Rei Gean Riot da 3 cidade Ss do bug: E so ir em um server não editado e dar use Agora sem o Bug Modifiquei um pouco o mapa Novas Ss: Templo: Templo Parte de Cima: Teleportes Free: Teleportes Vip: Teleportes Super vip: Também Esta com o Erro da DB arrumado Para quem gostou Aki Vai o download: Download Aki Scan: Scan Aki acc do god: god/god Bom como este e meu primeiro tópico aki espero estar na aréa certa. sei tb que não tenho autorização de ninguém para editar o mapa então os creditos são são todos ao criador do mapa Gostou +REP :button_ok: :weight_lift: Testem Ai qualquer erro meu e-mail: lucas.theus@hotmail.com1 ponto -
Monster Maker (Editor)
wizav01 reagiu a MapperComand por um tópico no fórum
Várias pessoas nunca acham o "Monster Maker" então resolvi trazer a XTibia. É bem facil usa-lo. Primeiro abra o setup e instale-o, depois abra o aplicativo e é só diversão . Lembrando funciona 8.5 . Download:Clique aqui(Hospedado 4shared). Scan:Clique aqui(Hospedado Virus total). Perguntas: Para que serve? Para criar monstros .xml para ots. Espero que gostem, Att+ ~~Comand1 ponto -
[Tutorial] Criando Um Servidor De Teamspeak 3!
MunizR reagiu a ultimate1996 por um tópico no fórum
Finalmente vai poder falar com pessoas que nunca falou '-' O que é o TeamSpeak? Teamspeak é um programa que serve para jogadores se comunicarem através do microfone. O TeamSpeak é muito util em uma war ou em qualquer tipo de jogo. Ele também é util se voce tiver um servidor, o Teamspeak pode servir de contato entre players e GM's. Então vou mostrar aqui como se cria um servidor de TeamSpeak. Fácil e rápido! 1-Clique no menu iniciar e logo em seguida, clique com o botão direito do mouse em Meu Computador. Clique em Propriedades. Nas propriedades deve mostrar se o seu windows é 32 ou 64 bits. 2-Agora ,vá em http://www.teamspeak.com/?page=downloads e baixe o Client (32bit ou 64bit) e o Server (32bit ou 64bit). 3- Depois de ter baixado, vá em seu firewall e Adicione a porta 9987 (UDP) , depois adicione 10011 (TCP) e por ultimo adicione 30033 (TCP). E adicione essas 3 portas em seu roteador/modem também. 4- Agora vá no site www.no-ip.com. Crie sua conta e depois de ter logado, clique em Add Host. Crie um IP. Ex : xtibiateamspeak.servegame.com 5- Depois de ter criado o IP, abra o Server que você baixou no site do teamspeak. Provavelmente ele te mostrará uma senha e um codigo, guarde-os. Agora abra o TeamSpeak 3 e em Adress(Endereço) coloque o IP criado e ponha :9987 no final do IP. (Exemplo : xtibiateamspeak.servegame.com:9987 ) Pronto! Seu servidor de TeamSpeak foi criado. Agora chame seus amigos. Lembrando que eles entrarão pelo IP que foi criado. (xtibiateamspeak.servegame.com:9987) [VIDEO-AULA] Como criar um servidor de TeamSpeak 3 http://www.youtube.com/watch?v=Kd99ERESe7U Download da VIDEO AULA- Aqui Créditos 100% RaizenUrameshi Caso não tenha conseguido criar o servidor, poste aqui o erro ou a dúvida[/b]1 ponto -
Multi Elemental Arrow E Shield
gabrielmotta1 reagiu a davialves por um tópico no fórum
Olá Xtibianos, estou aqui para postar um script simples e útil.. antes de tudo vou explicar como funciona. Ao Clicar em cima da arrow/shield o elemento de ambos muda.. Vamos ao o que interessa. Vá em data/actions/actions.xml e bote: <action fromid="7838" toid="7840" event="script" value="transformarrow.lua"/> <action itemid="7850" event="script" value="transformarrow.lua"/> Em data/actions/scripts crie uma pasta chamada transformarrow.lua e bote isso dentro dela: Sua multi elemental ARROW está pronta, agora vamos para o multi elemental SHIELD Vá em data/actions/actions.xml e bote: <action fromid="8905" toid="8909" event="script" value="transformshield.lua"/> <action itemid="8908" event="script" value="transformshield.lua"/> Em data/actions/scripts crie uma pasta chamada transformshield.lua e bote isso dentro dela: Até Mais..1 ponto -
• nome: Sistema de Ginásio / GYM para pokemon. • autor: brun123 (mastercraft) • versão testada: TFS 0.36 pl 1 (8.54) Detalhes: Como cada servidor de pokemon é bem diferente, acredito que muitos erros vão aparecer devido a diferença de IDs das pokebolas por exemplo, mas vou ajudar no que posso. Primeiro passo: crie um arquivo com o nome gymlib.lua na pasta data/lib/, e coloque isso dentro do arquivo: Segundo passo: crie um arquivo chamado gym.lua na pasta data/creaturescripts/scripts/ e coloque isso dentro: Terceiro passo: abra o arquivo creaturescripts.xml (localizado em data/creaturescripts) e adicione essas 4 tags: <event type="cast" name="Gym1" event="script" value="gym.lua"/> <event type="attack" name="Gym2" event="script" value="gym.lua"/> <event type="direction" name="Gym3" event="script" value="gym.lua"/> <event type="death" name="Gym4" event="script" value="gym.lua"/> Quarto passo: crie um arquivo chamado brock.xml em data/npc e crie um chamado brock.lua em data/npc/scripts e coloque isso dentro: Quinto passo: se você usar o pokemon dash, vá no arquivo playerattack.lua (data/creatureevents/scripts) e adicione esses códigos embaixo da linha "function onAttack(cid, target)": if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end end Se você não usa o pokemon dash, crie um arquivo chamado playerattack.lua na pasta data/creatureevents/scripts e coloque isso dentro: function onAttack(cid, target) if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end return true end e adicione essa tag no creaturescripts.xml (data/creaturescripts): <event type="attack" name="PlayerAttack" event="script" value="playerattack.lua"/> e ainda, abra o arquivo login.lua e embaixo dessa linha: "function onLogin(cid)" adicione esse código: registerCreatureEvent(cid, "PlayerAttack") Último passo: vá em data/creaturescripts/scripts e abra o arquivo goback.lua (aqui por exemplo, pode ser que haja uma particulariedade de servidor para servidor), e procure pela linha: function onDeath(cid, deathList) e abaixo dela, adicione esse código: local owner = getCreatureMaster(cid) for x, y in pairs(ginasios) do if getPlayerStorageValue(owner, y.storage) == 1 then if getPlayerStorageValue(owner, 991) == 5 or not hasPokemon(owner) then setPlayerStorageValue(owner, 991, -1) else local number = tonumber(getPlayerStorageValue(owner, 991)) setPlayerStorageValue(owner, 991, number + 1) end end end Configuração dos NPCs: Abrindo o arquivo brock.lua na pasta data/npc/scripts, procure por esta linha: "doGymBattle("Brock", "Brock Geodude", cid, 1)" o "Brock" precisa ser o nome do NPC e o "Brock Geodude" precisa ser o nome do primeiro pokemon a ser usado. Agora nessa parte, no script do seu NPC, você também deve editar o nome do NPC no lugar de "brock". Se quiser que o player possa lutar com o NPC mesmo depois de tê-lo vencido, é só remover a mesma parte: if getPlayerStorageValue(cid, ginasios["Brock"].storage) >= 1 then return true end Ao abrir o arquivo gymlib.lua, você encontra essas duas linhas (são as primeiras): funcpokemon = {2220, 2222} -- ID das pokebolas (o pokemon tem que estar vivo nessas IDs) bpslot = CONST_SLOT_BACKPACK --em outros servers, pode ser que seja CONST_SLOT_AMMO o lugar onde fica a backpack no inventory Onde está funcpokemon, você coloca o ID de todas as pokebolas do seu server, mas esse ID tem que ser o ID da pokebola com algum pokemon vivo dentro, e esses IDs devem ser separados por vírgula. Onde está bpslot, você escreve onde fica a BACKPACK do seu server de pokemon. Se ficar no lugar normal de BPs, deixe como está, mas se sua BP fica no slot da munição (ammunition), você deve estar para CONST_SLOT_AMMO. Isso é tudo, agora vocês podem configurar os IDs e localização da BP facilmente, sem precisar conhecimentos mais avançados sobre scripting, e evitar erros no sistema. Abrindo o arquivo gymlib.lua, localizado em data/lib/ você encontra essa tabela: ginasios = { ["Brock"] = { storage = 900, msgdefeat = "You lost! You aren't strong enough yet, don't come back until you get stronger!", msgafk = "Go away if you don't have any pokemons!", msgwin = "Congratulations, you were strong enough to win this battle fairly! Take this Earth Badge as reward.", [1] = { msggo = "Lets fight then! I choose you, Geodude!", msgba = "That's enough, Geodude!", pokem = "Brock Geodude", nextp = "Brock Graveler"}, [2] = { msggo = "It's your turn, Graveler!", msgba = "Come back, Graveler!", pokem = "Brock Graveler", nextp = "Brock Golem"}, [3] = { msggo = "Crush'em, Golem!", msgba = "You did well, Golem!", pokem = "Brock Golem", nextp = "finish"} } } • storage significa a única storage que deve variar de NPC para NPC, tenha certeza de que essa storage não está sendo usada, é você não deve usar a storage 901 aqui, pois a mesma já está em uso pelo próprio sistema. • msgdefeat significa o que o NPC irá dizer quando o player perder o duelo. • msgafk significa o que o NPC irá dizer caso o player comece o duelo, mas não faça nada depois. • msgwin significa o que o NPC irá dizer quando o player vencer o duelo. • msggo / msgba significam os textos que o NPC irá dizer ao sumonar o pokemon dele, ou quando o mesmo morrer, respectivamente.• pokem / nextp significam o nome do pokemon que será utilizado, e o próximo pokemon a ser sumonado pelo NPC, respectivamente. Caso o nextp seja especificado como "finish", não haverá um próximo pokemon. • o número entre [] significa a ordem utilizada pelo líder para usar o tal pokemon, sendo 1 o primeiro pokemon, 2 o segundo e assim vai... Uma tabela detalhada sobre a configuração: Importante: caso for testar o sistema como foi postado aqui, é necessário criar antes os monstros Brock Geodude, Brock Graveler e Brock Golem, assim como adicioná-los no monsters.xml. Recomendações: é bom você impedir que o pokemon consiga retornar para a pokebola durante duelos (assim como foi feito no SvkE), para isso, basta adicionar esse código no arquivo goback.lua (data/actions) na parte inicial de retornar o pokemon: for a, b in pairs(ginasios) do if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end end Aconselho fazer o mesmo caso seu server tenha script de revive. Deve-se também checar pelos storages usado em players, somente o 990 e o 991. No servidor testado, é utilizado apenas pokeballs e ultraballs, com IDs 2220 e 2222 (outra particularidade). Após ter instalado os arquivos, entre no jogo e use o comando /n Brock para testar o NPC. Último aviso: o prêmio ainda não foi adicionado (que seria a badge), pois esse sim é bem variado de servidor pra servidor. Já que nenhum servidor base já vem com os IDs das badges, cada um adicionou elas de modo diferente, por isso não pude fazer, mas existe uma parte sobre um prêmio no arquivo gym.lua (data/creaturescripts/scripts), procure por isso: --local item = getPlayerItemById(killer, true, 2307) --doTransformItem(item.uid, 2294) Você pode modificar para adicionar dinheiro ou outra coisa, e pode também desenvolver um sistema de badges. Eu não vou fazer badge aqui, mas se vocês tentarem, posso ajudar com problemas. Quaisquer erros, tentarei responder o mais rápido possível.1 ponto
-
Baiak [8.6] By Mestre Da'war
Paulotes123 reagiu a Kyuubye por um tópico no fórum
Ae Galera! Querem Saber o que mudou no ot? Bom: City TOTALMENTE edited New Depot! New Teleports! Quests Room! Area VIP Rox! Temple Super Edited! Nova Quest: Warlord sword, The stomper e Hellforged Axe! MPA Quest Editada! Imunidade de SD do Ghastly Dragon Removida! Uma sala de TPs somente para os novos monstros exemplo: Ghastly Dragon e os Lizards! Nao editei nenhum item! para voce mexer no que vo quiser! Tem muito mais! Ai vai algumas Prints Screen do ot: Prints do Ot Aki Aki o Resto: OT AKI Dlls RME Map Editor Tibia (All Clients!) SCAN DO OT \/ Result: 0/ 41 (0.0%) Link do Scan: Scan Aki1 ponto -
Bom cara, acho que o seu tópico está com um erro. Sobre o tópico: É mais que merecido, adoro as notícias deles, mereceu mais ainda depois da entrevista com o GM Excessus.1 ponto
-
[Duvida] Bug Em Uma Função
drakylucas reagiu a Demonbholder por uma questão
O problema é que ele reconhece a função getGlobalStorageValue como um valor nulo. Quando executar no OT Server provavelmente não irá ocorrer erro. Para confirmar isso, execute no script live, o seguinte código: function teste() return getGlobalStorageValue(30000) - os.clock() end teste() Ai então, temos o seguinte erro: ERROR: untitled.lua:3: attempt to perform arithmetic on a nil value Você não tem um erro como esse quando usa em um outro script pois não executa a função. Se executar o seguinte código: function getEventTime() if 0 > (getGlobalStorageValue(12000) - os.clock())then -- essa é a linha 60 do erro return false end return(getGlobalStorageValue(12000) - os.clock()) end getEventTime() Irá acusar erro. -- Acho que é isso, abraços.1 ponto -
[Tutorial]Criando Website Com Xampp
JonatasPereira reagiu a ultimate1996 por um tópico no fórum
@JonatasPereira Enquanto ao erro : ERROR: Couldn't estabilish conection to SQL database! .. É necessário voce refazer todos os procedimentos. E no erro do : Parse error: syntax error, unexpected ';', expecting T_FUNCTION in G:\Program Files\xampp\htdocs\pot\OTS_DB_SQLite.php on line 68 Substitua o arquivo em G:\Program Files\xampp\htdocs\pot\OTS_DB_SQLite.php por este arquivo : Download E enquanto ao problema do Xampp, reinstale-o.1 ponto -
Sou Bom Mapper, Já Fiz Mapas Próprios, se quiser, ajuda me avisa aew Mano sou designer, formado com diploma. Se quiser dps eu scaneio Nome: Luis Tenho 14 @nos e Meu MSN: luis_aahonorato@hotmail.com1 ponto
-
Ajuda Aqui Rapidim
Limaoloko reagiu a Piabeta Kun por um tópico no fórum
bem vou te passar um script que funciona assim como vc quer, eu editei ele ele era o npc a sweaty cyclops. va´em data/npc dentro vc crie um arquivo.xml (coloque o nome que vc kizer) e dentro bote isso: <?xml version="1.0" encoding="UTF-8"?> <npc name="nome do seu npc" script="data/npc/scripts/nome do script.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="22" head="0" body="0" legs="0" feet="0"/> <parameters> <parameter key="message_greet" value="Hum Humm! Welcume |PLAYERNAME|." /> <parameter key="message_decline" value="Alright then. Come back when you got the neccessary items." /> <parameter key="message_walkaway" value="Farewell, human." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="job" /> <parameter key="keyword_reply1" value="I'm an forger." /> </parameters> </npc> e depois va em data/npc/scripts e crie um arquivo.lua (com o nome que vc colocou acima ~~> script="data/npc/scripts/nome do script.lua" ) e dentro dele coloque isso: 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 -- XVX FORGER START -- function crude(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerItemCount(cid,5879) >= 1 then if doPlayerRemoveItem(cid,5879,1) then npcHandler:say('Here is your item!', cid) doPlayerAddItem(cid,5892,1) end else npcHandler:say('You don\'t have these items!', cid) end end -- XVX FORGER END -- keywordHandler:addKeyword({'help'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "I can forge Huge Chunk of Crude Iron "}) local node3 = keywordHandler:addKeyword({'crude'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want to trade a Giant Spider Silk for a Huge Chunk of Crude Iron?'}) node3:addChildKeyword({'yes'}, crude, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node3:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then. Come back when you got the neccessary items.', reset = true}) npcHandler:addModule(FocusModule:new()) altere a gosto! acima ele troca uma Gs Silk por um Huge Chunk of Crude Iron! lembrando que esse script e o msmo do a sweat cyclops sendo que eu resumi para fikar de acordo com que vc quer! se ajudei + rep , se nao poste aki no topico suas duvidas!1 ponto -
[Encerrado] [Mysql]The Temple Position Is Wrong.
P4raiba reagiu a SkyDangerous por um tópico no fórum
Uma maneira muito mais facil 1º Abra a arquivo chamado accountmanagement.php. 2º Procure na linha 908 $player->setPosX(1003); $player->setPosY(1000); $player->setPosZ(7); 3º Em seguida troque as posições para onde quer renascer 4º Pronto , está configurado e só criar a account testar !1 ponto -
[Pedido] Mensagem Ocupado
fokus090 reagiu a Demonbholder por uma questão
@Frenesy Vamos lá. Primeiro vá em data/movements/script, crie um arquivo .lua e cola isso nele: function onStepIn(cid, item, position, fromPosition) if getGlobalStorageValue(30050) == -1 then addEvent(doMsg, 0, position) end setGlobalStorageValue(30050, getGlobalStorageValue(30050) + 1) return TRUE end function doMsg(pos) local delay = 3 if getGlobalStorageValue(30050) ~= -1 then doSendAnimatedText(pos, "Ocupado", math.random(3, 12)) addEvent(doMsg, delay*1000, pos) end end Configure o delay, que é o tempo entre as mensagens. Depois, ainda nessa mesma pasta, crie outro arquivo .lua e cole este script: function onStepIn(cid, item, position, fromPosition) setGlobalStorageValue(30050, getGlobalStorageValue(30050) -1) return TRUE end Feito. Agora vá em data/movements, abra o arquivo movements.xml e cole estas duas tags nele: <movevent type="StepIn" actionid="AID1" event="script" value="NomeDoArquivo1.lua"/> <movevent type="StepIn" actionid="AID2" event="script" value="NomeDoArquivo2.lua"/> Só colocar os actionids dos portais e o nome dos scripts. Testa ai. OBS: O primeiro script é para entrada e o segundo para a saida.1 ponto -
[Pedido] Como Por Os Items Que Eu Criei , No Rme?
Demonbholder reagiu a SkyDangerous por uma questão
Olá TrinksOT Se você criou novos items ou seja com sprites novas , basta você abrir o rme com o seu tibia editado. Caso voce apenas adicionou novos ids , basta voce pegar o item.otmb (nao lembro como escreve)e coloca na pasta do rme na versão que você editou. PEÇo desculpas se não ficou concreto , estou na sala de aula qualquer dúvida poste novamente. Abraço SkyDAngerous1 ponto -
Como Criar Nova Aba Menus No Gesior
brubru01 reagiu a Piabeta Kun por um tópico no fórum
bem se vc quer por um novo botao(ou sei la como se fala) como o Buy Points e o Highscores vc vai criar o arquivo playersvip.php na pasta htdocs. Depois vai em index.php embaixo disso: case "characters"; $topic = "Characters"; $subtopic = "characters"; include("characters.php"); break; adicione isso: case "playersvip"; $topic = "playersvip"; $subtopic = "playersvip"; include("playersvip.php"); break; agora para add ele como botao no seu site! faça o seguinte: va em Htdocs/Layout/Tibiacom(ou a pasta que vc usa como tema do site)/Layout.php dentro dele procure por: <a href='?subtopic=highscores'> <div id='submenu_highscores' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_highscores' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Highscores</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> e embaixo coloque isso: <a href='?subtopic=playersvip'> <div id='submenu_playersvip' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_playersvip' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Players Vip</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Pronto! OBS: o seu novo botao vai fikar embaixo do botao highscores, caso queira por em outra posicao basta procurar o nome do botao que vc queira por embaixo e proceder como esta acima! caso nao entendeu poste sua duvida , se nao for isso fika ai para quem nao saber add isso e se nao funcionar poste aki no topico que verei o que eu faço! se ajudei + Rep por favor!1 ponto -
Criação Da Conta Sha1 Ou Plain
pessoa93 reagiu a Piabeta Kun por um tópico no fórum
man sinceramante nao entendo muito de programaçao(que eu axu que seria o caso) vc usa TFS 0.4 (poderia por em evidencia isso) assim eu nao saberia como te ajudar, mais aki funciona de boa tudo! vc usa win7? e msmo assim vou postar aki o meu createaccount.php pra ver se vc consegue criar certinhu ai! <marquee direction="left" scrollAmount='4' width="1000" height="10"> <font color="#ff0000"><b>Future World Server: 4 anos de trabalho para fazer o melhor Ot Server para voce!!!</b></font> </marquee> <?PHP //CREATE ACCOUNT FORM PAGE if($action == "") { $main_content .= '<script type="text/javascript"> var accountHttp; //sprawdza czy dane konto istnieje czy nie function checkAccount() { if(document.getElementById("account_name").value=="") { document.getElementById("acc_name_check").innerHTML = \'<b><font color="red">Please enter account name.</font></b>\'; return; } accountHttp=GetXmlHttpObject(); if (accountHttp==null) { return; } var account = document.getElementById("account_name").value; var url="ajax/check_account.php?account=" + account + "&uid="+Math.random(); accountHttp.onreadystatechange=AccountStateChanged; accountHttp.open("GET",url,true); accountHttp.send(null); } function AccountStateChanged() { if (accountHttp.readyState==4) { document.getElementById("acc_name_check").innerHTML=accountHttp.responseText; } } var emailHttp; //sprawdza czy dane konto istnieje czy nie function checkEmail() { if(document.getElementById("email").value=="") { document.getElementById("email_check").innerHTML = \'<b><font color="red">Please enter e-mail.</font></b>\'; return; } emailHttp=GetXmlHttpObject(); if (emailHttp==null) { return; } var email = document.getElementById("email").value; var url="ajax/check_email.php?email=" + email + "&uid="+Math.random(); emailHttp.onreadystatechange=EmailStateChanged; emailHttp.open("GET",url,true); emailHttp.send(null); } function EmailStateChanged() { if (emailHttp.readyState==4) { document.getElementById("email_check").innerHTML=emailHttp.responseText; } } function validate_required(field,alerttxt) { with (field) { if (value==null||value==""||value==" ") {alert(alerttxt);return false;} else {return true} } } function validate_email(field,alerttxt) { with (field) { apos=value.indexOf("@"); dotpos=value.lastIndexOf("."); if (apos<1||dotpos-apos<2) {alert(alerttxt);return false;} else {return true;} } } function validate_form(thisform) { with (thisform) { if (validate_required(account_name,"Please enter name of new account!")==false) {account_name.focus();return false;} if (validate_required(email,"Please enter your e-mail!")==false) {email.focus();return false;} if (validate_email(email,"Invalid e-mail format!")==false) {email.focus();return false;} if (verifpass==1) { if (validate_required(passor,"Please enter password!")==false) {passor.focus();return false;} if (validate_required(passor2,"Please repeat password!")==false) {passor2.focus();return false;} if (passor2.value!=passor.value) {alert(\'Repeated password is not equal to password!\');return false;} } if (verifya==1) { if (validate_required(verify,"Please enter verification code!")==false) {verify.focus();return false;} } if(rules.checked==false) {alert(\'To create account you must accept server rules!\');return false;} } } </script>'; $main_content .= 'To play on '.$config['server']['serverName'].' you need an account. All you have to do to create your new account is to enter your email address, password to new account, verification code from picture and to agree to the terms presented below. If you have done so, your account name, password and e-mail address will be shown on the following page and your account and password will be sent to your email address along with further instructions.<BR><BR> <FORM ACTION="?subtopic=createaccount&action=saveaccount" onsubmit="return validate_form(this)" METHOD=post> <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Create a '.$config['server']['serverName'].' Account</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLSPACING=8 CELLPADDING=0> <TR><TD> <TABLE BORDER=0 CELLSPACING=5 CELLPADDING=0>'; $main_content .= '<TR><TD width="150" valign="top"><B>Account name: </B></TD><TD colspan="2"><INPUT id="account_name" NAME="reg_name" onkeyup="checkAccount();" VALUE="" SIZE=30 MAXLENGTH=50><BR><font size="1" face="verdana,arial,helvetica">(Please enter your new account name)</font></TD></TR> <TR><TD width="150"><b>Name status:</b></TD><TD colspan="2"><b><div id="acc_name_check">Please enter your account name.</div></b></TD></TR> <TR><TD width="150" valign="top"><B>Email address: </B></TD><TD colspan="2"><INPUT id="email" NAME="reg_email" onkeyup="checkEmail();" VALUE="" SIZE=30 MAXLENGTH=50><BR><font size="1" face="verdana,arial,helvetica">(Your email address is required to recovery a '.$config['server']['serverName'].' account)</font></TD></TR> <TR><TD width="150"><b>Email status:</b></TD><TD colspan="2"><b><div id="email_check">Please enter your e-mail.</div></b></TD></TR>'; $main_content .= '<TR><TD width="150"><b>Select Country:</b></TD><TD colspan="2"><b><select name="country"> <option value="">Please choose</option><option value="af"> Afghanistan </option><option value="al"> Albania </option><option value="dz"> Algeria </option><option value="as"> American Samoa </option><option value="ad"> Andorra </option><option value="ao"> Angola </option><option value="ai"> Anguilla </option><option value="aq"> Antarctica </option><option value="ag"> Antigua and Barbuda </option><option value="ar"> Argentina </option> <option value="am"> Armenia </option><option value="aw"> Aruba </option><option value="au"> Australia </option><option value="at"> Austria </option><option value="az"> Azerbaijan </option><option value="bs"> Bahamas </option><option value="bh"> Bahrain </option><option value="bd"> Bangladesh </option><option value="bb"> Barbados </option><option value="by"> Belarus </option><option value="be"> Belgium </option><option value="bz"> Belize </option><option value="bj"> Benin </option><option value="bm"> Bermuda </option><option value="bt"> Bhutan </option><option value="bo"> Bolivia </option><option value="ba"> Bosnia and Herzegowina </option><option value="bw"> Botswana </option><option value="bv"> Bouvet Island </option><option value="br"> Brazil </option><option value="io"> British Indian Ocean Territory </option><option value="bn"> Brunei Darussalam </option><option value="bg"> Bulgaria </option><option value="bf"> Burkina Faso </option><option value="bi"> Burundi </option> <option value="kh"> Cambodia </option><option value="cm"> Cameroon </option><option value="ca"> Canada </option><option value="cv"> Cape Verde </option><option value="ky"> Cayman Islands </option><option value="cf"> Central African Republic </option><option value="td"> Chad </option><option value="cl"> Chile </option><option value="cn"> China </option><option value="cx"> Christmas Island </option><option value="cc"> Cocos Islands </option><option value="co"> Colombia </option><option value="km"> Comoros </option><option value="cd"> Congo </option><option value="cg"> Congo </option><option value="ck"> Cook Islands </option><option value="cr"> Costa Rica </option><option value="ci"> Cote DIvoire </option><option value="hr"> Croatia </option><option value="cu"> Cuba </option><option value="cy"> Cyprus </option><option value="cz"> Czech Republic </option><option value="dk"> Denmark </option><option value="dj"> Djibouti </option><option value="dm"> Dominica </option> <option value="do"> Dominican Republic </option><option value="tp"> East Timor </option><option value="ec"> Ecuador </option><option value="eg"> Egypt </option><option value="sv"> El Salvador </option><option value="gq"> Equatorial Guinea </option><option value="er"> Eritrea </option><option value="ee"> Estonia </option><option value="et"> Ethiopia </option><option value="fk"> Falkland Islands </option><option value="fo"> Faroe Islands </option><option value="fj"> Fiji </option><option value="fi"> Finland </option><option value="fr"> France </option><option value="gf"> French Guiana </option><option value="pf"> French Polynesia </option><option value="tf"> French Southern Territories </option><option value="ga"> Gabon </option><option value="gm"> Gambia </option><option value="ge"> Georgia </option><option value="de"> Germany </option><option value="gh"> Ghana </option><option value="gi"> Gibraltar </option><option value="gr"> Greece </option> <option value="gl"> Greenland </option><option value="gd"> Grenada </option><option value="gp"> Guadeloupe </option><option value="gu"> Guam </option><option value="gt"> Guatemala </option><option value="gn"> Guinea </option><option value="gw"> Guinea-Bissau </option><option value="gy"> Guyana </option><option value="ht"> Haiti </option><option value="hm"> Heard and Mc Donald Islands </option><option value="hn"> Honduras </option><option value="hk"> Hong Kong </option><option value="hu"> Hungary </option><option value="is"> Iceland </option><option value="in"> India </option><option value="id"> Indonesia </option><option value="ir"> Iran </option><option value="iq"> Iraq </option><option value="ie"> Ireland </option><option value="il"> Israel </option><option value="it"> Italy </option><option value="jm"> Jamaica </option><option value="jp"> Japan </option><option value="jo"> Jordan </option><option value="kz"> Kazakhstan </option><option value="ke"> Kenya </option> <option value="ki"> Kiribati </option><option value="kr"> Korea </option><option value="kp"> Korea </option><option value="kw"> Kuwait </option><option value="kg"> Kyrgyzstan </option><option value="la"> Lao Peoples Democratic Republic </option><option value="lv"> Latvia </option><option value="lb"> Lebanon </option><option value="ls"> Lesotho </option><option value="lr"> Liberia </option><option value="ly"> Libyan Arab Jamahiriya </option><option value="li"> Liechtenstein </option><option value="lt"> Lithuania </option><option value="lu"> Luxembourg </option><option value="mo"> Macau </option><option value="mk"> Macedonia </option><option value="mg"> Madagascar </option><option value="mw"> Malawi </option><option value="my"> Malaysia </option><option value="mv"> Maldives </option><option value="ml"> Mali </option><option value="mt"> Malta </option><option value="mh"> Marshall Islands </option><option value="mq"> Martinique </option> <option value="mr"> Mauritania </option><option value="mu"> Mauritius </option><option value="yt"> Mayotte </option><option value="mx"> Mexico </option><option value="fm"> Micronesia </option><option value="md"> Moldova </option><option value="mc"> Monaco </option><option value="mn"> Mongolia </option><option value="ms"> Montserrat </option><option value="ma"> Morocco </option><option value="mz"> Mozambique </option><option value="mm"> Myanmar </option><option value="na"> Namibia </option><option value="nr"> Nauru </option><option value="np"> Nepal </option><option value="nl"> Netherlands </option><option value="an"> Netherlands Antilles </option><option value="nc"> New Caledonia </option><option value="nz"> New Zealand </option><option value="ni"> Nicaragua </option><option value="ne"> Niger </option><option value="ng"> Nigeria </option><option value="nu"> Niue </option><option value="nf"> Norfolk Island </option><option value="mp"> Northern Mariana Islands </option> <option value="no"> Norway </option><option value="om"> Oman </option><option value="pk"> Pakistan </option><option value="pw"> Palau </option><option value="pa"> Panama </option><option value="pg"> Papua New Guinea </option><option value="py"> Paraguay </option><option value="pe"> Peru </option><option value="ph"> Philippines </option><option value="pn"> Pitcairn </option><option value="pl"> Poland </option><option value="pt"> Portugal </option><option value="pr"> Puerto Rico </option><option value="qa"> Qatar </option><option value="re"> Reunion </option><option value="ro"> Romania </option><option value="ru"> Russian Federation </option><option value="rw"> Rwanda </option><option value="kn"> Saint Kitts and Nevis </option><option value="lc"> Saint Lucia </option><option value="ws"> Samoa </option><option value="sm"> San Marino </option><option value="st"> Sao Tome and Principe </option><option value="sa"> Saudi Arabia </option><option value="sn"> Senegal </option> <option value="sc"> Seychelles </option><option value="sl"> Sierra Leone </option><option value="sg"> Singapore </option><option value="sk"> Slovakia </option><option value="si"> Slovenia </option><option value="sb"> Solomon Islands </option><option value="so"> Somalia </option><option value="za"> South Africa </option><option value="es"> Spain </option><option value="lk"> Sri Lanka </option><option value="sh"> St. Helena </option><option value="pm"> St. Pierre and Miquelon </option><option value="sd"> Sudan </option><option value="sr"> Suriname </option><option value="sj"> Svalbard and Jan Mayen Islands </option><option value="sz"> Swaziland </option><option value="se"> Sweden </option><option value="ch"> Switzerland </option><option value="sy"> Syrian Arab Republic </option><option value="tw"> Taiwan </option><option value="tj"> Tajikistan </option><option value="tz"> Tanzania </option> <option value="th"> Thailand </option><option value="tg"> Togo </option><option value="tk"> Tokelau </option><option value="to"> Tonga </option> <option value="tt"> Trinidad and Tobago </option><option value="tn"> Tunisia </option><option value="tr"> Turkey </option><option value="tm"> Turkmenistan </option><option value="tc"> Turks and Caicos Islands </option><option value="tv"> Tuvalu </option><option value="ug"> Uganda </option><option value="ua"> Ukraine </option><option value="ae"> United Arab Emirates </option><option value="gb"> United Kingdom </option><option value="us"> United States </option><option value="uy"> Uruguay </option><option value="uz"> Uzbekistan </option><option value="vu"> Vanuatu </option><option value="va"> Vatican </option><option value="ve"> Venezuela </option><option value="vn"> Viet Nam </option><option value="vg"> Virgin Islands (British) </option><option value="vi"> Virgin Islands (US) </option> <option value="wf"> Wallis and Futuna Islands </option><option value="eh"> Western Sahara </option><option value="ye"> Yemen </option><option value="yu"> Yugoslavia </option><option value="zm"> Zambia </option><option value="zw"> Zimbabwe </option> </select>'; if(!$config['site']['create_account_verify_mail']) $main_content .= '<script type="text/javascript">var verifpass=1;</script> <TR><TD width="150" valign="top"><B>Password: </B></TD><TD colspan="2"><INPUT TYPE="password" id="passor" NAME="reg_password" VALUE="" SIZE=30 MAXLENGTH=50><BR><font size="1" face="verdana,arial,helvetica">(Here write your password to new account on '.$config['server']['serverName'].')</font></TD></TR> <TR><TD width="150" valign="top"><B>Repeat password: </B></TD><TD colspan="2"><INPUT TYPE="password" id="passor2" NAME="reg_password2" VALUE="" SIZE=30 MAXLENGTH=50><BR><font size="1" face="verdana,arial,helvetica">(Repeat your password)</font></TD></TR>'; else $main_content .= '<script type="text/javascript">var verifpass=0;</script>'; if($config['site']['verify_code']) { require_once('recaptchalib.php'); $main_content .= '<script type="text/javascript">var verifya=1;</script><TR><TD width="150"><B>Code: </B></TD><TD colspan="2"><TR><TD width="150"><B>Code: </B></TD><TD colspan="2">'.recaptcha_get_html($config['site']['publickey']).'</TD></TR>'; } else $main_content .= '<script type="text/javascript">var verifya=0;</script>'; $main_content .= '</TABLE> </TD></TR> <TR><TD> <TABLE BORDER=0 CELLSPACING=5 CELLPADDING=0><TR><TD> Please review the following terms and state your agreement below. </TD></TR> <TR><TD> <B>'.$config['server']['serverName'].' Rules</B><BR> <TEXTAREA ROWS="16" WRAP="physical" COLS="75" READONLY="true">'; //load server rules from file include("tibiarules.php"); $main_content .= '</TEXTAREA> </TD></TR></TABLE> </TD></TR> <TR><TD> <TABLE BORDER=0 CELLSPACING=5 CELLPADDING=0> <TR><TD> <INPUT TYPE="checkbox" NAME="rules" id="rules" value="true" /><label for="rules"><u> I agree to the '.$config['server']['serverName'].' Rules.</u></lable><BR> </TD></TR> <TR><TD> If you fully agree to these terms, click on the "I Agree" button in order to create a '.$config['server']['serverName'].' account.<BR> If you do not agree to these terms or do not want to create a '.$config['server']['serverName'].' account, please click on the "Cancel" button. </TD></TR></TABLE> </TD></TR> </TABLE></TD></TR> </TABLE> <BR> <TABLE BORDER=0 WIDTH=100%> <TR><TD ALIGN=center> <IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=120 HEIGHT=1 BORDER=0><BR> </TD><TD ALIGN=center VALIGN=top> <INPUT TYPE=image NAME="I Agree" SRC="'.$layout_name.'/images/buttons/sbutton_iagree.gif" BORDER=0 WIDTH=120 HEIGHT=18> </FORM> </TD><TD ALIGN=center> <FORM ACTION="?subtopic=latestnews" METHOD=post> <INPUT TYPE=image NAME="Cancel" SRC="'.$layout_name.'/images/buttons/sbutton_cancel.gif" BORDER=0 WIDTH=120 HEIGHT=18> </FORM> </TD><TD ALIGN=center> <IMG SRC="/images/general/blank.gif" WIDTH=120 HEIGHT=1 BORDER=0><BR> </TD></TR> </TABLE> </TD> <TD><IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD> </TR> </TABLE>'; } //CREATE ACCOUNT PAGE (save account in database) if($action == "saveaccount") { $reg_country = trim($_POST['country']); $reg_name = strtoupper(trim($_POST['reg_name'])); $reg_email = trim($_POST['reg_email']); $reg_password = trim($_POST['reg_password']); $reg_code = trim($_POST['reg_code']); //FIRST check //check e-mail if(empty($reg_name)) $reg_form_errors[] = "Please enter account name."; elseif(!check_account_name($reg_name)) $reg_form_errors[] = "Invalid account name format. Use only A-Z and numbers 0-9."; if(empty($reg_email)) $reg_form_errors[] = "Please enter your email address."; else { if(!check_mail($reg_email)) $reg_form_errors[] = "E-mail address is not correct."; } if($config['site']['verify_code']) { //check verification code require_once('recaptchalib.php'); $resp = recaptcha_check_answer ($config['site']['privkey'], $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . "(reCAPTCHA said: " . $resp->error . ")"); } } //check password if(empty($reg_password) && !$config['site']['create_account_verify_mail']) $reg_form_errors[] = "Please enter password to your new account."; elseif(!$config['site']['create_account_verify_mail']) { if(!check_password($reg_password)) $reg_form_errors[] = "Password contains illegal chars (a-z, A-Z and 0-9 only!) or lenght."; } //SECOND check //check e-mail address in database if(empty($reg_form_errors)) { if($config['site']['one_email']) { $test_email_account = $ots->createObject('Account'); //load account with this e-mail $test_email_account->findByEmail($reg_email); if($test_email_account->isLoaded()) $reg_form_errors[] = "Account with this e-mail address already exist in database."; } $account_db = new OTS_Account(); $account_db->find($reg_name); if($account_db->isLoaded()) $reg_form_errors[] = 'Account with this name already exist.'; } // ----------creates account-------------(save in database) if(empty($reg_form_errors)) { //create object 'account' and generate new acc. number if($config['site']['create_account_verify_mail']) { $reg_password = ''; for ($i = 1; $i <= 6; $i++) $reg_password .= mt_rand(0,9); } $reg_account = $ots->createObject('Account'); $number = $reg_account->create(0, 9999999, $reg_name); // saves account information in database $reg_account->setPassword(password_ency($reg_password)); $reg_account->setEMail($reg_email); $reg_account->setCustomField("flag", $reg_country); $reg_account->unblock(); $reg_account->save(); if($config['site']['newaccount_premdays']) { $reg_account->setCustomField("premdays", $config['site']['newaccount_premdays']); $reg_account->setCustomField("lastday", time()); } //show information about registration if($config['site']['send_emails'] && $config['site']['create_account_verify_mail']) { $mailBody = '<html> <body> <h3>Your account name and password!</h3> <p>You or someone else registred on server <a href="'.$config['server']['url'].'"><b>'.$config['server']['serverName'].'</b></a> with this e-mail.</p> <p>Account name: <b>'.$reg_name.'</b></p> <p>Password: <b>'.trim($reg_password).'</b></p> <br /> <p>After login you can:</p> <li>Create new characters <li>Change your current password <li>Change your current e-mail </body> </html>'; require("phpmailer/class.phpmailer.php"); $mail = new PHPMailer(); if ($config['site']['smtp_enabled'] == "yes") { $mail->IsSMTP(); $mail->Host = $config['site']['smtp_host']; $mail->Port = (int)$config['site']['smtp_port']; $mail->SMTPAuth = ($config['site']['smtp_auth'] ? true : false); $mail->Username = $config['site']['smtp_user']; $mail->Password = $config['site']['smtp_pass']; } else $mail->IsMail(); $mail->IsHTML(true); $mail->From = $config['site']['mail_address']; $mail->AddAddress($reg_email); $mail->Subject = $config['server']['serverName']." - Registration"; $mail->Body = $mailBody; if($mail->Send()) { $main_content .= 'Your account has been created. Check your e-mail. See you in Tibia!<BR><BR>'; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Account Created</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'"> <TABLE BORDER=0 CELLPADDING=1><TR><TD> <BR>Your account name is <b>'.$reg_name.'</b>. <BR><b><i>You will receive e-mail (<b>'.$reg_email.'</b>) with your password.</b></i><br>'; $main_content .= 'You will need the account name and your password to play on '.$config['server']['serverName'].'. Please keep your account name and password in a safe place and never give your account name or password to anybody.<BR><BR>'; $main_content .= '<br /><small>These informations were send on email address <b>'.$reg_email.'</b>. Please check your inbox/spam folder.'; } else { $main_content .= '<br /><small>An error occorred while sending email! Account not created. Try again.</small>'; $reg_account->delete(); } } else { $main_content .= 'Your account has been created. Now you can login and create your first character. See you in Tibia!<BR><BR>'; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Account Created</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'"> <TABLE BORDER=0 CELLPADDING=1><TR><TD> <BR>Your account name is <b>'.$reg_name.'</b><br>You will need the account name and your password to play on '.$config['server']['serverName'].'. Please keep your account name and password in a safe place and never give your account name or password to anybody.<BR><BR>'; if($config['site']['send_emails'] && $config['site']['send_register_email']) { $mailBody = '<html> <body> <h3>Your account name and password!</h3> <p>You or someone else registred on server <a href="'.$config['server']['url'].'"><b>'.$config['server']['serverName'].'</b></a> with this e-mail.</p> <p>Account name: <b>'.$reg_name.'</b></p> <p>Password: <b>'.trim($reg_password).'</b></p> <br /> <p>After login you can:</p> <li>Create new characters <li>Change your current password <li>Change your current e-mail </body> </html>'; require("phpmailer/class.phpmailer.php"); $mail = new PHPMailer(); if ($config['site']['smtp_enabled'] == "yes") { $mail->IsSMTP(); $mail->Host = $config['site']['smtp_host']; $mail->Port = (int)$config['site']['smtp_port']; $mail->SMTPAuth = ($config['site']['smtp_auth'] ? true : false); $mail->Username = $config['site']['smtp_user']; $mail->Password = $config['site']['smtp_pass']; } else $mail->IsMail(); $mail->IsHTML(true); $mail->From = $config['site']['mail_address']; $mail->AddAddress($reg_email); $mail->Subject = $config['server']['serverName']." - Registration"; $mail->Body = $mailBody; if($mail->Send()) $main_content .= '<br /><small>These informations were send on email address <b>'.$reg_email.'</b>.'; else $main_content .= '<br /><small>An error occorred while sending email (<b>'.$reg_email.'</b>)!</small>'; } } $main_content .= '</TD></TR></TABLE></TD></TR></TABLE><BR><BR>'; } else { //SHOW ERRORs if data from form is wrong $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($reg_form_errors as $show_msg) { $main_content .= '<li>'.$show_msg; } $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/> <BR> <CENTER> <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION=?subtopic=createaccount METHOD=post><TR><TD> <INPUT TYPE=hidden NAME=email VALUE=""> <INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18> </TD></TR></FORM></TABLE> </CENTER>'; } } ?> Se nao pegar reposta aki que nois vemso o que fazemos por ti! Se funcionar, +rep ok?1 ponto -
Set Em Characters
nyuchiha reagiu a Piabeta Kun por um tópico no fórum
1° vou postar pra vc um scrip alterado por mim, ele esta configurado para ser o mais proximo possivel do Tibia RL. Obs: se postar em outro lugar poste meu creditos pois acredite deu trabalho!) <?PHP $name = stripslashes(ucwords(strtolower(trim($_REQUEST['name'])))); if(empty($name)) { $main_content .= 'Here you can get detailed information about a certain player on '.$config['server']['serverName'].'.<BR> <FORM ACTION="?subtopic=characters" METHOD=post><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>'; } else { if(check_name($name)) { $player = $ots->createObject('Player'); $player->find($name); if($player->isLoaded()) { $account = $player->getAccount(); $main_content .= '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%><TR><TD><IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Character Information</B></TD></TR>'; if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=20%>Name:</TD><TD><font color="'; $main_content .= ($player->isOnline()) ? 'green' : 'red'; $main_content .= '"><b>'.$player->getName().'</b></font>'; if($player->isDeleted()) $main_content .= '<font color="red"> [DELETED]</font>'; if($player->isNameLocked()) $main_content .= '<font color="red"> [NAMELOCK]</font>'; $main_content .= '</TD></TR>'; if($player->getOldName()) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; if($player->isNameLocked()) $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Proposition:</TD><TD>'.$player->getOldName().'</TD></TR>'; else $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Former name:</TD><TD>'.$player->getOldName().'</TD></TR>'; } // BEGIN Position Showing *** Fixed by jerryb1988 from otfans.net $group = $player->getGroup(); if ($group == 2){$group_name = 'Colaborador';} if ($group == 3){$group_name = 'Supervisor';} if ($group == 4){$group_name = 'Moderador';} if ($group == 5){$group_name = 'Coodernador';} if ($group == 6){$group_name = 'Administrador';} if($group != 1) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Position:</TD><TD>'.$group_name.'</TD></TR>'; } // END Position Showing if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Sex:</TD><TD>'; $main_content .= ($player->getSex() == 0) ? 'female' : 'male'; $main_content .= '</TD></TR>'; if($config['site']['show_marriage_info']) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Marital status:</TD><TD>'; $marriage = new OTS_Player(); $marriage->load($player->getMarriage()); if($marriage->isLoaded()) $main_content .= 'married to <a href="?subtopic=characters&name='.urlencode($marriage->getName()).'"><b>'.$marriage->getName().'</b></a></TD></TR>'; else $main_content .= 'single</TD></TR>'; } if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Profession:</TD><TD>'.$vocation_name[$player->getWorld()][$player->getPromotion()][$player->getVocation()].'</TD></TR>'; if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Level:</TD><TD>'.$player->getLevel().'</TD></TR>'; if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>World:</TD><TD>'.$config['site']['worlds'][$player->getWorld()].'</TD></TR>'; if(!empty($towns_list[$player->getWorld()][$player->getTownId()])) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Residence:</TD><TD>'.$towns_list[$player->getWorld()][$player->getTownId()].'</TD></TR>'; } $rank_of_player = $player->getRank(); if(!empty($rank_of_player)) { { $guild_id = $rank_of_player->getGuild()->getId(); $guild_name = $rank_of_player->getGuild()->getName(); if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Guild Membership:</TD><TD>'.$rank_of_player->getName().' of the <a href="?subtopic=guilds&action=show&guild='.$guild_id.'">'.$guild_name.'</a></TD></TR>'; } } if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $lastlogin = $player->getLastLogin(); if(empty($lastlogin)) $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Last login:</TD><TD>Never logged in.</TD></TR>'; else $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Last login:</TD><TD>'.date("j F Y, g:i a", $lastlogin).'</TD></TR>'; if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Account Status:</TD><TD>'; $main_content .= ($account->isPremium()) ? '<b><font color="green">Premium Account</font></b>' : '<b><font color="red">Free Account</font></b>'; if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; if($config['site']['show_creationdate'] && $player->getCreated()) { $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Created:</TD><TD>'.date("j F Y, g:i a", $player->getCreated()).'</TD></TR>'; } if($config['site']['show_vip_status']) { $comment = $player->getComment(); $newlines = array("\r\n", "\n", "\r"); $comment_with_lines = str_replace($newlines, '<br />', $comment, $count); if($count < 50) $comment = $comment_with_lines; if(!empty($comment)) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD VALIGN=top>Comment:</TD><TD>'.$comment.'</TD></TR>'; } } //Outfit shower by Pening edited by loleslav $id = $player->getCustomField("id"); $main_content .= '<TD BGCOLOR="'.$config['site']['lightborder'].'">Outfit:'; $listaddon = array('128','129','130','131','132','133','134','135','136','137','138','139','140','141','142','143','144','145','146','147','148','149','150','151','152','153','154','155','158','159','251','252','268','269','270','273','278','279','288','289','302','324','325'); $lookadd = array('0','1','2','3'); foreach ($listaddon as $pid => $name) foreach ($lookadd as $addo => $name) { $addon1 = $SQL->query('SELECT * FROM players WHERE id = '.$id.' AND looktype = '.$listaddon[$pid].' AND lookaddons = '.$lookadd[$addo].';')->fetch(); if($addon1[looktype] == true ) { $finaddon = $addon1[looktype] + $addon1[lookaddons] * 300; $main_content .= '<TD with=50% style="background-color: '.$config['site']['darkborder'].'"><center><img src="images/addons/'.$finaddon.'.gif"/></center></TD></TD>'; } } $main_content .= '</TABLE></td>'; //end Outfit shower by Pening edited by loleslav //quest status by ballack13 $id = $player->getCustomField("id"); $number_of_quests = 0; $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD align="left" COLSPAN=2 CLASS=white><B>Quests</B></TD></TD align="right"></TD></TR>'; $quests = $config['site']['quests']; foreach ($quests as $storage => $name) { if(is_int($number_of_quests / 2)) $bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder']; $number_of_quests++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=95%>'.$storage.'</TD>'; $quest = $SQL->query('SELECT * FROM player_storage WHERE player_id = '.$id.' AND `key` = '.$quests[$storage].';')->fetch(); if($quest == false) { $main_content .= '<TD><img src="images/false.png"/></TD></TR>'; } else { $main_content .= '<TD><img src="images/true.png"/></TD></TR>'; } } $main_content .= '</TABLE></td></tr></table>'; //deaths list $player_deaths = $SQL->query('SELECT * FROM player_deaths WHERE '.$player->getId().' = player_id ORDER BY date DESC'); $dead_add_content .= '<br><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Deaths</B></TD></TR>'; if(!empty($player_deaths)) { $vowels = array("e", "y", "u", "i", "o", "a"); foreach($player_deaths as $dead) { $player_env_id = $dead['id']; $player_env = $SQL->query('SELECT * FROM killers WHERE death_id = '.$player_env_id.' and final_hit = 1'); $player_env1 = $SQL->query('SELECT * FROM killers WHERE death_id = '.$player_env_id.' GROUP BY id'); foreach($player_env as $env) { $player_ki = $env['id']; } foreach($player_env1 as $env1) { $player_ki1 = $env1['id']; } $player_kil = $SQL->query('SELECT * FROM environment_killers WHERE kill_id = '.$player_ki.''); $player_kill = $SQL->query('SELECT * FROM player_killers WHERE kill_id = '.$player_ki.''); $player_kill1 = $SQL->query('SELECT COUNT(*) as liczba FROM killers WHERE death_id = '.$player_env_id.''); foreach($player_kill as $killl) { $player_kurwa = $killl['player_id']; } foreach($player_kill1 as $killl1) { $player_kurwa2 = $killl1['liczba']; } if(empty($player_kurwa)) { foreach($player_kil as $kilere) { $player_kills = $kilere['name']; } } else { $player_killed_by_pks = 1; } if(is_int($number_of_player_deaths / 2)) $bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder']; $number_of_player_deaths++; $dead_add_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=20%>'.date("j M Y, H:i", $dead['date']).'</TD>'; if($player_killed_by_pks == 1) { if ($player_kurwa2 < 5) { $dead_add_content .= '<TD>Killed at Level '.$dead['level'].' by '; } elseif ($player_kurwa2 > 4 and $player_kurwa2 < 10) { $dead_add_content .= '<TD>Slain at Level '.$dead['level'].' by '; } elseif ($player_kurwa2 > 9 and $player_kurwa2 < 15) { $dead_add_content .= '<TD>Crushed at Level '.$dead['level'].' by '; } elseif ($player_kurwa2 > 14) { $dead_add_content .= '<TD>Eliminated at Level '.$dead['level'].' by '; } if ($player_kurwa2 == 1) { $player_kurwa1 = $SQL->query('SELECT * FROM players WHERE id = '.$player_kurwa.';'); foreach($player_kurwa1 as $kurwa) { $player_kills = $kurwa['name']; } $dead_add_content .= '<a href="?subtopic=characters&name='.urlencode($player_kills).'"><b>'.$player_kills.'</b></a>.'; } else { foreach($player_env1 as $killl2) { $player_kurwa = $killl2['player_id']; } $player_kurwa8 = $SQL->query('SELECT * FROM players WHERE id = '.$player_kurwa.';'); foreach($player_kurwa8 as $kurwa8) { $player_kills = $kurwa8['name']; } $dead_add_content .= '<a href="?subtopic=characters&name='.urlencode($player_kills).'"><b>'.$player_kills.'</b></a>'; $iui = 1; while ($iui != $player_kurwa2) { $player_env1 = $SQL->query('SELECT * FROM killers WHERE death_id = '.$player_env_id.' GROUP BY death_id'); foreach($player_env1 as $kurwa30) { $kurwa31 = $kurwa30['id'] + $iui; } $player_killerr = $SQL->query('SELECT * FROM player_killers WHERE kill_id = '.$kurwa31.''); foreach($player_killerr as $kurwa32) { $player_kd = $kurwa32['kill_id']; } $player_killerr12 = $SQL->query('SELECT * FROM player_killers WHERE kill_id = '.$player_kd.''); foreach($player_killerr12 as $player_kds) { $kurwa33 = $player_kds['player_id']; } $iui++; $player_killerr1 = $SQL->query('SELECT * FROM players WHERE id = '.$kurwa33.''); foreach($player_killerr1 as $kurwa34) { $kurwa35 = $kurwa34['name']; } $player_kills1 = $kurwa35; if ($iui < $player_kurwa2) { $dead_add_content .= ', <a href="?subtopic=characters&name='.urlencode($player_kills1).'"><b>'.$player_kills1.'</b></a>'; } elseif ($iui == $player_kurwa2) { $dead_add_content .= ' and <a href="?subtopic=characters&name='.urlencode($player_kills1).'"><b>'.$player_kills1.'</b></a>.'; } } } } else { $dead_add_content .= '<TD>Killed at Level '.$dead['level'].' by '; $dead_add_content .= $player_kills; } } } $dead_add_content .= '</TABLE>'; if($number_of_player_deaths > 0) $main_content .= $dead_add_content; //end //frags list by Xampy $frags_limit = 5; // frags limit to show? // default: 5 $player_frags = $SQL->query('SELECT `player_deaths`.*, `players`.`name`, `killers`.`unjustified` FROM `player_deaths` LEFT JOIN `killers` ON `killers`.`death_id` = `player_deaths`.`id` LEFT JOIN `player_killers` ON `player_killers`.`kill_id` = `killers`.`id` LEFT JOIN `players` ON `players`.`id` = `player_deaths`.`player_id` WHERE `player_killers`.`player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,'.$frags_limit.';'); if(count($player_frags)) { $frags = 0; $frag_add_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><br><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Frags</B></TD></TR>'; foreach($player_frags as $frag) { $frags++; if(is_int($number_of_rows / 2)) $bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder']; $number_of_rows++; $frag_add_content .= "<tr bgcolor=\"".$bgcolor."\"> <td width=\"20%\" align=\"center\">".date("j M Y, H:i", $frag['date'])."</td> <td>".(($player->getSex() == 0) ? 'He' : 'She')." killed <a href=\"index.php?subtopic=characters&name=".$frag[name]."\">".$frag[name]."</a> at level ".$frag[level].""; $frag_add_content .= ". ".(($frag[unjustified] == 0) ? "<b><font size=\"1\" color=\"green\">Ok</font></b>" : "<b><font size=\"1\" color=\"red\">Unjustified</font></b>")."</td></tr>"; } if($frags >= 1) $main_content .= $frag_add_content . '</TABLE>'; } // end of frags list by Xampy if(!$player->getHideChar()) { $main_content .= '<br><TABLE BORDER=0><TR><TD></TD></TR></TABLE><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Account Information</B></TD></TR>'; if($account->getRLName()) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR='.$config['site']['lightborder'].'><TD WIDTH=20%>Real name:</TD><TD>'.$account->getRLName().'</TD></TR>'; } if($account->getLocation()) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR='.$config['site']['darkborder'].'><TD WIDTH=20%>Location:</TD><TD>'.$account->getLocation().'</TD></TR>'; } if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; if($account->getLastLogin()) $main_content .= '<TR BGCOLOR='.$config['site']['lightborder'].'><TD WIDTH=20%>Last login:</TD><TD>'.date("j F Y, g:i a", $account->getLastLogin()).'</TD></TR>'; else $main_content .= '<TR BGCOLOR='.$config['site']['lightborder'].'><TD WIDTH=20%>Last login:</TD><TD>Never logged in.</TD></TR>'; if($account->getCreated()) { if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR='.$config['site']['lightborder'].'><TD WIDTH=20%>Created:</TD><TD>'.date("j F Y, g:i a", $account->getCreated()).'</TD></TR>'; } if($account->isBanned()) if($account->getBanTime() > 0) $main_content .= '<font color="red"> [banished until '.date("j F Y, G:i", $account->getBanTime()).']</font>'; else $main_content .= '<font color="red"> [banished FOREVER]</font>'; $main_content .= '</TD></TR></TABLE>'; $main_content .= '<br><TABLE BORDER=0><TR><TD></TD></TR></TABLE><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=5 CLASS=white><B>Characters</B></TD></TR> <TR BGCOLOR='.$config['site']['darkborder'].'><TD><B>Name</B></TD><TD><B>World</B></TD><TD><B>Level</B></TD><TD><b>Status</b></TD><TD><B> </B></TD></TR>'; $account_players = $account->getPlayersList(); $account_players->orderBy('name'); $player_number = 0; foreach($account_players as $player_list) { if(!$player_list->getHideChar()) { $player_number++; if(is_int($player_number / 2)) $bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder']; if(!$player_list->isOnline()) $player_list_status = '<font color="red">Offline</font>'; else $player_list_status = '<font color="green">Online</font>'; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=52%><NOBR>'.$player_number.'. '.$player_list->getName(); $main_content .= ($player_list->isDeleted()) ? '<font color="red"> [DELETED]</font>' : ''; $main_content .= '</NOBR></TD><TD WIDTH=15%>'.$config['site']['worlds'][$player_list->getWorld()].'</TD><TD WIDTH=25%>'.$player_list->getLevel().' '.$vocation_name[$player_list->getWorld()][$player_list->getPromotion()][$player_list->getVocation()].'</TD><TD WIDTH="8%"><b>'.$player_list_status.'</b></TD><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=characters" METHOD=post><TR><TD><INPUT TYPE=hidden NAME=name VALUE="'.$player_list->getName().'"><INPUT TYPE=image NAME="View '.$player_list->getName().'" ALT="View '.$player_list->getName().'" SRC="'.$layout_name.'/images/buttons/sbutton_view.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></TD></TR>'; } } $main_content .= '</TABLE></TD><TD><IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD></TR></TABLE>'; } $main_content .= '<BR><BR><FORM ACTION="?subtopic=characters" METHOD=post><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>'; $main_content .= '</TABLE>'; } else $search_errors[] = 'Character <b>'.$name.'</b> does not exist.'; } else $search_errors[] = 'This name contains invalid letters. Please use only A-Z, a-z and space.'; if(!empty($search_errors)) { $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($search_errors as $search_error) $main_content .= '<li>'.$search_error; $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/>'; $main_content .= '<BR><FORM ACTION="?subtopic=characters" METHOD=post><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>'; } } ?> esse é meu character.php o que ele tem modificado dos demais? ele nao tem nada de info do char do player em jogo como: skills, hp e mana, exp pra upar, set, nao mostra se o char e vip(apenas se o player e premium account, mostra msmo se o char estiver hide(como no tibia global)), mostra frags dos players, mostra quests, e retirei o bug de qndo vc tira o status "vip account " do player nao conseguir postar comentario no char, mostra outfit. qualquer alterçao do script e bem vinda e autorizada, so nao eskeca dos creditos se for postar em outro lugar! OBS: projetei para ots que so ultilizao premium account! relembrnado q nao mostra status "VIP". 2° nao sei se estou certo mais axu que é possivel por um comando no htacess(um arkivo para proteger a pasta de invasoes(se tbm nao estou enganado) que o computador deixa de reconhecer "ping" diretamente com o ot! nao sei como por (se é realmente possivel). 3° aqui vai um exemplo do q eu uso! <a href="http://tibiaclient.com" target="_blank"><img src= "images/download.gif" width="182" height="62" border="0" /></a><br /><h3> O link acima e o link que vc deseja por para acessar cliando na imagem! O "images/download.gif' e a localizacao da imagem(no meu caso pasta htdocs/images, a seguir o nome do arkivo com a sua extençao(no meu caso .gif, mais pode ser qualquer uma desde q vc coloque a extençao correta no script) width="182" height="62" border="0" Aqui fika a largura e a altura e tamanho de borda (se nao me engano). Pergunta possivel: O tio piabetaman01 onde eu coloco essa p....? R: vc vai colocar no arkivo downloads.php Se ajudei + Rep, nao custa nada!1 ponto -
cara é dificil pois esses servidores assim sao malvados eles colocam exp por stages e colocam como se a exp fosse 1x =S mais se vc quiser e posso te enssinar a por exp por stages veja:1 ponto
-
Seu antivirus bloqueou. desative o antivirus e extraia denovo somente o executavél.1 ponto
-
Prboelma Ao Juntar Dois Mapas
rackaccount reagiu a Gangabri por um tópico no fórum
Tem um geito Facil voce aperta Shift E arrasta o mouse e copia e troca a aba e dps cola, ai dps de tudo isso, você fecha a outra aba.1 ponto -
Faça o seguinte, va na pasta data/actions e abra actions.xml e veja se la possue a seguite tag: <action itemid="2376" event="script" value="pokemon/pokedex.lua" allowfaruse="1" blockwalls="1"/> caso não tenha à adicione, depois disso va na pasta data\actions\scripts\pokemon , e adicione esse script, coloque o nome pokedex.lua function onUse(cid, item, fromPos, itemEx, toPos) function isSummon(sid) for i, pid in ipairs(getPlayersOnline()) do for c, cid in pairs(getCreatureSummons(pid)) do if (cid == sid) then return true end end end return false end local pokemon = itemEx.uid local pokemons = { {"Bulbasaur", 20, 1001}, {"Ivysaur", 40, 1002}, {"Venusaur", 85, 1003}, {"Charmander", 20, 1004}, {"Charmeleon", 40, 1005}, {"Charizard", 85, 1006}, {"Squirtle", 20, 1007}, {"Wartortle", 40, 1008}, {"Blastoise", 85, 1009}, {"Caterpie", 3, 1010}, {"Metapod", 10, 1011}, {"Butterfree", 30, 1012}, {"Weedle", 3, 1013}, {"Kakuna", 10, 1014}, {"Beedrill", 30, 1015}, {"Pidgey", 5, 1016}, {"Pidgeotto", 20, 1017}, {"Pidgeot", 65, 1018}, {"Rattata", 3, 1019}, {"Raticate", 20, 1020}, {"Spearow", 5, 1021}, {"Fearow", 50, 1022}, {"Ekans", 12, 1023}, {"Arbok", 30, 1024}, {"Pikachu", 20, 1025}, {"Raichu", 45, 1026}, {"Sandshrew", 18, 1027}, {"Sandslash", 55, 1028}, {"Nidoran Female", 10, 1029}, {"Nidorina", 25, 1030}, {"Nidoqueen", 65, 1031}, {"Nidoran Male", 10, 1032}, {"Nidorino", 25, 1033}, {"Nidoking", 65, 1034}, {"Clefairy", 10, 1035}, {"Clefable", 35, 1036}, {"Vulpix", 20, 1037}, {"Ninetales", 65, 1038}, {"Jigglypuff", 10, 1039}, {"Wigglytuff", 42, 1040}, {"Zubat", 10, 1041}, {"Golbat", 30, 1042}, {"Oddish", 5, 1043}, {"Gloom", 18, 1044}, {"Vileplume", 50, 1045}, {"Paras", 5, 1046}, {"Parasect", 50, 1047}, {"Venonat", 18, 1048}, {"Venomoth", 50, 1049}, {"Diglett", 5, 1050}, {"Dugtrio", 35, 1051}, {"Meowth", 12, 1052}, {"Persion", 25, 1053}, {"Psyduck", 12, 1054}, {"Golduck", 55, 1055}, {"Mankey", 10, 1056}, {"Primeape", 45, 1057}, {"Growlithe", 20, 1058}, {"Arcanine", 80, 1059}, {"Poliwag", 5, 1060}, {"Poliwhirl", 20, 1061}, {"Poliwrath", 65, 1062}, {"Abra", 15, 1063}, {"Kadabra", 45, 1064}, {"Alakazam", 80, 1065}, {"Machop", 18, 1066}, {"Machoke", 40, 1067}, {"Machamp", 65, 1068}, {"Bellsprout", 5, 1069}, {"Weepinbell", 18, 1070}, {"Victreebel", 50, 1071}, {"Tentacool", 12, 1072}, {"Tentacruel", 70, 1073}, {"Geodude", 12, 1074}, {"Graveler", 40, 1075}, {"Golem", 65, 1076}, {"Ponyta", 20, 1077}, {"Rapidash", 60, 1078}, {"Slowpoke", 12, 1079}, {"Slowbro", 45, 1080}, {"Magnemite", 15, 1081}, {"Magneton", 40, 1082}, {"Farfetchd", 40, 1083}, {"Doduo", 12, 1084}, {"Dodrio", 45, 1085}, {"Seel", 20, 1086}, {"Dewgong", 65, 1087}, {"Grimer", 12, 1088}, {"Muk", 30, 1089}, {"Shellder", 5, 1090}, {"Cloyster", 65, 1091}, {"Gastly", 18, 1092}, {"Haunter", 45, 1093}, {"Gengar", 80, 1094}, {"Onix", 50, 1095}, {"Drowzee", 22, 1096}, {"Hypno", 50, 1097}, {"Krabby", 5, 1098}, {"Kingler", 35, 1099}, {"Voltorb", 14, 1100}, {"Electrode", 38, 1101}, {"Exeggcute", 8, 1102}, {"Exeggutor", 48, 1103}, {"Cubone", 18, 1104}, {"Marowak", 45, 1105}, {"Hitmonlee", 60, 1106}, {"Hitmonchan", 60, 1107}, {"Lickitung", 45, 1108}, {"Koffing", 15, 1109}, {"Weezing", 30, 1110}, {"Rhyhorn", 35, 1111}, {"Rhydon", 65, 1112}, {"Chansey", 60, 1113}, {"Tangela", 40, 1114}, {"Kangaskhan", 60, 1115}, {"Horsea", 5, 1116}, {"Seadra", 45, 1117}, {"Goldeen", 10, 1118}, {"Seaking", 25, 1119}, {"Staryu", 15, 1120}, {"Starmie", 45, 1121}, {"Mr.mime", 60, 1122}, {"Scyther", 70, 1123}, {"Jynx", 65, 1124}, {"Electabuzz", 70, 1125}, {"Magmar", 70, 1126}, {"Pinsir", 42, 1127}, {"Tauros", 40, 1128}, {"Magikarp", 1, 1129}, {"Gyarados", 75, 1130}, {"Lapras", 70, 1131}, {"Ditto", 40, 1132}, {"Eevee", 20, 1133}, {"Vaporeon", 55, 1134}, {"Jolteon", 55, 1135}, {"Flareon", 55, 1136}, {"Porygon", 45, 1137}, {"Omanyte", 20, 1138}, {"Omastar", 70, 1139}, {"Kabuto", 20, 1140}, {"Kabutops", 70, 1141}, {"Aerodactyl", 100, 1142}, {"Snorlax", 85, 1143}, {"Articuno", 120, 1144}, {"Zapdos", 120, 1145}, {"Moltres", 120, 1146}, {"Dratini", 10, 1147}, {"Dragonair", 70, 1148}, {"Dragonite", 100, 1149}, {"Mewtwo", 120, 1150}, {"Mew", 120, 1151}, } for _,n in pairs(pokemons) do if isSummon(pokemon) then if getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) >= n[2] and getPlayerStorageValue(cid, n[3]) <= 0 then j = (n[2]) * 275 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[1] .. " in your pokedex!") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. j .. " experience points.") doSendMagicEffect(getThingPos(cid), 210) doPlayerAddExperience(cid, (n[2])*275) setPlayerStorageValue(cid, n[3], 1) elseif getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) < n[2] and getPlayerStorageValue(cid, n[3]) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to be at least level " .. n[2] .. " to unlock this pokemon.") elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[3]) >= 1 then local v = ((n[3]) + 1376) local dexstring = ""..n[1]..".txt" local Dex = io.open('data/pokedex/'..dexstring, 'r') doShowTextDialog(cid, (v), Dex:read("*all")) Dex:close() end elseif isMonster(pokemon) then if getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[3]) <= 0 then j = (n[2]) * 275 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[1] .. " in your pokedex!") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. j .. " experience points.") doSendMagicEffect(getThingPos(cid), 210) doPlayerAddExperience(cid, (n[2])*275) setPlayerStorageValue(cid, n[3], 1) elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[3]) >= 1 then local v = ((n[3]) + 1376) local dexstring = ""..n[1]..".txt" local Dex = io.open('data/pokedex/'..dexstring, 'r') doShowTextDialog(cid, v, Dex:read("*all")) Dex:close() end end end local store = {1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151} local unlock = {} if not isCreature(itemEx.uid) then return true end for i = 1, #store do if getPlayerStorageValue(itemEx.uid, store[i]) > 0 then table.insert(unlock, 1) end end if isPlayer(itemEx.uid) then setPlayerStorageValue(cid, 7274, 1) if getCreatureName(cid) == getCreatureName(itemEx.uid) then doPlayerSendTextMessage(cid, 27, "You have unlocked " .. #unlock .. " pokemons already.") doPlayerSendTextMessage(cid, 27, "You can open a pokedex entry by typing \"/dex <name>\". Example: \"/dex Pikachu\".") else doPlayerSendTextMessage(cid, 27, getPlayerName(itemEx.uid) .. " has unlocked " .. #unlock .. " pokemons already.") end end return true end Veja se na pasta data existe outra pasta chamada pokedex, caso não tenha me fale que eu coloco ela em winrrar.1 ponto
-
É que para "decayir", depois que usar a função para criar o item, você precisa usar a função: doDecayItem(item) . Então assim irá funcionar: function onUse(cid, item, frompos, item2, topos, pos) if item.itemid == 7734 and item2.itemid == 11389 then local pos = getThingPos(item2.uid) doSendMagicEffect(pos, 53) local item3 = doCreateItem(11440, 1, pos) doDecayItem(item3) return true end end1 ponto
-
é o seguinte cara, vc vai ter q baixar o DatEditor: http://www.tclient.4sql.net/dat_editor.rar no dateditor, abra o seu tibia.dat e tibia.spr, no canto esquerdo inferior tente achar o corpo da misty. quando achar, clique nela, se vc reparar na parte central abaixo vai haver um lugar apenas com os atributos do item. Veja o Itemtype, o itemtype é a mesma coisa q o Looktype, apenas substitua o looktipe do brock pelo da misty =)1 ponto
-
[Resolvido] Script De Quest Poketibia!
jackfan reagiu a Demonbholder por uma questão
Em data/actions/scripts... Em actions.xml...1 ponto -
[ERRO NO BROWSER]1 ponto
-
Alissow Ots 4.11 [11/07/2010] 8.6 Completo!
FrozenGames reagiu a fsg por um tópico no fórum
Muito bom Alissow e toda sua Equipe ta de parabéns cara! Seus OTServs são sempre inovando para bem melhor, e agora vocês com o 8.6 Completo, ta de parabéns, REP +. Abraços.1 ponto -
-1 pontos
-
Baiak [8.6] By Mestre Da'war
Henrique Moura reagiu a Dado157 por um tópico no fórum
vo abaixa pra ve-1 pontos -
-1 pontos
-
-1 pontos