Ir para conteúdo
  • Cadastre-se

Anderson Sacani

Membro
  • Total de itens

    110
  • Registro em

  • Última visita

  • Dias Ganhos

    8

Anderson Sacani venceu a última vez em Novembro 17 2023

Anderson Sacani teve o conteúdo mais curtido!

2 Seguidores

Sobre Anderson Sacani

  • Rank
    Avançado

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

  1. São muitas informações, e tem tutoriais aqui no fórum que podem te ajudar, mas se precisar, posso te dar uma força. Me manda mensagem no privado.
  2. A função getPlayerDamageMultiplier não foi encontrada. Ela existe no teu servidor?
  3. No primeiro resultado ele ta tentando passar o valor 19876 para a key inexistente. Observa: (, 0, '19876') E to vendo mais possíveis problemas porque tem alguns casos que tem uma string no lugar de value, e não deveria. Deveira ser apenas INT. Pode mandar uma print da tabela global_storage para eu ver?
  4. Isso só acontece com o item custom ou acontece com qualquer outro item que tenha duração?
  5. Então faz o seguinte: No teu banco de dados procura por uma tabela com o nome de guilds ou player_guilds, algo assim. Nessa tabela me passa o nome de cada coluna existente. Não sei como está o seu banco de dados, mas estou considerando que existe a tabela "guilds" e dentro dela há as colunas "name" e "id": local function getGuildNameById(guildId) if type(guildId) ~= "number" or math.floor(guildId) ~= guildId then error("[getGuildNameById] O guildId precisa ser um numero inteiro.") end local query = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. guildI
  6. Só adicionar isso no arquivo de login.lua: local castleGuildId = getGlobalStorageValue(123123) local guildName = getGuildNameById(castleGuildId) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[CASTLE24H]\nGuilda dominante: " .. guildName) Minha dúvida é, será que teu servidor possui a função "getGuildNameById"? Faça o teste e me retorne porque se precisar, eu crio essa função.
  7. Boa tarde, eu estava de bobeira e criei uma magia com base em uma skill do Metin2. A magia se chama Sword Attack. Essa magia dá dano físico em uma pequena área à sua frente e também aplica o efeito de paralyze em seus inimigos. Essa magia possui um sistema de nível, então quanto maior o nível da magia, maior será o dano, maior será a probabilidade de paralizar o inimigo e maior será o gasto de mana. Testado hoje 17/11/2023 na versão mais atual do Canary Esse é o script: local config = { --[[ * addManaSpentSystem: In Metin2, there is no ma
  8. Sobre clonar os itens tu ta certo. Sempre que um jogador desloga os dados do personagem saem da memória e vão para o banco de dados. E sim, este procedimento está correto e sempre deverá ser dessa maneira por questões de performance. Ataques DDoS não fazem rollback, ou seja, não cracham o servidor, então não é um ataque DDoS. Sugiro começar a depurar tudo em algum arquivo de log para descobrir qual é a última ação antes do servidor crachar, fazendo isso tu vai saber como tão derrubando. E mais um detalhe, a pessoa que clona os itens certamente sabe como derrubar o
  9. std::stringstream ss; ss << (uint64_t)gainExp; std::string expText = "EXP: " + ss.str(); g_game.addAnimatedText(getPosition(), (uint8_t)color, expText); }
  10. Já leu o nome do método? onGainSharedExperience; Tente fazer modificações também em onGainExperience; void Creature::onGainExperience(double& gainExp, bool fromMonster, bool multiplied) { if(gainExp <= 0) return; if(master) { gainExp = gainExp / 2; master->onGainExperience(gainExp, fromMonster, multiplied); } else if(!multiplied) gainExp *= g_config.getDouble(ConfigManager::RATE_EXPERIENCE); int16_t color = g_config.getNumber(ConfigManager::EXPERIENCE_COLOR); if(color < 0) color = random_range(0, 255); std::stringstream ss; ss << "Exp: "
  11. Eu faria um contador utilizando a function onKill dessa maneira: function onKill(cid, target, lastHit) if isMonster(target) then local monsterName = getCreatureName(target) if monsterName == "Altaboss" then local playerKills = getPlayerStorageValue(cid, 225463) if playerKills == -1 then playerKills = 0 end setPlayerStorageValue(cid, 225463, playerKills + 1) local globalKills = getGlobalStorageValue(316141) if globalKills == -1 then globalKills = 0 end
  12. Quer tirar a prova real se irá funcionar ou não? Ta aqui: function onDeath(creature, corpse, killer) local creatureName = getCreatureName(creature) print(creatureName .. " died.") if isSummon(creature) then print(creatureName .. " is a summon.") else print(creatureName .. " is not a summon.") end return true end Sempre faça depuração de um código quando há dúvidas. Registra esse script no summon e vai perceber que nenhum print aparecerá, porque ele não morre.
  13. Não vai funcionar porque summon não morre, não adianta... Pode ser o evento que for. O correto é alterar na source e fazer com que summon também morra.
  14. Eu só usaria o stopEvent caso não estivesse verificando a storage do player, nesse caso não há necessidade. E agora um detalhe muito importante: Sempre que usar addEvent com player, é bom criar condição para verificar se ele está online, caso contrário o servidor poderá crashar. local MAX_HEAL_LEVEL = 717217 local STORAGE_VALUE = 98910 local HEAL_INTERVAL = 4 * 1000 local HEAL_AMOUNT = 1000000000 local HEAL_TEXT = "|ROX|..." function doHealPlayer(cid) if not cid or not isPlayer(cid) then return true end if getPlayerStorageValue(cid, STORAGE_VALUE) == 1 then
  15. Refiz teu script: function onUse(cid, item, frompos, item2, topos) local dexsoftCoinId = 6535 if getPlayerItemCount(cid, dexsoftCoinId) < 1 then doPlayerSendCancel(cid, "Voce precisa de 1 DexSoft Coin para comprar!") return true end doPlayerRemoveItem(cid, dexsoftCoinId, 1) doPlayerAddItem(cid, 7881, 1) doSendMagicEffect(topos, 14) doBroadcastMessage("O jogador " .. getPlayerName(cid) .. " comprou donate axe", MESSAGE_STATUS_CONSOLE_BLUE) return true end
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo