.lua [APENAS TFS 1.x] Fabrica de Script
-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por FeeTads
salve rapaziada, estou fazendo uma quest no meu OT que é necessário faze-la durante 10 dias consecutivos, porém caso o player perca um dia, a storage da quest reseta.
Já tenho esses scripts prontos de 2 formas: global event que checa a storage de todos os player online no momento e caso ja tenha passado 24h ele tira a storage do player que está entre os 10 dias de quest.
E também tenho um creatureScript de onLogin() que quando o player loga, ele entra num loop de verificação a cada 60s
minha duvida: globalEvents vai checar todos os players online de uma só vez e fazer as alterações necessarias, isso pode lagar a distro, ou até mesmo crashar?
o creatureScript vai entrar num loop até o player deslogar, isso numa média de 250 pessoa são diversas verificações em momentos diferentes, pode acabar lagando ou crashando?
meu OT possui uma media de 300 pessoas online.
Script globalEvents é esse:
function onThink(interval, lastExecution)
local players = {}
local timer = os.time()
for _, pid in pairs (getPlayersOnline()) do
local storage = getPlayerStorageValue(pid, 1231234)
if getPlayerStorageValue(pid,888251) > 0 and getPlayerStorageValue(pid,888251) <= 9 then
if storage - timer <= 1 then
table.insert(players, pid)
end
end
end
if #players > 0 then
for i = 1, #players do
doPlayerSendTextMessage(players[i],22,"seu dano voltou ao normal por vc nao ter feito a quest!")
setPlayerStorageValue(players[i],888251,0)
end
end
return true
end
Script do Creature é esse:
local storage = getPlayerStorageValue(cid,1231234)
function checkStorage(cid) local timer = os.time()
if not isPlayer(cid) then return true end
if getPlayerStorageValue(cid,888251) > 0 and getPlayerStorageValue(cid, 888251) <= 9 then
if storage - timer <= 1 then
setPlayerStorageValue(cid,888251,0)
end
end
addEvent(function()
checkStorage(cid)
end, 60000)
end
function onLogin(cid)
checkStorage(cid)
return true
end
function onLogout(cid)
stopEvent(checkStorage[cid])
return true
end
caso os códigos nao estejam legiveis me avisem como arrumar em .lua pf
se quiserem usar os códigos podem usar a vontade kkkkkkk
-
Por llucas75
Oi tudo bem galera do tk?
Eu estava modificando um script de potion de exp ai estava colocando por player ganhar tal storage quando bebesse a pot, e quando o efeito acabasse ele perdesse o storage(tudo no script esta funcional menos a parte de perder o storage)
Script expo.lua
Se alguem souber pq o storage não volta pro 0 ao acabar o tempo eu agraceço.
-
Por softanon
Olá pessoas e Humanos,
estou aqui para pedir suporte sobre um bug que apareceu no meu servidor cyan 2.0 by senhor H simplesmente do nada postarei prints abaixo
quando eu tento logar em alguma conta:
Se alguem poder me dar suporte agradeço desde já
(se estiver na areá errada me desculpe essa é minha primeira postagem)
-
Por Amorpornto
Ola galera do tk desculpe se eu estiver criando o topico na area errada pois estou meio confuso ainda.
Então galera eu sou novo nessas coisas e queria entender um pouco sobre as spells/script/algunsjutsus do meu servidor.
então galera eu queria entender o seguinte se tem como eu colocar um delay quando o effect 359 sair, no meu caso é um meteoro e quando o effect do meteoro aparece ele ja deu o dano no target, se alguem poder me ajudar eu queria colocar um delay nele que so pra quando o meteoro bater no chão dar o dano. uma coisa que eu observei é que ali no distanceeffect eu tenho q colocar uma que n existe para n ter uma distanceeffect a+, eu ja mudei uma vez para effect só que o meteoro precisa ser adicionada uma position que no caso é x+1 precisa andar 1 sqm para a direita pra ficar perfeitinho, os outros effects são um susano no player e uma explosão no target, pra deixar bem claro eu quero deixar no estilo do jutsu do madara do ntoultimate , tfs 0.3.6, a seguir o script:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 42)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -150.3, 1, -153.3, 1)
function onCastSpell(cid, var)
local waittime = 4 -- Tempo de exhaustion
local storage = 115818
if exhaustion.check(cid, storage) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
local position2 = {x=getCreaturePosition(cid).x+3, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
local position3 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
doSendMagicEffect(position1, 359)
doSendMagicEffect(position2, 310)
doSendMagicEffect(position3, 250)
exhaustion.set(cid, storage, waittime)
return doCombat(cid, combat, var)
end
-
Por thelifeofpbion
Bom Tenho essa serie de comandos de if, preciso de um if pra saber se a pessoa ta dentro do templo ou alguma area protection zone, como faço?
if (configs.premmy) and not(isPremium(cid)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You must have a premium account to use this system.") end if (getPlayerLevel(cid) < configs.level) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce deve ter pelo menos nivel " .. configs.level .. " para usar esse sistema.") end if not(isInArray(funcs, param)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce digitou uma opcao invalida, para obter ajuda digite ".. words .. " help.") end if (param == "on") then if (getCreatureCondition(cid, CONDITION_INFIGHT)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce nao pode ativar o sistema com fight.") end
-
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.