Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 07/02/10 em todas áreas
-
PokeBall System! Ola Xtibianos, Vim hoje postar um Famoso Script de Pokeball System feito pelo Genioso Nahruto, claro pedi a autorização dele para postar. A Todos que forem pegar Scripts de outras Pessoas, lembre-se de sempre pedir autorização e claro colocar os creditos. Para Tfs: 0.34 , 0.35 e 0.36 Essas Forao Testadas E Funfo. Versoes: 8.42 - 8.50 - 8.52 - 8.54 - 8.6. Ots Testados: Snowz Yurots - Alissow Server - Styller Yurots Primeiramente Vamos Fuçar em Function.lua, se voce nao Sabe onde fica vá em: Data>Lib>Function.lua Abra e Coloque Isto: _warpzone = 2147483648 -- start storing strings here (THIS IS THE ABSOLUTE MAXIMUM VALUE FOR THIS) _maxlength = 1024 -- multiply by 3 to get the true length. setPlayerStorageInteger = setPlayerStorageValue getPlayerStorageInteger = getPlayerStorageValue function setPlayerStorageString(cid, key, value) if #value > (_maxlength-1) * 3 - 1 then -- Last word is reserved for 0 termination of the string. error("Storage string is too long") end if key > _warpzone / _maxlength then error("Storage string key is too large (" .. key .. ")") end key = _warpzone + key * _maxlength local word = 0 local wordwrap = 0 local wordcount = 0 local i = 1 while i <= #value do local byte = string.byte(string.sub(value, i, i)) word = bit.bor(word, bit.lshift(byte, wordwrap)) wordwrap = wordwrap + 8 if wordwrap == 24 then --[[ In the ideal world we would be able to store 4 characters per word, however, as the default return value for getPlayerStorageValue is -1, we cant use the last bit. ]]-- setPlayerStorageInteger(cid, key + wordcount, word) word = 0 wordwrap = 0 wordcount = wordcount + 1 end i = i + 1 end -- store the last word setPlayerStorageInteger(cid, key + wordcount, word) end function getPlayerStorageString(cid, key) if key > _warpzone / _maxlength then error("Storage string key is too large (" .. key .. ")") end key = _warpzone + key * _maxlength local wordcount = 0 local str = "" while true do if wordcount >= _maxlength then break end local word = getPlayerStorageInteger(cid, key + wordcount) if word == -1 then -- end of string break else -- Extract the 3 characters from the value byte = bit.band(word, 255) if byte == 0 then break else str = str .. string.char(byte) end byte = bit.rshift(bit.band(word, 65280), 8) if byte == 0 then break else str = str .. string.char(byte) end byte = bit.rshift(bit.band(word, 16711680), 16) if byte == 0 then break else str = str .. string.char(byte) end end wordcount = wordcount + 1 end return str end E Isso! function doConvinceSummon(cid, creature, amount, pos) summonplayerpos = {x=pos.x, y=pos.y, z=pos.z, stackpos=253} summonplayer = getThingfromPos(summonplayerpos) if(summonplayer ~= nil and summonplayer.itemid > 0) then doPlayerSendCancel(cid,"There is not enough room to summon here.") ret = 0 else convince = doSummonCreature(creature, pos) doConvinceCreature(cid, convince) ret = 1 end return ret end Agora Vamos Fazer o Script Vá em Pasta do Seu Ot > Data > Actions > Scripts Crie uma Pasta chamada pokeball.lua e bote isso dentro local notAllowed = {"Ferumbras", "Demon"} local storage = { status = 25650, pokeName = 25651 } local actionid_used = 7510 function onUse(cid, item, fromPos, item2, toPos) local pokeballStatus = getPlayerStorageValue(cid, storage.status) local pokeName = getPlayerStorageString(cid, storage.pokeName) pos = getPlayerPosition(cid) pos.stackpos = 0 if pokeballStatus == -1 then toPos.stackpos = 253 local pokeThing = getThingfromPos(toPos) if isCreature(pokeThing.uid) == TRUE then if isPlayer(pokeThing.uid) == FALSE then local pokename_ = getCreatureName(pokeThing.uid) if item.actionid ~= actionid_used then -- local maxHealth = 400 -- local creatureHealth = getCreatureHealth(pokeThing.uid) -- local divNum = (string.len(maxHealth)-1)^2 -- local result = math.floor((creatureHealth/divNum)/10) -- local chance = math.random(1, math.random(4, math.random(7, math.max(result, 7)))) -- if chance == result then if isInTable(notAllowed, pokename_) == TRUE then doPlayerSendCancel(cid, "You cannot catch this creature") else setPlayerStorageString(cid, storage.pokeName, pokename_) doRemoveCreature(pokeThing.uid) doSendDistanceShoot(fromPos, toPos, 37) setPlayerStorageValue(cid, storage.status, 1) doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".") doSetItemActionId(item.uid, actionid_used) end -- else -- doSendMagicEffect(fromPos, 2) -- doPlayerSendCancel(cid, "The Pokemom Escaped") -- end elseif item.actionid == actionid_used and pokename_ == pokeName then doPlayerSay(cid, pokeName .. " Back!!", TALKTYPE_SAY) doRemoveCreature(pokeThing.uid) doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".") setPlayerStorageValue(cid, storage.status, 1) doSendDistanceShoot(fromPos, toPos, 37) else doSendMagicEffect(fromPos, 2) doPlayerSendCancel(cid, "This pokeball is already used") end else doPlayerSendCancel(cid, "You cannot catch this creature") end else doPlayerSendCancel(cid, "Creature not found") end elseif pokeballStatus == 1 then summons = getCreatureSummons(cid) -- if #summons >= 2 then -- doPlayerSendCancel(cid, "You cannot call more pokemons") -- else doConvinceSummon(cid, pokeName, 0, toPos) doSendDistanceShoot(fromPos, toPos, 37) doPlayerSay(cid, pokeName .. " Go!!", TALKTYPE_SAY) setPlayerStorageValue(cid, storage.status, -1) doSetItemSpecialDescription(item.uid, "it is empty.") -- end end else return 1 end function isInTable(t, val) for _, v in pairs(t) do if v == val then return TRUE end end return LUA_ERROR end para TFS local notAllowed = {"Ferumbras", "Demon"} local storage = { status = 15244, pokeName = 15212 } local actionid_used = 7510 function onUse(cid, item, fromPos, item2, toPos) local pokeballStatus = getPlayerStorageValue(cid, storage.status) local pokeName = getPlayerStorageString(cid, storage.pokeName) pos = getPlayerPosition(cid) pos.stackpos = 0 if pokeballStatus <= 0 then toPos.stackpos = 253 local pokeThing = getThingfromPos(toPos) if isCreature(pokeThing.uid) == TRUE then if isPlayer(pokeThing.uid) == FALSE then local pokename_ = getCreatureName(pokeThing.uid) if item.actionid ~= actionid_used then -- local maxHealth = 400 -- local creatureHealth = getCreatureHealth(pokeThing.uid) -- local divNum = (string.len(maxHealth)-1)^2 -- local result = math.floor((creatureHealth/divNum)/10) -- local chance = math.random(1, math.random(4, math.random(7, math.max(result, 7)))) -- if chance == result then if isInTable(notAllowed, pokename_) == TRUE then doPlayerSendCancel(cid, "You cannot catch this creature") else setPlayerStorageString(cid, storage.pokeName, pokename_) doRemoveCreature(pokeThing.uid) doSendDistanceShoot(fromPos, toPos, 37) setPlayerStorageValue(cid, storage.status, 1) doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".") doSetItemActionId(item.uid, actionid_used) end -- else -- doSendMagicEffect(fromPos, 2) -- doPlayerSendCancel(cid, "The Pokemom Escaped") -- end elseif item.actionid == actionid_used and pokename_ == pokeName then doCreatureSay(cid, pokeName .. " Back!!", TALKTYPE_SAY) doRemoveCreature(pokeThing.uid) doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".") setPlayerStorageValue(cid, storage.status, 1) doSendDistanceShoot(fromPos, toPos, 37) else doSendMagicEffect(fromPos, 2) doPlayerSendCancel(cid, "This pokeball is already used") end else doPlayerSendCancel(cid, "You cannot catch this creature") end else doPlayerSendCancel(cid, "Creature not found") end elseif pokeballStatus == 1 then -- summons = doCreatureSummons(cid) -- if #summons >= 2 then -- doPlayerSendCancel(cid, "You cannot call more pokemons") -- else doConvinceSummon(cid, pokeName, 0, toPos) doSendDistanceShoot(fromPos, toPos, 37) doCreatureSay(cid, pokeName .. " Go!!", TALKTYPE_SAY) setPlayerStorageValue(cid, storage.status, 0) doSetItemSpecialDescription(item.uid, "it is empty.") -- end end return 1 end function isInTable(t, val) for _, v in pairs(t) do if v == val then return TRUE end end return LUA_ERROR end Agora Vamos Adicionar as Tags, vá em Data>Actions.xml e Adicione as Tags Corretas´ <action itemid="xxxx" script="pokeball.lua" allowfaruse="1" blockwalls="1" /> [font-"Georgia"]em <action itemid="xxxx" nos 4 X voce coloca o Number Id Do seu Item que Será como uma "Pokeball"[/font] Oque o Script Faz Realmente: - Guarda monstros dentro de objetos e salva seu status, você pode colocar pra salvar em qlqr objeto.. seria ótimo para projetos pokemons.. Creditos: Nahruto Print Screen's: Snorlax Saindo da Pokeball: Snorlax Voltando para a Pokeball Look da Pokeball ( o Player so Ve assim You See a Pokeball , Have Snorlax )] Lembrando que eu nao Adicionei o Efeito da Pokeball Abrindo e Jogando o Monstro. Para fazer este Tipo de efeito voce vai ter que saber direitinho o LookType da Pokeball Fechando e Saindo, e transformar para um efeito e depois modificar no Script, aqui no xtibia Existe varios Tutoriais explicando isto, é so procurar! Gostou? Clica no Ali em Baicho para me Ajudar! Abraços..2 pontos
-
- Mix Yourots - ~||0.0.1||~ *Contém apenas 2 cidades por enquanto. *Área de teleports para as hunts. *Sistema de Prisão. *Por inquanto temos as principais quests como: Pits of Inferno (POI), Demon Helmet, Annihilator, Inquisition, entre outras. *Soft boots pode ser recarregada pelo NPC Jenny que fica ao sudeste da Mix City. *Itens e monstros do update estão 100% completos. *Magias totalmente balanceadas seguindo o padrão do Tibia Global. *Addons do update estão 100%. *Sistema de voar (Créditos ao Forcera). *Distro TCS modificado com amplas proteções - Totalmente Estável. *Highscores. *Bed System 100%. ~||0.0.2||~ *Agora você pode logar com 4 protocolos do Tibia: 8.54 | 8.55 | 8.56 | 8.57 *3 Cidades (Mix City - Vip City - Thunder City). *Nova área de Teleports. *MEGA reformulação da cidade principal e suas proximidades com o máximo de RPG. *Quests que não funcionavam, agora estão 100%. *Mix City com 51 casas a disposição. *Vip System (Comando para Player: !vipdays | !buyvip || Comando para GOD: /addvip | /delvip) *Básico sistema de montaria. *Reformulação de algumas Hunts. *Reformulação da entrada da Pits of Inferno Quest (POI). *Algumas hunts para a cidade vip. *Balanceamento das vocações. *Alguns bugs foram corrigidos. ~||Patch1||~ *Erros no Vip System arrumados. Agora está 100%. ~||0.0.3||~ *Nova área de Teleports. *MEGA reformulação da cidade principal e suas proximidades com o máximo de RPG. *Reformulação de algumas Hunts. *Novas caves. *Tiquanda foi totalmente reformulada com o máximo de RPG. *Todas as caves estão com o máximo de RPG. *Modificaçõs no distro, está 100% estável. *Quest de pequeno port agora estão funcionando. *Bug no npc que não vendia rods e wands. *Pequenos bugs corrigidos. *Inquisition Adicionada. *Protocolo 8.60. Não temos ainda as features do update pois a cipsoft colocou uma proteção, em breve já estará tudo completo. ~||0.0.4||~ *Protocolo 8.60 *Todos os possíveis debugs foram arrumados. *Todas as features do update incluindo items, outfits, monsters, novo sistema de potions e runas foram adicionados. *Items novos funcionando perfeitamente com seus atributos. *Sistema de voar foi retirado. *Alguns bugs foram arrumados. ~||1.0.0||~ :star: *Novas áreas de hunt. *Duas novas cidades: Saaha e Icya *Demon Oak Quest foi adicionada. *Novas hunts na Vip City. *Alterações no distro. *Várias hunts foram reformuladas. *Thunder City foi desativada pois iremos reformular ela completamente. *Pequenos bugs foram corrigidos. - Fotos: *Templo *Saída sul de Mix City. *Npc vendedor de food. *Depot *Annihilator Quest *Entrada da cave de Demons. *Hydras *Barco para a Vip City. *Demon Helmet Quest *Inquisition Quest *Algumas das features do update 8.60 *Nova city: Saaha *Nova city: Icya *Nova hunt de hydras *Ghastly Dragons igual ao Tibia Global *Demon Oak Quest - Account do GOD Mix: Account: god Password: god Download: Clique aqui para fazer o Download Scan: Clique aqui para ver o Scan Obs: Encontrou algum bug? Relate neste tópico, para que possamos melhorar a cada dia o Mix Yourots. Portal Mix Soft2 pontos
-
Este script foi uma sugestão do usuário Guilhermee56. Você pode dar suas idéias aqui. O que faz: Adiciona um item para um usuário, retirando este item do jogador que mandou. Vá até data/talkactions/scripts e crie um arquivo chamado giveitem.lua, contendo: function onSay(cid, words, param) if(param == "") then doPlayerSendTextMessage(cid, 25, "Name, item name and quantity are required.\nE.g.: !giveitem ".. getCreatureName(cid) ..",Crown armor,1") return TRUE end local t = string.explode(param, ",") local player = getPlayerByNameWildcard(t[1]) local item = getItemIdByName(t[2]) local quant = tonumber(t[3]) if(not player) then doPlayerSendCancel(cid, "You must fill with player name.") return TRUE end if(not item) then doPlayerSendCancel(cid, "You must fill with a item name.") return TRUE end if(not quant) then doPlayerSendCancel(cid, "You must fill with a quantity.") return TRUE end if(quant <= 0) then doPlayerSendCancel(cid, "You must add the quantity.") return TRUE end if getPlayerGroupId(cid) >= 4 then doPlayerAddItem(player,item, quant) doPlayerSendTextMessage(cid, 25, "You gave ".. t[2] .." to " .. getCreatureName(player) .. ".") doPlayerSendTextMessage(player, 25, "You got ".. t[2] .." from " .. getCreatureName(cid) .. ".") elseif getPlayerGroupId(cid) < 4 then if getPlayerItemCount(cid, item) >= quant then doPlayerAddItem(player,item, quant) doPlayerSendTextMessage(cid, 25, "You gave ".. t[2] .." to " .. getCreatureName(player) .. ".") doPlayerSendTextMessage(player, 25, "You got ".. t[2] .." from " .. getCreatureName(cid) .. ".") doPlayerRemoveItem(cid, item, quant) else doPlayerSendTextMessage(cid, 25, "You don't have that item!.") end end return TRUE end Salve e feche. Abra o seu talkactions.xml e adicione: <talkaction words="!giveitem" case-sensitive="no" event="script" value="giveitem.lua"/> Salve e feche. Modo de usar: !giveitem apocarai, golden armor, 1 Nota: Usuários com acesso acima de 4 não precisam ter o item para envio. flw2 pontos
-
Demonic Ots 0.1.0 ( 8.54 ) Atualizado 08/01/2010 - Breve Demonic Ots 0.1.1 (8.60)
gustinho123 e um outro reagiu a Carnavotu por um tópico no fórum
nao e diferente nao2 pontos -
Perfect Vip system 3.0 Última atualização: 14/08/12 Versão Testada:TFS 0.3.6 - 8.54 - 8.6 - 9.6 Créditos pelas modificações: Kydrai,Vodkart e Marcryzius Oque Contém no Sistema vip 3.0? Comandos: Query Primeiro passado execute essa query na sua DB: ALTER TABLE `players` ADD `vipacess` INT(15) NOT NULL DEFAULT 0; Agora vá em Data/lib/050-function e adicione essas funções: function getCharacterAcess(cid) local query = db.getResult("SELECT `vipacess` FROM `players` WHERE `id` = "..getPlayerGUID(cid)) if query:getID() ~= -1 then return query:getDataInt("vipacess") end end function getCharacterDays(cid) local acess = math.ceil((getCharacterAcess(cid) - os.time())/(86400)) return acess <= 0 and 0 or acess end function HaveCharaterAcess(cid) return getCharacterDays(cid) > 0 and true or false end function setAcessTime(cid, time) return db.executeQuery("UPDATE `players` SET `vipacess` = "..time.." WHERE `id` = "..getPlayerGUID(cid)) end function addCharacterAcess(cid, days) local add = (days <= 0 and 1 or days)*86400 local time = getCharacterDays(cid) == 0 and (os.time() + add) or (getCharacterAcess(cid) + add) return setAcessTime(cid, time) end function doRemoveCharacterAcess(cid, days) local remove = days*86400 local time = getCharacterAcess(cid) - remove return setAcessTime(cid, (time <= 0 and 1 or time)) end function getVipAcessDate(cid) if HaveCharaterAcess(cid) then return os.date("%d/%m/%y %X", getCharacterAcess(cid)) end return false end Talkactions agora em talkactions/scripts vipsystemplayer.lua function onSay(cid, words, param) if(words == "!buyvip") then local days = 10 local price = 50000 if not doPlayerRemoveMoney(cid, price) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") addCharacterAcess(cid, days) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP, ela acaba em "..getVipAcessDate(cid)) elseif(words == "!vipdays") then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP. "..(getCharacterDays(cid) > 0 and "ela acaba em "..getVipAcessDate(cid).."." or "")) end return true end vipsystemgod.lua function onSay(cid, words, param) if(words == "/checkvip") then if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local player = getPlayerByName(param) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") return true end return doPlayerPopupFYI(cid, "O jogador tem "..getCharacterDays(player).." dias de VIP no character.") elseif(words == "/addvip") then local t = string.explode(param, ",") if not tonumber(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(t[1]) if(not player)then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") end addCharacterAcess(player, tonumber(t[2])) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você adicionou "..tonumber(t[2]).." dias de VIP no player "..getCreatureName(player)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..tonumber(t[2]).." dias de VIP no seu character.") elseif(words == "/delvip") then local t = string.explode(param, ",") if not tonumber(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(t[1]) if(not player)then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") end doRemoveCharacterAcess(player, tonumber(t[2])) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você removeu "..tonumber(t[2]).." dias de VIP do jogador "..getCreatureName(player)..".") end return true end em talkactions.xml adicione as tags: <talkaction words="!buyvip;!vipdays" event="script" value="vipsystemplayer.lua"/> <talkaction words="/addvip;/delvip;/checkvip" access="4" event="script" value="vipsystemgod.lua"/> Item Vip item que adiciona vip no character actions/script addvipdays.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local days = 15 addCharacterAcess(cid, (days <= 0 and 1 or days)) doRemoveItem(item.uid,1) return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP, ela acaba em "..getVipAcessDate(cid)) end Actions.xml <action itemid="ID DO SEU ITEM" script="addvipdays.lua"/> Vip Door actions/script perfectvipdoor.lua function onUse(cid, item, frompos, item2, topos) if not HaveCharaterAcess(cid) then return doPlayerSendTextMessage(cid,22,"Você precisa ser vip para passar aqui.") end doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, topos, true) return true end actions.xml <action actionid="7779" script="perfectvipdoor.lua"/> Tile VIP em movements/scripts crie um arquivo.lua e renomeie para vipe.lua function onStepIn(cid, item, position, fromPosition) if item.actionid == 13700 and not HaveCharaterAcess(cid) then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você não é vip.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"bem vindo.") return true end Em movements.xml adicione a tag: <movevent type="StepIn" actionid="13700" event="script" value="vipe.lua"/> no seu piso coloque ACTIONID 13700 Fim Vip em creaturescript/script endvip.lua function onLogin(cid) if getCharacterDays(cid) > 0 then setPlayerStorageValue(cid, 9898, 1) elseif getPlayerStorageValue(cid, 9898) == 1 and getCharacterDays(cid) <= 0 then doPlayerSetTown(cid, 1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) end return true end em creaturescript.xml adicione a tag: <event type="login" name="CheckVip" script="endvip.lua"/>1 ponto
-
[Original] Mix Yourots 0.0.3 (8.54 | 8.55 | 8.56 | 8.57)
priextix666 reagiu a renansdc por um tópico no fórum
Mix Yourots ~||0.0.1||~ *Contém apenas 2 cidades por enquanto. *Área de teleports para as hunts. *Sistema de Prisão. *Por inquanto temos as principais quests como: Pits of Inferno (POI), Demon Helmet, Annihilator, Inquisition, entre outras. *Soft boots pode ser recarregada pelo NPC Jenny que fica ao sudeste da Mix City. *Itens e monstros do update estão 100% completos. *Magias totalmente balanceadas seguindo o padrão do Tibia Global. *Addons do update estão 100%. *Sistema de voar (Créditos ao Forcera). *Distro TCS modificado com amplas proteções - Totalmente Estável. *Highscores. *Bed System 100%. ~||0.0.2||~ *Agora você pode logar com 4 protocolos do Tibia: 8.54 | 8.55 | 8.56 | 8.57 *3 Cidades (Mix City - Vip City - Thunder City). *Nova área de Teleports. *MEGA reformulação da cidade principal e suas proximidades com o máximo de RPG. *Quests que não funcionavam, agora estão 100%. *Mix City com 51 casas a disposição. *Vip System (Comando para Player: !vipdays | !buyvip || Comando para GOD: /addvip | /delvip) *Básico sistema de montaria. *Reformulação de algumas Hunts. *Reformulação da entrada da Pits of Inferno Quest (POI). *Algumas hunts para a cidade vip. *Balanceamento das vocações. *Alguns bugs foram corrigidos. ~||Patch1||~ *Erros no Vip System arrumados. Agora está 100%. ~||0.0.3||~ *Nova área de Teleports. *MEGA reformulação da cidade principal e suas proximidades com o máximo de RPG. *Reformulação de algumas Hunts. *Novas caves. *Tiquanda foi totalmente reformulada com o máximo de RPG. *Todas as caves estão com o máximo de RPG. *Modificaçõs no distro, está 100% estável. *Quest de pequeno port agora estão funcionando. *Bug no npc que não vendia rods e wands. *Pequenos bugs corrigidos. *Inquisition Adicionada. - Fotos: *Templo *Saída sul de Mix City. *Npc vendedor de food. *Depot *Annihilator Quest *Entrada da cave de Demons. *Hydras *Barco para a Vip City. *Demon Helmet Quest *Inquisition Quest *Minimap - Account do GOD Mix: Account: 2 Password: 2 Download: Clique aqui para fazer o Download do Mix Yourots 0.0.3 (8.54-57) Scan: Clique aqui para ver o Scan. Quer o Mix Yourots em protocolo 8.60? Veja nosso tópico 8.60 CLICANDO AQUI.1 ponto -
Fazendo a Superfície do seu Mapa Talvez mais de 70% de um mapa, fique na superfície. Ela é composta por cidades, locais para caça, montanhas, algumas construções e florestas... Mas e o resto? Provavelmente todos já jogaram Tibia (*), e já perceberem que em uma viagem de Carlin para Thais, uma boa parte do mapa não tem nada! Ou melhor, não tem nada mais que alguma decoração, e é exatamente isso que vou ensinar a fazer: A superfície do seu mapa, as partes teoricamente inúteis, mas que fazem muita diferença no seu mapa Parte #1: As Bordas. O problema mais comum nesta primeira parte são as famosas bordas quadradas: Na foto acima temos um exemplo bem nítido de bordas quadradas, o que não é muito comum de se encontrar por aí, mas que AINDA existe, infelizmente. Talvez você esteja pensando: "Mas estas bordas NÃO estão quadradas!" Realmente... elas não estão quadradas, mas isso é o que eu chamo de borda "escadinha", aonde o mapper traça uma diagonal em uma direção e faz as bordas. Não é uma borda ruim, mas hoje em dia, o que conta é a diferença, então você pode ser um pouco mais ousado... Nesse caso temos uma borda bem irregular, nada geométrico. Assim seria uma borda IDEAL, mas uma dica: Não exagere demais! Bordas muito irregulares também são feias. Parte #2: A Vegetação. Outra parte muito importante de uma superfície, se não a mais importante: A vegetação. Ao contrário do que muitos pensam uma paisagem natural não depende exclusivamente de árvores. Uma grande planície composta por arbustos, árvores, pedras e pedregulhos pode ser um grande diferencial. Na foto abaixo, coloquei algumas árvores espalhadas randomicamente pelo mapa, que é o que vemos em GRANDE parte dos mapas atualmente. Sim, ainda costumam errar muito neste ponto... Na imagem acima vemos um exemplo TOTALMENTE errado de vegetação, até para uma floresta: Árvores em todos os pontos do mapa e com intervalos regulares (quase todas as árvores têm o mesmo espaçamento entre uma e outra). Isso é um erro extremamente comum. O Certo seria basicamente isso: Pouca quantidade de árvores (lembrem-se: não estamos fazendo uma floresta), separadas em intervalos irregulares e com quantidades diferentes de árvores em cada "grupo". Queria deixar claro que essa distribuição de árvores não é regra, mas temos que pensar que nenhum jardineiro plantou essas árvores, logo uma distribuição irregular seria muito mais correta. E obviamente, uma superfície não é composta apenas de árvores, também encontramos alguns arbustos e plantas baixas: Lembrando, como no exemplo das árvores, nada de espaçamentos regulares entre os arbustos! Mas não podemos esquecer também das rochas e pedras! São essenciais no seu mapa e dão um toque muito bonito. Como nossa superfície é imperfeita, adicionei outro tipo de solo, um rochoso (você também pode usar outros tipos de solo: como outras variações de grama e terra). Mas também não exagere! Nossa superfície está quase pronta, ela já tem uma vegetação muito bem distribuída, pedras e solo diferenciado. Mas ainda existem algumas áreas "peladas", por isso adicionei outros tipos de plantas, flores e até um tronco: Finalmente nós podemos finalizar nossa superfície, colocando os detalhes finais: Randomizar o solo e adicionar aqueles pequenos tufos de grama. Obs.: Escolhi randomizar a superfície depois de acabar a vegetação, mas isso varia de pessoa pra pessoa. Pronto! Sua superfície está pronta! E agora que você já aprendeu como fazer, poste aqui o resultado. Se você ainda acha sua superfície monótona e quer colocar algo diferente, você pode adicionar uma montanha, uma floresta mais densa ou até uma casa abandonada. E lembre-se: Partes inúteis no seu mapa são muito mais do que você imagina! Espero que vocês tenham gostado, Abraços.1 ponto
-
1 ponto
-
claro cara,depois de adicionar aquele script vc tem que modifica agr no items.xml tbm <item id="2173" article="an" name="amulet of loss"> <attribute key="weight" value="420" /> <attribute key="slotType" value="necklace" /> </item>1 ponto
-
[Tutorial]Dica Para Novas Runas
Doidin reagiu a Schiavinato por um tópico no fórum
Tutorial 1/3 Bem galera, venho aqui para falar um pouco sobre os itens adicionados no Update 8.60... Vamos organizar: •Runas Decorativas Bem, essas novas runas decorativas, muitos não vão querer usar apenas para decoração... Intão vamo separa-las em 2 categorias Runas Gold Runas Silver Bem, temos agora três categorias de runas: •Golden Runes •Silver Runes •Runas Convencionais Para melhor aproveitarmos essas novas runas nos ots, poderiamos fazer deste modo: Player sem Promotion •Runas Convencionais Player com Promotion •Runas Silver(Um pouco mais fortes que as convencionais) Player Vip •Runas Golden(Um pouco mais forte que as silvers) (É claro, é só uma idéia) Créditos: Schiavinato Tutorial TibiaBR Imagens1 ponto -
não sei se tu ja viu, mais tem uns bug: ferumbras tower uma parte q tem uns items esta sem parede, uma escada perto do npc de promotion em thais vc sobe e fica preso na parede, um buraco em darashia perto da parte q pode nadar.1 ponto
-
Mudar A Forma Do Seu Monstro
WOLFBAD reagiu a MatheusGlad por um tópico no fórum
Mudar a Forma do seu monstro Para mudar a forma de seu monstro va na pasta data/monster e ache seu monstro, depois edite esta linha. Vermelho O visual do monstro (Mude o numero para algum da lista abaixo para obter o respectivo outfit do monstro) Azul Cores de cabeça,corpo,pernas,pe,e id do corpo (As vezes mudando as cores nao muda em nada) Agora uma lista dos numeros de looktypes e nome dos monstros: Lembre-se, se for tentar fazer /newtype e um numero da lista de 8.54 voce nao ira consiguir, pois a maioria dos otservers nao configurao ate esse numero. Configurando /newtype (SOMENTE PARA 8.54, NAO FAÇA ISSO EM 8.53): Obs: Em breve, estarei editando o topico e tera fotos de cada outfit Sugeito a sugestões,dicas,elogios e erros.1 ponto -
Tutorial Formando Caves
ciappabrother reagiu a Bruno1177 por um tópico no fórum
@MaikLove Sua pergunta está na sessão errada. Mas entendo, começou hoje no fórum! Sua dúvida seria bom postar aqui: Clique aqui Mas o RME é um map editor, ele não é um servidor. Se quiser um servidor procure por essa sessão aqui: Clique aqui E se não souber criar um server dê uma passada por aqui: Clique aqui Aah e mais uma coisa, dê uma lida nas regras do fórum!! ~>Clique aqui1 ponto -
Yoruts 8.5 Edited By Victor Roxx
ka9 reagiu a Budes Elins por um tópico no fórum
:smile_positivo: Estou Aqui Para Posta Um Otserver Muito Massa Edited By Victor Roxx Creditos :Snowz 70% Creditos :Victor Roxx 30 % Aki o Scan E Faça BOm Proveito =) Scan \/ http://www.virustotal.com/pt/analisis/82ca...e7f6-1250538114 DOwnload Aki \/ http://www.mediafire.com/?nognkzk4qwz1 ponto