Ir para conteúdo
  • Cadastre-se

Programação [AJUDA PVP] Level alto atacando lvl baixo


Posts Recomendados

Boa noite, como faço para colocar limite de lvl no pvp? um lvl 700 esta atacando um lvl 300, nao teria como colocar uma diferença entre um e outro para que nao haja desigualdade no pvp ??

Link para o post
Compartilhar em outros sites

@dbofurie 

local limit = 300 -- Até quantos leveis a mais um jogador pode atacar um jogador level menor que ele
local areas = {
   [1] = { fromPos = {x = 100, y = 200, z = 7}, toPos = {{x = 200, y = 100, z = 8}} },
   [2] = { fromPos = {x = 500, y = 600, z = 7}, toPos = {{x = 800, y = 700, z = 7}} },
}


function onCombat(cid, target)
   if isPlayer(cid) and isPlayer(target) then
      if getPlayerLevel(target) + limit <= getPlayerLevel(cid) then
         for _, var in pairs(areas) do
            if not isInArea(getCreaturePosition(target), var.fromPos, var.toPos) then 
               doPlayerSendTextMessage(cid, 27, "Voce nao pode atacar jogadores de ".. limit .." leveis a menos que você.")
               return false
            end
         end
      end
   end
   return true
end 

 

tag no XML:

<event type="combat" name="LevelCheck" event="script" value="levelcheck.lua"/>

 

Registra no login.lua:

registerCreatureEvent(cid, "LevelCheck")

 

Editado por Storm
Acrescentar conteúdo (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
3 horas atrás, Storm disse:

@dbofurie 


local limit = 300 -- Até quantos leveis a mais um jogador pode atacar um jogador level menor que ele

function onCombat(cid, target)
   if isPlayer(cid) and isPlayer(target) then
      if getPlayerLevel(target) + limit <= getPlayerLevel(cid) then
         doPlayerSendTextMessage(cid, 27, "Voce nao pode atacar jogadores de ".. limit .." leveis a menos que você.")
         return false
      end
   end
   return true
end 

 

tag no XML:


<event type="combat" name="LevelCheck" event="script" value="levelcheck.lua"/>

 

Registra no login.lua:


registerCreatureEvent(cid, "LevelCheck")

 

 

Isso não iria atrapalhar no castle? 

x1fCxnI.png

Link para o post
Compartilhar em outros sites
  • Moderador

@One Punch Man O servidor DBKO 8.0 possui esse sistema pessoal só ta replicando no 8.5+

function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 

Link para o post
Compartilhar em outros sites
2 minutos atrás, Kramer disse:

@One Punch Man O servidor DBKO 8.0 possui esse sistema pessoal só ta replicando no 8.5+

 

Mas vamos supor que eu queira colocar no meu servidor, na hora do castle os players level 1000, não vão conseguir atacar os players level 500?

x1fCxnI.png

Link para o post
Compartilhar em outros sites
  • Moderador
1 minuto atrás, One Punch Man disse:

Mas vamos supor que eu queira colocar no meu servidor, na hora do castle os players level 1000, não vão conseguir atacar os players level 500?

 

Não vão, dai já envolve outra mecânica de estrategia no castle.

function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 

Link para o post
Compartilhar em outros sites
5 horas atrás, Storm disse:

@dbofurie 


local limit = 300 -- Até quantos leveis a mais um jogador pode atacar um jogador level menor que ele

function onCombat(cid, target)
   if isPlayer(cid) and isPlayer(target) then
      if getPlayerLevel(target) + limit <= getPlayerLevel(cid) then
         doPlayerSendTextMessage(cid, 27, "Voce nao pode atacar jogadores de ".. limit .." leveis a menos que você.")
         return false
      end
   end
   return true
end 

 

tag no XML:


<event type="combat" name="LevelCheck" event="script" value="levelcheck.lua"/>

 

Registra no login.lua:


registerCreatureEvent(cid, "LevelCheck")

 

 

É possível fazer algo para que no castle não tenha esse limite de level para atacar?

x1fCxnI.png

Link para o post
Compartilhar em outros sites
18 minutos atrás, One Punch Man disse:

É possível fazer algo para que no castle não tenha esse limite de level para atacar?

 

Realmente, o script vai ajudar muito, porém o castle ia ficar bugado..

Link para o post
Compartilhar em outros sites
2 horas atrás, Storm disse:

@One Punch Man @dbofurie Atualizei o código, porém testem antes de colocar no servidor principal de vocês.

 

 

 

 

Acho que agora foi, mas tipo, o lvl 500 nao pode atacar o 200, porem o lvl 200 pode atacar o 500, teria como bloquear isso?
e outra coisa tbm, ao inves de colocar um padrao de 300 leveis, tem como colocar tipo:
100 ao 300
300 ao 600
600 ao 1000
e de 1000 em diante é liberado ??

Desculpe pelo incomodo..
 

Link para o post
Compartilhar em outros sites
2 horas atrás, Storm disse:
38 minutos atrás, dbofurie disse:

Acho que agora foi, mas tipo, o lvl 500 nao pode atacar o 200, porem o lvl 200 pode atacar o 500, teria como bloquear isso?
e outra coisa tbm, ao inves de colocar um padrao de 300 leveis, tem como colocar tipo:
100 ao 300
300 ao 600
600 ao 1000
e de 1000 em diante é liberado ??

Desculpe pelo incomodo..
 

 

A questão do level menor atacar o level maior eu consegui resolver deixando dessa forma:
 

local limit = 500 -- Até quantos leveis a mais um jogador pode atacar um jogador level menor que ele
local areas = {
   [1] = { fromPos = {x=2146, y=2114, z=3}, toPos = {{x=2267, y=2230, z=8}} },
   [2] = { fromPos = {x=1465, y=1534, z=7}, toPos = {{x=1521, y=1567, z=7}} },
   [3] = { fromPos = {x=978, y=893, z=7}, toPos = {{x=993, y=902, z=7}} },
}


function onCombat(cid, target)
   if isPlayer(cid) and isPlayer(target) then
      if getPlayerLevel(target) + limit <= getPlayerLevel(cid) or getPlayerLevel(target) + limit >= getPlayerLevel(cid) then
         for _, var in pairs(areas) do
            if not isInArea(getCreaturePosition(target), var.fromPos, var.toPos) then 
               doPlayerSendTextMessage(cid, 27, "Voce nao pode atacar jogadores de ".. limit .." leveis a menos ou a mais que você.")
               return false
            end
         end
      end
   end
   return true
end

blockquote widget

Editado por One Punch Man (veja o histórico de edições)

x1fCxnI.png

Link para o post
Compartilhar em outros sites
1 hora atrás, One Punch Man disse:

A questão do level menor atacar o level maior eu consegui resolver deixando dessa forma:
 


local limit = 500 -- Até quantos leveis a mais um jogador pode atacar um jogador level menor que ele
local areas = {
   [1] = { fromPos = {x=2146, y=2114, z=3}, toPos = {{x=2267, y=2230, z=8}} },
   [2] = { fromPos = {x=1465, y=1534, z=7}, toPos = {{x=1521, y=1567, z=7}} },
   [3] = { fromPos = {x=978, y=893, z=7}, toPos = {{x=993, y=902, z=7}} },
}


function onCombat(cid, target)
   if isPlayer(cid) and isPlayer(target) then
      if getPlayerLevel(target) + limit <= getPlayerLevel(cid) or getPlayerLevel(target) + limit >= getPlayerLevel(cid) then
         for _, var in pairs(areas) do
            if not isInArea(getCreaturePosition(target), var.fromPos, var.toPos) then 
               doPlayerSendTextMessage(cid, 27, "Voce nao pode atacar jogadores de ".. limit .." leveis a menos ou a mais que você.")
               return false
            end
         end
      end
   end
   return true
end

blockquote widget

 

Essas posições que você alterou, é onde fica o seu castle ??

Link para o post
Compartilhar em outros sites

@dbofurie 

Tente esse aqui uso em um servidor meu.

local config = {
diffType = 1, -- 1 = NORMAL/ 2 = PERCENT
maxDiff = 300
}
function onCombat(cid, target)
if isPlayer(cid) ~= TRUE or isPlayer(target) ~= TRUE then
return TRUE
end

if config. diffType == 1 then -- if NORMAL
if math.abs(getPlayerLevel(cid) - getPlayerLevel(target)) > config.maxDiff then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER)
return FALSE
end
elseif config.diffType == 2 then --if PERCENT
local levels = {getPlayerLevel(cid), getPlayerLevel(target)}
table.sort(levels)
if (((levels[2] - levels[1]) * 100) / levels[1]) > config.maxDiff then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER)
return FALSE
end
else
print("DEBUG: Wrong config.diffType")
end
return TRUE
end

 

