Ir para conteúdo

Cosmopolitan

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Cosmopolitan recebeu reputação de wilsin93 em Elsevier [ATS]   
    Arahmunhra é uma cidade própria do mapa, não tem muito a ver com Ankrahmun. Esse mapa é uma remodelação do mapa utilizado pelo Empire Server, um server famoso que ficou online em 2006 se nao me engano   É um excelente mapa, quem ja jogou sabe. Enquanto a rate estagiada pode ser uma opção muito boa.
     
    Obrigado pelo apoio todos!
  2. Gostei
    Cosmopolitan recebeu reputação de Markin em Elsevier [ATS]   
    Introdução

    Elsevier é um projeto de Alternate Tibia Server, que visa a construção de um servidor que promova a diversão dos seus jogadores através de elementos clássicos do Tibia, tais como:


    - Um mercado equilibrado
    - Integração entre os jogadores
    - Wars
    - Um mapa jogável
    - Equilíbrio entre vocações
    - Raids
    - Addons
    - Quests
    - Houses
    - Outros


    Mapa

    O mapa escolhido como base para o servidor é o que já foi usado em grandes servidores como Empire e Mastriny, no entanto, como se trata de um mapa antigo foram feitas diversas modificações para adapta-lo aos padrões de qualidade desejados pelo servidor. A escolha do mapa foi feita por acreditar que durante meu tempo de Otserv os servidores que o utilizaram foram os únicos capazes de entregar uma boa jogabilidade atrelado aos fatores citados na introdução. Segue abaixo algumas screenshots do mapa.


    Aramunhra








    Hunts Clássicas
    A grande maioria das hunts foram mantidas, sendo somente modificadas.





    Novas Hunts
    Assim como novas hunts foram implementadas.




    Addons
    Os sistema de addons foi remodelado ao molde do tibia original, porem, sem comprometer o role-play.





    Rates

    Estipula-se uma rate de experiência aproximada de 5x; uma rate de skills de 2x e uma rate de loot de 1.5x, podendo ser modificada até o lançamento do servidor.



    Sistemas

    O servidor irá se esforçar ao máximo para conter os mais novos sistemas possíveis. Como visto em algumas imagens já está presente o sistema de montarias e por consequente o sistema de taming, funcionando igual ao tibia original. O sistema de exaustão de magias também já se faz presente. O sistema de offline-training também está incluso no servidor e por final o sistema de market.



    Considerações finais

    Elsevier é um servidor que tenta resgatar a jogabilidade dos servidores, através do equilíbrio das vocações e da valorização da interação entre players. Esse resgate é esperado principalmente pela presença de um mapa de qualidade já conhecido por uma grande quantidade de players, e sistemas in-game.  
  3. Gostei
    Cosmopolitan recebeu reputação de kaiquegabriel em Elsevier [ATS]   
    Introdução

    Elsevier é um projeto de Alternate Tibia Server, que visa a construção de um servidor que promova a diversão dos seus jogadores através de elementos clássicos do Tibia, tais como:


    - Um mercado equilibrado
    - Integração entre os jogadores
    - Wars
    - Um mapa jogável
    - Equilíbrio entre vocações
    - Raids
    - Addons
    - Quests
    - Houses
    - Outros


    Mapa

    O mapa escolhido como base para o servidor é o que já foi usado em grandes servidores como Empire e Mastriny, no entanto, como se trata de um mapa antigo foram feitas diversas modificações para adapta-lo aos padrões de qualidade desejados pelo servidor. A escolha do mapa foi feita por acreditar que durante meu tempo de Otserv os servidores que o utilizaram foram os únicos capazes de entregar uma boa jogabilidade atrelado aos fatores citados na introdução. Segue abaixo algumas screenshots do mapa.


    Aramunhra








    Hunts Clássicas
    A grande maioria das hunts foram mantidas, sendo somente modificadas.





    Novas Hunts
    Assim como novas hunts foram implementadas.




    Addons
    Os sistema de addons foi remodelado ao molde do tibia original, porem, sem comprometer o role-play.





    Rates

    Estipula-se uma rate de experiência aproximada de 5x; uma rate de skills de 2x e uma rate de loot de 1.5x, podendo ser modificada até o lançamento do servidor.



    Sistemas

    O servidor irá se esforçar ao máximo para conter os mais novos sistemas possíveis. Como visto em algumas imagens já está presente o sistema de montarias e por consequente o sistema de taming, funcionando igual ao tibia original. O sistema de exaustão de magias também já se faz presente. O sistema de offline-training também está incluso no servidor e por final o sistema de market.



    Considerações finais

    Elsevier é um servidor que tenta resgatar a jogabilidade dos servidores, através do equilíbrio das vocações e da valorização da interação entre players. Esse resgate é esperado principalmente pela presença de um mapa de qualidade já conhecido por uma grande quantidade de players, e sistemas in-game.  
  4. Gostei
    Cosmopolitan deu reputação a Huziwara em Taming 100% igual Global !   
    Olá TKbianos,
    Descidi compartilhar a você o taming.lua, feito pelo Otland e explicado por mim...
    Bem, o que ele faz ?
    Simples, esse script da função a todos os itens de montaria (aqueles que servem para capturar o monstro)
    Então, vamos lá !
    XML code :


    <action itemid="13295" event="script" value="other/taming.lua"/> <!-- reins --> <action itemid="13294" event="script" value="other/taming.lua"/> <!-- harness --> <action itemid="13293" event="script" value="other/taming.lua"/> <!-- leather whip --> <action itemid="13298" event="script" value="other/taming.lua"/> <!-- carrot on a stick --> <action itemid="13247" event="script" value="other/taming.lua"/> <!-- hunting horn --> <action itemid="13305" event="script" value="other/taming.lua"/> <!-- giant shrimp --> <action itemid="13291" event="script" value="other/taming.lua"/> <!-- maxilla maximus --> <action itemid="5907" event="script" value="other/taming.lua"/> <!-- slingshot --> <action itemid="13307" event="script" value="other/taming.lua"/> <!-- sweet smelling bait --> <action itemid="13292" event="script" value="other/taming.lua"/> <!-- tin key --> <action itemid="13938" event="script" value="other/taming.lua"/> <!-- golden can of oil --> <action itemid="13939" event="script" value="other/taming.lua"/> <!-- sugar oat --> <action itemid="13508" event="script" value="other/taming.lua"/> <!-- slug drug --> <action itemid="13535" event="script" value="other/taming.lua"/> <!-- fist on a stick --> <action itemid="13536" event="script" value="other/taming.lua"/> <!-- diapason --> <action itemid="13537" event="script" value="other/taming.lua"/> <!-- bag of apple slices --> <action itemid="13538" event="script" value="other/taming.lua"/> <!-- bamboo leaves --> <action itemid="13539" event="script" value="other/taming.lua"/> <!-- golden fir cone --> <action itemid="13498" event="script" value="other/taming.lua"/> <!-- scorpion sceptre --> Crie um arquivo lua chamado : taming.lua e bote dentro da pasta other e botei isso: local ACTION_RUN, ACTION_BREAK, ACTION_NONE, ACTION_ALL = 1, 2, 3, 4 local TYPE_MONSTER, TYPE_NPC, TYPE_ACTION, TYPE_UNIQUE = 1, 2, 3, 4 local config = { [5907] = {NAME = 'Bear', ID = 3, TYPE = TYPE_MONSTER, CHANCE = 20, FAIL_MSG = { {1, "The bear ran away."}, {2, "Oh no! The slingshot broke."}, {3, "The bear is trying to hit you with its claws."} }, SUCCESS_MSG = "You have tamed the bear."}, [13295] = {NAME = 'Black Sheep', ID = 4, TYPE = TYPE_MONSTER, CHANCE = 25, FAIL_MSG = { {1, "The black sheep ran away."}, {2, "Oh no! The reins were torn."}, {3, "The black sheep is trying to run away."} }, SUCCESS_MSG = "You have tamed the sheep."}, [13293] = {NAME = 'Midnight Panther', ID = 5, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The panther has escaped."}, {2, "The whip broke."} }, SUCCESS_MSG = "You have tamed the panther."}, [13298] = {NAME = 'Terror Bird', ID = 2, TYPE = TYPE_MONSTER, CHANCE = 15, FAIL_MSG = { {1, "The bird ran away."}, {3, "The terror bird is pecking you."} }, SUCCESS_MSG = "You have tamed the bird."}, [13247] = {NAME = 'Boar', ID = 10, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The boar has run away"}, {3, "The boar attacks you."} }, SUCCESS_MSG = "You have tamed the boar."}, [13305] = {NAME = 'Crustacea Gigantica', ID = 7, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The crustacea has run away."}, {2, "The crustacea ate the shrimp."} }, SUCCESS_MSG = "You have tamed the crustacea."}, [13291] = {NAME = 'Undead Cavebear', ID = 12, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The undead bear has run away."} }, SUCCESS_MSG = "You have tamed the skeleton."}, [13307] = {NAME = 'Wailing Widow', ID = 1, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The widow has run away."}, {2, "The widow has eaten the sweet bait."} }, SUCCESS_MSG = "You have tamed the widow."}, [13292] = {NAME = 'Tin Lizzard', ID = 8, TYPE = TYPE_NPC, CHANCE = 40, FAIL_MSG = { {2, "The key broke inside."} }, SUCCESS_MSG = "You have started the Tin Lizzard!"}, [13294] = {NAME = 'Draptor', ID = 6, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The draptor has run away."}, {3, "The draptor has fled."} }, SUCCESS_MSG = "You have tamed the draptor."}, [13536] = {NAME = 'Crystal Wolf', ID = 16, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The wolf has run away."} }, SUCCESS_MSG = "You have tamed the wolf."}, [13539] = {NAME = 'White Deer', ID = 18, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {2, "The cone broke."}, {3, "The deer has fled in fear."} }, SUCCESS_MSG = "You have tamed the deer."}, [13538] = {NAME = 'Panda', ID = 19, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {4, "Panda ate the leaves and ran away."} }, SUCCESS_MSG = "You have tamed the panda."}, [13535] = {NAME = 'Dromedary', ID = 20, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "Dromedary has run away."} }, SUCCESS_MSG = "You have tamed the dromedary."}, [13498] = {NAME = 'Sandstone Scorpion', ID = 21, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The scorpion has vanished."}, {2, "Scorpion broken the sceptre."} }, SUCCESS_MSG = "You have tamed the scorpion"}, [13537] = {NAME = 'Donkey', ID = 13, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The witch has escaped!"} }, SUCCESS_MSG = "You have tamed the mule."}, [13938] = {NAME = 'Uniwheel', ID = 15, TYPE = TYPE_NPC, CHANCE = 40, FAIL_MSG = { {2, "The oil is having no effect."} }, SUCCESS_MSG = "You have found an Uniwheel."}, [13508] = {NAME = 'Slug', ID = 14, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The slug has run away."}, {3, "The drug had no effect."} }, SUCCESS_MSG = "You have tamed the slug."}, [13939] = {NAME = 'War Horse', ID = 23, TYPE = TYPE_MONSTER, CHANCE = 15, FAIL_MSG = { {1, "The horse runs away."}, {2, "The horse ate the oats."} }, SUCCESS_MSG = "You have tamed the horse."} } local function doFailAction(cid, mount, pos, item, itemEx) local action, effect = mount.FAIL_MSG[math.random(1, table.maxn(mount.FAIL_MSG))], CONST_ME_POFF if(action[1] == ACTION_RUN) then doRemoveCreature(itemEx.uid) elseif(action[1] == ACTION_BREAK) then effect = CONST_ME_BLOCKHIT doRemoveItem(item.uid, 1) elseif(action[1] == ACTION_ALL) then doRemoveCreature(itemEx.uid) doRemoveItem(item.uid, 1) end doSendMagicEffect(pos, effect) doCreatureSay(cid, action[2], TALKTYPE_MONSTER_SAY) return action end function onUse(cid, item, fromPosition, itemEx, toPosition) local mount = config[item.itemid] if(mount == nil or getPlayerMount(cid, mount.ID)) then return false end local rand = math.random(1, 100) --Monster Mount if(isMonster(itemEx.uid) and not isSummon(itemEx.uid) and mount.TYPE == TYPE_MONSTER) then if(mount.NAME == getCreatureName(itemEx.uid)) then if(rand > mount.CHANCE) then doFailAction(cid, mount, toPosition, item, itemEx) return true end doPlayerAddMount(cid, mount.ID) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, mount.SUCCESS_MSG) doCreatureSay(cid, mount.SUCCESS_MSG, TALKTYPE_MONSTER_SAY) doRemoveCreature(itemEx.uid) doSendMagicEffect(toPosition, CONST_ME_POFF) doRemoveItem(item.uid, 1) return true end --NPC Mount elseif(isNpc(itemEx.uid) and mount.TYPE == TYPE_NPC) then if(mount.NAME == getCreatureName(itemEx.uid)) then if(rand > mount.CHANCE) then doFailAction(cid, mount, toPosition, item, itemEx) return true end doPlayerAddMount(cid, mount.ID) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, mount.SUCCESS_MSG) doCreatureSay(cid, mount.SUCCESS_MSG, TALKTYPE_MONSTER_SAY) doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) doRemoveItem(item.uid, 1) return true end --Action Mount elseif(itemEx.actionid > 0 and mount.TYPE == TYPE_ACTION) then if(mount.NAME == itemEx.actionid) then if(rand > mount.CHANCE) then doFailAction(cid, mount, toPosition, item, itemEx) return true end doPlayerAddMount(cid, mount.ID) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, mount.SUCCESS_MSG) doCreatureSay(cid, mount.SUCCESS_MSG, TALKTYPE_MONSTER_SAY) doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) doRemoveItem(item.uid, 1) return true end --Unique Mount elseif(itemEx.uid <= 65535 and mount.TYPE == TYPE_UNIQUE) then if(mount.NAME == itemEx.uid) then if(rand > mount.CHANCE) then doFailAction(cid, mount, toPosition, item, itemEx) return true end doPlayerAddMount(cid, mount.ID) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, mount.SUCCESS_MSG) doCreatureSay(cid, mount.SUCCESS_MSG, TALKTYPE_MONSTER_SAY) doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) doRemoveItem(item.uid, 1) return true end end return false end Explicando : [5907] = {NAME = 'Bear', ID = 3, TYPE = TYPE_MONSTER, CHANCE = 20, FAIL_MSG = { {1, "The bear ran away."}, {2, "Oh no! The slingshot broke."}, {3, "The bear is trying to hit you with its claws."} }, SUCCESS_MSG = "You have tamed the bear."},

    5907 = Item que precisa ser usado !
    Name = O alvo (Nesse alvo é que você ira usar o item).
    ID = Id da mount, isso é configurado no mount.xml.
    TYPE = os tipos são : TYPE_MONSTER, TYPE_NPC (Existem 2 mounts que são feitos por esse tipo),TYPE_ACTION, TYPE_UNIQUE.
    Chance = A chance de conseguir em %.
    FAIL_MSG = Aqui você pode botar diversas mensagens com diversas de diversas funções... Exemplo : {1, "O urso correu pra longe."} Nesse caso, aquele 1 significa que o monstro fugiu, e então a mensagem você pode mudar, mas você tambem pode adicionar o tipo 2, o tipo 2 funciona como se o item tivesse quebrado... {2, "O urso comeu a banana."}, o tipo 3 é que nada acontece ... {3, "O urso latiu pra você."} e o tipo 4, é aonde o player se fode todo onde tudo acontece e nada a favor do player {4, "O urso comeu a banana e saiu correndo."}
    SUCCESS_MSG = É a mensagem de sucesso, exemplo : "Você capturo o urso mais estranho do mundo."

    Ajudei ? não precisa de rep +, apenas comente !

    Att. Huziwara no Mokou
  5. Gostei
    Cosmopolitan deu reputação a MaXwEllDeN em Sistema de Addons   
    local config = {    ["Wizard Helmet Addon"] = {t1 = 2536, t2 = 2492, t3 = 2488, t4 = 2123}, }   local outfitmale = 145 local outfitfemale = 149 local addons = 1   local r1 = {x = 182, y = 262, z = 9, stackpos = 2} -- Posição 1 ( NãO MEXA NO stackpos= 2 ) local r2 = {x = 183, y = 262, z = 9, stackpos = 2} -- Posição 2 ( NãO MEXA NO stackpos= 2 ) local r3 = {x = 185, y = 262, z = 9, stackpos = 2} -- Posição 3 ( NãO MEXA NO stackpos= 2 ) local r4 = {x = 186, y = 262, z = 9, stackpos = 2} -- Posição 4   function onUse(cid, item, frompos, item2, topos, pos)    local q1 = getThingfromPos(r1)    local q2 = getThingfromPos(r2)    local q3 = getThingfromPos(r3)    local q4 = getThingfromPos(r4)      for i, x in pairs(config) do       if q1.itemid == x.t1 and q2.itemid == x.t2 and q3.itemid == x.t3 and q4.itemid == x.t4 then          if getPlayerStorageValue(cid, storage) == -1 then             doRemoveItem(q1.uid, 1)             doRemoveItem(q2.uid, 1)             doRemoveItem(q3.uid, 1)             doRemoveItem(q4.uid, 1)               doPlayerAddOutfit(cid, outfitmale, addons)             doPlayerAddOutfit(cid, outfitfemale, addons)             doPlayerSendTextMessage(cid, 21, "You just earned the helmet of the Wizard outfit!")             doSendMagicEffect(getCreaturePosition(cid), 28)             setPlayerStorageValue(cid, storage, 1)             break          else             doPlayerSendCancel(cid, "You already have this addon.")             break          end       end    end    return true end    
    Não é muito comum ver alguém que está iniciando usando o for desta maneira. Dei só umas corrigidas na sintaxe que estava errada . 
     
    Se outros outfits também fossem obtidos por esse modo, eu faria esse código assim:
     

    local config = {    ["Wizard Helmet Addon"] = {       storage = 21000,         outfit = {          sex = {             [0] = 149, -- Sex 0             [1] = 145, -- Sex 1          },            addons = 1       },         items = {          [2536] = {count = 1, pos = {x = 182, y = 262, z = 9}}, -- [Item1] = {posição 1}          [2492] = {count = 1, pos = {x = 183, y = 262, z = 9}}, -- [Item2] = {posição 2}          [2488] = {count = 1, pos = {x = 185, y = 262, z = 9}}, -- [Item3] = {posição 3}          [2123] = {count = 1, pos = {x = 186, y = 262, z = 9}}, -- [Item4] = {posição 4}       }       -- Caso tenha a necessidade de usar mais itens é só ir adicionando mais à tabela    }, }   function onUse(cid, item, frompos, item2, topos, pos)    for i, v in pairs(config) do       local ok = true         for item_id, c in pairs(v.items) do          local item = getTileItemById(c.pos, item_id)            if item.uid < 100 or item.type < c.count then             ok = false             break          end         end         if ok then          if getPlayerStorageValue(cid, v.storage) > 0 then             return doPlayerSendCancel(cid, "You already have this addon.")          end            for item_id, c in pairs(v.items) do             local item = getTileItemById(c.pos, item_id)             doRemoveItem(item.uid, c.count)          end            setPlayerStorageValue(cid, v.storage, 1)          doPlayerSendTextMessage(cid, 21, "You just earned the ".. i ..".")          doSendMagicEffect(getThingPos(cid), 28)          doPlayerAddOutfit(cid, v.outfit.sex[getPlayerSex(cid)], v.outfit.addons)          return true       end      end      return true end  

Informação Importante

Confirmação de Termo