Ir para conteúdo

SkyLigh

Lorde
  • Total de itens

    2183
  • Registro em

  • Última visita

  • Dias Ganhos

    23

Histórico de Reputação

  1. Upvote
    SkyLigh deu reputação a Refe em Source Launcher Pokemon Rubrum   
    Hoje estou liberando a Source do Launcher Pokémon Rubrum

    (Ainda falta uns ajustes, coisas básicas, como por função nos botões)



    Imagem:





    Download

    Scan





  2. Upvote
    SkyLigh deu reputação a aremst em [Sprites] [+226,859] De Tibia 10.82   
    Este é um pacote de sprites em formato PNG com fundo transparente do Tibia versão 10,82 ...

    Na próxima versão da tíbia vou acrescentar mais pacotes extras para download neste post









    Download Link:




    Scan:




     
    --------------------------------------------------------

    Pacote adicional de ultima preactualización 26/11/2015 03:40 am





    Download link:




  3. Upvote
    SkyLigh recebeu reputação de brendoonh em Teleport   
    function onAdvance(cid, skill, oldLevel, newLevel)
    local pos, lvl, stg = {x=210, y= 10, z= 6 }, 300, 99001 -- pos, level, storage para nao repetir 2x
    if newLevel == 300 and getPlayerStorageValue(cid, 99001) <= 0 then
    setPlayerStorageValue(cid,99001,1)
    doTeleportThing(cid, pos, false)
    doPlayerSendTextMessage(cid, 22, "Você upou level 300 e foi teleportado")
    return true
    end
    end
     

     
  4. Upvote
    SkyLigh recebeu reputação de RCRISTINAN em [Encerrado] Como aumentar a exp ?   
    Abra seu config.lua e procure por
    rateExperience e ao lado vai tê os números e coloque a exp que você quer.
  5. Upvote
    SkyLigh deu reputação a XScupion em Teleport   
    .
    local pos, lvl, stg = {x=210, y= 10, z= 6 }, 300, 99001 -- pos, level, storage para nao repetir 2x
  6. Upvote
    SkyLigh recebeu reputação de XScupion em Teleport   
    function onAdvance(cid, skill, oldLevel, newLevel)
    local pos, lvl, stg = {x=210, y= 10, z= 6 }, 300, 99001 -- pos, level, storage para nao repetir 2x
    if newLevel == 300 and getPlayerStorageValue(cid, 99001) <= 0 then
    setPlayerStorageValue(cid,99001,1)
    doTeleportThing(cid, pos, false)
    doPlayerSendTextMessage(cid, 22, "Você upou level 300 e foi teleportado")
    return true
    end
    end
     

     
  7. Upvote
    SkyLigh recebeu reputação de Amantezinho em Preciso De Um Npc Que Fale Sozinho No Defaut Algumas Frases   
    Você quer so um npc que fique falando sem vender nada?
     
    se for isso va em data / npc / scripts / e ponha o nome de algum arquivo.lua para bocoh e adicione isto la
     

    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function thinkCallback(cid) local rand = math.random(1,100) if rand == 1 then selfSay('Posso ajudar?') -- msg que vai sair do npc selfSay('Bem vindo !') -- msg que vai sair do npc end return true end function greetCallback(cid) return true end npcHandler:setCallback(CALLBACK_ONTHINK, thinkCallback) npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:addModule(FocusModule:new())
     
    agr em data / npc / e renome algum arquivo.xml para bocoh e ponha isto dentro
     

    <?xml version="1.0" encoding="UTF-8"?> <npc name="bocoh" script="data/npc/scripts/bocoh.lua" walkinterval="5000" floorchange="0"> <health now="100" max="100"/> <look type="130" head="50" body="63" legs="132" feet="0" addons="3"/> <parameters> </parameters> </npc>
     
    pronto agr so reinicia seu sv
  8. Upvote
    SkyLigh deu reputação a Luizbaiak em (8.60) Yurots Classic v2 Sem Teleports.   
    Yurots Classic v2 Sem Teleports.
     
    Olá a Todos Hoje Venho a Trazer um Yurots Inovador sem teleports Com Mais de 50 Quests adicionadas e mais de 100 hunts tatalmente espalhada pelo map vale a pena explorar esse mundo yurots.
     
     
    Bom Oque Tem de Diferente nesse Yurots ?
     
    Quest Como
    Demon oak
    Blue Legs
    Boots of Hasle
    Anihi
    Demon Helmet
    Dragon Scale Mail
    Dragon Scale Helmet
    Dragon Scale Legs
    Royal Helmet
    Golden Armor
    Demon Shield
    Behemoth Quest
    Golden Boots
    Magic Plate Armor
    Crown Set Quest
    Bright Sword Quest
    Mastermind Shield
    Amazon Armor
    Amazon Helmet
    Amazon Shield
    Dwarven Armor
    Dwarven Legs
    Dwarven Helmet
    Entre Outras...
     
    Hunts Adicionadas:
    Frost Dragon
    Grim Reaper
    Hydras
    Hellhound Com Boss do Hellgorak
    Warlock
    Boss do Ferumbras na Quest da Dragon scale legs e Helmet.
    Medusa
    Massacre Na Poi
     
    Templo Reformulado Mais não Perdendo Aquele Estilo do Yurots 8.1
     
    Aki Vai Algumas Fotos:
     
    Barco:

     
    Behemoth Quest

     
    Cidade

     
    Demon oak

    Frost Land
     

     
    Grim Reapers
     

     
    Hellgound

    Hydra Land

    Sala de Treinamento

     
    Breve Criarem um video de como ir nas hunt e mais atualização.
     
    o server foi editado para experencia baixo não recomendo deixa experiencia alta.
     
    Senha do God: yurots/yurots
     
     
    Downloads Abaixo.
     
    YurotsClassic 8.6 -> http://www.4shared.com/rar/IdejuaNTce/Yurots_Classico_V2.html
    ScanYurots. 8.6 -> https://www.virustotal.com/pt/url/5ace23bae2a90fd3791c22cc219522004dc01b56ff0f3326a18ed52fcf6179fd/analysis/1371363002/
     
     
    FIQUEM ATENTOS HAVERÁ ATUALIZAÇÃO
     
    Contado->Luizbaiak Facebook
    WathsApp 41-84132720
     
    Obrigado a Todos
  9. Upvote
    SkyLigh deu reputação a Refe em Source Launcher Pokemon Rubrum   
    Vou fazer aqui

    Adicionei a Scan =)
  10. Upvote
    SkyLigh deu reputação a FlamesAdmin em [RME] Deixando montanha com Auto-Border   
    Boa tarde, irei mostrar como deixar a montanha com auto-border nos pisos.



    Vá até a pasta do seu RME, abra o arquivo grounds.xml da versão que você utiliza, procure por:


    <brush name="mountain" type="ground"

    Ele vai estar assim:



    <brush name="mountain" type="ground" server_lookid="918" z-order="9900">
    <item id="919" chance="1"/>


    <border align="inner" to="icy mountain" id="53"/>
    <border align="inner" to="snowy mountain" id="53"/>
    <border align="inner" to="none" id="3"/>
    <border align="outer" to="none" id="51"/>
    <border align="outer" id="10"/>
    <border align="inner" id="3"/>
    <optional id="29"/>
    </brush>


    Substitua por esse:


    <brush name="mountain" type="ground" server_lookid="918" z-order="9900">
    <item id="919" chance="1"/>

    <border align="inner" to="icy mountain" id="53"/>
    <border align="inner" to="snowy mountain" id="53"/>
    <border align="outer" to="none" id="29"/>
    <border align="outer" id="29"/>
    <optional id="29"/>
    </brush>
    Demonstração:

    Antes sem editar



    Depois com a edição





    Simples.

    Até logo!!!

  11. Upvote
    SkyLigh deu reputação a Refe em Criando Escadas Novas   
    Bom, Hoje vou ensinar a criar novas Escadas, só testei em servidores
    8.54, 8.60, porém estarei dando suporte para outras versões caso venha a ocorrer erros


    Vamos lá,

    Em Movements/Scripts crie um arquivo chamado
    escadas.lua E Dentro cole:
    function onStepIn(cid, item, frompos, item2, topos) if not isPlayer(cid) then return true end local norte = {xxx, xxx, xxx, xxx} --Ecadas viradas para o Norte local sul = {xxx, xxx, xxx, xxx} -- Escadas viradas para o sul local leste = {xxx, xxx, xxx, xxx} -- Escadas viradas para o leste local oeste = {xxx, xxx, xxx, xxx} -- Escadas viradas para o Oeste local descer = {xxx, xxx, xxx, xxx} -- Escadas para descer -- NORTH if item2.itemid == [norte] then playerpos = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y-1, z=getCreaturePosition(cid).z-1} -- SOUTH elseif item2.itemid == [sul] then playerpos = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y+1, z=getCreaturePosition(cid).z-1} -- EAST elseif item2.itemid == [leste] then playerpos = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z-1} -- WEST elseif item2.itemid == [oeste] then playerpos = {x=getCreaturePosition(cid).x-1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z-1} --DOWN elseif item2.itemid == [descer] then playerpos = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z+1} end Bom, no próprio Script ensina como adiciona as escadas.

    Agora em Movements/movements.xml
    Adicione a tag:
    <movevent type="StepIn" itemid="item1;item2;item3" event="script" value="escadas.lua"/> E Pronto, já tem as novas escadas no seu Servidor

    Se for adicionar as escadas no client, elas devem ter as propriedades:
    Não pode Ser Movido
     
  12. Upvote
    SkyLigh recebeu reputação de GokuBlack em Evento Double Exp   
    Fala galera tudo bem? Essa semana teve um membro que pediu um evento de double exp até que consegui fazer usando alguns scripts como base, então vamos ao código.

    INSTALAÇÃO


    Vá em data/creaturescripts/scripts e em creaturescripts.xml adicione a seguinte tag.

    <event type="kill" name="ExpBonus" event="script" value="exp.lua"/> Em data/creaturescripts/scripts crie um arquivo .lua e renomeie para exp.lua e adicione o seguinte código.

    function onKill(cid, target) if isPlayer(cid) and isMonster(target) then if getGlobalStorageValue(102590) - os.time() >= 1 then local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2) doPlayerAddExperience(cid, count) addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60)) end else return TRUE end return TRUE end
    Agora no data/creaturescripts/scripts e login.lua adicione a seguinte tag.

    registerCreatureEvent(cid, "ExpBonus")
    Agora vá em data/talkactions/scripts talkactions.xml

    <talkaction words="/doubleexp" access="5" event="script" value="exp.lua"/> Em data/talkactions/scripts crie um arquivo.lua e o renomeio para exp.lua e adicione o seguinte código dentro.

    function onSay(cid, words, param, channel) local config = { storage = 102590, } if(param == 'cancel') then if getGlobalStorageValue(config.storage) > 0 then setGlobalStorageValue(config.storage, -1) doBroadcastMessage("Double Exp cancelado") end return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Digite por quantas horas o evento ira durar") return true end if getGlobalStorageValue(config.storage) - os.time() <= 0 then setGlobalStorageValue(config.storage, os.time()+param*60*60) doBroadcastMessage("Exp bonus ativado 50% + EXP por "..param.." horas! Aproveite.") end return true end

    COMO UTILIZAR

    Para ativar o comando digite /doubleexp Quantidade de horas que vai durar o evento Exemplo /doubleexp 3 o evento ira durar por 3 horas.

    Para cancelar o evento basta digitar /doubleexp cancel apenas os GOD'S podem utilizar os 2 comandos.


    Créditos
    --- Pela postagem do tópico e edição nos códigos.
    --- Por eu tê pego uma parte de um script dele do creaturescripts.

    Espero que gostem


  13. Downvote
    SkyLigh recebeu reputação de RobsonSilva em Evento Double Exp   
    Fala galera tudo bem? Essa semana teve um membro que pediu um evento de double exp até que consegui fazer usando alguns scripts como base, então vamos ao código.

    INSTALAÇÃO


    Vá em data/creaturescripts/scripts e em creaturescripts.xml adicione a seguinte tag.

    <event type="kill" name="ExpBonus" event="script" value="exp.lua"/> Em data/creaturescripts/scripts crie um arquivo .lua e renomeie para exp.lua e adicione o seguinte código.

    function onKill(cid, target) if isPlayer(cid) and isMonster(target) then if getGlobalStorageValue(102590) - os.time() >= 1 then local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2) doPlayerAddExperience(cid, count) addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60)) end else return TRUE end return TRUE end
    Agora no data/creaturescripts/scripts e login.lua adicione a seguinte tag.

    registerCreatureEvent(cid, "ExpBonus")
    Agora vá em data/talkactions/scripts talkactions.xml

    <talkaction words="/doubleexp" access="5" event="script" value="exp.lua"/> Em data/talkactions/scripts crie um arquivo.lua e o renomeio para exp.lua e adicione o seguinte código dentro.

    function onSay(cid, words, param, channel) local config = { storage = 102590, } if(param == 'cancel') then if getGlobalStorageValue(config.storage) > 0 then setGlobalStorageValue(config.storage, -1) doBroadcastMessage("Double Exp cancelado") end return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Digite por quantas horas o evento ira durar") return true end if getGlobalStorageValue(config.storage) - os.time() <= 0 then setGlobalStorageValue(config.storage, os.time()+param*60*60) doBroadcastMessage("Exp bonus ativado 50% + EXP por "..param.." horas! Aproveite.") end return true end

    COMO UTILIZAR

    Para ativar o comando digite /doubleexp Quantidade de horas que vai durar o evento Exemplo /doubleexp 3 o evento ira durar por 3 horas.

    Para cancelar o evento basta digitar /doubleexp cancel apenas os GOD'S podem utilizar os 2 comandos.


    Créditos
    --- Pela postagem do tópico e edição nos códigos.
    --- Por eu tê pego uma parte de um script dele do creaturescripts.

    Espero que gostem


  14. Upvote
    SkyLigh recebeu reputação de Juanotserver em Evento Double Exp   
    Fala galera tudo bem? Essa semana teve um membro que pediu um evento de double exp até que consegui fazer usando alguns scripts como base, então vamos ao código.

    INSTALAÇÃO


    Vá em data/creaturescripts/scripts e em creaturescripts.xml adicione a seguinte tag.

    <event type="kill" name="ExpBonus" event="script" value="exp.lua"/> Em data/creaturescripts/scripts crie um arquivo .lua e renomeie para exp.lua e adicione o seguinte código.

    function onKill(cid, target) if isPlayer(cid) and isMonster(target) then if getGlobalStorageValue(102590) - os.time() >= 1 then local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2) doPlayerAddExperience(cid, count) addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60)) end else return TRUE end return TRUE end
    Agora no data/creaturescripts/scripts e login.lua adicione a seguinte tag.

    registerCreatureEvent(cid, "ExpBonus")
    Agora vá em data/talkactions/scripts talkactions.xml

    <talkaction words="/doubleexp" access="5" event="script" value="exp.lua"/> Em data/talkactions/scripts crie um arquivo.lua e o renomeio para exp.lua e adicione o seguinte código dentro.

    function onSay(cid, words, param, channel) local config = { storage = 102590, } if(param == 'cancel') then if getGlobalStorageValue(config.storage) > 0 then setGlobalStorageValue(config.storage, -1) doBroadcastMessage("Double Exp cancelado") end return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Digite por quantas horas o evento ira durar") return true end if getGlobalStorageValue(config.storage) - os.time() <= 0 then setGlobalStorageValue(config.storage, os.time()+param*60*60) doBroadcastMessage("Exp bonus ativado 50% + EXP por "..param.." horas! Aproveite.") end return true end

    COMO UTILIZAR

    Para ativar o comando digite /doubleexp Quantidade de horas que vai durar o evento Exemplo /doubleexp 3 o evento ira durar por 3 horas.

    Para cancelar o evento basta digitar /doubleexp cancel apenas os GOD'S podem utilizar os 2 comandos.


    Créditos
    --- Pela postagem do tópico e edição nos códigos.
    --- Por eu tê pego uma parte de um script dele do creaturescripts.

    Espero que gostem


  15. Upvote
    SkyLigh recebeu reputação de siginor em Evento Double Exp   
    Fala galera tudo bem? Essa semana teve um membro que pediu um evento de double exp até que consegui fazer usando alguns scripts como base, então vamos ao código.

    INSTALAÇÃO


    Vá em data/creaturescripts/scripts e em creaturescripts.xml adicione a seguinte tag.

    <event type="kill" name="ExpBonus" event="script" value="exp.lua"/> Em data/creaturescripts/scripts crie um arquivo .lua e renomeie para exp.lua e adicione o seguinte código.

    function onKill(cid, target) if isPlayer(cid) and isMonster(target) then if getGlobalStorageValue(102590) - os.time() >= 1 then local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2) doPlayerAddExperience(cid, count) addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60)) end else return TRUE end return TRUE end
    Agora no data/creaturescripts/scripts e login.lua adicione a seguinte tag.

    registerCreatureEvent(cid, "ExpBonus")
    Agora vá em data/talkactions/scripts talkactions.xml

    <talkaction words="/doubleexp" access="5" event="script" value="exp.lua"/> Em data/talkactions/scripts crie um arquivo.lua e o renomeio para exp.lua e adicione o seguinte código dentro.

    function onSay(cid, words, param, channel) local config = { storage = 102590, } if(param == 'cancel') then if getGlobalStorageValue(config.storage) > 0 then setGlobalStorageValue(config.storage, -1) doBroadcastMessage("Double Exp cancelado") end return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Digite por quantas horas o evento ira durar") return true end if getGlobalStorageValue(config.storage) - os.time() <= 0 then setGlobalStorageValue(config.storage, os.time()+param*60*60) doBroadcastMessage("Exp bonus ativado 50% + EXP por "..param.." horas! Aproveite.") end return true end

    COMO UTILIZAR

    Para ativar o comando digite /doubleexp Quantidade de horas que vai durar o evento Exemplo /doubleexp 3 o evento ira durar por 3 horas.

    Para cancelar o evento basta digitar /doubleexp cancel apenas os GOD'S podem utilizar os 2 comandos.


    Créditos
    --- Pela postagem do tópico e edição nos códigos.
    --- Por eu tê pego uma parte de um script dele do creaturescripts.

    Espero que gostem


  16. Upvote
    SkyLigh recebeu reputação de brendoonh em Script de remover pedra por tempo   
    local config = { pos = {x=174, y=116, z=12}, stoneid = 1353, time = 30 -- time in seconds to remove the stone } function onUse(cid, item, fromPosition, itemEx, toPosition) local stone = getTileItemById(config.pos,config.stoneid).uid if(stone > 0) then doRemoveItem(stone,1) doPlayerSendTextMessage(cid,22,"A pedra foi removida") doSendMagicEffect(config.pos, CONST_ME_MAGIC_RED) addEvent(doCreateItem, config.time * 1000, config.stoneid, 1, config.pos) doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) else doPlayerSendCancel(cid, "A pedra ja foi removida, aguarde 30 segundos para abrir novamente.") end return true end
  17. Upvote
    SkyLigh deu reputação a zipter98 em Trocar outfit por 10 segundos   
    local outfit = xxx --ID da outfit.
     
    doSetCreatureOutfit(cid, {lookType = outfit}, 10000)
    doCreatureSetNoMove(cid, true)
    addEvent(function()
    if not isPlayer(cid) then return true end
    doCreatureSetNoMove(cid, false)
    end, 10000)

     
  18. Upvote
    SkyLigh recebeu reputação de brendoonh em [PEDIDO] Evento Double Exp   
    Talkaction.XML
    <talkaction words="/doubleexp" access="5" event="script" value="exp.lua"/> Taltaction/script/exp.lua
    function onSay(cid, words, param, channel) local config = { storage = 102590, } if(param == 'cancel') then if getGlobalStorageValue(config.storage) > 0 then setGlobalStorageValue(config.storage, -1) doBroadcastMessage("Double Exp cancelado") end return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Apenas maiores que 0.") return true end if getGlobalStorageValue(config.storage) - os.time() <= 0 then setGlobalStorageValue(config.storage, os.time()+param*60*60) doBroadcastMessage("Exp bonus ativado 50% + EXP por "..param.." horas! Aproveite.") end return true end Creature.XML
    <event type="kill" name="ExpBonus" event="script" value="exp.lua"/> Creature/script/exp.lua
    function onKill(cid, target) if isPlayer(cid) and isMonster(target) then if getGlobalStorageValue(102590) - os.time() >= 1 then local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2) doPlayerAddExperience(cid, count) addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60)) end else return TRUE end return TRUE end Creature/script/login.LUA
    registerCreatureEvent(cid, "ExpBonus")
    Movido para resolvidos
  19. Upvote
    SkyLigh recebeu reputação de DavyziinC em [PEDIDO] Evento Double Exp   
    Talkaction.XML
    <talkaction words="/doubleexp" access="5" event="script" value="exp.lua"/> Taltaction/script/exp.lua
    function onSay(cid, words, param, channel) local config = { storage = 102590, } if(param == 'cancel') then if getGlobalStorageValue(config.storage) > 0 then setGlobalStorageValue(config.storage, -1) doBroadcastMessage("Double Exp cancelado") end return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Apenas maiores que 0.") return true end if getGlobalStorageValue(config.storage) - os.time() <= 0 then setGlobalStorageValue(config.storage, os.time()+param*60*60) doBroadcastMessage("Exp bonus ativado 50% + EXP por "..param.." horas! Aproveite.") end return true end Creature.XML
    <event type="kill" name="ExpBonus" event="script" value="exp.lua"/> Creature/script/exp.lua
    function onKill(cid, target) if isPlayer(cid) and isMonster(target) then if getGlobalStorageValue(102590) - os.time() >= 1 then local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2) doPlayerAddExperience(cid, count) addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60)) end else return TRUE end return TRUE end Creature/script/login.LUA
    registerCreatureEvent(cid, "ExpBonus")
    Movido para resolvidos
  20. Upvote
    SkyLigh deu reputação a Bluester em Spell Buff   
    Ele quer uma skill que dê buff ao player de determinada classe, vamos usar de exemplo Iron Defense do Steelix ( Pokémon )
  21. Upvote
    SkyLigh deu reputação a Night Wolf em Tibia Guitar Hero [0.36~0.4]   
    Fala pessoal do XT, hoje vim trazer pra vocês um sistema que eu desenvolvi nessa última semana e inclusive fiz um tópico na seção de show off (confira o tópico aqui) numa tentativa de agitar um pouco e prover uma certa especulação em relação ao sistema. Bom, eu to aqui hoje pra informar que deu mais que certo e que meu tópico humilde (que eu realmente acreditava que seria ignorado, ainda mais numa seção morta como aquela) teve uma repercursão enorme (inclusive indo parar no portal do XT )

    Bom, toda pessoa quando faz um código espera que ele agrade aos demais e tenha um certo valor, e bem, vocês superaram minhas expectativas.. com isso nada mais justo do que compartilhar com essa comunidade que me recebeu tão bem .
    Chega de falatório e vamos direto aos negócios:

    Introdução: O sistema em si é uma cópia dos jogos de ritmo (GuitarFreaks, Band Hero, Rocksmith e o próprio Guitar Hero). Neste jogo pequenas notas irão cair pela tela até atingir um local especial, onde você poderá usar as teclas (Shift + 7, Shift + 8, Shift + 9, ou apenas 7, 9 e 9 [com Num Lock desativado]) para escolher as direções que as notas estão afim de "ativá-las". Uma vez ativada a nota ela será "queimada" e será considerado 1 acerto. Caso você não consiga ativar a nota e ela passar direto, um efeito de fumaça indicará o "Miss", o mesmo vale para se você tentar ativar uma região sem notas.

    Sistema de pontuação: Haverão 3 classificadores estatísticos para cada música tocada, sendo eles:
    Notas acertadas: O principal fator de ponto, ele que definirá seu recorde e o valor máximo q ele pode assumir será o número de notas da música.
    Movimentos errados: Quantidade de movimentos que você fez para alguma região que não possuia notas, conta como pontuação punitiva.
    Notas passadas/erradas: Quantidade de notas que você deixou escapar, note que as notas acertadas + notas passadas compõe o número total de notas da música.

    Por enquanto o sistema não possui nenhum preço para se jogar mas também não possui nenhuma recompensa, fiz com o intuito de ser apenas um mini game divertido dentro do Tibia. Porém o código é livre e está disponibilizado aqui embaixo pra qualquer um modificar como desejar.
    Video explicativo:

     
    Dificuldades: O mini game possui 3 dificuldades, porém essa quantidade é tão configurável quanto as pré definições de cada dificuldade. Além da quantidade de notas ser diferente, a velocidade com que elas descem e consequentemente o tempo que você tem pra acertá-las fica diminuido.
     
    Diferenciais: Um forte diferencial desse sistema é que ele foi feito seguindo todas as regras possíveis pra melhorar seu desempenho, desde funções recursivas leves até separação em funções encapsuladas que carregam apenas as informações necessárias. O sistema contém também algumas seguranças que serão explicadas mais abaixo juntamente com o código para prevenir bugs e garantir diversão sem dores de cabeça!
    Instalação (Map Editor): Primeiramente faça uma área parecida com essa daqui:


    Não precisa ser igualzinha, apenas seguir a mesma proporção

    Agora use a ferramenta de No-Logout para setar os quadradinhos que contém UID e UID2 escritos como No-Logout, isso vai impedir que players desloguem e fiquem presos dentro da sala (se eles derem exit, quando eles relogarem estarão do lado de fora da sala)

     
    Ainda olhando a foto acima, coloque 42320 nos pisos que estão escritos UID, e 42319 no piso que contém UID2.

    Nas alavancas, coloque uid 2819 em todas elas e coloque actionid 101 para a alavanca do fácil, 102 na alavanca do médio e 103 na do dificil;
    A regra é sempre 100 + dificuldade, como nós estamos utilizando apenas 3 será do 101 ao 103.
    Note que se você esquecer ou colocar uma dificuldade não existente o sistema adotará a dificuldade 1 como padrão para aquela alavanca.





    Se chegou até aqui, meus parabéns. Muito provável que você tenha feito tudo certo. Agora vamos à parte do código.

    Instalação (scripts): Em actions.xml insira essa linha
    <action uniqueid="2819" event="script" value="GHtest.lua"/> Agora em data/actions/scripts crie um arquivo com extensão.lua e chameo de GHtest. Insira o seguinte bloco de instruções dentro dele:



    Aproveite e já configure as posições npos, startPos e finalPos de acordo com as posições do seu map editor (olhe na segunda imagem para ver onde deve ser cada uma das posições com base na sala)

    Feito isso crie um arquivo em data/lib com nome qualquer, aqui em casa eu utilizei o nome 120 - Guitar Hero Lib e a extensão.lua.
    Coloque isto dentro desse arquivo e salve:



    Agora adicione a seguinte tag em data/movements/movements.xml:
    <movevent type="StepIn" uniqueid="42320;42319" event="script" value="GHTestmov.lua"/> Por fim crie um arquivo chamado GHTestmov.lua em data/movements/scripts e preencha seu conteúdo com as linhas abaixo:



    Aproveite para deixar a npos idêntica à npos que você configurou lá no actions se baseando na posição da sua sala no map editor.


    ------------------------ FIM ------------------
    O sistema já deve funcionar como foi planejado, se você não manja de código ou quer o sistema exatamente como foi mostrado no vídeo você pode ignorar a parte abaixo.

    Configurando seu sistema (básico):
    Para as pessoas que querem configurar apenas as coisas básicas, você pode fazê-lo nas primeiras linhas de cada script (actions/movements) ou alterando diretamente na lib, irei ensinar passo a passo aqui oque significa cada coisa.
    Alterando a lib As coisas básicas que podem ser alteradas na lib são as seguintes:
    dif = { -- [dificuldade] = notas que serao tocadas (nil = vazio, 0 = primeira posicao, 1 = segunda e 2 = terceira) [1] = {nil,nil,0,1,2,nil,nil,2,1,1,0,0,2,0,1}, [2] = {nil,nil,0,1,1,2,1,1,0,0,2,0,1,nil,1,2,1,1,0,0,2,0,1}, [3] = {nil,nil,0,nil,1,nil,1,1,0,0,2,0,1,1,1,nil,0,2,1,1,0,0,2,1,1,0,nil,2,2,1,1,1,1,2} } delay = { -- delay entre cada nota de acordo com a dificuldade [dificuldade] = delay [1] = 500, [2] = 400, [3] = 300 } recorde = { -- salva os recordes de cada dificuldade separadamente [1] = 12724, [2] = 12725, [3] = 12726 } dif separa como será cada música de cada dificuldade, as notas sempre serão nesse exato formato. nil significa que não estarei usando posição nenhuma naquela linha, 0 significa a primeira posição (nota verde), 1 significa segunda opção (nota vermelha) e 2 significa terceira opção (nota azul). Eu aconselho a começar todas as músicas com 2 ou mais 'nil' para dar tempo de o player entender que vai começar. A distribuição que eu usei foi meio que aleatória então sinta-se a vontade pra mudar tanto o tamanho das musicas quanto a variedade de notas.
    delay é a tabela que oganiza os delays de cada dificuldade, isso significa que para a dificuldade 1(fácil) nós temos 500 milisegundos para cada mudança de nota (1000 milisegundos = 1 segundo), ou seja, a cada 2 passadas de nota temos 1 segundo dentro da sala. No modo hard a cada 300 milisegundos mudamos a nota, deixando o jogo muito mais rápido e dificil.

    recorde é a tabela que possui os storages que irão salvar os recordes nas respectivas dificuldades.
    Alterando actions
    local storage_point = 12721 -- storage que salva os pontos local storage_erradas = 12722 -- storage que salva as notas erradas local storage_passadas = 12723 -- storage que salva as notas que passaram Apenas mude os storages

    Alterando movements
    local itemid = 1680 --- coloque o id da nota do meio local npos = {x = 141, y = 51, z = 7} -- posicao que ira nascer a primeira nota local storage_point = 12721 -- storage que salva os pontos local storage_erradas = 12722 -- storage que salva as notas erradas local storage_passadas = 12723 -- storage que salva as notas que passaram aconselho mexer somente nos storages, mantendo igual à action.
     
     
     
     
    Só abra o spoiler abaixo se você estiver descontente com a forma que seu código roda e tiver certeza absoluta de que você tem o conhecimento necessário para alterar as coisas que vou explicar.



    Espero que vocês tenham curtido, façam um bom uso e qualquer dúvida postem nos comentários abaixo.

    Agradecimento ao @dalvorsn pela função que limpa a sala antes de começar o jogo e ao pessoal do servidor Refugia que fez um script de guitar hero lá e me deu a idéia. Abraços do Lobo.
     
  22. Upvote
    SkyLigh deu reputação a Bluester em [Resolvido] npc troca item por pokemon   
    Estou meio que sem tempo, então vou te passar um rápido aqui !
     
    Em data/actions/scripts crie um arquivo chamado boox.lua e cole isso:
     
     
    Em data/actions/actions.xml cole essa tag:
    Data/npc: Crie um arquivo com o nome do NPC que quiser, vou usar Ruby como exemplo, e dentro do arquivo cole isso: <?xml version="1.0" encoding="UTF-8"?> <npc name="Ruby" script="RUBYTRADE.lua" walkinterval="350000" floorchange="0" speed="0"> <health now="100" max="100"/> <look type="2335" head="20" body="100" legs="50" feet="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|.I need {help}...you help me?"/> </parameters> </npc> Em data/npc/scripts crie um arquivo chamado RUBYTRADE.lua e cole isso dentro: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) --------- local need = { {id = ID DAS ESSENCES, qt = 50}, --ID DAS ESSENCES ZARD, QUANTIDADE } local rewards = { {id = IDDABOX, qt = 1}, --charizard BOX } local stoFinish = 92120 -- USE ESSA OU A STORAGE QUE QUISER --------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then if getPlayerStorageValue(cid, stoFinish) >= 500 then selfSay("Sorry, you already had done this quest.", cid) talkState[talkUser] = 0 return true end selfSay("Olá meu amigo, sou o NPC de trocas de Essences, me dê 50 Essences e lhe darei 1 Box que virá seu Pokemon! Diga YES para trocarmos.",cid) talkState[talkUser] = 1 return true elseif msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 1 then if getPlayerItemCount(cid, need[1].id) < need[1].qt then selfSay("Você não me trouxe todas as Essences...", cid) selfSay("Lembre-se, eu preciso de 50 Essences...", cid) talkState[talkUser] = 0 return true end for i = 1, #need do doPlayerRemoveItem(cid, need.id, need.qt) end for i = 1, #rewards do doPlayerAddItem(cid, rewards.id, rewards.qt) doPlayerAddExperience(cid, 0) end selfSay("Obrigado, tchau!", cid) setPlayerStorageValue(cid, stoFinish, 1) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) OBS: Não testei
  23. Upvote
    SkyLigh deu reputação a Bluester em [Resolvido] npc troca item por pokemon   
    Também estou sem tempo, por isso vou fazer um com box, se ele quiser, ele pega...
  24. Upvote
    SkyLigh deu reputação a Bluester em [Resolvido] npc troca item por pokemon   
    pode ser por box ? por exemplo, você dá 50x Essence Zard por uma box que dá um Charizard...
  25. Upvote
    SkyLigh recebeu reputação de naruto vida loka em Script Para Quest   
    Esse players anbu? são o que vips? se for passe a storage da vip.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...