Link para o post
Compartilhar em outros sites
27 minutos atrás, Lokyskiller disse:

@dbofurie 

Tente esse aqui uso em um servidor meu.


local config = {
diffType = 1, -- 1 = NORMAL/ 2 = PERCENT
maxDiff = 300
}
function onCombat(cid, target)
if isPlayer(cid) ~= TRUE or isPlayer(target) ~= TRUE then
return TRUE
end

if config. diffType == 1 then -- if NORMAL
if math.abs(getPlayerLevel(cid) - getPlayerLevel(target)) > config.maxDiff then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER)
return FALSE
end
elseif config.diffType == 2 then --if PERCENT
local levels = {getPlayerLevel(cid), getPlayerLevel(target)}
table.sort(levels)
if (((levels[2] - levels[1]) * 100) / levels[1]) > config.maxDiff then
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER)
return FALSE
end
else
print("DEBUG: Wrong config.diffType")
end
return TRUE
end

 

 

Voce sabe se no Castle Of War ele nao altera nada?? ou dentro da arena ?

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 Muvuka
      Alguem tem anti-nuker igual a esse 
       

       
    • Por Muvuka
      [SQLite] -=[TFS]=- 0.4 8.60 Alguem faz apk mobile pra mim ip: dexsoft.ddns.net
       
      pra mim
       
      https://www.mediafire.com/file/5klqnyy6k7jda0u/OTClientV8.rar/file
       
      TA TUDO AI
    • Por yuriowns
      Salve rapazes, estou precisando de um client próprio para o meu servidor 7.4, preciso que algum programador experiente e com referências faça um client do jeito que eu procuro. Responda aqui para fazermos um orçamento, obrigado!

      Não sei se estou no lugar certo, se não me desculpem e peço que movam por gentileza!
    • Por paulo thush
      Pessoal to com um grande problema, estou com um servidor TFS 1.4x 10.98, recentemente começou dar um problema, sempre quando falava "trade" com o npc dava um erros, com qual quer npc, o erro e o seguinte.
       
       
      me falaram que o problema e nas sourcer que precisava mudar umas coisas me passaram um link no github esse aqui 
      https://github.com/otland/forgottenserver/pull/3996/files
       
      porem eu vi vídeos no youtube ensinando a compilar, já vi muitos tópicos como compilar a sourcer, ai quando vou compilar da esse erro
      já tentei instalar, desinstala muitas coisas, alterar também não vai, minha sourcer e essa 
      https://github.com/otland/forgottenserver
       
       
      Alguém poderia me ajuda com esse erro, ou ate compilar 100% as sourcer. os Tópicos que eu tentei para compilar e esse daqui, se não poder o link me desculpe.
      https://forums.otserv.com.br/index.php?/forums/topic/169234-windowsvc2019-compilando-sources-tfs-14-vcpkg/
       
      alguém me da uma luz por favor kkk
    • Por Ryzek
      Uso tfs 0.4 trunk3884 bem simples.
      Queria acrescentar magic effects para 255 pois o meu só vai até 69. Encontrei um tópico que falava sobre porém parece ter sido removido, não consigo acessar!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo