Ir para conteúdo
  • Cadastre-se

Pedido Tirar vocation e botar por storage


Posts Recomendados

Esse scritp funciona com vocation, gostaria por gentileza que tirasse por vocation e adicionasse por STORAGE. Caso o player tem a storage ficaraia saindo o efeito TEXT.

desde de ja, muito grato !


 

Citar

local tab = {
    [4] = 10, -- [vocationID] = número da cor do texto animado
    [5] = 30,
    [6] = 50,
    [7] = 70
}

function ariseText(cid)
    if not isPlayer(cid) then -- Verifica se o jogador ainda é válido
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local playerVocation = getPlayerVocation(cid)
    
    if playerVocation and tab[playerVocation] then
        doSendAnimatedText(getCreaturePosition(cid), texts[math.random(1, #texts)], tab[playerVocation])
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) -- Efeito mágico adicionado
    end
    
    addEvent(ariseText, 1000, cid)
    
    return true
end

function onLogin(cid)
    if tab[getPlayerVocation(cid)] then
        ariseText(cid)
    end
    
    return true
end

 

Link para o post
Compartilhar em outros sites
local tab = {
    [4] = 10, -- [storageValue] = número da cor do texto animado
    [5] = 30,
    [6] = 50,
    [7] = 70
}

function ariseText(cid)
    if not isPlayer(cid) then
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local playerStorage = getPlayerStorageValue(cid, STORAGE)
    
    if playerStorage and tab[playerStorage] then
        doSendAnimatedText(getCreaturePosition(cid), texts[math.random(1, #texts)], tab[playerStorage])
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
    end
    
    addEvent(ariseText, 1000, cid)
    
    return true
end

function onLogin(cid)
    if tab[getPlayerStorageValue(cid, STORAGE)] then
        ariseText(cid)
    end
    
    return true
end

Basta substituir o valor da variável "storage" pelo número correspondente ao storage do seu servidor.

[4] = 10

4 é o storage

10 é a cor do texto animado.

Deve funcionar, espero ter ajudado.

Editado por Vortex (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
57 minutos atrás, Vortex disse:

local tab = {
    [4] = 10, -- [storageValue] = número da cor do texto animado
    [5] = 30,
    [6] = 50,
    [7] = 70
}

function ariseText(cid)
    if not isPlayer(cid) then
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local playerStorage = getPlayerStorageValue(cid, STORAGE)
    
    if playerStorage and tab[playerStorage] then
        doSendAnimatedText(getCreaturePosition(cid), texts[math.random(1, #texts)], tab[playerStorage])
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
    end
    
    addEvent(ariseText, 1000, cid)
    
    return true
end

function onLogin(cid)
    if tab[getPlayerStorageValue(cid, STORAGE)] then
        ariseText(cid)
    end
    
    return true
end

Basta substituir o valor da variável "storage" pelo número correspondente ao storage do seu servidor.

[4] = 10

4 é o storage

10 é a cor do texto animado.

Deve funcionar, espero ter ajudado.

Não funcioniu n irmão ! =[

Link para o post
Compartilhar em outros sites
local storageValues = {
    [1234] = 10, -- Cor 1
    [12345] = 30, -- Cor 2
    [12346] = 50, -- Cor 3
    [123457] = 70  -- Cor 4
}

function ariseText(cid)
    if not isPlayer(cid) then
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local playerStorage = getPlayerStorageValue(cid)
    
    if storageValues[playerStorage] then
        local text = texts[math.random(1, #texts)]
        local color = storageValues[playerStorage]
        
        doSendAnimatedText(getCreaturePosition(cid), text, color)
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
    end
    
    addEvent(ariseText, 1000, cid)
    
    return true
end

function onLogin(cid)
    local playerStorage = getPlayerStorageValue(cid)
    if storageValues[playerStorage] then
        ariseText(cid)
    end
    
    return true
end

Ajustei o código com o valor "1234" para representar o storage. Basta você substituir esse valor pelo storage específico do seu servidor.



Faça o teste e verifique os erros que aparecerem no console e compartilhe-os aqui para que eu possa ver.

Link para o post
Compartilhar em outros sites
24 minutos atrás, Vortex disse:

local storageValues = {
    [1234] = 10, -- Cor 1
    [12345] = 30, -- Cor 2
    [12346] = 50, -- Cor 3
    [123457] = 70  -- Cor 4
}

function ariseText(cid)
    if not isPlayer(cid) then
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local playerStorage = getPlayerStorageValue(cid)
    
    if storageValues[playerStorage] then
        local text = texts[math.random(1, #texts)]
        local color = storageValues[playerStorage]
        
        doSendAnimatedText(getCreaturePosition(cid), text, color)
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
    end
    
    addEvent(ariseText, 1000, cid)
    
    return true
end

function onLogin(cid)
    local playerStorage = getPlayerStorageValue(cid)
    if storageValues[playerStorage] then
        ariseText(cid)
    end
    
    return true
end

Ajustei o código com o valor "1234" para representar o storage. Basta você substituir esse valor pelo storage específico do seu servidor.



Faça o teste e verifique os erros que aparecerem no console e compartilhe-os aqui para que eu possa ver.

Deu o seguinte error !

[9:49:53.615] [Error - CreatureScript Interface]
[9:49:53.616] data/creaturescripts/scripts/voc.lua:onLogin
[9:49:53.617] Description:
[9:49:53.618] (luaGetCreatureStorage) Creature not found

Link para o post
Compartilhar em outros sites
local storageValues = {
    [xxx] = 10, -- Cor 1
    [xxx] = 30, -- Cor 2
    [xxx] = 50, -- Cor 3
    [xxx] = 70  -- Cor 4
}

function ariseText(cid)
    if not isPlayer(cid) then
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local playerStorage = getPlayerStorageValue(cid)
    
    if storageValues[playerStorage] then
        local text = texts[math.random(1, #texts)]
        local color = storageValues[playerStorage]
        
        doSendAnimatedText(getCreaturePosition(cid), text, color)
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
    end
    
    addEvent(ariseText, 1000, cid)
    
    return true
end

function onLogin(cid)
    if isPlayer(cid) then
        local playerStorage = getPlayerStorageValue(cid)
        if storageValues[playerStorage] then
            ariseText(cid)
        end
    end
    
    return true
end

 

Link para o post
Compartilhar em outros sites
1 hora atrás, Vortex disse:

local storageValues = {
    [xxx] = 10, -- Cor 1
    [xxx] = 30, -- Cor 2
    [xxx] = 50, -- Cor 3
    [xxx] = 70  -- Cor 4
}

function ariseText(cid)
    if not isPlayer(cid) then
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local playerStorage = getPlayerStorageValue(cid)
    
    if storageValues[playerStorage] then
        local text = texts[math.random(1, #texts)]
        local color = storageValues[playerStorage]
        
        doSendAnimatedText(getCreaturePosition(cid), text, color)
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
    end
    
    addEvent(ariseText, 1000, cid)
    
    return true
end

function onLogin(cid)
    if isPlayer(cid) then
        local playerStorage = getPlayerStorageValue(cid)
        if storageValues[playerStorage] then
            ariseText(cid)
        end
    end
    
    return true
end

 

Error...

[11:7:13.846] [Error - CreatureScript Interface]
[11:7:13.847] data/creaturescripts/scripts/voc.lua
[11:7:13.847] Description:
[11:7:13.848] data/creaturescripts/scripts/voc.lua:3: table index is nil
[11:7:13.848] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/voc.lua)

Link para o post
Compartilhar em outros sites
9 horas atrás, Doidodepeda disse:

Esse scritp funciona com vocation, gostaria por gentileza que tirasse por vocation e adicionasse por STORAGE. Caso o player tem a storage ficaraia saindo o efeito TEXT.

desde de ja, muito grato !


 

 

 

 

Seria tipo isso?

 

data > creaturescripts > creaturescripts.xml

 

	<event type="login" name="playerTextEffect" event="script" value="playerTextEffect.lua"/>

 

 

data > creaturescripts > scripts > playerTextEffect.lua

 

local config = {
   storage     = 808072, -- Storage que o player precisa ter.
   colorsText  = {10, 30, 50, 70}, -- valores que o player poderá ter no storage (cada valor corresponde a uma coloração diferente de texto)
   texts       = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."} -- Textos que ficará saindo do jogador.
}

function ariseText(cid) 

   if not isPlayer(cid) then
      return true
   end
   
   local playerColorTextEffect = getPlayerStorageValue(cid, config.storage)
   
   if not isInArray(config.colorsText, playerColorTextEffect) then
      return true
   end

   local playerPosition   = getCreaturePosition(cid)
   local randomTextEffect = config.texts[math.random(1, #config.texts)]

   doSendAnimatedText(playerPosition, randomTextEffect, playerColorTextEffect)
   doSendMagicEffect(playerPosition, CONST_ME_MAGIC_GREEN) -- Efeito mágico adicionado

   addEvent(ariseText, 1000, cid)

   return true

end

function onLogin(cid)
   ariseText(cid)
   return true
end

 

Link para o post
Compartilhar em outros sites
  • Sub-Admin

123 é  a storage que o player deverá ter

 

local storageValue = 123 -- Valor da storage específica que indica se o efeito deve ser ativado ou não

function ariseText(cid)
    if not isPlayer(cid) then -- Verifica se o jogador ainda é válido
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    
    if getPlayerStorageValue(cid, storageValue) > 0 then
        doSendAnimatedText(getCreaturePosition(cid), texts[math.random(1, #texts)], math.random(1, 255))
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) -- Efeito mágico adicionado
    end
    
    addEvent(ariseText, 1000, cid)
    
    return true
end

function onLogin(cid)
    if getPlayerStorageValue(cid, storageValue) > 0 then
        ariseText(cid)
    end
    
    return true
end
 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
18 minutos atrás, L3K0T disse:

123 é  a storage que o player deverá ter

 

local storageValue = 123 -- Valor da storage específica que indica se o efeito deve ser ativado ou não

function ariseText(cid)
    if not isPlayer(cid) then -- Verifica se o jogador ainda é válido
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    
    if getPlayerStorageValue(cid, storageValue) > 0 then
        doSendAnimatedText(getCreaturePosition(cid), texts[math.random(1, #texts)], math.random(1, 255))
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) -- Efeito mágico adicionado
    end
    
    addEvent(ariseText, 1000, cid)
    
    return true
end

function onLogin(cid)
    if getPlayerStorageValue(cid, storageValue) > 0 then
        ariseText(cid)
    end
    
    return true
end
 

Amigo, ele ta funciondo e nao deu error no console, o problema é,q quando acabar a storage o efeito nao sai.

Link para o post
Compartilhar em outros sites
  • Sub-Admin

Duração de 10 minutos pode alterar o tempo, ao acabar o tempo o efeito para de sair e o player perde a storage, ela só poderá ser ganha novamente com algum sistema que vc deve ta fazebdo.

 

 

 

local storageValue = 123 -- Valor da storage específica que indica se o efeito deve ser ativado ou não
local effectDuration = 10 * 60 -- Duração do efeito em segundos (10 minutos)

function ariseText(cid)
    if not isPlayer(cid) then -- Verifica se o jogador ainda é válido
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local storageEnd = getPlayerStorageValue(cid, storageValue)
    
    if storageEnd > os.time() then
        doSendAnimatedText(getCreaturePosition(cid), texts[math.random(1, #texts)], math.random(1, 255))
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) -- Efeito mágico adicionado
        addEvent(ariseText, 1000, cid)
    else
        setPlayerStorageValue(cid, storageValue, 0) -- Remove a storage quando o efeito expirar
    end
    
    return true
end

function onLogin(cid)
    local storageEnd = getPlayerStorageValue(cid, storageValue)
    
    if storageEnd > os.time() then
        ariseText(cid)
    else
        setPlayerStorageValue(cid, storageValue, os.time() + effectDuration) -- Define o tempo de término do efeito
        ariseText(cid)
    end
    
    return true
end
 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
6 horas atrás, L3K0T disse:

Duração de 10 minutos pode alterar o tempo, ao acabar o tempo o efeito para de sair e o player perde a storage, ela só poderá ser ganha novamente com algum sistema que vc deve ta fazebdo.

 

 

 

local storageValue = 123 -- Valor da storage específica que indica se o efeito deve ser ativado ou não
local effectDuration = 10 * 60 -- Duração do efeito em segundos (10 minutos)

function ariseText(cid)
    if not isPlayer(cid) then -- Verifica se o jogador ainda é válido
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local storageEnd = getPlayerStorageValue(cid, storageValue)
    
    if storageEnd > os.time() then
        doSendAnimatedText(getCreaturePosition(cid), texts[math.random(1, #texts)], math.random(1, 255))
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) -- Efeito mágico adicionado
        addEvent(ariseText, 1000, cid)
    else
        setPlayerStorageValue(cid, storageValue, 0) -- Remove a storage quando o efeito expirar
    end
    
    return true
end

function onLogin(cid)
    local storageEnd = getPlayerStorageValue(cid, storageValue)
    
    if storageEnd > os.time() then
        ariseText(cid)
    else
        setPlayerStorageValue(cid, storageValue, os.time() + effectDuration) -- Define o tempo de término do efeito
        ariseText(cid)
    end
    
    return true
end
 

local effectDuration = 10 * 60 -- Duração do efeito em segundos (10 minutos)

tem q funcionar sem tempo irmao, quando o player tiver a storage ele vai ganhar e o efeito TEXT, ai quando ele nao tiver mais o o storage nao vai sair mais o efeito TEXT

Link para o post
Compartilhar em outros sites
  • Sub-Admin

local storageValue = 123 -- Valor da storage específica que indica se o efeito deve ser ativado ou não

function ariseText(cid)
    if not isPlayer(cid) then -- Verifica se o jogador ainda é válido
        return true
    end
    
    local texts = {"' .    ,", ".    ' ,", "'  .  ,", ",    ' ."}
    local storage = getPlayerStorageValue(cid, storageValue)
    
    if storage > 1 then
        doSendAnimatedText(getCreaturePosition(cid), texts[math.random(1, #texts)], math.random(1, 255))
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) -- Efeito mágico adicionado
        addEvent(ariseText, 1000, cid)
    end
    
    return true
end

function onLogin(cid)
    local storage = getPlayerStorageValue(cid, storageValue)
    
    if storage > 1 then
        ariseText(cid)
    else
        setPlayerStorageValue(cid, storageValue, 0) -- Remove a storage quando o efeito expirar
    end
    
    return true
end
 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

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.

  • Conteúdo Similar

    • Por LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo