Ir para conteúdo

Vodkart

Herói
  • Total de itens

    3406
  • Registro em

  • Última visita

  • Dias Ganhos

    111

Histórico de Reputação

  1. Upvote
    Vodkart recebeu reputação de crownzs em Sistema de Reset   
    pq ta fazendo pelo nome? acessa pelo id do player que não tem erro
     
     
     
    local coNdConf = { needPz = true, -- Precisa estar em Pz pra resetar? [true, false] needPa = false, -- Precisa ser Premium Account Pra resetar? [true, false] withe = false, -- Players com Pk Withe podem resetar? [true, false] red = false, -- Players com Pk Red pode resetar? [true, false] battle = false, -- Players precisão estar sem battle pra resetar? [true, false] teleport = true, -- Teleportar Player para o templo após resetar? [true, false] look = true, -- Aparecer Resets no Look do Player? [true, false] resetConf = { Level = 350, -- Level Necessário para Resetar. [Valor] backLvl = 100 -- Level que voltará após o Reset. [Valor] } } function getPlayerReset(cid) local check = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)) return check:getDataInt("reset") <= 0 and 0 or check:getDataInt("reset") end function onSay(cid, words, param) local resetValue = getPlayerReset(cid) + 1 if getPlayerLevel(cid) < coNdConf.resetConf.Level then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "- Level Necessário Para o Reset ["..coNdConf.resetConf.Level.."]. Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." level's para você Resetar. -") return true elseif coNdConf.needPz and not getTilePzInfo(getCreaturePosition(cid)) then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar em Protection Zone Para Resetar. -") return true elseif coNdConf.needPa == true and not isPremium(cid) then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa ser Premium Account para Resetar. -") return true elseif not coNdConf.withe and getCreatureSkullType(cid) == 3 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Withe. -") return true elseif not coNdConf.red and getCreatureSkullType(cid) == 4 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Red. -") return true elseif coNdConf.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar sem Battle para Resetar. -") return true end doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.query("UPDATE `players` SET `reset` = " .. resetValue .. ", `level` = "..coNdConf.resetConf.Level..", `experience` = "..getExperienceForLevel(coNdConf.resetConf.Level)..", `description` = "..(coNdConf.look and "[Resets: "..resetValue.."]" or "").." WHERE `id`= "..getPlayerGUID(cid)) return true end
  2. Upvote
    Vodkart recebeu reputação de williamserravalle em Double Exp Para Vip   
    servidos testado 8.54 ~ 8.60
     
    Quando você compra vip você pode aumentar a taxa de exp em percent que ele irá receber a mais,como se fosse um bonus...
     
    a taxa se modifica aqui:
     
    local rate = 1.5 -- 50%
     
    vermelho:representa o quanto irá subir em %
    caso fosse 20% seria
    local rate = 1.2
    e por ai vai....
     
     
    [ Double exp para o Perfect Vip System ] :
     
     
     
     
    [ Double exp para o Vip System By Account V1.0 ] :
     
     
     
     
    [ Double exp para o Vip System By Mock] :
     
     
  3. Upvote
    Vodkart recebeu reputação de MonsterB0SS em Broadcasts seguidas   
    acho que assim tbm dá
     

    function onThink(interval) local mds,msgs = 3435,{ [0] = "Texto1", [1] = "Texto2", [2] = "Texto3", [3] = "Texto4", [4] = "Texto5" } if getGlobalStorageValue(mds) == -1 then setGlobalStorageValue(mds,0) end doBroadcastMessage(msgs[getGlobalStorageValue(mds)]) setGlobalStorageValue(mds, getGlobalStorageValue(mds) < #msgs and getGlobalStorageValue(mds)+1 or 0) return true end
  4. Upvote
    Vodkart deu reputação a Bruno em Player.setExhaustion, Player.getExhaustion [TFS 1.x]   
    function Player.setExhaustion(self, value, time) return self:setStorageValue(value, time + os.time()) end function Player.getExhaustion(self, value) local storage = self:getStorageValue(value) if storage <= 0 then return 0 end return storage - os.time() end Exemplo de uso:
    function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) if player:getExhaustion(1350) <= 0 then player:setExhaustion(1350, 10) else print('Exausted! '..player:getExhaustion(1350)..' segundos restantes.') end return true end Créditos: Printer
  5. Upvote
    Vodkart recebeu reputação de sardom em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster   
    Introdução ao Projeto em pdf: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing



    Fala pessoal, estamos desenvolvendo um novo projeto de OTServe na versão 10.77 voltado ao RPG onde diversão é indispensável. Criaremos diversos eventos e sistemas únicos para que seja um servidor dinâmico em que os players sintam aquela vontade de jogar cada vez mais, não a mesmice de todo serve, que só se upa e upa e não tem mais graça.




    Estamos abrindo Vagas para:

    [*1*] Mapper
    [*1*] Web Master



    *Caso deseje se candidatar para a equipe, favor preencher o seguinte formulário abaixo:




    Nome:
    Idade:
    Função pretendida:
    Formas de contato - Facebook/Skype:
    Porque você quer fazer parte do projeto?:
    Quanto tempo de experiência você tem no seu ramo?:
    Caso tenha algum trabalho feito/postado favor anexar o link ou imagem.
  6. Upvote
    Vodkart recebeu reputação de JeanCristian em Arena System Inovador   
    mas teria que destruir o nexus inimigo?? algumas torres?? ou só mata mata
  7. Upvote
    Vodkart recebeu reputação de RigBy em Limite de player por sala   
    esse código é bom para quem gosta de fazer quest, exemplo a firewalk boots
  8. Upvote
    Vodkart deu reputação a zipter98 em Arena System Inovador   
    Na verdade eu pretendia fazer quando tivesse mais tempo livre (por ser um código grande), mas tudo bem. Se desistir, avise aqui, por gentileza.
    Se tiver alguma dificuldade, peço que também informe aqui para podermos ajudá-lo.
  9. Upvote
    Vodkart deu reputação a RigBy em Limite de player por sala   
    Limite de player por sala
     
    Introdução:
    Esse script pode ser bem útil para baiak onde as salas tão sempre cheia de player upando ou então para eventos.
    O script simplesmente checa a quantidade de player que tem dentro da sala, caso não tenha atingido o limite o player pode entrar caso não, manda uma mensagem falando que a sala esta lotada.
     
    Exemplo de uso: pode servir até para a anihilator ou demon aok, invitando que um segundo time entre na sala antes que o primeiro acabe.
     
    Caso a sala esteja lotada.

    Caso não.

     
    Em data/movement/script, crie 
    LimiteArea.lua e adicione.
     
      Em movement/movement.xml Adicione essa tag    
    E depois adicionar o actionid no piso ou teleport pelo mapa editor. O script é fácil de se configurar mas caso tenha algum problema pode posta ai que eu vou ajuda. Caso você adicione mais locais você terá que adicione na tag também.        
  10. Upvote
    Vodkart recebeu reputação de djteteh em TopLevel Effect   
    Refiz o código de outro jeito, as TAGS são as MESMAS.

    Créditos ao Bruno: http://pastebin.com/raw.php?i=pr8G8DQH
  11. Upvote
    Vodkart deu reputação a Bruno em TopLevel Effect   
    HAahhaa, depois vou testar e atualizo no principal.
    Esse foi um dos meus primeiros scripts quando comecei mexer com lua, nunca mais alterei ele.
     
    Vlw vod.
  12. Upvote
    Vodkart recebeu reputação de Soulviling em TopLevel Effect   
    Refiz o código de outro jeito, as TAGS são as MESMAS.

    Créditos ao Bruno: http://pastebin.com/raw.php?i=pr8G8DQH
  13. Upvote
    Vodkart deu reputação a Bruno em [TFS 1.x] Critical System   
    Introdução
     
    Este script consiste em aumentar uma porcentagem dos ataques de acordo com o critical level.
    Exemplo: Suponhamos que o player tenha Critical Skill 100 e a porcentagem de ataque esteja configurado para aumentar 50%, o player terá 30% de chance de au 50% dos ataques.
     
    Instalação
     
    O conteúdo da lib serve para o Critical e Dodge System, se você já fez este procedimento no outro script simplesmente ignore e vá para o próximo passo.
     
    Em data/lib/core/core.lua adicione o seguinte conteúdo em qualquer parte:

    dofile('data/lib/core/dclib.lua')Ainda em data/lib/core/core crie um arquivo chamado dclib.lua com o seguinte conteúdo: 
     
     
    Agora em data/actions/actions.xml adicione a seguinte tag:

    <action itemid="18415" script="other/critical.lua"/>Depois em data/actions/scripts/other crie um arquivo chamado critical.lua com o seguinte conteúdo: 
     
     
    Pronto, já configuramos o item para atribuir o Critical Skill, vamos configurar a parte dos ataques.
     
    Vá em data/creaturescripts/creaturescripts.xml e adicione a seguinte tag:

    <event type="healthchange" name="CriticalSystem" script="criticalSystem.lua"/>Agora em data/creaturescripts/scripts crie um arquivo chamado criticalSystem.lua com o seguinte conteúdo: 
     
     
    Ainda em data/creaturescripts/scripts abra o arquivo login.lua e
    Antes de:

    return trueAdicione:
    player:registerEvent("CriticalSystem") -- Critical System if player:getCriticalLevel() == -1 then player:setCriticalLevel(0) endO sistema está finalizado, agora vamos criar as talkactions para que os players acompanhem seu skill. 
    Em data/talkactions/talkactions.xml adicione a tag:

    <talkaction words="!critical" script="critical.lua"/>E para finalizar, em data/talkactions/scripts crie um arquivo chamado critical.lua com o seguinte conteúdo: 
     
     
    Bom é isso ai!
     
    Créditos:
  14. Upvote
    Vodkart deu reputação a Bruno em Surgir um troféu   
    Em data/movements/movements.xml adicione a tag:

    <movevent type="StepIn" actionid="2135" event="script" value="premio.lua"/>Agora em data/movements/scripts, crie um arquivo chamado premio.lua com o seguinte conteúdo:
    local config = { storage = 24700, item = 5805, desc = "Premio ao jogador %s por completar um evento." } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if isPlayer(cid) then if getPlayerStorageValue(cid, config.storage) < 1 then local pos = getCreaturePosition(cid) pos.y = pos.y - 1 local thing = doCreateItem(config.item, 1, pos) doItemSetAttribute(thing, "description", string.format(config.desc, getCreatureName(cid))) setPlayerStorageValue(cid, config.storage, 1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED) return true end end return true endPronto, agora coloca a actionid 2135 (ou outra configurada) no piso desejado, e pronto!
  15. Upvote
    Vodkart deu reputação a Bruno em Npc dando recompensa   
    Feito:
     
     
    Tópico movido para a seção de dúvidas e pedidos resolvidos.
  16. Upvote
    Vodkart deu reputação a Piabeta Kun em xTibia - Shadowcores Website   
    pelo o que eu vi no download é para server tfs 1.0!
     
    Edit
    kkkk isso é um gesior, shausahusahusa que loucura cara!
  17. Upvote
    Vodkart deu reputação a Administrador em xTibia - Shadowcores Website   
    Visualize o website



    Downloads

    Download Mega

    Scan



    Créditos:
    Shadowcores
    por disponibilizar
    @Daniel por postar
  18. Upvote
    Vodkart deu reputação a zipter98 em NPC Upgrader   
    Oi, vi a ideia desse NPC em um lugar por aí e resolvi fazer.
    Consiste em um NPC que aprimora seu item (deve estar em uma das mãos - esquerda ou direita) a troco de um outro item (configurável).
    A cada nível de aprimoramento, seu item recebe um valor configurável no ataque, defesa e/ou armadura.
    Você pode configurar o nível de aprimoramento máximo, chance de falhar, valor adicional que o item receberá a cada aprimoração e, como já dito antes, o item que será cobrado pelo NPC.
    Em data/npc, crie um arquivo com extensão .XML, nomeie-o Upgrader, e coloque o seguinte conteúdo:
    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Upgrader" script="upgradenpc.lua" walkinterval="3000" floorchange="0" access="5" level="1" maglevel="1">
    <health now="150" max="150"/>
    <look type="134" head="39" body="113" legs="38" feet="0" addons="3" corpse="2212"/>
    <parameters>
    <parameter key="message_greet" value="Olá |PLAYERNAME|, voce gostaria de aprimorar o seu equipamento?"/>
    </parameters>
    </npc>
    Em data/npc/scripts, crie um arquivo com extensão .lua, nomeie-o upgradenpc.lua, e coloque o seguinte conteúdo:
    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
    local config = {
    items = {12343, 10}, --Respectivamente, ID do item que o NPC irá cobrar e quantidade.
    maxBoost = 10, --Nível máximo do equipamento.
    failChance = 20, --Em porcentagem.
    upgradeValue = 1, --Valor adicional que o item receberá a cada aprimoração.
    }
    if msgcontains(msg:lower(), "yes") then
    for slot = 5, 6 do
    local item = getPlayerSlotItem(cid, slot)
    if item.uid > 0 then
    if getItemAttack(item) > 0 or getItemDefense(item) > 0 or getItemArmor(item) > 0 then
    if doPlayerRemoveItem(cid, config.items[1], config.items[2]) then
    local newUpgrade = (getItemAttribute(item.uid, "upgrade") or 0) + 1
    if newUpgrade <= config.maxBoost then
    if math.random(1, 100) > config.failChance then
    doItemSetAttribute(item.uid, "name", getItemInfo(item.itemid).name.." [+"..newUpgrade.."]")
    if getItemAttack(item) > 0 then
    setItemAttack(item, getItemAttack(item) + config.upgradeValue)
    end
    if getItemDefense(item) > 0 then
    setItemDefense(item, getItemDefense(item) + config.upgradeValue)
    end
    if getItemArmor(item) > 0 then
    setItemArmor(item, getItemArmor(item) + config.upgradeValue)
    end
    doItemSetAttribute(item.uid, "upgrade", newUpgrade)
    selfSay("Seu equipamento foi aprimorado com sucesso.", cid)
    doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
    else
    selfSay("Aah, parece que a aprimoração falhou! Mais sorte na próxima vez.", cid)
    end
    return true
    else
    return selfSay("Seu equipamento já alcançou o nível máximo.", cid)
    end
    else
    return selfSay("Você não tem "..config._item[2].."x "..getItemNameById(config._item[1])..(config._item[2] > 1 and "s" or "")..".", cid)
    end
    end
    end
    end
    selfSay("Parece que você não tem um item para aprimorar.", cid)
    elseif msgcontains(msg:lower(), "no") then
    selfSay("Tudo bem, então.")
    end
    return true
    end
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())
    Versão testada: 8.54
    Bem, é só isso, até mais.
  19. Upvote
    Vodkart deu reputação a Bruno em Wand of Elements   
    Introdução:
    É uma wand que ataca vários elementos aleatoriamente, porém não somente isso, você pode travar um único elemento através de uma talkaction.
     
    OBS: Testado em tfs 0.4
     
    Instalação:
    Vá até data/weapons/scripts e crie um arquivo chamando wandelementos.lua e coloque o seguinte conteúdo:

    local min, max = 1700,1900 --Ataque mínino e ataque máximo local w = { [1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE}, [2] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE}, [3] = {ef = 46, sh = 38, dmg = COMBAT_POISONDAMAGE}, [4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE}, [5] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, [6] = {ef = 36, sh = 31, dmg = COMBAT_PHYSICALDAMAGE}, [7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE} } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) end return true end Altere o min e max de acordo com sua necessidade. 
    Agora vá em data/weapons/weapons.xml e coloque o seguinte conteúdo:

    <wand id="7424" level="100" mana="30" event="script" value="wandelementos.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5" showInDescription="0"/> <vocation id="6" showInDescription="0"/> </wand> Altere o id, level e mana de acordo com sua necessidade. 
    Agora vamos configurar a talkaction que troca os elementos.
    Vá até data/talkactions/scripts e crie um arquivo chamando elementos.lua e coloque o seguinte conteúdo:

    local config = { wand_id = 7424, --ID da wand types = { ["all"] = -1, --Ataca os elementos aleatoriamente ["fire"] = 1, ["ice"] = 2, ["poison"] = 3, ["death"] = 4, ["energy"] = 5, ["physical"] = 6, ["holy"] = 7 } } function onSay(cid, words, param) local wand_left = getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid local wand_right = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid if wand_left ~= config.wand_id and wand_right ~= config.wand_id then doPlayerSendCancel(cid, "Voce deve estar equipado com uma ".. getItemNameById(config.wand_id) .." para usar este comando.") return true end if config.types[param] then setPlayerStorageValue(cid, 4561, config.types[param]) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Sua wand ira atacar ".. param .. ".") else local str = "" for i, _ in pairs(config.types) do str = str .. ", ".. i end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Os elementos disponiveis sao: ".. string.sub(str, 3, #str) ..".") end return true end Altere o wand_id conforme configurado em weapons. 
    Agora vá em data/talkactions/talkactions.xml e coloque o seguinte conteúdo:

    <talkaction words="!elemento;/elemento" event="script" value="elementos.lua"/> Exemplo de funcionamento:


    Agradeço MaXwEllDeN pela ajuda.
  20. Upvote
    Vodkart recebeu reputação de RigBy em Duvida sobre posicionamento do mostro   
    fiz um movements para mudar a direção dos monstro de acordo com o item.actionid do piso onde eles estão... já que era uma área pré programada para treiners...
  21. Upvote
    Vodkart recebeu reputação de AdilsonHacker em Apenas X vocation id pode atacar X monstro   
    olá amigo, acho q vc está falando besteira.
     
    esse código é simples e pode ser feito com onAttack ou onCombat
  22. Upvote
    Vodkart recebeu reputação de RigBy em Apenas X vocation id pode atacar X monstro   
    KKKKKKKKKKKKKKKKKKKKKKK
     
    toma meu rep pelo owned q levei agr viado
     
    n li msm
     
    enfim, testou?? tenta pelo onTarget ou onAttack que tenho ctz q dá...
  23. Upvote
    Vodkart deu reputação a RigBy em Apenas X vocation id pode atacar X monstro   
    acho que você não leu o topico todo
     
    Bom galera, eu queria saber se é póssivel um script que só permita X vocation id atacar esse X monstro (configurado) e o monstro também só podendo atacar essa X vocation.
     
    pelo oque eu entendi ele pediu para que o mostro não possa ataca outras vocações alem dessa, então...
  24. Upvote
    Vodkart recebeu reputação de RigBy em Apenas X vocation id pode atacar X monstro   
    mas ele pediu só para a tal VOC NÃO atacar o bixo. ele não falou nada sobre o bixo NÃO atacar a tal voc...
  25. Upvote
    Vodkart deu reputação a RigBy em Apenas X vocation id pode atacar X monstro   
    Eu ja tentei fazer um onCombat e coloca um return false mas o Mob continua atacando, vo testar agora onAttack nunca usei
  • Quem Está Navegando   0 membros estão online

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