Jump to content

Vodkart

Herói
  • Posts

    3406
  • Joined

  • Last visited

  • Days Won

    113

Reputation Activity

  1. Amei
    Vodkart got a reaction from sergiosdrc in Talkactions !mana E !vida   
    Sabe porque está dando isso? é porque no seu servidor não existe essa função também!
     
    Vou te passar a função que eu fiz:
     
    lib/functions coloca
     

    function getPlayerHealth(cid) -- by vodka doPlayerSave(cid) local PlayerInfo = db.getResult("SELECT `health` FROM `players` WHERE `id` = " .. getPlayerGUID(cid)) return PlayerInfo:getDataInt("health") end
     
    ai no script ali onde tiver "getCreatureHealth" troca por "getPlayerHealth"
  2. Thanks
    Vodkart got a reaction from manoellouro in Script Para Enviar Item Direto Para Depot   
    tem essa do antaraz
     
     
    anthadd.lua

    function onSay(cid, words, param, channel) if getPlayerAccess(cid) >=3 then local x = string.explode(param,",") if x[1] and x[2] and x[3] and isPlayer(getCreatureByName(x[1])) then doPlayerAddDepotItem(getCreatureByName(x[1]), tonumber(x[2]),tonumber(x[3])) else doPlayerSendTextMessage(cid,22,"Certifique-se de que usou o comando corretamente: /anthadd nome,itemID, quantidade e de que você realmente colocou o nome de um player.") end return TRUE end return FALSE end function doPlayerAddDepotItem(cid, item, count) --By magus local item,count,pid = type(item)=="table" and item or {item},type(count)=="table" and count or {(count or 1)},getPlayerGUID(cid) doRemoveCreature(cid) for k,v in ipairs(item) do local ls = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..pid.." ORDER BY `sid` DESC LIMIT 1") return db.executeQuery("INSERT INTO `player_depotitems` (`player_id`, `sid`, `pid`, `itemtype`, `count`, `attributes`) VALUES ("..pid..", "..(ls:getDataInt("sid")+1)..", 101, "..v..", "..count[k]..", '"..(count[k] > 1 and string.format("%x",count[k]) or '').."')") or false end end
     
    tag

    <talkaction words="/anthadd" event="script" value="anthadd.lua"/>
     
    exemplo de uso:
     

     
     
    @edited
     
    nem vi q o jhon ja tinha postado
    xD
  3. Upvote
    Vodkart got a reaction from M i s s in Bau que venha itens aleatorios? REP+   
    faltou usar o 'return' nas mensagens
     
     
    function onUse(cid, item, fromPosition, itemEx, toPosition) local config = { s = 11128, -- storage level = 50, -- level minimo time = 60, -- tempo em minutos para voltar a abrir a chest item = {{2160, 1},{2152, 25},{2148, 50} } -- items sortiados(pode adicionar mais) } if getPlayerLevel(cid) < config.level then return doPlayerSendCancel(cid, "Você deve ter pelo menos level ".. config.level .." para abrir a Chest.") elseif getPlayerStorageValue(cid, config.s) >= os.time() then local minutos = math.floor((getPlayerStorageValue(cid, config.s) - os.time())/(60)) return doPlayerSendCancel(cid, "Você deve esperar ".. (minutos < 0 and 0 or minutos) .." minutos para voltar a abrir o Bau.") end local r = math.random(1, #config.item) doPlayerAddItem(cid, config.item[r][1], config.item[r][2]) setPlayerStorageValue(cid, config.s, os.time()+config.time*60) return true end
  4. Upvote
    Vodkart got a reaction from premii in Como Fazer Loop Para Checar Quais Players Têm Storage X.   
    function onThink(interval, lastExecution) local players = {} local storage,items = 12345, {2160, 100} for _, pid in pairs (getPlayersOnline()) do if getPlayerStorageValue(pid, storage) >= 1 then table.insert(players, pid) end end if #players > 0 then for i = 1, #players do doPlayerAddItem(players[i], items[1], items[2]) end end return TRUE end
  5. Thanks
    Vodkart got a reaction from M i s s in Matar Monstro Abrir Tp, Remover Parede, Ganhar Storage   
    Creditos:
    Vodkart
    Kydrai
     
    fala galerinha resolvi posta alguns script que acontece quando o player mata algum monstro ...
     
    o primeiro é o script que acontece quando voce mata um Monstro abre o teleport.
    o segundo é matar o monstro e sumir a parede por algum tempo.
     
    Obs: o Nome do monstro deve ser colocado com Letra Maiuscula.
     
     
    [ Matar monstro e abrir Teleport ]
    creaturescript\script
     
     
     
     
     
     
    [ Matar Monstro e parede sumir por determinado tempo ]
     
    creaturescript\script
     
     
     
    [ Matar Monstro e ser teleportado ]
     
     
     
     
     
    [ Matar Monstro e Ganhar Storage ]
     
     
  6. Haha
    Vodkart got a reaction from HyutsukaADM in Npc De Recompensa   
    hj é domingo > tenho tempo
    e lua não tem mistério, se aprende fácil, basta querer aprender tbm
  7. Upvote
    Vodkart reacted to Yan Oliveira in NPC - Teleport se tiver X horas online   
    Pelo que entendi a partir do momento que o player tiver X horas online ele pode ser teleportado quantas vezes quiser certo? Vamos lá!
     
    Primeiro, vá em Data/Creaturescripts/Scripts e abra o arquivo login.lua e embaixo da função onLogin() coloque essa linha:
     
    setPlayerStorageValue(cid, 777777, os.time())  
    Agora vá em Data/Npc e crie um arquivo XML chamado Teleporter.xml (ou o nome que achar melhor) e adicione o código dentro:
     
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Telep" script="Teleporter.lua" walkinterval="4000" floorchange="0" level="1" maglevel="1"> <health now="150" max="150"/> <look type="1421" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|! Would you like to be teleported? Say {help} or {ajuda} for more informations."/> </parameters> </npc>  
    Agora abra a pasta Scripts dentro da pasta NPC e crie um arquivo chamado Teleporter.lua e adicione o código dentro:
     
    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function GetHourFromSeconds(hour) return 60 * 60 * hour end 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 -- VARIÁVEIS -- msg = string.lower(msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local position = {x= 1500, y= 1500, z= 7} -- POSIÇÃO PARA ONDE SERÁ TELEPORTADO local tempo_minimo = 1 -- QUANTIDADE DE HORAS QUE SERÁ NECESSÁRIO ESTAR ONLINE PARA SER TELEPORTADO local local_name = 'Village' -- NOME DO LOCAL OU PARA ONDE SERÁ TELEPORTADO local storage_time = 777777 -- STORAGE QUE ARMAZENA O TEMPO ONLINE DO PLAYER ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then selfSay("If you want to teleport to {" .. local_name .. "} you need to be at least {" .. tempo_minimo .. "} hour(s) online. Are you online the enough time to be teleported?", cid) talkState[talkUser] = 1 elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if (getPlayerStorageValue(cid, storage_time) + GetHourFromSeconds(tempo_minimo)) <= os.time() then selfSay("Good journey!", cid) doTeleportThing(cid, position) else selfSay("You aren't online enough time to be teleported", cid) end talkState[talkUser] = 0 return true elseif (msgcontains(msg, 'no') or msgcontains(msg, 'não')) and talkState[talkUser] == 1 then selfSay("Ok, goodbye!", cid) talkState[talkUser] = 0 return true else selfSay("I didn't understand what you said", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
    Agora vá na pasta Data/Globalevents/Scripts e crie um arquivo chamado ResetTeleportTime.lua e adicione o código dentro:
     
    local storage = 777777 -- STORAGE QUE ARMAZENA O TEMPO ONLINE DO PLAYER function onTimer() for _, player in pairs(getPlayersOnline()) do if getPlayerStorageValue(player, storage) > 0 then setPlayerStorageValue(player, storage, 0) end end return true end  
    E por fim, volte na pasta Data/Globalevents e abra o arquivo globalevents.xml e adicione o seguinte código dentro:
     
    <globalevent name="reset_teleport" time="00:00" event="script" value="ResetTeleportTime.lua"/>  
    Eu deixei todas as variáveis comentadas, só alterar os valores desejado nelas.
     
    Teste e me avise se der algum problema.
  8. Upvote
    Vodkart reacted to Yan Oliveira in NPC - Teleport se tiver X horas online   
    De nada! ?
  9. Upvote
    Vodkart reacted to Yan Oliveira in NPC - Teleport se tiver X horas online   
    Como o CID é um ponteiro, ele vai mudar sim quando o player relogar ou deslogar. Mas por que você precisa ou quer saber essa informação? Essa informação não terá impacto no script que fiz para você, só dependerá do player ficar online.
  10. Upvote
    Vodkart reacted to Yan Oliveira in NPC - Teleport se tiver X horas online   
    Sim, tanto é que no Login.lua em baixo do onLogin() ele sempre recebe o tempo atual que ele logou pela função os.time():
     
    setPlayerStorageValue(cid, 777777, os.time()) Como pode ver na linha acima, ele seta o tempo atual do login para a storage 777777. Então sempre que o cara logar, vai começar a contar a partir desse momento.
  11. Upvote
    Vodkart reacted to Yan Oliveira in NPC - Teleport se tiver X horas online   
    Que bom que funcionou!
     
    Tem como sim!
     
    Troque o código do arquivo Teleporter.lua (arquivo lua do NPC) por esse:
    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function GetHourFromSeconds(hour) return 60 * 60 * hour end function GetTime(time_seconds) local out = {} local dateFormat = { {'hora', time_seconds / 60 / 60}, {'minuto', time_seconds / 60 % 60}, } for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if (v > -1) then table.insert(out, (k < #dateFormat and '' or ' and ') .. v .. '' .. (v <= 1 and t[1] or t[1].."s")) end end if tonumber(dateFormat[1][2]) == 0 and tonumber(dateFormat[2][2]) == 0 then return "segundos" end return table.concat(out) end 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 -- VARIÁVEIS -- msg = string.lower(msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local position = {x= 1500, y= 1500, z= 7} -- POSIÇÃO PARA ONDE SERÁ TELEPORTADO local tempo_minimo = 8 -- QUANTIDADE DE HORAS QUE SERÁ NECESSÁRIO ESTAR ONLINE PARA SER TELEPORTADO local local_name = 'Village' -- NOME DO LOCAL OU PARA ONDE SERÁ TELEPORTADO local storage_time = 777777 -- STORAGE QUE ARMAZENA O TEMPO ONLINE DO PLAYER local level = 100 -- LEVEL MÍNIMO PARA TELEPORTAR local effect = true -- true PARA TER EFEITO E false SEM EFEITO AO TELEPORTAR local effect_id = 25 -- ID DO EFEITO AO TELEPORTAR ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then selfSay("If you want to teleport to {" .. local_name .. "} you need to be at least {" .. tempo_minimo .. "} hour(s) online. Are you online the enough time to be teleported?", cid) talkState[talkUser] = 1 elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if getPlayerLevel(cid) >= level then if (getPlayerStorageValue(cid, storage_time) + GetHourFromSeconds(tempo_minimo)) <= os.time() then selfSay("Good journey!", cid) doTeleportThing(cid, position) if effect then doSendMagicEffect(getThingPos(cid), effect_id) end else selfSay("Only is possible to teleport if you are online at least " .. tempo_minimo .. " hours. You are online " .. GetTime(getPlayerStorageValue(cid, storage_time)) .. ".", cid) end else selfSay("You need to be at least level " .. level .. " to teleport.", cid) end talkState[talkUser] = 0 return true elseif (msgcontains(msg, 'no') or msgcontains(msg, 'não')) and talkState[talkUser] == 1 then selfSay("Ok, goodbye!", cid) talkState[talkUser] = 0 return true else selfSay("I didn't understand what you said", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
    Na variável level você coloca o nível mínimo, na variável effect mude para false caso não queira efeito ao teleportar e na variável effect_id coloque o id do efeito que quer ao teleportar caso opte pelo efeito. Também precisa ajustar os valores das variáveis que você tinha colocado, no caso da posição e nome do lugar. De resto não precisa alterar mais nada, só colocar o tempo em horas que quer na variável tempo_minimo.
  12. Amei
    Vodkart got a reaction from bilet in [ Talkaction ]Comando !party   
    explicação:
    Ao usar o comando,ele checkará os player que estão na party, mostrando o Nome e level deles.
     
     
    party.lua

    function onSay(cid, words, param, channel) local players = getPartyMembers(getPartyLeader(cid)) local str = "" if isInParty(cid) == true then str = str .. "" .. #players .. " Jogadores na Party:\n" for i, k in ipairs(players) do str = str .. "" .. getCreatureName(k) .. "[".. getPlayerLevel(k) .."]" if i ~= #players then str = str .. ", " end end str = str .. "." doShowTextDialog(cid, 6579, str) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você precisa estar em Party.") end return TRUE end
     
    talkactions.xml adicione a tag:

    <talkaction words="!party" script="party.lua"/>
  13. Upvote
    Vodkart got a reaction from GOD Vitor in Trade Logs   
    Explicação:
     
    Vocês sabem que os comandos que o GOD usa ficam salvos em um arquivo.txt certo?
    Esse sistema é parecido, só que quando o jogador for trocar items pelo trade vão ficar salvo os IDS dos items que foram trocados e os nomes dos players.
     
     
     
     
    1° Versão é feita pelo Banco de dados:
     
     
     
    2° Versão é salvo em um arquivo.txt em data/logs
     
     
  14. Upvote
    Vodkart got a reaction from Kevin vem 69 in Simple Task 3.0   
    Mods:
     
     
     
     
    NPC
     
     
     
    Como configurar?
     
     
  15. Upvote
    Vodkart got a reaction from gutaxavier in Matar Monstro Abrir Tp, Remover Parede, Ganhar Storage   
    Creditos:
    Vodkart
    Kydrai
     
    fala galerinha resolvi posta alguns script que acontece quando o player mata algum monstro ...
     
    o primeiro é o script que acontece quando voce mata um Monstro abre o teleport.
    o segundo é matar o monstro e sumir a parede por algum tempo.
     
    Obs: o Nome do monstro deve ser colocado com Letra Maiuscula.
     
     
    [ Matar monstro e abrir Teleport ]
    creaturescript\script
     
     
     
     
     
     
    [ Matar Monstro e parede sumir por determinado tempo ]
     
    creaturescript\script
     
     
     
    [ Matar Monstro e ser teleportado ]
     
     
     
     
     
    [ Matar Monstro e Ganhar Storage ]
     
     
  16. Upvote
    Vodkart got a reaction from Duhisback in Simple Task 3.0   
    Mods:
     
     
     
     
    NPC
     
     
     
    Como configurar?
     
     
  17. Upvote
    Vodkart got a reaction from 1579091 in Addon Doll Por First Addon! Ou Second Addon! Sistema Igual Underwar, Sem Addon Full   
    function onSay(cid, words, param) local femaleOutfits = { ["citizen"]={136}, ["hunter"]={137}, ["mage"]={138}, ["knight"]={139}, ["noblewoman"]={140}, ["summoner"]={141}, ["warrior"]={142}, ["barbarian"]={147}, ["druid"]={148}, ["wizard"]={149}, ["oriental"]={150}, ["pirate"]={155}, ["assassin"]={156}, ["beggar"]={157}, ["shaman"]={158}, ["norsewoman"]={252}, ["nightmare"]={269}, ["jester"]={270}, ["brotherhood"]={279}, ["demonhunter"]={288}, ["yalaharian"]={324}, ["warmaster"]={336} } local maleOutfits = { ["citizen"]={128}, ["hunter"]={129}, ["mage"]={130}, ["knight"]={131}, ["nobleman"]={132},["summoner"]={133}, ["warrior"]={134}, ["barbarian"]={143}, ["druid"]={144}, ["wizard"]={145}, ["oriental"]={146}, ["pirate"]={151}, ["assassin"]={152}, ["beggar"]={153}, ["shaman"]={154}, ["norsewoman"]={251}, ["nightmare"]={268}, ["jester"]={273}, ["brotherhood"]={278}, ["demonhunter"]={289}, ["yalaharian"]={325}, ["warmaster"]={335}, ["wayfarer"]={366} } local msg = {"Command requires GOOD param!", "You dont have Addon Doll!", "Bad param!", "Full Addon Set sucesfully added!"} local x = string.explode(param, ",") if(getPlayerItemCount(cid, 8982) > 0) then if param ~= "" then if maleOutfits[x[1]:lower()] and femaleOutfits[x[1]:lower()] then if (x[2] == '1' or x[2] == '2') then doPlayerRemoveItem(cid, 8982, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[4]) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) if(getPlayerSex(cid) == 0)then doPlayerAddOutfit(cid, femaleOutfits[x[1]:lower()][1], x[2]) else doPlayerAddOutfit(cid, maleOutfits[x[1]:lower()][1], x[2]) end else doPlayerSendTextMessage(cid, 27, msg[3]) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[3]) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1]) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2]) end return true end
     
    exemplo:
     
    !addon knight, 1
     
    Créditos: Bogart
  18. Upvote
    Vodkart got a reaction from gabriel28 in Trade Logs   
    Explicação:
     
    Vocês sabem que os comandos que o GOD usa ficam salvos em um arquivo.txt certo?
    Esse sistema é parecido, só que quando o jogador for trocar items pelo trade vão ficar salvo os IDS dos items que foram trocados e os nomes dos players.
     
     
     
     
    1° Versão é feita pelo Banco de dados:
     
     
     
    2° Versão é salvo em um arquivo.txt em data/logs
     
     
  19. Upvote
    Vodkart got a reaction from guilherme Silva in Npc Auction   
    Versões: Foi feito para servidores que não tem o market system, mas funciona desde o 8.54 até 9.6+
     
    Suporta: servidores Sqlite e MySql
     
    Sobre: O Npc basicamente funciona da seguinte maneira, você "deposita" alguns items neste npc e durante "X" dias ele vende para você, claro que o npc irá cobrar "Y" preço pelo serviço...
     
    Para mais informações acessem o link que explica com imagens: http://www.xtibia.co...mo-auction-npc/
     
     
    Basta fazer o download, executar a query que é pedida e depois disso colocar os arquivos em seus respectivas pastas.
    Npc Auction.rar
  20. Thanks
    Vodkart got a reaction from nazesaria in New Marriage System   
    script usa esse:
     
    http://pastebin.com/C4f7d8GU
     
    e em outfits.xml deixa as outfits de casamento assim:
     

    <outfit id="23" quest="150420"> <list gender="0" lookType="329" name="Wife"/> <list gender="1" lookType="328" name="Husband"/> </outfit>
  21. Upvote
    Vodkart got a reaction from AncientGhastlyD in Báu/alavanca/npc Que Troca Vip Coin Por Items   
    Alavancas e báus
     
     
     
     
     
     
    Npc's
     
     
  22. Thanks
    Vodkart got a reaction from Polguilo in [Creaturescripts] Function Ondeath   
    teleportmon.lua

    function onDeath(cid, corpse, killer) local Ppos = {x = 340, y = 840, z = 15} -- posicao para onde ele vai ir local monstName = "Pythius The Rotten" -- nome do monstro if isMonster(cid) then if string.lower(getCreatureName(cid)) == string.lower(monstName) then doTeleportThing(killer[1], Ppos) end end return TRUE end
     
     
    em creaturescript.xml adicione a tag:
     

    <event type="death" name="TelePort" event="script" value="teleportmon.lua"/>
     
     
    No arquivo Xml do seu monstro adicione

    <script> <event name="TelePort"/> </script>
  23. Upvote
    Vodkart got a reaction from fujaloco in Modal Dialog para TFS 1.0   
    se for pra postar coisa pela metade então não posta né seu filho da puta
    fica querendo se aparecer aí
  24. Upvote
    Vodkart got a reaction from JS Lotus in Comando de Rank Points por Storage   
    adc na sua lib
     
     
    function getRankStorage(cid, value, max, RankName) -- by vodka local str ="" str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n\n" local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY cast(value as INTEGER) DESC;") if (query:getID() ~= -1) then k = 1 repeat if k > max then break end str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "]" k = k + 1 until not query:next() end return doShowTextDialog(cid, 2529, str) end
    dps só usar assim em uma talk: getRankStorage(cid, 543995, 10, "Rank Boss")
  25. Upvote
    Vodkart got a reaction from djteteh in 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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...