Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 05/21/12 em todas áreas
-
FAZENDO SEU OT, BOTANDO ONLINE, LIBERANDO PORTAS, BOTANDO SITE ONLINE, CRIANDO IP FIXO e mais umas coisas Então pessoal, nesse SUPER HIPER MEGA DOUBLE SUPER-SONICO BLASTER 3D JACK BAUER CHUCK NORRIS tutorial, vou ensinar a vocês a como criar um OTserv do zero! (Inclusive SITE!) Primeiro, você precisa baixar esses arquivos aê: OT - Link da seção com downloads: http://www.xtibia.com/forum/forum/596-downloads-de-otserv/ Appserv - Link do download: http://www.appservnetwork.com/ SCRIPTS DO SEU SITE - Link da seção de downloads: http://www.xtibia.com/forum/forum/581-downloads-de-websites/ Só isso : ) Então vamos lá. 1º CRIANDO SEU SERVER Primeiro, extraia o conteúdo do seu OTserver em alguma pasta! Você verá que tem um arquivo com esse nome: config.lua Clique com o botão direito nele, vá em abrir com: Bloco de notas. >>>>> Dentro dele, tem várias coisas.... Só vamos configurar as seguintes coisas: -- server ip (the ip that server listens on) ip = "AQUI VOCÊ POE O SEU IP" -- monster lootrating (how much faster you get items from monsters) lootmul = AQUI VOCÊ POE A PORTECENTAGEM DE CHANCE DE LOOT QUE TEM exemplo: 20 (o máximo é 100!) -- skill multiplier (another multiplier in data/vocations.xml)[/font][/font] skillmul = AQUI TU POE QUANTAS VESES VAI MULTIPLICAR O SKILL exemplo: 6 -- manaspent multiplier (another multiplier in data/vocations.xml) manamul = AQUI TU POE QUANTAS VESES VAI MULTIPLICAR O MAGIC LEVEL exemplo: 5 Bom, alí onde você poe o seu IP, você pega o seu ip nesse site: www.whatip.com Ve seu ip e cola lá. Quando terminar é só clicar em arquivo, salvar e fechar. Pronto, lembrando que toda vez que você desligar e ligar sua internet, o ip muda. Tem que editar lá também. 2º LIBERANDO AS PORTAS 7171 Como iremos fazer isso? Fácil! primeiro você tem que saber de uma coisa, se sua internet for a RÁDIO, você não poderá ter um OTserv. APENAS VIA HAMACHI! Link ensinando a fazer server via hamachi: http://www.xtibia.com/forum/index.php?showtopic=27981 Ok, caso não seja a rádio, vamos lá. Sua internet precisa se conectar por um discador ou já vem conectado direto quando liga?! Se precisar de discador, pra liberar as portas basta fazer isso: Primeiro, Vamos ao painel de controle. Iniciar> Painel de Controle. Clique em FireWall do Windows. Clique na aba Exceções E clique em Adicionar porta. Configure da seguinte maneira. Nome: Open Tibia Porta: 7171 Protocolo: TCP IMAGEM: Dê OK. Pronto, liberou as portas! Mas se é só ligar e já conecta direto sem discador, você tem que saber o modelo de seu modem. Ai você vem nesse site: http://portforward.com/routers.htm Acha o modelo do seu modem, clica. Dai na próxima tela, procure por TIBIA. Ai é só você seguir os passos lá e pronto! Mas não se esqueça de fazer aquilo do FireWall que eu disse ali em cima eim! Pronto! 3º PONDO O OT ONLINE Como faremos isso? Basta entrar na pasta do OT e abrir o arquivo EXECUTÁVEL que tem lá! Não é o Restarter nem o Remote Control! Pronto. Seu server está online! Mas você não tá consseguindo entrar né? É porque você entra pelo ip que você pega desse jeito: Vá ao Iniciar Clique em Executar Digite: cmd Depois digite: ipconfig Ai você pega o Endereço de IP e cola no IPCHANGER e entra! Mas só você que entra por esse IP! Os outros entram por aquele do www.whatip.com 4º AUMENTANDO A EXP Mas a EXP ainda está baixa! Como vamos arrumar? Fácil! Primeiro, vamos até a pasta do OT, Vá na pasta Data Depois, abra o arquivo stages.xml Estará mais ou menos assim: <?xml version="1.0"?> <stages> <stage minlevel="1" maxlevel="999999" multiplier="35"></stage> </stages> Vou explicar: stage minlevel="1" Isso, é o level que a exp começa. No caso, isso é usado para se quiser experiências variadas. No meu caso, eu puis como level mínimo 1. E onde está maxlevel="999999" Isso é o level que a exp desejada chega. Tipo, Quando chegar no level 500, a exp para de ser tal! Entende? Essa parte é a mais importante: multiplier="35" Essa é a EXP! Se você por ali, 50, vai ficar 50 veses mais rápido de upar do que no Tibia normal! Pronto! A exp tá configurada.. Seu server tá online.. quer mais o que?!?! Arrumar a regeneração de mana e hp? Ok né, vamos lá então! 5º ARRUMANDO A REGENERAÇÃO DE MANA/HP Abra a pasta de seu OT, Depois vá na pasta Data! Agora, abra o arquivo Vocations.xml Ai lá tem todas as vocações. Ai cada uma é mais ou menos assim: <vocation id="1" name="Sorcerer" description="a sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="10" gainmanaticks="3" gainmanaamount="50" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120"> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> Então, Onde está esse: gainmanaamount="50" É a quantidade de Mana que ganha. E onde está esse: gainmanaticks="3" É o tempo que irá demorar para subir a mana, Ai no caso está 3 segundos! -- E para mudar a regeneração de HP, Onde está esse: gainhpamount="10" É a quantidade de HP que ganha. E onde está esse: gainhpticks="6" É o tempo que vai demorar para subir o HP! Então é isso! Edite todas as vocações Salve, resete o Servidor e pronto! Mas po, um server sem GM não dá né?! Vamos aprender a criar um char GM! 6º CRIANDO UM CHAR GM/GOD Primeiro, Vamos ao arquivo do character que irá virar gm. Geralmente, está na pasta Players. Está mais ou menos assim: (cortado algumas partes do script para ficar menos) <?xml version="1.0" encoding="UTF-8"?> <player name=" XTibia" account="58585858" sex="1" lookdir="2" exp="4200" voc="3" level="99999999" access="0" cap="380" maglevel="256" Para mudar para GM/GOD Basta mudar o nome e o Acces! Vamos mudar o Acces para 5 (GOD) E o nome para GM XTibia <?xml version="1.0" encoding="UTF-8"?> <player name="GM XTibia" account="58585858" sex="1" lookdir="2" exp="4200" voc="3" level="99999999" access="5" cap="380" maglevel="256" Os acessos são os seguintes: 5- GOD 4- Senior GM 3- GM 2- Sênior Tutor 1- Tutor Depois de ter mudado isso, Volte a pasta players. Lá, renomeie o arquivo do character para o nome que você pois dentro do arquivo. Agora, saia da pasta players e vá para a pasta ACCOUNTS Localize a account do player que irá virar GM, E vamos editá-la. Vai estar mais ou menos assim: <?xml version="1.0"?> <account pass="senha123**" premDays="0" premEnd="0"> <characters> <character name="XTibia"/> </characters> </account> Mude o nome para o nome que você pois no arquivo do character. Ficando assim: <?xml version="1.0"?> <account pass="senha123**" premDays="0" premEnd="0"> <characters> <character name="GM XTibia"> </characters> </account> Feito! Lembrando que para editar o character, ele precisa estar offline! Tá, agora você ve aqueles IPs bonitos né? Tipo assim: mamae.servegame.com Então vamos fazer! 7º CRIANDO IP FIXO Entre no site www.no-ip.com Logo depois, registre-se. Clicando em sign-up. Preencha como desejar. Depois de ter se cadastrado, Você receberá um email com a confirmação do cadastro. Feito. Agora, entre com seu email cadastrado e senha. Na tela que aparecer, clique em Hosts/Redirects. Clique em ADD Uma nova telá irá aparecer. Em name ponha o que você quiser. APENAS O NOME! Não ponha nada mais! Só o nome. Em baixo, escolha o serviço que você quiser. Exemplo, .servegame.com Pronto. Não mecha em mais nada e clique em Create Host. Feito! Seu IP fixo está criado! Espere 5 minutos antes de usá-lo. Lembre-se de todo dia que resetar sua Internet e seu IP mudar, ir no site do no-ip.com e clicar em manage hosts Acha o seu IP Fixo e clica em modify. Daí muda seu IP! ps: o IP que vai no config.lua é o IP de números. Pronto! Seu IP agora tá bonitinho =) Tá, agora você já tem seu OT, configurado, char GM, IP fixo e server ONLINE! Vamos partir pro site?! Acho que é uma boa : ) 8º INSTALANDO E CONFIGURANDO O APPSERV (SITE) Então, sabe aquele AppServ 2.5.9 que eu falei pra você baixar no início do tutorial? Vamos usa-lo agora! Então, dê um clique duplo no ícone do setup do AppServ e vamos instalar! Siga as fotos, preencha igualzinho! Vou mandar um esquema antes! Desmarca PHP My Admin e My SQL Poe o nome do server NAO PODE TER ESPAÇO! Poe o teu EMAIL em baixo. E poe 8090 na port. Depois dá NEXT deixa ir, e no final desmarca as duas caixinhas! Fotos na seqüencia: 1 2 3 4 Pronto! Depois de instalado, Vamos liberar as portas necessárias! Que no caso é a 8090! Faça o mesmo procedimento da porta 7171! Dito láááá em cima! Sobe um montão pouquinho que você acha eu ensinando a desbloquear! Mas muda o nome da porta poe OT Site. OK? Feito, agora sabe os scripts que eu falei para você baixar?! Então, copia os arquivos do script do seu SITE e cola dentro da pasta WWW Que tá no C:\\\\\\\\Appserv\\\\\\\\www Cola dentro dessa www ai! Ai depois, você abre o config.php E configura ai. Geralmente é fácil! Se tiver algo assim: datadir Siginifica que eles querem o destino da pasta data. Qualquer dúvida na hora de configurar, pode adicionar meu msn! Tá na minha assinatura. Depois de configurar, Volte na pasta Appserv e abra a pasta Apache. Abre o arquivo apache_start Essa é a imagem de quando você abre: Pronto! Agora vai lá e testa pra ver se tá on o seu site. http://SEUIP:8090 Lembrando que os outros vão usar o IP do www.whatip.com ( ou o fixo) Mas você entra com o IP interno do executar>cmd>ipconfig Ok? Então é isso galera! Espero que tenha ficado bem explicadinho! Tirei muito tempo meu pra fazer isso! Mas valeu apena! Queria aproveitar pra mandar um beijo pro Frozen, Rickzs, Powerzin, Rustty, JV e Addict! Qualquer coisa que tenha faltado, fala que eu edito! TUTORIAL 100% BY LASTSOULS! Não tem crédito a ninguém alem de mim. PROIBIDA A CÓPIA NÃO AUTORIZADA! XTibia, a sua comunidade de Tibia e OTserv. 20081 ponto
-
Weapon Hit Rank!
andretoprox reagiu a Vodkart por um tópico no fórum
Créditos: Jhon & Vodkart Como funciona: É um sistema simples, mostra o rank de maior hit do server, seja de axe, sword, club, wand, etc... Mostra o Nome do player - [Hit] - Nome da weapon imagem de exemplo: rank axe rank club rank sd obs: como o sistema de rank normal, level e etc, para aparecer no rank o jogador tem que relogar ou dar serversalve. MODS: RankHit.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="RankHit" version="1.0" author="Vodkart e Jhon" contact="xtibia.com" enabled="yes"> <config name="rank_func"><![CDATA[ WEAPON_WAND = {2190, 2191, 2188, 8921, 2189, 2187, 8920, 8922, 2184, 7414, 2453} WEAPON_ROD = {2182, 2186, 2185, 8911, 2181, 2183, 8912, 8910, 7958, 12609} storage_mostdamage = { CLUB = {155201,156201}, SWORD = {155202,156202}, AXE = {155203,156203}, WAND = {155204,156204}, ROD = {155205,156205}, DISTANCE = {155206,156206}, MAGIC_SD = {155207,156207,157207} } function setSdHit(cid, damage) if damage > getPlayerStorageValue(cid, storage_mostdamage.MAGIC_SD[1]) then setPlayerStorageValue(cid, storage_mostdamage.MAGIC_SD[1], damage) setPlayerStorageValue(cid, storage_mostdamage.MAGIC_SD[2], 2268) end return true end function setPlayerMostHitMage(cid, damage, weapon) if isInArray(WEAPON_WAND, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) == TRUE or isInArray(WEAPON_WAND, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) == TRUE then if damage > getPlayerStorageValue(cid, storage_mostdamage.WAND[1]) then setPlayerStorageValue(cid, storage_mostdamage.WAND[1], damage) setPlayerStorageValue(cid, storage_mostdamage.WAND[2], weapon) end elseif isInArray(WEAPON_ROD, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) == TRUE or isInArray(WEAPON_ROD, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) == TRUE then if damage > getPlayerStorageValue(cid, storage_mostdamage.ROD[1]) then setPlayerStorageValue(cid, storage_mostdamage.ROD[1], damage) setPlayerStorageValue(cid, storage_mostdamage.ROD[2], weapon) end end return true end function getRankHit(cid, value, wvalue, max, RankName) -- by vodka local str,arm ="","" str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n\n" local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY cast(value as INTEGER) DESC;") if (query:getID() ~= -1) then k = 1 repeat if k > max then break end local getweapon = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = ".. query:getDataString("player_id") .." AND `key` = "..wvalue) if (getweapon:getID() ~= -1) then arm = getItemNameById(getweapon:getDataString("value")) end str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "] - "..arm.."" k = k + 1 until not query:next() end return doPlayerPopupFYI(cid, str) end function haveWeapon(cid) -- by vodka local armas = {1,2,3,5,6} if getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid > 0 and isInArray(armas, getItemWeaponType(getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid)) or getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid > 0 and isInArray(armas, getItemWeaponType(getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid)) then return true end return false end function getWeaponType(cid) -- by vodka return getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == 0 and getItemWeaponType(getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid) or getItemWeaponType(getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid) end ]]></config> <talkaction words="/rankhit;!rankhit" event="buffer"><![CDATA[ domodlib('rank_func') local rank_hit = { ["axe"] = {storage_mostdamage.AXE[1],storage_mostdamage.AXE[2]}, ["sword"] = {storage_mostdamage.SWORD[1],storage_mostdamage.SWORD[2]}, ["club"] = {storage_mostdamage.CLUB[1],storage_mostdamage.CLUB[2]}, ["wand"] = {storage_mostdamage.WAND[1],storage_mostdamage.WAND[2]}, ["rod"] = {storage_mostdamage.ROD[1],storage_mostdamage.ROD[2]}, ["distance"] = {storage_mostdamage.DISTANCE[1],storage_mostdamage.DISTANCE[2]}, ["sd"] = {storage_mostdamage.MAGIC_SD[1],storage_mostdamage.MAGIC_SD[2]} } local param = string.lower(param) if (param == "") then local str = "" str = str .. ""..getCreatureName(cid).." Hit\'s\:\n\n" for hit, item in pairs(rank_hit) do str = str..string.upper(hit)..": ".. (getPlayerStorageValue(cid, item[1]) ~= -1 and "["..getPlayerStorageValue(cid, item[1]).."] - "..getItemNameById(getPlayerStorageValue(cid, item[2])).."" or "None") .."\n" end str = str .. "" doPlayerPopupFYI(cid,str) return true end if not rank_hit[param] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"digite o nome correto.") end return getRankHit(cid, rank_hit[param][1],rank_hit[param][2], 10, "Rank "..param) ]]></talkaction> <event type="login" name="Rank Hit" event="script"><![CDATA[ domodlib('rank_func') function onLogin(cid) registerCreatureEvent(cid, "RankhitCombat") return true end ]]></event> <event type="combat" name="RankhitCombat" event="script"><![CDATA[ domodlib('rank_func') registerCreatureEvent(target, "RankhitStats") return true ]]></event> <event type="statschange" name="RankhitStats" event="script"><![CDATA[ domodlib('rank_func') if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) and haveWeapon(attacker) then t = { [1] = {storage_mostdamage.SWORD[1],storage_mostdamage.SWORD[2]}, [2] = {storage_mostdamage.CLUB[1],storage_mostdamage.CLUB[2]}, [3] = {storage_mostdamage.AXE[1],storage_mostdamage.AXE[2]}, [5] = {storage_mostdamage.DISTANCE[1],storage_mostdamage.DISTANCE[2]} } MyWeapon = getPlayerSlotItem(attacker, CONST_SLOT_LEFT).itemid == 0 and getPlayerSlotItem(attacker, CONST_SLOT_RIGHT).itemid or getPlayerSlotItem(attacker, CONST_SLOT_LEFT).itemid if (getPlayerStorageValue(attacker, storage_mostdamage.MAGIC_SD[3]) >= os.time()) then setSdHit(attacker,value) elseif t[getWeaponType(attacker)] then if value > getPlayerStorageValue(attacker, t[getWeaponType(attacker)][1]) then setPlayerStorageValue(attacker, t[getWeaponType(attacker)][1], value) setPlayerStorageValue(attacker, t[getWeaponType(attacker)][2], MyWeapon) end else setPlayerMostHitMage(attacker, value, MyWeapon) end end return true ]]></event> </mod> Em data > spells > scripts > attack > sudden death.lua adicione depois de function onCastSpell(cid, var) setPlayerStorageValue(cid, 157207, os.time()+3) ficando assim: function onCastSpell(cid, var) setPlayerStorageValue(cid, 157207, os.time()+3) return doCombat(cid, combat, var) end1 ponto -
Galeria De Tutorias [Video-Aula]
Teasure reagiu a SkyDangerous por um tópico no fórum
Galeria de Video-Aulas de Tutorias , Erros e Outros Vídeo Aula 1: Erro: Removendo o erro ao criar e copiar o personagem. Wrong characters configuration. Try again or contact with admin. ADMIN: Edit file config/config.php and set valid characters to copy names. Character to copySorcerer Sampless doesn't exist. Vídeo: Vídeo Aula 2: Tutorial: Adicionando efeitos nos novos items como aumentar o magic level, sword e etc. Vídeo: Vídeo Aula 3: Tutorial: Trocando o Layout do seu site utilizando o gesior. Download do Layout: http://speedy.sh/gzHUM/elemental.rar Vídeo: Vídeo Aula 4: Tutorial: Achando o ids das cidades pelo RME Download do RME: http://www.mediafire...l3c6hzgem0a4z9z Vídeo: Vídeo Aula 5: Tutorial: Importando Monstros Novos pelo RME Download do RME: http://www.mediafire...l3c6hzgem0a4z9z Vídeo: Vídeo Aula 6: Tutorial: Criando seu site de tibia utilizando o GESIOR e o XAMPP Download dos Utiliatários:http://www.mediafire...hsitcpt43q5ssma Vídeo: Sempre Atualizando~1 ponto -
Versão: 8.6 Itens: 8.6 Sem vírus Mapa Atualizado Subwat Kamikaze V13 Atualizações -Retirado o bug das Houses -Adicionado vila de houses na city principal -Adicionado super mana,super uh e super bow.Comandos:!superuh,!supermana e !superbow -Adicionado 12 Hunt's novas na área Free -Adicionado 5 Hunt's novas na área Super Vip -Novas houses colocadas na city principal -Dois monsters novos:Bruxa do 71 e Satanas -Retirado bugs de varias hunts -Arrumado o bug da war -Retirado o Sex System -Nova quest adicionada de life scrolls e mana scrolls -Adicionado área para as hunts free Subwat Kamikaze V21 Atualizações -Adicionado o comando /newtypeex.Somente para God's. -Mais houses adicionadas na city principal. -Adicionado o set Really.Somente para Vip's. -Retirado o bug da quest itens absolute. -Adicionado o npc {BRUTAL} Seller.Vende: brutal uh,brutal mana,brutal sword e brutal axe -Adicionado os itens: brutal uh,brutal mana,brutal sword e brutal axe -Set God agora no segundo andar do templo. -Novo npc {REALLY} Seller.Vende: really helmet,really armor,really legs e really boots. -Retirado o bug da área de eventos. -Adicionado 20 new hunts na area free. -Adicionado 8 new hunts na area Vip. -10 Novos monsters chamados: Cientista Maluco,Blu Ray,Supremos Boss,Super Nova,Sindarion,Rad Boss,The Tiger,Nightmare Tiger,Undead Jester e Lord Jetta. -1 New monster na area vip chamado: Super Coin. -Nova quest dando 200 vip coins. IMAGENS: TEMPLO TELEPORTS SUPER VIP NEW MONSTERS DOWNLOAD: http://speedy.sh/3tn...amikaze-V21.rar DOWNLOAD 4SHARED: http://www.4shared.c...mikaze_V21.html SCAN:https://www.virustot...sis/1337546983/ Créditos:Subwat,Adm Kamikaze,PTBREC,Nadotti e Ropp Xeys. Comentem.Da um rep+ ae. Obrigado.1 ponto
-
[Gesior Acc] Gesior Acc - Seguro
VictorWEBMaster reagiu a Natanael Beckman por um tópico no fórum
Gesior Acc - Seguro Boa galera, eu mais uma vez postando o Gesior ACC. Eu não vou falar muito vou só postar umas news feita pela equipe do Xart. Não sei se alguém já postou esse Gesior ACC, se postou desculpe-me mais não vi. Aqui alguns ajuste um eu achei fundamental: Little fix. Lost Account. SQL Injection. (Principal se tiver cançado de invasões no seu site, direcionamento de paginas.) Invalid account name. Personagem com o nome do monstro. Colocar o tipo de ban.php. Downloads: Gesior-AAC 0.6.3 Gesior-AAC 0.6.3 Creditos: Dulinoz. Xart. Redbull915. Não garanto a segurança total do site após alterações inadequadas!1 ponto -
Procurado
coyotestark45 reagiu a Mulizeu por um tópico no fórum
Primeiramente Irei falar um pouco sobre o systema, ele e bem simples mais e legal! é um sistema de recompensa pela cabeça do jogador, a medida que o jogador mata outro ele acumula kills, e quando chega a uma determinada quantia de kill, sua cabeça vale uma recompensa, e quem matar esse jogador recebe o premio -------------------------------------------------------------------------------------- Para ver quantos kills o jogador tem basta falar !kill ou /kill {maxKill = 2 -- quantia de player que vai matar --------------------------------------------------------------------------------------- Vá ate a pasta mods crie um arquivo chamado, Procurado.xml e coloque V 1.0 <?xml version="1.0" encoding="UTF-8"?> <mod name="Procurado" version="1.0" author="Mulizeu" contact="xtibia.com" enabled="yes"> <config name="pcr_func"><![CDATA[ config = {maxKill = 2, storage = 913874, reward = {2160,100}} function getKills(cid) return getPlayerStorageValue(cid,config.storage) < 0 and 0 or getPlayerStorageValue(cid,config.storage) end ]]></config> <event type="login" name="ProcuradoRegister" event="script"><![CDATA[ domodlib('pcr_func') function onLogin(cid) registerCreatureEvent(cid, "ProcuradoRegister") registerCreatureEvent(cid, "ProcuradoKill") registerCreatureEvent(cid, "ProcuradoDeath") if getPlayerStorageValue(cid,config.storage) == -1 then setPlayerStorageValue(cid,config.storage,0) end return true end]]></event> <talkaction words="/kill;!kill" event="buffer"><![CDATA[ domodlib('pcr_func') return doPlayerSendTextMessage(cid,27,"You have "..getKills(cid).." Killer of the peoples") ]]></talkaction> <event type="kill" name="ProcuradoKill" event="script"><![CDATA[ domodlib('pcr_func') function onKill(cid, target, lastHit) if isPlayer(cid) and isPlayer(target) == TRUE then setPlayerStorageValue(cid, config.storage, getKills(cid)+1) doSendAnimatedText(getCreaturePosition(cid),"+Kill",math.random(1,5)) if getKills(cid) == config.maxKill then doBroadcastMessage("The Player "..getCreatureName(cid).." was Killer "..config.maxKill.." people and now his head is worth "..config.reward[2].." "..getItemNameById(config.reward[1]) , 22) end end return true end]]></event> <event type="death" name="ProcuradoDeath" event="script"><![CDATA[ domodlib('pcr_func') function onDeath(cid, corpse, deathList) if isPlayer(deathList[1]) and getKills(cid) >= config.maxKill then doPlayerAddItem(deathList[1],config.reward[1],config.reward[2]) setPlayerStorageValue(cid, config.storage, 0) doBroadcastMessage("The Player "..getCreatureName(deathList[1]).." was Killed "..getCreatureName(cid).." and earned his reward" , 20) end return true end ]]></event> </mod> Aceito Sujestões e ideias para melhorar o systema Agradeço ao VODKART, por ter passado para mods,e deixar o script melhor configuravel1 ponto -
A História De Roan - Parte 004
Critical reagiu a ElderPriest por um tópico no fórum
A História de Roan - Parte 004 A árvore era bem grande, cerca de 5 metros de altura e 5 de largura. No momento de correria o monstrinho conseguiu dar a volta por trás da árvore e simplesmente desapareceu. Quando Roan chegou ao local não havia encontrado a criatura por nenhum dos cantos. Parou por alguns segundos, observou atentamente àquela misteriosa árvore. Muito estranho, por mais que a criatura fosse pequena, sumir daquela maneira. Após refletir, o nobre descobre que o desaparecimento de seu cavalo e do monstrinho tinha algo relacionado com a árvore, que de fato era diferente das demais. Logo decidiu tocá-la, para tentar encontrar alguma coisa. Percebeu que a árvore era robusta demais para pouca altura da mesma, então analisou uma moita, começou a revirar as folhas cuidadosamente até que descobriu uma passagem secreta, cavada no chão e com um pedaço da árvore destruída. Com um tempo começou a entender o sentido daquela árvore. Era como se fosse a árvore da vida, uma árvore com frutos, moitas e visivelmente alterada em meio de tantas outras mortas. O garoto decidiu entrar no buraco com muita hesitação. Era uma caverna subterrânea enorme, muito bem escondida. Tinha uma certa iluminação, com tochas pelas paredes. Quem que tenha feito aquelas construções era muito inteligente. Sabia completamente onde pôr as estacas para sustentar as paredes da caverna. Eram túneis longos, porém estreitos. Aproximadamente 4 metros de largura. Então, empunhou sua tocha que estava em sua mochila de caça e começou a procurar alguma pista sobre o desaparecimento de seu cavalo. Em alguns pontos da caverna eram escuros, mesmo com tanta iluminação. Sua tocha servia para iluminar esses locais. Tinha que ficar atento pois só havia levado uma tocha para a viagem, se acabasse aquela estava sem luz. Logo encontrou uma bifurcação, tinha que optar entre os dois caminhos da caverna. Pareciam ser dois caminhos idênticos. Sem nenhum motivo escolheu o lado direito. Continuou caminhando vagarosamente para não fazer barulho com seus passos, decidiu apagar sua tocha para economizá-la e para não ser detectado por possíveis inimigos. Sempre com sua espada em mãos, foi percebendo que as cavernas eram secas, pareciam ter sido cavadas a muitos anos. Depois de aproximadamente 30 minutos de caminhada já conseguia ver a luz. Era sinal da saída da caverna. Não havia encontrado nenhum inimigo durante o caminho, para seu alívio. O fim da caverna era meio inclinado. Aproximadamente 45°, com uma escadinha de madeira e cordas para auxiliar na subida. Quando terminou de subir não acreditou no que observou. Encontrou uma espécie de cachoeira enorme. Rios compridos e largos durante toda a paisagem. Matas e vegetações bem ricos em alimentos, muito bem cuidado. Não sabia ao certo onde estava, teria que estudar melhor o local para saber. - O reino tem que ver isso. Essa área nunca foi explorada! - Disse Roan sorrindo diante de toda aquela natureza. No fim, decidiu prosseguir com sua jornada até encontrar seu cavalo, que tinha um valor sentimental muito grande para ele. O problema era por onde começar. Grandes montanhas, cachoeiras e rios, um terreno enorme e nenhum sinal de vida. Então, aproveitou para acampar aquela tarde ali. Havia passado a noite procurando seu cavalo, estava faminto, inclusive passando mal. Logo, conseguiu comer algumas frutas de umas moitas pequenas, ele sabia que quando uma pessoa fica muito tempo sem comer ela devia se alimentar aos poucos para não passar mal. Depois, enquanto procurava mais alimento, foi surpreendido por uma família de lobos. Lobos que sempre andavam em bando. Não teria a mínima chance contra os mais de 5 lobos que ali estavam presentes. Decidiu fugir com cautela, sem ser percebido. - Argghhttt - Era o barulho dos lobos, detectando o menino. Roan rapidamente começou a correr, desesperado. Corria muito devagar por causa do peso de sua armadura e os lobos, pelo contrário, corriam muito rápido, mas estavam a uma distância boa de Roan. Durante a corrida Roan foi surpreendido com um puxão vindo de seus pés. Tinha acabado de passar por uma armadilha. Estava preso pelo pé, de cabeça para baixo. Continua... Parte 001: http://www.xtibia.co...roan-parte-001/1 ponto -
Este local é para atendimento sobre o xtibia, reportado. tenha mais atenção. tente o no-ip1 ponto
-
Olá, de novo... Desculpa se estou enchendo a seção de Roleplay com bobagens, mas decidi criar uma lista de capítulos do "1 Hora" pra ficar mais fácil de achar, quando procurarem. Ela será atualizada sempre que for publicado um novo capítulo aqui no fórum XTibia. 1ª Temporada: Capítulo 001 Capítulo 002 Capítulo 003 Capítulo 004 Capítulo 005 Capítulo 006 Capítulo 007 Capítulo 008 Capítulo 009 Capítulo 010 Capítulo 011 Capítulo 012 Capítulo 013 Capítulo 014 Capítulo 015 Capítulo 016 Capítulo 017 Capítulo 018 2ª Temporada: Capítulo 019 Capítulo 020 Capítulo 021 Capítulo 022 Capítulo 023 Capítulo 024 Capítulo 025 Capítulo 026 Capítulo Especial Capítulo 027 Capítulo 028 Capítulo 029 Capítulo 030 Capítulo 031 Capítulo 032 Capítulo 033 Capítulo 034 Capítulo 035 Capítulo 036 3ªTemporada: Capítulo 037 Capítulo 038 Capítulo 039 Resumo da 3ª Temporada: Nesta temporada o protagonista se vê em uma interminável busca pela sua amada, Juliana. Também é nessa temporada que ele descobre uma das verdadeiras faces deste mundo de magia onde literalmente tudo é possível. Os mistérios começam a ser criados, acontecimentos inesperados tentam ser reparados e a descoberta de algo realmente grande é tudo o que espera por você nesta temporada. Vale a pena conferir!1 ponto
-
[Pedido] Spell So Pode Ser Usado Após Fazer Quest
coyotestark reagiu a Vodkart por uma questão
claro, é só colocar para checar se tem storage passa a spell e o valor da storage local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_MANASHIELD) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if getPlayerStorageValue(cid, 75455) <= 0 then doPlayerSendCancel(cid, "Sorry, you need complete the quest to use this spell.") return false end doCombat(cid, combat, var) return true end só trocar o numero da storage1 ponto -
[Encerrado] [Pokemon] Dúvidas? - Pda
LLossavaro reagiu a zerefshirou por um tópico no fórum
@DeanWInchesterr Tipo não é erro, é assim mesmo, para salvar mais rapido coloca outro nome na hora de salvar que salva rapido @PkNfan Procura por isso na nurse: Abaixo disso coloca Veja se é oque deseja1 ponto -
[Encerrado] [Pokemon] Dúvidas? - Pda
cacaiu reagiu a DeanWInchesterr por um tópico no fórum
@cacaiu Está ai todos os gyms sem bug dando as insignias GYM.zip1 ponto -
Dei uma modificada nesse script aqui, então créditos são dele. http://www.xtibia.com/forum/topic/150604-matar-player-e-tirar-coracao/ Modificado vai ficar assim: local lvlMinGainHeart = 1000 -- lvl minimo pra ganhar o coração. local lvlMaxGainHeart = 2000 -- lvl maximo pra ganhar o coração. local lvlGain = { -- se lvl maior que esses, ganham esses determinados itens {lvl = 2000, itemid = 2160, quant = 2}, -- lvl, id do item, quantidade. {lvl = 3000, itemid = 2160, quant = 5}, {lvl = 4000, itemid = 2160, quant = 10} } function onKill(cid, target, lastHitKiller) if(isPlayer(target) and isPlayer(lastHitKiller)) then if getPlayerLevel(cid) >= lvlMinGainHeart and getPlayerLevel(cid) <= lvlMaxGainHeart then doPlayerSendTextMessage(cid, 22, "Parabens, voce matou o jogador "..getCreatureName(target).." e tirou seu coraçao") function additem() local aditi = doPlayerAddItem(lastHitKiller, 5943, 1) doItemSetAttribute(aditi, "description", "Este foi retirado de "..getCreatureName(target).."") end addEvent(additem, 1000) return true end for i=1, #lvlGain do if i < #lvlGain then if getPlayerLevel(cid) > lvlGain[i].lvl and getPlayerLevel(cid) <= lvlGain[i+1].lvl then doPlayerAddItem(lastHitKiller, lvlGain[i].itemid, lvlGain[i].quant) end else if getPlayerLevel(cid) > lvlGain[i].lvl then doPlayerAddItem(lastHitKiller, lvlGain[i].itemid, lvlGain[i].quant) end end end end return true end1 ponto
-
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 function getNumber(txt) x = string.gsub(txt,"%a","") x = tonumber(x) if x ~= nill and x > 0 then return x else return 0 end end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid items = { ["boggy dreads"] = {id = 10583, price = 1000}, ["centipede leg"] = {id = 11212, price = 2000}, ["cobra tongue"] = {id = 10550, price = 3000}, ["essence of a bad dream"] = {id = 11217, price = 4000}, ["ghastly dragon head"] = {id = 11360, price = 5000}, ["gland"] = {id = 8971, price = 5000}, ["half digested piece of meat"] = {id = 11194, price = 5000}, ["half eaten brain"] = {id = 10575, price = 5000}, ["hellhound slobber"] = {id = 10553, price = 5000}, ["lizard essence"] = {id = 12597, price = 5000}, ["mutated flesh"] = {id = 11219, price = 5000}, ["mutated rat tail"] = {id = 10584, price = 5000}, ["book of necromantic rituals"] = {id = 11231, price = 5000}, ["petrified scream"] = {id = 11331, price = 5000}, ["tarantula egg"] = {id = 1192, price = 5000}, ["undead heart"] = {id = 11361, price = 5000}, ["broken halberd"] = {id = 11329, price = 5000}, ["cursed shoulder spikes"] = {id = 11321, price = 5000}, ["legionnaire flags"] = {id = 11328, price = 5000}, ["spiked iron ball"] = {id = 11319, price = 5000} } msg = string.lower(msg) if isInArray({"trade","vender","sell","selling"}, msg) then selfSay('qual item você deseja me vender?', cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if items[msg] then selfSay('cada '..msg..' vale '..items[msg].price..' gold, quer me vender quantos desse item?', cid) index,var = items[msg].id,items[msg].price talkState[talkUser] = 2 else selfSay('eu não compro este item!', cid) end elseif talkState[talkUser] == 2 then if getNumber(msg) > 0 and getNumber(msg) < 11 then n = getNumber(msg) selfSay('você quer vender '..n..' '..getItemNameById(index)..' por um total de '..var*n..' gps? {yes}', cid) talkState[talkUser] = 3 else selfSay('digite num número de 1 a 10!', cid) end elseif msgcontains(msg, "yes") and talkState[talkUser] == 3 then if doPlayerRemoveItem(cid, index, n) then doPlayerAddMoney(cid, var*n) selfSay('Muito obrigado, aqui está seu dinheiro!', cid) else selfSay('você não tem os items!', cid) talkState[talkUser] = 0 end elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("tudo bem então.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())1 ponto
-
Vai na config.lua e procura pela tag housesPerAccount = só colocar housesPerAccount = 11 ponto
-
<?xml version="1.0" encoding="UTF-8"?> <monster name="Next Trainer" nameDescription="a next trainer" race="blood" experience="0" speed="1000" manacost="0"> <health now="99999999999" max="99999999999"/> <look type="344" corpse="3128"/> <targetchange interval="60000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag staticattack="50"/> <flag lightlevel="0"/> <flag lightcolor="0"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="5000" min="0" max="-1"/> </attacks> <defenses armor="25" defense="30"> <defense name="healing" interval="5000" chance="100" min="2000000" max="2000000"> <attribute key="areaEffect" value="blueshimmer"/> </defense> </defenses> <immunities> <immunity physical="0"/> <immunity energy="0"/> <immunity fire="0"/> <immunity poison="0"/> <immunity lifedrain="0"/> <immunity paralyze="0"/> <immunity outfit="0"/> <immunity drunk="0"/> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="O Next Level agradece sua preferencia de Otserv!"/> <voice sentence="E voce, esta esperando o que para por sua vip agora? Garanta ja sua VIP!"/> <voice sentence="Esta gostando do treino? Com VIP os treiners upam mais rapido suas skills..."/> </voices> <loot> <item id="2148" countmax="20" chance="100000"/><!-- gold coin --> <item id="1949" chance="10000"/><!-- scroll --> <item id="2467" chance="10000"/><!-- leather armor --> <item id="2642" chance="6666"/><!-- sandals --> <item id="1987" chance="100000"><!-- bag --> <inside> <item id="2044" chance="6666"/><!-- lamp --> <item id="2689" countmax="3" chance="20000"/><!-- bread --> <item id="2401" chance="3333"/><!-- staff --> <item id="2166" chance="1428"/><!-- power ring --> </inside> </item> </loot> </monster>1 ponto
-
[Encerrado] [Pokemon] Dúvidas? - Pda
renanmarcosofcl reagiu a 777777 por um tópico no fórum
@ALL Como faço para o player precisar de level para usar um pokemon? os leveis ja estam configurados no configuration.lua, por exemplo para um player usar um hitmontop ele precisaria lv 160.. mas nao funciona, aonde mais tenho que mecher? Usa o meu, nele os pokemons upam até o level 300 (: substitua o seu Level Tables.lua por este: e o seu Level System por este:1 ponto -
Piso Para Trainers Non-Pvp (Rme)
JumentoCuzaum reagiu a Lordfire por uma questão
Mas ele falou piso No-PVP, e não Protection Zone. O piso no-pvp, no RME, fica na paleta Terrain (aperte T para ir nela) e o ícone é uma bandeirinha verde. Basta selecionar e clicar no mapa onde você quer colocar.1 ponto -
2ª - Um script que ao pisar em um determinado piso e puxar a alavanca sera teletransportado, pra x,y,z positions. [Data/Actions/Scripts] Crie um aquivo .lua chamado Teleport.lua, e adicione isso: [Data/Actions] Actions .xml 3ª - Ao pisar em tal piso será sumonado um monstro! otserv/movements/scripts/summontile.lua Créditos ao Vodkart por ter o feito e por mim por lhe trazer.1 ponto
-
Da pra fazer por onDeath testa ae <event type="death" name="corpseDecay" event="script" value="nome_do_script.lua"/>1 ponto
-
A História De Roan - Parte 003
Critical reagiu a ElderPriest por um tópico no fórum
A História de Roan - Parte 003 Então Roan adentrou a floresta tenebrosa, nunca dante explorada por ele. Sua missão era entrar, pegar qualquer tipo de alimento e se afastar o mais rápido possível. Não conhecia o local, só sabia que era uma floresta morta, sem vida, quase que sem frutos nas árvores. Certas lendas reinavam sobre o local, como a das grandes aranhas que decepavam seus inimigos e acabavam por devorar cada membro. Os temídos minotauros, com certa de 3 metros de comprimento e com suas clavas exageradamente pesadas. Mas sem dúvida, o principal medo dele era os bárbaros que residiam do outro lado da floresta. Homens e mulheres, fortes, bem treinados junto a natureza. Os homens se especializavam na arte do machado, da espada, já as mulheres, na arte do uso de arcos, eram ótimas caçadores e tinham boa pontaria. Não se sabe ao certo se os bárbaros eram agressivos ou até mesmo se tinham algum interesse em atacar o reinado. - Descanse aqui! - Disse o menino removendo as rédeas de Hornus, seu cavalo, para que ele relaxasse. Enquanto isso foi procurar comida nos arredotes da floresta, já havia entrado na escuridão das árvores, mortas, pequenas, a bastante tempo. Não conseguia encontrar nenhum tipo de alimento devido à pouca fertilidade do local. Passado mais alguns minutos, avistou um cacho de bananas em cima de uma árvore, parecia ser a única árvore alta da floresta! Não hesitou em tentar escalar a árvore, mas sua armadura era pesada então falhou na missão. Teria que remover a armadura para conseguir subir na árvore, mas para tal ficaria vulnerável diante de um possível ataque. Logo voltou para seu cavalo, que para sua surpresa não estava mais no local onde ele havia deixado. Hornus era muito bem treinado, não poderia ter saido sozinho do local. Alguém havia passado por lá! A tarde começava a se despedir, estava cada vez mais escuro. O desespero tomou conta de Roan. Não conhecia nada sobre a floresta, ainda mais de noite. Começou a procurar seu cavalo de batalha, quando se aproximava de um rio foi surpreendido por um barulho próximo a uma moita, esta com folhas secas e soltas. Logo retirou sua espada e colocou-a em modo de batalha. Foi se aproximando vagarosamente até as folhas. Derrepente uma estranha criatura saiu de trás das folhas secas, em sua mão tinha uma parte do equipamento que estava sobre o cavalo de Roan. O desaparecimento do cavalo estava ligado diretamente à pequena criatura. - Ei, você! Volte aqui! A criatura era muito pequena, tinha feições humanas e orelhas bem pontiagudas. Sua pele era escura, um tom escuro de verde. Corria rápido e parecia conhecer muito sobre a floresta, parecia conhecer todos os atalhos para se afastar do garoto. Roan, sem hesitar, começou a correr atrás do monstro, que desesperado fez o mesmo. Os dois correram até uma estranha árvore enorme, que para a surpresa de Roan era a mesma que tinha os cachos de banana. Continua... Parte 001: http://www.xtibia.co...roan-parte-001/ Parte 004: http://www.xtibia.com/forum/topic/185694-a-historia-de-roan-parte-004/1 ponto -
Bom gente eu entro em alguns ots e vejo o outfit do citizen 7.6 em ot 8.60 , gostaria que alguem me ajudasse a colocar no meu ot 8.60 . Obrigado1 ponto
-
Bueiro, Etc
NFSTESTDRIVER reagiu a alldakie por um tópico no fórum
Fiz isso para um colega que pediu no MSN, Foto: Download: http://www.4shared.c...8H/Bueiro.html? Scan: http://www.virustota...7338-1320519700 Obs* Tem um bloco de notas chamado "LEIA-ME" veja para qualquer duvida... Obs** Ele serve para outros tipos, desde Quests, a entradas de outros lugares... Obs*** Não coloquei os outros andares, apenas os últimos para deixar misterioso os outros, só baixar para vê-lo! Gostou, +REP1 ponto -
ok vá até data\creaturescripts\scripts e crie um arquivo.lua e renomeie para aolinfinity.lua dentro coloque: function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if isPlayer(cid) == true then if (getPlayerSlotItem(cid, 2).itemid == 2173) then doCreatureSetDropLoot(cid, false) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYAREA) return TRUE end end return TRUE end em data\creaturescripts\scripts\login.lua adiciona a linha: registerCreatureEvent(cid, "onPrepareDeathinifi") creaturescripts.xml adicione: <event type="preparedeath" name="onPrepareDeathinifi" event="script" value="aolinfinity.lua"/>1 ponto