O Que Está Errado? PorFavor Algum Scripter Experiente?

JumentoCuzaum
em Scripts

JumentoCuzaum

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 24/01/11Posts: 245

Estou com um BUG muito chato em meu server de war, ao iniciar você é lvl 130, logo se matar algumas pessoas pegará lvl 131 e quando você morre perde o lvl e volta pro 130 não é? pois bem! mas o char não perde o HP nem a MANA que ganhou com isso ou sejá se uma pessoa upar level 131 e morrer ate o 130 o hp e a mana continua de um lvl 131 e o pior se upar level 131 outra vez o char almenta da mesma forma como se fosse pro level 132 mais com exp de level 131 wacko.png

Eai Alguém Ajuda?

 

Obs: tenho um script ant-kill mc se você matar mc você desloga e perde 1 level (funciona perfeitamente) mas acredito que não sejá ele o problema, pois não é so quando mata player vs player pedi um amigo pra criar duas contas e matar

uma a outra ele pegou lvl 131 e deslogou ao logar ele voltou ao 129 e upou o 130 (pois é o minimo de lvl do ot)

mas a mana e hp ainda continuou de 131... assim todos vão bugar... espero que me ajudem!

 

Postei Ai Meu Login.lua:

local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}

function onLogin(cid)
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
doPlayerAddBlessing(cid, 1)
doPlayerAddBlessing(cid, 2)
doPlayerAddBlessing(cid, 3)
doPlayerAddBlessing(cid, 4)
doPlayerAddBlessing(cid, 5)
end

local accountManager = getPlayerAccountManager(cid)
if(accountManager == MANAGER_NONE) then
local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
if(lastLogin > 0) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
else
str = str .. " Please choose your outfit."
doPlayerSendOutfitWindow(cid)
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
elseif(accountManager == MANAGER_NAMELOCK) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
elseif(accountManager == MANAGER_ACCOUNT) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
end

if(not isPlayerGhost(cid)) then
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
end

registerCreatureEvent(cid, "kill")
registerCreatureEvent(cid, "onPrepareDeath")
registerCreatureEvent(cid, "PlayerLogout")
registerCreatureEvent(cid, "Reward")
registerCreatureEvent(cid, "onPrepareDeath")
registerCreatureEvent(cid, "deathBroadcast")
registerCreatureEvent(cid, "DeathBroadcast")
registerCreatureEvent(cid, "accm")
registerCreatureEvent(cid, "antimckill")

registerCreatureEvent(cid, "Idle")
if(config.useFragHandler) then
registerCreatureEvent(cid, "SkullCheck")
end

registerCreatureEvent(cid, "ReportBug")
return true
end

 

 

Realmente Estou precisando de ajuda...


BUMP!


BUMP!

cs007

Vim de longe
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 10/07/08Posts: 574Gênero: MasculinoChar no Tibia: Hebi Of Amera

Se importa de postar o script ant-kill mc?

JumentoCuzaum

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 24/01/11Posts: 245

Se importa de postar o script ant-kill mc?

 

ta aqui:

 

function onKill(cid, target)

if isPlayer(cid) and isPlayer(target) then

if getPlayerIp(cid) == getPlayerIp(target) then

local pid, level = getPlayerGUID(cid), getPlayerLevel(cid)

doRemoveCreature(cid)

db.executeQuery("UPDATE `players` SET `level` = ".. level - 1 .." WHERE `id` = ".. pid ..";")

end

end

return true

end

cs007

Vim de longe
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 10/07/08Posts: 574Gênero: MasculinoChar no Tibia: Hebi Of Amera

Já tentou remover ele e rodar o server?

JumentoCuzaum

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 24/01/11Posts: 245

Já tentou remover ele e rodar o server?

não... mas tipo se eu tirar ele vai fuder o server pq vai ficar sem como eu tomar conta de todos os caras que matam mc ou você acha que tem algum que de pra colocar?

cs007

Vim de longe
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 10/07/08Posts: 574Gênero: MasculinoChar no Tibia: Hebi Of Amera

é só para testar, se caso existir o erro aí tenho que arrumar o script.

JumentoCuzaum

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 24/01/11Posts: 245

ok vou testar amanhã e posto aqui se deu algo...

GOD Fabiano

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/08/06Posts: 31

O erro é simples, e está no seu script de anti-mc

function onKill(cid, target)
        if isPlayer(cid) and isPlayer(target) then
                if getPlayerIp(cid) == getPlayerIp(target) then
                        local pid, level = getPlayerGUID(cid), getPlayerLevel(cid)
                        doRemoveCreature(cid)
                        db.executeQuery("UPDATE `players` SET `level` = ".. level - 1 .." WHERE `id` = ".. pid ..";")
                end
        end
        return true
end

Você reduz o level diretamente no database, fazendo com que o HP/MP do personagem permaneçam o mesmo. Tente trocar pelo script abaixo.

 

Onde local experience, é o valor de experiencia que o player irá perder.

local experience = 10000

function onKill(cid, target)
        if isPlayer(cid) and isPlayer(target) then
                if getPlayerIp(cid) == getPlayerIp(target) then
                        local pid, level = getPlayerGUID(cid), getPlayerLevel(cid)
                        doPlayerAddExperience(cid, -experience)
                end
        end
        return true
end

Obs: o script não foi testado.

 

Espero ter ajudado, até! ;)

JumentoCuzaum

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 24/01/11Posts: 245

O erro é simples, e está no seu script de anti-mc

function onKill(cid, target)
        if isPlayer(cid) and isPlayer(target) then
                if getPlayerIp(cid) == getPlayerIp(target) then
                        local pid, level = getPlayerGUID(cid), getPlayerLevel(cid)
                        doRemoveCreature(cid)
                        db.executeQuery("UPDATE `players` SET `level` = ".. level - 1 .." WHERE `id` = ".. pid ..";")
                end
        end
        return true
end

Você reduz o level diretamente no database, fazendo com que o HP/MP do personagem permaneçam o mesmo. Tente trocar pelo script abaixo.

 

Onde local experience, é o valor de experiencia que o player irá perder.

local experience = 10000

function onKill(cid, target)
        if isPlayer(cid) and isPlayer(target) then
                if getPlayerIp(cid) == getPlayerIp(target) then
                        local pid, level = getPlayerGUID(cid), getPlayerLevel(cid)
                        doPlayerAddExperience(cid, -experience)
                end
        end
        return true
end

Obs: o script não foi testado.

 

Espero ter ajudado, até! ;)

 

deu certo!!! :D valeu mesmo amigo muuuuuuuuuuuito obrigado!

 

Obs: Dei +REP nos dois! :)

cs007

Vim de longe
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 10/07/08Posts: 574Gênero: MasculinoChar no Tibia: Hebi Of Amera

Irei reporta para que movam seu tópico. Abraço

Beeki

Ex-Coordenador XDev
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 12/03/11Posts: 1900Gênero: MasculinoChar no Tibia: Nokte

Tópico movido para a seção de dúvidas e pedidos resolvidos.

Fabio Augustus - Infraestrutura

Skype: guhsvasc