Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Hi

 

Tenho um script aqui que o player mata um boss, toda guild daquele player que matou ganha o granEffect, porem quando outra guild mata o boss, a que tinha antes tem que perder o granEffect na hora que outra guild matasse só que não está perdendo, perde só depois que reloga o character.

 

Script:

local function Teleport(cid)
 
doSendAnimatedText(getPlayerPosition(cid), "Aaaaah...", TEXTCOLOR_BLUE)
 
local templo = {x=442, y=549, z=7}
 
for j = 0, 60 do
starting = {x=839 + j, y=952, z=7, stackpos=253}
 
for i = 0, 60 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid, templo)
end
 
end
 
end
 
for j = 0, 61 do
starting = {x=1128 + j, y=1120, z=6, stackpos=253}
 
for i = 0, 6 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 14 do
starting = {x=1151 + j, y=1115, z=6, stackpos=253}
 
for i = 0, 5 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 14 do
starting = {x=1151 + j, y=1127, z=6, stackpos=253}
 
for i = 0, 5 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 49 do
starting = {x=1134 + j, y=1120, z=5, stackpos=253}
 
for i = 0, 6 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 14 do
starting = {x=1151 + j, y=1115, z=5, stackpos=253}
 
for i = 0, 5 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 14 do
starting = {x=1151 + j, y=1127, z=5, stackpos=253}
 
for i = 0, 5 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
return TRUE
end
 
function onKill(cid, target, lastHit)
 
local monstros ={"Gran Tower","gran tower"}
 
if getCreatureTarget(cid) ~= 0 then
if isMonster(target) == TRUE then
for i = 1, 2 do
nome = getCreatureName(getCreatureTarget(cid))
if (nome == monstros[i]) then
if getPlayerStorageValue(cid, 13340) ~= 1 then
setGlobalStorageValue(13340, getPlayerGuildId(cid))
granEffect(cid)
if getPlayerStorageValue(cid, 13340) == 0 then
stopEvent(granEffect[cid])
doSendMagicEffect(getCreaturePosition(cid), 47)
broadcastMessage("O player ".. getPlayerName(cid) .." conquistou o Gran Castle, e todos membros da guild ".. getPlayerGuildName(cid) .." acabam de receber a Gran Aura.")
end
addEvent(Teleport, 1000, cid)
end
end
end
end
end
 
return TRUE
end
 
A parte que eu adicionei foi essa pra parar o granEffect:
if getPlayerStorageValue(cid, 13340) == 0 then
stopEvent(granEffect[cid])
 
Só que mesmo assim continua o efeito nos chares, se alguem pudesse me ajudar pois ja tentei de tudo :x
Editado por Rofl (veja o histórico de edições)

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

Olha, a principio já estou vendo um erro.

Você definiu stopEvent(granEffect[cid]) o certo seria stopEvent(granEffect(cid)).

Verifica se o erro permanece.

Atenciosamente,

Bruno Minervino

Link para o post
Compartilhar em outros sites

Opa valeu por responder.

 

Então eu alterei como você disse, coloquei:

stopEvent(granEffect(cid))
Continua mesma coisa, peguei um char de outra guild e matei mas a guild que tinha a granEffect ainda continuou.
Editado por Rofl (veja o histórico de edições)

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

Elwyn

 

Data/lib/granAura.lua:

local events = {}
 
local function getPositions(cid)
local pos = getCreaturePosition(cid)
local ret = {
[1] = {x = pos.x + 1, y = pos.y, z = pos.z},
[2] = {x = pos.x, y = pos.y + 1, z = pos.z},
[3] = {x = pos.x - 1, y = pos.y, z = pos.z},
[4] = {x = pos.x, y = pos.y - 1, z = pos.z},
}
return ret
end
 
function granEffect(cid, last)
 
local sec = 200
if (isPlayer(cid) == FALSE) then
return false
end
 
