Pesquisar na Comunidade
Mostrando resultados para as tags ''xtibia''.
Encontrado 237 registros
-
ot baiaksky.online inauguração dia 03/09/2021 baiak com roshamuul
um tópico no fórum postou Duhisback OTServlist
È hoje a inauguração do http://baiaksky.online crie agora sua conta, chame seu time, que da tempo, server será liberado as 18:00 horário de brasilia. - Roshamuul (NEW + Boss com Drop de items bom) - Todas as quests 100% - Auto Loot System - 9 Eventos - Fly System - Addons Bonus System - Mining System - Event Coin System - Itens e vocation balançeadas - Dodge System 100%: !dodge - Critical System 100%: !critical - Push Fast, para melhor PvP - Fast Attack Equilibrado - Players Donates Tem 20% a mais de experiencia - Guild que domina o Castle 24H tem 10% a mais de experiencia - Morgum City (Descubra os Segredos) - Exp 400 (STAGES) - Expulsar players inativos (5 dias offline) de suas houses: !eject - Cast System - War System -
Features Novas áreas 10.82/10.90 Novos items 10.90 Novos monstros/npcs/montarias 10.90 Umbral creation Reward system Full Global Bosses prison roshamuul Oramond full incluindo seacrest ground e glooth factory Cast system work Casino automático Raids Full Battlefield Event Zombie Event Exp Shared Krailos New Arena Tibia.com Ferumbras' Ascendant Quest Equip HOTKEY Imagens Versão : Downloads (DISPONÍVEL): Download do servidor completo + database + sources [LINUX] http://otupload.com/file/1456169626_G1091_ABSOLUTE_CIROC_FOR_TK Scan (DISPONÍVEL) : https://www.virustotal.com/pt/file/2f5fe15d174d47ec9080e1a9db3d33767e8536794a7b331c4c9646229567de97/analysis/1458112382/ Créditos : Absolute ciroc Orts Theforgottenserver xWhiteWolf Acompanhe as atualizações : https://github.com/absoluten/absoluteglobal
-
Compilando OTCLient no Windows Antes de mais nada, gostaria de dizer que eu não fiz o tutorial, apenas traduzi para português. Link de post original >> https://github.com/e...ling-on-Windows Neste tutorial eu explicarei como compilar e rodar o OTClient em máquinas com o Windows. Faça o download do que você precisará Existem várias ferramentas que você precisa para compilar o projeto, cada uma delas está listada abaixo com seu link. * CMake 2.8.8 ou superior * CodeBlocks sem o MinGW, nós usaremos a versão mais nova * MinGW32 20120426 ou superior * otclient libraries for mingw32 * Código fonte do OTClient Tenha certeza que você instalou as últimas versões, caso contrário, as coisas podem não funcionar. Instale o MinGW32 Observe que o GCC que deve ser usado é o 4.6 ou superior, qualquer versão antiga do GCC que você já tenha instalado não funcionará porque o OTClient precisa de alguns recursos que só são suportados por compiladores recentes. Rode o instalador do MinGW32 e no processo de instalação quando for perguntado tenha certeza que você marcou a caixa para usar o catálogo mais atual. Instale o CMake Rode o instalador do CMake, durante o processo de instalação deverá ser perguntado se você quqer que o CMake configure suas variáveis do sistema(PATH), diga que não, isso será manualmente feito nos próximos passos. Instale o CodeBlocks Rode o instalador do CodeBlocks, Lembre-se, NÃO instale o MinGW quando ele pedir. Instale as bibliotecas do OTClient Extraia o arquivo otclient-libs_mingw32-dwarf2.zip em C:/MinGW/. Esse arquivo zip contem três pastas *lib, include e bin, que serão fundidas a C:/MinGW/lib, C:/MinGW/include e C:/MinGW/bin. Configure a variável PATH do sistema Agora que todas as ferramentas necessárias estão instaladas, você deve configurar a variável PATH do sistema, para fazer o CMake encontrar o MinGW32 e as bibliotecas instaladas, vá para: Painel de controle -> Sistema -> Avançado -> Variáveis de Ambiente Verifique se na área Variáveis de usuário, existe a variável PATH, se não, crie uma e defina ela como: C:\Program Files\CMake 2.8\bin;C:\MinGW\bin;C:\MinGW\lib;C:\MinGW\include Tenha certeza que a variável do usuário PATH existe e que refere para o diretório do CMake. Baixe o código fonte do OTClient Vá para página de download e faça o download do código fonte do OTCLient. O diretório onde você colocará esses arquivos não deve ser longo. Por exemplo: "C:\OTClient\" é um bom diretório, mas "C:\Program Files\OTClient" não é. Gere o arquivo de projeto do CodeBlocks Rode o CMake-gui.exe localizado em \Program Files\CMake 2.8\bin, e especifique o diretório onde você colocou o código fonte do OTCLient, e onde você quer que os arquivos do projeto sejam criados. Clique em configure, seleciona CodeBlocks - MinGW Makefiles, como gerador e gere os arquivos do projeto. Compilando Abra o arquivo de projeto do CodeBlocks que foi gerado (**otclient.cbp**) pelo CMake com o CodeBlocks. Para compilar você deve primeiro configurar a pasta do MinGW32, indo em Settings > Compiler And Debugger... > Toolchain Executables. Tenha certeza de copiar os arquivos Tibia.dat e Tibia.spr dentro da pasta /data/things// antes de rodar o cliente. Suporte a Dx9 Se você quiser ativar a camada de suporte do dx9 para o OTClient, você deve compilar com -DOPENGLES=2.0. Agora o OTClient.exe vai pedir pelas dll libEGL.dll e libGLESv2.dll que você pode conseguir aqui >> https://dl.dropbox.c...nt/dx9_dlls.zip, coloque essas dll na pasta do OTClient.exe Créditos: Eu por traduzir do github e trazer pra cá Edubart pelo tutorial original
-
REQUISITOS:1. RME 3.2 (Github) 2. Oficial TFS .otb (Github) 3. RME Modification Files (Scan) COMO INSTALAR:1. Baixe o .rar que contém os arquivos mod. 2. Copie todos os arquivos do .rar no seguinte diretório: "Remere's Map Editor > data > client" 3. Substitua os arquivos .xml atuais. SOBRE: # A maioria dos tiles de chão, paredes e montanhas que estão faltando precisam ser adicionadas pra terrain. (autoborder) # A maioria dos RAW foram reorganizada e ordenadas # Grande porção da pallete de itens foi reorganizada e ordenada *O MOD é feito em 10.98 porém é compatível com qualquer cliente adicionado ao RME 3.2. *A pallete terrain vai ter alguns tiles pretos em clients com versão menor que 10.98 mas o RME ainda sim vai funcionar. FOTOS: CRÉDITOS:RokojoM (RAW, wall autoborder, mountain autoborder, ground randomization...) Limos (Majority of item palette, ground autoborder.)
-
-
Pop-Up para Gesior vamos lá é um procedimento muito simples lembrando que viso fazer o tutorial para todos para quem não tem conhecimento na área deixando o tutorial é o código e para quem já tem conhecimento sinta se livre para desconsiderar o tutorial e fazer uso apenas do código e da imagem bom vamos lá vá até seu website navegue até a pasta images e coloque sua imagem no formato png segue imagem em anexo agora vamos para a parte do código em nome da imagem coloque o nome da sua imagem que nos colocamos na pasta images por Exemplo:promo.png lembrando que PNG é o formato da imagem agora vamos para o ultimo passo se você quiser que que o anuncio apareça em todas as paginas do site coloque o código no arquivo layout.php que fica localizado na pasta layouts provável mente a próxima pagina será a tibiarl e dentro vai estar o arquivo layout.php mas o correto é deixar o anuncio apenas na pagina inicial do site se você quiser deixar apenas na pagina inicial desconsidere o passo a sima navegue até a pasta pages e abra o arquivo latestnews.php e cole o código já editado com o nome da imagem antes do <?php que fica localizado no inicio de ambos arquivo do layout.php ou do latestnews.php segue o código <div id="LayerPop" style="display:block; position:absolute; left:0px; top:0px; background-color:#1e1e22; width:100%; height:180%; z-index:100;margin:0px;opacity:0.75;"></div> <div id="LayerPop2" style="position: absolute; left: 330px; top: 80px; z-index: 5000;"><a href="donate" target="_BLANK"><img src="images/nome da imagem aqui.png" class="imgBorder"></a><br><a href="javascript:void();" onClick="document.getElementById('LayerPop').style.display = 'none';document.getElementById('LayerPop2').style.display = 'none'"> <b>Fechar</b></a></div> Se Gostou REP >< Segue imagem em Anexo
- 2 respostas
-
- pop-up para gesior
- como colocar anuncio
- (e 5 mais)
-
POKÉMON GLOBAL Olá Xtibianos, esta é a apresentação 1 do evento Maratona de Projetos. Peço humildemente que leia a apresentação que o projeto preparou e contribua comentando a respeito, saiba que devemos apoiar nossos desenvolvedores BR para que nossa comunidade cresça mais forte, faça sua parte! Lembro que no final das apresentações haverá uma votação, onde os membros avaliaram e escolherão o projeto desenvolvedor vencedor da maratona! Olá pessoal do XTibia. Meu nome é Tony e eu faço parte da UXPrimo Team, junto ao meu primo João P. Araújo. Venho por meio dessa maratona de projetos, apresentar-lhes o nosso xodó Pokémon Global, desenvolvido por nós da UXPrimo Team. Nossa equipe desenvolvedora, conta com vários amigos e contribuidores que estão nos ajudando, e o mais interessante, estão fazendo por amor ao projeto, pois estamos trazendo uma ideia antiga e que conquistou os corações de milhares de jogadores. Nosso projeto, como dito anteriormente, conta comigo (Tony) na programação em geral (Sistemas em LUA, C++ e Desenvolvimento do Cliente), João P. no desenvolvimento do mapa, que por sua vez fez praticamente 90% do mapa atual, Avronex que também contribui com o desenvolvimento do mapa e Lua, nosso amigo KalvinKarl é de suma importância em uma das áreas mais difíceis do projeto, onde consiste em balanceamento de pokémons, configurações, gráficas e desenvolvimento web e por último mas não menos importante, nosso querido amigo Gustavo Batista que também contribui no desenvolvimento gráfico e web tanto no servidor quanto no site. O código fonte do nosso projeto foi totalmente reconstruído a fins de ser utilizado exclusivamente para pokémon, assim retirando todo o código inútil podendo então aumentar o seu desempenho, diminuir o tamanho e o tempo de processamento pela máquina resultado em um jogo com maior estabilidade sem 'freezes', 'lags' e 'bugs'! O Servidor conta com inúmeras inovações, tanto em reconstruções de códigos, quanto de sistemas novos. Irei citar alguns, explica-los e mostrar algumas fotos logo abaixo. Nossos sistemas também conta com os mecanismos maravilhosos do OLDClient, que também proporciona aos nossos jogadores mais estabilidade e leveza pois nosso client pesará em seu download apenas 10MB. Wild Caught Mark - Este sistema tende a marcar todos os pokémons selvagens capturados pelo jogador, utilizando um ícone específico. Este ícone variará de acordo com a pokebola que o jogador utilizou para capturar o pokémon, ou seja, se o jogador captura o pokémon com uma PokeBall, o mesmo ficará marcado abaixo do seu nome com o ícone de uma Pokeball. Party System - Este sistema foi refeito utilizando a ideia de "dois em um", pois utiliza o private channel que por sua vez já traz uma comunicação mais facilitada a todos os membros desta parceria. Seu convite pode ser feito usando também o mecanismo proposto pelo chat. Moves Bar - Este sistema foi feito para aumentar a jogabilidade, assim fazendo com que o jogador tenha o conhecimento de em quanto tempo ele poderá reutilizar o movimento de seu pokémon. Market System - Um sistema que visa a praticidade no comércio de items e pokémons, podendo um jogador, anunciar seus próprios pertences à venda e/ou comprar de outros jogadores que anunciaram. Ainda não foi finalizado. Como anteriormente citado, estamos construindo nosso servidor tendo como base uma ideia antiga e que deixou boas lembranças na memória de cada um que teve sua vivência no jogo. Abaixo mostrarei uma pouquinho do mapa, para não acabar com as surpresas. CONTRIBUIÇÃO DO PROJETO PARA O XTIBIA
-
♨️TIBIA CLASSIC♨️ Depois de muito trabalho duro e suor, viemos aqui anunciar o nosso ot server. Fizemos tudo com muito carinho e dedicação para que vocês possam curtir muito. ‼️INAUGURAÇÃO 06/05 - 15:00 - CRIE SUA CONTA‼️ Todas as vocações estão balanceadas. Priorizamos o melhor do balanceamento para vocês se divertirem tanto nas quests, quanto no PvP, priorizando muito o PVP. ‼️INAUGURAÇÃO 06/05 - 15:00 - CRIE SUA CONTA‼️ ♨️TIBIA CLASSIC♨️ Versão: 8.60 SITE: www.tibiaclassic.com.br ?% LISO - SEM LAG MAPA YOUROTS Exp: 100x Stages ⚠️Diversos Eventos⚠️ ✔️Counter Strike ✔️The Rain ✔️Blood Castle ✔️Caça ao tesouro ✔️Zombie Event ✔️Monster Hunter ✔️ Entre outros!! ?Aqui sua diversão será garantida!? ?Convidem seus amigos e inimigos!? Crie sua conta em nosso site, la tem todas as informações sobre nosso servidor, chame seus amigos e não perca tempo. ‼️INAUGURAÇÃO 06/05 - 15:00 - CRIE SUA CONTA‼️ SITE: www.tibiaclassic.com.br Att, Equipe Tibia Classic
-
Fala galerinha do XTibia, vim aqui postar um sistema de Premium Points inGame, que eu achei muito útil, pois eu estava tendo sérios problemas com o Shop System do Modern AAC, ai vai os sistemas. antes de tudo execute esse comando em seu banco de dados. ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL DEFAULT 0; [/code] [font=tahoma,geneva,sans-serif][color=#ff0000]#[/color][color=#000000]S[/color]istemas[/font] [font=tahoma,geneva,sans-serif]vá em data/libs e crie um novo arquivo com o nome [i]048-ppoints.lua[/i][/font] [i] function getAccountPoints(cid) local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function doAccountAddPoints(cid, count) return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) + count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end function doAccountRemovePoints(cid, count) return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) - count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end [/i] vá em data/talkactions/talkactions.xml e adicione as seguintes tags. <!-- Premium Points System --> <talkaction log="yes" words="!getpoints;/getpoints" access="6" event="script" value="GetPoints.lua" /> <talkaction log="yes" words="!addpoints;/addpoints" access="6" event="script" value="AddPoints.lua" /> <talkaction log="yes" words="!removepoints;/removepoints" access="6" event="script" value="RemovePoints.lua" /> <talkaction words="!points" event="script" value="SelfGetPoints.lua" /> vá em data/talkactions/scripts e crie um novo arquivo com o seguinte nome AddPoints.lua function onSay(cid, words, param, channel) local split = param:explode(",") local name, count = split[1], tonumber(split[2]) pid = getPlayerByNameWildcard(name) if (not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " is not currently online.") return TRUE end if not(split[2]) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The commands requires 2 parameters: character name, amount") end if not(count) then print(count) return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Numeric parameter required.") end doAccountAddPoints(cid, count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. count .. " premium points were added to " .. getCreatureName(pid) .. "\'s Account.") return true end vá em data/talkactions/script e crie um arquivo com o seguinte nome GetPoints.lua function onSay(cid, words, param, channel) local pid = 0 if(param == '') then pid = getCreatureTarget(cid) if(pid == 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return TRUE end else pid = getPlayerByNameWildcard(param) end if (not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " is not currently online.") return TRUE end if isPlayer(pid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. getCreatureName(pid) .. "\'s Account has " .. getAccountPoints(cid) .. " premium points.") return TRUE end return TRUE end vá em data/talkactions/script e crie um arquivo com o seguinte nome RemovePoints.lua function onSay(cid, words, param, channel) local split = param:explode(",") local name, count = split[1], tonumber(split[2]) local points = getAccountPoints(cid) pid = getPlayerByNameWildcard(name) if (not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " is not currently online.") return TRUE end if not(split[2]) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The commands requires 2 parameters: character name, amount") end if not(count) then print(count) return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Numeric parameter required.") end if (points <= 0) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. getCreatureName(pid) .. "\'s Account has 0 premium points.") end doAccountRemovePoints(cid, count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. count .. " premium points were deleted from " .. getCreatureName(pid) .. "\'s Account.") return true end vá em data/creaturescripts/scripts e crie um novo arquivo com o nome SelfGetPoints.lua function onLogin(cid) if isPlayer(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your Account has " .. getAccountPoints(cid) .. " premium points.") end return TRUE end declare ele no creaturescripts.xml <event type="login" name="GetPoints" event="script" value="getpoints.lua" /> #Scripts aqui está um exemplo de talkaction para mudar o sexo do personagem usando o sistema de points. local config = { costPremiumDays = 2 } function onSay(cid, words, param, channel) if(getPlayerSex(cid) >= 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot change your gender.") return end if(getAccountPoints(cid) < config.costPremiumDays) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sorry, not enough Premium Points - changing gender costs " .. config.costPremiumDays .. " Premium Points.") doSendMagicEffect(getThingPosition(cid), CONST_ME_POFF) return end if(getAccountPoints(cid) >= config.costPremiumDays) then doRemovePoints(cid, -config.costPremiumDays) end local c = { {3, 1, false, 6, 1}, {3, 2, false, 6, 2}, {6, 1, false, 3, 1}, {6, 2, false, 3, 2} } for i = 1, #c do if canPlayerWearOutfitId(cid, c[i][1], c[i][2]) then doPlayerRemoveOutfitId(cid, c[i][1], c[i][2]) c[i][3] = true end end doPlayerSetSex(cid, getPlayerSex(cid) == PLAYERSEX_FEMALE and PLAYERSEX_MALE or PLAYERSEX_FEMALE) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have changed your gender and lost " .. config.costPremiumDays .. " days of premium time.") doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_RED) for i = 1, #c do if c[i][3] == true then doPlayerAddOutfitId(cid, c[i][4], c[i][5]) end end return true end Aqui está um npc ( aconselho usar ele para vender seus itens vips ) 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 bootsid = 1455 local bootscost = 15 local ringid = 2145 local ringcost = 5 local bladeid = 12610 local bladecost = 20 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'vip boots') or msgcontains(msg, 'boots')) then selfSay('Do you want to buy Vip Boots fo '.. bootscost ..' premium points?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getAccountPoints(cid) >= bootscost) then if(doAccountRemovePoints(cid, bootscost) == TRUE) then doPlayerAddItem(cid, bootsid) selfSay('Here you are.', cid) else selfSay('Sorry, you don\'t have enough gold.', cid) end else selfSay('Sorry, you don\'t have the item.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) elseif(msgcontains(msg, 'blade of corruption') or msgcontains(msg, 'blade')) then selfSay('Do you want to buy blade of corruption for '.. bladecost ..' premium points?', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if(getAccountPoints(cid) >= bladecost) then if(doAccountRemovePoints(cid, bladecost) == TRUE) then doPlayerAddItem(cid, bladeid) selfSay('Here you are.', cid) else selfSay('Sorry, you don\'t have enough points!.', cid) end end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) elseif(msgcontains(msg, 'expring') or msgcontains(msg, 'ring')) then selfSay('Do you want to buy exp ring for '.. ringcost ..' premium points?', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if(getAccountPoints(cid) >= ringcost) then if(doAccountRemovePoints(cid, ringcost) == TRUE) then doPlayerAddItem(cid, ringid) selfSay('Here you are.', cid) else selfSay('Sorry, you don\'t have enough gold.', cid) end end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) npc.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Donator" script="donator.lua" walkinterval="0" floorchange="0" speed="900"> <health now="150" max="150"/> <look type="131" head="19" body="19" legs="19" feet="19"/> <interaction range="3" idletime="60"> <interact keywords="hi" focus="1"> <keywords>hello</keywords> <response text="Hey there, I sell items only to Donators! To Donate check website or ask Server Staff."> <action name="idle" value="1"/> </response> </interact> <interact keywords="bye" focus="0"> <keywords>farewell</keywords> <response text="Good bye."/> </interact> </interaction> </npc> script made by Vodkart npc por trade say 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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid -- ["nome do item"] = {Qntos pontos vao custar, id do item} local t = { ["boots of haste"] = {15, 2195}, -- ["demon helmet"] = {25, 2493}, ["frozen starlight"] = {30, 2361}, ["royal crossbow"] = {20, 8851}, ["solar axe"] = {30, 8925}, ["soft boots"] = {50, 2640}, ["demon armor"] = {100, 2494}, ["firewalker boots"] = {50, 9932}, ["magic plate armor"] = {70, 2472}, ["flame blade"] = {100, 8931} } if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then local str = "" str = str .. "Eu vendo estes items: " for name, pos in pairs(t) do str = str.." {"..name.."} = "..pos[1].." Points/" end str = str .. "." npcHandler:say(str, cid) elseif t[msg] then if (doAccountRemovePoints(cid, t[msg][1]) == TRUE) then doPlayerAddItem(cid,t[msg][2],1) npcHandler:say("Aqui está seu ".. getItemNameById(t[msg][2]) .."!", cid) else npcHandler:say("você não tem "..t[msg][1].." Points", cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) npc por trade 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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local shopWindow = {} local t = { [2195] = {price = 15}, [2493] = {price = 25}, [2361] = {price = 30}, [8851] = {price = 20}, [8925] = {price = 30}, [2640] = {price = 50}, [2494] = {price = 100}, [9932] = {price = 50}, [2472] = {price = 70}, [8931] = {price = 48} } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and getAccountPoints(cid) < t[item].price then selfSay("You dont have "..t[item].price.." points", cid) else doPlayerAddItem(cid, item) doAccountRemovePoints(cid, t[item].price) selfSay("Here is you item!", cid) end return true end if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then for var, ret in pairs(t) do table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)}) end openShopWindow(cid, shopWindow, onBuy, onSell) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) é só isso! créditos: LucasOlzon Beeki XTibia Vodkart @Edit adicionado scripts by Vodkart.
-
TibiaAvatar.com (Sábado, 21 de Dezembro às 13:00 UTC-3) VÍDEO Principais motivações para entrar no mundo Avatar: • 4 vocações espelhadas no anime Avatar - Fire Bender, Water Bender, Air Bender e Earth Bender. • Possibilidade de ter sua vocação promovida - Fire Lord, Tribal Chief Water, Air Monk e Dai Li Earth (com passivas únicas, ofensivas e defensivas). • 96 magias/dobras também espelhadas no anime Avatar - sendo 24 para cada vocação. • Possibilidade de aprimorar suas magias/dobras através de stones lendárias. • Sistema de encantamento com runas - possibilidade de encantar seus equipamentos com três tipos diferentes de runas lendárias. • Mapa completamente próprio - inúmeras quests, dungeons, bosses, mini-bosses, tasks globais, tasks diárias, etc. • Sistema de distribuição de atributos - a cada level o personagem ganhará um ponto de atributo para distribuir em: Health, Mana, Bend Level e Dodge. • Sistema de passiva - se o personagem estiver com a passiva ativa e por alguma razão perder todo o seu hp, ela ressuscitará automaticamente esse personagem com uma pequena porcentagem de vida. • Evento que funciona a cada 4 horas e que determina um novo Avatar. Lembrando que estamos com um sorteio em nossa página do facebook. Boa sorte à todos, estamos esperando todos vocês!
-
Informações: (Não oficial) Funciona com TibiaCast Versões testadas: 10.80/10.90 Reupado xTibia Map Tracker.zip xTibia Map Tracker.zip
-
seguinte erro = Parse error: syntax error, unexpected 'case' (T_CASE) in D:\xampp\htdocs\account.php on line 465 || na linha 465 tem assim = #####CHANGE PASSWORD##### case "password": Vou postar o php todo não sei se pode qq coisa me avisa que removo , estou muito precisando da ajuda de vcs código disponível: <?php session_start(); include ('config.php'); $acc_logged = $_SESSION['account']; $pass_logged = $_SESSION['password']; if(!isset($_GET['page'])) { if ((!isset($acc_logged) && isset($pass_logged) && $acc_logged != null && $acc_logged != "" && $pass_logged != null && $pass_logged != "")) header("Location: index.php"); else { connect_db(); include ('top.inc.php'); $noguildid = 0; $empty = ""; $joinchar = $_POST['name']; echo "<script language=\"JavaScript\">\n"; echo "function askConfirm(txt,url) {\n"; echo "if (confirm(txt) == true) {\n"; echo "document.location=url\n"; echo "return true;\n"; echo "} \n"; echo "}\n"; echo "</script>"; if ($acc_logged != "" && $acc_logged != null && $pass_logged != "" && $pass_logged != null) { $login = $_GET['login']; if ($login == "true") { echo "<p>You have successfully logged in!</p>"; } $result = $_GET['result']; if (isset($result) && result != "" && result != null) { if ($result == "char_success") { echo "<h1>Congratulations!</h1><p>Your character was successfully created!</p>"; } } echo '<h1>Account Home:</h1>'; echo '<h2>Options:</h2>'; echo '<a href="account.php?page=char">Create new Character</a><br />'; echo '<a href="account.php?page=password">Change Password</a><br />'; $query2 = mysql_query("SELECT * FROM `accounts` WHERE (`accno` = '".mysql_escape_string($acc_logged)."') ") or die(mysql_error()); while($sql2 = mysql_fetch_array($query2)) { $ownguild_check = mysql_query("SELECT ownguild FROM players WHERE account = '".mysql_escape_string($acc_logged)."' AND ownguild = '1'") or die(mysql_error()); if(mysql_num_rows($ownguild_check) == 1){ echo '<a href="guild.php">Manage Guild</a><br />'; } else { if($sql2['premDays'] >= $guild_premdays) echo '<a href="guild.php?page=create">Create Guild</a><br />'; } if($sql2['hide'] == 1) { $hide = "Yes"; } else { $hide = "No"; } if($sql2['hidemail'] == 1) { $hidemail = "Yes"; } else { $hidemail = "No"; } if($sql2['type'] > 2) { echo '<a href="manager.php">SQL Manager</a><br />'; echo '<a href="news.php?act=post">Post News</a><br />'; } echo '<h2>Personal Information:</h2>'; echo '<table>'; echo '<tr><td>Name: </td><td>'.$sql2['rlname'].'</td></tr>'; echo '<tr><td>Location: </td><td>'.$sql2['location'].'</td></tr>'; echo '<tr><td>Email: </td><td>'.$sql2['email'].'</td></tr>'; echo '<tr><td>Hidden info: </td><td><a href="account.php?page=hide&type=2">'.$hide.'</a></td></tr>'; echo '<tr><td>Hidden email: </td><td><a href="account.php?page=hide&type=3">'.$hidemail.'</a></td></tr>'; } echo '</table><br />'; echo '<h1>Character information:</h1>'; echo '<table border="0" cellSpacing="0" cellpadding="2" width="500px">'; echo '<tr>'; echo '<td><b>Name:</b></td><td><b>Comment:</b></td><td><b>Hidden:</b></td><td><b>Access:</b></td><td><b>Level:</b></td><td><b>Guild:</b></td>'; echo '</tr>'; $query = mysql_query("SELECT * FROM `players` WHERE (`account` = '".mysql_escape_string($acc_logged)."') ") or die(mysql_error()); while($sql = mysql_fetch_array($query)) { if($sql['hide'] == 1) { $hidechar = "Yes"; } else { $hidechar = "No"; } $id=$i+1; echo ($i % 2) ? "<tr bgcolor=\"\">" : "<tr bgcolor=\"\">"; echo '<td><a href="info.php?act=players&char='.$sql['name'].'">'.$sql['name'].'</a></td>'; echo '<td><a href="account.php?page=comment&charname='.$sql['name'].'">Edit</a></td>'; echo '<td><a href="account.php?page=hide&char='.$sql['name'].'&type=1">'.$hidechar.'</a></td>'; echo '<td>'.$sql['level'].'</td>'; echo '<td>'; $guild_query = mysql_query("SELECT * FROM `guilds` WHERE (`guildid` = '".mysql_escape_string($sql['guildid'])."') "); while($guild_sql = mysql_fetch_array($guild_query)) { if($sql['guildid'] >= 1) { if($sql['ownguild'] >= 1) { echo "<a href=\"javascript:askConfirm('Do you want to delete " . htmlentities($guild_sql['guildname']) . "?','guild.php?page=leave&show=delete&id=".$sql['id']."&guildid=".$sql['guildid']."');\">Delete</a></center></td>"; } else { echo "<a href=\"javascript:askConfirm('Do you want to leave " . htmlentities($guild_sql['guildname']) . "?','guild.php?page=leave&show=leave&id=".$sql['id']."&guildid=".$sql['guildid']."');\">Leave</a></center></td>"; } } } echo '</tr>'; ++$i; } echo '</table>'; } } } switch($_GET['page']){ #####HIDE ACTIONS##### case "hide": $type = $_GET['type']; $char = $_GET['char']; if ((!isset($acc_logged) && isset($pass_logged) && $acc_logged != null && $acc_logged != "" && $pass_logged != null && $pass_logged != "" && $type != null)) header("Location: index.php"); else { connect_db(); switch($type){ case 1: $player_query = mysql_query("SELECT hide FROM players WHERE (`name` = '".mysql_escape_string($char)."') ") or die(mysql_error()); $player_sql = mysql_fetch_array($player_query); if(mysql_num_rows($player_query)==0) { echo "<h1>Error</h1><p>Please contact the webmaster.</p>"; } else { if($player_sql['hide'] == 1){ mysql_query("UPDATE players set `hide` = `hide`-1 WHERE name='".mysql_escape_string($char)."'") or die(mysql_error()); } else { mysql_query("UPDATE players set `hide` = `hide`+1 WHERE name='".mysql_escape_string($char)."'") or die(mysql_error()); } } break; case 2: $acc_logged_query = mysql_query("SELECT hide FROM `accounts` WHERE accno = '".mysql_escape_string($acc_logged)."'") or die(mysql_error()); $acc_logged_sql = mysql_fetch_array($acc_logged_query); if($acc_logged_sql['hide'] == 1){ mysql_query("UPDATE accounts set `hide` = `hide`-1 WHERE accno='".mysql_escape_string($acc_logged)."'") or die(mysql_error()); } else { mysql_query("UPDATE accounts set `hide` = `hide`+1 WHERE accno='".mysql_escape_string($acc_logged)."'") or die(mysql_error()); } break; case 3: $acc_logged_query = mysql_query("SELECT hidemail FROM `accounts` WHERE accno = '".mysql_escape_string($acc_logged)."'") or die(mysql_error()); $acc_logged_sql = mysql_fetch_array($acc_logged_query); if($acc_logged_sql['hidemail'] == 1){ mysql_query("UPDATE accounts set `hidemail` = `hidemail`-1 WHERE accno='".mysql_escape_string($acc_logged)."'") or die(mysql_error()); } else { mysql_query("UPDATE accounts set `hidemail` = `hidemail`+1 WHERE accno='".mysql_escape_string($acc_logged)."'") or die(mysql_error()); } break; } header("Location: account.php"); } break; #####DELETE CHARACTER##### case "delete": if ((!isset($acc_logged) && isset($pass_logged) && $acc_logged != null && $acc_logged != "" && $pass_logged != null && $pass_logged != "")) header("Location: index.php"); else { include ('top.inc.php'); connect_db(); $char = $_GET['charname']; $passin = $_POST['password']; $query = mysql_query("SELECT * FROM players WHERE (account = '".mysql_escape_string($acc_logged)."' AND name = '".mysql_escape_string($char)."')") or die(mysql_error()); $query_sql = mysql_fetch_array($query); $acc_logged_query = mysql_query("SELECT * FROM `accounts` WHERE (`accno` = '".mysql_escape_string($acc_logged)."') ") or die(mysql_error()); $acc_logged_sql = mysql_fetch_array($acc_logged_query); if($acc_logged_sql['password'] == $passin) { if(mysql_num_rows($query) == 0) { echo '<h2>Error</h2>'; echo '<p>This is not you char, or it does not exist.</p>'; include ('footer.inc.php'); die; } else { $query_sql['id'] = mysql_escape_string($query_sql['id']); $skills = "DELETE FROM skills where player = '" .mysql_escape_string($query_sql['id']). "'"; mysql_query($skills) or die(mysql_error()); $deaths = "DELETE FROM deathlist where player = '" .mysql_escape_string($query_sql['id']). "'"; mysql_query($deaths) or die(mysql_error()); $items = "DELETE FROM items where player = '" .mysql_escape_string($query_sql['id']). "'"; mysql_query($items) or die(mysql_error()); $Sql = "DELETE FROM players WHERE account='".mysql_escape_string($_SESSION['account'])."' AND id = '".mysql_escape_string($query_sql['id'])."'"; if (!$Result = mysql_query($Sql)){ echo "Error at updating.<br />\n"; echo "Error is: <b>" . mysql_error() . "</b><br/>\n"; echo "Error in SQL: <b>" . $Sql . "</b><br/>\n"; die(); } else { echo '<h1>Congratulations!</h1>'; echo '<p>You have now deleted ' .$query_sql['name']. ' from your account. <br />Please click <a href="account.php">here</a> to go back home!</p>'; include ('footer.inc.php'); die; } } } else { ?> <h1>Character deletion:</h1> <p>You want to delete: <a href="info.php?act=players&char=<? echo $char;?>"><? echo $char;?></a></p> <form action="account.php?page=delete&charname=<?=$char;?>" method="POST"> <p>Password: <input name="password" type="password" value="" class="textfield"></p> <input type="Submit" value="Delete Character"> <input type="Reset" value="Clear Form"> </form> <p><a href="account.php">Return home.</a></p> <?php } } break; #####LOGIN##### case "login": $acc_logged = $_REQUEST['account']; $pass_logged = $_REQUEST['password']; if (isset($acc_logged) && isset($pass_logged)) { connect_db(); $query = mysql_query("SELECT * FROM `accounts` WHERE (`accno` = '".mysql_escape_string($acc_logged)."' AND `password` = '".mysql_escape_string($pass_logged)."') "); if(mysql_num_rows($query) == 1) { $sql = mysql_fetch_array($query); $_SESSION["account"] = $acc_logged; $_SESSION["password"] = $pass_logged; header ("Location: account.php"); } else { header ("Location: index.php"); } } else { header ("Location: index.php"); } break; #####LOGOUT##### case "logout": session_unset(); header("Location: index.php"); break; #####REGISTER##### case "register": include ('top.inc.php'); connect_db(); $error = 0; $id = 0; $id++; $mail = $_POST['mail']; $acc_logged = $_POST['account']; $pass_logged = $_POST['password']; $hidemail = $_POST['hidemail']; $rlname = $_POST['rlname']; $location = $_POST['location']; $show = $_POST['hide']; $md = md5($acc_logged); if (isset($acc_logged) && isset($pass_logged) && $acc_logged != "" && $pass_logged != "") { if ($acc_logged == "111111" || $acc_logged == "1") { echo "<h1>Error!</h1><p>Due to safetey reasons this account number is blocked!</p><br />"; $error = 1; } if (strlen($acc_logged) < 6 || strlen($acc_logged) > 8 || strlen($pass_logged) < 3 || strlen($rlname) > 17 || strlen($location) > 25 || strlen($mail) > 40) { echo "<h1>Error!</h1><p>Please fill out the form correctly!</p>"; $error = 1; } else if (!is_numeric($acc_logged)) { echo "<h1>Error!</h1><p>Your account number must consist of 6 to 8 digits!</p>"; $error = 1; } else { $temp = strspn("$pass_logged", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890 "); if ($temp != strlen($pass_logged)) { echo "<h1>Error!</h1><p>Your password must consist of more then 2 letters or numbers (ABC, abc, 123 and blankspaces)!</p>"; $error = 1; } else { if ($rlname == '') { echo "<h1>Error!</h1><p>Please fill your real life name due to safety reasons.</p>"; $error = 1; } else { if ($location == '') { echo "<h1>Error!</h1><p>Please fill in your location due to safety reasons.</p>"; $error = 1; } else { if ($mail == '') { echo "<h1>Error!</h1><p>Please fill your email adress due to safety reasons.</p>"; $error = 1; } else { if ($error == 0) { $query = mysql_query('SELECT * FROM accounts WHERE (accno = '.mysql_escape_string($acc_logged).')'); if (mysql_num_rows($query) != 0) { echo("<h1>Error!</h1><p>This account number already exist. Please go <a href=\"account.php?page=register\">back</a> and refill the form.</p>"); include ('footer.inc.php'); die; } //$sql = "INSERT INTO accounts(id, accno, password, type, premDays, email, blocked, rlname, location, hide, hidemail) values(NULL,'$acc_logged','$pass_logged','1','0','$mail','0', '$rlname', '$location', '$show', '$hidemail')"; $__reg['account'] = mysql_escape_string($acc_logged); $__reg['pwd'] = mysql_escape_string($pass_logged); $__reg['mail'] = mysql_escape_string($mail); $__reg['rln'] = mysql_escape_string($rlname); $__reg['loc'] = mysql_escape_string($location); $__reg['show'] = mysql_escape_string($show); $__reg['hidemail'] = mysql_escape_string($hidemail); $sql = "INSERT INTO accounts(id, accno, password, type, premDays, " . "premEnd, email, blocked, rlname, location, hide, hidemail)" . " values(NULL,'$__reg[account]','$__reg[pwd]','1','0','0'," . "'$__reg[mail]','0', '$__reg[rln]', '$__reg[loc]', " . "'$__reg[show]', '$__reg[hidemail]')"; mysql_query($sql); session_unset(); ?> <h1>Congratulations!</h1><p>Your account were successfully created. Please login to create your first character.<br /></p> <? } } } } } } } else { if ($acc_logged != "") { ?> <h1>Error!</h1><p>Please fill in all fields.</p><br /><br /> <?php } } if ($created != true) { ?> <h1>Create account:</h1> <form action="account.php?page=register" method="post"> <p>Account Number:<br /> <input name="account" type="password" value="" class="textfield" maxlength="8" /><font color="red">* <i>(6-8 digits)</i></font></p> <p>Password:<br /> <input name="password" type="password" value="" class="textfield" /><font color="red">* <i>(at least 3 characters)</i></font></p> <h1>Real life information:</h1> <p>Real name:<br /> <input name="rlname" type="text" value="" class="textfield"></p> <p>Location:<br /> <input name="location" type="text" value="" class="textfield"></p> <p>Hide real life info?<br /> Yes <input type="radio" name="hide" value="1" style="border: 0;" checked /> No <input type="radio" name="hide" value="0" style="border: 0;"></p> <p>Email adress:<br /> <input name="mail" type="text" value="" class="textfield"></p> <p>Hide Email Adress?<br /> Yes<input type="radio" name="hidemail" value="1" style="border: 0;" checked /> No <input type="radio" name="hidemail" value="0" style="border: 0;"></p> <p><font color="red">Note: The real life information is a way for you to recieve your account again if it gets hacked. So please type it in.</font></p> <br /> <input type="submit" value="Create Account" /> <input type="reset" value="Clear Form" /> </form> <?php } mysql_close(); break; #####CHANGE PASSWORD##### case "password": if ((!isset($acc_logged) && isset($pass_logged) && $acc_logged != null && $acc_logged != "" && $pass_logged != null && $pass_logged != "")) header("Location: index.php"); else { include ('top.inc.php'); connect_db(); ob_start(); $query = mysql_query("SELECT * FROM accounts WHERE (accno = '".mysql_escape_string($_SESSION['account'])."' AND password = '".mysql_escape_string($_SESSION['password'])."')") or die(mysql_error()); if(mysql_num_rows($query) == 0) { echo '<h1>Unknown error.</h1><p>Please contact the webmaster.</p>'; include ('footer.inc.php'); die; } else $query2 = mysql_query("SELECT * FROM `accounts` WHERE (`accno` = '".mysql_escape_string($acc_logged)."') ") or die(mysql_error()); while($sql = mysql_fetch_array($query2)) { echo "<h1>Change Password:</h1>"; if($sql['password'] == $_POST['opass']) { $Sql = "UPDATE accounts SET password = '".mysql_escape_string($_POST['npass'])."' WHERE accno = '".mysql_escape_string($_SESSION['account'])."' AND password = '".mysql_escape_string($_SESSION['password'])."'"; if (!$Result = mysql_query($Sql)) { echo "Error at updateing.<br/>\n"; echo "Error is: <b>" . mysql_error() . "</b><br/>\n"; echo "Error in SQL: <b>" . $Sql . "</b><br/>\n"; die(); } else { echo "<p>Succesfully changed your password.</p>"; $_SESSION['password'] = $_POST['npass']; echo '<p><a href="account.php">Return home</a></p>'; include ('footer.inc.php'); die; } } echo ' <form method="post" action="account.php?page=password"> <p>Current Password:<br /><input type="password" name="opass" size="21"></p> <p>New Password:<br /><input type="password" name="npass" size="21"></p> <p><input type="submit" value="Submit" name="submit"></p> </form> <p><a href="account.php">Return home</a></p>'; } } break; #####COMMENT##### case "comment": if ((!isset($acc_logged) && isset($pass_logged) && $acc_logged != null && $acc_logged != "" && $pass_logged != null && $pass_logged != "")) header("Location: index.php"); else { include ('top.inc.php'); connect_db(); $comment = $_POST['comment']; $query = mysql_query("SELECT * FROM players WHERE (account = '".mysql_escape_string($_SESSION['account'])."' AND name = '".mysql_escape_string($_REQUEST['charname'])."')") or die(mysql_error()); if(mysql_num_rows($query) == 0) { echo "<h1>Error</h1><p>This is not you char, or it does not exist.</p>"; include ('footer.inc.php'); die; } // elseif(isset($_POST['form'])) if ($_SERVER['REQUEST_METHOD'] == "POST") { if(strlen($_POST['comment']) > 255) { echo '<h1>Error:</h1>'; echo '<p>Your comment is too big.</p>'; include ('footer.inc.php'); die; } else { $comment = $_POST['comment']; $comment = htmlentities($comment); $Sql = "UPDATE players SET comment = '".mysql_real_escape_string($comment)."' WHERE account = '".$_SESSION['account']."' AND name = '".$_REQUEST['charname']."'"; if (!$Result = mysql_query($Sql)) { echo "<h1>Error</h1>"; echo "<p>Error in: <b>" . mysql_error() . "</b></p>"; include ('footer.inc.php'); die(); } else { echo '<h1>Congratulations!</h1>'; echo '<p>Your comment has been changed.</p>'; } } } else { $sql = mysql_fetch_assoc($query); ?> <form action="account.php?page=comment&charname=<?= $_REQUEST['charname'];?>" method="POST"> <h1>Comment edit:</h1> <p> <textarea name="comment" cols="45" rows="10"> <?= stripslashes($sql['comment']); ?> </textarea> </p> <input type="Submit" value="Edit comment" name="form"> <input type="Reset" value="Clear Form"> </form> <? } echo '<p><a href="account.php">Return home</a></p>'; } break; #####CHARACTER CREATE FORM##### case "char": if ((!isset($acc_logged) && isset($pass_logged) && $acc_logged != null && $acc_logged != "" && $pass_logged != null && $pass_logged != "")) header("Location: index.php"); else { include ('top.inc.php'); connect_db(); $check = mysql_query('SELECT * FROM players WHERE (name = '.mysql_escape_string($namein).')'); $acc = ""; $pass = ""; $acc = $_SESSION['account']; $pass = $_SESSION['password']; $playername = $_POST['name']; echo '<h1>Create new character:</h1>'; echo '<form action="account.php?page=chargo" method="POST">'; echo '<h2>Name:</h2>'; echo '<input type="text" name="name" class="textfield" maxlength="'.$charlenght.'" /><br />'; echo '<br /><h2>Vocation:</h2>'; if ($chartype == 'rook') { echo '<input type="radio" name="voc" value="0" style="border: 0;" checked /> No Vocation<br />'; } else { echo '<input type="radio" name="voc" value="1" style="border: 0;" checked /> Sorcerer<br />'; echo '<input type="radio" name="voc" value="2" style="border: 0;" /> Druid<br />'; echo '<input type="radio" name="voc" value="3" style="border: 0;" /> Paladin<br />'; echo '<input type="radio" name="voc" value="4" style="border: 0;" /> Knight<br />'; } echo '<br /><h2>Sex:</h2>'; echo '<input type="radio" name="sex" value="1" style="border: 0;" checked /> Male<br />'; echo '<input type="radio" name="sex" value="0" style="border: 0;" /> Female<br />'; echo '<br />'; echo '<input type="submit" value="Create" />'; } break; #####CREATE CHARACTER ACTION##### case "chargo": if ((!isset($acc_logged) && isset($pass_logged) && $acc_logged != null && $acc_logged != "" && $pass_logged != null && $pass_logged != "")) header("Location: index.php"); else { include ('top.inc.php'); connect_db(); ob_start(); $error = 0; $namein = preg_replace('/\s\s+/', ' ', $_POST['name']); $vocin = (int)$_POST['voc']; $sexin = (int)$_POST['sex']; $check = mysql_query("SELECT * FROM players WHERE name = '".mysql_escape_string($namein)."' LIMIT 1") or die(mysql_error()); if ($sexin != 0 && $sexin != 1) { $error_msg = 'Invalid sex.'; $error++; } elseif( ( $vocin != 0 && $chartype == 'rook' ) || ( ( $vocin < 1 || $vocin > 4 ) && $chartype != 'rook' ) ) { $error_msg = 'Invalid vocation.'; $error++; } elseif ($namein == "" || $_POST['sex'] == "" || $_POST['voc'] == "") { $error_msg = 'You did not fill in all fields.'; $error++; } elseif(!preg_match("/^[a-zA-Z][a-zA-Z ]*[a-zA-Z]$/", $namein)) { $error_msg = 'Your name contains illegal characters.'; $error++; } elseif(preg_match("/[ ]{2,}/", $namein)) { $error_msg = 'Check the ammount of spaces in your nickname.'; $error++; } elseif(preg_match("/^gm/i", $namein)) { $error_msg = 'You may not create a Gamemaster.'; $error++; } elseif(preg_match("/^premium/i", $namein)) { $error_msg = 'You may not create a Gamemaster.'; $error++; } elseif(preg_match("/^prem/i", $namein)) { $error_msg = 'You may not create a Gamemaster.'; $error++; } elseif(preg_match("/^admin/i", $namein)) { $error_msg = 'You may not create a Gamemaster.'; $error++; } elseif(preg_match("/^vip/i", $namein)) { $error_msg = 'You may not create a Gamemaster.'; $error++; } elseif(preg_match("/^suport/i", $namein)) { $error_msg = 'You may not create a Gamemaster.'; $error++; } elseif(preg_match("/^account/i", $namein)) { $error_msg = 'You may not create a Gamemaster.'; $error++; } elseif(preg_match("/^adm/i", $namein)) { $error_msg = 'You may not create a Gamemaster.'; $error++; } elseif(preg_match("/^cm/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^supote/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^g o d/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^g m/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^npc/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^lgm/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^lgod/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^norwa/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^gud/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^gamemaster/i", $namein)) { $error_msg = 'You may not create a Gamemaster.'; $error++; } elseif(preg_match("/^god/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(preg_match("/^god/i", $namein)) { $error_msg = 'You may not create a God.'; $error++; } elseif(mysql_num_rows($check) != 0) { $error_msg = 'The character name is taken. Please go <a href="create_character.php">back</a>.'; $error++; } elseif (strlen($namein) < 2 || strlen($namein) > $charlenght) { $error_msg = 'You may not have characters with more than '.$charlenght.' characters.'; $error++; } if ($error != 0) { echo '<h1>Error</h1><p>'.$error_msg.'</p>'; include ('footer.inc.php'); } else { $namein = mysql_escape_string($namein); // No voc settings. if($vocin == 0) { mysql_query("INSERT INTO players(name, access, account, level, vocation," . " cid, health, healthmax, direction, experience, lookbody, lookfeet, " . "lookhead, looklegs, looktype, maglevel, mana, manamax, manaspent, " . "masterpos, pos, speed, cap, maxdepotitems, food, sex, guildid, " . "guildrank, guildnick, lastlogin, lastip, save, redskulltime, redskull)" . " values('".$namein."','0','$acc_logged','$startlvl','0','675','" .$novoc['hp'] . "','" .$novoc['hp']. "','2','$startexp','116','116','116','116','128','" . $novoc['mag']. "','" .$novoc['mana']. "','" .$novoc['mana']. "','0','$templepos','$templepos','$startspeed','" .$novoc['cap']. "','$maxdepotitems','0','$sexin','0','','','0','0','1','0','0')") or die(mysql_error()); $query2 = mysql_query("SELECT * FROM `players` WHERE (`name` = '".$namein."') ") or die(mysql_error()); while($sql2 = mysql_fetch_array($query2)) { $playerid = $sql2['id']; } $item1 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','1','0','0','2461','0','0','0','','')"; $item2 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','2','0','0','2170','0','0','0','','')"; $item3 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','3','0','0','1988','0','0','0','','')"; $item4 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','4','0','0','2467','0','0','0','','')"; $item5 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','5','0','0','2512','0','0','0','','')"; $item6 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','6','0','0','2398','0','0','0','','')"; $item7 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','7','0','0','2649','0','0','0','','')"; $item8 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','8','0','0','2643','0','0','0','','')"; $item10 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','10','0','0','2120','0','0','0','','')"; $skills1 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','0','" .$novoc['fist']. "','0')"; $skills2 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','1','" .$novoc['club']. "','0')"; $skills3 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','2','" .$novoc['sword']. "','0')"; $skills4 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','3','" .$novoc['axe']. "','0')"; $skills5 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','4','" .$novoc['dist']. "','0')"; $skills6 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','5','" .$novoc['shield']. "','0')"; $skills7 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','6','" .$novoc['fish']. "','0')"; mysql_query($item1) or die(mysql_error()); mysql_query($item2) or die(mysql_error()); mysql_query($item3) or die(mysql_error()); mysql_query($item4) or die(mysql_error()); mysql_query($item5) or die(mysql_error()); mysql_query($item6) or die(mysql_error()); mysql_query($item7) or die(mysql_error()); mysql_query($item8) or die(mysql_error()); mysql_query($item10) or die(mysql_error()); mysql_query($skills1) or die(mysql_error()); mysql_query($skills2) or die(mysql_error()); mysql_query($skills3) or die(mysql_error()); mysql_query($skills4) or die(mysql_error()); mysql_query($skills5) or die(mysql_error()); mysql_query($skills6) or die(mysql_error()); mysql_query($skills7) or die(mysql_error()); } // Sorcerer settings. elseif($vocin == 1) { mysql_query("INSERT INTO players(name, access, account, level, vocation, cid, health, healthmax, direction, experience, lookbody, lookfeet, lookhead, looklegs, looktype, maglevel, mana, manamax, manaspent, masterpos, pos, speed, cap, maxdepotitems, food, sex, guildid, guildrank, guildnick, lastlogin, lastip, save, redskulltime, redskull) values('$namein','0','$acc_logged','$startlvl','1','675','" .$sorc['hp']. "','" .$sorc['hp']. "','2','$startexp','116','116','116','116','128','" .$sorc['mag']. "','" .$sorc['mana']. "','" .$sorc['mana']. "','0','$templepos','$templepos','$startspeed','" .$sorc['cap']. "','$maxdepotitems','0','$sexin','0','','','0','0','1','0','0')") or die(mysql_error()); $query2 = mysql_query("SELECT * FROM `players` WHERE (`name` = '".$namein."') ") or die(mysql_error()); while($sql2 = mysql_fetch_array($query2)) { $playerid = $sql2['id']; } $item1 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','1','0','0','2461','0','0','0','','')"; $item2 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','2','0','0','2170','0','0','0','','')"; $item3 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','3','0','0','1988','0','0','0','','')"; $item4 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','4','0','0','2467','0','0','0','','')"; $item5 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','5','0','0','2512','0','0','0','','')"; $item6 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','6','0','0','2190','0','0','0','','')"; $item7 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','7','0','0','2649','0','0','0','','')"; $item8 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','8','0','0','2643','0','0','0','','')"; $item10 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','10','0','0','2120','0','0','0','','')"; $skills1 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','0','" .$sorc['fist']. "','0')"; $skills2 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','1','" .$sorc['club']. "','0')"; $skills3 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','2','" .$sorc['sword']. "','0')"; $skills4 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','3','" .$sorc['axe']. "','0')"; $skills5 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','4','" .$sorc['dist']. "','0')"; $skills6 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','5','" .$sorc['shield']. "','0')"; $skills7 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','6','" .$sorc['fish']. "','0')"; mysql_query($item1) or die(mysql_error()); mysql_query($item2) or die(mysql_error()); mysql_query($item3) or die(mysql_error()); mysql_query($item4) or die(mysql_error()); mysql_query($item5) or die(mysql_error()); mysql_query($item6) or die(mysql_error()); mysql_query($item7) or die(mysql_error()); mysql_query($item8) or die(mysql_error()); mysql_query($item10) or die(mysql_error()); mysql_query($skills1) or die(mysql_error()); mysql_query($skills2) or die(mysql_error()); mysql_query($skills3) or die(mysql_error()); mysql_query($skills4) or die(mysql_error()); mysql_query($skills5) or die(mysql_error()); mysql_query($skills6) or die(mysql_error()); mysql_query($skills7) or die(mysql_error()); } // Druid settings. elseif($vocin == 2) { mysql_query("INSERT INTO players(name, access, account, level, vocation, cid, health, healthmax, direction, experience, lookbody, lookfeet, lookhead, looklegs, looktype, maglevel, mana, manamax, manaspent, masterpos, pos, speed, cap, maxdepotitems, food, sex, guildid, guildrank, guildnick, lastlogin, lastip, save, redskulltime, redskull) values('$namein','0','$acc_logged','$startlvl','2','675','" .$druid['hp']. "','" .$druid['hp']. "','2','$startexp','116','116','116','116','128','" .$druid['mag']. "','" .$druid['mana']. "','" .$druid['mana']. "','0','$templepos','$templepos','$startspeed','" .$druid['cap']. "','$maxdepotitems','0','$sexin','0','','','0','0','1','0','0')") or die(mysql_error()); $query2 = mysql_query("SELECT * FROM `players` WHERE (`name` = '".$namein."') ") or die(mysql_error()); while($sql2 = mysql_fetch_array($query2)) { $playerid = $sql2['id']; } $item1 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','1','0','0','2461','0','0','0','','')"; $item2 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','2','0','0','2170','0','0','0','','')"; $item3 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','3','0','0','1988','0','0','0','','')"; $item4 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','4','0','0','2467','0','0','0','','')"; $item5 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','5','0','0','2512','0','0','0','','')"; $item6 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','6','0','0','2182','0','0','0','','')"; $item7 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','7','0','0','2649','0','0','0','','')"; $item8 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','8','0','0','2643','0','0','0','','')"; $item10 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','10','0','0','2120','0','0','0','','')"; $skills1 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','0','" .$druid['fist']. "','0')"; $skills2 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','1','" .$druid['club']. "','0')"; $skills3 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','2','" .$druid['sword']. "','0')"; $skills4 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','3','" .$druid['axe']. "','0')"; $skills5 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','4','" .$druid['dist']. "','0')"; $skills6 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','5','" .$druid['shield']. "','0')"; $skills7 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','6','" .$druid['fish']. "','0')"; mysql_query($item1) or die(mysql_error()); mysql_query($item2) or die(mysql_error()); mysql_query($item3) or die(mysql_error()); mysql_query($item4) or die(mysql_error()); mysql_query($item5) or die(mysql_error()); mysql_query($item6) or die(mysql_error()); mysql_query($item7) or die(mysql_error()); mysql_query($item8) or die(mysql_error()); mysql_query($item10) or die(mysql_error()); mysql_query($skills1) or die(mysql_error()); mysql_query($skills2) or die(mysql_error()); mysql_query($skills3) or die(mysql_error()); mysql_query($skills4) or die(mysql_error()); mysql_query($skills5) or die(mysql_error()); mysql_query($skills6) or die(mysql_error()); mysql_query($skills7) or die(mysql_error()); } // Paladin settings. elseif($vocin == 3) { mysql_query("INSERT INTO players(name, access, account, level, vocation, cid, health, healthmax, direction, experience, lookbody, lookfeet, lookhead, looklegs, looktype, maglevel, mana, manamax, manaspent, masterpos, pos, speed, cap, maxdepotitems, food, sex, guildid, guildrank, guildnick, lastlogin, lastip, save, redskulltime, redskull) values('$namein','0','$acc_logged','$startlvl','3','675','" .$paladin['hp']. "','" .$paladin['hp']. "','2','$startexp','116','116','116','116','128','" .$paladin['mag']. "','" .$paladin['mana']. "','" .$paladin['mana']. "','0','$templepos','$templepos','$startspeed','" .$paladin['cap']. "','$maxdepotitems','0','$sexin','0','','','0','0','1','0','0')") or die(mysql_error()); $query2 = mysql_query("SELECT * FROM `players` WHERE (`name` = '".$namein."') ") or die(mysql_error()); while($sql2 = mysql_fetch_array($query2)) { $playerid = $sql2['id']; } $item1 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','1','0','0','2461','0','0','0','','')"; $item2 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','2','0','0','2170','0','0','0','','')"; $item3 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','3','0','0','1988','0','0','0','','')"; $item4 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','4','0','0','2467','0','0','0','','')"; $item5 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','5','0','0','2512','0','0','0','','')"; $item6 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','6','0','0','3964','0','0','0','','')"; $item7 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','7','0','0','2649','0','0','0','','')"; $item8 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','8','0','0','2643','0','0','0','','')"; $item10 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','10','0','0','2120','0','0','0','','')"; $skills1 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','0','" .$paladin['fist']. "','0')"; $skills2 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','1','" .$paladin['club']. "','0')"; $skills3 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','2','" .$paladin['sword']. "','0')"; $skills4 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','3','" .$paladin['axe']. "','0')"; $skills5 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','4','" .$paladin['dist']. "','0')"; $skills6 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','5','" .$paladin['shield']. "','0')"; $skills7 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','6','" .$paladin['fish']. "','0')"; mysql_query($item1) or die(mysql_error()); mysql_query($item2) or die(mysql_error()); mysql_query($item3) or die(mysql_error()); mysql_query($item4) or die(mysql_error()); mysql_query($item5) or die(mysql_error()); mysql_query($item6) or die(mysql_error()); mysql_query($item7) or die(mysql_error()); mysql_query($item8) or die(mysql_error()); mysql_query($item10) or die(mysql_error()); mysql_query($skills1) or die(mysql_error()); mysql_query($skills2) or die(mysql_error()); mysql_query($skills3) or die(mysql_error()); mysql_query($skills4) or die(mysql_error()); mysql_query($skills5) or die(mysql_error()); mysql_query($skills6) or die(mysql_error()); mysql_query($skills7) or die(mysql_error()); } // Knight settings. elseif($vocin == 4) { mysql_query("INSERT INTO players(name, access, account, level, vocation, cid, health, healthmax, direction, experience, lookbody, lookfeet, lookhead, looklegs, looktype, maglevel, mana, manamax, manaspent, masterpos, pos, speed, cap, maxdepotitems, food, sex, guildid, guildrank, guildnick, lastlogin, lastip, save, redskulltime, redskull) values('$namein','0','$acc_logged','$startlvl','4','675','" .$knight['hp']. "','" .$knight['hp']. "','2','$startexp','116','116','116','116','128','" .$knight['mag']. "','" .$knight['mana']. "','" .$knight['mana']. "','0','$templepos','$templepos','$startspeed','" .$knight['cap']. "','$maxdepotitems','0','$sexin','0','','','0','0','1','0','0')") or die(mysql_error()); $query2 = mysql_query("SELECT * FROM `players` WHERE (`name` = '".$namein."') ") or die(mysql_error()); while($sql2 = mysql_fetch_array($query2)) { $playerid = $sql2['id']; } $item1 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','1','0','0','2461','0','0','0','','')"; $item2 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','2','0','0','2170','0','0','0','','')"; $item3 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','3','0','0','1988','0','0','0','','')"; $item4 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','4','0','0','2467','0','0','0','','')"; $item5 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','5','0','0','2512','0','0','0','','')"; $item6 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','6','0','0','2409','0','0','0','','')"; $item7 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','7','0','0','2649','0','0','0','','')"; $item8 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','8','0','0','2643','0','0','0','','')"; $item10 = "INSERT INTO items(player, slot, sid, pid, type, number, actionid, decaystate, text, specialdesc) values('$playerid','10','0','0','2120','0','0','0','','')"; $skills1 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','0','" .$knight['fist']. "','0')"; $skills2 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','1','" .$knight['club']. "','0')"; $skills3 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','2','" .$knight['sword']. "','0')"; $skills4 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','3','" .$knight['axe']. "','0')"; $skills5 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','4','" .$knight['dist']. "','0')"; $skills6 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','5','" .$knight['shield']. "','0')"; $skills7 = "INSERT INTO skills(player, id, skill, tries) values('$playerid','6','" .$knight['fish']. "','0')"; mysql_query($item1) or die(mysql_error()); mysql_query($item2) or die(mysql_error()); mysql_query($item3) or die(mysql_error()); mysql_query($item4) or die(mysql_error()); mysql_query($item5) or die(mysql_error()); mysql_query($item6) or die(mysql_error()); mysql_query($item7) or die(mysql_error()); mysql_query($item8) or die(mysql_error()); mysql_query($item10) or die(mysql_error()); mysql_query($skills1) or die(mysql_error()); mysql_query($skills2) or die(mysql_error()); mysql_query($skills3) or die(mysql_error()); mysql_query($skills4) or die(mysql_error()); mysql_query($skills5) or die(mysql_error()); mysql_query($skills6) or die(mysql_error()); mysql_query($skills7) or die(mysql_error()); } echo '<h1>Congratulations</h1><p>Successfully created character '.$namein.'.<br />Please click <a href="account.php">here </a>to go back home.</p>'; } } break; ##### ACCOUNT RECOVERY ##### case "lost": include('top.inc.php'); connect_db(); echo '<h1>Lost account interface:</h1>'; if ($_POST['op'] == "recuperar") { if($_POST['tipo'] == "email") { if(isset($_POST['email']) && $_POST['email'] != "") { $acc_query = mysql_query("SELECT * FROM `accounts` WHERE (`email` = '" .mysql_escape_string($_POST['email']). "') LIMIT 1"); if(mysql_num_rows($acc_query)==0) { $error='Invalid e-mail.'; } while($acc_sql=mysql_fetch_array($acc_query)) { $rec_acc=$acc_sql['accno']; $rec_pass=$acc_sql['password']; $endereco=$acc_sql['email']; $nome=$acc_sql['rlname']; } } else { $error='You did not fill in the field.'; } if(empty($error)) { require("class.phpmailer.php"); $mail = new PHPMailer(); // To load the Portuguese version $mail->SetLanguage("br", "language/"); $mail->IsSMTP(); // set mailer to use SMTP $mail->Host = "ssl://smtp.gmail.com"; // specify main and backup server $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "adm.lucas88@gmail.com"; // SMTP username $mail->Password = "dohc2007"; // SMTP password $mail->From = "dont-reply@viking-server.com"; $mail->FromName = "Viking Server"; $mail->AddAddress($endereco, $nome); // name is optional $mail->AddReplyTo("dont-reply@viking-server.com", "Viking Server"); $mail->WordWrap = 50; // set word wrap to 50 characters $mail->IsHTML(true); // set email format to HTML $mail->Subject = "Account information"; $mail->Body = "<p>Dear Viking player,</p> <p>Here is your login information:</p> <p><b>Account number:</b> " .$rec_acc. "<br /> <b>Password:</b> " .$rec_pass. "</p> <br /><br /><p>See you in Viking Server!<br /> Your Viking Server Team</p>"; $mail->AltBody = "Account number: " .$rec_acc. " || Password: " .$rec_pass. ""; if(!$mail->Send()) { echo "The message cannot sended. <p>"; echo "Mailer Error: " . $mail->ErrorInfo; echo "</p><p>Inform the Viking-Server Suport about this error: suporte_vikingserver@hotmail.com</p>"; exit; } echo "<p>Email sent successfully.</p>"; } else { echo '<p>' .$error. ' Please turn <a href="account.php?page=lost">back</a>.</p>'; } } else if($_POST['tipo'] == "account") { if(isset($_POST['account']) && $_POST['account'] != "") { $acc_query = mysql_query("SELECT * FROM `accounts` WHERE (`accno` = '" .mysql_escape_string($_POST['account']). "') LIMIT 1"); if(mysql_num_rows($acc_query)==0) { $error='Invalid account number.'; } while($acc_sql=mysql_fetch_array($acc_query)) { $rec_acc=$acc_sql['accno']; $rec_pass=$acc_sql['password']; $endereco=$acc_sql['email']; $nome=$acc_sql['rlname']; } } else { $error='You did not fill in the field.'; } if(empty($error)) { require("class.phpmailer.php"); $mail = new PHPMailer(); // To load the Portuguese version $mail->SetLanguage("br", "language/"); $mail->IsSMTP(); // set mailer to use SMTP $mail->Host = "ssl://smtp.gmail.com"; // specify main and backup server $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "adm.lucas88@gmail.com"; // SMTP username $mail->Password = "dohc2007"; // SMTP password $mail->From = "dont-reply@viking-server.com"; $mail->FromName = "Viking Server"; $mail->AddAddress($endereco, $nome); // name is optional $mail->AddReplyTo("dont-reply@viking-server.com", "Viking Server"); $mail->WordWrap = 50; // set word wrap to 50 characters $mail->IsHTML(true); // set email format to HTML $mail->Subject = "Account information"; $mail->Body = "<p>Dear Viking player,</p> <p>Here is your login information:</p> <p><b>Account number:</b> " .$rec_acc. "<br /> <b>Password:</b> " .$rec_pass. "</p> <br /><br /><p>See you in Viking Server!<br /> Your Viking Server Team</p>"; $mail->AltBody = "Account number: " .$rec_acc. " || Password: " .$rec_pass. ""; if(!$mail->Send()) { echo "The message cannot sended. <p>"; echo "Mailer Error: " . $mail->ErrorInfo; echo "</p><p>Inform the Viking-Server Suport about this error: suporte_vikingserver@hotmail.com</p>"; exit; } echo "<p>Email sent successfully.</p>"; } else { echo '<p>' .$error. ' Please turn <a href="account.php?page=lost">back</a>.</p>'; } } } else { echo '<p>If you have forgotten your account number or password, you can request to have your account information emailed. Please fill in your registered email address or your account number.</p>'; echo '<table><tr><td align="center" width="50%"><form action="account.php?page=lost" method="post">'; echo '<br />Insert your e-mail:<br /><input type="text" class="textfield" name="email">'; echo '<input type="hidden" name="op" value="recuperar"><input type="submit" value="Send"><input type="hidden" name="tipo" value="email"></form></td>'; echo '<td align="center" width="50%"><form action="account.php?page=lost" method="post">'; echo '<br />Insert your account number:<br /><input type="text" class="textfield" name="account">'; echo '<input type="hidden" name="op" value="recuperar"><input type="submit" value="Send"><input type="hidden" name="tipo" value="account"></form></td></tr></table>'; } break; } include ('footer.inc.php'); ?>
-
Olá a todos os membros do xTibia! Os que estão lendo isso, claro. Assim como eu você pretende abrir um servidor ou ingressar em um em desenvolvimento, correto? Então vamos conversar um pouco. Eu não tenho uma ideia fixa do que estou procurando, o que eu quero é voltar a brincar com o Tibia, antes eu fazia isso, a uns dois ou três anos atrás, porém eu era somente um editor de mapas e por ventura acabei ficando mais ou menos bom nisso porém acabei por desistir pouco tempo depois, agora que eu voltei e estou interessado por programação o meu interesse em abrir um servidor regressou, pessoalmente eu sou apaixonado por RPG, mas estamos ai para tudo. Para trabalhar comigo em harmonia só há uma única regra, não trabalhar por dinheiro e nem fazer nada pensando no financeiro. O meu nome é Rodrigo, eu tenho vinte anos e é um prazer estar escrevendo para você leitor. Minha experiência é totalmente na área voltada a mapas, como eu tinha dito anteriormente, estou querendo fazer um servidor com alguma pessoa que tenha mais ou menos os mesmos interesses. Abrir um servidor por diversão e aumentar o conhecimento com isso, no caso estou tentando migrar para área voltada a programação .lua, eu normalmente faria isso com um amigo porém todos eles são pessoas normais(?), isso é, ninguém sabe o que é Tibia ou programação. O tipo de servidor não importa muito, desde Global até Baiak/RPG. A única coisa que eu acho interessante é que a TFS seja atual mas isso é dispensável, a versão do servidor também não importa, pode ser até mesmo 7x e falando sobre OTservers derivados, realmente eu não sinto nenhuma vontade de fazer ou trabalhar em um servidor com poucas sprites e em Top Down para completar a desgraça(naruto/dragon ball/bleach). Se você estiver interessado em abrir um servidor então me contate por PM aqui no fórum, lhe enviarei meu contato no privado, vamos ser amigos? ?
-
Compilando e Rodando OTserv em Linux Ubuntu 12.04
um tópico no fórum postou Beeki Tutoriais de Infraestrutura
Neste tutorial vamos ensinar como compilar seu servidor em Linux Ubuntu 12.04 LTS! Bom, o necessário é estar conectado ao terminal da nossa máquina usando o PuTTy. Primeiro de tudo (vamos atualizar). apt-get update Criando o diretório da instalação. mkdir /home/otserv cd /home/otserv Baixando e compilando o Open Tibia Server (The Forgotten Server (TFS) revisão 3884 – 8.60). wget http://base.serversoft.com.br/otserv/theforgottenserver.zip apt-get install unzip; unzip theforgottenserver Instalando o MySQL server. apt-get install libmysql++-dev libmysqlclient-dev mysql-common mysql-server Nota: Fique esperto pois ele vai te perguntar pra definir algumas senhas, lembre-se sempre de anotá-las para não esquecer. Criando o banco de dados. mysql -uroot -p digiteSuaSenhaAqui CREATE DATABASE theforgottenserver; Instalando as Libs e dependências pra OTserv. apt-get install libgmp3-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libsqlite0-dev libsqlite3-dev sqlite3 libxml2-dev libxml++2.6-dev cpp gcc g++ make automake autoconf pkg-config subversion liblua5.1-sql-mysql-dev liblua5.1-sql-sqlite3-dev zlib1g-dev zlib1g libcrypto++-dev libcurl4-openssl-dev libasio-dev libboost-dev Instalando as Libs Lua (Rode cada comando separado). apt-get install libncurses5-dev cd /usr/local/src wget http://www.lua.org/ftp/lua-5.1.4.tar.gz tar -xzvf lua* cd lua* make linux make install Preparando para Compilar. cd /home/otserv/theforgottenserver/source/ chmod 777 autogen.sh ./autogen.sh ./configure --enable-mysql --enable-root-permission chmod 777 build.sh ./build.sh Copiando o arquivo compilado para a pasta do game: cp /home/otserv/theforgottenserver/ Importando o banco de dados de testes: cd /home/otserv/theforgottenserver/schemas mysql -uroot -ptheforgottenserver mysql.sql Configurando seu config.lua: apt-get install nano; nano /home/otserv/config.lua Agora você deve navegar pelo arquivo e modificar algumas configurações para ele funcionar. Verifique o IP, database e tudo mais. Para sair do programa “Nano” digite CTRL + X. Para rodar o game: cd /home/otserv/; chmod 777 ./theforgottenserver & Créditos: Serversoft & Beeki XTibia Ps: o link de download de uma das versões do theforgottenserver é a rev 3884 de protocolo 8.60, ou seja... você pode usar a revisão que quiser!- 24 respostas
-
- compilar otserv
- linux
- (e 6 mais)
-
• Servidor Stigal 3.0 {PDA 1.5} [Download]• • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Edições / Ajustes • • Erros Do Servidor • • PrintScreen • • Download's • Servidor Stigal 3.0 {PDA 1.5} 8.54 (4shared) http://www.4shared.com/rar/QhexHDf8/Pokemon_Servidor_Stigal_30_PDA.html? Client PDA 1.6/2.6 (4shared) http://www.mediafire.com/?2a6012x9oz8i5ga Scan Servidor Stigal 3.0 {PDA 1.5+} 8.54 (Virus Total) https://www.virustotal.com/file/f591c04b9323c5bb1f3edb8863a105aa28012732e453766a5783ca44f64abfa9/analysis/1347638278/ Aviso: Os 3 Virus Contidos São Do Executavel... Por Ser "TROJAN" Não Se Multiplica e não fazem mal ao computador! • Creditos • Slicer - {Criador do PDA 1.5} Stigal - {Ajeitar o Mapa e Deixalo "90% Completo"}
-
PROJETOS PATROCINADOS Leia abaixo para entender como funciona o nosso patrocínio: CICLO ENTRE PARCEIROS O xTibia caminha ao lado de outros dois projetos importantes, o nosso parceiro de berço OTPanel e a otserv-list.com. É notável ressaltar que através dessa parceria formulamos regras para convivência dos projetos dentro da nossa comunidade. De certo modo, as normas presentes nesta resolução acompanham as definições já em funcionamento (disponíveis nas regras gerais da comunidade). A IMPORTÂNCIA DO PATROCÍNIO Os projetos patrocinados pelo xtibia já contribuíram muitas vezes mais que vice-versa. O objetivo principal desta resolução visa aumentar as chances de crescimento desses projetos que possuem potencial. NÍVEIS DE PATROCÍNIO O patrocínio será dividido em dois "níveis", cada um com diferentes vantagens: Patrocínio GOLD: O patrocínio de nível mais elevado, sendo reservado a projetos com grande aprovação. Tal nível desfruta dos seguintes privilégios: Uma máquina hospedada na otPanel e banner para divulgação no forum xTibia. Patrocínio SILVER: O segundo nível, abaixo do nível GOLD os patrocínios deste nível terá o privilégio de um banner de divulgação no forum xTibia. PORQUE SER PATROCINADO? Estão previstos aqui, além de normas de conduta ou execução administrativa dos projetos, normas para benefícios e incentivo aos projetos. Sendo estas: • Fórum Independente do nível de patrocínio, o projeto ganhará um fórum acessível por um menu no topo do site e localizado na primeira categoria da index. Este fórum poderá conter categorias e sub-categorias, prefixos, background próprio e logo própria. Os membros parceiros terão poderes administrativos neste fórum. Os projetos também poderão solicitar fóruns privados, acessíveis com senha. Estes fóruns farão parte do xTibia, sendo acessado por centenas de membros todos os dias. • Operação Visto que queremos incentivar os projetos a interagirem com a comunidade, os parceiros terão direitos a benefícios extras. Os membros participantes do projeto patrocinado terão o limite de mensagens privadas triplicado, assim como o limite de upload de arquivos. Ainda falando em limite, estes poderão trocar o nome em 50% menos tempo que membros comuns. Também serão donos de um rank de identificação diferenciado do padrão de membros da comunidade, junto a medalhas exclusivas para a categoria. Tudo isso visando dar ênfase aos desenvolvedores parceiros dentro da comunidade. • Expansão A área de interação para com o público do projeto aumentará com a permissão para membros parceiros publicarem artigos no Portal xTibia. Também terão apoio direto da equipe do xTibia, que deverá, acima de tudo, promover o incentivo ao publico para que acompanhe os conteúdos ou composições do projeto em discussão, do mesmo modo que incentivem diretamente estas ações. • Promoção Todos os projetos terão direito da utilização de um slot de anúncio vago na comunidade, isto será válido entre um intervalo de 30 dias após o uso do benefício. Os projetos também participarão de sorteios mensais envolvendo nossos parceiros, Otpanel.com e OTServlists.com. • Facilidade Projetos patrocinados tem direito a 10% de desconto exclusivo na compra de anúncios no XTibia e na Otservlists.com (em qualquer slot). • Eventos Será discutido com os projetos, quinzenalmente, e juntamente com o coordenador de eventos da comunidade, a criação e execução de eventos entre os dois parceiros, visando beneficiar ambos. TENHA UMA CHANCE Qualquer projeto fundado em conceitos objetivos, com potencial para cumpri-los e executá-los ao longo do crescimento da parceria; isto avaliado em reunião com coordenadores; deverá solicitar a participação neste PI. Não haverá espaço para projetos que não concordem com os termos primários, para manter tal parceria. Sendo estes: • Compromisso Apesar de isto der tratado como consequência e não como deveria apropriadamente, na forma de ser executado, o projeto deverá assumir o compromisso antes e depois da parceria com a comunidade. O projeto também deve ser compromissado a contribuir com a comunidade da forma que for possível, ajudando outros membros, postando material, etc... Não sendo algo especialmente absoluto. • União Os projetos, independentemente da categoria devem concordar em utilizar um espaço de seu respectivo site para a adição de uma rotação contendo um dos 2 banners da nossa comunidade: XTibia ou OTPanel, Como estamos começando agora o programa de patrocínios, nós iremos eleger 5 patrocínios no total, sendo eles divididos em: 1 Patrocínio GOLD e 4 Patrocínios SILVER. Para proceder, entre crie um tópico nesta área. Este tópico ficará visível ao público, cujo a reação será um fator primordial para a aprovação ou reprovação do patronicio. Neste tópico será necessário haver as seguintes informações: Informações Gerais do projeto: Nome/Integrantes/Estilo/Versão/Público-alvo/ Informações Sólidas: Conteúdos Prontos/Conteúdos sendo desenvolvidos/conteúdos a desenvolver/Objetivos/Metas. O projeto deve além de concordar com os termos deste tópico e apresentar estas informações, apresentar inclusive material pronto do projeto, isto é, Mídia, artigos, opiniões de fãs e quaisquer outros recursos disponíveis.
-
[Encerrado] Ajuda com problema nas porta do mapa do meu poketibia
um tópico no fórum postou Duhisback Tópicos Sem Resposta
Olá pessoa estou aqui a um pedido de ajuda ou socorro quem poder min ajudar ficarei muito agradecido e vou dar rep + estou com problema nas portas de todo o mapa do meu poketibia tipo "quando abro a porta de quest ele entra e sai" ou seja ele entra na porta e volta pra traz na mesma hora já botei varias source pensando que o problema era na source mais não é já encontrei vários tópicos nesse e em outros fórum mais não tem resposta pra isso alguém pode tentar min ajudar? -
Faz falta um novo gerenciador de contas para otserv, não faz? Tomei a iniciativa de iniciar o projeto TibiaAAC e desenvolve-lo conforme a comunidade pede. É uma alternativa de webiste para otserv baseado no antigo modernAAC, porem, exclusivo para servidores globais, uma alternativa ao Gesior. Está apenas com funções básicas e possui varios bugs. essa é uma versão alpha, vou contar com a ajuda de vocês para desenvolver o restante e deixar tudo funcional OBS.: - Foram realizados testes com o TFS 0.4 - Ainda não testei outras distros, pretendo fazer com que funcione com todas. - Não recomendável para uso diário, apenas para testes. Algumas imagens: Download: Mediafire Funcionalidades: - Shop - Pagamento com PagSeguro 100% automatico - Gerenciador de Contas - Pagina de Download REPORTEM BUGS!!!!
-
Olá pessoal do xtibia, tudo bem? sou novo nisso e necessito de ajuda ;/ nem sei se é o lugar certo do topico se nao for por favor já peço desculpas e mova pra area correta. lembrando que nao estou divulgando. já tem um script assim no forum eu so quero aprimorar porém nao tenho conhecimento se puder ajudar sem julgar agradeço. No escript a seguir ele realiza a seguinte função = ara a terra planta rega colhe corta ----- segue o script function onUse(cid, item, frompos, item2, topos, pos) if item.itemid == 2552 and item2.itemid == 103 then doSendMagicEffect(getThingPos(item2.uid), 2) doTransformItem(item2.uid, 806, 1) doPlayerSendTextMessage(cid, 27, ". Você Preparou a Terra, Agora Plante a Semente .") return true elseif item.itemid == 2147 and item2.itemid == 806 then doSendMagicEffect(getThingPos(item2.uid), 45) doTransformItem(item2.uid, 804, 1) doPlayerRemoveItem(cid, 2147, 1) doPlayerSendTextMessage(cid, 27, ". Você Plantou a Semente, Agora Jogue Um Pouco de Água .") return true elseif item.itemid == 7734 and item2.itemid == 804 then doSendMagicEffect(getThingPos(item2.uid), 53) doCreateItem(2785, 1, getThingPos(item2.uid)) doPlayerSendTextMessage(cid, 27, ". A Planta Cresceu, Colha Os Frutos e Depois à Corte Para Plantar Novamente .") return true elseif item.itemid == 2552 and item2.itemid == 2786 then doSendMagicEffect(getThingPos(item2.uid), 34) doTransformItem(item2.uid, 103, 1) doPlayerSendTextMessage(cid, 27, ". Você Cortou a Árvore Sem Frutos, Parabéns .") return true elseif item.itemid == 2552 and item2.itemid == 806 then doSendMagicEffect(getThingPos(item2.uid), 2) doTransformItem(item2.uid, 103, 1) return true elseif item.itemid == 2552 and item2.itemid == 804 then doSendMagicEffect(getThingPos(item2.uid), 2) doTransformItem(item2.uid, 103, 1) return true end end ----- Eu queria o sequinte.... que ele arasse a terra, plantasse o item, porém quando plantar ele teria um tempo determinado pra que a planta cresça. ex:: eu queria usar a semente [id 7732] quando usar a semente e na terra 804 ela iria virar o inicio da planta que é [id 2781] depois do primeiro estágio que é o inicio [id 2781] ela vai para o segundo estágio [id 5471] e quando ela crescer por completo ela fica no estágio [id 5466] por final quando ela ficar pronta no [id 5466] queria a ação de clicar com o botão direito do mouse pra poder colher e na hora que colher viesse um item EXemplo [id 2328] e ai sim poder cortar a planta colhida pra que possa começar tudo novamente. agradeço a compreensão de todos sse puder ajudar fico muito grato !!!!
-
Como Criar Cliente Próprio Para Qual Quer Versão Sem Programa Ou Site Vamos lá pessoal hoje venho trazer um conteúdo bem interessante para todos vocês como criar cliente próprio sem o uso de programas ou de site neste tutorial nos podemos criar cliente para qual quer versão de tíbia então vamos por a mão na massa eu recomendo abrir os arquivos usando o programa Notepad++ mas é o opcional Vamos ter de criar dois IPs para o seu servidor, um com 17 letras e outro com 19 letras Por Exemplo sv1.seuserver.com (17 letras) sv123.seuserver.com (19 letras) Abra o executável do cliente de tíbia que você quer tornar próprio Tibia.exe da seguinte forma clique com o botão direito do mause e clique e abrir como e escolha o programa de edição de texto desejável agora de Ctrl + F e procure os seguintes IPS login01.tibia.com login02.tibia.com login03.tibia.com login04.tibia.com login05.tibia.com E substitua todos pelo seu IP de 17 Letras Agora procure os seguintes IPS tibia01.cipsoft.com tibia02.cipsoft.com tibia03.cipsoft.com tibia04.cipsoft.com tibia05.cipsoft.com Agora substitua todos pelo seu IP 19 Letras vamos para o ultimo passo ainda no executável procure pelo seguinte código 132127743205872284062295099082293384952776326496165507967876361843343953435544496682053323833394351797728954155097012103928360786959821132214473291575712138800495033169914814069637740318278150290733684032524174782740134357629699062987023311132821016569775488792221429527047321331896351555606801473202394175817 Substitua por este 109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413 De Salvar e feche você acabou de estar criando o seu cliente próprio Se Gostou REP >< Creditos Gesior.pl
- 1 resposta
-
- criando cliente proprio
- cliente proprio
- (e 2 mais)
-
[MODERN ACC] Instalação PokeTibia Website
um tópico no fórum postou VictorWEBMaster Tutoriais de Websites
Fala galera XTibiana!!! Vejo que muitas pessoas tem muita dificuldade em 4 simples passos. Fiz uma video aula ensinando a instalar sem nenhum problema o modern acc. Quaisquer duvidas poste neste topico ou abra um na sessao de dúvidas.- 7 respostas
-
- modern acc
- accmaker
- (e 8 mais)
-
Alguém poderia me ajudar resolver o problema do meu ginasio? Meu script esta configurado com as seguintes mensagens Sabrina: Hello G U M B A L L, my name is Sabrina and I'm Saffron's Gym Leader. How may I help you? 12:48 G U M B A L L: battle 12:48 Sabrina: To battle agains't a gym leader you need pokemons. ja tentei falar com ela com o pokémon pra fora mas não funciona,ela não faz nada SE PUDEREM ME AJUDAR DOU REP
-
Bom dia Comunidade! Tive muito sucesso ao buscar mappers para o meu projeto oferecendo a eles uma boa remuneração, agora busco designers. Se você é designer e possui esses requisitos mínimos: 1-Disponibilidade de começo Imediato. 2-Experiencia na Area. Me mande seu contato via mensagem!
- 1 resposta
-
- designer
- freelancer
-
(e 3 mais)
Tags:
-
Um Novo Global Uma nova aventura / TibiaRetro 10.98 a 11 Olá comunidade, venho a meio de várias dificuldades encontradas e e conclusão de que sozinho certeza não vou muito longe, falo isso por experiências passadas, em que tentei administrar e desenvolver servidores sozinhos e não passaram do primeiro BUG Crítico... Bom sem mais demagogia vou apresentar para vocês minhas ideias no intuito de encontrar parceiros e colaboradores nas áreas que não são meu forte, O Servidor Bem vindo ao tibiaretro, o servidor consiste em um Real Map 10.98 mantendo as raízes do Tibia Global com novidades e envolvendo muito RPG e dedicação total de uma equipe que se interessa no que agrada o jogador e que valoriza a raiz do jogo Tibia. O que tornaria tibiaretro um servidor único, inovador e de boa jogabilidade é a quebra de protocolo dos servidores atuais, características que se perderam no tempo, novidades únicas sistemas atrativos e muito, muito Role Play afinal fazemos parte do maior MMORPG já visto. O principal objetivo é unir o que está em alta hoje no mundo dos Otserv e do tíbia global á novidades como sistemas únicos e um mapa mais detalhado e inovador. Queremos mostrar diretamente aos novos players nosso interesse e como nosso servidor irá funcionar. inovações para caça ficar mais divertida, e muito muito PvP Sistemas: que tornem o servidor inovador sem perder a classe do verdadeiro Tibia. PvP: Vocações balanceadas, sistema de guerra atual do Tibia, Private War e Sistemas dentro do servidor que estimulem o PVP seja para aqueles players com Team ou aos solitários que queiram brincar em Arenas únicas jamais vistas em outros servidores. CaveHunt: Caves bem trabalhadas que tragam a emoção de uma boa hunt em grupo Mapa: único rico em detalhes, beleza e RPG sem perder a base do Real Map com todas as cidades e algumas delas totalmente modificada mantendo sua estrutura original mas rica em detalhes e novidades Invasões Únicas: Invasões mais complexas que não envolvam somente a apariçaõ de monstros aleatórios em dias aleatórios além das invasões já existentes no Global; New Task System: Sistema de Task que que envolve addons, permissões para áreas únicas Minha real intenção é trazer de volta a nostalgia do jogo na qual manter o projecto mais próximo do horiginal Vagas SCRIPTER PROGRAMADOR URGENTE TODO SERVIÇO PRESTADO Será PAGO MAPPER PARA Criação NOVAS Áreas Hunt POR FAVOR ENTRAR. CONTATO CMG PELO WHATS (011)94006-6140 ou Skype @Tibiaretro Se nao Deixe Seu Skype que te adicionarei obrigado a todos.