Ir para conteúdo
  • Cadastre-se

MaTTch

Membro
  • Total de itens

    510
  • Registro em

  • Última visita

  • Dias Ganhos

    12

Tudo que MaTTch postou

  1. É porque a função getTileItemById não esta sendo usada corretamente nessa parte: if t1 and t2 and t3 and t4 then Você precisa verificar se existe algum item checando se id ou o unique id é diferente de 0. Tipo assim: if t1.uid ~= 0 then doRemoveItem(t1.uid, 1) end Você precisa fazer isso pra cada posição que quiser remover o item, e se quiser adicionar o efeito basta colocar junto a função doSendMagicEffect: if t1.uid ~= 0 then doRemoveItem(t1.uid, 1) doSendMagicEffect(config.pos1, 0000) end
  2. Você tem que adicionar na tabela o efeito pra cada valor de storage, exemplo: [1] = {number = 1002, offset = {x = 1, y = 0}, delay = 5000}, -- efeito 1002 pra quem tiver o storage de valor [1] [2] = {number = 1003, offset = {x = 1, y = 0}, delay = 5000}, -- efeito 1003 pra quem tiver o storage de valor [2] [3] = {number = 1004, offset = {x = 1, y = 0}, delay = 5000}, -- efeito 1004 pra quem tiver o storage de valor [3] -- etc..
  3. Verificou se o valor da storage que você tá corresponde com o que tá na tabela? Você adicionou a tabela pra cada valor?
  4. Tenta: local cfg = { storage = 259005, effect = { [1] = {number = 1002, offset = {x = 1, y = 0}, delay = 5000}, --[2] = {number = 1002, offset = {x = 1, y = 0}, delay = 5000}, -- etc... } } local function startEffectCycle(cid) if (isCreature(cid)) then local t = cfg.effect[getCreatureStorage(cid, cfg.storage)] if (t) then local position = getThingPosition(cid) position.x = position.x + t.offset.x position.y = position.y + t.offset.y doSendMagicEffect(position, t.number) addEvent(startEffectCycle, t.delay, cid) else addEvent(startEffectCycle, 1000, cid)
  5. Você precisa fazer um offset na posição do efeito, nessa função: doSendMagicEffect(getThingPos(cid), efeito) Por exemplo: local pos = getThingPosition(cid) doSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, efeito)
  6. Em clientes mais antigo o limite numérico do trade é de 2147483647 (int32), está diretamente codificado no cliente, ao menos que você saiba um pouco de engenharia reversa, não pode ser mudado. Em um OTCliente isso pode ser facilmente mudado, mas não creio que é o seu caso.
  7. Você precisa ser bem especifico. Vai regenerar 25% da mana total do jogador, ou vai "roubar" essa mana de outros jogadores?
  8. Qual o real objetivo da magia? O script ta muito zuado.
  9. Isso aqui só funciona em OTX: if (getPlayerSlotItem(attacker, slot).id == id) then Tenta: if(getPlayerSlotItem(attacker, slot).itemid == id) then
  10. Isso ai você só vai conseguir pagando alguém pra criar uma dll.
  11. vai no 000-const e adiciona: getCreatureCondition = getCreatureConditionInfo
  12. Na verdade você não precisa adicionar nada no const, só arrumar de u8 pra u16 nas funções.
  13. O erro basicamente era que ele checava se podia "castar" a magia, o que retorna falso se a criatura, por exemplo, não estivesse dentro do alcance da magia, ou se não houvesse um alvo, o que fazia dar erro de magia não existente. Enfim, editado.
  14. Na verdade o código c++ também tem um erro que só percebi agora. Mas se o seu problema já foi resolvido então já era.
  15. Você tem certeza que existe uma spell com esse nome? E se não me engano o dano não funciona com monstros, teria que mudar o script. Teste com uma magia existente e me fale (tem que ser o nome da magia e não as palavras).
  16. Sim, mas antes de fazer, eu quero perguntar uma coisa que eu deveria ter perguntado antes. Por que não apenas colocar a magia que você quer diretamente no monstro?
  17. Em luascript.cpp, você adiciona no final do arquivo: no mesmo arquivo, procure por: luaL_register(m_luaState, "std", LuaInterface::luaStdTable); e abaixo dele adicione: Agora em luascript.h, procure por: static int32_t luaStdSHA512(lua_State* L); e abaixo adicione: Agora só compilar.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo