Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    72

Tudo que zipter98 postou

  1. zipter98

    Item de transformar

    function onUse(cid, item, frompos, item2, topos) local cfg = { tempo = x, --Cooldown para usar o item novamente, em segundos. outfit = x, --ID da outfit. } local storage_one = 982011 local storage_two = 982012 if getPlayerStorageValue(cid, 918221) > os.time() then return doPlayerSendCancel(cid, "Aguarde "..getPlayerStorageValue(cid, 918221) - os.time().." segundo(s) para usar esse item novamente.") end if getPlayerStorageValue(cid, storage_one) >= 1 then if getCreatureCondition(cid, CONDITION_OUTFIT) then doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, 27, "Você voltou ao normal!") setPlayerStorageValue(cid, storage_one, -1) setPlayerStorageValue(cid, storage_two, 1) setPlayerStorageValue(cid, 918221, os.time() + cfg.tempo) end elseif getPlayerStorageValue(cid, storage_two) >= 1 then doSetCreatureOutfit(cid, {lookType = cfg.outfit}, -1) doPlayerSendTextMessage(cid, 27, "Você se transformou!") setPlayerStorageValue(cid, storage_two, -1) setPlayerStorageValue(cid, storage_one, 1) setPlayerStorageValue(cid, 918221, os.time() + cfg.tempo) end return true end
  2. zipter98

    Item de transformar

    E como o player fará pra voltar ao "normal"? Por exemplo, após x tempo depois de ter usado o item? De qualquer maneira, fiz dessa maneira. Veja se lhe satisfaz. data/actions/scripts, crie um arquivo com extensão .lua, nomeie-o transform, e coloque o seguinte conteúdo: function onUse(cid, item, frompos, item2, topos) local cfg = { remove = true, --Vai remover o item? [true/sim] [false/não] tempo = x, --Tempo, em segundos, para voltar ao normal. tempo_dois = x, --Cooldown para usar o item novamente, em segundos. outfit = x, --ID da outfit. } if getPlayerStorageValue(cid, 918221) > os.time() then return doPlayerSendCancel(cid, "Aguarde "..getPlayerStorageValue(cid, 918221) - os.time().." segundo(s) para usar esse item novamente.") end doSetCreatureOutfit(cid, {lookType = cfg.outfit}, -1) setPlayerStorageValue(cid, 918221, os.time() + cfg.tempo_dois) if cfg.remove == true then doRemoveItem(item.uid, 1) end addEvent(function() if getCreatureCondition(cid, CONDITION_OUTFIT) then doRemoveCondition(cid, CONDITION_OUTFIT) end end, cfg.tempo * 1000) return true end Depois, em data/actions, abra o arquivo actions.xml e coloque a seguinte tag: <action itemid="id do item" event="script" value="transform.lua"/>
  3. zipter98

    Item de transformar

    Transformar em um monstro que você se refere, é mudar a looktype?
  4. Tenta: local chance = 5 --Chance, pokémon de jogador, sem aura de dar critical. local wild_chance = 10 --Chance do pokémon selvagem de dar critical. local chance_aura = 5 --Chance que será aumentada caso o pokémon tenha aura. if isSummon(attacker) then if getItemAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, "aura") then chance = chance + chance_aura else chance = chance end else chance = wild_chance end if math.random(1, 100) <= chance then if combat == PHYSICALDAMAGE then valor = valor else doSendAnimatedText(getThingPos(attacker), "Critical", 215) valor = valor * 2 --O critical está servindo como um "focus" (damage * 2) end Ou local chance = 5 --Chance, pokémon de jogador, sem aura de dar critical. local wild_chance = 10 --Chance do pokémon selvagem de dar critical. local chance_aura = 5 --Chance que será aumentada caso o pokémon tenha aura. if isSummon(attacker) then if getItemAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, "aura") then chance = chance + chance_aura else chance = chance end else chance = wild_chance end if math.random(1, 100) <= chance then if combat == COMBAT_PHYSICALDAMAGE then valor = valor else doSendAnimatedText(getThingPos(attacker), "Critical", 215) valor = valor * 2 --O critical está servindo como um "focus" (damage * 2) end
  5. Apenas os status "base" do pokémon (os do configuration.lua).
  6. Pode me mandar seu level system.lua, e seu catch system.lua? Testei aqui no PDA com level, v2.9, e tá funcionando perfeitamente. Se você estiver usando o mesmo servidor que eu, provavelmente fez algo errado.
  7. Substitua por esse: Se o erro persistir, me mande por PM seu NPC configurado.
  8. É como eu disse no meu comentário anterior, altere na função adjustStatus. Sendo mais específico, você verá algo como: setPlayerStorageValue(pk, 1001, pokes[getCreatureName(pk)].offense * (getMasterLevel(pk) + getPokemonBoost(pk))) setPlayerStorageValue(pk, 1002, pokes[getCreatureName(pk)].defense) setPlayerStorageValue(pk, 1003, pokes[getCreatureName(pk)].agility) setPlayerStorageValue(pk, 1004, pokes[getCreatureName(pk)].vitality * (getMasterLevel(pk) + getPokemonBoost(pk))) setPlayerStorageValue(pk, 1005, pokes[getCreatureName(pk)].specialattack * (getMasterLevel(pk) + getPokemonBoost(pk))) É isso que define os status do pokémon (por isso que, em PDA sem level, doItemSetAttribute(item, "offense"), por exemplo, não funciona). Basta editar o valor dessas storages à seu gosto (relembrando, valor dessas storages = status). getMasterLevel representa o level do jogador; getPokemonBoost, o boost do pokémon; pokes[getCreatureName(pk)].status, o respectivo status do pokémon na tabela pokes (de configuration.lua).
  9. Sobre sua segunda pergunta, data/lib/level system.lua, função adjustStatus.
  10. Você quer que o critical só funcione para spells? É isso? E, não, a chance mínima é 1%.
  11. Opa, área incorreta. Quando seu pedido for relacionado à servidores derivados (como pokémon, naruto, etc), opte por postar na devida área - Pedidos e dúvidas - Servidores derivados. Cuidado da próxima vez, e obrigado.
  12. Código: local chance = 5 --Chance, pokémon de jogador, sem aura de dar critical. local wild_chance = 10 --Chance do pokémon selvagem de dar critical. local chance_aura = 5 --Chance que será aumentada caso o pokémon tenha aura. if isSummon(attacker) then if getItemAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, "aura") then chance = chance + chance_aura else chance = chance end else chance = wild_chance end if math.random(1, 100) <= chance then doSendAnimatedText(getThingPos(attacker), "Critical", 215) valor = valor * 2 --O critical está servindo como um "focus" (damage * 2) end OBS: Ele deve ser colocado em exp2.0.lua.
  13. Vou tentar. Logo edito com resultado. EDIT: catchsystem.lua, abaixo de local give_level = lv_table[poke] if not give_level then give_level = 5 print(""..poke.." isn't in lv_table!") end Adicione: local stat = getPokemonStatus(poke) local off = stat.off * give_level local def = stat.def * give_level local agi = stat.agi * give_level local spatk = stat.spatk * give_level local vit = stat.vit * give_level Depois, substitua doItemSetAttribute(item, "offense", coffense) doItemSetAttribute(item, "defense", cdefense) doItemSetAttribute(item, "speed", cspeed) doItemSetAttribute(item, "vitality", cvitality) doItemSetAttribute(item, "specialattack", cspatk) Por: doItemSetAttribute(item, "offense", off) doItemSetAttribute(item, "defense", def) doItemSetAttribute(item, "speed", agi) doItemSetAttribute(item, "vitality", vit) doItemSetAttribute(item, "specialattack", spatk) Ao capturar o pokémon, ele está vindo no level definido na tabela lv_table. O cálculo de seus status é: status no configuration.lua * level.
  14. Qual os status que devem vir ao capturar o pokémon? Tava pensando em fazer assim: os status do pokémon configurados no configuration.lua * 10. Por exemplo, se um pokémon tiver offense = 4, ao capturá-lo, a offense virá 40. OBS: Não tem como verificar os status exatos do pokémon em determinado level. O jeito então, é fazer alguma fórmula pra definir os status ao capturar o pokémon.
  15. zipter98

    Piso com anuncio

    Editei minha mensagem acima. Veja se é aquilo que você quer.
  16. Em catchsystem.lua, abaixo de failmsgs = { "Sorry, you didn't catch that pokemon.", "Sorry, your pokeball broke.", "Sorry, the pokemon escaped.", } Adicione essa tabela: local lv_table = { ["Bulbasaur"] = 10, --["Nome do pokémon"] = level que irá vir ao ser capturado, ["Charmander"] = 15, ["Squirtle"] = 20, } Depois, abaixo de local happy = 250Adicione isso: local give_level = lv_table[poke] if not give_level then give_level = 5 print(""..poke.." isn't in lv_table!") end Depois, procure por doItemSetAttribute(item, "level", clevel)E troque por doItemSetAttribute(item, "level", give_level)
  17. zipter98

    Piso com anuncio

    Essa mensagem que você se refere, é um broadcast, ou uma mensagem que só aparece para o jogador? EDIT: Se for a segunda opção, crie um arquivo com extensão .lua em data/movements/scripts, nomeie-o tilemsg, e coloque o seguinte conteúdo: function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end local msg = "Mensagem" --Configure aqui a mensagem que será enviada ao jogador. A mensagem deve estar entre aspas " " doPlayerPopupFYI(cid, msg) return true end Depois, em data/movements, abra o arquivo .xml e coloque a seguinte tag: <movevent type="StepIn" actionid="configure aqui o actionid desejado" event="script" value="tilemsg.lua"/>
  18. Pelo sistema de task do PDA, acho que não.
  19. Isso se altera no arquivo .lua dos NPCs. Sendo mais exato, tabela clanNpcs.
  20. Obrigado Quando à sua sugestão, achei bem interessante. Quando possível, vou tentar fazer um NPC assim.
  21. Obrigado
  22. zipter98

    Trader NPC

    Olá, O propósito principal desse NPC é facilitar a vida de quem quer fazer NPCs "traders". A configuração é muito fácil, e também há mais interação entre player-NPC (não, esse NPC não é por janelinha de trade). Você pode configurar a moeda usada nas negociações, os items que o NPC vende, e os que compra. Também há opções de ver as ofertas, e vender todas as unidades de determinado item apenas dizendo "all". Com esse NPC, também é poupado tempo, pois, ao invés de ir comprando/vendendo de 100 em 100 unidades de tal item, ou ficar ajustando a "barra de rolagem" para a quantidade desejada, você pode simplesmente digitar a quantidade (podendo comprar/vender, por exemplo, 400 unidades do item de uma vez!). Opções de fala: offers/buy/sell. Neste último, há a opção "all" para vender todas as unidades do item. Testei esse NPC várias vezes, e todos os bugs que apareceram foram corrigidos. Porém, se vocês encontrarem algum que deixei passar, postem aqui. As configurações estão indicadas no script, e, como mencionado antes, é MUITO fácil configurar o NPC. Vá em data/npc/scripts, crie um arquivo com extensão .lua, nomeie-o tradernpc, e coloque o seguinte conteúdo: XML: <?xml version="1.0" encoding="UTF-8"?> <npc name="Trader" script="tradernpc.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="523" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, I {sell} and {buy} items. Do you want to see my {offers}?"/> </parameters> </npc> #EDIT, 08/12/2013, 21:42. Agora, ao dizer offers é dito pelo NPC o quê é configurado no "o que o player deverá falar". Assim, são evitadas confusões que poderiam haver antes, como, por exemplo, o nome do item dito no offers sendo pokemon prize box +4, e estando configurado para ser dito pelo jogador box 4. #EDIT, 22/01/2014, 17:02. Agora, você pode escolher a quantidade máxima que o jogador poderá comprar/vender. Também foi corrigido alguns erros no NPC. PS: Obrigado ao lordbug99 por indicá-los. #EDIT, 29/01/2014, 18:08. Para corrigir alguns bugs, foi adicionada ao código uma nova função. Foram também corrigidos alguns erros que poderiam ser causados no all, juntamente com a correção de uma maneira de conseguir comprar/vender uma quantia maior de items que a programada.
  23. Opa, primeiramente, seu título está fora das regras. Este deve apresentar, resumidamente, o conteúdo/objetivo do tópico. E também, devido ao seu pedido ser relacionado à mapping, a área correta é Pedidos e dúvidas - Mapping. Cuidado da próxima vez, e obrigado.
  24. Esse critical ia ser tanto pra pokémons selvagens quanto pra pokémons de players? E, a chance de critical tem uma porcentagem fixa, ou varia de acordo com alguma coisa? E sobre isso que você mencionou, de ter aura, "dar mais critical". Você quer dizer, aumentar a chance de dar critical, ou aumentar o damage do critical?
  • Quem Está Navegando   0 membros estão online

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