Ir para conteúdo

Rudkiller

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Rudkiller recebeu reputação de Peixola em [action]Desintegrate Rune que remove magic wall!   
    Saudações, visitantes do tópico. 
     
    Hoje trago pra vocês um script de action que vai fazer com que suas Desintegrate Runes removam magic walls!
    Tem que ser por action, portanto removam a linha da desintegrate rune em sua spells.xml (a linha da runa, não da spell que cria/encanta ela).
     
    Em
    data\actions\scripts
    crie um arquivo com extensão .lua e adicione o seguinte conteúdo:
    function onUse(cid, item, frompos, item2, topos)
    local playermagiclevel = getPlayerMagLevel(cid)
    if playermagiclevel < 5 then
    doPlayerSendTextMessage(cid,24,'You need to be magic level 5 or higher to use desintegrate runes!')
    elseif isCreature(item2.uid) == FALSE and isMoveable(item2.uid) == TRUE then
    doRemoveItem(item2.uid)
    doRemoveItem(item.uid)
    doSendMagicEffect(topos, CONST_ME_GIFT_WRAPS)
    doSendDistanceShoot(getCreaturePosition(cid), topos, CONST_ANI_ENERGY)
    return 1
    elseif item2.uid == cid then
    doPlayerSendTextMessage(cid,24,'You can not use desintegrate runes on yourself!')
    elseif item2.itemid == 1497 then
    doRemoveItem(item2.uid)
    doRemoveItem(item.uid)
    doSendMagicEffect(topos, CONST_ME_GIFT_WRAPS)
    doSendDistanceShoot(getCreaturePosition(cid), topos, CONST_ANI_ENERGY)
    else
    doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
    return 0
    end
    end
    --[[
    Desintegrate Rune (action) por Rudkiller.
    Com esse script a desintegrate não requer level para ser usada, apenas magic level.
    A função da desintegrate foi modificada para que ela possa ser usada a qualquer distância, tenha um efeito de tiro e possa remover magic walls!
    Não se esqueça do actions.xml: <action itemid="2310" script="nome_do_seu_script.lua" allowfaruse="1"/>
    ]] O resto está explicado no próprio script. Lembrem-se vocês podem mudar o limite de magic level apenas trocando o número dessa linha: 

    if playermagiclevel < 5 then
    Olhem o vídeo demonstrando o funcionamento da runa:
    https://www.youtube.com/watch?v=Nijuq4dIB6k&feature=youtu.be
     
    (gravei e postei esse vídeo só pra mostra pra vocês o bagulho )
    -- Testado em Alissow Server 8.54 Talvez funcione em todas as versões do 8.4 ao 8.54. Lembre-se: A runa vai ser removida, mesmo que ela tenha charges!
    Se divirtam!
  2. Gostei
    Rudkiller recebeu reputação de seminu em Tirar a fala do Player da Spell   
    Meu amigo é muito simples, vai na sua config.lua e edite essas linhas:

    spellNameInsteadOfWords = false emoteSpells = false
  3. Gostei
    Rudkiller recebeu reputação de Ragnar Lothbrook em [action]Desintegrate Rune que remove magic wall!   
    Saudações, visitantes do tópico. 
     
    Hoje trago pra vocês um script de action que vai fazer com que suas Desintegrate Runes removam magic walls!
    Tem que ser por action, portanto removam a linha da desintegrate rune em sua spells.xml (a linha da runa, não da spell que cria/encanta ela).
     
    Em
    data\actions\scripts
    crie um arquivo com extensão .lua e adicione o seguinte conteúdo:
    function onUse(cid, item, frompos, item2, topos)
    local playermagiclevel = getPlayerMagLevel(cid)
    if playermagiclevel < 5 then
    doPlayerSendTextMessage(cid,24,'You need to be magic level 5 or higher to use desintegrate runes!')
    elseif isCreature(item2.uid) == FALSE and isMoveable(item2.uid) == TRUE then
    doRemoveItem(item2.uid)
    doRemoveItem(item.uid)
    doSendMagicEffect(topos, CONST_ME_GIFT_WRAPS)
    doSendDistanceShoot(getCreaturePosition(cid), topos, CONST_ANI_ENERGY)
    return 1
    elseif item2.uid == cid then
    doPlayerSendTextMessage(cid,24,'You can not use desintegrate runes on yourself!')
    elseif item2.itemid == 1497 then
    doRemoveItem(item2.uid)
    doRemoveItem(item.uid)
    doSendMagicEffect(topos, CONST_ME_GIFT_WRAPS)
    doSendDistanceShoot(getCreaturePosition(cid), topos, CONST_ANI_ENERGY)
    else
    doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
    return 0
    end
    end
    --[[
    Desintegrate Rune (action) por Rudkiller.
    Com esse script a desintegrate não requer level para ser usada, apenas magic level.
    A função da desintegrate foi modificada para que ela possa ser usada a qualquer distância, tenha um efeito de tiro e possa remover magic walls!
    Não se esqueça do actions.xml: <action itemid="2310" script="nome_do_seu_script.lua" allowfaruse="1"/>
    ]] O resto está explicado no próprio script. Lembrem-se vocês podem mudar o limite de magic level apenas trocando o número dessa linha: 

    if playermagiclevel < 5 then
    Olhem o vídeo demonstrando o funcionamento da runa:
    https://www.youtube.com/watch?v=Nijuq4dIB6k&feature=youtu.be
     
    (gravei e postei esse vídeo só pra mostra pra vocês o bagulho )
    -- Testado em Alissow Server 8.54 Talvez funcione em todas as versões do 8.4 ao 8.54. Lembre-se: A runa vai ser removida, mesmo que ela tenha charges!
    Se divirtam!
  4. Gostei
    Rudkiller recebeu reputação de Zzjj em Tirar a fala do Player da Spell   
    Meu amigo é muito simples, vai na sua config.lua e edite essas linhas:

    spellNameInsteadOfWords = false emoteSpells = false
  5. Gostei
    Rudkiller deu reputação a xWhiteWolf em Fogos de artificio.   
    <globalevent name="fogos" time="00:00" event="script" value="fogos.lua"/>



     
  6. Gostei
    Rudkiller deu reputação a xWhiteWolf em Mining System   
    @Rudkiller, obrigado  , pra fazer da forma que vc quer é só adicionar o id das bordas de caverna ali e remover os do chão (ou mantém os dois haha)
  7. Gostei
    Rudkiller recebeu reputação de arthurabreu em Tirar a fala do Player da Spell   
    Meu amigo é muito simples, vai na sua config.lua e edite essas linhas:

    spellNameInsteadOfWords = false emoteSpells = false
  8. Gostei
    Amigo, tenta isso daqui, ja tá explicadinho no script:


    local addml = createConditionObject(CONDITION_ATTRIBUTES)
    setConditionParam(addml, CONDITION_PARAM_TICKS, 60*1000) -- tempo em segundos multiplicado por 1000 (porque o sistema lê em milisegundos)
    setConditionParam(addml, CONDITION_PARAM_STAT_MAGICLEVEL, 15) -- esse número é quanto de magic level aumenta!
    setConditionParam(addml, CONDITION_PARAM_BUFF, TRUE)
    function onUse(cid, item, fromPosition, itemEx, toPosition)
    local premium = getPlayerPremiumDays(cid)
    if getPlayerLevel(cid) >= 400 and (getPlayerVocation(cid) ~= 357 or getPlayerVocation(cid) ~= 358 or getPlayerVocation(cid) ~= 359 or getPlayerVocation(cid) ~= 
    360 or getPlayerVocation(cid) ~= 361 or getPlayerVocation(cid) ~= 362 or getPlayerVocation(cid) ~= 363) then
    doPlayerSendCancel(cid, "Voce precisa ser da vocação Turles Reborn LvL 400+ para usar este item!")
    elseif premium < 1 then 
    doPlayerSendCancel(cid, "Voce precisa ser premium para usar este item!")
    else
    doCreatureSay(cid,19, "Aaahhh! Me sinto mais poderoso!")
    local pos1 = {x = getPlayerPosition(cid).x + 1, y = getPlayerPosition(cid).y + 0, z = getPlayerPosition(cid).z}
    doSendMagicEffect(pos1, 78)
    doRemoveItem(cid, item.uid, 1)
    doAddCondition(cid, addml)
    end
    return true
    end

    Em:
    data\actions\actions.xml

    Coloque:

    <action itemid="id_do_seu_item" script="nome_do_seu_script.lua"/>
    Edit: Cara cometi um pequeno erro aqui na hora de coloca o parâmetro da condição, mas eu arrumei e agora o script ta funfando! 
    Detalhe: agora que foi resolvido eu queria saber como que faz pra remove minha postagem, pois sou novatão aki
  9. Gostei
    Rudkiller deu reputação a xWhiteWolf em Mining System   
    sim ué.. pra upar do 50 pro 51 a conta é a seguinte:

    (51*51/k) - (50*50/k) que é igual a 1300 - 1250 = 50 picaretadas.
  10. Gostei
    Rudkiller deu reputação a xWhiteWolf em Mining System   
    tem sim, eu só não coloquei porque o próprio tibia ja tem um sistema de exhausted padrão de 1 segundo entre ações contendo itemEx (que é configurável pelo config.lua)
  11. Gostei
    Rudkiller deu reputação a xWhiteWolf em Mining System   
    Antes de tudo queria agradecer ao cara do suporte que me pediu pra fazer isso, achei muito legal a idéia. Fala galera do TK, vim trazer um script bem simpleszinho mas que abre um leque de opções de RPG e diversão pro seu OT.. Trata-se do Mining System, um sistema que você pode utilizar a pick normal (ou uma outra pick especial) para minerar a terra e tentar conseguir items que você pode trocar por dinheiro, items ou utilizar para craftar items. São 70 leveis de Mining que vão upando conforme vc minera.
    Enfim, vamos ao script:
    actions\scripts\mining.lua:
    terra = {351,352,353,354,355}  levels = { [-1] = 2229, ---- skull [0] = 1294, --- small stone [1] = 3976, --- worm [10] = 2149, -- Small Emerald [12] = 2146, -- Small Sapphire [15] = 2145, -- Small Diamond  [17] = 2150, -- Small Amethyst [20] = 2147, -- Small Ruby [25] = 2144, -- Black Pearls  [27] = 2143, -- White Pearls [30] = 2157, -- Gold Nuggets [35] = 2156, --- red gem [36] = 2158, -- blue gem  [37] = 2155, -- green gem  [38] = 2153, -- violet gem [39] = 2154, -- yellow gem [40] = 7761, -- small enchanted emerald  [42] = 7759, -- Small Enchanted Sapphiire [45] = 7762, -- Small Enchanted Amethyst [50] = 7760, -- Small Enchanted Ruby [70] = 2177  -- Life Crystal } local config = { storage = 19333, chance = 40, --- chance de achar um item ou não k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante) experience = 19334 } function onUse(cid, item, fromPosition, itemEx, toPosition) local drops = {} function getDrops(cid) for i= -1,getPlayerStorageValue(cid, config.storage) do if levels[i] then table.insert(drops, levels[i]) end end return true end if isInArray(terra, itemEx.itemid) then getDrops(cid) doPlayerSetStorageValue(cid, config.experience, getPlayerStorageValue(cid, config.experience)+1) local experience = getPlayerStorageValue(cid, config.experience) if experience >= (8+(getPlayerStorageValue(cid, config.storage)^2))/config.k then doPlayerSetStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage)+1) doPlayerSendTextMessage(cid, 27, "Congratulations, you have leveled! Your currect level is "..getPlayerStorageValue(cid, config.storage) ..".") if getPlayerStorageValue(cid, config.storage) == 50 then doPlayerSendTextMessage(cid, 20, "For reaching level "..getPlayerStorageValue(cid, config.storage) .." you have been awarded with Mining Helmet.") doPlayerAddItem(cid, 7497, 1, true) end end if config.chance >= math.random(1,100) then if #drops >= 1 then local item = drops[math.random(1,#drops)] doPlayerSendTextMessage(cid, 27, "You have found a "..getItemNameById(item)..".") doPlayerAddItem(cid, item, 1, true) end doSendMagicEffect(toPosition, 3) else doSendMagicEffect(toPosition, 2) return true end elseif itemEx.itemid == item.itemid then doPlayerSendTextMessage(cid, 27, "You're currenctly level "..getPlayerStorageValue(cid, config.storage)..".") else return false end return true end em terra vc coloca os ids dos chãos em que é possível minerar, levels é o level da skill e o ID do respectivo item que você fica capaz de conseguir após alcançar esse nível. Em outras palavras, no começo vc só consegue minerar skull, no nv 70 vc vai ter a chance de conseguir todos os items anteriores e não só life crystal. O restante das configurações está no meio do script:
    local config = {
    storage = 19333,
    chance = 40, --- chance de achar um item ou não
    k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante)
    experience = 19334
    }
    o storage é onde vai salvar o seu nível
    chance é a chance de pegar um item cada vez que minera.
    k é a constante de level, o nivel 10 precisa de 10*10/k de experiencia para ser alcançado (com k sendo 2 dá 50 de experiencia), ou seja, com 50 picaretadas na terra vc pega nivel 10.
    experience é o storage que fica salvo sua experiencia.
    Bônus: Ao alcançar level 50 você ganha o Mining Helmet como prêmio, ele não faz nada de especial mas é como se fosse um troféu. No meu server tem uma série de troféus que voce pode colecionar e fica como sendo uma conquista épica para os players.
    e no actions.xml:
    <action itemid="2553" script="mining.lua"/> OBS: Sugiro que vcs utilizem uma outra pick pra não dar conflito mas você faz oque quiser.
    PS: Uma fotinha pra vcs verem
    Espero que tenham gostado!  
  12. Gostei
    Rudkiller deu reputação a Caronte em Shovel com "Digging System"   
    Boa @Rudkiller, mas. acho que o tópico ficaria muito mais atraente com imagens e uma formatação das letras..   Usando o negrito para destacar as coisas mais importantes, por exemplo.
  13. Gostei
    Rudkiller deu reputação a luanluciano93 em Shovel com "Digging System"   
    Bem criativo amigo, reputado.
  14. Gostei
    Rudkiller recebeu reputação de Caronte em Shovel com "Digging System"   
    Olá caros membros do TibiaKing.

    Hoje estou disponibilizando para vocês o script de action da shovel com digging system (sistema de escavação em inglês), ou seja você pode usar a shovel no chão para cavar buracos e desenterrar itens ou criaturas, além da funcionalidade tradicional da shovel, que é abrir buracos.
    -- Pequenas observações --
    <> Foi testado apenas em Alissow OTS 0.3.9 (Client 8.54)!
    <> Tirei essa idéia do TibiaME onde o player usa a shovel para cavar no chão e encontrar gold e potions, mas troquei para achar itens(tipo minhocas) e criaturas pra ficar mais realista RPG!
    Veja o vídeo que explica como funciona:
    https://www.youtube.com/watch?v=xsmJcwBshpg
    (gravei só pra esse tópico)

    Se quiser adicionar esse sistema em seu OT, siga os passos do tutorial abaixo!

    Primeiro Passo​: "Configurando sua shovel" ​Em

    data\actions\scripts

    Abra seu shovel.lua e caso você não tenha crie e adicione o seguinte conteúdo dentro:



    Lembre-se da linha, em:

    data\actions\actions.xml


    <action itemid="2554" script="tools/shovel.lua"/> <!--Shovel-->
    <action itemid="5710" script="tools/shovel.lua"/> <!--Light Shovel-->

    Segundo Passo: "Configurando os buracos" Em:

    data\items\items.xml

    Troque os atributos dos itens 3311, 8323, 8567.
    Deixe desta maneira:

    <item id="3311" article="a" name="hole">
    <attribute key="decayTo" value="0"/>
    <attribute key="duration" value="120"/>
    </item>
    ---------------------------------------------------------
    <item id="8323" article="a" name="hole">
    <attribute key="decayTo" value="231"/>
    <attribute key="duration" value="60"/>
    </item>
    ---------------------------------------------------------
    <item id="8567" article="a" name="hole">
    <attribute key="decayTo" value="9059"/>
    <attribute key="duration" value="60"/>
    </item>

    Se não quiser seguir o passo 2 (criar e configurar buracos), simplesmente remova as linhas "doCreateItem(3311, topos)" do seu script e o player apenas irá "cavar" o solo sem criar nenhum buraco.
    É isso galera! Até o próximo script...
  15. Gostei
    Rudkiller recebeu reputação de luanluciano93 em Shovel com "Digging System"   
    Olá caros membros do TibiaKing.

    Hoje estou disponibilizando para vocês o script de action da shovel com digging system (sistema de escavação em inglês), ou seja você pode usar a shovel no chão para cavar buracos e desenterrar itens ou criaturas, além da funcionalidade tradicional da shovel, que é abrir buracos.
    -- Pequenas observações --
    <> Foi testado apenas em Alissow OTS 0.3.9 (Client 8.54)!
    <> Tirei essa idéia do TibiaME onde o player usa a shovel para cavar no chão e encontrar gold e potions, mas troquei para achar itens(tipo minhocas) e criaturas pra ficar mais realista RPG!
    Veja o vídeo que explica como funciona:
    https://www.youtube.com/watch?v=xsmJcwBshpg
    (gravei só pra esse tópico)

    Se quiser adicionar esse sistema em seu OT, siga os passos do tutorial abaixo!

    Primeiro Passo​: "Configurando sua shovel" ​Em

    data\actions\scripts

    Abra seu shovel.lua e caso você não tenha crie e adicione o seguinte conteúdo dentro:



    Lembre-se da linha, em:

    data\actions\actions.xml


    <action itemid="2554" script="tools/shovel.lua"/> <!--Shovel-->
    <action itemid="5710" script="tools/shovel.lua"/> <!--Light Shovel-->

    Segundo Passo: "Configurando os buracos" Em:

    data\items\items.xml

    Troque os atributos dos itens 3311, 8323, 8567.
    Deixe desta maneira:

    <item id="3311" article="a" name="hole">
    <attribute key="decayTo" value="0"/>
    <attribute key="duration" value="120"/>
    </item>
    ---------------------------------------------------------
    <item id="8323" article="a" name="hole">
    <attribute key="decayTo" value="231"/>
    <attribute key="duration" value="60"/>
    </item>
    ---------------------------------------------------------
    <item id="8567" article="a" name="hole">
    <attribute key="decayTo" value="9059"/>
    <attribute key="duration" value="60"/>
    </item>

    Se não quiser seguir o passo 2 (criar e configurar buracos), simplesmente remova as linhas "doCreateItem(3311, topos)" do seu script e o player apenas irá "cavar" o solo sem criar nenhum buraco.
    É isso galera! Até o próximo script...
  16. Gostei
    Bom galera, tem uma coisa bem simples que nem o tibia global fez e que eu to trazendo aqui pra vocês. Trata-se de um pequeno sistema que fará você sempre virar pra direção do seu target ao atacar.
    Testado em TFS 0.3.6 Cliente 8.54.

    Imagem auto explicativa:




    Chega de atacar de costas! 

    Agora pra instalar é bem tranquilo. Abra um arquivo .lua em data\creaturescripts\scripts chamado target e coloque o seguinte conteudo dentro dele:




    Feito isso adicione essa linha no creaturescripts.xml:
    <event type="attack" name="targetCreature" script="target.lua"/> E para finalizar adicione a seguinte tag em creaturescripts\scripts\login.lua:
    registerCreatureEvent(cid, "targetCreature") Espero que vcs tenham curtido, é algo bem simples mas ninguém havia pensado nisso antes (nem o próprio Tibia), é uma coisa bem básica e que torna o jogo bem mais importante e sério. 


    EDIT:: Usem essa versão que está mais completa, na anterior se o target estivesse na diagonal ele não virava.



Informação Importante

Confirmação de Termo