
YagoBlindi
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
YagoBlindi deu reputação a PriisioneR em [PEDIDO] TILE EXIT TRAINERVá em MoveEvent/Scripts, crie um arquivo LUA, e renomeie para autokick.lua
dentro coloque:
local config = { tempo = 15, -- Tempo em minutos storage = 20000, -- não mexa aqui teleport = {x=160, y=54, z=7} -- coordenadas do seu templo } function onStepIn(cid, item, frompos, topos) if isPlayer(cid) == TRUE then if getPlayerStorageValue(cid, config.storage) <= 0 then kick1 = addEvent(setPlayerStorageValue, config.tempo*60*1000-1000, cid, config.storage, -1) kick2 = addEvent(doTeleportThing, config.tempo*60*1000-500, cid, config.teleport) kick = addEvent(doRemoveCreature, config.tempo*60*1000, cid) doPlayerSendTextMessage(cid, 22, "[Trainer]: Movimente-se a cada " .. config.tempo .. " minutos, caso contrário, seu char será deslogado.") setPlayerStorageValue(cid, config.storage, 1) end end end function onStepOut(cid, item, frompos, topos) if isPlayer(cid) == TRUE then if getPlayerStorageValue(cid, config.storage) >= 1 then setPlayerStorageValue(cid, config.storage, -1) doPlayerSendTextMessage(cid, 23, "System kick off!") stopEvent(kick) stopEvent(kick1) stopEvent(kick2) end end end
- segundo passo:
em movements.xml adicione as tags:
<movevent type="StepIn" actionid="25000" event="script" value="autokick.lua"/> <movevent type="StepOut" actionid="25000" event="script" value="autokick.lua"/> Agora abra o MAP EDITOR e coloque no TILE dos trainers o action id 25000
Explicaçao: quando o player pisa no tile do treiner é mandando uma mensagem dizendo que se ele nao se movimentar em alguns minutos ele será mandado para o templo e será kikado automaticamente.
-
YagoBlindi deu reputação a xWhiteWolf em Critical Skill SystemFala galera do TK, vejo que tem bastante gente procurando esse sisteminha que é praticamente igual ao dodge system, então eu decidi fazer visto que na realidade era só mudar 3 linhas kkkk em todo caso ta aí pra quem quiser:
creaturescripts.xml:
<!-- CRITICAL SYSTEM --> <event type="statschange" name="critical" event="script" value="critical.lua"/> creaturescripts\scripts\login.lua:
--- CRITICAL SYSTEM ---- registerCreatureEvent(cid, "critical") if getPlayerStorageValue(cid, 48913) == -1 then setPlayerStorageValue(cid, 48913, 0) end creaturescritps\scripts\critical.lua:
--[[Critical System ------------------------- By Night Wolf]] local lvlcrit = 48913 local multiplier = 1.5 function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then dano = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) return false end end return true end lvlcrit é o storage que fica salvo o seu level de critical e multiplier é o multiplicador do dano para ataques críticos.. nesse caso um ataque critico vai ser 1,5 vezes maior doque um ataque normal (50% maior)
Agora em actions.xml adicione:
<action itemid="1294" script="criticalrock.lua"/> e em actions\scripts\criticalrock.lua adicione:
--- CRITICAL System by Night Wolf local config = { effectonuse = 14, -- efeito que sai levelscrit = 100, --- leveis que terão storagecrit = 48913 -- storage que será verificado } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then doRemoveItem(item.uid, 1) doSendMagicEffect(topos,config.effectonuse) doPlayerSendTextMessage(cid,22,"You've Leveled your Critical Skill to ["..(getPlayerStorageValue(cid, config.storagecrit)+1).."/"..config.levelscrit.."].") setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1) elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then doPlayerSendTextMessage(cid,22,"You've already reached the MAX level of Critical Skill.\nCongratulations!!!!") return 0 end return 1 end Feito isso tá pronto, pra editar o item que dá a skill de critical vc edita no actions.xml mesmo:
<action itemid="1294" << ID do item que será usado pra dar a skill.
A config tá bem simples:
effectonuse = 14, -- efeito que sai
levelscrit = 100, --- leveis que terão
storagecrit = 48913 -- storage que será verificado.
Lembrando que cada pedra utilizada dará 0,3% a mais de chance.. 10 pedras dão 3% de chance de dar critico a cada ataque e 100 pedras (NIVEL MÁXIMO PADRÃO) dará 30% de chance de dar crítico em cada ataque.
Espero que vcs gostem, qualquer coisa deixem os comentários aqui.
Obs: aqui tá uma foto
Note que esse script só funciona em players, se vc quiser que funcione em monstros você vai ter que abrir um por um todos os monstros do server e colocar essa tag aqui:
<script> <event name="critical"/> </script> coloque antes de </monster>
Minha dica: coloquem apenas no Trainer pra que o player consiga ver que ele tem o critical e quanto ele tira e deixem avisado que o sistema só vai funcionar em players.
-
YagoBlindi deu reputação a keilost1 em (Resolvido)Duvida/pedido idle-timeEspero que sim, pois há ação do char... Qualquer coisa só mandar privado, abraço!
-
YagoBlindi deu reputação a roriscrave em (Resolvido)Duvida/pedido idle-timese colocar um movement em um sqm sera que funcionaria?
ai pisar no sqm e ficar parado por 1min, o char seria empurrado para o sqm ao lado, e o script do sqm ao lado, ao jogador ficar 1 minuto parado, jogaria o jogador para o lado anterior, ficando assim sempre o player se movento a cada 1 min
-
YagoBlindi deu reputação a keilost1 em (Resolvido)Duvida/pedido idle-timeOlá, desculpe pela demora, só fui me lembrar do Tibia King hoje rsrs...
Eu não testei, vê se deu certo:
function mudarVis(uid) look = getCreatureLookDirection(uid) look = look < 3 and look + 1 or 0 doCreatureSetLookDirection(uid, look) addEvent(mudarVis, 2000, uid) end local events1 = {} local trainerst = 456488 function onStepIn(cid) events1[getPlayerGUID(cid)] = addEvent(mudarVis, 1000, cid) doPlayerSendTextMessage(cid, 27, "Bem-vindo a sua sala de treinamento, você será movimentado automaticamente para que continue treinando!") setPlayerStorageValue(cid,trainerst,1) return true end function onStepOut(cid) stopEvent(events1[getPlayerGUID(cid)]) setPlayerStorageValue(cid,trainerst,-1) return true end Isso você coloca em movements/scripts e as tags abaixo em movements.xml
<!--Trainer--> <movevent type="StepIn" actionid="13549" event="script" value="train.lua" /> <movevent type="StepOut" actionid="13549" event="script" value="train.lua" />
Em creaturescripts/idle.lua vai ter essa linha (se não for exatamente igual me manda):
if(getTileInfo(getCreaturePosition(cid)).noLogout or getCreatureNoMove(cid) or getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_ALLOWIDLE) then return true end Você deve alterar para:
if(getTileInfo(getCreaturePosition(cid)).noLogout or getCreatureNoMove(cid) or getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_ALLOWIDLE) or getPlayerStorageValue(cid,456488) == 1) then return true end -
YagoBlindi deu reputação a xWhiteWolf em (Resolvido)Duvida/pedido idle-timepode fazer auheuhuha não tem essa de autorizar, se vc sabe fazer manda bala
Inclusive vou até dar a dica de ouro
look = getCreatureLookDirection(uid) look = look < 3 and look + 1 or 0 doCreatureSetLookDirection(uid, look) Agora o resto é com vcs, lembra tb que tem que editar o script do idle porque ele tá configurado pra verificar só a posição e não o looktype
-
YagoBlindi deu reputação a keilost1 em (Resolvido)Duvida/pedido idle-timeYago, se o xWhiteWolf autorizar eu criar um script para você igual ao do servidor dele (player rodar no SQM, eu faço sem problemas.
@Edit
Detalhe, existe um sistema chamado XLogged que não contabiliza os players AFK, ele é uma alteração feita pelas sources.
-
YagoBlindi deu reputação a Heyron em (Resolvido)Duvida/pedido idle-timeComo o @keilost disse, uma boa solução seria você deixar o IDLE desconectar os jogadores por "x" horas, (um exemplo: 2 horas).
Para fazer isso, abra o config.lua e procure por essa TAG:
idleWarningTime "idleWarningTime" é o tempo que aparecerá uma mensagem na tela notificando o jogador que o personagem dele será desconectado em "x" minutos/horas.
Embaixo dessa TAG haverá uma outra TAG nomeada como "idleKickTime", que seria o tempo exato em que o personagem será desconectado (sem notificação).
Um exemplo, você quer fazer com que os personagens permaneçam online por 2 horas? então você deixa as TAGS desse jeito:
idleWarningTime = 119 * 60 * 1000 -- Tempo em que aparecerá a notificação alertando o jogador -- idleKickTime = 120 * 60 * 1000 -- Tempo em que o personagem será automaticamente desconectado -- -
YagoBlindi deu reputação a keilost1 em (Resolvido)Duvida/pedido idle-timeOlá, a OTServ list bani os otservs em que ela checa se um player está idle a muito tempo e sem movimento normalmente, não é baseado se existe ou não o idle system. Eu tive de ser banido 4x até entender que o problema era esse, uma vez esqueci um char em uma area no-loggout e meu servidor não possuia global server save(reiniciar todo dia), após uma semana que ele estava lá tomei ban. Trainer 24 h também causa isso.
Solução? Coloquei server save as 6 horas da manhã e trainer 3 horas por dia, assim não há uma grande quantidade de players afk por um tempo longo e também não corre o risco de algum player ficar travado em algum lugar. Caso você desejar esse sistema de retirar o idle por determinada área eu posso fazer sem problemas também.
-
YagoBlindi deu reputação a xWhiteWolf em (Resolvido)Duvida/pedido idle-timepra burlar isso eu modifiquei meu idle pra checar a direção que o player tá olhando e coloquei um movements no piso do trainer pra fazer ele ficar rodando, não vou liberar porque é exclusividade do meu servidor mas dá pra vc ter uma idéia de uma solução..
-
YagoBlindi deu reputação a xWhiteWolf em Sistema de Auto-Facing: Vire Automaticamente para o Target ao Atacar (TFS 0.3.6)Bom galera, tem uma coisa bem simples que nem o tibia global fez e que eu to trazendo aqui pra vocês. Trata-se de um pequeno sistema que fará você sempre virar pra direção do seu target ao atacar.
Testado em TFS 0.3.6 Cliente 8.54.
Imagem auto explicativa:
Chega de atacar de costas!
Agora pra instalar é bem tranquilo. Abra um arquivo .lua em data\creaturescripts\scripts chamado target e coloque o seguinte conteudo dentro dele:
Feito isso adicione essa linha no creaturescripts.xml:
<event type="attack" name="targetCreature" script="target.lua"/> E para finalizar adicione a seguinte tag em creaturescripts\scripts\login.lua:
registerCreatureEvent(cid, "targetCreature") Espero que vcs tenham curtido, é algo bem simples mas ninguém havia pensado nisso antes (nem o próprio Tibia), é uma coisa bem básica e que torna o jogo bem mais importante e sério.
EDIT:: Usem essa versão que está mais completa, na anterior se o target estivesse na diagonal ele não virava.
-
YagoBlindi deu reputação a LeoTK em Resetando Seu Server Sem Deletar Players ou Itemsolá galera do tibiaking esse é meu primeiro topico então desculpem erros de português bom vamos lá
essa função é para server em sqlite que querem resetar sem deletar players ou items. bom primeiro vou falar que essa função pode ser editada por você mais darei algumas opções
vejá abaixo algumas funções
como editar mais tags siga abaixo \/
é isso espero que tenha ajudado alguma dúvida comente para resolver-mos juntos obs¹: para executar as funções na sqlite procure na parte superior open SQL query editor coloque as funções nele e aperte f9