Ir para conteúdo
  • Cadastre-se

Quest que ganha vip temporario


Posts Recomendados

Script de bau que ganha (VIP) no nome por 1 dia, e após passar 24 horas o char é kikado e removido o (VIP) do nome.

E a quest pode ser feita 1 vez a cada 15 dias

Link para o post
Compartilhar em outros sites

E qual seria o seu sistema de "vip"? Por premium days/storage/via database?
Informe o máximo que puder, se possível.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

E qual seria o seu sistema de "vip"? Por premium days/storage/via database?

Informe o máximo que puder, se possível.

Premium Days! Faz um com Premium Days!

Link para o post
Compartilhar em outros sites

E qual seria o seu sistema de "vip"? Por premium days/storage/via database?

Informe o máximo que puder, se possível.

 

storage, e só pra add (VIP) na frente do nome por 1 dia e depois sair, o q der pra fazer ai

tfs 0.4

8.60

sql

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

@ducb / @JcA
Nem sei bem no que eu estava pensando quando fiz essas perguntas..
Desculpem hahah foi por impulso. Não tem nada a ver, nem precisa informar sobre.

Tente:

vipnick.lua (data\actions\scripts):

function onUse(cid, fromPos, toPos)
    local time = 5 -- seconds to logout
    local qtime = {24, 15} -- {nickname duration in hours, quest exhaustion in days}
    local stor = {98765, 43210} -- {nickname storage, exhaust global storage}
    
    if getGlobalStorageValue(stor[2]) < os.time() then
        if getPlayerStorageValue(cid, stor[1]) < os.time() then
            setGlobalStorageValue(stor[2], os.time() + (qtime[2] * 86400))
            addEvent(function()
                if isPlayer(cid) then
                    setPlayerStorageValue(cid, stor[1], os.time() + (qtime[1] * 60 * 60))
                    db.executeQuery("UPDATE `players` SET `name` = '(VIP) "..getCreatureName(cid).."' WHERE `players`.`id`= "..getPlayerGUID(cid).."")
                    doRemoveCreature(cid, true)
                end
            end, time * 1000)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You\'ll be logged out within '..time..' seconds.')
        else
            doPlayerSendCancel(cid, 'You already have the (VIP) nickname.')
        end
    else
        doPlayerSendCancel(cid, 'The quest can only be done once every '..qtime[2]..' days.')
    end
    
    return true
end




Tag - actions.xml (data\actions):

<action actionid="ACTIONID" script="vipnick.lua"/>



vipnick.lua (data\creaturescripts\scripts):

function onLogout(cid)
    local stor = 98765 -- nickname storage
    
    if getPlayerStorageValue(cid, stor) < os.time and getCreatureName(cid):find('VIP') then
        db.executeQuery("UPDATE `players` SET `name` = '"..getCreatureName(cid):sub(7).."' WHERE `players`.`id`= "..getPlayerGUID(cid).."")
    end
    
    return true
end




Tag - creaturescripts.xml (data\creaturescripts):

<event type="logout" name="VipNick" event="script" value="vipnick.lua"/>
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

precisa por algum regist no login,lua?

Nesse caso, não. Callback onLogout não registra creature event.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
deu erro ao clicar no bau

Errei o nome da função por acidente, já corrigi.

Substitua o script.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
db.executeQuery("UPDATE `players` SET `name` = '"..getCreatureName(cid).."' WHERE `players`.`id`= "..getPlayerGUID(cid).."")
Dessa maneira, o nick do cara continuaria o mesmo, não?
O correto, suponho, seria:
local new_nick = getCreatureName(cid):gsub("(VIP) ", "")
db.executeQuery("UPDATE `players` SET `name` = '"..new_nick.."' WHERE `players`.`id`= "..getPlayerGUID(cid).."")
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites
db.executeQuery("UPDATE `players` SET `name` = '"..getCreatureName(cid).."' WHERE `players`.`id`= "..getPlayerGUID(cid).."")
Dessa maneira, o nick do cara continuaria o mesmo, não?

O correto, suponho, seria:

local new_nick = getCreatureName(cid):gsub("(VIP) ", "")
db.executeQuery("UPDATE `players` SET `name` = '"..new_nick.."' WHERE `players`.`id`= "..getPlayerGUID(cid).."")

É, você está certo enquanto ao meu erro, obrigado por citar. Agora vamos falar sobre o seu.

Utilizando o metamétodo gsub, não vai dar certo. Ele vai interpretar () como sendo caracteres mágicos.

Irá dar certo desse modo, usando sub:

db.executeQuery("UPDATE `players` SET `name` = '"..getCreatureName(cid):sub(7).."' WHERE `players`.`id`= "..getPlayerGUID(cid).."")

The corrupt fear us.

The honest support us.

The heroic join us.

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