-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por TsplayerT
ALO, COM QUEM EU FALO?
Galera fui abrir meu Server de POkeTibia, porém apareçeu erros no Console quando fui logar-se e assim não consigui entrar no server
Erro apresentado no Console:
Estarei disponibilisando os arquivos citados no erro.
Arquivo: Cooldown Bar
Arquivo: Login
POR FAVOR, ME AJUDEM PORQUE SEMPRE TENTO AJUDAR A TODOS
DAREI REP +
Obrigado
-
Por luangop
Olá, gostaria que alguém me ajudasse neste sistema... tenho um conceito bolado porém não sei desenvolver os scripts... Meu TFS é 0.4.
*Explicação do uso do sistema: Todos os dias as 20:00 horas um teleport é criado no templo, sendo que quem entrar nele será levado para a área donate, e as 20:45 o teleport some e todos que entraram no mesmo são teleportados para o templo.
De acordo com o conceito que elaborei o sistema se divide em duas partes:
Primeira parte:
Acredito que essa primeira parte não seja muito difícil.. o mais complicado vem agora:
Segunda parte:
*Obs sobre a segunda parte: Não sei se é possível fazer com que mesmo os players que entraram e receberam a storage, e no momento (20:45) estiverem offline sejam levados para o templo, caso isso não seja possível a solução seria criar uma função onLogin em creaturescripts para quando o player logar se tiver a storage registrada ser teleportado imediatamente para o templo.
É isso galera, tentei explicar com o máximo de detalhes o que eu quero, mas qualquer dúvidas é só perguntar que esclareço! Conto com a ajuda de vocês!
-
Por EddyHavoc
Perfect Vip system 2.2
Versão Testada:TFS 0.3.6 - 8.54 - 8.60
Creditos pelas modificações: Kydrai,Nicekid e Marcryzius e EddyHavoc
Creditos pelas publicações: EddyHavoc e Vodkart
Oque Contém no Sistema vip 2.2?
Quote
- Compra Vip pela talkaction ( Comando !buyvip ) -- ou sem o comando.
- Tile para somente Players Vip passarem ( conta também com funçâo os.time )
- verifica quantos dias de Vip o character ainda possui.
- Administradores(GOD) podem adicionar e remover dias de Vip para characters.
-- Administradores(GOD) podem checkar dias de Vip dos Players.
-- É adicionado [VIP] ao nome e retirado quando a vip Acabar.
GOD Adicionando e Removendo dias de Vip
Comprando VIP e Checkando dia da sua VIP
Quote
Comando:
comprar vip:
!buyvip
checkar dias de vip:
!vipdays
God checkar dias de vip do character:
/checkvip Nick
exemplo: /checkvip Nicekid
God adionar dias ao character:
/addvip Nick,dias
exemplo: /addvip Nicekid,5
aqui adicionei 5 dias de vip.
God Retirar dias de Vip do character:
/delvip Nick,dias
exemplo: /delvip Nicekid,5
aqui retirei 5 dias de vip.
Primeiro passo
vá até talkactions/scripts Crie um arquivo.lua e renomeie para systemvip.lua
dentro coloque:
-- Script System Vip 2.2 -- function onSay(cid, words, param) if(words == "!buyvip") then local price = 5000000 if doPlayerRemoveMoney(cid, price) == TRUE then local days = 30 local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local name = getCreatureName(cid) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") end elseif(words == "!vipdays") then local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no seu character.") elseif(words == "/checkvip") then if getPlayerAccess(cid) == 5 then if not param then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(param) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") end local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(player, 13540) - timenow)/(24 * 60 * 60)) doPlayerPopupFYI(cid, "O jogador tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no character.") return TRUE end elseif(words == "/addvip") then if getPlayerAccess(cid) == 5 then local t = string.explode(param, ",") if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(t[1]) local name = getCreatureName(player) local days = t[2] local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end local daysvalue = days*3600*24 local storageplayer = getPlayerStorageValue(player, 13540) local timenow = os.time() local time = storageplayer <= 0 and (timenow + daysvalue) or (storageplayer + daysvalue) if string.find(tostring(getCreatureName(pid)),"[[Vip]]") then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.") else setPlayerStorageValue(player, 13540, time) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";") doRemoveCreature(player) end end elseif(words == "/delvip") then if getPlayerAccess(cid) == 5 then local dec = MESSAGE_INFO_DESCR if(param == "") then return TRUE,doPlayerSendTextMessage(cid,18,"Command param required.")end local C,t = {},string.explode(param, ",") C.pos = getPlayerPosition(cid) C.uid = getCreatureByName(t[1]) C.time = ((tonumber(t[2]) == nil) and 1 or tonumber(t[2]))*3600*24 --Tempo da vip por dia. C.days = (tonumber(t[2]) == nil) and 1 or tonumber(t[2]) --Dias de vip. if(getPlayerStorageValue(C.uid,13540) < C.time)then doPlayerSendTextMessage(cid,dec,'O jogador '..t[1]..' não possui '..C.days..' dias de vip.') else doPlayerSendTextMessage(cid,dec,'Você removeu '..C.days..' dias de vip do player '..t[1]..'.') setPlayerStorageValue(C.uid,13540,getPlayerStorageValue(C.uid,13540)-C.time) end doSendMagicEffect(C.pos, math.random(28,30)) end end return TRUE end price = é o quanto a vip vai custar em gps days = quantos dias de vip serão adicionados ao player em talkactions.xml adicione a tag:
<talkaction words="!vipdays;!buyvip;/checkvip;/addvip;/delvip" script="systemvip.lua"/> Pronto primeiro passo terminado. Sistema vip sem o !buyvip abra a spoiler Spoiler ---------------------------------------------------------------------------------------------------------------------------- Tile VIP Segundo passo. vá até movements/scripts crie um arquivo.lua e renomeie para vipe.lua dentro coloque:
-- Script Vip Sytem 1.0 -- function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "Você não e vip ,fale com Administrador do Server.", msgWelcome = "Seja Bem Vindo a Area vip." } if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end Em movements.xml adicione a tag: <movevent type="StepIn" uniqueid="13700" event="script" value="vipe.lua"/> FIM DA VIP creaturescript/script crie um arquivo.lua e renomeie para endvip.lua e cole isso dentro dele:
--[[ by EddyHavoc Tibiaking.com ]]-- function onLogin(cid) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then setPlayerStorageValue(cid, 9898, 1) end local pos = {x = 157, y = 50, z = 7} -- posiçao do templo. function EddyHavoc(cid) if isPlayer(cid) then db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(getCreatureName(cid), 7).."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end end if getPlayerStorageValue(cid, 9898) == 1 and getPlayerStorageValue(cid, 13540) - os.time() < 1 or getPlayerStorageValue(cid, 13540) - os.time() == 0 then doTeleportThing(cid, pos) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then addEvent(EddyHavoc, 3*1000, cid) end end return TRUE end em creaturescript.xml adicione a tag:
<event type="login" name="CheckVip" script="endvip.lua"/>[i] Pronto Seu sistema Vip está terminado.
-
Por Rusherzin
Andei procurando um Heart System e a maioria deu erros, então, eu resolvi fazer um..
Para quem não sabe, ele funciona assim:
Se (e somente se) um player matar outro ele ganhará um coração (usei como exemplo aquele coração de um Morgaroth que é geralmente usado) e nele virá escrito o seguinte:
Ex: Matei o player Rusherzin :c
Receberei o item assim:
You see the Rusherzin Heart's. It weighs 35.00 oz. Killed at Level 694 by Eu. (Unjustified) Ok, agora que sabemos como funciona vamos ao script.
data/creaturescripts/
creaturescripts.xml
<event type="kill" name="Reward" event="script" value="reward.lua"/>
data/creaturescripts/scripts/
reward.lua
function onKill(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerIp(cid) ~= getPlayerIp(target) then local config = { Kname = getPlayerName(cid), Tname = getPlayerName(target), Tlevel = getPlayerLevel(target), } local heart = doPlayerAddItem(cid, 5943, 1) doItemSetAttribute(heart, "name", "" ..config.Tname.. " Heart's") doItemSetAttribute(heart, "description", "Killed at Level "..config.Tlevel.." by "..config.Kname..". " .. (getCreatureSkullType(cid) <= SKULL_GREEN and "(Unjustified)" or "(Justified)")) elseif getPlayerIp(cid) == getPlayerIp(target) then doPlayerAddExp(cid, -10000) end end return true end
OBS: Se o player matar algum char dele (com mesmo ip), ele não receberá o coração e será punido com perda de Experience. Configurável nessa parte:
doPlayerAddExp(cid, -10000) Qualquer dúvida ou erro que ocorra é só perguntar aí, abraço.
-
Por HSinhori
function onLogin(cid) local strg = getPlayerStorageValue(cid, 11090) local strgname = getPlayerStorageValue(cid, 11091) local strgValue = 0 local name = getPlayerName(cid) if (strg < 1) then doCreatureSetStorage(cid, 11090, 1) else if strgname == "" then strgname = name doCreatureSetStorage(cid, 11090, name) end db.executeQuery("UPDATE `players` SET `name` = '"..strgname.."' WHERE `id` = "..getPlayerGUID(cid)..";") db.executeQuery("UPDATE `players` SET `name` = '"..strgname.." ["..strg.."]' WHERE `id` = "..getPlayerGUID(cid)..";") strgValue = strg + 1 doCreatureSetStorage(cid, 11090, strgValue) end doPlayerSave(cid, true) return true end Eu tenho um ot de war em que é permitido entrar no mesmo personagem ao mesmo tempo, mas isso buga o "exura sio" e o "exiva", então tentei fazer esse script pra que ao entrar no boneco seja adicionado um numero após o nome "Nome [1]... Nome [2]... e assim por em diante", mas não obtive sucesso, o que eu consegui de outra forma que não esse script foi adicionar o numero um varias vezes, ficando o nome do personagem assim "Nome [1] [1] [1]", alguém poderia me ajudar? Esse script não apresenta erro na distro em momento algum porém também não funciona
-
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.