Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    72

Tudo que zipter98 postou

  1. Você se refere à adicionar esse vip tile? É muito básico. Basta ir em data/movements/scripts, criar um arquivo com extensão .lua, e neste colocar o script que passei acima. Depois, em data/movements, abra o arquivo XML, e coloque a tag que também passei acima. Aí, no seu map editor, você configura o tile com o action id que configurou na tag. Se quiser testar o script antes de configurar no map editor, basta, in game, ficar de frente ao tile desejado, e digitar /attr set aid actionid que você configurou na tag. Seguindo como exemplo o action id que mencionei logo acima (12345), /attr set aid 12345.
  2. Tenta assim: function onThink(interval, lastExecution) local players = getPlayersOnline() local look = xxx --Outfit. for _, pid in ipairs(getPlayersOnline()) do if getCreatureOutfit(pid).lookType == look then playerpos = getPlayerPosition(pid) doSendMagicEffect(playerpos, 34) end end return true end
  3. Registre normalmente a tag e o script. Na tag, coloque o actionid 12345. Depois, in game, digite /attr set aid 12345 em frente ao tile da área vip. Veja se mesmo assim os players continuam podendo passar por ele (eu testei aqui o script, e está funcionando perfeitamente). Ah, havia esquecido de umas coisas no script, aqui está ele editado: function onStepIn(cid, item, position, fromPosition) local pos = {x = xxx, y = yyy, z = zzz} --Para onde o player será teleportado. if not isPlayer(cid) then return true end if not isPremium(cid) then doPlayerSendCancel(cid, "Você só pode passar por aqui se for VIP!") doTeleportThing(cid, fromPosition) end if isPremium(cid) then doPlayerSendTextMessage(cid, 27, "Bem vindo à área VIP!") doTeleportThing(cid, pos) end return true end Testado, funcionando. EDIT: Vá no seu map editor, e procure por todos os unique IDs repetidos. Substitua por outros, que ainda não estejam em uso.
  4. Ninguém poderá usar o item nesse tempo, ou apenas que usou o item? Fiz aqui rapidinho, porque estou indo dormir. Qualquer erro, só postar. function onUse(cid, item, fromPosition, item2, toPosition) local cfg = { escada_pos = {x = xxx, y = yyy, z = zzz}, --Posição que a escada irá surgir. id_escada = xxx, --ID da escada. tempo = 10, --Tempo que a escada ficará in game/tempo para usar novamente o item. } if getGlobalStorageValue(100921) > os.time () then return doPlayerSendCancel(cid, "Aguarde "..getGlobalStorageValue(100921) - os.time ().." segundo(s) para usar esse item novamente.") end doPlayerSendTextMessage(cid, 27, "A escada apareceu! Você tem "..cfg.tempo.." para entrar nela!") doCreateItem(cfg.id_escada, 1, cfg.escada_pos) setGlobalStorageValue(100921, os.time () + cfg.tempo) addEvent(function() local remove = getTileItemById(cfg.escada_pos, cfg.id_escada) doRemoveItem(remove.uid, 1) doSendMagicEffect(cfg.escada_pos, CONST_ME_POFF) end, cfg.tempo * 1000) return true end A tag, suponho que você saiba fazer.
  5. Vá em data/lib/pokemon moves.lua, e procure por todas as spells que aplicam sleep. Aí, por exemplo, no Hypnosis, você encontrará algo assim: local ret = {} ret.id = target ret.cd = math.random(6, 9) ret.check = getPlayerStorageValue(target, conds["Sleep"]) ret.first = true ret.cond = "Sleep" Então, você deverá mudar ret.first = true para ret.first = false. No caso do Hypnosis, ficando assim: local ret = {} ret.id = target ret.cd = math.random(6, 9) ret.check = getPlayerStorageValue(target, conds["Sleep"]) ret.first = false --alterado v1.6 ret.cond = "Sleep" Você deve fazer isso em TODAS as spells que aplicam sleep!
  6. zipter98

    PokeVB

    Atualização! •Agora, pokémons +80 possuem um efeito especial ao andar, dependendo de seu elemento. •Ultimate Boost Stone pode ser dropada pelos NPCs Rank 5 em Colosseum, e por pokémons lendários. •Foi adicionado um novo NPC no laboratório de Viridian. Este pode trocar Shining Stones por Boost Stones, e Boost Stones por Ultimate Boost Stones. •Agora, é possível dropar Max Revive e Trainer Potion dos NPCs Rank 5 que se encontram em Colosseum.
  7. Claro. Tenta assim: <movevent type="StepIn" actionid="coloque aqui um action id que não esteja em uso no seu servidor" event="script" value="nome do arquivo com o script que passei.lua"/>
  8. Ahã. Se quiser testar antes de configurar no RME, entra no seu servidor, fique em frente do tile desejado, e digite /attr set aid 13302.
  9. Esse, que você se refere? http://www.xtibia.com/forum/topic/223839-sistema-de-miss/
  10. Script de área vip que você se refere, é um tile que só passa quem for premium? Se for, function onStepIn(cid, item, position, fromPosition) local pos = {x = xxx, y = yyy, z = zzz} --Para onde o player será teleportado. if not isPremium(cid) then doPlayerSendCancel(cid, "Você só pode passar por aqui se for VIP!") doTeleportThing(cid, fromPosition) end doPlayerSendTextMessage(cid, 27, "Bem vindo à área VIP!") doTeleportThing(cid, pos) return true end
  11. Ah, foi mal. function onStepIn(cid, item, position, fromPosition) local artigo = getPlayerSex(cid) == 0 and "A" or "O" local nome = getPlayerSex(cid) == 0 and "jogadora" or "jogador" if getPlayerGuildId(cid) > 0 then broadcastMessage(""..artigo.." "..nome.." "..getCreatureName(cid).." da guild "..getPlayerGuildName(cid).." está invadindo o Castle 24horas.") else broadcastMessage(""..artigo.." "..nome.." "..getCreatureName(cid).." está invadindo o Castle 24horas.") end return true end Testei aqui, tá funcionando direitinho.
  12. data/lib/pokemon moves.lua, procure por elseif spell == "Lava-Electricity" then Edite na tabela eff. O modelo é assim: ["Nome do pokémon"] = {efeito da spell, elemento do damage da spell, outfit que o pokémon irá assumir}, Por exemplo, do Magmar: ["Magmar"] = {5, FIREDAMAGE, 1461}, Se você quiser que o pokémon não mude de outfit ao usar a passive, basta não adicionar o terceiro valor (no caso do Magmar, 1461)
  13. Amoeba, quanto à essa parte que você mencionou, têm essa maneira: local stt = "" local items = {11641, 11640, 11639} --ID dos items. for i = 1, #items do if stt == "" then stt = getItemNameById(items[i]) else stt = stt..", "..getItemNameById(items[i]) end end print("Items: "..stt..".") Se adicionar vários items, obviamente, a tabela ficará grande. Porém, o processo é menos cansativo, e mais fácil. Sobre o NPC, achei ele bem legal, parabéns xd
  14. zipter98

    Sistema de Miss

    Tenta assim: local SKILL_ID = 0 -- id do skill... local skills = { {min = 10, max = 20, chance = 10}, -- chance em % de dar miss... {min = 21, max = 30, chance = 20}, {min = 31, max = 40, chance = 30}, {min = 41, max = 50, chance = 40}, {min = 51, max = math.huge, chance = 50} } function onStatsChange(cid, attacker, type, combat, value) local COLOR_ID = 200 -- cor do texto local MAGIC_EFFECT = 1 -- id do magic effect if not isCreature(cid) then return false end for _, tudo in pairs(skills) do if getPlayerSkillLevel(cid, SKILL_ID) >= tudo.min and getPlayerSkillLevel(cid, SKILL_ID) <= tudo.max then local chancex = math.random(1, 100) if chancex <= tudo.chance then if combat ~= COMBAT_HEALING then doSendMagicEffect(getCreaturePosition(cid), MAGIC_EFFECT) doSendAnimatedText(getCreaturePosition(cid), "MISS!", COLOR_ID) if isPlayer(attacker) then doPlayerSendCancel(attacker, ""..getCreatureName(cid).." desviou do seu ataque!") end return false end end end end return true end
  15. Sabe fazer a tag? não sei se os parâmetros do broadcast são esses, só avisando. function onStepIn(cid, item, position, fromPosition) local artigo = getPlayerSex(cid) == 0 and "A" or "O" local nome = getPlayerSex(cid) == 0 and "jogadora" or "jogador" if getPlayerGuildId(cid) > 0 then doBroadcastMessage(""..artigo.." "..nome.." "..getCreatureName(cid).." da guild "..getPlayerGuildName(cid).." está invadindo o Castle 24horas.") else doBroadcastMessage(""..artigo.." "..nome.." "..getCreatureName(cid).." está invadindo o Castle 24horas.") end return true end
  16. Sabe fazer o XML? data/npc/scripts 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 = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local cfg = { min_level = 25, --Level mínimo necessário para ser teleportado. max_level = 30, --Level máximo necessário para ser teleportado. to_go = {x = xxx, y = yyy, z = zzz}, --Para onde o player será teleportado. } if msgcontains(msg, 'viajar') or msgcontains(msg, 'viajem') then if getPlayerLevel(cid) >= cfg.min_level and getPlayerLevel(cid) <= cfg.max_level then --Levels que o player pode viajar: 25, 26, 27, 28, 29 e 30. selfSay("Boa viagem!", cid) doTeleportThing(cid, cfg.to_go) talkState[talkUser] = 0 return true else selfSay("Você precisa estar, no mínimo, level "..cfg.min_level.." e no máximo level "..cfg.max_level.." para viajar.", cid) talkState[talkUser] = 0 return true end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  17. Ter jeito, tem sim. Mas com aquele bug que você mencionou, não acho muito recomendável. Vou só editar umas coisinhas no script aqui, e já edito. Ah, se você quiser mesmo que o pokémon não retorne para a pokeball, avisa aqui, que eu retiro essa parte. edit: Só do Eevee que está dando este bug?
  18. 1: (suponho que não preciso explicar) •Servidor com Sources Base PDA Stylo Maldoso 2: (o mapa do servidor foi feito do 0, mas tem partes de outros mapas?) •MAPA FEITO DO 0 COM PARTES DO SKYFALL-PDA-TXU E PXG De resto, o servidor parece ser bom, parabéns.
  19. zipter98

    teleporte

    Sabe fazer o XML? data/npc/scripts 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 = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local cfg = { level = 100, --Level necessário para ser teleportado. to_go = {x = xxx, y = yyy, z = zzz}, --Para onde o player será teleportado. } if msgcontains(msg, 'teleport') then if getPlayerLevel(cid) >= cfg.level then selfSay("Boa viagem!", cid) doTeleportThing(cid, cfg.to_go) talkState[talkUser] = 0 return true else selfSay("Você precisa estar, no mínimo, level "..cfg.level.." para ser teleportado!", cid) talkState[talkUser] = 0 return true end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  20. Sobre voltar pra ball, foi intencional colocar isso, pra evitar que o pokémon ficasse fora da ball, e consequentemente bugasse os status. Vou dar uma olhada sobre os status (acho que já sei o que é) e sobre o Eevee. edit: sobre o eevee, já corrigi. Era burrada de minha parte; já sobre os status, só falta eu confirmar uma coisa. edit denovo: Tenta assim:
  21. Maxx, não conheço muito bem servidores com level, porém, suponho que, para os pokémons selvagens virem level 0, basta configurar no configuration.lua (aliás, não sei se é lá que edita isso, já que não mexo com servidores com level). Se eles sempre vierem level 0, consequentemente, ao capturá-los virão level 0. Ou, se não, quando capturar o pokémon, se quiser que ele venha em um level específico, é só editar no catch system.lua. É bem simples, você deve conseguir.
  22. Deixa eu ver se entendi: Se o player não retornar o pokémon pra ball, ele fica sem level, e, consequentemente, os status bugam? Se for, já encontrei uma solução pra isso. Mas, antes, poderia informar qual servidor base você utiliza? Bom, se for PDA, e tiver a função getPokeballType, provavelmente irá funcionar. Testei aqui no meu sistema de evolução, e no console dá apenas um erro de creature not found quando vai setar a skull nele; porém, nada prejudicial (ao menos, aqui não ocorreu bug algum em relação à isso).
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...