Ir para conteúdo

xokys

Campones
  • Total de itens

    38
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Tudo que xokys postou

  1. @kttallan não é só em megas, meus pokes normais o segundo hit está dando bem mais dano, primeiramente vou dar uma analisada nos atributos escalados, está bem ruim, não olhei as outras páginas do grupo, tinha o bug de ficar sumonando 2 pokes, mas ja resolvi, se alguém tiver este problema, eu posto a solução
  2. Config.lua o rate ta 1? Vou testar aqui o segundo método e te falo @Josegvb utilize o código desta forma, havia um erro de programação que eu não havia percebido, lembrando que os loots devem estar de 0 a 100! for i, _ in pairs(lootList) do countVirg = countVirg + 1 local id, count, chance = lootList[i].id, lootList[i].count, lootList[i].chance ---- X-Lucky local heldx = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "xHeldItem") if heldx then local heldName, heldTier = string.explode(heldx, "|")[1], string.explode(heldx, "|")[2] if heldName == "X-Lucky" then -- dar mais loot chance = chance * heldLucky[tonumber(heldTier)] end end ---- X-Lucky local percent, lootCount = math.random(0.0, 100.0), math.random(1, count) if (percent <= chance) then if isStone(id) then isStoneDroped = true local posCorpse = getThingPos(item) posCorpse.x = posCorpse.x +1 doSendMagicEffect(posCorpse, stoneEffect[getItemNameById(id):lower()]) posCorpse.y = posCorpse.y +1 addEvent(doSendMagicEffect, 2000, posCorpse, 285) end doAddContainerItem(item, id, lootCount) table.insert(lootListNow, getItemNameById(id) .. " (" .. lootCount .. ")") end end Testei e este script esta funcionando normalmente, lembrem se, use a base 100
  3. Neste caso sua chance esta 500/10, 50, ou seja 50% de chance de dropar, os números precisariam ser de 0 a 100! Você primeiro precisa corrigir os loots, sempre até 100!
  4. @Josegvb como você disse que a porcentagem de loot esta em decimais, ou seja 10 = 100%, qualquer número acima de 10 causaria um loot absurdo, se sua lógica esta correta, oque essa linha faz é pegar os loots que estão na base da centena e converte los para decimais, ou seja seu monster estava com loot 98, quando ele chegar nesta linha estará 9.8, lógico isso só funcionará se o loot for de 10 Eu ainda não testei essa modificação, mas o que eu faria, para deixar este loot trabalhando na base decimal é, alterar este código do pokeDeath.lua local countVirg = 0 for i, _ in pairs(lootList) do countVirg = countVirg + 1 local id, count, chance = lootList[i].id, lootList[i].count, lootList[i].chance * 2 ---- X-Lucky local heldx = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "xHeldItem") if heldx then local heldName, heldTier = string.explode(heldx, "|")[1], string.explode(heldx, "|")[2] if heldName == "X-Lucky" then -- dar mais loot chance = chance * heldLucky[tonumber(heldTier)] end end ---- X-Lucky local percent, lootCount = math.random(0.1, 100.9), math.random(1, count) if (percent <= chance) then if isStone(id) then isStoneDroped = true local posCorpse = getThingPos(item) posCorpse.x = posCorpse.x +1 doSendMagicEffect(posCorpse, stoneEffect[getItemNameById(id):lower()]) posCorpse.y = posCorpse.y +1 addEvent(doSendMagicEffect, 2000, posCorpse, 285) end doAddContainerItem(item, id, lootCount) table.insert(lootListNow, getItemNameById(id) .. " (" .. lootCount .. ")") end end para for i, _ in pairs(lootList) do countVirg = countVirg + 1 local id, count, chance = lootList[i].id, lootList[i].count, lootList[i].chance ---- X-Lucky local heldx = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "xHeldItem") if heldx then local heldName, heldTier = string.explode(heldx, "|")[1], string.explode(heldx, "|")[2] if heldName == "X-Lucky" then -- dar mais loot chance = chance * heldLucky[tonumber(heldTier)] end end ---- X-Lucky local percent, lootCount = math.random(0.1, 100.1), math.random(1, count) if (percent >= chance) then if isStone(id) then isStoneDroped = true local posCorpse = getThingPos(item) posCorpse.x = posCorpse.x +1 doSendMagicEffect(posCorpse, stoneEffect[getItemNameById(id):lower()]) posCorpse.y = posCorpse.y +1 addEvent(doSendMagicEffect, 2000, posCorpse, 285) end doAddContainerItem(item, id, lootCount) table.insert(lootListNow, getItemNameById(id) .. " (" .. lootCount .. ")") end end ainda não o testei no meu servidor, estarei realizando o teste com os players esta semana! Também tem o problema de a xp dos monstros não estar escalando, ele pega a base do xml e não faz alteração por lvl, estarei vendo essa função mais tarde
  5. Julgando que seja então o loot contado de 0 a 10, para os que já tinha configurado de 0 a 100, basta modificar a linha do pokeDeath.lua local id, count, chance = lootList[i].id, lootList[i].count, lootList[i].chance * 2 para local id, count, chance = lootList[i].id, lootList[i].count, lootList[i].chance / 10 Agora que resolvi o problema do lag do server estarei me focando no restante dos bugs, estou com um servidor de teste online, tem em média 20 players, uma dúvida, ainda não tive tempo de vasculhar o fórum, então, o bug do segundo hit, bater muito mais, foi resolvido?
  6. Troquem a função da xp do pokeDeath.lua para esta function playerAddExp(cid, exp)if not isCreature(cid) then return true end if isInPartyAndSharedExperience(cid) then local partyPlayers = getPartyMembers(getPlayerParty(cid)) local partyExp = math.ceil(exp / #partyPlayers) for i = 1, #partyPlayers do if isPlayer(partyPlayers[i]) then if getPlayerLevel(partyPlayers[i]) <= 50 then doplayerAddExp(partyPlayers[i], math.floor(2.5 * exp)) doSendAnimatedText(getThingPos(partyPlayers[i]), exp * 2.5, 215) elseif getPlayerLevel(partyPlayers[i]) >= 51 and getPlayerLevel(partyPlayers[i]) <= 75 then doPlayerAddExp(partyPlayers[i], math.floor(2 * exp)) doSendAnimatedText(getThingPos(partyPlayers[i]), exp * 2, 215) elseif getPlayerLevel(partyPlayers[i]) >= 76 and getPlayerLevel(partyPlayers[i]) <= 100 then doPlayerAddExp(partyPlayers[i], math.floor(1.5 * exp)) doSendAnimatedText(getThingPos(partyPlayers[i]), exp * 1.5, 215) elseif getPlayerLevel(partyPlayers[i]) >= 101 and getPlayerLevel(partyPlayers[i]) <= 150 then doPlayerAddExp(partyPlayers[i], math.floor(1 * exp)) doSendAnimatedText(getThingPos(partyPlayers[i]), exp * 1, 215) elseif getPlayerLevel(partyPlayers[i]) >= 151 and getPlayerLevel(partyPlayers[i]) <= 250 then doPlayerAddExp(partyPlayers[i], math.floor(0.50 * exp)) doSendAnimatedText(getThingPos(partyPlayers[i]), exp * 0.50, 215) elseif getPlayerLevel(partyPlayers[i]) >= 251 and getPlayerLevel(partyPlayers[i]) <= 350 then doPlayerAddExp(partyPlayers[i], math.floor(0.25 * exp)) doSendAnimatedText(getThingPos(partyPlayers[i]), exp * 0.25, 215) elseif getPlayerLevel(partyPlayers[i]) >= 351 then doPlayerAddExp(partyPlayers[i], math.floor(0.10 *exp)) doSendAnimatedText(getThingPos(partyPlayers[i]), exp * 0.10, 215) end end end return true end if getPlayerLevel(cid) <= 50 then doPlayerAddExp(cid, math.floor(2 * exp)) doSendAnimatedText(getThingPos(cid), exp * 2, 215) elseif getPlayerLevel(cid) >= 51 and getPlayerLevel(cid) <= 75 then doPlayerAddExp(cid, math.floor(1.5 * exp)) doSendAnimatedText(getThingPos(cid), exp * 1.5, 215) elseif getPlayerLevel(cid) >= 76 and getPlayerLevel(cid) <= 100 then doPlayerAddExp(cid, math.floor(1 * exp)) doSendAnimatedText(getThingPos(cid), exp * 1, 215) elseif getPlayerLevel(cid) >= 101 and getPlayerLevel(cid) <= 150 then doPlayerAddExp(cid, math.floor(0.50 * exp)) doSendAnimatedText(getThingPos(cid), exp * 0.50, 215) elseif getPlayerLevel(cid) >= 151 and getPlayerLevel(cid) <= 250 then doPlayerAddExp(cid, math.floor(0.25 * exp)) doSendAnimatedText(getThingPos(cid), exp * 0.25, 215) elseif getPlayerLevel(cid) >= 251 and getPlayerLevel(cid) <= 350 then doPlayerAddExp(cid, math.floor(0.10 * exp)) doSendAnimatedText(getThingPos(cid), exp * 0.10, 215) elseif getPlayerLevel(cid) >= 351 then doPlayerAddExp(cid, math.floor(0.05 *exp)) doSendAnimatedText(getThingPos(cid), exp * 0.05, 215) end end
  7. @FlamesAdmin se você usar o código como esta, não vai conseguir fazer os stages, a xp é a mesma pra qualquer level
  8. @Durant resolvi o problema do lag, retirei as sprites e itens e estou usando a do Cyan, o server esta rodando lindamente! @Durant você vai pegar como base o script do pokeexp.lua if isInArray(list, party[i]) then if getPlayerLevel(pk) <= 50 then playerAddExp(party[i], expTotal * 200) elseif getPlayerLevel(pk) >= 51 and getPlayerLevel(pk) <= 75 then playerAddExp(party[i], expTotal * 130) elseif getPlayerLevel(pk) >= 76 and getPlayerLevel(pk) <= 100 then playerAddExp(party[i], expTotal * 80) elseif getPlayerLevel(pk) >= 101 and getPlayerLevel(pk) <= 150 then playerAddExp(party[i], expTotal * 40) elseif getPlayerLevel(pk) >= 151 and getPlayerLevel(pk) <= 250 then playerAddExp(party[i], expTotal * 20) elseif getPlayerLevel(pk) >= 251 and getPlayerLevel(pk) <= 350 then playerAddExp(party[i], expTotal * 10) elseif getPlayerLevel(pk) >= 351 then playerAddExp(party[i], expTotal * 5) end end end elseif not isInParty(pk) then if getPlayerLevel(pk) <= 50 then playerAddExp(pk, math.floor(200 * givenexp * getDamageMapPercent(pk, cid))) elseif getPlayerLevel(pk) >= 51 and getPlayerLevel(pk) <= 75 then playerAddExp(pk, math.floor(130 * givenexp * getDamageMapPercent(pk, cid))) elseif getPlayerLevel(pk) >= 76 and getPlayerLevel(pk) <= 100 then playerAddExp(pk, math.floor(80 * givenexp * getDamageMapPercent(pk, cid))) elseif getPlayerLevel(pk) >= 101 and getPlayerLevel(pk) <= 150 then playerAddExp(pk, math.floor(40 * givenexp * getDamageMapPercent(pk, cid))) elseif getPlayerLevel(pk) >= 151 and getPlayerLevel(pk) <= 250 then playerAddExp(pk, math.floor(20 * givenexp * getDamageMapPercent(pk, cid))) elseif getPlayerLevel(pk) >= 251 and getPlayerLevel(pk) <= 350 then playerAddExp(pk, math.floor(10 * givenexp * getDamageMapPercent(pk, cid))) elseif getPlayerLevel(pk) >= 351 then playerAddExp(pk, math.floor(5 * givenexp * getDamageMapPercent(pk, cid))) return true end E vai até o script pokeDeath.lua e vera esta funçâo function playerAddExp(cid, exp) if not isCreature(cid) then return true end if isInPartyAndSharedExperience(cid) then local partyPlayers = getPartyMembers(getPlayerParty(cid)) local partyExp = math.ceil(exp / #partyPlayers) for i = 1, #partyPlayers do if isPlayer(partyPlayers[i]) then doPlayerAddExp(partyPlayers[i], partyExp * 30) doSendAnimatedText(getThingPos(partyPlayers[i]), partyExp * 30, 215) end end return true end doPlayerAddExp(cid, exp * 30) doSendAnimatedText(getThingPos(cid), exp * 30, 215) end function doSendMsgInParty(cid, loot) if isInPartyAndSharedExperience(cid) then local partyPlayers = getPartyMembers(getPlayerParty(cid)) for i = 1, #partyPlayers do if isPlayer(partyPlayers[i]) then doSendMsgToPartyChannel(partyPlayers[i], loot) end end return true end end É só integrar a pokeexp ai
  9. @kttallan depois vou dar uma olhada a fundo, mas o loot esta sendo influenciado por mais algo, stones estão com 1% de drop e mesmo assim caem toda hora
  10. @Durant remova o comando !rank, e também os pcs de checar level, estão gerando muito consumo no mysql, você esta usando o client V3? Hoje vou dar uma analisada nas requisições que o server faz para o db, o consumo é absurdo! Na minha distro retorna muito este erro: [Error - MoveEvent::executeStep] Call Stack overflow. Para os que tem problemas em colocar a xp por estágio, podem alterar o arquivo PokeDeath.lua, e pegar o script do pokeexp.lua O rate de loot está bem zoado, eu alterei os xml, e o rate do config.lua, mesmo assim ainda continua com o rate bem alto
  11. Na distro os erros que me recorrem são alguns dos que já foram reportados, o server está em uma vps muito boa para estar com este lag absurdo, vou ver se o client esta gerando algo! Não estou usando o mapa que veio nele, estou usando o mapa do cyan!
  • Quem Está Navegando   0 membros estão online

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