-
Posts
3406 -
Joined
-
Last visited
-
Days Won
113
Reputation Activity
-
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"
-
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
-
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 -
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
-
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 ]
-
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
-
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.
-
-
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.
-
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.
-
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.
-
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"/>
-
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
-
-
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 ]
-
-
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
-
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
-
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
-
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>
-
Vodkart got a reaction from AncientGhastlyD in Báu/alavanca/npc Que Troca Vip Coin Por Items
Alavancas e báus
Npc's
-
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>
-
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í
-
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") -
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.