local positions = getPositions(cid)
local last = last or 1
local last = (positions[last] and last) or 1
local next = (last == #positions) and 1 or last + 1
doSendDistanceShoot(positions[last], positions[next], 18)
local event = addEvent(granEffect, sec, cid, last + 1)
events[cid] = event
return true
end
 
Data/ib/constant.lua:
dofile('data/lib/granAura.lua')
 
Data/lib/function.lua:
dofile('data/lib/granAura.lua')
 
:)
Editado por Rofl (veja o histórico de edições)

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

Não funcionou Elwyn

 

 

Quando o player mata a boss não está mandando a mensagem pro server e tambem não retirou o granEffect do player que era pra perder.

 

Será que o erro não está nesta linha:

 

if getPlayerStorageValue(cid, 13340) == 0 then

 

?

 

Quando uma guild mata a boss e outra guild que tinha a storage 13340 fica realmente zerada?

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

Você mudou algo a mais. Mande o script de como está agora. Ou é possível que tenha dado erro no console. Veja se tem algum erro no console.

Editado por elwyn (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

PS: Não deu erro no console.

local function Teleport(cid)
 
doSendAnimatedText(getPlayerPosition(cid), "Aaaaah...", TEXTCOLOR_BLUE)
 
local templo = {x=442, y=549, z=7}
 
for j = 0, 60 do
starting = {x=839 + j, y=952, z=7, stackpos=253}
 
for i = 0, 60 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid, templo)
end
 
end
 
end
 
for j = 0, 61 do
starting = {x=1128 + j, y=1120, z=6, stackpos=253}
 
for i = 0, 6 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 14 do
starting = {x=1151 + j, y=1115, z=6, stackpos=253}
 
for i = 0, 5 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 14 do
starting = {x=1151 + j, y=1127, z=6, stackpos=253}
 
for i = 0, 5 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 49 do
starting = {x=1134 + j, y=1120, z=5, stackpos=253}
 
for i = 0, 6 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 14 do
starting = {x=1151 + j, y=1115, z=5, stackpos=253}
 
for i = 0, 5 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
for j = 0, 14 do
starting = {x=1151 + j, y=1127, z=5, stackpos=253}
 
for i = 0, 5 do
checking={x=starting.x, y=starting.y + i, z=starting.z, stackpos=starting.stackpos}
creature= getThingfromPos(checking)
 
if isPlayer(creature.uid) == TRUE then
doTeleportThing(creature.uid,templo)
end
 
end
 
end
 
return TRUE
end
 
function onKill(cid, target, lastHit)
 
local monstros ={"Gran Tower","gran tower"}
 
if getCreatureTarget(cid) ~= 0 then
if isMonster(target) == TRUE then
for i = 1, 2 do
nome = getCreatureName(getCreatureTarget(cid))
if (nome == monstros[i]) then
if getPlayerStorageValue(cid, 13340) ~= 1 then
setGlobalStorageValue(13340, getPlayerGuildId(cid))
granEffect(cid)
if getPlayerStorageValue(cid, 13340) == 0 then
stopEvent(events[cid])
doSendMagicEffect(getCreaturePosition(cid), 47)
broadcastMessage("O player ".. getPlayerName(cid) .." conquistou o Gran Castle, e todos membros da guild ".. getPlayerGuildName(cid) .." acabam de receber a Gran Aura.")
end
addEvent(Teleport, 1000, cid)
end
end
end
end
end
 
return TRUE
end
Editado por Rofl (veja o histórico de edições)

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

up

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

Nossa, desculpa. Tinha esquecido dessa dúvida. Me mande PM pra eu te adicionar skype e te ajudar melhor.

Teste o script agora e me mande todos os prints que deu no console:

 

