Ir para conteúdo

Orochi Elf

Membro
  • Registro em

  • Última visita

Tudo que Orochi Elf postou

  1. Esqueceu de pedir pra registrar o evento no XML do monstro
  2. Olá galera do TibiaKing, eu estou balanceando as magias do meu servidor de pokémon e eu preciso de uma ajuda para bolar uma fórmula que ficaria legal e balanceada. No momento eu estou fazendo as magias utilizando a seguinte formula. Se for um pokémon selvagem, a formula seria: Iremos utilizar o "Bulbasaur" como base. <poke levelToUse="20"/> --- XML code // Nível para uso do pokémon <attack name="Razor Leaf" range="4" cooldown="10" level="20" power="20" chance="30" type="grass"/> --- XML Code // Magia Formula.Minimo = (20 + 2) * (20) = 440 Formula.Maxima = (Formula.Minima + (Formula.Minima * 0.2)) = (440 + (440 * 0.2)) = 528 Dano final: (Entre 440 e 528) Caso seja um jogador que utilizar a magia, usando o "Bulbasaur", a formula seria: O nível do player que utilizou a magia é 50. getPlayerLevel() = 50 --- Código para retornar o level do jogador <attack name="Razor Leaf" range="4" cooldown="10" level="20" power="20" chance="30" type="grass"/> --- XML Code // Magia Formula.Minimo = (getPlayerLevel()) * (20) = (50) * (20) = 1000 Formula.Maxima = (Formula.Minima + (Formula.Minima * 0.2)) = (1000 + (1000 * 0.2)) = 1200 Dano final: (Entre 1000 e 1200) Porém, eu não estou gostando dos resultados e danos, eu gostaria de uma ideia para reformular esta fórmula. Alguém bom em matemática e lógica pode me ajudar por favor? *-*
  3. Eu não entendi o que você pediu. Você está querendo um efeito da spell, quando ela atinge o alvo aparecer outro efeito? tipo um "exori flam", que quando atinge o alvo solta aquele fogo e talz?
  4. Orochi Elf postou uma resposta no tópico em Suporte Tibia OTServer
    Para a aceitação do old client, né? (creio eu) Porém para quem usa o OTC não seria necessário, ou sim.. uma pequena edição nas sources também.. nesse caso eu não sei dizer.
  5. Rapaz, tem a função de adicionar health a uma criatura, que normalmente ela também funciona para retirar. É possível adicionar uma cor ao health que ela adiciona ou tira. Usando o seguinte modo: doCreatureAddHealth(Criatura, Valor, Força, Cor) Breve explicação. Criatura -> seria o número único da criatura (uid) ou normalmente usado (cid). Valor -> O valor que vai adicionar ou remover desta criatura, caso vá remover logicamente o sinal de subtração ( - ) Força -> Rapaz, eu não sei para que serve. Porém em um script que eu li aqui, eu vi que normalmente estão usando o numero 3. Cor -> Varia entre 1 até 255. No arquivo lib/000-constant, tem algumas cores já configuradas certinho. Exemplo: local target = getCreatureTarget(cid) if(isCreature(target)) then doCreatureAddHealth(target, - (math.random(100, 200)), 3, COLOR_LIGHTBLUE) return true end
  6. Orochi Elf postou uma resposta no tópico em Suporte Tibia OTServer
    Você pode passar para uint16, 32 ou 64 se não me engano. Assim aumentando o limite para milhões kkkk. Porém, se não me engano de novo, você precisaria fazer a alteração em todas as partes que usa a tabela dentro das sources. Eu não tenho certeza, mas acho que ficaria mais ou menos assim. De -> enum MagicEffect_t Para -> enum uint16_t MagicEffect_t
  7. É Necessário antes disso, adicionar a função "doPlayerOpenChannel(cid, channelId)" nas suas sources
  8. Se o consumo da memória do seu servidor for baixa. Não custa nada tentar
  9. Rapaz, dependendo das scripts como o membro acima citou, é melhor você criar pelas sources para diminuir o consumo de memória do seu servidor, deixando ele mais leve e mais rápido evitando "freezes" e outros. Além de você ter uma lista de funções mais ampla. Eu particularmente fiz o sistema de (Vantagem e Desvantagem // Effective) direto nas sources, eu creio que ficou melhor do que um "statsChange" que seria um "creature event". Assim essa edição direto, deixou o script, vamos dizer que mais "natural", que não precisa pegar algo que aconteceu e manipula-lo. Bom.. esse é o meu ponto de vista
  10. Eu creio que seja impossível.
  11. Orochi Elf postou uma resposta no tópico em Suporte & Pedidos
    Achei dahora.
  12. A função que está sendo chamada não existe.
  13. Pelo que estou vendo, está super incompleto. Falta uma parte da edição no sistema de "go-back" para quando soltar o pokémon, ele vim com o addon direitinho
  14. Sim, eu gostei dos temas e bem que deixou o programa mais "sexy" kk
  15. Teste assim. function onLogin(cid) registerCreatureEvent(cid, "aloot_kill") return true end local stor = 7575 function autoloot(cid, target, pos) local function doStack(cid, itemid, new) local count = getPlayerItemCount(cid, itemid) if (count > 100) then count = count - math.floor(count / 100) * 100 end local newCount = count + new if (count ~= 0) then local find = getPlayerItemById(cid, true, itemid, count).uid if (find > 0) then doRemoveItem(find) else newCount = new end end local item = doCreateItemEx(itemid, newCount) doPlayerAddItemEx(cid, item, true) end local function scanContainer(cid, uid, list) for k = (getContainerSize(uid) - 1), 0, -1 do local tmp = getContainerItem(uid, k) if (isInArray(list, tmp.itemid)) then if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then doStack(cid, tmp.itemid, tmp.type) else local item = doCreateItemEx(tmp.itemid, tmp.type) doPlayerAddItemEx(cid, item, true) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.') doRemoveItem(tmp.uid) elseif isContainer(tmp.uid) then scanContainer(cid, tmp.uid, list) end end end local items = {} for i = getTileInfo(pos).items, 1, -1 do pos.stackpos = i table.insert(items, getThingFromPos(pos)) end if (#items == 0) then return end local corpse = -1 for _, item in ipairs(items) do local name = getItemNameById(item.itemid):lower() --- Alterado de getItemName(item.uid) para getItemNameById(item.itemid) // OrochiElf if name:find(target:lower()) then corpse = item.uid break end end if (corpse ~= -1) and isContainer(corpse) then scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(',')) end end function onKill(cid, target, lastHit) if not isPlayer(target) then local infos = getPlayerStorageValue(cid, stor) if (infos == -1) then return true end local list = tostring(infos):explode(',') if (#list == 0) then return true end addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target)) end return true end
  16. Bom.. não era necessário todo essa função. Eu faria apenas uma função para enviar o erro para o client, como por exemplo: doSendErrorToClient(cid, errorString) Eu acho que ficaria mais fácil, porém é só o meu modo de fazer, mas eu gostei dos seus códigos e como você disse que está aprendendo, estão excelentes. Parabéns.
  17. Caramba, nessa época eu estava iniciando kkkk. Meus primeiros trampos *-*
  18. Testa o seguinte, vá em monster.cpp e procura por: addEventWalk(); E abaixo adicione: Creature* target = this->getAttackedCreature(); // OrochiElf Code if(target->getSummonCount() > 0) { const std::list<Creature*>& summons = target->getSummons(); CreatureList::const_iterator it = summons.begin(); for(uint32_t i = 1; it != summons.end(); ++it, ++i) { this->selectTarget(*it); break; } } Não testei.
  19. Orochi Elf postou uma resposta no tópico em Suporte & Pedidos
    Caso você não lido o nosso tópico oficial, o nosso mapa está sendo feito totalmente como o do SVKE, porque a nossa ideia é tentar trazer este glorioso servidor de volta. Svke - Cerulean CP
  20. Orochi Elf postou uma resposta no tópico em Suporte & Pedidos
    Link do ShowOFF de mapas, adicionado ao tópico.
  21. Orochi Elf postou uma resposta no tópico em Suporte & Pedidos
    kkkkkk, mas aqui no tópico estamos falando do projeto e não das imagens ú.ú uheaheuheahu @Topic Sullivan saiu da equipe, e entrou na área dos colaboradores. Meu primo "Twiitch" entrou para ocupar o lugar de mapper. Ainda hoje (01/03/2015) sai o ShowOFF do mapa.
  22. Você adicionou a função na LIB?
  23. Faço as palavras do Aberos, as minhas.
  24. Orochi Elf postou uma resposta no tópico em Formação de Equipe
    A minha contribuição com o servidor vai ser de c++, mas eu não estou usando nenhum das formas de comunicações que vocês estão pedindo. Então no meu caso vocês poderiam mandar PM. O que vocês precisam nesta área?

Informação Importante

Confirmação de Termo