Postado Agosto 24, 2015 9 anos 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
Postado Agosto 24, 2015 9 anos 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 Agosto 24, 2015 9 anos por zipter98 (veja o histórico de edições) não respondo pms solicitando suporte em programação/scripting
Postado Agosto 25, 2015 9 anos 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 Agosto 25, 2015 9 anos por 574747 (veja o histórico de edições)
Postado Agosto 29, 2015 9 anos Desculpe, não entendi qual é seu outro problema. É relacionado ao sistema que fiz? não respondo pms solicitando suporte em programação/scripting
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.