KI
pedido

Script n funfa! Olhem aqui pf

Por Killua, 21 de ago. de 2013 em Scripts

resolvido
script
16
2.4k
KilluaK
21 de agosto de 2013 às 14:38

Eh o script que adiciona [VIP] na frente do nome dos players. Nao aparece nenhum erro no console, ele simplesmente nao funciona! Alguem me ajuda ae

function pegarNome(name)
return string.sub(name, 7)
end

 

 

function onLogin(cid) 
local name = getCreatureName(cid)
local nome = getPlayerGUID(cid)
 
getPlayerStorageValue(cid, 13546) <= 0 then
if string.sub(name, 1,6) == "[VIP] " then
return true
else
db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..name.."' WHERE `id`= " .. nome .. ";")
doPlayerSendTextMessage(cid,19,"Vc vai ser kikado em 10 segundos para editar seu nome.")
addEvent(doRemoveCreature,10000,cid)
end
else
if string.sub(name, 1,6) == "[VIP] " then
db.executeQuery("UPDATE `players` SET `name` = '"..pegarNome(getCreatureName(cid)).."' WHERE `id`= " .. nome .. ";")
doPlayerSendTextMessage(cid,19,"Vc vai ser kikado em 10 segundos para editar seu nome")
 
addEvent(doRemoveCreature,10000,cid)
end
 
end
return true
end

 

 

 

@EDIT Ja que ngm ajuda a arrumar esse, sera que tem simplesmente um jeito de remover o [VIP] antes do nome automaticamente dps de um certo tempo??

Pq por action da certo pra adicionar...

Editado Agosto 21 por amoeba13

RoksasR
21 de agosto de 2013 às 15:06

 

function onLogin(cid)
local name = getCreatureName(cid)
local nome = getPlayerGUID(cid)
 
if getPlayerStorageValue(cid, 13546) <= 0 then
if string.sub(name, 1, 6) == "[VIP] " then
return true
else
db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..name.."' WHERE `id`= " .. nome .. ";")
doPlayerSendTextMessage(cid, 19, "Vc vai ser kikado em 10 segundos para editar seu nome.")
addEvent(doRemoveCreature, 10 * 1000,cid)
end

return true
end

return true
end

Editado Agosto 21 por Roksas

KilluaK
21 de agosto de 2013 às 15:07

Vlw Roksas vou testa, mas assim ele n remove o nome dps ne?

 

@Edit

testei assim e tbm nao funcinou :/

Editado Agosto 21 por amoeba13

VodkartV
21 de agosto de 2013 às 18:59

to com pressa

vo te mostra como faz

if string.find(tostring(name),"[[Vip]]") then  
db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(name, 7).."' WHERE `id` = "..nome)
end

tem q kika e talz, só mostrei ae como fazer

Editado Agosto 21 por Vodkart

HelflinH
21 de agosto de 2013 às 19:06

As vezes pode dar erro no distro com a parada do db.executeQuery.... no caso alterar pra db.query...

brun123B
21 de agosto de 2013 às 20:32

não esquece de adicionar a tag no creaturescripts.xml

 

function onLogin(cid)
    local name = getCreatureName(cid)
    local guid = getPlayerGUID(cid)
    local isvip, vipname = getPlayerStorageValue(cid, 13546) > 0, string.sub(name, 1, 6) == "[VIP] "


    if isvip and not vipname or not isvip and vipname then
        for i = 1, 200 do
            doPlayerPopupFYI(cid, "Seu nome precisa ser atualizado!\nVocê será kickado em 3 segundos.")
        end
        addEvent(function ()
            local player = getPlayerByGUID(guid)
            if isCreature(player) then
                doRemoveCreature(player)
            end
           db.executeQuery("UPDATE `players` SET `name` = '".. (isvip and "[VIP] " or "") ..name.."' WHERE `id`= " .. guid .. ";")
        end, 3000)
    end


return true
end
KilluaK
21 de agosto de 2013 às 22:44

 

não esquece de adicionar a tag no creaturescripts.xml

 

function onLogin(cid)
    local name = getCreatureName(cid)
    local guid = getPlayerGUID(cid)
    local isvip, vipname = getPlayerStorageValue(cid, 13546) > 0, string.sub(name, 1, 6) == "[VIP] "


    if isvip and not vipname or not isvip and vipname then
        for i = 1, 200 do
            doPlayerPopupFYI(cid, "Seu nome precisa ser atualizado!\nVocê será kickado em 3 segundos.")
        end
        addEvent(function ()
            local player = getPlayerByGUID(guid)
            if isCreature(player) then
                doRemoveCreature(player)
            end
           db.executeQuery("UPDATE `players` SET `name` = '".. (isvip and "[VIP] " or "") ..name.."' WHERE `id`= " .. guid .. ";")
        end, 3000)
    end


return true
end

 

Valeu ai mano, mas ta dando esse erro:

 

Lua Script Error: [CreatureScript Interface]
in a timer event called from:
data/creaturescripts/scripts/vipname.lua:onLogin
 
data/creaturescripts/scripts/vipname.lua:12: attempt to call global 'getPlayerBy
GUID' (a nil value)
stack traceback:
        data/creaturescripts/scripts/vipname.lua:12: in function <data/creatures
cripts/scripts/vipname.lua:11>
Ai quando tento logar dnv o char da debug.
Valeu ai todos os outros que tao me ajudando

Editado Agosto 21 por amoeba13

Session StartS
21 de agosto de 2013 às 23:01

tenta trocar por isso

 

function onLogin(cid)
    local name = getCreatureName(cid)
    local guid = getPlayerGUID(cid)
    local isvip, vipname = getPlayerStorageValue(cid, 13546) > 0, string.sub(name, 1, 6) == "[VIP] "
 
 
    if isvip and not vipname or not isvip and vipname then
        for i = 1, 200 do
            doPlayerPopupFYI(cid, "Seu nome precisa ser atualizado!\nVocê será kickado em 3 segundos.")
        end
        addEvent(function ()
            local player = getPlayerGUID(guid)
            if isCreature(player) then
                doRemoveCreature(player)
            end
           db.executeQuery("UPDATE `players` SET `name` = '".. (isvip and "[VIP] " or "") ..name.."' WHERE `id`= " .. guid .. ";")
        end, 3000)
    end
 
 
return true
end
KilluaK
21 de agosto de 2013 às 23:11

 

tenta trocar por isso

function onLogin(cid)
    local name = getCreatureName(cid)
    local guid = getPlayerGUID(cid)
    local isvip, vipname = getPlayerStorageValue(cid, 13546) > 0, string.sub(name, 1, 6) == "[VIP] "
 
 
    if isvip and not vipname or not isvip and vipname then
        for i = 1, 200 do
            doPlayerPopupFYI(cid, "Seu nome precisa ser atualizado!\nVocê será kickado em 3 segundos.")
        end
        addEvent(function ()
            local player = getPlayerGUID(guid)
            if isCreature(player) then
                doRemoveCreature(player)
            end
           db.executeQuery("UPDATE `players` SET `name` = '".. (isvip and "[VIP] " or "") ..name.."' WHERE `id`= " .. guid .. ";")
        end, 3000)
    end
 
 
return true
end

 

Mas assim ja e outra funcao... So por garantia eu testei, nao deu debug e nem erro, simplesmente nao mudou o nome.

brun123B
21 de agosto de 2013 às 23:27

tenta assim:

 

function onLogin(cid)
    local name = getCreatureName(cid)
    local guid = getPlayerGUID(cid)
    local isvip, vipname = getPlayerStorageValue(cid, 13546) > 0, string.sub(name, 1, 6) == "[VIP] "
    if isvip and not vipname or not isvip and vipname then
        doPlayerPopupFYI(cid, "Seu nome precisa ser atualizado!\nVocê será kickado em 3 segundos.\nNão se esqueça de redigitar sua account e senha.")
        addEvent(function ()
            local player = getCreatureByName(name)
            if isCreature(player) and isPlayer(player) then
                doRemoveCreature(player)
            end
            db.executeQuery("UPDATE `players` SET `name` = '".. (isvip and ("[VIP] " .. name) or name:sub(7)) .. "' WHERE `id`= " .. guid .. ";")
        end, 3000)
    end
return true
end

Editado Agosto 22 por brun123

KilluaK
21 de agosto de 2013 às 23:30

 

tenta assim:

function onLogin(cid)
    local name = getCreatureName(cid)
    local guid = getPlayerGUID(cid)
    local isvip, vipname = getPlayerStorageValue(cid, 13546) > 0, string.sub(name, 1, 6) == "[VIP] "
 
 
    if isvip and not vipname or not isvip and vipname then
        for i = 1, 25 do
            doPlayerPopupFYI(cid, "Seu nome precisa ser atualizado!\nVocê será kickado em 3 segundos.")
        end
        addEvent(function ()
            local player = getCreatureByName(name)
            if isCreature(player) and isPlayer(player) then
                doRemoveCreature(player)
            end
           db.executeQuery("UPDATE `players` SET `name` = '".. (isvip and "[VIP] " or "") ..name.."' WHERE `id`= " .. guid .. ";")
        end, 3000)
    end
 
 
return true
end

Assim nao debuga nem da erro mas n acontece nada :S

Session StartS
21 de agosto de 2013 às 23:40

Tenta trocar o local player = getCreatureByName(name) por local player = guid

KilluaK
21 de agosto de 2013 às 23:58

Tenta trocar o local player = getCreatureByName(name) por local player = guid

N mudou nada :/

brun123B
22 de agosto de 2013 às 13:08

a script muda o nome do cara (adiciona [VIP]) se ele tiver o storage oou remove se ele tiver o [VIP] no nome e não possuir o storage

se você tá testando com um char sem o storage e sem o [VIP] no nome ou então com o storage e com o [VIP] no nome, realmente, nada vai acontecer

 

usa esse script:

 

function onLogin(cid)
    local name = getCreatureName(cid)
    local guid = getPlayerGUID(cid)
    local isvip, vipname = getPlayerStorageValue(cid, 13546) > 0, string.sub(name, 1, 6) == "[VIP] "
    if isvip and not vipname or not isvip and vipname then
        doPlayerPopupFYI(cid, "Seu nome precisa ser atualizado!\nVocê será kickado em 3 segundos.\nNão se esqueça de redigitar sua account e senha.")
        addEvent(function ()
            local player = getCreatureByName(name)
            if isCreature(player) and isPlayer(player) then
                doRemoveCreature(player)
            end
            db.executeQuery("UPDATE `players` SET `name` = '".. (isvip and ("[VIP] " .. name) or name:sub(7)) .. "' WHERE `id`= " .. guid .. ";")
        end, 3000)
    end
return true
end

Editado Agosto 22 por brun123

KilluaK
22 de agosto de 2013 às 13:16

a script muda o nome do cara (adiciona [VIP]) se ele tiver o storage oou remove se ele tiver o [VIP] no nome e não possuir o storage

se você tá testando com um char sem o storage e sem o [VIP] no nome ou então com o storage e com o [VIP] no nome, realmente, nada vai acontecer

Eu tava fazendo assim, mas eu tinha cometido um erro muito idiota.

 

Muito obrigado cara!

REP+ vc eh foda!