Postado Janeiro 19, 2018 7 anos Fala galera, será que alguém pode me ajudar? Quero que o Shared Exp em party seja igual o do global: 20% de bônus, se os jogadores forem da mesma vocação; 30% de bônus se duas vocações diferentes estiverem compartilhando experiência; 60% de bônus se três vocações diferentes estiverem compartilhando experiência; 100% de bônus se as quatro vocações diferentes estiverem compartilhando experiência. O script que está funcionando no meu servidor é o seguinte: ` function hasPlayerRealParty(cid) if Player(cid):getParty() ~= nil then if Player(cid):getParty():getMemberCount() > 0 then return true end end return false end function useExpRate(player, experience, stamina) local k = Game.getExperienceStage(player:getLevel()) local st = player:getStamina() if stamina then if isPremium(cid) and st > 2400 then return experience * k * 1.5 elseif st < 1 then return 0 elseif st < 841 then return experience * k * 0.5 end end return experience * k end function onKill(cid, target, damage, flags) local p = Player(cid) local percentbonus = 15 if not isMonster(target) then return true end if hasPlayerRealParty(cid) then local party = p:getParty() local leader = party:getLeader() if party:isSharedExperienceEnabled() then local xp = useExpRate(leader, MonsterType(getCreatureName(target):lower()):getExperience(), true) * (percentbonus / 100) -- leader leader:addExperience(xp, true, true) -- other members local member = leader:getParty():getMembers() for i = 1,party:getMemberCount() do local xp = useExpRate(member, MonsterType(getCreatureName(target):lower()):getExperience(), true) * (percentbonus / 100) member:addExperience(xp, true, true) end end end return true end`
Postado Janeiro 21, 2018 7 anos Qual servidor você está usando? TFS 0.4, 0.3.6, 1.0, 1.1, 1.2? Pelo script acredito ser TFS 1.x e caso eu esteja certo te recomendo controlar esse sistema através do party.lua em events Aqui está um exemplo de como utilizar function Party:onJoin(player) return true end function Party:onLeave(player) return true end function Party:onDisband() return true end function Party:onShareExperience(exp) local sharedExperienceMultiplier = 1.20 --20% local vocationsIds = {} local vocationId = self:getLeader():getVocation():getId() if vocationId ~= VOCATION_NONE then table.insert(vocationsIds, self:getLeader():getVocation():getId()) end for _, member in ipairs(self:getMembers()) do vocationId = member:getVocation():getId() if not isInArray(vocationsIds, vocationId) and vocationId ~= VOCATION_NONE then table.insert(vocationsIds, vocationId) end end local size = #vocationsIds if size > 1 then sharedExperienceMultiplier = 1.0 + ((size * (10 + (size - 1) * 5)) / 100) end exp = (exp * sharedExperienceMultiplier) / (self:getMembers() + 1) return exp end PS. ele não está configurado para sua necessidade, é apenas uma base pra alterar pro seu gosto Att, Grafit.
Postado Dezembro 15, 2019 5 anos Em 21/01/2018 em 22:41, grafit disse: Qual servidor você está usando? TFS 0.4, 0.3.6, 1.0, 1.1, 1.2? Pelo script acredito ser TFS 1.x e caso eu esteja certo te recomendo controlar esse sistema através do party.lua em events Aqui está um exemplo de como utilizar function Party:onJoin(player) return true end function Party:onLeave(player) return true end function Party:onDisband() return true end function Party:onShareExperience(exp) local sharedExperienceMultiplier = 1.20 --20% local vocationsIds = {} local vocationId = self:getLeader():getVocation():getId() if vocationId ~= VOCATION_NONE then table.insert(vocationsIds, self:getLeader():getVocation():getId()) end for _, member in ipairs(self:getMembers()) do vocationId = member:getVocation():getId() if not isInArray(vocationsIds, vocationId) and vocationId ~= VOCATION_NONE then table.insert(vocationsIds, vocationId) end end local size = #vocationsIds if size > 1 then sharedExperienceMultiplier = 1.0 + ((size * (10 + (size - 1) * 5)) / 100) end exp = (exp * sharedExperienceMultiplier) / (self:getMembers() + 1) return exp end PS. ele não está configurado para sua necessidade, é apenas uma base pra alterar pro seu gosto Poderia me informar como altero a xp entre 2,3 ou 4 membros entre cada vocação? ficaria grato. pois ativei essa script porém x2, 3 ou 4 tão dando 100%. gostaria que se fossem de vocações diferentes os 4, desse 100% 3 - 75% 2 - 50% poderia me ajudar?
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.