Ir para conteúdo
  • Cadastre-se

Posts Recomendados

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`

Link para o post
Compartilhar em outros sites

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.

Link para o post
Compartilhar em outros sites
  • 1 year later...
Em 21/01/2018 em 20: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? 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo