Ir para conteúdo

Featured Replies

Postado

Atualmente este script está dando experiência fixa e eu gostaria que ele estivesse ganhando em porcentagem (configurável) e se ele matar um player 10 leveis(configurável) menor que o dele não ganhar experiência nenhuma

Se for possível adicionar a perda de experiência ao matar com o mesmo IP em porcentagem e não fixa.

 

  function onKill(cid, target)
--config----------------------------
local lvl = getPlayerLevel(cid) --players level
local nlvl = getPlayerLevel(cid) + 1 -- add 5 levels
--end-------------------------------
    if isPlayer(target) == TRUE then
        if getPlayerIp(cid) ~= getPlayerIp(target) then
                        local exp = (50 * (lvl) * (lvl) * (lvl) - 130 * (lvl) * (lvl) + 400 * (lvl)) / 5
                        local nexp = (50 * (nlvl) * (nlvl) * (nlvl) - 130 * (nlvl) * (nlvl) + 400 * (nlvl)) / 5
                        local newexp = nexp - exp
                        doPlayerAddExp(cid,newexp)
                        doSendAnimatedText(getPlayerPosition(cid), "Orgasmic~", 198)
                else
            doPlayerAddExperience(cid, -90000000)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"You have been punished for killing a player of the same IP.")
        end
        end
    return TRUE
end 

 

  • Respostas 14
  • Visualizações 2.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • A quantidade de XP que o jogador irá receber tu consegue definir nas variáveis "exp", "nexp", e "newexp", basta alterar as operações matemáticas que estão sendo feitas dentro delas. Modifiquei pra que

  • As fórmulas são apenas cálculos comuns (adição, subtração, etc..) de acordo como você desejar. Irei pensar em um outro script, de modo que fique mais claro e envio aqui no tópico. ?

Posted Images

Postado

Não entendi a parte de ganhar em 'porcentagem', o ganho de XP está seguindo as fórmulas 'exp' e 'nexp'. Dá mais detalhes de como quer, e assim que possível eu vejo pra ti.

 

PS: Acho que ficaria legal se a fórmula fosse calculada em cima do level do player que morreu, e não em cima do lvl de quem matou (como está atualmente), daí colocar um limite de lvl tbm, pra evitar que jogadores iniciantes matem high lvl e abusem do ganho de xp.

Postado
  • Autor
17 minutos atrás, Pisces disse:

Não entendi a parte de ganhar em 'porcentagem', o ganho de XP está seguindo as fórmulas 'exp' e 'nexp'. Dá mais detalhes de como quer, e assim que possível eu vejo pra ti.

 

PS: Acho que ficaria legal se a fórmula fosse calculada em cima do level do player que morreu, e não em cima do lvl de quem matou (como está atualmente), daí colocar um limite de lvl tbm, pra evitar que jogadores iniciantes matem high lvl e abusem do ganho de xp.

@Pisces Eu gostaria que o jogador que matou o outro player ganhar uma porcentagem da exp perdida do jogador e que essa porcentagem seja configurável e ao matar um player level menor que o dele não ganhar exp

e se matar o jogador com o mesmo IP perder a experiência que ele ganharia do jogador que ele matou, nem sei se isso é possível nesse script.

Eu não conseguir deixar explicado isso no post por não entender sobre script estou começando agora e estou aprendendo conforme eu vou pesquisando vou aprendendo

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

Postado

A quantidade de XP que o jogador irá receber tu consegue definir nas variáveis "exp", "nexp", e "newexp", basta alterar as operações matemáticas que estão sendo feitas dentro delas. Modifiquei pra que o cálculo seja feito em cima do level do jogador inimigo, assim fica algo mais proveitoso e menos "fixo". Testa aí e me fala:

 

Spoiler

function onKill(cid, target)
local lvlCid = getPlayerLevel(cid)
local lvlTarget = getPlayerLevel(target)

------------- Em exp/nexp/newexp são as fórmulas de cálculo para decidir qual será a XP que o jogador irá obter.

  local exp = (50 * (lvlTarget) * (lvlTarget) * (lvlTarget) - 130 * (lvlTarget) * (lvlTarget) + 400 * (lvlTarget)) / 5
  local nexp = (50 * (lvlCid) * (lvlCid) * (lvlCid) - 130 * (lvlCid) * (lvlCid) + 400 * (lvlCid)) / 5
  local newexp = (exp - nexp) / 2
  local punishment = 2 -- Valor que será multiplicado pelo resultado de 'newexp'. (Punição por matar player do mesmo IP)

  if (isPlayer(target)) and (lvlTarget >= lvlCid)then
    if getPlayerIp(cid) ~= getPlayerIp(target) then
      doPlayerAddExp(cid, newexp)
      doCreatureSay(cid, "You earned " .. newexp .. " points of experience.", TALKTYPE_MONSTER)
    else
      doPlayerAddExperience(cid, -((newexp) * punishment))
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"You have been punished for killing a player of the same IP.")
    end
  end
  return true
end 

 

 

Postado
  • Autor
7 horas atrás, Pisces disse:

A quantidade de XP que o jogador irá receber tu consegue definir nas variáveis "exp", "nexp", e "newexp", basta alterar as operações matemáticas que estão sendo feitas dentro delas. Modifiquei pra que o cálculo seja feito em cima do level do jogador inimigo, assim fica algo mais proveitoso e menos "fixo". Testa aí e me fala:

 

  Ocultar conteúdo




function onKill(cid, target)
local lvlCid = getPlayerLevel(cid)
local lvlTarget = getPlayerLevel(target)

------------- Em exp/nexp/newexp são as fórmulas de cálculo para decidir qual será a XP que o jogador irá obter.

  local exp = (50 * (lvlTarget) * (lvlTarget) * (lvlTarget) - 130 * (lvlTarget) * (lvlTarget) + 400 * (lvlTarget)) / 5
  local nexp = (50 * (lvlCid) * (lvlCid) * (lvlCid) - 130 * (lvlCid) * (lvlCid) + 400 * (lvlCid)) / 5
  local newexp = (exp - nexp) / 2
  local punishment = 2 -- Valor que será multiplicado pelo resultado de 'newexp'. (Punição por matar player do mesmo IP)

  if (isPlayer(target)) and (lvlTarget >= lvlCid)then
    if getPlayerIp(cid) ~= getPlayerIp(target) then
      doPlayerAddExp(cid, newexp)
      doCreatureSay(cid, "You earned " .. newexp .. " points of experience.", TALKTYPE_MONSTER)
    else
      doPlayerAddExperience(cid, -((newexp) * punishment))
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"You have been punished for killing a player of the same IP.")
    end
  end
  return true
end 

 

 

a parte da punição por matar pelo mesmo ip não está funcionando e não aparece nenhum erro na distro, o resto tá funcionando perfeitamente, eu sei que estou pedindo demais mas não teria como deixar de forma mais clara essa formula de cálculo ? eu sinceramente não entendi nada e sobre a diferença de level deve  está na formula também e como eu não entendi fica difícil fazer alguma modificação eu queria que o jogador que matar o outro for 100 leveis menor ganhar 50% da exp perdida se forem level igual ou 10 nivel de diferença ganhar 100% da exp perdida e se ele for 20 nivel ou mais não ganhar exp nenhuma, se tiver varios player matando 1 jogador a exp seja shareada de forma igual dentro das condiçôes citada.

 

não precisa ser necessariamente esse script, se você tiver algum outro funcional que consiga fica o mais próximo possivel das condiçôes citada eu ficaria grato eternamente.

 

eu acho que já estou pedindo demais mas se não for possivel tudo bem, o script tá funcionando perfeitamente tirando a parte do IP

Editado por Breniinx (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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo