Ir para conteúdo

Featured Replies

Postado

bom dia, Eu tava querendo que apos o player de x guild puxa a alavanca a x guild ganha-se doble exp ate 1 hora ou configuravel, mas se uma y guild chega-se e puxa-se a alavanca o doble xp iria sai da x guild e a y guild ganhe-se o doble xp e assim sucessivamente

 

Espero que tenho explicado direitinho.


UP

Resolvido por zipter98

Ir para solução
  • Respostas 6
  • Visualizações 465
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Não testei, mas w/e. Em algum arquivo da lib, coloque essas funções: function setGuildExperience(guildId, exp)     for _, pid in pairs(getPlayersOnline()) do         if getPlayerGuildId(pid) == gui

  • Desculpe, não entendi qual é seu outro problema. É relacionado ao sistema que fiz?

Postado
  • Solução

Não testei, mas w/e.

Em algum arquivo da lib, coloque essas funções:

function setGuildExperience(guildId, exp)
    for _, pid in pairs(getPlayersOnline()) do
        if getPlayerGuildId(pid) == guildId then
            doPlayerSetExperienceRate(pid, exp)
        end
    end
end
function getGuildExpRate(guildId)
    for _, pid in pairs(getPlayersOnline()) do
        local playerRate = getPlayerRates(pid)[8]
        if getPlayerGuildId(pid) == guildId and playerRate > 1 then
            return playerRate
        end
    end
    return 1.0
end
data/actions/scripts:
local config = {
    exp_rate = 2.0,          --Rate de experiência (2x).
    time = 60,               --Tempo, em minutos, para a double experience da guild acabar (em minutos).
    g_storage = 4790,
    guild_events = {}
}
 
function onUse(cid)
    local owner_guild, player_guild = getGlobalStorageValue(config.g_storage), getPlayerGuildId(cid)
    if player_guild < 1 then
        return doPlayerSendCancel(cid, "You do not have a guild.")
    elseif player_guild == owner_guild then
        return doPlayerSendCancel(cid, "Your guild is already owner of this lever.")
    end
    broadcastMessage("The guild "..getPlayerGuildName(cid).." is now owner of the lever and has "..config.exp_rate.."x experience rate for "..config.time.." minutes!")
    setGuildExperience(player_guild, config.exp_rate)
    setGlobalStorageValue(config.g_storage, player_guild)
    if owner_guild ~= -1 then
        setGuildExperience(owner_guild, 1.0)
        stopEvent(config.guild_events[owner_guild])
    end
    config.guild_events[player_guild] = addEvent(function()
        setGuildExperience(player_guild, 1.0)
        setGlobalStorageValue(config.g_storage, -1)
    end, config.time * 60 * 1000)
    return true
end
data/creaturescripts/scripts:
function onLogin(cid)
    if getPlayerGuildId(cid) < 1 then return true end
    local guild_exp = getGuildExpRate(getPlayerGuildId(cid))
    if guild_exp > 1 then
        doPlayerSetExperienceRate(cid, guild_exp)
    end
    return true
end
Logicamente, não precisa registrar nada em login.lua.

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Postado
  • Autor

agora so esta faltando uma coisa que no meu esta bugado. coloquei um sistema que aparece se o player e dono do castle apos ele entra. e diz que ele nao e o dono. aki esta o script.

 

function onLogin(cid)
 
 
local config = {
welcas = "Voce tem 25% de exp a mais por estar em uma guild dono do castle!",
not_cas = "Tornesse Dono do castle e ganhe 50% a mais de experiencia!",
storage = 154154
}
 
if getPlayerStorageValue(cid, config.storage) > 1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.welcas)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_cas)
end
return TRUE
end

Editado por 574747 (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo