
Tudo que Vodkart postou
- Exclusive Cave System By Account! 8.6
- Exclusive Cave System By Account! 8.6
- Exclusive Cave System By Account! 8.6
-
Exclusive Cave System By Account! 8.6
Explicação: Este sistema proporciona ao jogador a compra de determinada cave por "X" tempo, cada conta poderá comprar somente 1 cave por vez... Lá o jogador poderá upar livremente. Também poderá chamar um amigo para upar na sua cave!! O sistema é o mais completo do mercado, vou estar falando do mesmo abaixo. OBS: Não esqueça de executar a query para funcionar!! Exclusive Cave System Features Dentro do pacote terá duas versões: versão 1 : É para vendar as caves em money(Gold's) Versão 2: É para vender as caves por items, por exemplo por moedas especiais como scarab coins(ID 2159) O sistema é feito por banco de dados O tempo da cave é mostrado em tempo real Você poderá chamar um amigo para sua cave e também remove-lo quando quiser. Existe um globalevents especifico para mostrar no default quando uma cave ficou disponível para venda! (Irá informar o nome da cave o preço dela!) Você poderá configurar a cave para vender por exemplo: - Level minimo e máximo! - Tempo de duração da cave - Se precisa ser premium account para comprar a cave! Quando o tempo da cave expira tanto o dono da cave como o friend invitado são removidos da cave, mesmo estando offline ou online! Comandos exclusivos: Comando para dono da cave: /mycave - Mostra informações da sua cave, como: - Nome da cave - Nome do seu amigo de cave(caso tiver invitado) - Quando tempo falta para expirar o tempo da sua cave /addcavefriend - Adiciona um amigo seu para que ele possa entrar e sai da sua cave quando quiser... Obs: Tem um exhausted de 1 hora(configurável) para não ficar toda hora tirando e colocando amigo na cave. /removecavefriend - Remove o seu amigo da sua cave(caso ele esteja dentro da cave tanto offline quanto online, ele é removido) /cavetime - Mostra quando tempo falta para expirar a sua cave Comando para amigo invitado da cave: /cavefriendtime - Mostra quando tempo falta para expirar a cave que ele invitado. /caveleave - Comando para ele se kikar da cave que está invitado. Comandos adicionais importante para todos: /cavelist -- Mostra em uma janela todas as caves do servidor /cave ID -- Neste comando você terá que usar o ID da cave que deseja saber as infor,ações, por exemplo: /cave 1 -- Irá mostrar em uma janela todas as informações desta cave, como: -Nome da cave -Preço da cave -Level Minimo e Level Maximo para comprar a cave -Se nesta cave precisa ser Premium Account para comprar ou não. /cavepurchase -- Filtra em uma janela somente as caves que estão disponíveis para compra. ---------------------------------------------------------------------------------------------------------------------------------------------------- Configurações: Vá na lib e irá se deparar com duas tabelas... Esta primeira tabela é onde você irá adicionar novas caves e atribuir as configurações, exemplo: exclusives_caves_areas = { -- adicionar as caves [1] = {name = "Demon Hunter", price = 1000, level = {min = 8, max =30}, time = 4, premium = false, enter = {x = 284, y = 223, z = 7}, from = {x = 275, y = 219, z = 5}, to = {x = 302, y = 240, z = 7}}, [2] = {name = "Hydras Thow", price = 2000, level = {min = 10, max = 1000}, time = 3, premium = true, enter = {x = 148, y = 218, z = 7}, from = {x = 137, y = 217, z = 7}, to = {x = 161, y = 234, z = 7}} } [1] -- Entre os colchetes é o ID da cave, favor colocar e ordem. name = "Demon Hunter" -- Entre as aspas "" Você atribui o nome da cave price = 1000 -- Preço em gps da sua cave(caso use a versão que vende em gps) level = {min = 8, max =30} -- Aqui voce coloca o level min e max que o jogador tem que ser para comprar a cave time = 4 -- Tempo em horas que o jogador poderá ficar na cave premium = false -- Se para comprar a cave terá que ser premium (false ou true) enter = {x = 284, y = 223, z = 7} -- Pos de entrada da cave from = {x = 275, y = 219, z = 5}, -- Aqui você deverá pegar a pos do começa da cave to = {x = 302, y = 240, z = 7} - - -- Aqui você deverá pegar a pos final da cave!(como se fosse um quadrado. e como adicionar mais caves por exemplo? Assim: exclusives_caves_areas = { -- adicionar as caves [1] = {name = "Demon Hunter", price = 1000, level = {min = 8, max =30}, time = 4, premium = false, enter = {x = 284, y = 223, z = 7}, from = {x = 275, y = 219, z = 5}, to = {x = 302, y = 240, z = 7}}, [2] = {name = "Hydras Thow", price = 2000, level = {min = 10, max = 1000}, time = 3, premium = true, enter = {x = 148, y = 218, z = 7}, from = {x = 137, y = 217, z = 7}, to = {x = 161, y = 234, z = 7}}, [3] = {name = "Ciclops Cave", price = 5000, level = {min = 20, max = 50}, time = 2, premium = true, enter = {x = 198, y = 320, z = 7}, from = {x = 200, y = 340, z = 7}, to = {x = 250, y = 390, z = 7}} } ---------------------------------------------------------------------------------------------------------------------------------------------------- explicando a segunda tabela: exclusives_caves_config = { storage = 547575, check = 547576, comand_add_exaust = {hours = 1, storage = 547577}, -- tempo para nao ficar toda hora tirando e colocando amigo mensagem = "[Exclusive Cave System] Você foi removido ou o tempo da %s cave expirou!", serve_mensagem = "[Exclusive Cave System] A cave %s acabou de ficar liberada para venda por %d Gold's, aproveitem para compra-la no NPC!" } storage -- nao mexer! check -- não mexer!! comand_add_exhausted -- é o tempo que jogador poderá voltar a invitar outro jogador, está configurado para 1 hora!! mensagem -- não mexa serve_mensagem -- não mexa tbm kkk Só baixar e executar as querys!! Cave System.rar
-
Premium Gift By Account
@tetheuscunha Não vai funcionar mesmo, colocou 2 função main juntas...
-
[TFS 1.2+] Invite Players System!
@poko360 https://tibiaking.com/forums/topic/75794-86-invite-players-system/
-
Event Batlefield
é que na hora de copiar o código o fórum está meio que bugando eles, está vindo com caracteres especiais
-
(Resolvido)colocar efeito nesse npc
depois dessa linha: setPlayerStorageValue(cid,addoninfo.storageID,1) adiciona doSendMagicEffect(getPlayerPosition(cid), 10) -- 10 é o numero do efeito
-
PISO QUE REMOVE PAREDE
@Pifafa funciona como action tbm, só usar assim: function onUse(cid, item, fromPosition, itemEx, toPosition) local time = 30 -- em segundos local item_id, wallpos = 1543, {x=186, y=54, z=7} -- id da parede e pos dela local t = getTileItemById(wallpos, item_id).uid if t > 0 then doRemoveItem(t) doSendMagicEffect(wallpos, CONST_ME_POFF) addEvent(doCreateItem, time * 1000, item_id, 1, wallpos) end return true end claro que poderá implementar, colocando função que mande algum texto, efeito no jogador, contagem regressiva da parede, etc...
-
PISO QUE REMOVE PAREDE
function onStepIn(cid, item, position, fromPosition) local time = 30 -- em segundos local item_id, wallpos = 1543, {x=186, y=54, z=7} -- id da parede e pos dela if not isPlayer(cid) then return true end local t = getTileItemById(wallpos, item_id).uid if t > 0 then doRemoveItem(t) doSendMagicEffect(wallpos, CONST_ME_POFF) addEvent(doCreateItem, time * 1000, item_id, 1, wallpos) end return true end
-
Rank Por Storage Glovalevents [AJUDA]
function onThink(interval, lastExecution) local storage = 15000 -- valor da storage local max = 5 -- quantos jogadores irao aparecer no rank local str = "--[Rank De Storages]--\n\n" -- nome do rank local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..storage.." ORDER BY cast(value as INTEGER) DESC;") if (query:getID() ~= -1) then k = 1 repeat str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "]" k = k + 1 until k > max or not query:next() end doBroadcastMessage(str, 22) return true end
-
[8.6] Labia System
@Phineasz eu mesmo fiz isso, digamos que você upe durante a venda, certo? então os valores precisam ser atualizados no shop, então eu fecho a janela do shop e o player tem que dar trade de novo, feito isso, ele vende com novos valores... claro que poderia remover a função, mas ficaria meio esquisito.
-
[8.6] Staff Time
depois de quanto tempo? porque eu testei e está funcionando...
-
(Resolvido)Script de evento para hunt de uma criatura
https://tibiaking.com/forums/topic/73964-contagem-dos-monstros/
-
Bau Que Recompensa Por level
@victor4312 Se você for responder todos os tópicos e ajudar os membros, parcialmente ou totalmente, pode deixar que eu mesmo lhe reputo.
-
Bau Que Recompensa Por level
Como assim? Só vai ajudar então em troca de rep? Sabe que rep não é nada demais né? mera formalidade.
-
OTC ponteiros de mouses personalizados
Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
-
Bau Que Recompensa Por level
Este tópico foi movido para a área correta. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!
-
Ultimo HIT ganha o ITEM
https://tibiaking.com/forums/topic/71785-script-item-para-last-hit/
-
NPC OAK!
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,msg = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid,msg:lower() local reward_starter = { {2160, 5}, {12344, 10}, {12345, 10}, {12346, 10}, {12347, 10}, {12348, 15}, {12349, 15}, {2394, 50} } local places = { ["pallet"] = 1, ["viridian"] = 2, ["pewter"] = 3, ["cerulean"] = 4, ["saffron"] = 5, ["celadon"] = 6, ["lavender"] = 7, ["vermilion"] = 8, ["fuchsia"] = 9, ["cinnabar"] = 10, } local Choose = {"bulbasaur", "charmander", "squirtle", "chikorita", "cyndaquil", "totodile", "treecko", "mudkip", "torchic"} local sto_Oak = 748513 local sto_city = 13611 if msgcontains(string.lower(msg), 'cidade') or msgcontains(string.lower(msg), 'help') then if getPlayerStorageValue(cid, sto_city) > 0 then selfSay("Voce ja escolheu seu pokemon!", cid) return true elseif getPlayerStorageValue(cid, sto_Oak) < 1 then selfSay("Go talk with the Delia first!", cid) return true else selfSay("You can choose your beginner town between: {Saffron, Cerulean, Lavender, Fuchsia, Celadon, Viridian, Vermilion, Pewter or Cinnabar}.", cid) talkState[talkUser] = 2 return true end elseif places[msg] and talkState[talkUser] == 2 then city = msg selfSay("Are you sure which you want to begin in {".. doCorrectString(msg) .."}?", cid) talkState[talkUser] = 3 return true elseif msgcontains(msg, "yes") or msgcontains(msg, "sim") and talkState[talkUser] == 3 then selfSay("OK then... Now your beginner town is ".. doCorrectString(city)..".", cid) selfSay("Ok, talk {Choose poke or escolhe poke} and complete this mission!", cid) doPlayerSetTown(cid, places[city]) talkState[talkUser] = 4 -- alterado a baixo \/ elseif msgcontains(msg, "choose poke") or msgcontains(msg, "escolhe poke") and talkState[talkUser] == 4 then selfSay("pronto para {iniciar}?", cid) talkState[talkUser] = 5 elseif msgcontains(msg, "iniciar") or msgcontains(msg, "antigo") and talkState[talkUser] == 5 then selfSay("Ok, escolha seu pokemon, Pokes Kanto! {Charmander, Bulbasaur, Squirtle}, Pokes Johto! {Chikorita, Cyndaquil, Totodile} ou Hooen {Treecko, Mudkip, Torchic} qual voce prefere?", cid) talkState[talkUser] = 6 elseif isInArray(Choose, msg) and talkState[talkUser] == 6 then if getPlayerStorageValue(cid, sto_city) == 1 then addPokeToPlayer(cid, msg, 0, -1, 'normal', true) doSendMagicEffect(getThingPos(cid), 21) selfSay("Ok, good luck on your journey.", cid) for i = 1, #reward_starter do doPlayerAddItem(cid, reward_starter[i][1], reward_starter[i][2]) end setPlayerStorageValue(cid, sto_city, 1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) talkState[talkUser] = 0 else selfSay("Voce ja escolheu seu pokemon!", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "no") or msgcontains(msg, "No") and talkState[talkUser] > 0 then selfSay("Ok then... say again what city you want to begin!", cid) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
(Resolvido)Ajuda Script de Ban
tente trocar essa função: function isBanned(GUID) local query = db.getResult("SELECT active FROM bans WHERE param = "..GUID) if query:getID() > -1 then repeat if query:getDataInt("active") == 1 then return true end until not query:next() end query:free() return false end por essa que eu refiz: function isBanned(guid) local qry = db.getResult("SELECT `value` FROM `bans` WHERE `param` = " .. guid .. " AND `active` = 1;") if (qry:getID() ~= -1) then return true end return false end
-
Player Cria Char e ganhar 1 Dia De Donate
isso não é no spells.xml? lá tem o exhausted da magia
-
Ajuda systempoints.lua
está dizendo que na coluna "killers" não tem nada do parâmetro "war"
-
(Resolvido)Problemas com Auto Loot - TFS 0.3.7
está faltando bastante função!! coloca todas essas funções na sua lib: -- lib and functions by Vitor Bertolucci (Killua) function warnPlayersWithStorage(storage, value, class, message) -- By Killua if not value then value = 1 end if not class then class = MESSAGE_SATUS_CONSOLE_WARNING end if not storage or not message then return end if #getPlayersOnline() == 0 then return end for _, pid in pairs(getPlayersOnline()) do if getPlayerStorageValue(pid, storage) == value then doPlayerSendTextMessage(pid, class, message) end if getPlayerAccess(pid) >= 4 then doPlayerSendTextMessage(pid, class, "Message to those with storage "..storage..message) -- Gms will always receive the messages end end end function getPlayerStorageZero(cid, storage) -- By Killua local sto = getPlayerStorageValue(cid, storage) return sto > 0 and sto or 0 end function getStorageZero(storage) -- By Killua local sto = getGlobalStorageValue(storage) return sto > 0 and sto or 0 end function countTable(table) -- By Killua local y = 0 if type(table) == "table" then for _ in pairs(table) do y = y + 1 end return y end return false end function getPlayersInArea(frompos, topos) -- By Killua local players_ = {} local count = 1 for _, pid in pairs(getPlayersOnline()) do if isInArea(getCreaturePosition(pid), frompos, topos) then players_[count] = pid count = count + 1 end end return countTable(players_) > 0 and players_ or false end function getGuildNameByID(gid) -- By Killua local query = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = '"..gid.."'") if query:getID() == -1 then return false end local name = query:getDataString("name") query:free() return name end function getContainerItemsInfo(containerUid) -- By Killua local table = {} if containerUid and containerUid > 0 then local a = 0 for i = 0, getContainerSize(containerUid) do local item = getContainerItem(containerUid,i) a = a + 1 table[a] = {uid = item.uid, itemid = item.itemid, quant = item.type} end return table end return false end function getTableEqualValues(table) -- By Killua local ck = {} local eq = {} if type(table) == "table" then if countTable(table) and countTable(table) > 0 then for i = 1, countTable(table) do if not isInArray(ck, table[i]) then ck[i] = table[i] else eq[i] = table[i] end end return countTable(eq) > 0 and eq or 0 end end return false end function killuaGetItemLevel(uid) -- By Killua local name = getItemName(uid) local pos = 0 for i = 1, #name do if string.byte(name:sub(i,i)) == string.byte('+') then pos = i + 1 break end end return tonumber(name:sub(pos,pos)) end k_table_storage_lib = { filtrateString = function(str) -- By Killua local tb, x, old, last = {}, 0, 0, 0 local first, second, final = 0, 0, 0 if type(str) ~= "string" then return tb end for i = 2, #str-1 do if string.byte(str:sub(i,i)) == string.byte(':') then x, second, last = x+1, i-1, i+2 for t = last,#str-1 do if string.byte(str:sub(t,t)) == string.byte(',') then first = x == 1 and 2 or old old, final = t+2, t-1 local index, var = str:sub(first,second), str:sub(last,final) tb[tonumber(index) or tostring(index)] = tonumber(var) or tostring(var) break end end end end return tb end, translateIntoString = function(tb) -- By Killua local str = "" if type(tb) ~= "table" then return str end for i, t in pairs(tb) do str = str..i..": "..t..", " end str = "a"..str.."a" return tostring(str) end } function setPlayerTableStorage(cid, key, value) -- By Killua return doPlayerSetStorageValue(cid, key, k_table_storage_lib.translateIntoString(value)) end function getPlayerTableStorage(cid, key) -- By Killua return k_table_storage_lib.filtrateString(getPlayerStorageValue(cid, key)) end function setGlobalTableStorage(key, value) -- By Killua return setGlobalStorageValue(key, k_table_storage_lib.translateIntoString(value)) end function getGlobalTableStorage(key) -- By Killua return k_table_storage_lib.filtrateString(getGlobalStorageValue(key)) end function printTable(table, includeIndices,prnt) -- By Killua if includeIndices == nil then includeIndices = true end if prnt == nil then prnt = true end if type(table) ~= "table" then error("Argument must be a table") return end local str, c = "{", "" for v, b in pairs(table) do if type(b) == "table" then str = includeIndices and str..c.."["..v.."]".." = "..printTable(b,true,false) or str..c..printTable(b,false,false) else str = includeIndices and str..c.."["..v.."]".." = "..b or str..c..b end c = ", " end str = str.."}" if prnt then print(str) end return str end function checkString(str) -- By Killua local check = true for i = 1, #str do local letra = string.byte(str:sub(i,i)) if letra >= string.byte('a') and letra <= string.byte('z') or letra >= string.byte('A') and letra <= string.byte('Z') or letra >= string.byte('0') and letra <= string.byte('9') then check = true else check = false break end end return check end function isWalkable(cid, pos, considerCreatures) -- By Killua if considerCreatures == nil then considerCreatures = true end if getTopCreature(pos).uid and getTopCreature(pos).uid > 0 then if considerCreatures then return false else return true end end pos.stackpos = 0 if getTileThingByPos(pos).uid ~= 0 then if doTileQueryAdd(cid, pos) == RETURNVALUE_NOERROR then return true end end return false end function isArmor(uid) -- By Killua if tonumber(getItemAttribute(uid,"armor")) and tonumber(getItemAttribute(uid,"armor")) > 0 and getItemWeaponType(uid) == 0 then return true end return false end function isWeapon(uid) -- By Killua return getItemWeaponType(uid) ~= 0 end function isShield(uid) -- By Killua return getItemWeaponType(uid) == 5 end function isSword(uid) -- By Killua return getItemWeaponType(uid) == 1 end function isClub(uid) -- By Killua return getItemWeaponType(uid) == 2 end function isAxe(uid) -- By Killua return getItemWeaponType(uid) == 3 end function isBow(uid) -- By Killua return getItemWeaponType(uid) == 4 end function isWand(uid) -- By Killua return getItemWeaponType(uid) == 7 end
-
Player Cria Char e ganhar 1 Dia De Donate
vai no seu login.lua em creaturescript e adiciona antes do último "return true" -- vip days -- local days,storvip = 1, 878484 if getPlayerStorageValue(cid, storvip) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de Donate no seu character.") setPlayerStorageValue(cid, 13899, getPlayerStorageValue(cid, 13899) - os.time() <= 0 and os.time() + days * 24 * 60 * 60 or storageplayer + days * 24 * 60 * 60) setPlayerStorageValue(cid, storvip, 1) end -- end --