Ir para conteúdo

hubulufuss

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    hubulufuss deu reputação a MonsterOt em Adicionando comando !spells   
    Isso serve para os players do seu ot saberem as magias.

    abra: data/talkactions/script/ copie cole renomei para spells


    e cole isso:




    agora em talkactions.xml bote:

    <talkaction words="!spells" event="script" value="spells.lua"/>

    agora voce cria um bloco de notas com o nome "spells" na pasta do seu ot, bem aonde ta o seu config.lua, seu loader..
    ai vc edita do jeito q quiser, e quando alguem falar !spells no ot ira aparecer oq vc escreveu no bloco de notas

    se te ajudei rep+
  2. Gostei
    hubulufuss deu reputação a warotserv em [CreatureEvent] Anti Fast-attack Elf Bot   
    Bom... decidi postar agora o script que eu fiz para barrar os botters de fast attack.

    Primeiro, crie um arquivo chamado "antiBot.lua" em "data\creaturescripts\scripts" e nele adicione o seguinte conteúdo:
    -- counts physicals, casts .... [player name : creature cid] playerAttacksMade = {} playerActivateTime = {} playerBlocked = {} function tablelength(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end function onLogin(cid) if isPlayer(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Loading Anti Bot... done.' ) playerAttacksMade[cid] = {} playerActivateTime[cid] = {} playerBlocked[cid] = false end return true end function onLogout(cid) if isPlayer(cid) then playerAttacksMade[cid] = nil playerActivateTime[cid] = nil playerBlocked[cid] = nil end return true end function onStatsChange(cid, attacker, type, combat, value) local maxAttacks = { 6, --pos 1 6, --pos 2 6, --pos 3 6, --pos 4 7, --pos 5 7, --pos 6 7, --pos 7 7, --pos 8 } if not type == STATSCHANGE_HEALTHLOSS or not isPlayer(attacker) then return true end if value <= 0 then return true end if playerAttacksMade[attacker][cid] == nil then playerAttacksMade[attacker][cid] = 0 playerActivateTime[attacker][cid] = os.time() end local currentTime = os.time() --TESTE --doPlayerSendTextMessage(attacker, MESSAGE_STATUS_CONSOLE_ORANGE, playerAttacksMade[attacker][cid] .. '________' .. attacker .. '_____' .. cid .. '______' .. currentTime .. '_______' .. playerActivateTime[attacker][cid] ) if currentTime >= playerActivateTime[attacker][cid] then playerActivateTime[attacker][cid] = currentTime + 1 playerAttacksMade[attacker][cid] = 0 else playerAttacksMade[attacker][cid] = playerAttacksMade[attacker][cid] + 1 end if playerAttacksMade[attacker][cid] > maxAttacks[getPlayerVocation(attacker)] then playerBlocked[attacker] = true doBroadcastMessage('O player ' .. getPlayerName(attacker) .. ' esta usando bot de fast attack. O seu ataque foi travado ate que ele relogue.', 21) doShowTextDialog(attacker,1952,"PARE DE USAR ELFBOT! Seu ataque foi bloqueado. Para destravar basta relogar. Obrigado. (Sistema exclusivo do ot)") return FALSE end return TRUE end function onCombat(cid, target) if isPlayer(cid) then if not playerBlocked[cid] then registerCreatureEvent(target, "AntiBot2") else return false end end return true end function onCast(cid, target) if isPlayer(cid) then if playerBlocked[cid] then return false end end return true end e em "creaturescripts.xml", encontrado em "data\creaturescripts" adicione:
    <event type="combat" name="AntiBot1" event="script" value="antiBot.lua"/> <event type="statschange" name="AntiBot2" event="script" value="antiBot.lua"/> <event type="login" name="AntiBot3" event="script" value="antiBot.lua"/> <event type="logout" name="AntiBot4" event="script" value="antiBot.lua"/> <event type="cast" name="AntiBot5" event="script" value="antiBot.lua"/> Agora vou explicar a parte configurável:

     
    local maxAttacks = { 6, --pos 1 6, --pos 2 6, --pos 3 6, --pos 4 7, --pos 5 7, --pos 6 7, --pos 7 7, --pos 8 } Aqui você vai modificar qual o número máximo de ações de combate (que dão dano) que certa vocação poderá dar. Posição 1 é Sorcerer, 2 é Druid, 3 é Paladin, 4 é Knight e assim por diante....
    Escolha bem esses números! Caso você erre, ele irá ficar detectando erradamente.
     
    Por exemplo,vamos supor que o knight tenha o fastAttack em 500ms (logo ele executará 2 ataques por segundo) e que sua magia de dano de menor exhaust tenha um exhaust de apenas 600ms, logo o numero maximo de ataques dele por segundo será 4 (cuidado quando spells de dano diferentes puderem ser usadas ao mesmo tempo, daí você terá de acrescentar mais 1 ao número de ataques por segundo.
     
    Por favor, testem e me falem o que acharam.
     
     
    Espero que ajude a tirar os botters de seu server.
     
    P.S.: Não me importo que roubem meus créditos e/ou postem em outros fórums. É bom espalhar esse script uma vez que botters nos servers 8.6 é muito comum.
     
  3. Gostei
    hubulufuss deu reputação a Arysoooon em [Talkactions] Verificação de Uso De bot 100% [TFS] 1.0   
    Fala Galera! 
     
    Hoje vim trazer um Sistema Muito Bom,Creio que Seja o Único aqui no tibiaking. 
    Ele Funciona da seguinte maneira, você mandara uma verificação de bot Para o Player , 
    Uma Mensagem na tela dele ira alertar ele.. Essa: 
     
    Caso Ele Responde algo séra liberado! Esse comando é util Para aqueles poketibia que tem o erro de double click no mar. !! 
     
     
     
    Vá até data/talkactions/scripts crie um arquivo chamado CheckBot.lua e Adicione Isso dentro!: 
     
     
     
    Agora vá até talkactions.xml e adicione essa tag:
     
     
    Creditos: Equipe Pokemon x Evolution Por criar o script.
     
     
  4. Gostei
    hubulufuss deu reputação a brendoonh em Talk Rank Frags   
    Então galera, vejo direto gente pedindo esse sistema de RankFrags~~Top Kills 
    Os que eu encontrei estavam bugados..

    Chega de blabla...

    Em data/talkactions/script crie um arquivo com o nome rankfrags.lua
    Adicione isso la dentro:
     
    function onSay(cid, words, param) local max = 20 local letters_to_next = 20 local name_now local name = "Top Frags\n" local rkn = 0 name = name.."\n" name = name.."Rank Frags - Nome do Jogador\n" local v = db.getResult("SELECT `p`.`name` AS `name`, COUNT(`p`.`name`) as `frags` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `pk`.`player_id` = `p`.`id` WHERE `k`.`unjustified` = 1 GROUP BY `name` ORDER BY `frags` DESC;") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) name = name..rkn..". ["..v:getDataInt("frags").."] - "..name_now.." ".." ".."".."\n" until v:next() == false if name ~= "" then doShowTextDialog(cid,1903, name) end return TRUE end Adicione essa tag em talkactions.xml
     
    <talkaction words="!rankfrags" event="script" value="rankfrags.lua"/> TESTADO EM TFS 0.4
    È isso ai galera, espero q gostem..

    Tenho esse mapa a mt tempo, não sei qm fez esse script '-'
  5. Gostei
    hubulufuss deu reputação a Kemmlly em Char PK   
    No seu config.lua não achei nada que causasse isso, o fato de não perder level nem a AOL provavelmente é o script: preparedeath.lua , manda ele pra eu ver, a questão do pk como é muito complexo para descobrir daqui sem acesso a seu servidor, crie esse script:
     
    /data/creaturescripts/scripts/pkskull.lua
    local stime = 1 -- tempo de pk (minutos) local condition_infight = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition_infight, CONDITION_PARAM_TICKS, stime * 60 * 1000) function onAttack(cid, target) if getCreatureSkullType(cid) < 3 and isPlayer(target) then doCreatureSetSkullType(cid, SKULL_WHITE) doAddCondition(cid, condition_infight) doPlayerSetPzLocked(cid, true) end return true end no creaturescripts.xml
    <event type="attack" name="onAttackSummon" event="script" value="pkskull.lua"/> no login.lus adicione a tag:
    registerCreatureEvent(cid, "onAttackSummon")  
    Script de Wise, adaptado.
  6. Gostei
    hubulufuss deu reputação a Kemmlly em Área VIP   
    tpvip.lua
    function onStepIn(cid, item, frompos, item2, topos) local vip = getPlayerStorageValue(cid,10102) >= 1 -- Storage da sua VIP local kickposition = {x=1018, y=1014, z=7} -- Local para kikar o player que nao e vip, coloque um SQM antes do teleport local newposition = {x=928, y=1046, z=7} -- Area vip, local para onde o player sera teleportado se for vip if(vip) then doPlayerSendTextMessage(cid, 19, "Bem vindo a area VIP.") doSendMagicEffect(getPlayerPosition(cid),2) doTeleportThing(cid, newposition) doSendMagicEffect(newposition,10) else doPlayerSendTextMessage(cid, 19, "Voce nao possui VIP. Compre o item VIP no site e aproveite melhor o jogo.") doTeleportThing(cid, kickposition) end end  
    movements.xml
    <movevent type="StepIn" uniqueid="30000" event="script" value="tpvip.lua"/>  
    No seu teleport coloque a uniqueid 30000 pelo RME.
  7. Gostei
    hubulufuss deu reputação a vankk em Área VIP   
    Um pouco mais organizado.
     
    local config = { vipStorage = 10102, -- storage VIP kick = { kickPosition = true, -- se for "true" então vai jogar para a posição que o jogador estava, se for false, irá jogar para a posição a baixo. kickPos = {x=1018, y=1014, z=7}, }, newPosition = {x=928, y=1046, z=7} -- posição que jogara o jogador caso ele for vip } function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerStorageValue(cid, config.vipStorage) < 1 then if config.kick.kickPosition then doTeleportThing(cid, fromPosition) else doTeleportThing(cid, config.kick.kickPos) end doPlayerSendTextMessage(cid, 19, "Voce nao possui VIP. Compre o item VIP no site e aproveite melhor o jogo.") return true end doPlayerSendTextMessage(cid, 19, "Bem vindo a area VIP.") doSendMagicEffect(getPlayerPosition(cid), 2) doTeleportThing(cid, config.newPosition) doSendMagicEffect(config.newPosition, 10) return true end  
  8. Gostei
    hubulufuss deu reputação a Reds em Estagio por level   
    Fica em data>xml>stages.lua
     
    lembra de por true no config.lua
        experienceStages = true
     
     

Informação Importante

Confirmação de Termo