local function Teleport(cid)
    doSendAnimatedText(getPlayerPosition(cid), "Aaaaah...", TEXTCOLOR_BLUE)

    local templo = {x = 442, y = 549, z = 7}

    for j = 0, 60 do
        starting = {x = 839 + j, y = 952, z = 7, stackpos = 253}

        for i = 0, 60 do
            checking = {x = starting.x, y = starting.y + i, z = starting.z, stackpos = starting.stackpos}
            creature = getThingfromPos(checking)

            if isPlayer(creature.uid) then
                doTeleportThing(creature.uid, templo)
            end
        end
    end

    for j = 0, 61 do
        starting = {x = 1128 + j, y = 1120, z = 6, stackpos = 253}

        for i = 0, 6 do
            checking = {x = starting.x, y = starting.y + i, z = starting.z, stackpos = starting.stackpos}
            creature = getThingfromPos(checking)

            if isPlayer(creature.uid) then
                doTeleportThing(creature.uid, templo)
            end
        end
    end

    for j = 0, 14 do
        starting = {x = 1151 + j, y = 1115, z = 6, stackpos = 253}

        for i = 0, 5 do
            checking = {x = starting.x, y = starting.y + i, z = starting.z, stackpos = starting.stackpos}
            creature = getThingfromPos(checking)

            if isPlayer(creature.uid) then
                doTeleportThing(creature.uid, templo)
            end
        end
    end

    for j = 0, 14 do
        starting = {x = 1151 + j, y = 1127, z = 6, stackpos = 253}

        for i = 0, 5 do
            checking = {x = starting.x, y = starting.y + i, z = starting.z, stackpos = starting.stackpos}
            creature = getThingfromPos(checking)

            if isPlayer(creature.uid) then
                doTeleportThing(creature.uid, templo)
            end
        end
    end

    for j = 0, 49 do
        starting = {x = 1134 + j, y = 1120, z = 5, stackpos = 253}

        for i = 0, 6 do
            checking = {x = starting.x, y = starting.y + i, z = starting.z, stackpos = starting.stackpos}
            creature = getThingfromPos(checking)

            if isPlayer(creature.uid) then
                doTeleportThing(creature.uid, templo)
            end
        end
    end

    for j = 0, 14 do
        starting = {x = 1151 + j, y = 1115, z = 5, stackpos = 253}

        for i = 0, 5 do
            checking = {x = starting.x, y = starting.y + i, z = starting.z, stackpos = starting.stackpos}
            creature = getThingfromPos(checking)

            if isPlayer(creature.uid) then
                doTeleportThing(creature.uid, templo)
            end
        end
    end

    for j = 0, 14 do
        starting = {x = 1151 + j, y = 1127, z = 5, stackpos = 253}

        for i = 0, 5 do
            checking = {x = starting.x, y = starting.y + i, z = starting.z, stackpos = starting.stackpos}
            creature = getThingfromPos(checking)

            if isPlayer(creature.uid) then
                doTeleportThing(creature.uid, templo)
            end
        end
    end

    return true
end

function onKill(cid, target, lastHit)
    local monstros = {
            "Gran Tower",
            "gran tower"
        }

    local nome = getCreatureTarget(cid) and getCreatureName(getCreatureTarget(cid)) or ""

    print("Creatuer name: " .. nome)

    if isInArray(monstros, nome) and isMonster(target) then
        if getPlayerStorageValue(cid, 13340) ~= 1 then
            print("Player storage ~= 1")

            setGlobalStorageValue(13340, getPlayerGuildId(cid))
            granEffect(cid)

            if getPlayerStorageValue(cid, 13340) == 0 then
                print("Player storage == 0")

                stopEvent(events[cid])

                print("Error? " .. events[cid])

                doSendMagicEffect(getCreaturePosition(cid), 47)
                broadcastMessage("O player ".. getPlayerName(cid) .." conquistou o Gran Castle, e todos membros da guild ".. getPlayerGuildName(cid) .." acabam de receber a Gran Aura.")
            end

            addEvent(Teleport, 1000, cid)
        end
    end

    return true
end
Editado por elwyn (veja o histórico de edições)
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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo