Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Resumo: Código funciona para distribuir Premium Account para jogadores que recém criaram a conta, uma forma de beneficiar e usufruir das vantagens de serem Premium no seu servidor!

 

Execute no seu banco de dados

 

ALTER TABLE `accounts` ADD `premiumgift` INT NOT NULL DEFAULT '0'

 

e no seu script do onLogin use desta maneira:

 

function onLogin(cid)
	local days = 3
	if db.getResult("SELECT `premiumgift` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid)):getDataInt("premiumgift") <= 0 then
		doPlayerAddPremiumDays(cid, days)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua account acabou de receber "..days.." dias de premium, boa diversão!")
		db.executeQuery("UPDATE `accounts` SET `premiumgift` = 1 WHERE `id` = "..getPlayerAccountId(cid))
	end
	return true
end

 

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Link para o post
Compartilhar em outros sites
  • 2 years later...
Em 05/09/2016 em 11:48, Vodkart disse:

tinha uma linha com um ' a mais, corrigido.

 

Desculpe se estou revivendo o tópico, mais aqui não esta funcionando. Não aparece nenhum erro na distro.

Uso OTX 2.3 (0.4)

 

 


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


function onLogin(cid)
 

    local loss = getConfigValue('deathLostPercent')
    if(loss ~= nil and getPlayerStorageValue(cid, "bless") ~= 5) then
        doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
    end

    if(getPlayerStorageValue(cid, "death_bless") == 1) then
        local t = {PLAYERLOSS_EXPERIENCE, PLAYERLOSS_SKILLS, PLAYERLOSS_ITEMS, PLAYERLOSS_CONTAINERS}
        for i = 1, #t do
            doPlayerSetLossPercent(cid, t, 100)
        end
        setPlayerStorageValue(cid, "death_bless", 0)
    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
        
function onLogin(cid)
    local days = 3
    if db.getResult("SELECT `premiumgift` FROM `accounts` WHERE `id = "..getPlayerAccountId(cid)):getDataInt("premiumgift") <= 0 then
        doPlayerAddPremiumDays(cid, days)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua account acabou de receber "..days.." dias de premium, boa diversão!")
        db.executeQuery("UPDATE `accounts` SET `premiumgift` = 1 WHERE `id` = "..getPlayerAccountId(cid))
    end
    return true
end        

        doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
    elseif(accountManager == MANAGER_NAMELOCK) then
        addEvent(valid(doCreatureSay), 500, cid, "Hello, it appears that your character has been locked for name violating rules, what new name would you like to have?", TALKTYPE_PRIVATE_NP, true, cid)
    elseif(accountManager == MANAGER_ACCOUNT) then
        addEvent(valid(doCreatureSay), 500, cid, "Hello, type {account} to manage your account. If you would like to start over, type {cancel} anywhere.", TALKTYPE_PRIVATE_NP, true, cid)
    else
        addEvent(valid(doCreatureSay), 500, cid, "Hello, type {account} to create an account or {recover} to recover an account.", TALKTYPE_PRIVATE_NP, true, cid)
    end

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

    registerCreatureEvent(cid, "Idle")
    registerCreatureEvent(cid, "Mail")
    if(getPlayerOperatingSystem(cid) >= CLIENTOS_OTCLIENT_LINUX) then
        registerCreatureEvent(cid, "ExtendedOpcode")
    end

    registerCreatureEvent(cid, "ReportBug")
    if(config.useFragHandler) then
        registerCreatureEvent(cid, "SkullCheck")
    end
    doPlayerOpenChannel(cid, 11)
    registerCreatureEvent(cid, "GuildEvents")
    registerCreatureEvent(cid, "AdvanceSave")
    registerCreatureEvent(cid, "recordIp")
    registerCreatureEvent(cid, "partyAndGuildProtection")
    registerCreatureEvent(cid, "lookvip")
    registerCreatureEvent(cid, "promo")
    registerCreatureEvent(cid, "TopEffect")
    registerCreatureEvent(cid, "CheckTop")
    registerCreatureEvent(cid, "noattack")
    registerCreatureEvent(cid, "onlinebonus")
    registerCreatureEvent(cid, "test")
    registerCreatureEvent(cid, "exp")
    registerCreatureEvent(cid, "anunciarmorte")
    registerCreatureEvent(cid, "firstitems")
    registerCreatureEvent(cid, "party")
    registerCreatureEvent(cid, "infos")
    registerCreatureEvent(cid, "IOE")
 
        
        
    return true
end
 

 

 

Editado por tetheuscunha (veja o histórico de edições)

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
12 horas atrás, Vodkart disse:

@tetheuscunha Não vai funcionar mesmo, colocou 2 função main juntas...

 

Quando eu tiro a função da um erro na distro. E se eu crio um arquivo tbm da erro.

 

distro.thumb.png.cc305e2ede5d9df05f4b770c12c4e04c.png

 

 

 

EDIT:

 

Arrumei estava faltando um ` na linha

if db.getResult("SELECT `premiumgift` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid)):getDataInt("premiumgift") <= 0 then

Editado por tetheuscunha (veja o histórico de edições)

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
  • 9 months later...

Olá, sou novo nesse lance de scripts e de otserv. Eu gostaria de saber em qual pasta eu tenho que colocar esse script, pois no meu servidor não tem essa pasta onLogin. E onde eu executo esse comando:

ALTER TABLE `accounts` ADD `premiumgift` INT NOT NULL DEFAULT '0'

Agradeço desde já e desculpe a minha ignorância.

Editado por Bigatinho (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 3 months later...

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 Vorkhon
      Ola tudo bom?! Eu quero fazer com que quando o monstro X for derrotado o player muda a outfit para o monstro X de forma permanente e que mudasse de classe. É possível?
       
      --------------------------------------------------------------------------------------
       
      Exemplo:

      Player mata minotauro.

      O player vira um minotauro (outfit) e muda de classe para minotauro. 
       
      --------------------------------------------------------------------------------------

      Dúvida: É possivel travar outfit por classe? Eu queria que o player nao mudasse de outfit que fosse fixo, mas por classe. 
       
    • Por Thony D. Serv
      tfs 0.4 (não testei em outras apenas na 0.4)
      Esse script eu fiz pois, meu servidor sempre que reiniciava todos os players voltavam sem bless, então para sanar isso eu fiz um check de bless pela database para poder sempre que cair o servidor os players não morressem sem bless e dropassem os itens
      vamos lá!

      Primeiro Execute Este Comando Em Sua Db:
       

      Va No Fim E Adicione
      050-function.lua 
       

      Agora vá no seu comando de Bless ou Npc e ponha cada um no seu devido lugar
       
       
      Agora Em Creaturescript/scripts Crie Uma Pasta Chamada Bless E Ponha La Dentro:

      blessingdeath.lua
       

      blessinglogin.lua
       

      Adicione Ambas No Login.lua
       
       
      Creaturescript.xml
       

      -- Creditos A Mim Mesmo hahaha. Espero Ajudar Vocês ?
    • Por FlameArcixt
      ?HORDER LEADER SYSTEM?
      Já vou me adiantando, fiz o script mas não sou programador, testei varias e varias vezes aqui e deu certo, se não der ai eu não ofereço suporte, sorry, se algum programador quiser melhorar o código fica a vontade.
      Como Funciona: Um monstro especial "Boss", quando você targeta nele, ele Cria vários outros monstros mais fracos para ajudar ele. só fiz esse script pra contribuir aqui no tk.
      ?Em data\creaturescript\creaturescript.xml registre?
      ?Em data\creaturescript\script crie um arquivo com nome "target.lua" e cole o código?
      ?Para isso funcionar, você deve registrar os eventos nos monstros que você for usar EX: ?
      O que mudei no script desde o beta? simples, agora só vai spawnar se o monstro levar dano, e a storage global só volta a -1 se o monstro morrer.
      Prováveis problemas? sim, o script foi feito para boss, ou seja, se tiver mais de dois boss no mapa pode dar problema, por exemplo, um boss é atacado e a storage fica ativada, mas ele não é morto então não desativa a storage, se você for matar o outro boss, os monstros não irão nascer, pois a storage já vai estar ativada, ou seja, deixe apenas um boss por vez.
      Só isso mesmo, suporte só com 10zão no pixpobre?
      Agradecimentos ao @Vodkart(Ajudou muito com erros/ediçoes).
    • Por So volto tarde
      O titúlo do tópico é bem auto explicativo, mas para garantir, segue um gif do funcionamento:

       
       
      Segue abaixo instruções para o funcionamento do código 
       
    • Por Babiloniaoz
      Boa galera, voltei com um projeto TFS 0.4 e percebi que quando a vip do player acabava ele não perdia a promotion. Acabei solucionando e vim compartilhar com a comunidade.
      OBS: Uso sistema de VIP por Account (Premium Account). Exemplo: O Epic Elite Knight ficava com a promotion mesmo sendo free, com este sistema, quando a VIP acabar, o player vai voltar para Elite Knight.
       
      Vá na pasta data/creaturescripts/scripts e abre o arquivo login.lua
       
      Em baixo de:
       
      Adicione:
       
      Explicação do código:
       
      Se ajudei deixe seu REP+
       
      Breve mais informações sobre o novo projeto. ?
      Se precisar de ajuda é só deixar seu coméntario.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo