Ir para conteúdo

zmovirzynski

Campones
  • Total de itens

    10
  • Registro em

  • Última visita

  • Dias Ganhos

    2

Posts postados por zmovirzynski

  1. Em 14/11/2023 em 10:08, Garem disse:

    A alguns dias eu modifiquei um arquivo que dava um "acesso" alem do group id para os staffs, pq foi colocado um array na minha base como staffacess que nao permite o uso de alguns comandos.

     

    Alguem ja lidou com isso e sabe onde isso fica por padrao ?

    Amigo, você não tem um backup da base? Talvez seja mais fácil você pegar o backup e a base atual e usar o Beyond Compare e verificar as diferenças de arquivos e desfazer as alterações e então alterar novamente da forma que deseja.

  2. local txt = "Ex: %s matou o mostro [bazir] [%d] vezes"
    
    function onUse(cid, item, fromPosition, itemEx, toPosition)
        local player = Player(cid)
        local playerName = player:getName()
        local kills = player:getStorageValue(Storage.KillsToBazir)
    
        if kills < 0 then
            kills = 0
        end
    
        local message = string.format(txt, playerName, kills)
        player:sendTextMessage(MESSAGE_INFO_DESCR, message)
        return true
    end

     

    Certifique-se de adaptar o script de acordo com a estrutura e as variáveis específicas do seu server. Além disso, certifique-se de que o armazenamento Storage.KillsToBazir seja atualizado sempre que o jogador matar o monstro "bazir" no jogo, é o principal.

     

  3. 1. Verifique as configurações:

        Abra o arquivo D:\xampp\htdocs\system\load.database.php na linha 13 e verifique como a configuração mysqlHost está sendo acessada.
    2. Certifique-se de que o arquivo de configuração esteja correto:

        Verifique se você tem um arquivo de configuração que defina as configurações do banco de dados, incluindo mysqlHost. Esse arquivo geralmente contém um array associativo com as configurações do banco de dados.
    3. Verifique a ortografia:

        Certifique-se de que a chave esteja escrita corretamente, respeitando letras maiúsculas e minúsculas. mysqlHost é diferente de mysqlhost ou mysqlHost.
    4. Carregue o arquivo de configuração:

        Verifique se o arquivo de configuração está sendo incluído ou carregado corretamente no arquivo D:\xampp\htdocs\system\load.database.php.
    Exemplo de como carregar um arquivo de configuração em PHP:

    $config = include('config.php'); // Substitua 'config.php' pelo nome do seu arquivo de configuração.

     

    Caso nada disso resolva ou ocorra algum erro, estou a disposição.

  4. local config = {
        monster = {"Boss"}, -- nome dos monstros, separados por vírgulas.
        items = {
            {itemID = 9693, chance = 10}, -- item [1] -- 10% de chance
            {itemID = 9971, chance = 5},  -- item [2] -- 5% de chance
            -- Adicione o resto dos itens aqui
        },
        effect = 27, -- efeito ao matar o monstro.
    }
    
    function onKill(cid, target)
        if isInArray(config.monster, getCreatureName(target)) then
            local player = Player(cid)
            if player then
                local droppedItem = false
                for _, itemData in ipairs(config.items) do
                    if math.random(100) <= itemData.chance then
                        player:addItem(itemData.itemID, 1)
                        droppedItem = true
                        break -- Se um item cair, saia do loop.
                    end
                end
    
                if droppedItem then
                    doBroadcastMessage("O Boss morreu e você obteve um item!", MESSAGE_STATUS_WARNING)
                else
                    doBroadcastMessage("O Boss morreu, mas você não obteve nenhum item.", MESSAGE_STATUS_WARNING)
                end
    
                doSendMagicEffect(getThingPos(cid), config.effect)
            end
        end
        return true
    end

    (Não esqueça de adicionar os outros itens)

    Neste código, reorganizei a estrutura de configuração para incluir uma tabela chamada items, onde cada item tem um itemID e uma chance em porcentagem de ser dropado. O loop for verifica cada item na tabela items e, com base na chance, decide se o item deve ser dado ao jogador. Se um item é concedido, o loop é interrompido para garantir que o jogador receba apenas um item, mesmo que vários itens na lista tenham uma chance de drop.

  5. Bom dia,

     

    Testa isso:

     

    function onUse(cid, item, frompos, item2, topos)
        local store = 23562 -- storage que salva o delay
        local delay = 10 -- tempo em segundos de delay (agora 10 segundos)
        local storage = 23563
        local cidade = getPlayerTown(cid)
        local pos = getTownTemplePosition(cidade)
    
        if getPlayerStorageValue(cid, store) - os.time() >= 0 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, string.format("Aguarde %.2f minutos para usar novamente.", (getPlayerStorageValue(cid, store) - os.time()) / 60))
            return true
        end
    
        if getCreatureCondition(cid, CONDITION_INFIGHT) then
            doPlayerSendCancel(cid, 'Você não pode teleportar se estiver em uma batalha.')
            return true
        }
    
        doPlayerSendCancel(cid, "Teleportando!")
    
        doSendMagicEffect(getPlayerPosition(cid), 1004) -- Animacao de efeito (alterei para 1004)
    
        addEvent(function()
            doTeleportThing(cid, pos)
    
            if getPlayerStorageValue(cid, 84929) >= 1 then -- torneio viktor
                setPlayerStorageValue(cid, 84929, -1)
            end
    
            doRegainSpeed(cid)
        end, delay * 1000) -- O atraso é em milissegundos, por isso multiplicamos por 1000 para 10 segundos.
    
        doPlayerRemoveItem(cid, 2458, 1)
        setPlayerStorageValue(cid, store, os.time() + delay)
        return true
    end

     

    Utilizei a função addEvent para agendar a execução da função doTeleportThing após o atraso de 10 segundos, e executei a animação de efeito imediatamente após a mensagem de "Teleportando".

     

    Certifique-se de que o valor passado para doSendMagicEffect seja o correto para a animação que você deseja.

    Certifique-se também de que sua implementação do doSendMagicEffect funcione corretamente com o valor 1004.

    Outro detalhe, o teleportando está no doPlayerSendCancel mesmo? Achei o nome meio estranho para o que faz.

  6. Boa tarde,

     

    Para criar basta acessar o local admin do MySQL do Xampp pelo navegador, PORÉM, eu verificaria onde são utilizadas as news do site e comentária para não chamar essa tabela, talvez seja algo no site que você nem vai utilizar por enquanto (Acredito que sejam as notícias do servidor quando entra no site). Porém se você não sabe a estrutura da tabela vai ser um tiro no escuro ficar criando campo por campo até funcionar.

     

    CREATE TABLE news (
        id INT AUTO_INCREMENT PRIMARY KEY,
        title VARCHAR(255) NOT NULL,
        content TEXT NOT NULL,
        author VARCHAR(100),
        publication_date DATE
    );


     

    Neste exemplo:

    A tabela news tem cinco colunas: id, title, content, author, e publication_date.
    A coluna id é definida como uma chave primária autoincrementável, o que significa que ela terá um valor exclusivo para cada registro e será incrementada automaticamente.
    As colunas title e content são definidas como VARCHAR e TEXT, respectivamente, para armazenar o título e o conteúdo das notícias.
    A coluna author é definida como VARCHAR para armazenar o autor da notícia.
    A coluna publication_date é definida como DATE para armazenar a data de publicação da notícia.

  7. Boa tarde,

     

    Parece que na hora que ele tenta buscar o valor de resets para comparar, está dando erro. (Variável cid), tomei a liberdade de organizar o código da linha 95 a 123:

     

    function resetPlayer(cid, description)
        local resets = getResets(cid)
        local newResets = resets + 1
    
        if newResets < 0 then
            newResets = 0
        end
    
        setPlayerStorageValue(cid, config.storage, newResets)
    
        if description then
            db.executeQuery("UPDATE `players` SET `description` = ' [Reset " .. newResets .. "]' WHERE `id` = " .. config.resetStatus.player)
        else
            db.executeQuery("UPDATE `players` SET `description` = '' WHERE `id` = " .. config.resetStatus.player)
        end
    
        doRemoveCreature(cid)
    
        -- Reset player's level and experience to initial values
        db.executeQuery("UPDATE `players` SET `level` = " .. config.resetStatus.lvlreset .. ", `experience` = 0 WHERE `id` = " .. config.resetStatus.player)
    end
    
    function teleportAndReset(cid)
        resetPlayer(cid, true) -- true indicates to update the player's description
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        return TRUE
    end
    
    function resetAndKeepLook(cid)
        resetPlayer(cid, false) -- false indicates not to update the player's description
        return TRUE
    end
    
    function getResets(cid)
        local resets = getPlayerStorageValue(cid, config.storage)
        return math.max(0, resets)
    end


    Nesse código revisado, as funções resetPlayer, teleportAndReset, e resetAndKeepLook foram criadas para realizar as operações de reset de forma mais organizada. A função resetPlayer realiza a atualização dos resets no armazenamento, a atualização da descrição do jogador e o teletransporte para o templo. As outras duas funções chamam resetPlayer com diferentes configurações. Certifique-se de chamar a função apropriada com base nas condições do jogo.

  8. Boa tarde,

     

    Parece que o valor guild_id está vinculado a outra tabela.

     

    1. Certifique-se de que o valor que você está tentando inserir na coluna "guild_id" da tabela "guild_ranks" corresponda a um valor existente na tabela referenciada. Em outras palavras, o valor de "guild_id" deve estar presente na tabela de guilds (ou qualquer tabela que seja referenciada por "guild_id").

     

    2. Verifique se a chave estrangeira (foreign key) foi definida corretamente na tabela "guild_ranks" e que ela está apontando para a tabela e coluna corretas na qual a chave estrangeira deve ser verificada.

  • Quem Está Navegando   0 membros estão online

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