Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Cadê todo mundo? A sessão morreu? Brincadeira. Tinha prometido que nesta quarta-feira postaria o primeiro update do projeto Carlin. Pois é, não deu. Por motivo de força maior tive que adiar em dois dias a postagem. Nesses dois dias fui capaz de adicionar várias coisas no projeto. Mas me pergunto se vai valer à pena. Esse é um projeto que sem o feedback necessário vai morrer na praia como muitos outros que já vi por aqui. Até o blackboard das paredes do tibia tem algo a dizer sobre isso: Com isso, vamos ao primeiro update do projeto carlin! SETOR 1 Primeiro algumas imagens tiradas por mim: Um detalhe: Seria muito fácil só desenhar as construções sem nada dentro, mas eu queria tudo exatamente ou o mais próximo possível da realidade tibiana: Aqui vai um pouquinho da primeira construção, a da screenshot. Agora a primeira construção: Algumas construções: Agora tudo montado, formando o primeiro setor de Carlin: Preciso de algumas screenshots da parte sul de carlin, a loja de sorc e druid etc, e apontem alguns defeitos que vocês acharem, o que estiver fácil de arrumar eu faço rapidinho. Postarei o próximo update em alguns dias, vai depender também do feedback que eu receber. Ah, e planejo fazer algumas animações ou um mini-jogo nessa Carlin em 3D, vai depender da minha paciência e do meu tempo.
    2 pontos
  2. Você provavelmente configurou errado então, verifique as posições e as alavancas se estão todas certas, teste somente com duas alavancas e uma pedra primeiro e deixe elas uma do lado da outra pra ficar mais fácil testar Eu rodei o script aqui e estava apenas com o problema de não recriar as pedras removidas depois, aqui está o script arrumado: local alavancas = { -- tabela com a posicao de cada alavanca e o id que ela precisa estar para abrir passagem {x = 1000, y = 1000, z = 7, correto = 1945}, {x = 1000, y = 1000, z = 7, correto = 1945}, {x = 1000, y = 1000, z = 7, correto = 1945}, {x = 1000, y = 1000, z = 7, correto = 1945}, {x = 1000, y = 1000, z = 7, correto = 1945}, {x = 1000, y = 1000, z = 7, correto = 1945}, } local pedras = { -- tabela com a posicao e os ids das pedras que vao sumir {x = 1000, y = 1000, z = 7, id = 1285}, {x = 1000, y = 1000, z = 7, id = 1285}, {x = 1000, y = 1000, z = 7, id = 1285}, } local EFEITO_AO_REMOVER_PEDRA = CONST_ME_POFF -- efeito que aparece quando as pedras sumirem local EFEITO_AO_RECRIAR_PEDRA = CONST_ME_POFF -- efeito que aparece quando as pedras reaparecerem local TEMPO_PARA_RECRIAR_PEDRAS = 12 * 1000 -- em ms, tempo para bloquear a passagem e resetar todas as alavancas -- nao modifique daqui para baixo local aberto = false function onUse(cid, item, frompos, item2, topos) if aberto then return doPlayerSendCancel(cid, "A passagem já está aberta.") end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) for i, a in pairs (alavancas) do if getTileItemById({x = a.x, y = a.y, z = a.z}, a.correto).uid < 1 then return doPlayerSendCancel(cid, "Parece que nada aconteceu...") end end aberto = true for i, a in pairs (pedras) do local uid = getTileItemById({x = a.x, y = a.y, z = a.z}, a.id).uid if uid > 1 then doRemoveItem(uid) doSendMagicEffect({x = a.x, y = a.y, z = a.z}, EFEITO_AO_REMOVER_PEDRA) end end addEvent(function () aberto = false for i, a in pairs (pedras) do local uid = getTileItemById({x = a.x, y = a.y, z = a.z}, a.id).uid if uid < 1 then doCreateItem(a.id, {x = a.x, y = a.y, z = a.z}) doSendMagicEffect({x = a.x, y = a.y, z = a.z}, EFEITO_AO_RECRIAR_PEDRA) end end for i, a in pairs (alavancas) do local uid = getTileItemById({x = a.x, y = a.y, z = a.z}, a.correto).uid if uid > 1 then doTransformItem(uid, 1945) end end end, TEMPO_PARA_RECRIAR_PEDRAS) return doPlayerSendCancel(cid, "Alguma passagem foi desbloqueada!") end
    2 pontos
  3. Creditos: Vodkart Kydrai fala galerinha resolvi posta alguns script que acontece quando o player mata algum monstro ... o primeiro é o script que acontece quando voce mata um Monstro abre o teleport. o segundo é matar o monstro e sumir a parede por algum tempo. Obs: o Nome do monstro deve ser colocado com Letra Maiuscula. [ Matar monstro e abrir Teleport ] creaturescript\script [ Matar Monstro e parede sumir por determinado tempo ] creaturescript\script [ Matar Monstro e ser teleportado ] [ Matar Monstro e Ganhar Storage ]
    1 ponto
  4. Informações: » Mounts 100% » Items 97% » Outfits 100% » Trainer offline Estatuas e Camas 100% » Todos os Monstros 9.70 (Falta Incluir os 9.80) » TheOTX 2.44 Codename: "Chronodia" Requerimentos Minimos: » Windows XP 32Bits ou 64Bits » Intel Core 2 Duo 2,40 GHZ » 2GB de Memoria RAM Ferramentas Necessárias: » Para não ter problemas com arquivos (dll). » Microsoft Visual C++ 2010 - 32Bits: Redistributable Package Screen's: Download Server / Scan: » Download Server: Mediafire »Scan Server: https://www.virustot...sis/1357087768/ Download Database / Scan: » Download Database: Mediafire » Scan Database: https://www.virustot...sis/1357088007/ Download Sources / Scan: » Download Sources: Mediafire » Scan Sources: https://www.virustot...sis/1357088122/ Acc GOD: tibia/tibia Créditos: NvSo OTXTeam - 99,99% Soldoran SmoOkeR 0,01% - Uploads / Formatação / Scan
    1 ponto
  5. raphaelpdc

    Caderno de raphaelpdc

    Fala ae pessoal, trago aqui pra vocês umas sprites antigas, e novas, todas que eu fui guardando no photobucket: Desculpem a bagunça, amanha eu ajeito, ja estou indo dormir, foi mal kkkk
    1 ponto
  6. kttallan

    [Tutorial] O Cooldown Bar

    Ola Gente Hoje Venho Mostrar Um Tutorial Basico Que Muitos Iniciantes Não Sabem Fazer Pois No Caso Não E Muito Complicado Rsrs !! Oque E Cooldwn Bar ? R = Cooldwn Bar E Akela Tabelinha Que Fica Com As Fotos Do Pokemon Em Cima Tabem E Os Moveis De Ataques Amostrados Ná Seguinte Foto. Para Que Serve O Cooldwn Bar ? R = O Cooldwn Bar Serve Para Ver As Fotinhas E Os Startus Dos Pokemons Como Mostra Na Foto Acima Tem O % De Cada Pokemon Cada % Signifca Sangue explo Meu Alakazam Ta 0 % Significa Que Ele Ja Morreu. Obs : O Cooldwn Bar e Uma Dll Ejetada No Arquivo .exe Como Por Explo O Client Como Ela Se Chama Normalmente Ela E Chamada De Otal.dll . Eu Tenho Esse Arquivo Na Pasta Do Meu Client Mais Quando Eu Entro Nó Serve Não Aparece As Fotinhas E a Barra De Movies o Seguinte Va Em Ot/Data/Lib Se Tiver A Pasta Cooldwn Bar E Que o Cooldwn Bar Estar Ativo So Fota Engetar No Novo Client Siga o Tutorial Abaixo. 1 - Vocé Vai Precisa De Um Programa. Download Seguinte Após Baixar O Stud_Pe Abra Ele E Faça O Seguinte. Print Para Ajudar. Vá Na Pasta Do Seu Client E Procure Seu Clien .exe Print De Ajuda. Logo Em Seguida Vá Em Functions Depois Clique Com Segundo Botão Em Qualquer Dll E Bote Add New Import. Print De Ajuda Depois De Tiver Add Vocé Percebera Que Apareceu A Nova dll Adicionada No Caso a Otal.dll Agora Va em Headrs e Clique Em Save File Que Fica Em Cima De Ok No Lado Direito.
    1 ponto
  7. Proucura-se Equipe para Server de Poketibia Progamador Sripter(Urgentemente) Mapper(Urgente Mesmo) WebMaster Gente q esta disposta a min ajudar quero fazer um ot de poketibia , e deixa-lo famoso por isso presiso de ajuda , só quero q seja um bom server . Gente meus projetos seguintes sou um pouco novato só q tipo eu tive um server de poketibia via hamachi e tive 16 redes cheias e o server tava cheios de bug ajeitei todos os bug, mapa criei um novo botei moves nos lendários só q não gostei, queria mais e uma equipe pra min ajudar. Meus objetivos é criar um otserver de poketibia e seja o bom o bastante q os jogadores gostem e pasem pro seus amigos como eu joguei pela a primeira vez um poketibia, e sair dizendo a todos q jogo era melhor jogo do mundo,minhas metas como eu já disse quero agradar a todos com um server de poketibia e bastante visitado... Obs: Queria um server PDA , mais si vocês acharem um melhor no comentários postem.
    1 ponto
  8. Animal Pak

    NewIsland

    POS: 1339,1098,7s Screen's: Download: http://www.4shared.com/rar/fwbhU9Mh/NewIsland_by_XxOpOxX.html Scan: https://www.virustotal.com/file/5c71549ce3c513496421f42a6c5ba71846debb88af95a52f429d8d8ae3cc7b26/analysis/1357093779/ Créditos: XxOpOxX
    1 ponto
  9. function onLogin(cid) if getCreatureName(cid) == "Account Manager" then return true end if getPlayerStorageValue(cid, 8178) == -1 then setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 8178, 1) doPlayerSendTextMessage(cid, 19, "Você foi promovido!") end return true end
    1 ponto
  10. 1 ponto
  11. function onLogin(cid) if getPlayerStorageValue(cid, 8177) == -1 then return setPlayerPromotionLevel(cid, 2) end return setPlayerStorageValue(cid, 8177, 1) end
    1 ponto
  12. dyego2008

    Pedito monsters xml

    Vai na pasta Monsters e abra o arquivo monsters.xml e cole isto (Obs: otthers/devovorga.xml coloque no diretório certo para não dar erro) <monster name="Halloween Hare" file="Misc/halloweenhare.xml"/> <monster name="Devorga" file="otthers/devorga.xml"/> Depois copie qualquer monsters exeplo demon.xml e renomeie para o nome dos bichos. Halloween Hare <?xml version="1.0" encoding="UTF-8"?> <monster name="The Halloween Hare" nameDescription="The Halloween Hare" race="blood" experience="0" speed="1050" manacost="0"> <health now="2000" max="2000"/> <look type="292"/> <targetchange interval="2000" chance="95"/> <strategy attack="0" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="0"/> <flag targetdistance="5"/> <flag staticattack="10"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" skill="0" attack="0"/> <attack name="outfit" interval="2000" radius="7" chance="6" monster="bat" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="Thornback tortoise" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="6" monster="orc" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="snake" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="6" monster="warlock" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="witch" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="necromancer" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="dwarf geomancer" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="monk" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="crab" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="ghost" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="minotaur mage" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="green frog" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="parrot" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="halloweenhare" duration="700000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="5" monster="The Halloween Hare" duration="7000"> <attribute key="areaEffect" value="poff"/> </attack> <attack name="outfit" interval="2000" radius="7" chance="15" item="2096" duration="166000"> <attribute key="areaEffect" value="poff"/> </attack> </attacks> <defenses armor="999" defense="999"> <defense name="healing" interval="1000" chance="50" min="1500" max="2000"> <attribute key="areaEffect" value="blueshimmer"/> </defense> </defenses> <immunities> <immunity name="physical"/> <immunity name="energy"/> <immunity name="fire"/> <immunity name="poison"/> <immunity name="drown"/> <immunity name="lifedrain"/> <immunity name="paralyze"/> <immunity name="outfit"/> <immunity name="drunk"/> <immunity name="invisible"/> </immunities> </monster> Devovorga <?xml version="1.0" encoding="UTF-8" ?> <monster name="Devovorga" nameDescription="Devovorga" race="venom" experience="700000" speed="350" manacost="0"> <health now="1000000" max="1000000" /> <look type="354"/> <targetchange interval="2000" chance="7" /> <strategy attack="100" defense="20" /> <flags> <flag summonable="0" /> <flag attackable="1" /> <flag hostile="1" /> <flag illusionable="0" /> <flag convinceable="0" /> <flag pushable="0" /> <flag canpushitems="1" /> <flag canpushcreatures="1" /> <flag targetdistance="1" /> <flag runonhealth="0" /> </flags> <attacks> <attack name="melee" interval="1200" min="-0" max="-3100"/> <attack name="lifedrain" interval="2000" chance="7" length="8" spread="0" min="-0" max="-1110"> <attribute key="areaEffect" value="redspark"/> </attack> <attack name="earth" interval="2000" chance="15" radius="6" target="0" min="-0" max="-450"> <attribute key="areaEffect" value="bigplants"/> </attack> <attack name="poisoncondition" interval="3000" chance="28" radius="7" target="0" max="-950"> <attribute key="areaEffect" value="carniphila"/> </attack> <attack name="cursecondition" interval="4000" chance="35" radius="7" target="0" max="-1200"> <attribute key="areaEffect" value="smallclouds"/> </attack> </attacks> <defenses armor="40" defense="39"> <defense name="healing" interval="3000" chance="20" min="2000" max="3000"> <attribute key="areaEffect" value="blueshimmer"/> </defense> </defenses> <immunities> <immunity paralyze="1" /> <immunity invisible="1" /> </immunities> <voices interval="3000" chance="10"> <voice sentence="Slurp!"/> <voice sentence="See how weak you are?"/> <voice sentence="I tried to save you, but there's no use."/> <voice sentence="My soul, power, hatred, knowledge and fury are far away."/> </voices> </monster>
    1 ponto
  13. rohfagundes

    [Show Off] RohFagundes

    novo visual =) esta bom? pq? Novo health info o q vcs preferem janela ou ali em cima do chat?
    1 ponto
  14. Blez

    Blez's Mapping Works

    Thanks for viewing (:
    1 ponto
  15. Não, você pode importar o mapa direto no seu mapa mas não recomendo porque as vezes ele importa em cima de algum lugar que já tem mapa, recomendo copiar andar por andar... Usa Ctrl+Shift e seleciona andar por andar depois vc copia e cola pro seu mapa, vai travar um pouco nessa operação!
    1 ponto
  16. Achei isso aqui amigo! Créditos para Tylik. Esse mapa está para 8.60, mas no caso vc pode importar para 9.80 Só ir file import map e abrir o mapa na versão 9.80 http://www.speedyshare.com/pbfgc/Gengia-By-Tylik.rar
    1 ponto
  17. raphaelpdc

    Caderno de raphaelpdc

    Very thanks, aqui umas outras coisinhas:
    1 ponto
  18. O Robinhood podia pelo menos posta as sprites do server ja que nao quer passa o server atualizado --' eu n sei fazer sprites entao ajuda ae qualquer pessoa vinnevinne ae lek toma ae KATON SOHENKA: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 214) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -70.1, 1, -80.1, 1) --edita ae kk local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 214) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -70.1, 1, -80.1, 1) --edita ae kk arr1 = { {0, 0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 3, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0} } arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var) end function onCastSpell(cid, var) local position1 = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y+1, z=getCreaturePosition(cid).z} local position2 = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 200, parameters) doSendMagicEffect(position1, 35) doSendMagicEffect(position2, 35) return TRUE end
    1 ponto
  19. beto06

    Nature de modo geral

    duvido muito q o left faria uma nature assim.. --edit mapa é do Ethan da Otland. http://www.xtibia.com/forum/topic/188437-basico-criando-a-natureza-verde/
    1 ponto
  20. como o autor disse, ele quer um cooldown alto, e se por através de exhaustion padrão das magias, todas as magias vão ficar congeladas por muito tempo, usa o script assim (basta modificar a primeira linha para ajustar o tempo de exhaustion): local tempo = 50 -- em segundos local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 26) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -4.0, 0, -5, 0) local area = createCombatArea({ {0, 1, 0}, {1, 2, 1}, {0, 1, 0}, }) setCombatArea(combat, area) local function onCastSpell(parameters) if not isCreature(parameters.cid) then return end doCombat(parameters.cid, combat1, parameters.var) end local exhaustion = {} function onCastSpell(cid, var) local guid = getPlayerGUID(cid) if exhaustion[guid] and exhaustion[guid] - os.clock() > 0 then return not doPlayerSendCancel(cid, "You are still exhausted from this spell.") end exhaustion[guid] = os.clock() + tempo local parameters = {cid = cid, var = var} local times = {100, 350, 700, 1050} for _, delay in pairs (times) do addEvent(onCastSpell, delay, parameters) end return true end
    1 ponto
  21. /\Não guenta kkk noob,ja passei para ele a sprite do kabuto
    1 ponto
  22. voce não é ninguem para julgar projeto de alguem. @topic boa sorte com teu servidor
    1 ponto
  23. Vodkart

    [Mods] System Frag Skull

    /\ MAS OS SERVIDORES DE VOCÊS SÃO DE WAR? DISTRO E MAPAS?
    1 ponto
  24. Amigo, pelo que vi ali, alguns dos IDS dos itens não correspondem com o nome que está na frente, faz assim, verifica no seu items.xml o id de cada item que você quer que o char comece e altera ai mesmo. Sobre o lvl do char, passa seu vocations.xml pra eu dar uma olhadinha Abaixo eu arrumei pra você os itens, testa ae!
    1 ponto
  25. Slicer

    [Encerrado] [pedido] pda Scripting

    1* ... 2* ...
    1 ponto
  26. function onUse(cid, item, topos, item2, frompos) local ball = getPlayerSlotItem(cid, 8).uid local boost = getItemAttribute(ball, "boost") or 0 local boosts = 1 if not isSummon(item2.uid) or cid ~= getCreatureMaster(item2.uid) then return doPlayerSendCancel(cid, "Use a Boost Stone in your pokemons.") end if boost == 50 then return doPlayerSendCancel(cid, "Sorry, is not possible.") end local pokemon = getItemAttribute(ball, "poke") doSetItemAttribute(ball, "boost", boost + boosts) doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 27, "Your pokeball is now +"..math.floor(boosts + boost).."!") return true end
    1 ponto
  27. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser,msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid,string.lower(msg) local trade = { {name="platinum amulet", id=2171, buy=0, sell=2500}, {name="ring of the sky", id=2123, buy=0, sell=3000}, {name="ruby necklace", id=2133, buy=0, sell=2000}, {name="scarab amulet", id=2135, buy=0, sell=200}, {name="silver brooch", id=2134, buy=0, sell=150}, {name="terra amulet", id=7887, buy=0, sell=1500}, {name="doll", id=2110, buy=0, sell=200}, {name="light shovel", id=5710, buy=0, sell=300}, {name="pirate voodo doll", id=5810, buy=0, sell=50}, {name="voodo doll", id=3955, buy=0, sell=400} } local items = {} for _, item in ipairs(trade) do items[item.id] = {item_id = item.id, buyPrice = item.buy, sellPrice = item.sell, subType = 0, realName = item.name} end local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if items[item].buyPrice ~= 0 then doPlayerRemoveMoney(cid, amount * items[item].buyPrice) if isItemStackable(items[item].item_id) then doPlayerAddItem(cid, items[item].item_id, amount) else for i = 1, amount do doPlayerAddItem(cid, items[item].item_id, 1) end end end end local onSell = function(cid, item, subType, amount, ignoreCap, inBackpacks) if items[item].sellPrice ~= 0 then doPlayerAddMoney(cid, items[item].sellPrice * amount) doPlayerRemoveItem(cid, items[item].item_id, amount) end end if msgcontains(msg, 'trade') and getPlayerStorageValue(cid, 784745) > 0 then openShopWindow(cid, trade, onBuy, onSell) else selfSay("Não vendo nada para você!", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
    1 ponto
  28. Eai Xtibianos! Venho Mostrar Como "CRIAR" Suas Proprias Sprites No PAINT! Índice O que você vai precisar O que eu vou precisar Configurando o paint Criando suas próprias armas O que você vai precisar: O que eu vou precisar: Configurando o paint: Criando suas próprias armas: Espero Que Gostem!!! Não Esquesao De Comentar ;D!
    1 ponto
  29. •~~Erondino Site Server V12.0 (Com Source)~~• • Menu: ├ Informações; ├ Erros; ├ Prints; ├ Download; ├ Scan; └ Creditos. • Informações Do Servidor • • Erros Do Servidor • • PrintScreen • Print 1 Print 2 Print 3 Print 4 • Download's • • Scan • • Creditos • Erondino e sua equipe LuckinhaSan Esse é meu primeiro post sobre servidor aqui na xTibia, espero que gostem... Bem, se gostou do server da um REP+, lembrando que não obrigo ninguém a dar. Comentem (:
    1 ponto
  30. rohfagundes

    [Show Off] RohFagundes

    realmente esse do shinobi é melhor =) eu fiz esse assim pra encaixar no canto eu posso postar aqui as skills mas esta bem confuso
    1 ponto
  31. vlw ae xD Sistema de cartas do rag é muito maneiro pra builds, outra ideia interessante para melhora-lo seria colocar em certas cartas uma espécie de Condição para ter chance de Drop. Essa condição deixaria mais Desafiante e não seria Revelada, fazendo os players tentarem diversas coisas afim de obter-las, como tentando resolver um mistério. Exemplo: Snake/Cobra - O player teria que ser envenenado pela Snake para ter chance de drop (Isso forçaria ao jogador ir mal equipado) Rat - Antes do player mata-lo ele teria usar um Queijo no Rat pra ter chance de dropar a carta. Orc Berserkers - O Orc terá que ter dado pelo menos 500 de dano antes de ser morto. Dano em outras criaturas seria contado em dobro. Wolf - Ele teria de ser morto com pelo menos 3+ lobos próximos pra ter chance de drop
    1 ponto
  32. Slicer

    Simplificar Função

    Ola galera, cabei de fazer essa funçao aki... oq ela faz: ela deve limitar o tamanho de uma string ah no maximo 30~31 letras, caso passe disso ela acresenta um '\n' pra fazer o resto da string ir pra proxima linha... eu tive q fazer essa funçao pois no OTClient a janela da funaço doShowTextDialog(...) nao faz essa limitaçao e entao n da pra ver o resto da string caso ela passe dessas 30~31 letras... queria saber se alguem consegue diminuir essa funçao de algum jeito... pois achu q ela pode ta um pouco grande d+ e bem 'pesada'... e tb pra fins de aprendizado... aki um exemplo de test:
    1 ponto
  33. local config = { exhaustionSeconds = 15, -- exausted em segundos trapId = 3456, -- id do item do trap timeRemove = 30, -- segundos para remover o trap storageUse = 34538 -- storage usado. } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 10) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 2711) local arr = { { 0, 0, 0, 0, 0, 0, }, { 0, 0, 0, 0, 0, 0, }, { 0, 0, 1, 1, 1, 0, }, { 0, 0, 1, 2, 1, 0, }, { 0, 0, 1, 1, 1, 0, }, { 0, 0, 0, 0, 0, 0, }, { 0, 0, 0, 0, 0, 0, }, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if(exhaustion.check(cid, config.storageUse) == TRUE) then if (exhaustion.get(cid, config.storageUse) >= 60) then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. math.floor(exhaustion.get(cid, config.storageUse) / 60 + 1) .."] minutos.") end if (exhaustion.get(cid, config.storageUse) <= 60) then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. exhaustion.get(cid, config.storageUse).."] segundos.") end return false end doCombat(cid, combat, var) local pos = getCreaturePosition(cid) posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1} posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1} posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1} posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1} posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1} posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1} posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1} posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1} posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8} exhaustion.set(cid, config.storageUse, config.exhaustionSeconds) addEvent(removeTrap, config.timeRemove*1000, posAll) return true end function removeTrap(posAll) for i=1, #posAll do for j=0, 255 do pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j} removeTile = getThingfromPos(pos_stack) if removeTile.itemid == config.trapId then doRemoveItem(removeTile.uid) end end end end
    1 ponto
  34. É movements. movements/script teleport_tiles.lua function onStepIn(cid, item, position, fromPosition) local tiles = { [18001] = {x=165, y=54, z=7}, [18002] = {x=190, y=54, z=7}, [18003] = {x=180, y=54, z=7}, [18004] = {x=200, y=54, z=7} } return doTeleportThing(cid, tiles[item.actionid]) end movements.xml <movevent type="StepIn" actionid="18001-18004" event="script" value="teleport_tiles.lua"/> explicação: [ACTION ID] = pos nesse exemplo: [18004] = {x=200, y=54, z=7} se vc colocar na propriedade do tile actionID = 18004 ele vai ser teleportado para {x=200, y=54, z=7} para adicionar mais teleport vc faz o seguinte: adiciona uma virgula na última chave e adiciona local tiles = { [18001] = {x=165, y=54, z=7}, [18002] = {x=190, y=54, z=7}, [18003] = {x=180, y=54, z=7}, [18004] = {x=200, y=54, z=7}, [18005] = {x=??, y=y??, z=?} } e na tag vc coloca <movevent type="StepIn" actionid="18001-18005" event="script" value="teleport_tiles.lua"/> [
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...