Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 08/01/10 em todas áreas

  1. Mount System - 100% inovador! Fala galerinha, é mais uma vez eu trazendo Scripts para o pessoal do XTibia, dessa vez eu dei uma "inovadinha" no script e fiz um vídeo explicando sobre ele, confira! Vídeo sobre o sistema: http://www.youtube.com/watch?v=xpyI4FtY7dM Bom vamos logo ao script: Primeiramente vamos fazer uma pequena alteração no arquivo items.xml, abra-o e procure por "giant eye", mude esse nome para "mysterious pet", assim: <item id="11191" name="mysterious pet"><attribute key="weight" value="120" /></item> Agora vamos adicionar as actions, vá até a pasta "Actions" e abra o arquivo "Actions.xml" e adicione esta tag: <action itemid="11191" event="script" value="mount.lua"/> Ok, agora volte a pasta "Actions" e abra a pasta "Scripts", faça uma arquivo chamado "mount.lua" e adicione isto: -- [( Mount System 1.4 created by Doidin for XTibia.com )] --function onUse(cid, item)local outfit = {lookType = 342} -- Outfit da montaria!local exhaust = 60 -- Tempo para player poder usar o item novamente! (tempo em segundos)local time = 60 -- Tempo para ficar na montaria! (tempo em segundos)local speed = 300 -- Velocidade adicionada ao player após usar o item! (300 = velocidade, quanto maior mais rapido...)local mana = 1300 -- Quantidade de mana que o player necessita para usar o sistema!local premium = "yes" -- Apenas players premium accounts "yes" or "no"!?local storage = 9393 -- Não mexa aqui!if premium == "yes" and not isPremium(cid) thenreturn doPlayerSendTextMessage(cid, 23, "Sorry, only premium players.")endif(getCreatureMana(cid) < mana) thenreturn doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA)endif (getPlayerStorageValue(cid, storage) <= os.time()) thendoCreatureSay(cid, "Yeeeah!!!\nYou went up on his ride.", 19)doSetCreatureOutfit(cid, outfit, time*1000)doChangeSpeed(cid, speed)doSendMagicEffect(getCreaturePosition(cid), 34)setPlayerStorageValue(cid, storage, os.time()+exhaust)doPlayerAddMana(cid, -mana)addEvent(doChangeSpeed, time*1000+40, cid, -speed)addEvent(doPlayerSendTextMessage, time*1000+45, cid, 23, "Mount System is time out!")addEvent(doSendMagicEffect, time*1000+50, getCreaturePosition(cid), 2)doRemoveItem(item.uid, 1)elsedoPlayerSendCancel(cid, "Sorry, you only can again use this item after "..exhaust.." seconds.")endreturn TRUEend Pronto agora configure o script da maneira que você quiser! Caso queira mudar a outfit da sua montaria clique aqui e saiba mais. OBS: A inteção do script é algum NPC te vender um item que no caso é o "mysterious pet" e esse item é super raríssimo, ele tem a função de te dar um "PET" misterioso por um certo tempo para você usar ele como montaria! Aaah só pra constatar eu tive uma pequena ajuda dos meus amigos MatheusMkalo e do Vodkart.. ;] Espero que tenham gostado do script e do vídeo! ;] <* Não poste em outros fórums, exclusivo ao XTibia.com *>
    2 pontos
  2. Vodkart

    [Dúvida]"for I=1,20 Do"

    Preste atenção,o script também poderia ser assim: Analise 1 doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) doAddContainerItem(bag, spr_id, cargasspr_id) agora se você usa o for i=1,20 do -- indica que a instrução será executada de 1 até 20 doAddContainerItem(bag, spr_id, cargasspr_id) --20x a mesma linha repete um bloco das instruções quando uma condição for verdadeira ou até que uma condição se torne verdadeira executara 20x e depois irá parar(em vez da analise 1 de adicionar 20 linhas),no caso do exemplo acima, a estrutura de repetição será executada enquanto i < 20.
    2 pontos
  3. luisfe23

    [8.6] Emerald Map

    Eae XTibianos... Estou trazendo para vcs o Emerald Map. • Créditos: Randall • Minimap: A qualidade ficou ruim porque salvei como JPG. • Download: http://www.4shared.com/file/AsHm4Soj/Emerald_Map.html • Download Link Protegido: http://lix.in/-85c7fb • Scan: http://www.virustotal.com/pt/analisis/320f026e6b49a99516ffccab44f3a985c7b49f5233a768a5a6139c499e8409a4-1279041485 Abraços.
    1 ponto
  4. pc98

    Castle War 2.0

    Boa noite, Bom, quem me conhece sabe que eu era Spriter/Client Maker, e fiz ate 2 apostilas sobre o assunto. Derrepente me deu vontade de aprender script, e fiquei lendo tutoriais em varios Foruns. E hoje estou aqui pra mostrar meu primeiro trabalho medio divulgado! Nome do Script: Castle War 2.0 ultimate Versão testada: Tfs 0.3.6 ( deve funcionar em versões anteriores ) Descriçao: Um sistema de Guerra de castelos para guilds, deferente :]! Como funciona: O Player vai no castelo, e puxa uma lavanca, e automaticamente, todos da guild dele, tem acesso ao castelo ( porta ). Alem de contar pontos pra ganhar premios por vezes que ele conseguiu conquistar Castelos! ps: esse guarda é configurado para não atacar os ‘donos’ do castelo! :fail: Instalação Actions Va na pasta Data/action/action.xml e adicione isto: Agora vá em Data/actions/scripts , crie esses 4 arquivos abaixo: castlewar1.lua ----------------------------------- ---------SCRIPT por PC98------------ NAO REMOVA OS CREDITOS ----------------------------------- function onUse(cid, item, frompos, item2, topos) ------------------ Inicio das Config ------------ local castle_one_name = "Ratim Bum" -- Nome do castelo 1 local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como está...) -------PREMIOs I N D I V I D U A L --------- local premio_por_vezes = 1 -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa. local premio_vezes = 13 -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO. local premio = 2472 -- ID do Premio local premio_cont = 1 -- Quantidade do Premio local premio_reset = 1 -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO -------FIM PREMIOs I N D I V I D U A L --------- ----------------- FIM DAS CONFIG ----------------- local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then setPlayerStorageValue(cid,guild_sto,guild) if getPlayerStorageValue(cid,storages[1]) == -1 then setPlayerStorageValue(cid,storages[1],0) end sto_vezes = getPlayerStorageValue(cid,storages[1]) setGlobalStorageValue(storages[3],getPlayerGuildId(cid)) setPlayerStorageValue(cid,storages[1], sto_vezes + 1) sto_vezes_total = getPlayerStorageValue(cid,storages[1]) doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o castelo "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22) doSendMagicEffect(position, 39) if premio_por_vezes == 1 then if getPlayerStorageValue(cid,storages[1]) == premio_vezes then if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doBroadcastMessage("O "..getCreatureName(cid).." ganhou uma(o) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!", 21) doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") ----------------------------------------------- -- if premio_reset == 1 then -- setPlayerStorageValue(cid,storages[1],0) -- Resetar a contagem end -- ----------------------------------------------- -- else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!") addEvent(additem,10000,cid,premio,premio_cont,premio_reset) end end end else doPlayerSendCancel(cid,"Este castelo ja foi conquistado pela sua guild!") doSendMagicEffect(position, 2) end else doPlayerSendCancel(cid,"O sistema está desativado") end else doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!") doSendMagicEffect(position, 2) end end ------------------------- por pc98 function additem(cid,premio,premio_cont,premio_reset) if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") if premio_reset == 1 then setPlayerStorageValue(cid,storages[1],0) end stopEvent(additem) else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Verificando novamente em 10 segundos!") addEvent(additem,10000,cid) end end ------------------------- por pc98 function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end castlewar2.lua ----------------------------------- ---------SCRIPT por PC98------------ NAO REMOVA OS CREDITOS ----------------------------------- function onUse(cid, item, frompos, item2, topos) ------------------ Inicio das Config ------------ local castle_two_name = "do Dracula" -- Nome do castelo 2 local storages = {154154,54321,321321} -- Storages ( se vc eh iniciante, deixe como está...) -------PREMIOs I N D I V I D U A L --------- local premio_por_vezes = 1 -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa. local premio_vezes = 13 -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO. local premio = 2472 -- ID do Premio local premio_cont = 1 -- Quantidade do Premio local premio_reset = 0 -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO -------FIM PREMIOs I N D I V I D U A L --------- ----------------- FIM DAS CONFIG ----------------- local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then setPlayerStorageValue(cid,guild_sto,guild) ----------------------------------------------------- if getPlayerStorageValue(cid,storages[1]) == -1 then setPlayerStorageValue(cid,storages[1],0) end ----------------------------------------------------- sto_vezes = getPlayerStorageValue(cid,storages[1]) setGlobalStorageValue(storages[3],getPlayerGuildId(cid)) setPlayerStorageValue(cid,storages[1], sto_vezes + 1) sto_vezes_total = getPlayerStorageValue(cid,storages[1]) doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o castelo "..castle_two_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22) doSendMagicEffect(position, 39) if premio_por_vezes == 1 then if getPlayerStorageValue(cid,storages[1]) == premio_vezes then if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doBroadcastMessage("O "..getCreatureName(cid).." ganhou uma(o) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!", 21) doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") ----------------------------------------------- -- if premio_reset == 1 then -- setPlayerStorageValue(cid,storages[1],0) -- Resetar a contagem end -- ----------------------------------------------- -- else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!") addEvent(additem,10000,cid,premio,premio_cont,premio_reset) end end end else doPlayerSendCancel(cid,"Este castelo ja foi conquistado pela sua guild!") doSendMagicEffect(position, 2) end else doPlayerSendCancel(cid,"O sistema está desativado") end else doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!") doSendMagicEffect(position, 2) end end ------------------------- Por PC98. function additem(cid,premio,premio_cont,premio_reset) if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") if premio_reset == 1 then setPlayerStorageValue(cid,storages[1],0) end stopEvent(additem) else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Verificando novamente em 10 segundos!") addEvent(additem,10000,cid) end end ------------------------- por pc98 function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end castledoor1.lua --------------- -----BY PC98------- --------------- function onUse(cid, item, frompos, item2, topos) -------------------------Config----------------------------------------------------------------- door_opened = 1228 -- ID da porta aberta storage_guild = getGlobalStorageValue(123123) -- A 3ª storage configurada em Castle.lua guarda_ativ = 1 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (1) = SIM (0) = NAO guarda_cont = 2 -- Caso ativo: a quantidade de guardas a sumonar guarda_pos = {x=123,y=123,y=7} -- Posiçao a ser sumonada os guardas! -------------------------Fim de Config----------------------------------------------------------- if getPlayerGuildId(cid) == storage_guild then doTeleportThing(cid,getThingPos(item.uid)) doTransformItem(item.uid, door_opened) doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!") return TRUE else if guarda_ativ == 1 then doPlayerSendTextMessage(cid, 22, "Guaaaardas, tirem esses invasores daqui!!") for i=1, guarda_cont do doSummonCreature("Guarda", guarda_pos) end return FALSE else doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild") return FALSE end end end castledoor2.lua --------------- -----BY PC98------- --------------- function onUse(cid, item, frompos, item2, topos) -------------------------Config----------------------------------------------------------------- door_opened = 1228 -- ID da porta aberta storage_guild = getGlobalStorageValue(321321) -- A 3ª storage configurada ( ja esta configurada o PADRAO ) guarda_ativ = 1 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (1) = SIM (0) = NAO guarda_cont = 4 -- Caso ativo: a quantidade de guardas a sumonar guarda_pos = {x=321,y=321,y=7} -- Posiçao a ser sumonada os guardas! -------------------------Fim de Config----------------------------------------------------------- if getPlayerGuildId(cid) == storage_guild then doTeleportThing(cid,getThingPos(item.uid)) doTransformItem(item.uid, door_opened) doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!") return TRUE else if guarda_ativ == 1 then doPlayerSendTextMessage(cid, 22, "Guaaaardas, tirem esses invasores daqui!!") for i=1, guarda_cont do doSummonCreature("Guarda", guarda_pos) end return FALSE else doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild") return FALSE end end end Talkactions Va na pasta Data/talkaction/talkactions.xml , clique com o botao direito e depois editar. Adicione esta linha: <talkaction words="/war" event="script" value="castlesystem.lua"/> Agora va na pasta scripts , e crie um arquivo lua chamado castlesystem.lua. castlesystem.lua function onSay(cid, words, param) access = 4 -- Coloque aqui o access requirido para Ativar/Desativar o sistema if param == "start" then if getPlayerAccess(cid) == access then setGlobalStorageValue(54321,1) doPlayerSendTextMessage(cid, 20, "Voce ativou o Castle Wars com suscesso!") return TRUE end elseif param == "stop" then if getPlayerAccess(cid) == access then setGlobalStorageValue(54321,2) doPlayerSendTextMessage(cid, 20, "Voce desativou o Castle Wars com suscesso!") return TRUE end end end Monster O mostro Guarda... aquele que eu disse que pode ficar dentro do castelo :] Instalaçao: va na pasta data/monsters e edite o arquivo Monster.xml , adicionando esta linha: <monster name="Guarda" file="guarda.xml"/> e depois crie um arquivo na mesma pasta chamado guarda.xml guarda.xml <?xml version="1.0"?> <monster name="Guarda" nameDescription="the guard" experience="6000" speed="268" race="Blood"> <health now="20000" max="20000"/> <look type="73" corpse="6080"/> <strategy attack="200" defense="300"/> <targetchange speed="420" chance="1"/> <flags> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag attackable="1"/> <flag pushable="0"/> <flag staticattack="90"/> <flag targetdistance="1"/> </flags> <attacks> <attack name="melee" interval="2000" chance="100" min="-400" max="-800" range="1"/> <attack name="physical" interval="4000" chance="25" min="-600" max="-700" range="7" radius="8" target="1"> <attribute key="shootEffect" value="arrow"/> </attack> </attacks> <defenses defense="45" armor="40"/> <immunities> <immunity name="paralyze"/> <immunity name="invisible"/> </immunities> <voices speed="2200" chance="75"> <voice sentence="Grrrrrrrrrr" yell="1"/> <voice sentence="Saia daqui intrusos!" yell="1"/> <voice sentence="Sua resistencia e inutil!" yell="1"/> <voice sentence="Voce vai ser preso!" yell="1"/> </voices> <script> <event name="guard"/> </script> <elements/> <loot/> </monster> Creatures Scripts Bom, agora a gente tem de configurar pra esse bixo nao atacar os donos do castelo neh, se nao ele vai sair porai matando GERAL :fuu:. Vamo nessa. Va na pasta data/creaturescripts e edite o arquivo creaturescripts.xml adicionando esta linha: <event type="combat" name="guard" script="guard.lua"/> agora abra a pasta scripts, que esta na mesma pasta e crie um arquivo chamado guard.lua. guard.lua function onCombat(cid, target) if(not isPlayer(target)) then return TRUE else targets = getMonsterTargetList(cid) if getPlayerGuildId(target) == getGlobalStorageValue(123123) then addEvent(check,1000,cid,targets) return FALSE else return TRUE end end end function check(cid,targets) for i=1, #targets do if getPlayerGuildId(targets[i]) == getGlobalStorageValue(123123) then addEvent(check,1000,cid,targets) return FALSE else stopEvent(check) return TRUE end end end Esta configurado o Monstro! Vamos pra proxima etapa! Instalaçao no MapaEditor Va ate no primeiro castelo, e adicione uma lavanca ( id recomendado: 1945 ) e coloque aonde voce quiser. Depois de colocado a lavanca, clique nela com o botao direito do mouse e va em property. No campo "ActionID:" coloque 9999. Faça a mesma coisa com o segundo castelo, crie la a lavanca, e coloque actionID 8888. Se voce quiser voce pode criar uma porta especial, por onde so os 'donos' do castelo pode entrar, afinal, ja ta instalado! :fail: Coloque ActionID 9998 na porta no primeiro castelo, e actionID 8887 na porta do segundo castelo. Comandos /war start - Para Ativar o sistema ( ja vem ativado por padrao) /war stop - Para desativar o sistema. Bom, eh isso ai. Eh meu primeiro Script ( de muitos ) pro forum XTibia, e espero ta ajudando o forum. Creditos: PC98 - Pelo script MonsterEditor - Pelo mosntro Guarda. ( blackdemon) obs: Esse mesmo script foi postado em outro forum, porem fui eu mesmo que postei ( PC98 - mesmo nick ). abraços!
    1 ponto
  5. DevilMoon

    [ Action ]Pokeball System

    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..
    1 ponto
  6. Marcell

    Quick-List (8.6 Até 8.62)

    Quick-List Oque é uma quick-list ? R- é uma lista com os melhores tópicos da area em um só. Download OTServers 8.62 The Crystal Server V0.2.0 Sleeper Map 0.6 Download OTServers 8.61 We Do Server 0.1.2 Download OTServers 8.6 Mix Yourots 1.0.0 Alissow Ots 4.11 [11/07/2010] 8.6 Completo! Snowz Thyrania 3.1 The Forgotten Server (Crying Damson) Real Server 3.2 The Subwat® Riot Server Baiak Yurots Download Utilitários 8.6 até 8.62 Tibia Client 8.6 Comedinha IPChanger Tirus Ip-Changer Asprate's Multi Ip Changer atenção: apenas tópicos e ots confiantes estarei postando, NENHUM servidor que eu postar aqui na lista, tera virus, portanto, não adianta vir falando: tem virus em tal ot, porque eu passo scan em todos e revejo. ao longo do tempo. iremos adicionando mais downloads...até!
    1 ponto
  7. Toridox4ever

    [8.60] War On Rookgaard 2 Team

    Rookwar - V.0.2 Based on TFS 0.3.6 Client 8.60 2 Teams Red Team Green Team Content: Creating your own accounts 1 / 1, You begin to level 100, Entering receives your skills, you do not lose items to die only in Red and black skull, By killing a player receives 500gps, Automatic broadcast, Map Rookgaard (edited), Red team temple, Green team temple, Global Temple, Trainers, Depot, Shops. Depot, Shops. Npcs: Npc Skuller sell Sacred skull for remove skulls and frags, Npc Varkhal sell first and secconds addons, Npc Amuletero sell amulets, Npc Donal sell food, Npc Pancho the seller of loot. Scripts: mods/remove_skulls.xml, creaturescripts/deathBroadcast.lua, creaturescripts/onkill.lua, creaturescripts/skills.lua, creaturescripts/onlogout.lua, creaturescripts/firstitems.lua, movements/Green.lua, movements/Red.lua. Screens Shots: Account god: Acc: god Pass: god Download::up: 4Shared :up: Scan Rook: :up: Virus Total :up: Download Dlls: :up: 4Shared :up: Creditos: Morrison (ajudante) Toridox4ever Pela Editação ! Luiziin@reggae.com (Msn) Este Poste de Ajudo ? Aperte no
    1 ponto
  8. Doidin

    [Oficial] We Do Ots 0.1.1 (Beta Version)

    A partir de agora não é mais Real Server e sim We Do OTS, para você conferir mais clique aqui. Até mais, Doidin.
    1 ponto
  9. Renato Ribeiro

    Dicas Para Praticar.

    Dicas para praticar! Iniciantes á experientes. Antes de mais nada, isso aqui são dicas, não precisa ser exatamente assim, você pode criar seu jeito de treinar. • Iniciantes: Você que está começando agora a mappear, é importante ler tutoriais, não podemos negar. Muitos podem dizer que o auto-border só estraga seu mapa, e podem te orientar a não usar desde o princípio, para melhorar. De uma certa forma, está errado. No começo você TEM que usar auto-border, é fundamental. As chances de você criar uma área mais bonita e bem clean usando raw pallete estando no início, é muito baixa. Mas venho lhe trazer um dica que eu usava muito quando eu estava começando. Vá em algum site de mecanismo de busca, google, yahoo, bing (sugiro o google) e procure por imagens de mapas, pegue um que você mais gostar, de preferência. Ou porcure em Show Off aqui mesmo no XTibia. Abra seu RME, e com a imagem aberta, tente fazer uma paisagem com todos os detalhes que tem na outra imagem. Mas impotante, não faço formato igual, faça tudo diferente mas com tudo que estiver lá. Como assim? Exemplo, o chão é grass, então ponha grass. Mas tem dirt misturado também!! Então ponha dirt. Use este conceito, tufos de gramas, brushes, árvores, se tiver, você poe! Depois que terminar, compare com a da imagem. Mas relembrando, não faça igual, formatos diferentes! Isso é muito importante. Faça isso com umas 20 imagens (sugiro umas duas por dia), com isso, você conseguirá explorar a fundo seu RME (sugiro usar rme para mapear) e onde ficam seus itens nos palletes e suas funções. • Intermediário: Agora, para você entrar no nível intermediário de mapping, você precisa saber todas as funções de seu Editor. "Fuce" na barra de opções de seu MapEditor, vá em File e veja todas as opções e como funcionam, depois vá em Edit, Map, View, e assim por diante. Sugiro ler um tutorial que explique tudo. Aliás, deve ter um desse aqui no XTibia. Agora que você já conhece as funções e um pouco dos palletes e onde encontrar os IDs minha dica é começar a criar seu mapa próprio! Crie um mapa com 3 cidades e várias áreas de caça. Após isso, crie outro, e mais outro e mais outro. Crie uns 10 mapas, alguns com 3 cidades, alguns com 4. Mas não demora não? Sim, demora, mas não esqueça que você está treinando. Não quer virar um mapper? • Experiente: Agora, para ser experiente, seus mapas tem que respeitar a coerência, a estética e principalmente a jogabilidade. Minha dica fundamental para este nível de mapping, é criar um mapa inteiro no raw pallete. Sem usar um auto-border. O que você demorava 2 semanas, vai demorar 2 meses. Você vai virar craque nos formatos e na variedade de detalhes de um mapa. Claro, ninguém é de ferro, experientes usam auto-border em certos casos, mas para você treinar, crie pelo menos um inteiro sem usar o auto-border. Estas são dicas elaboradas por min e na minha evolução como mapper eu usei praticamente todas elas. São dicas que funcionaram comigo, basta você adaptá-las caso não concordem com algo. Abraços.
    1 ponto
  10. Atenção! Este tópico contém muitas (25 imagens = 41.559.864 bits) imagens, algumas em tamanho G, então se alguma delas não carregar, atualize a pagina no seu navegador. Obrigado pela atenção. Imagem por: Kaonic [Construções] Construções no Tibia são como na vida real, não se pode viver sem elas. No inicio o jogador nasce no templo, que é talvez o lugar mais importante e visitado do servidor, todos passam por ele no começo e é onde você renasce depois de morrer, também é onde você foge daquele Power abuser fdpfdpfdpfdp. Em segundo lugar na escala de importância vem o Depot, é onde você guarda seus itens mais preciosos (se você não tiver uma casa), onde você faz aquela feirinha maneirinha pra vender seus itens. Temos também as casas, que, com camas, servem pra regeneração fácil e rápida de stamina ou soul, servem pra guardar seus itens, fazer inveja em quem você odeia, brincar de casa da Barbie, etc. Enfim, construções no Tibia são mesmo importantes. Templos: Começaremos pelo, na minha opinião, o lugar mais importante de um servidor. Como você já sabe, templos são aqueles lugares sagrados onde os players nascem e renascem. Claro que esta não é uma construção, mas templos não precisam ser necessariamente quadrados, simétricos e "sem vida". A historia do templo acima, por exemplo, diz que no passado ele era um "templo de verdade", mas devido a ataques simultâneos de bombas atômicas Magos, o templo foi destruído, e mesmo assim os habitantes não quiseram abandoná-lo, por ser um templo sagrado e possuidor de forças sobrenaturais. Templos e construções são diferentes em cada tipo de cidade, cidades desérticas tendem a ter templos com paredes no estilo "egypt wall" e "egypt Stone wall", cidades em selvas usam templos de bambu, as construções em cidades de gelo possuem paredes de madeira, e assim sucessivamente. Dica: Em cidades pequenas, templos devem ser pequenos, e em cidades grandes, templos devem ser grandes, respectivamente. Este é o templo do popular Alissow OTS, como podem ver é um templo simples e totalmente retangular, mas mesmo assim não é feio – pelo menos eu acho que não é. Vocês aprenderão mais sobre construções quadradas um pouco mais abaixo. Casas: As casas precisam ter: - Pilares, para garantir o sustento da construção, como está indicado em vermelho. Isto não é obrigatório, apenas se tiver algo "solto por ai" que necessite alguma sustentação. - Janelas nos telhados e nas paredes – indicação em verde - dão um charme a mais na sua casa, além de permitir a visualização dos players de dentro e fora da mesma. - Uma porta, logicamente, para o player entrar e sair da casa. - E por ultimo enfeite da maneira que quiser, sempre respeitando a coerência (Leia Detalhes mais abaixo). Telhados: Em sua construção você pode usar diversos tipos de telhados, em casas pequenas eu aconselho o seguinte tipo de telhado: Em construções maiores, é aconselhável usar um telhado baixo, pois o alto pode ficar alto demais, resultando num mapa feio. Também é válido utilizar pedras e plantas nos telhados. Detalhes: Detalhes em construções são uma coisa muito simples, geralmente usa-se tochas, janelas, portas, musgos, flores, plantas, etc. OBS: Tochas em paredes de madeira são prejudiciais à saúde das mesmas, por isso o ministério da saúde recomenda o uso de lâmpadas. Veja alguns exemplos de detalhes nas construções: Observe que nesta casa temos plantas nas paredes, plantas no telhado, além de musgos nas paredes e uma calha com um barril de água, muito comum em casas de toda parte do mundo. Rçrç Nesta, temos um contraste de paredes, além de musgos e chaminés nos telhados. Construções Grandes: Os castelos (eu adoro esse mapa) também fazem parte do mundo tibiano, os reinos precisam ter uma fortaleza que sirva de uma moradia digna para o seu rei e seus seguidores. Observe como as paredes foram usadas. Tamanhos. Eu vejo bastante gente fazendo casas extremamente gigantescas, quadradas ou curvas e com apenas uma porta e uma janela. A não ser que você queira criar monstros lá dentro, 13x13 SQMs já é grande o suficiente para uma casa grande e 6x7 para uma casa normal. Se você não sabe o que é SQM, preste atenção: SQM significa Square Metre, que em português, significa Metro quadrado. Passando para o Tibia, um player ocupa um SQM, assim como um Demon (ou qualquer outro monstro) também ocupa um SQM. Um pedaço de chão ou uma parede Também possuem 1 SQM. Uma casa grande no tamanho certo. Uma casa grotesca do jeito totalmente errado. Quadrado X Curvo: Quando se fala em construções quadradas a primeira coisa que vem à cabeça é que é um mapa muito simples, feio e... quadrado (what?), o que não é verdade. Construções curvas atrapalham a jogabilidade, acompanhe. Mapa 1: A primeira vista você poderá dizer que é um mapa muito simples, feio e quadrado, continue acompanhando. Mapa 2: Qual dos dois mapas é mais bonito? Qual deles suporta mais items? Com certeza é a casa quadrada certo? Por isso pense bem antes de querer fazer algo "incomum". Isso não quer dizer que deve-se fazer tudo quadrado, algumas curvinhas às vezes também deixam um mapa bonito: Aplicando a "técnica do olha e faz" também é possível fazer lindas construções e com formas diferentes. Observe: Depois: É certo que um servidor sem construções não funcionará como deveria, ele ficará totalmente incompleto, os players precisam de um lugar bonito pra renascer, precisam de um depósito seguro para guardar seus items, precisam de casas para viver e de qualquer forma essas construções precisam ser bem feitas, seja para atrair o publico ou para simplesmente mostrar seu trabalho. ______________________________________________________________________________ Considerações finais: Os mapas não ficaram muito beeem feitos, alguns deles serviram apenas de demonstração. Gostou do artigo? Deseja criticar? Elogiar? Comente
    1 ponto
  11. Confira o novo Ktibiax® Tibia Launcher Update (Junho/2010) Uma nova e empolgante interface Suporte para as versões até 8.60 Melhorias e correções de bugs no Lag checker Melhorias no consumo de memória Não será mais necessário realizar nenhuma instalação, KTibiaX agora é portable Não confie em links do rapidshare, easyshare ou afins. Baixe o programa apenas do googlecode ou codeplex! [Download do Programa] KTibiaX® Launcher Setup 2.1.3 .Net 20 (Para quem possui o .Net Framework 2.0) KTibiaX® Launcher Setup 2.1.3 .Net 35+ (Para quem possui o .Net Framework 3.5 ou posterior) [Código Fonte / Suporte] KTibiaX® Launcher CodePlex KTibiaX® Tibia Launcher 2.1 [Modo de Distribuição] Open Source [Linguagem de Construção] C# 3.5 [suporte para as versões] 7.6 - 7.92 - 8.0 - 8.10 - 8.11 - 8.20 - 8.21 - 8.22 - 8.30 - 8.31 - 8.4 - 8.41 - 8.42 - 8.50 - 8.54 - 8.55 - 8.57 - 8.60 [iPChanger (Server / Port)] Funcionalidade conhecida. Permite que você altere o ip do login server, para que você se conecte em OTServers. Também funciona com o Tibia Oficial (apenas não selecione nenhum servidor). [status Checker & Lag Measurement] Essa funcionalidade permite que você cheque se um determinado servidor está online e o Lag deste servidor. Obtém informações completas sobre o OT. Medidor de lag 100% funcional. Você está correto, até 250 (ainda verde no medidor) o server é "jogável". Acima disso (parte vermelho/alaranjado no medidor) significa que o servidor não é recomendável ou simplesmente não suporta mais jogadores. Uma boa aplicação para esta funcionalidade seria medir o lag do servidor quando o cliente começar a travar ou "freezar" demais, dessa forma você poderia identificar se o problema está no servidor ou na sua internet. []'s [OTServer Maps Distinct] Mantenha separados os Mapas dos OTs que você joga. Evitando a substituição e a bagunça nos mapas, causada pela utilização de varios servidores. E manteha os mapas oficiais intactos. Não é necessário alterar nenhuma configuração para que o ktibiax separe os mapas. Em opções avançadas existe um campo com o diretório onde os mapas de ot serão salvos e uma outra opção (que já vem marcada) que permite que os mapas de ots sejam separados. Dessa forma o programa criará uma pasta para cada ot que vc jogar e salvará os mapas na pasta deste ot. Assim quando você jogar neste ot novamente, o programa irá dizer ao tibia que os mapas que precisam ser usados são os mapas já salvos na pasta do ot. []'s [safe Multi-Client] Permite que você utilize a função de Multi-Cliente para qualquer versão 8.* sem risco de ser banido. Esse MC é indetectável, pois eu não modifico o cliente! Apenas fique atento, não logue vários MC's ao mesmo tempo pois a CIP grava registros dos jogadores que fazem isso. Aguarde ao menos 2 minutos entre os logins de seus chars para não correr risco de ser banido. []'s [server Address Storage] Salve informações de seus servidores favoritos e recupere quando quiser. [Client & Version Managment] Salva os clientes e suas respectivas versões. E sempre que vc selecionar um servidor, o cliente será sugerido automaticamente. [Graphics and FrameRate] Permite que você defina um Graphics Engine e que vc personalize o Frame Rate antes de abrir o cliente. Disponível para versões 8.* [Tibia.cfg Managment] Você pode salvar diferentes versões do seu Tibia.cfg com suas definições favoritas (Hotkeys, configurações, gráficos, etc.) para cada vocação, e usá-los para abrir os clientes quando quiser. [RSA Key Writer] Possibilita a personalização da chave RSA de login para OTServers. [Advanced Options Managment] Você pode definir qualquer uma das opções avançadas do sistema, e suas preferências serão salvas. [Form Skins] Você pode escolher entre os vários skins disponíveis. Não confie em links do rapidshare, easyshare ou afins. Baixe o programa apenas do googlecode ou codeplex! [Download do Programa] KTibiaX® Launcher Setup 2.1.3 .Net 20 (Para quem possui o .Net Framework 2.0) KTibiaX® Launcher Setup 2.1.3 .Net 35+ (Para quem possui o .Net Framework 3.5 ou posterior) [Código Fonte / Suporte] KTibiaX® Launcher CodePlex []'s
    1 ponto
  12. Koddy

    "green" Nature Tutorial

    Saudações XTibianos! Depois de muitos pedidos, e alguns tutoriais em andamento, volto a produzí-los, e pretendo fazer isso em períodos mais curtos. Gostaria de esclarecer que Nature é uma parte muito complicada de se fazer no mapa, e que tentei ao máximo explicar detalhadamente; visto que estou aprendendo também. Então caso vejam alguma coisa que possa melhorar, fiquem a vontade para criticar. Só lembrando que este tutorial foi feito para melhorar as suas técnicas ou sua noção de Natureza. A criada abaixo é a minha visão, então espero que gostem. (: ---------- 01. Após abrir seu RME, crie uma área de grama, você fará um caminho com terra, e alguns pedaços de chão "rochoso", algo parecido com o que mostra a figura. 02. Você provavelmente fará algo assim. Mas sugiro que apague o que fez, pressione "A", para desativar o Auto Border, e faça tudo novamente. E atenção: se for iniciante, pode pular esta etapa, mas sugiro que tente, mesmo que começando agora. Pode ser chato mas verá que o resultado ficará muito melhor quando finalizar. 03. Pronto. Agora você fez o que havia feito antes, só que com o Auto Border desativado. É um começo (: (é, estamos no começo ainda). Agora com as bordas de grama (com e sem terra) selecionados (IDs representados na imagem abaixo), faça manualmente a borda entre a grama e o outro piso. Lembrando que se for para fazer certinho, é a mesma coisa que como se deixasse o Auto Border ativado, e não é isso que queremos. Faça uma coisa mais irregular, desde que as bordas não fiquem sem conexão. Posso ter exagerado, mas espero ter passado uma ideia. 04. Depois de "randomizar" as bordas, você ainda pode mudar o piso, tanto na terra quanto no terreno rochoso (IDs na imagem abaixo). Adicione mais algumas bordas de grama "soltas" em qualquer piso que seja diferente da grama. Pode ficar até bonito nela mesma, desde que feita com a borda que possui terra, se não exagerado. Se preciso, faça algumas alterações nos pisos (e nas bordas também). 05. Agora o piso está pronto. Vamos agora aos "Doodads". Selecione as pedras maiores e os terrenos de grama mais elevados. Tome muito cuidado para não repetí-los em um espaço muito curto, pois isso pode deixar o mapa feio. 06. Após a colocação das pedras grandes, é a vez das pequenas. Espalhe-as pelo mapa (não exagere se colocar na grama), mas também não deixe de colocar 'grass things', no solo rochoso. 07. "Tá, estou seguindo o tutorial até agora e você ainda não colocou nenhuma árvore". Calma. Agora que acabamos de detalhar os pisos que não são a grama, vamos para ela. Crie diversos arbustos, mas tente não fazer uma sequência lógica para eles. Coloque de um em um, e evite deixar arbustos iguais "enfileirados". Randomize ao máximo, como demonstrado abaixo. 08. Estamos quase no fim. Colocaremos, agora, as árvores maiores, as mais conhecidas, que por sua vez são as mais utilizadas. Se necessário, modifique a posição dos arbustos, adicione mais, remova-os; faça com que a diferença de tamanho entre os dois tipos de árvores se contrastem. 09. E para finalizar, e não menos importante, o tufo de grama, assim como as pequenas flores. Sugiro colocar primeiro as flores, e depois os tufos, para que elas consigam ficar perto das que combinem. Tenha muita atenção também para não colocar tufos em cima de pedras, árvores ou arbustos. Isso ficará estranho e sempre que alguém perceber estará te "cutucando". É recomendável que se coloque os Tufos utilizando o "Raw Palette", e também que se evite os mais grossos. Faça tipo uma "escala" entre eles, de forma que não fique muito repetitiva. Veja abaixo o resultado final. ---------- Se pensa que acabou, está enganado, ainda pode continuar! Você terminou o básico de sua nature. É possível incluir "troncos", nos mapas (IDs: 4186~4201), "raízes" e "árvores gigantes", "montanhas", tanto de rocha como de terra, "flores" que ficam 'grudadas' na parede (IDs:6226~6231), "galhos" de árvore jogados pelo chão (IDs: 8785~8791), etc. É só procurar no "Raw Palette", tanto em Nature, quanto em Others, que com certeza utilizará alguma coisa de lá, e que poderá cair muito bem em seu mapa. Segue abaixo um Gif, mostrando a evolução do mapa em imagens desde o começo do tutorial até ficar pronto. Se esqueci de mencionar o ID de algum item que você queira conferir, sinta-se a vontade para fazer o Download do mapa criado neste tutorial Clicando aqui. Espero ter ajudado, e que tenham aprendido pelo menos alguma coisa a mais com este tutorial. Por favor, não deixem de comentar. Obrigado por lerem até aqui, e tenham paciência na hora de Mappear! Abraços, Koddy.
    1 ponto
  13. fsg

    Mudando Propriedades Do Programa

    Oi Galera, hoje eu irei ensinar como vocês mudarem a propriedades do programa com o ResHacker como na imagem abaixo: Índice * Mudando Propriedades ** Mudando Ícone Downloads Clique aqui Mudando Propriedades Abra o seu ResHacker, vá em File -> O programa desejado: Irei usar o .Exe do Real Server! Após abrir vá em: Version Info -> 1 -> 1033 E mude do seu gosto, eu irei mudar e deixarei de exemplo: Após isto clique no ícone abaixo: E Pronto, propriedades configuradas, vamoa para a próxima etapa: Mudando Ícone Vá em: Icon Group -> Alguma Pasta Que Tiver -> 1033 Após isto, vá em Action -> Replace Icon... e siga a imagem abaixo: e clique em: Open file with new icon... e procure o ícone que deseja! Após achar o ícone clique nele como na imagem abaixo: E clique em Replace. Prontinho, agora vamos salvar, vá em File -> Save As... e siga a imagem abaixo: OBRIGATÓRIO: TUDO QUE FOR SALVAR SALVE EM .EXE NO FINAL! Resultado Final: Abraços. Espero Respostas!
    1 ponto
  14. Vodkart

    Ao Da Use Na Alavanca Sai Um Efeito

    pedido resolvido via MSN abraços
    1 ponto
  15. Saymon14

    Showoff Galeria De Imagens

    ------------------------------------------------------------------------------------------------------------------------------------ Achei bem legal, nao tem muito o que falar, pois ele esta no padrão de um ATS, só alguns detalhezinhos que pegaram mal mais acho que no lançamento deve esta Ok. ------------------------------------------------------------------------------------------------------------------------------------ - Att. Saymon, Abraços.
    1 ponto
  16. AI ele so pois uma letra errada your(i)ots o que que tem e Global Zao pra que por o nome certo ( Global Full Zao ) todo mundo que vir o post vai saber de qual map ele ta falando. Se quer algo serto arruma teu perfil: marcelopop # Grupo: Membros # Posts: 99 # Cadastrado: 17/06/2010 # Sexo:Masculino # Localização:São paulo # Char no Tibia: Lord'paulistinha * Ta na cara que nao era seu nem passo perto ¬¬ # Seção Favorita: Mapping # OTserv Preferido: xtibia.servegame.com * É O nome do map do seu ot serv favorito e nao o o ID de um ot Põe serto pra gente visualizar ^^
    1 ponto
  17. mANO seis tem q tudo cala a boca ,ele pode ateh ter pego o mapa do kra mais idai ele modificou melhorou muiito fez ficar mais verdadeiro global,e sesi ficam reclamando seis tem tudo eh q toma no cu o doohz tras esse ot e seis fikam reclamando
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...