Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 10/30/11 em todas áreas
-
Olá Xtibianos, Hoje vou trazer um mapa pequeno, ele e apenas uma pequena caverna que da acesso a uma mina, etc. Dwarf Mine v1 (Antiga)3 pontos
-
Opções Do Comando /attr
darkrayfury reagiu a Doidin por um tópico no fórum
É galera eu acho que todos sabem que o comando /attr serve para mudar coisas no server, semprecisar ter que derrubar ele para poder alterar... Para usar ele é bem simples, basta usar virado para o "alvo" que no caso é o player ou algum item, vamos logo as opções do comando: Opções para se usar em items: Opções para se usar em players: Sempre que for usar o comando você deve informar para qual numero você irá alterar, exemplo: /attr group 5 Espero que tenham entendido, abraços...1 ponto -
Gesior Acc Maker Para Tibia 8.60(2.0)
Grajauserv reagiu a CoLoRaDo por um tópico no fórum
ATENÇÃO!!!! NÃO SEI SE FUNCIONARÁ MAS PARA EVITAR ATAQUES À DATABASE DELETE A PASTA WEBDAV NA PASTA DO XAMPP! Recomendo usar o xampp 1.7.3 para baixa-lo Clique aqui Olá baixei um gesior e resolvi editar tirar alguns bugs etc... este gesior funciona nas versoes 8.60 pra cima! O que tem de novo? Update 2.0 Screen Shot: characters.php modificado: Download: Gesior Acc 8.60 By [ADM] DaNgeR(2.0).rar Créditos: Gesior GM Beckman Walef Xavier [ADM] DaNger - [ADM] Forever Aqui estão os sistemas que você deve adicionar no seu ot para funcionar no site! http://www.xtibia.co...-trade-offline/ - Trade Offline http://www.xtibia.co...em-com-escudos/ - Guild War Com Escudos http://www.xtibia.co...lottery-system/ - Lottery System http://www.xtibia.co...utomaticamente/ - Shop System(Para o Shop entregar os itens automaticamente)! e Para o Power Gamers Faça isso: execute este comando na database: ALTER TABLE `players` ADD `exphist_lastexp` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist1` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist2` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist3` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist4` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist5` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist6` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist7` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetimetoday` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime1` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime2` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime3` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime4` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime5` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime6` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime7` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetimeall` BIGINT( 255 ) NOT NULL DEFAULT '0'; depois este UPDATE `players` SET `exphist_lastexp`=`players`.`experience` depois vá na pasta do ot/data/globalevents e em globalevents.xml adicione isto: <globalevent name="history" interval="60" event="script" value="history.lua"/> depois vá na pasta do ot/data/globalevents/scripts e crie um arquivo chamado history.lua e adicione isso dentro: function onThink(interval, lastExecution) if (tonumber(os.date("%d")) ~= getGlobalStorageValue(23456)) then setGlobalStorageValue(23456, (tonumber(os.date("%d")))) db.executeQuery("UPDATE `players` SET `onlinetime7`=players.onlinetime6, `onlinetime6`=players.onlinetime5, `onlinetime5`=players.onlinetime4, `onlinetime4`=players.onlinetime3, `onlinetime3`=players.onlinetime2, `onlinetime2`=players.onlinetime1, `onlinetime1`=players.onlinetimetoday, `onlinetimetoday`=0;") db.executeQuery("UPDATE `players` SET `exphist7`=players.exphist6, `exphist6`=players.exphist5, `exphist5`=players.exphist4, `exphist4`=players.exphist3, `exphist3`=players.exphist2, `exphist2`=players.exphist1, `exphist1`=players.experience-players.exphist_lastexp, `exphist_lastexp`=players.experience;") end db.executeQuery("UPDATE `players` SET `onlinetimetoday`=players.onlinetimetoday+60, `onlinetimeall`=players.onlinetimeall+60 WHERE `online` = 1;") return TRUE end1 ponto -
Tibia Quests
milbradt reagiu a Demonbholder por um tópico no fórum
Faaaala galeinha! Tudo tranquilo? Bom, tomara que sim. Este é um projeto que eu desenvolvi ao longo deste mês, eu refiz três quests importantes do tibia, sendo estas a Demon Oak, Annihilator e Demon Helmet. Lembrando que elas não são exatamente como no tibia, são mais pra versão Demonbholder. Outra coisa, eu vou estar fazendo as quests rl que me pedirem abaixo com exceção da Pits of Inferno, POI. Esta quest não foi incorporada pois demora algum tempo para ser feita, portanto, talvez eu farei algum dia. Quem quiser contribuir com a sua versão de uma quest também pode me mandar por mensagem privada e ela será colocada aqui no tópico com os seus créditos. Não será tolerado ripping de quests, tanto de OtServers quanto de outros fóruns. Atenção: Sempre, sempre leia as informações para que não aconteça nenhum bug. Demon Oak Versão: Demonbholder Sistema: Mod Detalhes: Esta versão da Demon Oak eu fiz com que pudesse se encaixar em vários mapas, porém, é necessário seguir o padrão da imagem abaixo. Funcionamento: Deve funcionar desta seguinte maneira: O jogador deve conseguir o Hallowed Axe, e depois entrar em um portal, este portal deverá ter a actionid 37804. Após entrar no portal, ele será teleportado para Demon Oak, e lá ele deve usar o Hallowed Axe na arvore para começar a quest. Após ter terminado, ele automaticamente será teleportado para a sala do trono da Demon Oak. Os baús do trono da Demon Oak, devem ter os seguintes actionid: 37800, 37801, 37802, 37803. Mapa Padrão: Script: <?xml version="1.0" encoding="UTF-8"?> <mod name="DemonOak" enabled="yes" author="Demonbholder" forum="XTibia.com"> <config name="Function"><![CDATA[ function getOak() local OAK = { [1] = {name='skeleton', quant=7}, [2] = {name='beholder', quant=4}, [3] = {name='minotaur mage', quant=3}, [4] = {name='dwarf guard', quant=3}, [5] = {name='demon skeleton', quant=2}, [6] = {name='dragon', quant=1}, [7] = {name='tarantula', quant=3}, [8] = {name='pirate cutthroat', quant=3}, [9] = {name='orc leader', quant=3}, [10] = {name='dwarf geomancer', quant=1}, [11] = {name='fire elemental', quant=4}, [12] = {name='vampire', quant=2}, [13] = {name='avalanche', quant=1}, [14] = {name='blue djinn', quant=2}, [15] = {name='green djinn', quant=2}, [16] = {name='giant spider', quant=5}, [17] = {name='crystal spider', quant=3}, [18] = {name='dragon lord', quant=3}, [19] = {name='hydra', quant=2}, [20] = {name='frost dragon', quant=2}, [21] = {name='fury', quant=5}, [22] = {name='medusa', quant=2}, [23] = {name='destroyer', quant=3}, [24] = {name='diabolic imp', quant=2}, [25] = {name='minishabaal', quant=2}, [26] = {name='behemoth', quant=3}, [27] = {name='warlock', quant=2}, [28] = {name='undead dragon', quant=2}, [29] = {name='demon', quant=3}, } return OAK end function doOak(param) local pos = getCreaturePosition(param) for posx = pos.x - 20, pos.x + 20 do for posy = pos.y - 20, pos.y + 20 do local posi = getThingFromPos({x=posx, y=posy, z=pos.z, stackpos=253}).uid if isMonster(posi) then doRemoveCreature(posi) end end end return TRUE end ]]></config> <creaturescript type="login" name="DemonOakR" event="script"><![CDATA[ registerCreatureEvent(cid, "DemonOakD") registerCreatureEvent(cid, "DemonOakK") return TRUE ]]></creaturescript> <action itemid="8293" event="script"><![CDATA[ domodlib('Function') local espinhosid = {8289, 8290} if isInArray(espinhosid, itemEx.itemid) then if getPlayerStorageValue(cid, 37800) > -1 and getPlayerStorageValue(cid, 37800) <= #getOak() and getPlayerStorageValue(cid, 37801) == -1 then doPlayerSendTextMessage(cid, 22, "Mate-os!") for i = 1, getOak()[getPlayerStorageValue(cid, 37800)].quant do setPlayerStorageValue(cid, 37801, 0) oakx = itemEx.itemid == 8289 and i or 0 doCreateMonster(getOak()[getPlayerStorageValue(cid, 37800)].name, {x=getThingPos(item.uid).x +oakx, y=getThingPos(item.uid).y +4, z=getThingPos(item.uid).z}) end else doPlayerSendCancel(cid, "Voce ja fez esta quest.") end end ]]></action> <action actionid="37800;37801;37802;37803" event="script"><![CDATA[ domodlib('Function') local itens = { [37800] = {id = 2495, message = "Parabens, voce ganhou uma demon legs."}, [37801] = {id = 8905, message = "Parabens, voce ganhou um rainbow shield."}, [37802] = {id = 8851, message = "Parabens, voce ganhou um royal crossbow."}, [37803] = {id = 8918, message = "Parabens, voce ganhou um spellbook of dark mysteries."} } if getPlayerStorageValue(cid, 37800) == #getOak()+1 then doPlayerAddItem(cid, itens[item.actionid].id, 1) doPlayerSendTextMessage(cid, 25, itens[item.actionid].message) setPlayerStorageValue(cid, 37800, getPlayerStorageValue(cid, 37800)+1) end ]]></action> <creaturescript type="logout" name="DemonOakL" event="script"><![CDATA[ domodlib('Function') if getPlayerStorageValue(cid, 37800) > -1 and getPlayerStorageValue(cid, 37800) <= #getOak() then if getCreatureHealth(cid) ~= 0 then doPlayerSendCancel(cid, "Voce nao pode sair da demon OAK.") return FALSE end end return TRUE ]]></creaturescript> <creaturescript type="kill" name="DemonOakK" event="script"><![CDATA[ domodlib('Function') local salapos = {x=148, y=38, z=7} -- sala do trono if isMonster(target) and string.lower(getCreatureName(target)) == string.lower(getOak()[getPlayerStorageValue(cid, 37800)].name) and getCreatureMaster(target) ~= cid then if getPlayerStorageValue(cid, 37800) > -1 and getPlayerStorageValue(cid, 37800) <= #getOak() then setPlayerStorageValue(cid, 37801, getPlayerStorageValue(cid, 37801) + 1) end if getPlayerStorageValue(cid, 37801) == (getOak()[getPlayerStorageValue(cid, 37800)].quant) then setPlayerStorageValue(cid, 37800, getPlayerStorageValue(cid, 37800) + 1) setPlayerStorageValue(cid, 37801, -1) end if getPlayerStorageValue(cid, 37800) == #getOak()+1 then doTeleportThing(cid, salapos) end end return TRUE ]]></creaturescript> <creaturescript type="death" name="DemonOakD" event="script"><![CDATA[ domodlib('Function') if getPlayerStorageValue(cid, 37800) > -1 and getPlayerStorageValue(cid, 37800) <= #getOak() then setPlayerStorageValue(cid, 37800, -1) setPlayerStorageValue(cid, 37801, -1) doOak(cid) end return TRUE ]]></creaturescript> <movevent type="StepIn" actionid="37804" event="script"><![CDATA[ domodlib('Function') local ret = FALSE local pos = {x=63, y=129, z=7} -- demon oak for _, pid in pairs(getPlayersOnline()) do if getPlayerStorageValue(pid, 37800) > -1 and getPlayerStorageValue(pid, 37800) < #getOak() then ret = TRUE break end end if ret == TRUE or getPlayerStorageValue(cid, 37800) > -1 or getPlayerItemCount(cid, 8293) < 1 then doTeleportThing(cid, fromPosition) doPlayerSendCancel(cid, "Ha alguem fazendo esta quest no momento, ou voce ja a fez ou nao possui o hallowed axe.") else setPlayerStorageValue(cid, 37800, 1) doTeleportThing(cid, pos) doPlayerSendTextMessage(cid, 22, "Demon OAK!") end return TRUE ]]></movevent> </mod> Crie um arquivo .xml em mods e cole este script nele, nada mais precisa ser feito. Editando o script: Edite a posição da sala do trono, linha 126. Edite a posição da demon oak, linha 162. Por fim, você pode editar os monstros e a quantidade deles no inicio do script, porém não é recomendável adicionar mais níveis. Se for mudar os monstros e a quantidade, mude antes de colocar o script, caso contrário, poderá bugar. Os baús da quest devem ter os seguintes actionid: 32800, 32801, 32802, 32803. Annihilator: Versão: Demonbholder Sistema: Actions Funcionamento: Após entrar na annihilator, o time terá tanto tempo para matar os demons e pegar sua recompensa, caso isto não seja feito no tempo escolhido no script, os jogadores serão teleportados para algum lugar desejado e a quest reiniciará. Enquanto este tempo não acabar, outros times não poderão entrar na quest. O script irá teleportar os jogadores para um andar abaixo. Mapa padrão: Script - Alavanca: function onUse(cid, item) local pos = {x=193, y=118, z=9, stackpos=253} -- posição do jogador mais proximo da alavanca local uid = nil local delay = 500 -- tempo para resetar a quest local t = {} for i = pos.x -3, pos.x do local player = getThingFromPos({x=i, y=pos.y, z=pos.z, stackpos=253}).uid if isCreature(player) then if getPlayerStorageValue(player, 32800) == -1 and getPlayerLevel(player) >= 100 then uid = uid == nil and 1 or uid + 1 t[uid] = player end else return doPlayerSendCancel(cid, "Você precisa de 4 membros para fazer a quest.") end end if #t == 4 then if getGlobalStorageValue(32800) - os.time() <= 0 then for i = pos.x -3, pos.x do doTeleportThing(getThingFromPos({x=i, y=pos.y, z=pos.z, stackpos=253}).uid, {x=i, y=pos.y, z=pos.z + 1}) doSendMagicEffect({x=i, y=pos.y, z=pos.z + 1}, 27) end doRespaw('demon') setGlobalStorageValue(32800, delay + os.time()) addEvent(doCheck, delay*1000, t) else doPlayerSendCancel(cid, "Espere "..getGlobalStorageValue(32800) - os.time().." segundos para fazer a quest.") end else doPlayerSendCancel(cid, "Alguém no seu grupo já fez a quest.") end return TRUE end function doRespaw(mon) mon1 = {x=190, y=116, z=10, stackpos=253} -- posição demon 1 mon2 = {x=191, y=120, z=10, stackpos=253} -- posição demon 2 mon3 = {x=194, y=118, z=10, stackpos=253} -- posição demon 3 doCreateMonster(mon, mon1) doCreateMonster(mon, {x=mon1.x +2, y=mon1.y, z=mon1.z}) doCreateMonster(mon, mon2) doCreateMonster(mon, {x=mon2.x +2, y=mon2.y, z=mon2.z}) doCreateMonster(mon, mon3) doCreateMonster(mon, {x=mon3.x +1, y=mon3.y, z=mon3.z}) end function doCheck(tab) local templepos = {x=151, y=50, z=7} for i = 1, 4 do if isCreature(tab[i]) then if getPlayerStorageValue(tab[i], 32800) == -1 then doTeleportThing(tab[i], templepos) end end end for posx = mon1.x, mon1.x + 2, 2 do local monster = {x=posx, y=mon1.y, z=mon1.z, stackpos=253} if isCreature(getThingFromPos(monster).uid) then if string.lower(getCreatureName(getThingFromPos(monster).uid)) == 'demon' and isMonster(getThingFromPos(monster).uid) then doRemoveCreature(getThingFromPos(monster).uid) end end end for posx = mon2.x, mon2.x + 2, 2 do local monster = {x=posx, y=mon2.y, z=mon2.z, stackpos=253} if isCreature(getThingFromPos(monster).uid) then if string.lower(getCreatureName(getThingFromPos(monster).uid)) == 'demon' and isMonster(getThingFromPos(monster).uid) then doRemoveCreature(getThingFromPos(monster).uid) end end end for posx = mon3.x, mon3.x + 1 do local monster = {x=posx, y=mon3.y, z=mon3.z, stackpos=253} if isCreature(getThingFromPos(monster).uid) then if string.lower(getCreatureName(getThingFromPos(monster).uid)) == 'demon' and isMonster(getThingFromPos(monster).uid) then doRemoveCreature(getThingFromPos(monster).uid) end end end end Crie um arquivo .lua em data/actions/scripts e cole o script acima nele, feito isso, em data/actions.xml, cole isto: <action actionid="AID" event="script" value="NomeDoArquivo.lua"/> Escolhe o actionid e coloque na alavanca e na tag. Editando o script: Edite a posição do jogador mais próximo da alavanca, linha 3. Edite o tempo citado no funcionamento da quest, linha 5. Edite as posições dos demons, nas linhas 41, 42, 43, onde a primeira posição é onde fica o primeiro demon em cima do jogador, a segunda posição é onde fica o primeiro demon em baixo do jogador e a ultima posição é onde fica o demon ao lado do jogador. Script - Chest: function onUse(cid, item) local itens = { [32800] = {id = 2494, message = "Parabéns, você ganhou uma demon armor."}, [32801] = {id = 2400, message = "Parabéns, você ganhou uma magic sword."}, [32802] = {id = 2431, message = "Parabéns, você ganhou um stonecutter axe."}, [32803] = {id = 2326, message = "Parabéns, você ganhou um annihilation bear."} } if getPlayerStorageValue(cid, 32800) ~= 1 then if itens[item.actionid].id ~= 2326 then doPlayerAddItem(cid, itens[item.actionid].id, 1) else local bag = doPlayerAddItem(cid, 1990, 1) doAddContainerItem(bag, itens[item.actionid].id, 1) end doPlayerSendTextMessage(cid, 22, itens[item.actionid].message) setPlayerStorageValue(cid, 32800, 1) end return TRUE end Crie um arquivo .lua em data/actions/scripts e cole o script acima nele, feito isso, em data/actions.xml, cole isto: <action actionid="32800;32801;32802;32803" event="script" value="NomeDoArquivo.lua"/> Demon Helmet Versão: Demonbholder Sistema: Actions Funcionamento: Clique na alavanca e a pedra sumirá, após alguns segundos ela voltará. Os baús deverão ter os seguintes actionid: 34800, 34801, 34802. Script - Alavanca: function onUse(cid, item) local pedrapos = {x=151, y=51, z=7} -- posição da pedra local pedraid = 1355 -- id da pedra local time = 30 local pos = getThingPos(item.uid) if item.itemid == 1945 then for i = 1, 255 do if getThingFromPos({x=pedrapos.x, y=pedrapos.y, z=pedrapos.z, stackpos=i}).itemid == pedraid then doRemoveItem(getThingFromPos({x=pedrapos.x, y=pedrapos.y, z=pedrapos.z, stackpos=i}).uid, 1) doTransformItem(item.uid, 1946) addEvent(doCreatePedra, 1000*time, pedraid, pedrapos, pos) break else return doPlayerSendCancel(cid, "A pedra ainda não voltou.") end end else return doPlayerSendCancel(cid, "A pedra ainda não voltou.") end return TRUE end function doCreatePedra(id, pos1, pos2) doCreateItem(id, pos1) for i = 1, 255 do local position = {x=pos2.x, y=pos2.y, z=pos2.z, stackpos=i} if getThingFromPos(position).itemid == 1946 then stack = i break end end local posa = {x=pos2.x, y=pos2.y, z=pos2.z, stackpos=stack} doTransformItem(getThingFromPos(posa).uid, 1945) end Crie um arquivo .lua em data/actions/script e cole o script acima nele, feito isso, cole esta tag em data/actions/actions.xml: <action actionid="AID" event="script" value="NomeDoArquivo.lua"/> Escolha um actionid e coloque na alavanca e na tag. Editando o script: Edite a posição da pedra, linha 3, o id da pedra, linha 4 e o tempo que a pedra ficará removida, linha 5. Script - Chest: function onUse(cid, item) local itens = { [34800] = {id = 2493, message = "Parabéns, você ganhou um demon helmet."}, [34801] = {id = 2520, message = "Parabéns, você ganhou um demon shield."}, [34002] = {id = 2645, message = "Parabéns, você ganhou uma steel boots."} } if getPlayerStorageValue(cid, 34800) < 2 then doPlayerSendTextMessage(cid, 22, itens[item.actionid].message) doPlayerAddItem(cid, itens[item.actionid].id, 1) setPlayerStorageValue(cid, 34800, getPlayerStorageValue(cid, 34800) + 1) else doPlayerSendCancel(cid, "Você já fez esta quest.") end return TRUE end Crie um arquivo .lua em data/actions/script e cole o script acima nele e depois em data/actions/actions.xml, cole a seguinte tag: <action actionid="34800;34801;34802" event="script" value="NomeDoArquivo.lua"/> Arena Svargrond Versão: Demonbholder Sistema: Mod Detalhes: Script semelhante a Arena Svargrond do Tibia, pelo qual se desafia 10 monstros. Disponível em apenas 1 dificuldade. Funcionamento: O jogador deve ir em um piso que tenha o actionid 40001 e será teleportado para a arena. Feito isso, ele irá pisar no piso com actionid 40000 e um monstro será criado, ele deverá lutar contra esse monstro. Após matar 10 monstros, o jogador é teleportado para sala de recompensa. Script: <?xml version="1.0" encoding="UTF-8"?> <mod name="Arena Svargrond" enabled="yes" author="Demonbholder" forum="XTibia.com"> <config name="ArenaLib"><![CDATA[ dinheiro = 10000 storage = 47000 storage2 = 47001 playerpos = {x=151, y=48, z=7} -- posicao da arena trofypos = {x=151, y=48, z=7} -- posicao da area apos a arena monpos = {x=151, y=48, z=7} -- posicao onde o monstro sera criado monsters = { [0] = 'rat', [1] = 'dwarf', [2] = 'minotaur guard', [3] = 'demon skeleton', [4] = 'dragon', [5] = 'vampire', [6] = 'giant spider', [7] = 'dragon lord', [8] = 'warlock', [9] = 'demon' } function doRemoveCorpse(pos) for i = 1, 255 do corp = {x=pos.x, y=pos.y, z=pos.z, stackpos=i} if isCorpse(getThingFromPos(corp).uid) then break end end doRemoveItem(getThingFromPos(corp).uid, 1) end ]]></config> <creaturescript type="death" name="Arena" event="script"><![CDATA[ domodlib('ArenaLib') if isPlayer(deathList[1]) and isMonster(cid) then if getPlayerStorageValue(deathList[1], storage) > -1 and getPlayerStorageValue(deathList[1], storage) < 10 then setPlayerStorageValue(deathList[1], storage, getPlayerStorageValue(deathList[1], storage) + 1) addEvent(doRemoveCorpse, 500, getCreaturePosition(cid)) setPlayerStorageValue(deathList[1], storage2, -1) end if getPlayerStorageValue(deathList[1], storage) == 10 then doTeleportThing(deathList[1], trofypos) end end return TRUE ]]></creaturescript> <creaturescript type="kill" name="ArenaK" event="script"><![CDATA[ domodlib('ArenaLib') if isMonster(cid) and isPlayer(target) then if getPlayerStorageValue(target, storage) > -1 and getPlayerStorageValue(target, storage) < 10 then setPlayerStorageValue(target, storage, -1) setPlayerStorageValue(target, storage2, -1) doRemoveCreature(cid) addEvent(doRemoveCorpse, 500, getCreaturePosition(target)) end end return TRUE ]]></creaturescript> <creaturescript type="logout" name="ArenaL" event="script"><![CDATA[ domodlib('ArenaLib') if getPlayerStorageValue(cid, storage) > -1 and getPlayerStorageValue(cid, storage) < 10 then return FALSE, doPlayerSendCancel(cid, "You can't logout during arena!") end return TRUE ]]></creaturescript> <movevent type="StepIn" actionid="40000" event="script"><![CDATA[ domodlib('ArenaLib') if monsters[getPlayerStorageValue(cid, storage)] then if getPlayerStorageValue(cid, storage2) == -1 then local mon = doCreateMonster(monsters[getPlayerStorageValue(cid, storage)], monpos) setPlayerStorageValue(cid, storage2, 1) registerCreatureEvent(mon, "Arena") registerCreatureEvent(mon, "ArenaK") end end return TRUE ]]></movevent> <movevent type="StepIn" actionid="40001" event="script"><![CDATA[ domodlib('ArenaLib') for _, pid in pairs(getPlayersOnline()) do if (getPlayerStorageValue(pid, storage) > -1 and getPlayerStorageValue(pid, storage) < 10) or getPlayerStorageValue(cid, storage) == 10 then return TRUE, doTeleportThing(cid, fromPosition) end end if getPlayerMoney(cid) < dinheiro then return TRUE, doTeleportThing(cid, fromPosition), doPlayerSendCancel(cid, "Voce nao tem dinheiro.") end doPlayerRemoveMoney(cid, dinheiro) setPlayerStorageValue(cid, storage, 0) doPlayerSendTextMessage(cid, 4, "Arena Svargrond!") return TRUE, doTeleportThing(cid, playerpos) ]]></movevent> </mod> Crie um arquivo .xml em mods e cole este script nele, nada mais precisa ser feito. Editando o script: Logo no início do mod você deve mudar as posições da sala de recompensas, de onde os monstros vão ser criados e de onde fica a arena. É possível mudar os monstros também. Lembrando que o actionid dos pisos devem ser 40000 para o de entrada na arena e 40001 para criar os monstros. Só irei avaliar pedidos de quests que tiverem explicações e forem do tibia. Favor avisar caso seja encontrado alguma falha. Por enquanto é isso galera, com o tempo eu irei adicionando mais quests. Espero que aproveitem, até mais.1 ponto -
[Linux] Compilando Em Debian E Ubuntu.
Leoprotons reagiu a Natanael Beckman por um tópico no fórum
FECHA O TOPICO PLZ OU REMOVE!1 ponto -
[Extension] Adicionando Wall 8.6
Gabriel Couto reagiu a williamserravalle por um tópico no fórum
Bom galera, como to sempre presissando dessa wall e fica dificil usa no RAW resolvi coloca no RME, vamos ao que intereça vai Remere's Map Editor\data\860\tilesets.XML E procure a seguinte linha <brush name="stone floor"/> e Em baixo Adcione essa linha... <brush name="Wall 8.6 Red Flaky"/> <brush name="Wall 8.6 Green Flaky"/> <brush name="Fence 8.6 Green No Stripes"/> Ficando assim... <brush name="stone floor"/> <brush name="Wall 8.6 Green Flaky"/> <brush name="Wall 8.6 Red Flaky"/> <brush name="Fence 8.6 Green No Stripes"/> Depois De ter Feito Isso va em walls.XML (NA MESMA PASTA) E la em baixo adicione isso... ATENÇÂO:Você tem que tomar cuidado, pois você tem que adicionar este script depois de qualquer <brush>, e so pode haver apenas UM </brush> no final do script Bom, após você fazer isso, você precisa abrir seu RME, e ir até "Terrain Palette/Town" Você tera algo assim... Fence 8.6 Green No Stripes Wall 8.6 Green Flaky Wall 8.6 Red Flaky Gente sei que é um Script, mto Simples+ pra qualque mapper ira FACILITAR muita a vida ^^1 ponto -
1 ponto
-
Comando !b Para VIPs Bom, Esse Script Feito Por Mim, é Muito Simples, ele deicha o player falar com o serv inteiro com o comando !b (ex: !b oi) Vamos Ao Script 1º Vá em data/talkactions/talkactions.xml e coloque isto la <talkaction words="!b" event="script" value="talkbroad.lua"/> 2° Vá Em data/talkactions/Scripts e copie um arquivo qualquser q seja .lua e coloque este nome talkbroad, Apos Ter Feuti Isso, Abra-o, apague Tudo e Coloque isto ------ Script By Linnux for Xtibia.com Users ------- local configs = { cobrar = "sim", ------ Use sim ou nao para cobrar. sovip = "sim", ------ Se somente vip players poderam usar o comando price = 1000, ------ Preço a pagar se o cobrar estiver ativado. storage = 13541 ------ Storage Id da sua vip account caso for usar somente vips } function onSay(cid, words, param) local nada = {" "} if table.isStrIn(param, nada) or param == "" then doPlayerSendCancel(cid,"Voce precisa falar alguma coisa.") return TRUE end if configs.sovip == "sim" and getPlayerStorageValue(cid, tonumber(configs.storage)) - os.time() <= 0 then doPlayerSendCancel(cid,"Você não é vip.") return TRUE end if configs.cobrar == "sim" and not doPlayerRemoveMoney(cid,tonumber(configs.price)) then doPlayerSendCancel(cid,"Você não tem dinheiro suficiente.") return TRUE end doBroadcastMessage(""..getCreatureName(cid).." ["..getPlayerLevel(cid).."]: " .. param .. "", MESSAGE_INFO_DESCR) return TRUE end Pronto, O Script Está Criado, agora só salvar, fechar e ir no ot Aproveitar Gostou ??? Da um :button_ok: Ai Meus Scripts E Mapas Apenas Para o :XTibia_smile:1 ponto
-
Freeze
risada21 reagiu a Connection por um tópico no fórum
V. 8.60 Descrição: Deixa o jogador alvo parado por x segundos se cid tiver x mana, e depois volta ao normal. freeze.lua: actions.xml [tag] sr21 ponto -
Tibia 9.31 Lançado - Novo Sistema De Tutores
fsg reagiu a Gabriel Couto por um tópico no fórum
Anti-RipTibia 9.31 Lançado - Novo Sistema de TutoresAnti-Rip Olá pessoal, o novo client 9.31 de Tibia foi lançado, e junto à ele, um novo sistema de Tutores. Agora, você pode se tornar um tutor ajudando os jogadores nas seguintes seções do Fórum Tibia (Tibia.com): Help BoardAnti-Rip Technical Support BoardAnti-Rip Billing BoardAnti-Rip Anti-Rip Anti-Rip Nessa foto, o Tutor possui duas estrelas, isso significa que ele era um Senior Tutor, que deixou de existir. Os novos tutores passarão à ter uma estrela somente, e vão aumentando seu número. Mas, você deve estar se perguntando: É simplesmente ajudar? Não possuem outras regras? A resposta é Sim, precisam de alguns requisitos: Precisa receber 40 "Thank you!'s" nos últimos 90 dias.Anti-Rip A conta deve ter pelo menos 3 meses e você deve ter pelo menos 1 personagem level que possua level 20 ou mais.Anti-Rip Seu criminal record não deve conter nenhum tipo de banimento.Anti-Rip Sua conta deve ser registrada no Tibia.Anti-Rip Agora, você deve estar se perguntando o que deve ser esse tal Thank You que é requerido. Esse seria o agradecimento da pessoa à quem a dúvida foi respondida, e precisa estar logada no Tibia.com para dar esses pontos. Anti-Rip Anti-Rip Esse botão se mostra abaixo do post da pessoa, e é só clicar para dar os pontos, como na foto acima. E também as estrelas se mostram no perfil do character: Anti-Rip Anti-Rip Anti-Rip Essa é uma Notícia de Tibia Global exclusiva do XTibia e feita por AnyurCT. Anti-Rip1 ponto -
Olá Sou Overllord Estou Postando Um Tutorial ai Pra Voces Que Gostam De Poketibia, Vamus Começa: Vá Na Pasta do Seu Serve de Poketibia e Vá em Talkactions e em seguida em Scripts Copie e Cole Qualquer arquivo .lua e Renomei para ( Love.lua ). e apage tudo que estiver dentro e ponha isso dentro: Depois vá em talkactions.Xml e ponha isso dentro:1 ponto
-
pela foto vejo que e uma entrada para hunt, pequena mais bem detalhada legal obrigado pela contribuiçao e hj eu tenhu um REP+ disponivel e vai pra vc1 ponto
-
[Creaturescript] Kill Monster Win Item
jlimacoelho1 reagiu a SkyDangerous por um tópico no fórum
Script: Você mata um monstro e ganha um item. Cria um arquivo lua chamada monster.lua em creaturescript. local sky = { monster = "Nome do Monstro", item = {item, item1,item2,item3}, storage = 15000 } function onKill(cid, target, lastHit) if getPlayerStorageValue(cid, sky.storage) < 1 then if isPlayer(cid) and getCreatureName(target) == sky.monster then doPlayerAddItem(cid, sky.item[math.random(1, #sky.item)]) setPlayerStorageValue(cid, sky.storage, 1) end end return true end em seguida abra creaturescript.xml e colaca essa tag <event type="kill" name="killmonster" event="script" value="monster.lua"/> abra login.lua e cole isso: registerCreatureEvent(cid, "killmonster") agora abra o monstro que vai ter esse efeito e cola isso: <script> <event name="killmonster"/> </script> Editando: Nome do monstro que você quer. monster = "Nome do Monstro", Onde está o nome item coloca-o id dos item , se quiser acrescentar mais pode. item = {item, item1,item2,item3}, Agradecimentos: OneShot e Apocarai E Tutorial do Outro forum por dar a ideia.1 ponto -
Duvida Sobre Script
dragonfight reagiu a fredpadua por um tópico no fórum
<vocation id="0" name="None" description="none" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="10" gainmanaticks="6" gainmanaamount="10" manamultiplier="4.0" attackspeed="2000" soulmax="100" gainsoulticks="120" lostexp="3" lostmlv="3" lostskill="3" distdamage="2" meledamage="2" charge="11"> <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> Acho que não pois os skills id's são equivalentes aos do novo script.. mas porque voce está usando o script antigo ao inves do novo ? É mais facil editar o script se ja tiver os nomes certos.. doque esse id's.1 ponto -
Sistema Vip Kydrai Nick [Vip]
ofrog reagiu a Demonbholder por uma questão
Tenta: function onLogin(cid) if (isVip(cid) == TRUE and getPlayerStorageValue(cid, 56000) == -1) or (isVip(cid) == FALSE and getPlayerStorageValue(cid, 56000) == 1) then doPlayerSendTextMessage(cid, 4, "Sua vida e mana foram alterados.") if isVip(cid) then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)*2) setCreatureMaxMana(cid, getCreatureMaxMana(cid)*2) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)*2) doCreatureAddMana(cid, getCreatureMaxMana(cid)*2) setPlayerStorageValue(cid, 56000, 1) else setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)/2) setCreatureMaxMana(cid, getCreatureMaxMana(cid)/2) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/2) doCreatureAddMana(cid, getCreatureMaxMana(cid)/2) setPlayerStorageValue(cid, 56000, -1) end end return true end1 ponto -
o jeito mais facil eh pelo rme, eh so tu colocar um bau qualquer, clica com o botao direito nele, ai vai ter: actionid e uniqueid ai tu coloca actionid: 2000 e uniqueid: 20001 ai depois tu clica em uns quadrados pretos que vai ter, e add os items q tu quer mas lembre a proxima quest vai ter q ser assim: actionid: 2000 uniqueid: 200021 ponto
-
1 ponto
-
Onde Por Os Scripts De Itens? '-'
Mastershakke reagiu a Lolksky por um tópico no fórum
Vai na pasta data/actions/scripts copia um arquivo qualquer lá e cola esse seu script dentro e renomeie o nome que desejar. Depois vai em data/actions.XML e add essa TAG no final: Aonde está em XXXX você coloca o Unique ID que voce vai colocar no uniqueID do bau ou qualquer outro objeto da quest no seu map editor. Lembrando que esse Unique ID não pode ser repetido. Onde está NOME DO SCRIPT você coloca o nome q vc renomeou o arquivo quando copiou e colou, EX: se vc renomeou o arquivo para "quest", vc coloca "quest.lua" também, sempre deixando o ".lua" depois do nome (script: NOME, TAG: NOME.lua) Feito isso, vamos as configurações desse script: Agora remova todas indicações onde eu mostrei onde editar "<-- bla bla bla" coloridos..." Prontinho, espero que tenha entendido1 ponto -
Cara Coisa simples. Pra voce Invitar ou Usar os Comandos , Tem que Ser no Chat da Guild , nao no Deafult. ^^ __ Ajudei ? Rep1 ponto
-
cada vez fazendo + sucesso continua assim :button_ok:1 ponto
-
Autor: Mock the bear Servidor testado: TFS 0.3.6 Depois de muita espera eu dei a chance de liberar o script, disse que iria postar assim que descobrissem como criar um tile onde não tem. Pois bem um cara desse forum chamado kydrai descobriu e coube ao lucas123 mostrar. Parabens kydrai ;D Script dedicado a vc. A minnha funçao é essa: function doCreateTile(id,pos) -- By mock doAreaCombatHealth(0,0,pos,0,0,0,255) doCreateItem(id,1,pos) end E a dele é essa: function doCreateTile(cid, tileid, pos) -- by Kydrai doCombatAreaHealth(cid, 0, pos, 0, 0, 0, CONST_ME_NONE) doCreateItem(tileid, 1, pos) end O principio é o mesmo. Abusar de um bug do distro que cria um tile quando executa uma spell. E com o tile pode criar o SQM. Bom vamos começar. Primeiro crie um arquivo chamado flylib.lua na pasta data/lib do seu server e coloque isso: CONST_FLYVOID = 460 CONT_FLYOUTFIT = 239 IGNORED = {6495,7096,7099,5167,5162,5163,405,7100, 5315,5521,5316,5193,5192,5191,945,5048,923,950,951, 952,953,3623,954,955,949,9101,3352,9106,9103,1524, 1111,437,433,443,434,442,436,445,941,444,435,943, 1027,925,930,926,928,922,921,1112,406,904,931,934, 932,933,5319} --- Config here up = {} down = {} fly = {} fly.win = function(cid)-- Script by mock setPlayerStorageValue(cid, 102015,1) doPlayerSendTextMessage(cid,27,'Now you can fly.') end fly.add = function(cid)-- Script by mock if getPlayerStorageValue(cid, 102015) == -1 or getPlayerStorageValue(cid,13241) == 1 then return false end if getPlayerStorageValue(cid, 102059) <= 0 then local outfit = getCreatureOutfit(cid) outfit.lookType = CONT_FLYOUTFIT doSetCreatureOutfit(cid, outfit, -1) setPlayerStorageValue(cid, 102059,1) doChangeSpeed(cid, 390) doPlayerSendTextMessage(cid,27,'Fale \'up\' e \'down\'.' ) return true else doPlayerSendTextMessage(cid,27, "Você ja esta voando.") return false end end function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end fly.using=function(cid)-- Script by mock return getPlayerStorageValue(cid, 102059) > 0 end fly.logout = function(cid)-- Script by mock if fly.using(cid) then local p = getCreaturePosition(cid) setPlayerStorageValue(cid, 102010,1) setPlayerStorageValue(cid, 102011,p.x) setPlayerStorageValue(cid, 102012,p.y) setPlayerStorageValue(cid, 102013,p.z) deletarEmVolta(p) fly.del(cid) end return true end fly.login = function(cid)-- Script by mock if getPlayerStorageValue(cid, 102010) ~= -1 then setPlayerStorageValue(cid, 102010,-1) local p = {} p.x = getPlayerStorageValue(cid, 102011) p.y = getPlayerStorageValue(cid, 102012) p.z = getPlayerStorageValue(cid, 102013) if not checkAround(p) then fly.add(cid) down.gerarEmVolta(p) doTeleportThing(cid,p) end end return true end fly.die = function(cid)-- Script by mock if fly.using(cid) then local p = getCreaturePosition(cid) setPlayerStorageValue(cid, 102011,-1) setPlayerStorageValue(cid, 102012,-1) setPlayerStorageValue(cid, 102013,-1) deletarEmVolta(p) fly.del(cid) end return true end fly.del = function(cid)-- Script by mock if getPlayerStorageValue(cid, 102059) > 0 then if getSqmId(getCreaturePosition(cid)).itemid == CONST_FLYVOID then return false end doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 102059,-1) doChangeSpeed(cid, -390) return true end end function hasSqm2(pos)-- Script by mock local f = getTileThingByPos(pos) if f.itemid ~= 0 and f.itemid ~= 1 and (not isWalkable(pos) and not isInArray(IGNORED,f.itemid)) then return true end return false end function hasSqm3(pos)-- Script by mock local f = getTileThingByPos(pos) if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID and not isInArray(IGNORED,f.itemid) then return true end return false end function deletar(pos)-- Script by mock if hasSqm(pos) then local sqm = getSqmId(pos) if sqm.itemid == CONST_FLYVOID then doRemoveItem(sqm.uid,1) end end end function deletarEmVolta(pos) for x=-1,1 do for y=-1,1 do deletar({x=pos.x+x,y=pos.y+y,z=pos.z}) end end end function checkAround(pos)-- Script by mock for x=-1,1 do for y=-1,1 do if hasSqm2({x=pos.x+x,y=pos.y+y,z=pos.z}) then return true end end end return false end function fly.checkAround(pos)-- Script by mock local n = 0 for x=-1,1 do for y=-1,1 do local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z}) if g.itemid == CONST_FLYVOID then n = n+1 end if isCreature(getTopCreature({x=pos.x+x,y=pos.y+y,z=pos.z}).uid) then return false end end end if n == 9 then return true end return false end function up.checkAround(pos)-- Script by mock for x=-1,1 do for y=-1,1 do local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z}) if hasSqm3({x=pos.x+x,y=pos.y+y,z=pos.z}) or g.itemid == CONST_FLYVOID then return true end end end return false end function down.checkAround(pos,f)-- Script by mock for x=-1,1 do for y=-1,1 do local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z}) if (not f and hasSqm2({x=pos.x+x,y=pos.y+y,z=pos.z})) or g.itemid == CONST_FLYVOID then return true end end end return false end function gerarEmVolta(pos)-- Script by mock local n = 30000 for x=-1,1 do for y=-1,1 do n =n+1 doItem({x=pos.x+x,y=pos.y+y,z=pos.z},n) end end end function doItem(pos,a,d)-- Script by mock if not hasSqm2(pos) then doCreateTile(CONST_FLYVOID,pos) pos.stackpos = 0 local c = getTileThingByPos(pos) doSetItemActionId(c.uid, a) end end function getSqmId(pos,t)-- Script by mock if hasSqm(pos) or t then pos.stackpos = 0 local i = getTileThingByPos(pos) return i end return nil end function down.doItem(pos,a)-- Script by mock if not hasSqm(pos) then doCreateTile(CONST_FLYVOID,pos) pos.stackpos = 0 local c = getTileThingByPos(pos) doSetItemActionId(c.uid, a) end end function down.gerarEmVolta(pos)-- Script by mock local n = 30000 for x=-1,1 do for y=-1,1 do n =n+1 down.doItem({x=pos.x+x,y=pos.y+y,z=pos.z},n) end end end function doCreateTile(id,pos) -- Script by mock doAreaCombatHealth(0,0,pos,0,0,0,255) doCreateItem(id,1,pos) end Agora é 1 scritp em creaturescripts, 3 em talkactions e 1 em movements. Creaturescripts Em seu login.lua coloque isso: fly.login(cid) no seu logout.lua coloque isso: fly.logout(cid) e no script que o player morre coloque isso: fly.die(cid) Isso é para quando o player entrar e sair do server pra voltar onde ele estava :coolface: Movements Em movements.xml: <movevent type="StepIn" actionid="30001" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30002" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30003" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30004" event="script" value="fly.lua"/> <movevent type="StepOut" actionid="30005" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30006" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30007" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30008" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30009" event="script" value="fly.lua"/> <movevent type="AddItem" tileitem="1" itemid="460" event="script" value="fly.lua"/> E no script fly.lua ---Script by mock the bear function doCopyItem(item,pos) ---Script by mock the bear for i=1,6 do pos.z = pos.z+1 if hasSqm(pos) and getSqmId(pos).itemid ~= 10217 then local i = doCreateItem(item.itemid,item.type,pos) if item.actionid ~= 0 then doSetItemActionid(i,item.actionid) end doSendMagicEffect(pos,9) return i else local p2 = {x=pos.x+1,y=pos.y+1,z=pos.z} doSendDistanceShoot(pos,p2,40) doSendMagicEffect(pos,2) end end end function onAddItem(item,pos,k) ---Script by mock the bear doCopyItem(item,k) doRemoveItem(item.uid,item.type == 0 and 1 or item.type) end function onStepIn(cid, item, position, fromPosition) ---Script by mock the bear local dir = { [30004] = {0,6,7}, [30007] = {7,0,6,1,5}, [30008] = {1,5,7}, [30009] = {5,4,2,1,7}, [30006] = {2,5,4}, [30003] = {4,3,6,2,5}, [30002] = {3,4,6}, [30001] = {6,0,7,3,4}, } if isPlayer(cid) then local chkps = {x=position.x,y=position.y,z=position.z} local ig = false for i,b in pairs(dir[item.actionid]) do local nw = getPosByDir(chkps,b) local g = getTileThingByPos(nw) if hasSqm3(nw) or g.itemid == CONST_FLYVOID or nw.x < 35 or nw.y < 35 then ig = true break end end if not ig then deletarEmVolta(fromPosition) gerarEmVolta(getCreaturePosition(cid)) else doTeleportThing(cid,fromPosition,false) doPlayerSendTextMessage(cid,27, "Sorry, you cannot fly here.") end end end function onStepOut(cid, item, position, fromPosition,q) addEvent(function(pos) if fly.checkAround(pos) then deletarEmVolta(pos) end end,10000,position) end Talkactions Em talkactions.xml <talkaction words="up" case-sensitive="no" event="script" value="flyup.lua"/> <talkaction words="down" case-sensitive="no" event="script" value="flydown.lua"/> <talkaction words="!fly" case-sensitive="no" event="script" value="fly.lua"/> Em fly.lua function onSay(cid, words, param) --- By moc kthe bear (MTB) if param ~= '' and getPlayerGroupId(cid) > 3 then local cida = getPlayerByName(param) if cida and isPlayer(cida) then fly.win(cida) end return true end if fly.using(cid) then local p = getCreaturePosition(cid) p.stackpos = 0 local f = getTileThingByPos(p) if fly.del(cid) then if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID then return true else setPlayerStorageValue(cid,10941,1) local p = getCreaturePosition(cid) setPlayerStorageValue(cid, 102011,p.x) setPlayerStorageValue(cid, 102012,p.y) setPlayerStorageValue(cid, 102013,p.z) return true end else doPlayerSendTextMessage(cid,27,'You cannot turn off the fly here.') end else if fly.add(cid) then local pos = getCreaturePosition(cid) if getSqmId(pos).itemid == 10217 then down.gerarEmVolta(pos) end return true else doPlayerSendTextMessage(cid,27,'You cannot fly.') return true end end return true end Flyup.lua function onSay(cid)--- By moc kthe bear (MTB) local time = os.time() if time < getPlayerStorageValue(cid, 102054) then doPlayerSendCancel(cid, "You are exhausted.") return true end if not fly.using(cid) then return false end local pos = getCreaturePosition(cid) pos.z = pos.z-1 if hasSqm(pos) or pos.z < 0 or up.checkAround(pos) then doPlayerSendTextMessage(cid,27,'You cannot fly higger.') return true else gerarEmVolta(pos) doTeleportThing(cid,pos) pos.z = pos.z+1 deletarEmVolta(pos) end return true end Flydown.lua function onSay(cid)--- By moc kthe bear (MTB) local time = os.time() if time < getPlayerStorageValue(cid, 102054) then doPlayerSendCancel(cid, "You are exhausted.") return true end if not fly.using(cid) then return false end local pos = getCreaturePosition(cid) pos.stackpos = 0 local g = getTileThingByPos(pos) pos.z = pos.z+1 local f = getTileThingByPos(pos) if getSqmId(getCreaturePosition(cid)).itemid ~= CONST_FLYVOID or down.checkAround(pos) or (g.itemid ~= CONST_FLYVOID and f.itemid ~= CONST_FLYVOID and f.itemid ~= 0 and f.itemid ~= 1) or (not isWalkable(pos,true,false,false) and hasSqm(pos)) or (hasSqm(pos) and not getTileHouseInfo(pos)) == 0 then doPlayerSendTextMessage(cid,27,'You cannot go to down here.') return true else down.gerarEmVolta(pos) doTeleportThing(cid,pos) pos.z = pos.z-1 deletarEmVolta(pos) end return true end E pronto. Esse não tem o recurso de cair que tem no video por que aquilo é do K.A junto do flysystem 2.0. Esse ja foi do K.A porem agora ele tem um melhor. Esse ai é bom sim porem não serve mais pro k.a entao ta liberado. Façam bom uso modifiquem da forma que quiserem corrijam os bugs e repostem melhorado contanto que nao tire meus creditos. Lembrando que nao precisa mudança na source. Eu sei ta um pog do baralho nao tive paciencia pra faze um remake. Se gostaram clica no meu ovinho da assinatura1 ponto
-
e ai Carnavotu tudo bom? eu to precisando de uma ajudo pq quando eu ligo o server e entro os trainers somem,depois eu vou editar o mapa e os trainers estao la olha a mensagem que da no excutavel do server: pow to precisando de ajeitar isso urgente,se alguem puder me ajudar fico grato desde já vlw1 ponto
-
Bom a função é igual a do ponte de rookgaard do tibia global. Só passa quem é premium account. Explicação: Azul = Lugar para onde o player sera teleportado se ele nao for premmy Verde = Msg que aparecerá para o player caso ele nao seja premmy Vermelho = UniqueID do piso Agora vá em movements.xml e coloque: Créditos -Feito por DOJAN Espero que aproveitem bastante //GOD Vini1 ponto
-
Adc Addon Doll,editando Wand,staff,rod,editando Armas/equips
Gabriel Couto reagiu a jamersonandres por um tópico no fórum
.-1 pontos -
[Turital] Banner Para Gesior Account.
Pkworld reagiu a Trivelatos por um tópico no fórum
TURITAl, rsrsrsrrs, MUITO BOM MANO CURTI O CONTEUDO REP+-1 pontos