Ir para conteúdo

brun123

Conde
  • Total de itens

    512
  • Registro em

  • Última visita

  • Dias Ganhos

    16

Tudo que brun123 postou

  1. só inserir a função isSightClear(pos_do_caster, pos_do_alvo, false) tenta colocar você mesmo, é sozinho que mais se ganha conhecimentos
  2. Cara, sou o autor do pokemon dash, e eu lancei 2 servidor com esse nome, o pokemon dash normal e o pokemon dash advanced. o grande diferencial é que o pokemon dash, a força e vida do pokemon é baseado no level do treinador, já no dash advanced, cada pokémon tem seu status (offense, defense, vitality, level etc). Pelo que me lembro, as 2 versões sairam com pokemon collector compatível Qual server você tá usando? Na script que o SoulOroshie postou, você tem que certificar que os IDs das suas pokebolas estão de acordo com o da script: local itemsball = getItemsInContainerById(bp.uid, 2222) local itemsultra = getItemsInContainerById(bp.uid, 2220) local itemsgreat = getItemsInContainerById(bp.uid, 11438) local itemssuper = getItemsInContainerById(bp.uid, 11442) local itemssaffari = getItemsInContainerById(bp.uid, 11446) O pokemon dash advanced já vem com um NPC que compra pokemons e oferece um preço dependendo do level.
  3. Ta errado nessas partes: o.lookType = 5 e getCreatureOutfit(b).lookType == 5 o outfit não é 5, isso foi feito em c++ e pra tudo funcionar a outfit obrigatoriamente deve ser 814 (a outfit transparente)
  4. cara tem que resetar as global storages do seu server (não todas, só as usadas pelo script), olha as global usadas no script e muda elas manualmente no sqlite ou então faz uma action qualquer só pra tirar a global
  5. só declarar a tabela "items" como local... como todas são actions, seu luaState é compartilhado e a tabela de um script modifica a tabela do outro. não sei se você entende de lua, mas é só mudar isso: items = { para isso: local items = { em todas as scripts (primeira linha)
  6. Claro que não some, o autor do tópico que deve ter alguma coisa no login.lua ou no vocations.xml que faz retornar a vocação
  7. ai faz um sistema pra quando o ip mudar a conta ser deletada automaticamente? desculpa a grosseria, mas o ip da máquina muda periodicamente no máximo dava pra bloquear o char e pedir uma segunda senha interna para destravar caso o ip que logou nele fosse diferente do último ip, e mesm oassim seria legal fazer isso com as sources dependendo do que você queira, da pra fazer de outras formas... é anti mc? anti compartilhamento de accounts? ou só quer evitar accounts de serem hackeadas? fala aí qual seu objetivo
  8. use broadcastmessage para mandar para todos os players online, você só muda o estilo do texto pra algum que apareça no default. se não quiser que todos vejam o texto, faça um loop sobre os players que devem ver usando doplayersendtextmessage
  9. Aqui seu código: local egg = { ["Amarelo"] = {id = 6541, mon = "Pet Holy"}, ["Vermelho"] = {id = 6542, mon = "Pet Fire"}, ["Azul"] = {id = 6543, mon = "Pet Ice"}, ["Verde"] = {id = 6544, mon = "Pet Tera"}, ["Roxo"] = {id = 6545, mon = "Pet Energy"}, ["Branco"] = {id = 2695, mon = "Shadown Master Pet"} } function onUse(cid, item, fromPosition, itemEx, toPosition) if getTilePzInfo(getCreaturePosition(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você não pode sumonar seu pet em protection zone.") return true end if #getCreatureSummons(cid) >= 1 then return doPlayerSendCancel(cid, "Você só pode ter 1 pet sumonado.") end for k, v in pairs(egg) do if item.itemid == v.id then local x = doSummonCreature(v.mon, getCreaturePosition(cid)) doConvinceCreature(cid, x) doRemoveItem(item.uid, 1) end end return true end Mude a flag de todos os seus pets: <flag convinceable="1"/> Edite esses campos no config.lua e deixe-os com esse valor: teleportAllSummons = true teleportPlayerSummons = true
  10. Não precisa mudar as sources não, é só colocar return false no onLook (não vai mandar a mensagem verde) e ao mesmo tempo usar a função que manda a mensagem verde que seja: "Você vê Alguém (Level 10). Ele é um elite knight..."
  11. Só colocar embaixo de doRemoveItem(item.uid, 1) isso: doPlayerSendTextMessage(cid, 22, "Você ativou a armadilha.") Esse número em vermelho você pode mudar, é o estilo da mensagem (se aparece no default, no meio da tela ou no canto, qual cor etc) Olha no constant.lua (data/lib), lá tem todos os nº que esse parâmetro aceita. Obs.: Se estiver errado, vai dar debug no player
  12. Ah sim, na tag, quando você colocou itemid = ????, ao ser movido do chão, a script é executada, e ao usar doRemoveItem ela é executada novamente. Use assim: Se não funcionar, use assim: Se quiser que coloque algum efeito, mensagem ou algo do tipo, é só pedir
  13. Teste assim: Você falou em atravessar paredes, então eu coloque ia função que caso tenha alguma parede que bloqueie o caminho até onde o player quer se teletransporatar, ele não vai conseguir...
  14. Tag no movements: <movevent type="RemoveItem" itemid="????" event="script" value="nome_do_seu_arquivo.lua"/>
  15. Cara fiz de um jeito mais simpleszinho: Estava faltando checar se o player tinha mana suficiente. Alguns detalhes: 1) O player não pode usar em PZ nem dentro de Houses o item, mas se ele tentar se teletransportar para dentro de PZ ele vai conseguir. Antes ele também poderia entrar em Houses com esse item, mas ele poderia ficar preso dentro da house e roubar elas também. Por isso impedi que fosse possível entrar em houses com esse script. 2) Eu tirei a checagem pelo access, pois estava maior ou igual a 0, todos os players tem o access maior ou igual a zero, então iria sempre retornar true (inútil). 3) O teletransporte é instantâneo, se quiser fazer ele mais bonitinho (jogar um efeito na posição, e quando o efeito chegar lá teletransportar) é só pedir. 4) O item não está sendo removido ao ser utilizado (não sei como você deseja).
  16. Tem que ser mais claro ao explicar suas dúvidas amigo... Teste assim: function onUse(cid, item, fromPosition, itemEx, toPosition) local sto = 999999999 local get_sto = getPlayerStorageValue(cid, sto) doPlayerSendTextMessage(cid, 22, get_sto) setPlayerStorageValue(cid,sto,get_sto + 1) doPlayerSendTextMessage(cid, 22, get_sto + 1) return true end Nesse primeiro, o storage do player é x, a variável get_sto também vale x e envia a mensagem com o nº x para o player. Depois disso, muda a storage do player para x + 1, get_sto continua valendo x e envia uma 2ª mensagem com o nº x + 1 para o player. ou assim: function onUse(cid, item, fromPosition, itemEx, toPosition) local sto = 999999999 local get_sto = getPlayerStorageValue(cid, sto) doPlayerSendTextMessage(cid, 22, get_sto) setPlayerStorageValue(cid, sto, get_sto + 1) get_sto = get_sto + 1 doPlayerSendTextMessage(cid, 22, get_sto) return true end Nesse segundo, a diferença é que após mudar a storage do player, o get_sto também é alterado.
  17. Tem que ter a talkaction "!clone" instalado no seu server, a mesma que você colocou no tópico de como instalar o docreatecustommonster
  18. brun123

    {Resolvido}

    Da pra remover skills sim, usando doPlayerAddSkillTry com valor negativo E assim como o max hp/mp, dá pra modificar os skills com conditions também
  19. Não deu pra entender direito o que você quis fazer... é isso? Se só quiser transformar a talkaction em spell, pode fazer dessa forma também: function onCastSpell(cid, var) doCreatureExecuteTalkAction(cid, "!clone", true) return true end
  20. É porque é muito mais fácil deixar o server balanceado se as forças dos pokémons dependerem do level do treinador. Desse jeito que está, acaba que stones não são tão valorizadas e pokémons que não deveriam conseguir vencer outros, vencem muito fácil, ou o contrário. O level do player serve pra que ? Não to falando que sem level próprio é melhor, e se eu fosse abrir um servidor, abriria 2 mundos, um com cada estilo. A propósito, colocar pokémon level muito alto no mapa, a partir do level 50, já acaba com toda a graça do servidor... Todos os players que conseguem um pokémon forte, já tem ele no level 80+.
  21. Só um pergunta, vocês preferem que o server tenha cada pokémon com seu respectivo level e atributos, e os pokemons evoluem a partir de level, ou preferem como o antigo SvkE (ou PxG), onde os pokémons não têm level e suas forças dependem do level do treinador, e eles evoluiriam apenas por stones ?
  22. vá em data/creaturescripts/scripts e crie um novo arquivo: summonattack.lua e coloque isso dentro: function isCreatureSummon(cid) if isMonster(cid) and isPlayer(getCreatureMaster(cid)) then return true end return false end function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and isMonster(cid) and isCreatureSummon(attacker) then doTargetCombatHealth(getCreatureMaster(attacker), cid, combat, value, value, 3) return false end return true end Agora abra o creaturescripts.xml (data/creaturescripts) e coloque essa nova tag: <event type="statschange" name="StopShareExp" event="script" value="summonattack.lua"/> Agora abra CADA monstro (o arquivo xml que fica na pasta monsters) do seu server, e antes de: </monster> adicione: <script> <event name="StopShareExp"/> </script> Se você tiver as sources do seu server, abra o arquivo creature.cpp e procure esse código: void Creature::drainHealth(Creature* attacker, CombatType_t combatType, int32_t damage) { lastDamageSource = combatType; onAttacked(); changeHealth(-damage); if(attacker) attacker->onAttackedCreatureDrainHealth(this, damage); } e substitua por esse: void Creature::drainHealth(Creature* attacker, CombatType_t combatType, int32_t damage) { lastDamageSource = combatType; onAttacked(); changeHealth(-damage); if(attacker) { if(attacker->isPlayerSummon()) attacker->getMaster()->onAttackedCreatureDrainHealth(this, damage); else attacker->onAttackedCreatureDrainHealth(this, damage); } } pronto, só recompilar feito com base em TFS 8.54 0.3.6pl1, se seu servidor não é esse, pode tentar fazer do mesmo jeito, mas se estiver muito diferente ou então se não conseguir compilar, desista de fazer pelas sources só procura um tutorial de como recompilar.
  23. @CabritenhO "doCreatureExecuteTalkAction(cid, "/pokeread")" que ele executa a talkaction. Sobre o bug de bugar pokebolas, tentei fazer aqui dando crash proposital no server (reload em movements) e não deu bug não, o pokémon só morre quando você ta usando e o server dá crash.
  24. @wenertdiniz é porque você está usando pokebolas de uma versão muito antiga do servidor, crie novas pokebolas. @Balrok tem que editar a função isStone e configurar ela certinho no boost.lua, acho que essa função fica em somefunctions.lua.
  • Quem Está Navegando   0 membros estão online

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