Ir para conteúdo

danbsten

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    danbsten deu reputação a Absolute em Pegar arquivo linux acesso   
    Agora iremos a sua configuração, vá até a pasta /etc/csf e abra o arquivo csf.conf com seu editor de texto.  
    Faz o seguinte, digite:
    cd /etc/csf
    em chegar no diretório digite
    nano csf.conf
     
    caso de erro do nano, instale-o:
    apt-get install nano
     
     
    Edite pelo próprio terminar, abraços.
     
  2. Gostei
    danbsten deu reputação a xWhiteWolf em Magnus Challenger   
    até dá mas teria que mudar o script pra cada monstro ser um storage diferente, se vc faz 3 dificuldades com 9 monstros cada você perde 27 storages :/ mas vou dar uma olhada certinho pra confirmar se é isso mesmo.
  3. Gostei
    danbsten deu reputação a xWhiteWolf em [suporte] como usar func onMoveItem?   
    O primeiro erro significa que não existe compilado na source o event type = onMoveItem, ele não reconheceu esse type.

    No valid type for creature event.onMoveItem
    "Não há um tipo válido de creature event chamado onMoveItem"

    Após as alterações que você fez ele entendeu o script mas o código possui um erro lógico na linha 4: faltou um then próximo do doRemoveItem.
    Indo na linha 4 vemos claramente que está faltando um then para abrir o bloco de instrução do código if
     if item.itemid == 2596 deveria ser
     if item.itemid == 2596 then Isso deve resolver kkk mas só escrevi as coisas aqui acima pra você entender +- como interpretar as coisas que nosso console nos diz..
  4. Gostei
    danbsten deu reputação a .HuRRiKaNe em (Resolvido)[PROBLEMA] /t talkaction   
    Deixa seu teleporttown.lua assim:
    function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local tid = cid local t = string.explode(param, ",") if(t[2]) then tid = getPlayerByNameWildcard(t[2]) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[2] .. " not found.") return true end end local tmp = t[1] if(not tonumber(tmp)) then tmp = getTownId(tmp) if(not tmp) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Town " .. t[1] .. " does not exists.") return true end end local pos = getTownTemplePosition(tmp, false) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Town " .. t[1] .. " does not exists or has invalid temple position.") return true end pos = getClosestFreeTile(tid, pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Destination not reachable.") return true end tmp = getCreaturePosition(tid) if(doTeleportThing(tid, pos, true) and not isPlayerGhost(tid)) then doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end <talkaction log="yes" words="/town" access="2" event="script" value="teleporttown.lua"/> E deixe seu teleportmaster.lua assim:
    function onSay(cid, words, param, channel) local tid = cid if(param ~= '') then tid = getPlayerByNameWildcard(param) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " not found.") return true end end local pos = getPlayerTown(tid) local tmp = getTownName(pos) if(not tmp) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Home town does not exists.") return true end pos = getTownTemplePosition(pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong temple position for town " .. tmp .. ".") return true end pos = getClosestFreeTile(tid, pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Destination not reachable.") return true end tmp = getCreaturePosition(tid) if(doTeleportThing(tid, pos, true) and not isPlayerGhost(tid)) then doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end <talkaction log="yes" words="/t" access="2" event="script" value="teleportmaster.lua"/>
  5. Gostei
    danbsten deu reputação a .HuRRiKaNe em (Resolvido)[PROBLEMA] /t talkaction   
    Tenta esse:
    function onSay(cid, words, param, channel) local tid = cid if(param ~= '') then tid = getPlayerByNameWildcard(param) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " not found.") return true end end local pos = getPlayerTown(tid) local tmp = getTownName(pos) if(not tmp) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Home town does not exists.") return true end pos = getTownTemplePosition(pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong temple position for town " .. tmp .. ".") return true end pos = getClosestFreeTile(tid, pos) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Destination not reachable.") return true end tmp = getCreaturePosition(tid) if(doTeleportThing(tid, pos, true) and not isPlayerGhost(tid)) then doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end
  6. Gostei
    danbsten deu reputação a xWhiteWolf em [suporte] como usar func onMoveItem?   
    falta só adicionar o login.lua pra registrar esse callback (isso garantindo q vc tem esse callback na sua source). Daí toda vez que um player for vocação 0 e mover um item 2596 ele vai ser removido.
  7. Gostei
    danbsten deu reputação a WooX em [BUG] War System   
    Eu já resolvi o problema, e é mesmo na sources. Quando eu tiver tempo posto 1 tutorial ensinando como resolver.
  8. Gostei
    danbsten deu reputação a WooX em (Resolvido)[PEDIDO] TFS 0.4 SEM SALT   
    Eu posso estar enganado mas salt somente irá atrapalhar caso você for usar acc manager in game, como você pretende usar acc manager com cast system?
  9. Gostei
    danbsten deu reputação a WooX em (Resolvido)[PEDIDO] TFS 0.4 SEM SALT   
    Cast com acc manager? sinceramente eu nunca vi.
  10. Gostei
    danbsten deu reputação a WooX em Como Compilar TFS 0.4 CAST/WAR Com Vídeo   
    A source roda em linux sim, mas o tutorial de compilação a cima é para windows.
  11. Gostei
    danbsten deu reputação a Cazuza em O que esse script faz?   
    Onde achou este script? sendo que ele é de autoria minha.
  12. Gostei
    só peguei uma parte da spell que eu tinha adaptado
     
    function onCastSpell(cid, var)   if getPlayerStorageValue(cid, config.storagCooldown) - os.time() <= 0 then setPlayerStorageValue(cid, config.storagCooldown, os.time() + config.cooldown) else doPlayerSendCancel(cid, "Your skill is in cooldown, wait more ".. getPlayerStorageValue(cid, config.storagCooldown) - os.time() .." seconds to use it.") return false end doSendAnimatedText(getCreaturePosition(cid), "Cursed", COLOR_ORANGE)  local time = onCastChannel(cid, getCreatureTarget(cid), config.delaycast, config.effect, config.key) addEvent(function() if isCreature(cid) and getPlayerStorageValue(cid, config.key) == 11 then doCreatureSay(cid, "cursed finished", 20) addEvent(function()  if isCreature(variantToNumber(var)) then local target = getCreatureTarget(cid) doCreatureAddHealth(target, -getCreatureHealth(target)) end end, config.delay * (config.walks + 1)) elseif isCreature(cid) then doPlayerSendCancel(cid, "You broke the channeling spell so the cast was canceled.") end end, time) return true end
  13. Gostei
    danbsten deu reputação a Reds em [Pedido] Magia Para Monstro   
    nao funciona, o setnomove em monstros, por mais que seja temporizado, o player nao se meche depois, pelo menos qnd eu testei foi assim
  14. Gostei
    danbsten deu reputação a Reds em (Resolvido)Remover pedra, alavanca+iten   
    Eu preciso de um script que para ser possivel remover a stone seja necessário iten em x local do mapa
     
    http://prntscr.com/73rlzl
     
    como podem ver na print, seriam os 5 itens em cima dos 5 negocios ali, puxar a alavanca e retirar a pedra
  15. Gostei
    danbsten deu reputação a Reds em adicionar: actions, itens e tag   
    o seguinte, eu preciso que o msm item seja usado em vários scripts, acho q vcs entenderam
     
    <action itemid="12715" event="script" value="refinaria/first.lua"/> <action itemid="12715" event="script" value="refinaria/second.lua"/>   pergunte caso nao entenda
  16. Gostei
    danbsten deu reputação a Reds em Funçao desconhecida, erro spell   
    É o seguinte galera eu tinha 1 magia que silenciava (exhaust) o alvo, e pensei em por ela em área e sem fazer pegar pk, para ser usada para wars pequenas em times...
    O problema está em:
    setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
    não sei muito sobre a função, percebi que a função é para que as conditions muted e exhausted funcionem e ao por false, nao exhausta o inimigo, e true a spell não sai e da erro na distro a cada segundo.
     
    Como posso resolver?
  17. Gostei
    danbsten deu reputação a Reds em (Resolvido)Aol diferente   
    Eaí pessoal, vi esse sistema em um outro ot, funciona +- assim:
    O jogador possui um aol, quando ele morre não perde os itens (até essa parte igual ao aol comum).
    Ao invés do aol sumir quando ele morre, ele se transforma em um outro amuleto.
     
    Enfim só quero que ao invés de o aol sumir ele se transforme.
     
  18. Gostei
    danbsten deu reputação a Caronte em Lib 000-Const   
    Olá pessoal, venho mais uma vez trazer um tutorial simples, e tentar explicar tudo claramente, esse tutorial pode ficar grande dependendo do desenrolar dele, pois é um pack de tutoriais, então vou usar spoilers para ajudar na formatação do tópico.
     

     
     
     
    Nota: as informações usadas abaixo, podem ser tanto usadas com o nome, quanto com o número, e podem ser encontradas na pasta lib no arquivo 000-const
    https://pastebin.com/0FfPcg7y
     
    line4
     

     
    Coordenadas:
     
     

    Tutorial feito e formatado por Caronte o + gato do fórum, avaliações do perfil são bem-vindas.

     
     
    Explicando:
    doMoveCreature(cid, direction): Serve para mover tanto o player quanto o monstro.
     
     
     
     
    Combate:
     
     

    Tutorial feito e formatado por Caronte o + gato do fórum, avaliações do perfil são bem-vindas.
     
    Parâmetros de condição:
     
     
    Condições:
     
     
    Slots:
     
     

     
    Tutorial feito e formatado por Caronte o + gato do fórum, avaliações do perfil são bem-vindas.
    Participação: xWhiteWolf
     
    Const_ani e Const_me:
     
     

     
    Tutorial feito e formatado por Caronte o + gato do fórum, avaliações do perfil são bem-vindas.


     
    Talktypes and message types:
     

    [title][/title]
     
    Tutoriais concluídos por ordem de formatação (podem ser alterados assim mesmo):
    Coordenadas, e suas direções. Combat (ainda há coisas a serem adicionadas). Slots. CONST_ME and CONST_ANI  
     
    Os assuntos do tópico poderão se diminuídos ou aumentados de acordo com o desenrolar do tempo,
    gostaria de apoio, e não me incomodaria se alguém se propusesse fazer algum tutorial, eles serão supervisionados por mim e formatados por mim, para serem postados neste tópico.
     
     
     
     
    Esse tópico demorou e vai demorar muito para fazer
    cada tutorial, então eu não me importo com um obrigado e REP+,
    OBS.: Um obrigado vale bem mais do que um REP+
  19. Gostei
    danbsten deu reputação a Caronte em [MOVE] Caminhada no pantano   
    Bom, olá pessoal, eu não sou de fazer scripts e esse é meu primeiro:
    gostaria de saber como ficou, como poderia melhorar e etc...
     
    É um script que onde você colocar a action dele vai tomar paralize e quando sair a paralize sai, como se fosse uma dificuldade na caminhada...
     
    Eu sei que é meio inútil mas ta aí:
     
     
    Em movements>scripts  crie um arquivo chamado pantano.lua
    function onStepIn(cid, item, position, fromPosition) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionFormula(condition, -0.9, 0, -0.9, 0) setCombatCondition(combat, condition) doSendMagicEffect(getThingPosition(cid), CONST_ME_GREEN_RINGS) doAddCondition(cid, condition) return true end function onStepOut(cid, item, position, fromPosition) doRemoveCondition(cid, 32) return true end E em movement.xml adicione as duas linhas:
    <movevent type="StepIn" actionid="3600" event="script" value="pantano.lua"/> <movevent type="StepOut" actionid="3600" event="script" value="pantano.lua"/> Pronto, agora onde você colocar a actionid você vai levar um paralize ao andar, como se fosse um pântano pegajoso 
     
     
    EDIT: Porém, se quiser esse efeito em todo o pântano andável sem ter que colocar action em todos os tiles é só ignorar a tag de cima e fazer assim:
    <movevent type="StepIn" itemid="6353" event="script" value="pantano.lua"/> <movevent type="StepOut" itemid="6353" event="script" value="pantano.lua"/> Acima, todo item com ID 6353, o efeito será aplicado..., se quiser mudar , pode mudar ao item que você quiser
     
     
     

     
    É essa merda aí, qualquer incremento que quiser pode requisitar abaixo no tópico.
  20. Gostei
    danbsten deu reputação a Caronte em [ACTION] Piggy Bank: Cassino   
    Olá pessoal, hoje venho lhes trazer um script de Cassino, para funcionar 100% independente.
    Testado em TFS 0.4
     
     
     
    para os desconhecedores do script, favor, só leia o spoiler:
     



     
     
    Vamos ao que interessa:
     
     

    Versão 1:

     
    Script (actions/scripts/other/piggybank.lua)
    "VALE LEMBRAR, ESSE PIGGY BANK JÁ EXISTE NO TIBIA, MAS DESEMPENHANDO OUTRA FUNÇÃO, ENTÃO É MELHOR CRIAR OUTRO ARQUIVO OU SÓ SUBSTITUIR."
    --[[ Esse é o script do piggy bank, SCRIPT BY CARONTE, visite: tibiaking.com ]]-- local qtdd = 10 -- quantidade minima para jogar local lost, winner = CONST_ANI_SUDDENDEATH, CONST_ANI_HOLY -- Efeitos: Ao perder, Ao ganhar function onUse(cid, item, frompos, item2, topos) local chance = math.random(0,100) local pos = getPlayerPosition(cid) local pos_ef = { {x= pos.x-1,y= pos.y-1,z= pos.z}, {x= pos.x,y= pos.y-1,z= pos.z}, {x= pos.x+1,y= pos.y-1,z= pos.z}, {x= pos.x+1,y= pos.y,z= pos.z}, {x= pos.x+1,y= pos.y+1,z= pos.z}, {x= pos.x,y= pos.y+1,z= pos.z}, {x= pos.x-1,y= pos.y+1,z= pos.z}, {x= pos.x-1,y= pos.y,z= pos.z} } --Verificar se tem crystals no slot -- if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid ~= 2160 then doCreatureSay(cid, 'You need crystal coins in your ammunition slot to play ! ', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) --Verificar quantidade de cystals no ammo slot elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == 2160 and getPlayerSlotItem(cid, CONST_SLOT_AMMO).type < qtdd then doCreatureSay(cid, "You don't have "..qtdd.." crystal coins in the arrows slot to play", TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == 2160 and getPlayerSlotItem(cid, CONST_SLOT_AMMO).type >= qtdd then doCreatureSay(cid, "Let's see your lucky", TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_CRAPS) if chance <= 50 then -- GANHOU doPlayerAddItem(cid,2160,getPlayerSlotItem(cid, CONST_SLOT_AMMO).type) for i = 1, 8 do doSendDistanceShoot(pos_ef[i], pos, winner) end -- FECHA FOR elseif chance >= 50 then -- PERDEU doPlayerRemoveItem(cid,2160,getPlayerSlotItem(cid, CONST_SLOT_AMMO).type) doSendMagicEffect(pos, CONST_ME_BLOCKHIT) for i = 1, 8 do doSendDistanceShoot(pos_ef[i], pos, lost) end -- FECHA FOR end -- FECHA IF (CHANCE) end -- FECHA IF QUANTIDADE return true end    
     
    TAG (actions.xml)
    <action itemid="2114" event="script" value="other/piggybank.lua"/>  
    Como editar:



     


    Demonstração:

     
    Caso não tenha dinheiro no slot de munições:

     
    Caso tenha dinheiro no slot de munições, mas não o suficiente:

     
    Caso ganhe:

     
    Caso perca:

     
     
     
    PS: Lembrando, que para apostar, é só colocar grana no slot que se coloca arrows...
    e a quantidade de crystal coins é configurável, no início do script, alterando lá, já vai alterar a fala, que falará sempre a quantidade configurada.
     
    Detalhe: quem quer que o local/item de aposta seja fixo, mude a TAG que coloca em actions.xml, só mude o ID do item.

    Créditos: Caronte & Adriano SwaTT
     
     

    Versão 2:

     
    Bom, essa versão não tem haver com o Cassino Script, mas foi feita por mim, para derivar dele...
     
     
    Como funciona:


     
    Script (actions/scripts/other/piggybank.lua)
    --[[ Esse é o script do piggy bank, SCRIPT BY CARONTE, visite: tibiaking.com ]] function onUse(cid, item, frompos, item2, topos) rand1 = math.random(1,100) rand2 = math.random(1,70) rand3 = math.random(1,15) local coins = 5 -- Quantide de crystal coins que irá consumir local chancedequebrar = 0 -- porcentagem da chance de se quebrar, use 0 para não quebrar dinheiro = coins * 10000 if getPlayerMoney(cid) >= dinheiro then doPlayerRemoveMoney(cid, dinheiro) else doCreatureSay(cid, '~You need '..coins..' crystals to break it !!!~', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if rand1 <= 50 then doPlayerAddItem(cid,2148,rand1) doCreatureSay(cid, '~Holy Shit !!! only '..rand1..' golds, my mom will kill me~', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_YELLOW) end if rand1 >= 51 and rand1 <= 70 then doPlayerAddItem(cid,2152,rand3) doCreatureSay(cid, '~Oh-oh '..rand3..' Platinum coins!, would i try again ?~', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_BLUE) end if rand1 >= 90 then doPlayerAddItem(cid,2160,rand2) doCreatureSay(cid, '~Oh My God! '..rand2..' Crystal coins !!!', TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_WATERSPLASH) end if rand1 <= chancedequebrar then doPlayerAddMoney(cid, dinheiro) doTransformItem(item.uid,item.itemid+1) end return 1 end   
     Como editar:



     
     

    Demonstração:

     
    Caso não tenha dinheiro na Bag:

     
    Caso caia em gold: 

     
    Caso caia em platinum:

     
    Caso caia em crystal:

     
     
    Créditos:
    Caronte
     
     
     

     
     
    Fim
     
    Caso goste, comente,
    sugestões, comente,
    dificuldades, comente,
    erros, comente.
     
     
    Fui é só isso pessoal
    fiquem com God
  21. Gostei
    danbsten deu reputação a Caronte em [TALK] Checkpoint   
    Bom, eu estava cá fazendo uma talkaction para praticar, mas aí fui aprimorando e resolvi compartilhar, para ver se é útil para alguém...
     
     
     
    Como funciona: Bom, basicamente, é um comando sem parâmetros, que marca um lugar na zona de proteção e volta para esse lugar depois que usa o comando pela segunda vez, 
     
    Em caso de 
    local parceiro = true
     
    deixando um portal que some em aproximadamente 3 segundos, para que possam seguir ele...
     
    Caso não queira isso, coloque false.
     
    Ao usar o comando para fixar o checkpoint:


     
     
    Ao usar o mesmo comando para voltar ao checkpoint no mesmo lugar: 


     
     
    Escolhendo uma nova posição:

     
     
    Usando o comando na nova posição: 


     
     
     
    Bom, o script é esse:
    depois irei adicionar mais coisas
     
    (talkactions/scripts/checkpoint.lua)
    local parceiro = true -- false vai tirar o teleporte que o player deixa de rastro function onSay(cid, words, param) if param == "" then local cidpos = getThingPos(cid) if not getTileInfo(cidpos).protection then return doPlayerSendCancel(cid,"You need stay in a protect zone ( PZ ). ") end if(tonumber(getPlayerStorageValue(cid,"Checkpoint"))) then setPlayerStorageValue(cid,"Checkpoint", "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}") doPlayerSendTextMessage(cid, 27, "You put a checkpoint here.") doSendMagicEffect(cidpos, 9) else local str = "return "..getPlayerStorageValue(cid, "Checkpoint") local pos = loadstring(str)() doTeleportThing(cid, pos, TRUE) if "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}" == "{x = "..pos.x..", y = "..pos.y..", z = "..pos.z..", stackpos = "..pos.stackpos.."}" then return doPlayerSendCancel(cid,"You can't do this, please choose another position to come back") and doSendMagicEffect(cidpos, 2) end if parceiro then doCreateTeleport(1387, pos, cidpos) doSendAnimatedText(cidpos, "Removing", 221) local t = { [500] = "in", [1000] = "3", [1500] = "2", [2000] = "1", } for q, w in pairs(t) do addEvent(doSendAnimatedText,q,cidpos, w, 221) end addEvent(function() doRemoveItem(getTileItemById(cidpos, 1387).uid) doSendMagicEffect(cidpos, 2) end,2700) end doCreatureSay(cid, "You reached your destiny.", MESSAGE_EVENT_ORANGE) doPlayerSendTextMessage(cid, 27, "You reached your destiny.") setPlayerStorageValue(cid,"Checkpoint", 0) doSendMagicEffect(cidpos, 67) end end return true end Em (talkactions.xml)
    <talkaction log="yes" words="/checkpoint" event="script" value="Xcriptis/checkpoint.lua"/>  
     
    CASO QUEIRAM COM EXHAUST EM SEGUNDOS, CONFIGURÁVEL !!!, AQUI ESTÁ:
    local parceiro = true -- false vai tirar o teleporte que o player deixa de rastro local tempo = 24*60*60 -- 24 h em segundos function onSay(cid, words, param) if param == "" then local cidpos = getThingPos(cid) if not getTileInfo(cidpos).protection then return doPlayerSendCancel(cid,"You need stay in a protect zone ( PZ ). ") end if(tonumber(getPlayerStorageValue(cid,"Checkpoint"))) then setPlayerStorageValue(cid,"Checkpoint", "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}") doPlayerSendTextMessage(cid, 27, "You put a checkpoint here.") doSendMagicEffect(cidpos, 9) else local str = "return "..getPlayerStorageValue(cid, "Checkpoint") local pos = loadstring(str)() if not (tonumber(getPlayerStorageValue(cid,"Checkpoint"))) and getCreatureStorage(cid, 10001) - os.time() < 0 then setPlayerStorageValue(cid,10001, os.time() + tempo) else return doPlayerSendCancel(cid,"You can't do this, please wait " .. getCreatureStorage(cid, 10001) - os.time() .." seconds.") end doTeleportThing(cid, pos, TRUE) if "{x = "..cidpos.x..", y = "..cidpos.y..", z = "..cidpos.z..", stackpos = "..cidpos.stackpos.."}" == "{x = "..pos.x..", y = "..pos.y..", z = "..pos.z..", stackpos = "..pos.stackpos.."}" then return doPlayerSendCancel(cid,"You can't do this, please choose another position to come back") and doSendMagicEffect(cidpos, 2) end if parceiro then doCreateTeleport(1387, pos, cidpos) doSendAnimatedText(cidpos, "Removing", 221) local t = { [500] = "in", [1000] = "3", [1500] = "2", [2000] = "1", } for q, w in pairs(t) do addEvent(doSendAnimatedText,q,cidpos, w, 221) end addEvent(function() doRemoveItem(getTileItemById(cidpos, 1387).uid) doSendMagicEffect(cidpos, 2) end,2700) end doCreatureSay(cid, "You reached your destiny.", MESSAGE_EVENT_ORANGE) doPlayerSendTextMessage(cid, 27, "You reached your destiny.") setPlayerStorageValue(cid,"Checkpoint", 0) doSendMagicEffect(cidpos, 67) end end return true end Qualquer problema, resolver no tópico.
    por favor, gostaria de feedbacks com sugestões ou qualquer coisa.
  22. Gostei
    danbsten deu reputação a Caronte em [BUG] Rep notification   
    Eu tava achando que estava sendo perseguido...
    mas não ta mostrando o nome de quem reputou para ninguém !, eu acho...
  23. Gostei
    danbsten deu reputação a Snowsz em [OTC] MOD que deixa o OTC exclusivo para seu servidor.   
    Testado em:
    TFS 0.4 8.60.
    Otclient 0.6.3.
     
    Descrição: O player só poderá entrar no seu otserver com este mod, caso contrário, levará um kick bonito
     
    Bom galera, criei este mod para ajudar um membro do fórum que, quer que seu server só seja acessado com um otclient dele, então, vamos ao mod.

    Vá na pasta do seu otclient e entre na pasta mods, lá, crie outra pasta, chamada exclusiveclient, nesta pasta, crie um arquivo com o nome exclusiveclient.lua e coloque isso dentro:
    function init() connect(g_game, 'onTextMessage', serverComunication) connect(g_game, { onGameEnd = hide } ) end function terminate() disconnect(g_game, { onGameEnd = hide }) disconnect(g_game, 'onTextMessage', serverComunication) end function serverComunication(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("$@$ExclusiveClient") then g_game.talk("/$@$exclusive$@$") end end end Feche e salve o arquivo.
    Ainda na mesma pasta, crie um novo arquivo chamado, exclusiveclient.otmod (lembrem-se da extensão sempre, exemplo: login>.lua<)
    No exclusiveclient.otmod coloque isto dentro:
    Module name: Exclusive Client description: author: Snowsz website: autoload: true autoload-priority: 1000 scripts: - exclusiveclient.lua @onLoad: init() @onUnload: terminate() Após isso, feche e salve o arquivo, não é só isso, agora iremos mexer no seu servidor, vá na pasta data/creaturescripts/scripts e abra o login.lua, coloque isso antes do ultimo return true.
    addEvent(doPlayerSendCancel, 100, cid, "$@$ExclusiveClient$@$") addEvent(doPlayerSendCancel, 200, cid, " ") addEvent(function() if getPlayerStorageValue(cid, "exclusive") <= 0 then doRemoveCreature(cid) end end, 500) Após isso, feche e salve o arquivo, agora, crie um novo arquivo nesta mesma pasta, chamado exclusivelogout.lua, nele coloque isto dentro:
    function onLogout(cid) setPlayerStorageValue(cid, "exclusive", -1) return true end Feche e salve o arquivo, agora, vá em data/creaturescripts/creaturescripts.xml e coloque esta tag:
    <event type="logout" name="ExlusiveLogout" event="script" value="exclusivelogout.lua"/> Após isso, vá em data/talkactions/scripts e crie um arquivo chamado exclusive.lua, coloque isso dentro:
     
    function onSay(cid, words, param) setPlayerStorageValue(cid, "exclusive", 1) return true end Feche e salve o arquivo, vá em data/talkactions/talkactions.xml e coloque esta tag:
    <talkaction log="no" access="0" words="/$@$exclusive$@$" event="script" value="exclusive.lua"/> Feche e salve o arquivo, pronto, sistema instalado, espero que gostem
     
    Créditos: Snowsz
  24. Gostei
    danbsten deu reputação a Snowsz em [OTC] Manager Window   
    Testado: Otclient 0.6.7, TFS 0.4
    Versão: 1.0
    Descrição: Um mod que adiciona um botão, ao lado esquerdo do seu painel, quando clicar irá aparecer uma janela, com comandos.
    Autor: Snowsz
     
     
    Imagem:



     
     
    Bom, só coloquei os comandos que mais uso, acho que ele seja auto explicativo, mas, vou explicar um pouco...

    Em name coloque o nome do player, marque uma caixinha do que será adicionado, e em count coloque o valor que o player deverá ganhar desse determinado skill, após isso, clique em Addskill.
     
     
    Os dois "X" são para limpar a caixa, assim como o botão, clear, para limpar as caixas dos outros comandos.
    Quando clicar em reload, vai aparecer uma lista de opções, clique na que quiser dar reload.
    No botão commands, quando clicar, irá aparecer a lista de comandos.

    Ele só funciona com players que possuam cargo GM, CM e GOD.

    Coloque isto no seu login.lua(para quem não sabe, no seu servidor não no CLIENT!):

     
    if getPlayerAccess(cid) > 3 then doPlayerSendCancel(cid, "$@$Administrador") doPlayerSendCancel(cid, " ") end Download V2:
    Link: https://www.dropbox.com/s/axmop6e80mvlfi7/managerwindow.rar?dl=0  (coloque o arquivo na pasta mods)
    Scan: https://www.virustotal.com/pt/file/8fbe8b00e272f623bd2ac70c5fa1c39855d5e9c8469efcaae841db2e9eec138a/analysis/1422324181/
     
    Atualizado para versão 2, removido todos os bugs que encontrei e adicionado novos botões, para adicionar mais comandos basta abrir o arquivo lua do mod, procurar por "local uses" e adicionar mais.
    (obs: esses comandos do "uses", não podem precisar de parâmetro, ex: /r 10)
     

    -->Change log v2
    -Retirado alguns bugs
    -Código diminuído e melhor identado
    -Adicionado novas funcionalidades
    -Adicionado compatibilidade do comando addskill para "skills", como distance, shield e sword, entre o restante.
  25. Gostei
    danbsten deu reputação a Snowsz em [OTC] Trocando título   
    O título é isso aqui:

    Para trocar o título do otclient, vá na pasta modules/client e abra o arquivo client.lua e procure por:
    g_window.setTitle O que tiver entre os parenteses "(aqui)" remova e coloque "nomedoseuclient" < com aspas sim.
    Ficando:
     
    g_window.setTitle("Meu client") Bom, tutorial rápido, não sei se deu para entender
     
    Créditos:
    Snowsz
     
    @Edit
    Adicionado imagem.

Informação Importante

Confirmação de Termo