Ir para conteúdo

YagoBlindi

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    YagoBlindi deu reputação a PriisioneR em [PEDIDO] TILE EXIT TRAINER   
    Vá 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.
  2. Gostei
    YagoBlindi deu reputação a xWhiteWolf em Critical Skill System   
    Fala 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. 
  3. Gostei
    YagoBlindi deu reputação a keilost1 em (Resolvido)Duvida/pedido idle-time   
    Espero que sim, pois há ação do char... Qualquer coisa só mandar privado, abraço!
  4. Gostei
    YagoBlindi deu reputação a roriscrave em (Resolvido)Duvida/pedido idle-time   
    se 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
  5. Gostei
    YagoBlindi deu reputação a keilost1 em (Resolvido)Duvida/pedido idle-time   
    Olá, 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
  6. Gostei
    YagoBlindi deu reputação a xWhiteWolf em (Resolvido)Duvida/pedido idle-time   
    pode 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
  7. Gostei
    YagoBlindi deu reputação a keilost1 em (Resolvido)Duvida/pedido idle-time   
    Yago, 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.
  8. Gostei
    YagoBlindi deu reputação a Heyron em (Resolvido)Duvida/pedido idle-time   
    Como 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 --
  9. Gostei
    YagoBlindi deu reputação a keilost1 em (Resolvido)Duvida/pedido idle-time   
    Olá, 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.
  10. Gostei
    YagoBlindi deu reputação a xWhiteWolf em (Resolvido)Duvida/pedido idle-time   
    pra 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..
  11. Gostei
    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.



  12. Gostei
    YagoBlindi deu reputação a LeoTK em Resetando Seu Server Sem Deletar Players ou Items   
    olá 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

Informação Importante

Confirmação de Termo