Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 09/11/11 em %

  1. GuuhTorres

    Guuh Torres Vs 4.0

    Guuh Torres Vs 4.0 *Pessoal,me desculpem pela demora da atualização,pois tinha muitos bugs nesta base,e em pedidos de vários xtibianos,arrumei o "Pokemon Squadium" do brun123...Este server era um bom server,mais tinha muitos bugs,irei listar os que eu arrumei,ou acrescentei: -Catch -Goback -Portrait -Pokedex -Order -Talkactions -!lg para mudar a linguagem (English-Português) -Status sistema -Novos pokemons (Johto-Shinys) -Coloquei mais moves (Johto) -Npc Name (Que coloca um apelido ao pokemon) no ultimo andar do CP -Novo Mapa do Betinhowz666 -Novas quests -Novas Spawns (Eu não sei fazer muito bem,mais dá para usar) -PVP ZONE -Efeito ao upar level -Client na pasta (IP : 127.0.0.1) -Senha do GOD : guuh/torres DOWNLOAD do server: -Guuh Torres vs 4.0 Créditos : -GuuhTorres 25% -Brun123 40% (Caso você ler este tópico,peço que adicione ght-2-@hotmail.com) -Betinhowz666 15% -Xtibia 5% -Victorkta 5% -Ciffer 5% -Italo 5% QUE VENHAM OS REPS :button_ok: ------------------------------------------------------------- PRÓXIMA ATUALIZAÇÃO!!! Na próxima atualização irei fazer sem os BUGS,que vocês falarem...
    2 pontos
  2. Esta é uma versão do [GesiorAcc] ,um site completo e bem amplo ,com várias modificações e algumas novas funções,uma excelente opção para quem procura algo diferente ou pra quem está começando um servidor. O que há de novo? * Novos Estilos (Backgrounds,Buttons,Headers e Artworks.) * Pagina de download com Tibia 8.60, Ip Changer, HyperCam e Team Speaker. * Guild War System Customized (Scripts pegar na aba Tutoriais de WebSite) * Top 100 Killer do Servidor * Advanced Character Page (Traduzida ,bem formal e "Única".) * Who is Online? (Versão 0.3.8 modificada para adaptações em todos os servidores) * Trade System (Explicações no site e em PT) * Novo Support List * Addons Page (Com fotos,Premium Required,Male of Female e Itens necessários.) * Pagina Server Info (Modificada,bem simples e no jeito de colocar as informações do seu servidor.) * Novo Shop Offer com novo estilo (Preto e Amarelo) e as abas | Dias Vip | Itens a Venda | Outros | ! * Pagina Benefícios totalmente reformulada e muito simples para modificar. * Novo ! Pagina de Buypoints auto-explicativa...e semi-automática ! >> Leia Abaixo sobre << A pagina consiste em: O player escreve o nome do char e escolhe a quantidade de pontos que deseja comprar,clica em finalizar e é redirecionado para a página do pagseguro para terminar o pagamento. No pagseguro será mostrado o nome do char e a quantidade de pontos,assim,quando o pagamento for confirmado voce já saberá para quem os pontos devem ser entregues,não precisando mais de Confirmação de Pagamentos. Abaixo,veja algumas fotos das principais modificações: New Addons Page Pagina de Benefícios Pagina de Characters Customizada Pagina de Downloads Novo Estilo do Shop Offer Trade System Obs: 1° O site ja vai com alguns sistemas que necessitam das tabelas na sua database,como o War System,Trade System e o Top 100 Killer, então vou posta-las abaixo para que adicionem no SQL.(Quem não quiser utilizar os sistemas é so apagar as paginas ditas acima do layout.) Link das Tabelas 2° Em Htdocs/Config/Config.php , vá lá em baixo e coloque seu email pagseguro para o sistema de compra funcionar. 3° A página Houses não está a vista...mas está configurada para funcionar,quem quiser é so adiciona-la no Layout. *É isso ,por favor não postem erros de tabelas aqui,ja foi explicado acima que pode dar error por causa dos sistemas que estão nosite ,basta voce adicionar as tables que postei no download acima ou então apagar as paginas do layout ou do index.php ! Vlw Galera ! DOWNLOAD DO SITE SCAN DO SITE
    1 ponto
  3. lachost12

    [Global] Original Sem Bugs!

    Cidades! Quests! Raids! Informações do Server: War System (Escudos) Distro DEV_0.4 Spells 8.6 100% Npc's Igual RL Sem bugs (dinheiro, entre outros). Server pronto para por Online. Outros: Download: Créditos:
    1 ponto
  4. soldoran

    [8.60]Solds War [V1.0]Change Map

    Solds War [8.60] Change Map [V1.0] Exclusivo xtibia.com Features 1.0 + Level inicial 130 + Vocações balanceadas + Novas Talkactions + Distro limpo e sem erros + Não há debugs ao logar + Npcs espalhados pelas cidades + Novo Sistema de Look Frags + Skills iniciais de acordo com o level + Sistema de Change Map [mapa sera mudado a cada 20 minutos] + 6 Cidades Cidades + Venore + Edron + Thais + Desert + Carlin + Fibula Imagem Solds War [V1.0] Download [8.60] Solds War [V1.0] Scan [8.60] Solds War [V1.0] Créditos A min pela criação de todo o ot Alissow pelo distro Vodkart pelo script Change map e a todos que são donos de seus respectivos Scripts
    1 ponto
  5. Jeffee90

    Uma Quest Legal Demaiis

    Uma QuesT Meio Diferente [ DESERT QUEST ] NAO SEI SE JA EXISTE UMA ASSIM AQUI NO XTIBIA [^.^] Vou Explicar Os Detalhes No Final. Crie Um Arquivo Na Pasta Actions Chamado [ desertquest.lua ] e Coloque Isso Dentro. <--------> Depois Va Em Action.Xml e Adicione a Seguinte Tag. Editem De Acordo Com Sua Vontade .. Meu Primeiro Topico Desculpe Se Poste Em Lgar Errado ou Qualquer Coisa .. GOSTOU ? REP+ :button_ok: Valeus ..
    1 ponto
  6. Vodkart

    [Mod] Map Change 2.0

    é um script que muda de mapa a cada X horas(ou minutos) Creditos: Vodkart e Demonbholder que me ajudo *-* na pasta mods crie um arquivo.xml e renomeie para ChangeMap.xml <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="ChangeMap" version="2.0" author="Vodkart" contact="none.com" enabled="yes"> <config name="map_func"><![CDATA[ info = { [0] = 1, [1] = 3, [2] = 4 } storage = 789520 ]]></config> <event type="login" name="Check Map" event="script"><![CDATA[ domodlib('map_func') function onLogin(cid) if getGlobalStorageValue(storage) == -1 then setGlobalStorageValue(storage, 0) end doTeleportThing(cid, getTownTemplePosition(info[getGlobalStorageValue(storage)])) return true end ]]></event> <globalevent name="ChangeMap" interval="3600" event="script"><![CDATA[ domodlib('map_func') function onThink(interval, lastExecution) doBroadcastMessage('The map will be changed again in 1 hour.') setGlobalStorageValue(storage, getGlobalStorageValue(storage) < #info and getGlobalStorageValue(storage)+1 or 0) for _, pid in ipairs(getPlayersOnline()) do doPlayerSetTown(pid, info[getGlobalStorageValue(storage)]) doRemoveConditions(pid, true) doCreatureAddHealth(pid, getCreatureMaxHealth(pid)) doCreatureAddMana(pid, getCreatureMaxMana(pid)) doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) end return true end]]></globalevent> </mod> Explicação: No info é o id das town para adicionar mais mapas é só colocar uma virgula no último e adicionar o novo town_id [3] = 5, [4] = ?? e o tempo você muda nessa parte interval="3600" no caso está para 1 hora
    1 ponto
  7. demonx

    Iniciando Sprites

    Pistola Caixa de Munição Faca Metralhadora Escopeta Cartuchos Minhas primeiras sprites queria opniões da galera.
    1 ponto
  8. meubk

    [Action] Pedra Invocação De Player

    Invocação de Player Sabe quando você e seu amigo está caçando em um lugar muito longe, e você morre, e o espertinho de seu amigo fica vivo, não dá aquela raiva, de ter que voltar todo caminho, e ainda sozinho ? Pensando nisso, foi que eu tive uma ideia de uma Pedra, aonde seu amigo pode usar ela no seu corpo se você ainda estiver tiver online, e aceitar seu convite, você é teleportado para cima do corpo. Observe a Imagem: Bom, agora que já está explicado a ideia vamos ao script: Crie um arquivo com o nome de invoc.lua na pasta actions/scripts e cole o seguinte código: local configs = { minLvL = 0, -- level minimo necessário[ 0 para não precisar ] mana = 0, -- mana necessária [ 0 para não precisar ] magicLvL = 0, -- magic level necessário [ 0 para não precisar ] vocs = {0, 1, 2, 3, 4, 5, 6, 7, 8}, -- vocações que podem usar premium = false, -- precisa de premium [ true ou false ] removeCorpse = true, -- remover o corpo depois de invocar [ true or false ] removeStone = true, -- remover a pedra após usar [ true or false ] invite = true -- o dono do corpo precisa aceitar [ true or false ] } function SendMessageInvoc(cid, pid) if getPlayerStorageValue(pid, 22254) ~= 1 then return true end if not isCreature(cid) or not isCreature(pid) then return true end doPlayerSendTextMessage(pid, 27, "O Player "..getCreatureName(cid).." quer te invocar digite /invoc aceitar ou /invoc rejeitar.") addEvent(SendMessageInvoc, 10000, cid, pid) end function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) < configs.minLvL then return doPlayerSendCancel(cid, "Você precisa de level "..configs.minLvL.." para invocar alguem.") elseif getPlayerMana(cid) < configs.mana then return doPlayerSendCancel(cid, "Você precisa de "..configs.mana.." de mana para invocar alguem.") elseif getPlayerMagLevel(cid) < configs.magicLvL then return doPlayerSendCancel(cid, "Você precisa de magic level "..configs.magicLvL.." para invocar alguem.") elseif not isInArray(configs.vocs, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Sua Vocação não é permitido invocar alguem.") elseif not isPremium(cid) and configs.premium then return doPlayerSendCancel(cid, "Você precisa de premium account para invocar alguem.") end if isCorpse(item2.uid) then if not getItemAttribute(item2.uid, "description") then return doPlayerSendCancel(cid, "Este não é corpo de um player.") end local name = (getItemAttribute(item2.uid, "description")):match("You recognize (.-)%.") local pid = getPlayerByName(name) if pid then if not configs.invite then doTeleportThing(pid, topos) doSendMagicEffect(topos, 10) doSendAnimatedText(topos, "Invoked", math.random(1, 250)) doPlayerSendTextMessage(cid, 27, "O Player "..name.." foi invocado com sucesso.") doPlayerSendTextMessage(pid, 27, "O Player "..getCreatureName(cid).." te invocou.") if configs.removeCorpse then doRemoveItem(item2.uid) end else if getPlayerStorageValue(pid, 22254) ~= 1 then setPlayerStorageValue(pid, 22254, 1) setPlayerStorageValue(pid, 22255, topos.x) setPlayerStorageValue(pid, 22256, topos.y) setPlayerStorageValue(pid, 22257, topos.z) if configs.removeCorpse then setPlayerStorageValue(pid, 22258, "yes") end setPlayerStorageValue(pid, 22259, cid) SendMessageInvoc(cid, pid) doPlayerSendTextMessage(cid, 27, "Você envio convite para "..name.." para ser invocado.") else return doPlayerSendCancel(cid, "Este corpo já foi invocado por alguem.") end end if configs.removeStone then doRemoveItem(item.uid, 1) end return doCreatureAddMana(cid, - configs.mana) else return doPlayerSendTextMessage(cid, 27, "O Player não esta online.") end else return doPlayerSendCancel(cid, "Isto não é um corpo.") end end Depois na pasta actions procure pelo arquivo actions.xml e adicione a tag: <action itemid="8303" event="script" value="invoc.lua"/> Agora entre na pasta talkactions/scripts e crie outro arquivo com o nome de invoc.lua novamente e cole o código: function onSay(cid, words, param) if getPlayerStorageValue(cid, 22254) == 1 then if param == "aceitar" then if not isPlayer(getPlayerStorageValue(cid, 22259)) then setPlayerStorageValue(cid, 22254, 0) doPlayerSendTextMessage(cid, 27, "O Player que te invocou não está mais online por isso foi cancelado o pedido.") end local pos = {x=getPlayerStorageValue(cid, 22255), y=getPlayerStorageValue(cid, 22256), z=getPlayerStorageValue(cid, 22257)} doTeleportThing(cid, pos) doSendMagicEffect(pos, 10) doSendAnimatedText(pos, "Invoked", math.random(1, 250)) if getPlayerStorageValue(cid, 22258) == "yes" then for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if isCorpse(tile.uid) then if (getItemAttribute(tile.uid, "description")):match("You recognize (.-)%.") == getCreatureName(cid) then doRemoveItem(tile.uid) break end end end end doPlayerSendTextMessage(cid, 27, "O Player "..getCreatureName(getPlayerStorageValue(cid, 22259)).." te invocou.") doPlayerSendTextMessage(getPlayerStorageValue(cid, 22259), 27, getCreatureName(cid).." foi invocado com sucesso.") setPlayerStorageValue(cid, 22254, 0) elseif param == "rejeitar" then if not isPlayer(getPlayerStorageValue(cid, 22259)) then setPlayerStorageValue(cid, 22254, 0) doPlayerSendTextMessage(cid, 27, "O Player que te invocou não está mais online por isso foi cancelado o pedido.") end doPlayerSendTextMessage(cid, 27, "Você rejeitou o pedido de "..getCreatureName(getPlayerStorageValue(cid, 22259))..".") doPlayerSendTextMessage(getPlayerStorageValue(cid, 22259), 27, getCreatureName(cid).." rejeitou seu pedido de invocação.") setPlayerStorageValue(cid, 22254, 0) end else doPlayerSendTextMessage(cid, 27, "Você não tem convites.") end return true end Depois na pasta talkactions procure o arquivo talkactions.xml e adicione a seguinte tag: <talkaction words="/invoc" hide="yes" event="script" value="invoc.lua"/> Segue as configurações no script, se vai remover o corpo, se vai remover a pedra, o level, magic level, premium, ou até mesmo se o player que vai ser invocado precisar aceitar algum convite, tudo pode ser configurado no script nesta parte: local configs = { minLvL = 0, -- level minimo necessário[ 0 para não precisar ] mana = 0, -- mana necessária [ 0 para não precisar ] magicLvL = 0, -- magic level necessário [ 0 para não precisar ] vocs = {0, 1, 2, 3, 4, 5, 6, 7, 8}, -- vocações que podem usar premium = false, -- precisa de premium [ true ou false ] removeCorpse = true, -- remover o corpo depois de invocar [ true or false ] removeStone = true, -- remover a pedra após usar [ true or false ] invite = true -- o dono do corpo precisa aceitar [ true or false ] } Caso estiver usando o sistema de convite os comandos são: /invoc aceitar /invoc rejeitar Bom eu deixei configurado com aquela pedra rosa como na foto, fica ao seu critério deixar ela ou escolher outra só mudar na tag do xml: action itemid="8303" Obrigado a todos, e se gostaram comente Tchau ;*
    1 ponto
  9. kevonus

    Mostrar\ocultar Equipes, Quest E Skill

    Boa tarde. è o seguinte, queria que o player quando loga-se sua conta, aparece uma opção de monstrar\ocultar seus equipes,quests e ekills. desde já grato.
    1 ponto
  10. AdmZenhow

    Simple War 8.60 Evolution Version

    Novidades Meu baiak que já estou editando a algums dias logo logo será lançado, ele está totalmente mudado 90% do mapa pelomenos creio eu que está mais mudado que o do bryaan pelo que vi! assim que postalo aqui no xtibia "que esta sendo feito propriamente para o xtibia" postarei o link aqui no forum! Obrigado a Todos! :XTibia_smile:
    1 ponto
  11. Fernandinand

    Ads # 68

    Não é aqui que se vota, se vota aqui. E sim, já acabou período de postagem.
    1 ponto
  12. BrunooAngel

    [Poke] Pack De Itens [Pxg]

    Olá galera, a pedido do meu colega Guuh Torres escolhi umas sprites do PokexGames [PxG] o novo server da svke, axei bastante, o pacotao contém 31 itens OBS: Todos os itens estão em formato .IDC, apenas importe para as sprites do seu cliente com o DAT EDITOR O Que Contém?: Downloads: Pacotão: Clique Aqui! [RE-UPADO, Adicionei Novos Itens :smile_positivo:] Scan: Clique Aqui! [RE-SCANEADO :smile_positivo:] Créditos: Equipe PokexGames [PXG] Gostou, Te Ajudei?? REP+ :button_ok:
    1 ponto
  13. Mulizeu

    Invocar "pet" Por "book"

    Tente isso! function onUse(cid, item, frompos, item2, topos) position = getPlayerPosition(cid) if getPlayerLevel(cid) >= x then ---level que o player precisa doPlayerRemoveItem(cid, ID ITEM,1) ---id do item usado para summonar doConvinceCreature(cid, doCreateMonster("Hydra", position, false)) ----nome da criature Exemplo (hydra) doSendMagicEffect(getPlayerPosition(cid),16) doCreatureSay(cid,"Saia Hydra!!!", TALKTYPE_ORANGE_1) ---- MSG doPlayerSendCancel(cid,"Você precisa ser nivel x ou mais para invocar um hydra") ---MSG end return TRUE end
    1 ponto
  14. LadyElegance

    Simple War 8.60 Evolution Version

    Topico e Server Muito Bom, +rep! :positive:
    1 ponto
  15. CoLoRaDo

    Website Token

    faz assim entre no sua localhost/phpmyadmin e logue e vá até a sua database depois va na aba accounts e clique no lapizinho pra editar tua account que tu usa teu adm no ot e procure por page_acess e deve estar 0 entao coloque 3 e salve... depois vá no seu site do ot e logue que la na aba shop vai aparecer o shop admin!
    1 ponto
  16. 1 ponto
  17. pokemonbrasil

    Cargos Para Aquipe Pokemon Brasil

    Ola, Bom hoje eu vim aqui trazer um projeto de Poketibia, então estou precisando de uma formação de uma equipe de (programadores, scripter, mapper, webdesigner, spriter, etc..) vou fazer uma lista do que tem no servidor e do que falta nele. Falta: Gender system para pokemon [50%] Aparecer o level do pokemon ao lado do nome[0%] TV/CAN [0%] Mudar nome do pokemon [0%] Pronto: Pokemon com level + evolução por lvl [100%] Order[100%] Catch [100%] Ditto [100%] Control Mind [100%] Surf [100%] Fly [100%] Ride [100%] Dig [100%] Cut [100%] Rock Smash [100%] Lanterna [100%] Bike [100%] Light [100%] E Outros... Bom deixe sua mensagen com os seguintes dados Nome: (seu nome) Idade: (sua Idade) MSN: (Seu msn) Cargo: (o cargo que você deseja trabalhar) Tempo: (aqui você vai colocar a quanto tempo você meche com o cargo citado a cima) Ola, Bom hoje eu vim aqui trazer um projeto de Poketibia, então estou precisando de uma formação de uma equipe de (programadores, scripter, mapper, webdesigner, spriter, etc..) vou fazer uma lista do que tem no servidor e do que falta nele. Falta: Gender system para pokemon [50%] Aparecer o level do pokemon ao lado do nome[0%] TV/CAN [0%] Mudar nome do pokemon [0%] Pronto: Pokemon com level + evolução por lvl [100%] Order[100%] Catch [100%] Ditto [100%] Control Mind [100%] Surf [100%] Fly [100%] Ride [100%] Dig [100%] Cut [100%] Rock Smash [100%] Lanterna [100%] Bike [100%] Light [100%] E Outros... Bom deixe sua mensagen com os seguintes dados Nome: (seu nome) Idade: (sua Idade) MSN: (Seu msn) Cargo: (o cargo que você deseja trabalhar) Tempo: (aqui você vai colocar a quanto tempo você meche com o cargo citado a cima) (Cargos: Scripter, Mapper, WebDesigner, Programador, spriter) ou entre em contato Gustavo_badboy13@hotmail.com By Equipe Pokemon Brasil
    1 ponto
  18. MatheusGlad

    Talkaction De Rank Inovadora!

    Bem, a talkaction é a mesma coisa que o !rank que conhecemos, porem voce pode adicionar outros ranks e ela atualiza exatamente na hora que alguem upa. Exemplos de novos ranks: Rank para ver quem morreu mais. Rank para level de players vip. Rank para ver quem matou mais monstros no ot. E varios outros... Bem se alguem quizer implementar um novo rank, peça no topico e mande PM para mim (Nao adianta so pedir no topico porque eu nao irei lembrar de entrar nele). O script está em mod, bem mais facil de instalar. Va na pasta mods do seu ot e adicione o arquivo: RankSystem em formato XML e adicione isso: <?xml version="1.0" encoding="UTF-8"?> <mod name="RankSystem" enabled="yes" author="MatheusMkalo" forum="XTibia.com"> <config name="RankLib"><![CDATA[ ranks = { ["fist"] = 74666, ["club"] = 74667, ["sword"] = 74668, ["axe"] = 74669, ["distance"] = 74670, ["shielding"] = 74671, ["fishing"] = 74672, ["magic"] = 74673, ["level"] = 74674, ["monsters"] = 74675, ["guilds"] = 74676 } function havePlayerInRank(rank, playername) -- Checa se o player ja esta no rank. local rankstr = getGlobalStorageValue(ranks[rank]) local players = string.explode(rankstr, "; ") for i,x in pairs(players) do local a, b = string.find(x, "%[") if b ~= nil then if x:sub(1, b-1):lower() == playername:lower() then return TRUE end end end end function getPlayerLevelInRank(rank, playername) -- Pega o level de algum player no rank (Importante para novos tipos de rank.) local rankstr = getGlobalStorageValue(ranks[rank]) local players = string.explode(rankstr, "; ") for i,x in pairs(players) do local a, b = string.find(x, "%[") local t = string.match(x, "%[(.+)]") if b ~= nil and x:sub(1, b-1):lower() == playername:lower() then return t end end return 0 end function addRankPlayer(rank, playername, rankvalue) -- Adiciona um player ao rank ou muda o valor dele no rank. if not havePlayerInRank(rank, playername) then setGlobalStorageValue(ranks[rank], getGlobalStorageValue(ranks[rank]) .. (playername .. "[" .. rankvalue .. "]; ")) else local a,b = string.find(getGlobalStorageValue(ranks[rank]), playername) local c,d = string.find(getGlobalStorageValue(ranks[rank]), playername .. "%[%d+]") setGlobalStorageValue(ranks[rank], getGlobalStorageValue(ranks[rank]):sub(1, b+1) .. rankvalue .. "]; " .. getGlobalStorageValue(ranks[rank]):sub(d+2)) end end function tablelen(tab) -- By MatheusMkalo local result = 0 for i,x in pairs(tab) do result = result+1 end return result end function getRank(rank, maxplayers) -- Pega a lista de players com maior level do rank local rankstr = getGlobalStorageValue(ranks[rank]) local playerstatus = string.explode(rankstr, "; ") local tab = {} local rankTab = {} local rankStr = "Highscore for " .. rank .. "\n\n" .. (isInArray({"monsters", "guilds"}, rank) and "Number of Kills" or "Rank Level") .. " - " .. (rank == "guilds" and "Guild Name" or "Player Name") .. "\n" table.remove(playerstatus, #playerstatus) for i,x in pairs(playerstatus) do local a, b = string.find(x, "%[") local t = string.match(x, "%[(.+)]") tab[x:sub(1, b-1)] = tonumber(t) end local lastname = "" local lastvalue = 0 for i = 1, maxplayers do if tablelen(tab) <= 0 then break end for s,x in pairs(tab) do if x > lastvalue then lastvalue = x lastname = s end end table.insert(rankTab, lastvalue .. " - " .. lastname) tab[lastname] = nil lastname = "" lastvalue = 0 end for i,x in ipairs(rankTab) do rankStr = rankStr .. (i .. ". ") .. x .. "\n" end return rankStr end ]]></config> <talkaction words="!rank;/rank" event="script"><![CDATA[ domodlib('RankLib') if ranks[param:lower()] then setGlobalStorageValue(ranks[param:lower()], getGlobalStorageValue(ranks[param:lower()]) == -1 and "" or getGlobalStorageValue(ranks[param:lower()])) doShowTextDialog(cid, 6500, getRank(param:lower(), 10)) else return doPlayerSendCancel(cid, "Esse rank nao existe ou voce nao digitou corretamente.") end return TRUE ]]></talkaction> <creaturescript type="advance" name="RankSystem" event="script"><![CDATA[ domodlib('RankLib') if skill == 0 then setGlobalStorageValue(74666, getGlobalStorageValue(74666) == -1 and "" or getGlobalStorageValue(74666)) addRankPlayer("fist", getCreatureName(cid), newLevel) elseif skill == 1 then setGlobalStorageValue(74667, getGlobalStorageValue(74667) == -1 and "" or getGlobalStorageValue(74667)) addRankPlayer("club", getCreatureName(cid), newLevel) elseif skill == 2 then setGlobalStorageValue(74668, getGlobalStorageValue(74668) == -1 and "" or getGlobalStorageValue(74668)) addRankPlayer("sword", getCreatureName(cid), newLevel) elseif skill == 3 then setGlobalStorageValue(74669, getGlobalStorageValue(74669) == -1 and "" or getGlobalStorageValue(74669)) addRankPlayer("axe", getCreatureName(cid), newLevel) elseif skill == 4 then setGlobalStorageValue(74670, getGlobalStorageValue(74670) == -1 and "" or getGlobalStorageValue(74670)) addRankPlayer("distance", getCreatureName(cid), newLevel) elseif skill == 5 then setGlobalStorageValue(74671, getGlobalStorageValue(74671) == -1 and "" or getGlobalStorageValue(74671)) addRankPlayer("shielding", getCreatureName(cid), newLevel) elseif skill == 6 then setGlobalStorageValue(74672, getGlobalStorageValue(74672) == -1 and "" or getGlobalStorageValue(74672)) addRankPlayer("fishing", getCreatureName(cid), newLevel) elseif skill == 7 then setGlobalStorageValue(74673, getGlobalStorageValue(74673) == -1 and "" or getGlobalStorageValue(74673)) addRankPlayer("magic", getCreatureName(cid), newLevel) elseif skill == 8 then setGlobalStorageValue(74674, getGlobalStorageValue(74674) == -1 and "" or getGlobalStorageValue(74674)) addRankPlayer("level", getCreatureName(cid), newLevel) end return TRUE ]]></creaturescript> <creaturescript type="kill" name="KillRank" event="script"><![CDATA[ domodlib('RankLib') setGlobalStorageValue(74675, getGlobalStorageValue(74675) == -1 and "" or getGlobalStorageValue(74675)) if isMonster(target) then addRankPlayer("monsters", getCreatureName(cid), getPlayerLevelInRank("monsters", getCreatureName(cid))+1) end if isPlayer(target) then if getPlayerGuildId(cid) > 0 then if lastHit then if getPlayerGuildId(target) <= 0 or getPlayerGuildId(target) ~= getPlayerGuildId(cid) then addRankPlayer("guilds", getPlayerGuildName(cid), getPlayerLevelInRank("guilds", getPlayerGuildName(cid))+1) end end end end return TRUE ]]></creaturescript> <creaturescript type="login" name="RankEvents" event="script"><![CDATA[ registerCreatureEvent(cid, "KillRank") registerCreatureEvent(cid, "RankSystem") return TRUE ]]></creaturescript> </mod> Alem dos ranks normais, eu inclui um rank para os maiores matadores de monstros, para voces poderem ter uma ideia de como incluir novos ranks. PARA QUE O SCRIPT FUNCIONE RETIRE ESSA LINHA DO TALKACTIONS.XML: <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> OBS: Para usar o rank novo use /rank ou !rank e o nome dos skills que se encontram nessa table: ranks = { ["fist"] = 74666, ["club"] = 74667, ["sword"] = 74668, ["axe"] = 74669, ["distance"] = 74670, ["shielding"] = 74671, ["fishing"] = 74672, ["magic"] = 74673, ["level"] = 74674, ["monsters"] = 74675 } No caso do novo rank seria /rank monsters. Para mudar o numero de players mostrados no rank mude essa linha no mod: doShowTextDialog(cid, 2160, getRank(param:lower(), 10)) 10 eh o numero de players que vai mostrar. Adicionado /rank guilds, que mostra as guilds que mais mataram no ot. Agora com aparencia e frases exatamente iguais ao /rank padrao. È Isso ai comentem!
    1 ponto
  19. Fala ae galerinha XTibiana! Eu sei que muitas pessoas não conseguem compilar as sources do The Forgotten Server, então resolvi postar esse tutorial para acabar com as suas dúvidas! WINDOWS 1° passo: Faça o download das sources do The Forgotten Server. Crie uma pasta em seu Desktop e coloque as sources dentro. 2° passo: Faça o Download do Dev-C++ upload by Talaturen incluindo las libraries 5.1 e Boost. Extraia no C:\ 3° passo: No arquivo "Forgotten Sources", crie uma pasta chamada "Projeto", abra seu Dev-C++ e vá em File > New > Project > Select Console Application, nomeie e salve em Forgotten Sources/Projeto. 4° passo: Depois de salvar o projeto, faça a mesma coisa que a imagem mostra: 5° passo: Depois de adicionar as Sources, pressione ALT+P. Na janela aberta irá aparecer: 6° passo: Agora que você adicionou as sources, remove os seguintes arquivos: databaseodbc.cpp databaseodbc.h databasepgsql.cpp databasepgsql.h Agora pressione ALT+P, na janela irá aparecer novamente, vá em "Parameters" e faça o seguinte: Adicione o seguinte se você fez o download das sources do TRUNK do TFS Linkers: -O1 -lboost_system -lgmp -llua5.1 -lmysql -lboost_regex -lsqlite3 -lwsock32 -lxml2 -lws2_32 -s C++ Compiler: -D__USE_MYSQL__ -D__USE_SQLITE__ -D__ENABLE_SERVER_DIAGNOSTIC__ Se você compilou as sources da pasta TAGS, adicione o seguinte Linkers -O1 -lboost_system -lgmp -lluasql_mysql -lluasql_sqlite -llua5.1 -lmysql -lboost_regex -lsqlite3 -lwsock32 -lxml2 -lmysql -lws2_32 -s C++ Compiler -D__USE_MYSQL__ -D__USE_SQLITE__ Para os dois exemplos acima (opcional) Se você quiser o console do GUI adicione isso: -D__CONSOLE__ Então clique em "OK" (OBS: Tenha certeza que você adicionou tudo no lugar, os LINKERS e os C++ COMPILERS de cada pasta depois que você pressionou "OK") 7° passo: Clique no botão de compilar e esteja preparado! Mova até o diretório que você salvou seu projeto e substitua seu "server.exe" para o mais novo. (Aviso: Seu Server tem que ser o The Forgotten Server senão não irá funcionar) É isso ae galera, depois irei postar outro tutorial explicando como compilar para Linux Debian & Ubuntu Abraços!!!
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...