Ir para conteúdo

ZeeroBR

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    ZeeroBR deu reputação a Raylander Wise em TFS 1.3 8.60 by Nekiro (Tela Extendida)   
    OTV8 não estar aceitando essa tela extendida não.
  2. Gostei
    ZeeroBR deu reputação a FeeTads em (Resolvido)[RESOLVIDO] Movement de armadura que dá % de vida   
    vc vai precisar sempre dar um update desses items, indico fazer uma function na LIB com esses itens, uma table, e sempre que o player upar ou mover esse item, dar chamar a function da lib pra atualizar a vida com a %

    pois dessa maneira que está ele pega a max health apenas no momento do equip, ele não da um "update" pra checar o health a cada level.

    indico vc fazer uma tabela com esses itens na lib tipo
     
    function na lib:
    function executeItems(cid) local tabela = {1111,2222,333,4445,5555,5555,555,9999} for i=1, 9 do for j=1, #tabela do if getPlayerSlotItem(cid. i).itemid == tabela[j] then local save = getCreatureMaxHealth(cid) doSetCreatureMaxHealth(cid, (getCreatureMaxHealth(cid) * 1.1)) --1.1 = 110% da vida atual, ou seja, +10% doCreatureAddHealth(cid, (getCreatureMaxHealth(cid) - save)) -- adiciona 10% de vida end end end end
    e um function no creatureScripts:
     
    function onAdvance(cid, skill, oldLevel, newLevel) if(skill == SKILL__EXPERIENCE) then return true end if(skill == SKILL__LEVEL) then executeItem(cid) doPlayerSave(cid, true) end return true end  
     
    tem que testar direitinho pra checar se não vai bugar e ficar add infinitamente, mas de base eh isso.
  3. Obrigado
    ZeeroBR recebeu reputação de Jhow ZL em Compilar cliente estendido   
  4. Gostei
    ZeeroBR deu reputação a So volto tarde em Dúvida sobre "smart" magic effects   
    você vai ter que mudar a forma como o client desenha as sprites adicionando o efeito como uma layer da outfit (no caso de oldclient, engenharia reversa) por otc fica mais simples, sobre a questão de venda, você pode falar com o cjaker que é a única pessoa que me vem na cabeça que faz essas engenhocas pra oldclient
     
     
  5. Gostei
    ZeeroBR deu reputação a koyotestark em Dúvida sobre "smart" magic effects   
    eu sei de uma maneira que usam, é uma dll inserida no oldclient, no otc tambem tem como fazer isso, mas não tenho a minima ideia de como fazem.
  6. Gostei
    ZeeroBR deu reputação a r0bert0lol em [8.60][OLD Client] Narutibia (NTO HARD) - Servidor Completo   
    Galera tópico atualizado, adicionei o banco de dados que eu estava utilizando.
     
    Acabei de reinstalar o servidor para um colega, utilizei um Ubuntu 14.04 e tudo está funcionando 100 % ( A única coisa que faltava era o banco de dados )
     
    Eu gostaria de organizar, montar um tutorial step-by-step ensinando como colocar o servidor Online porém estou sem tempo, mas posso garantir que não há problemas com os arquivos o pack está completo agora com o banco de dados.
     
    Um Guia para você que não sabe por onde começar : 
     Consiga uma VPS de preferência utilize o Sistema Operacional em que o server foi testado ( Ubuntu 14.04 )   Atualize as libs da sua VPS  e Instale :  Apache + Mysql + PhpMyAdmin ( Você pode encontrar Tutoriais aqui no Fórum )   Configure / Importe um banco de dados no PhpMyAdmin ( Agora tem banco de dados disponível )  Gerencie os arquivos,  coloque o servidor no diretório /home e o site no diretório /var/www e não esqueça de editar os arquivos config.lua e config.php  Com todos os arquivos configurados e posicionados no local correto, seu site já deve estar funcionando.   Compile o servidor ( Caso esteja usando ubuntu 14.04 já tem uma distro compilada )  para compilar ( Você pode encontrar Tutoriais aqui no Fórum )   Agora com site funcionando e distro rodando, você apenas precisará configurar o Client do servidor para se conectar.   O Client funcionará apenas após trocar o IP do executável, voce pode usar ip changer ou usar um hex editor para alterar definitivamente.  Agora com client redirecionando para o IP da sua VPS você já pode se conectar no game. dbresetada.sql
    Estou pensando em fazer um vídeo tutorial no Youtube colocando Online o servidor em um Ubuntu,.
    Nesse vídeo eu passaria algumas dícas para quem está começando a usar Linux e realizaria um passo a passo do que é necessário para você conseguir deixar o servidor Online em qualquer VPS.
    Caso alguém se interesse, deixa um Rep + Aí que assim que surgir um tempo eu gravo o vídeo para vocês.
  7. Gostei
    ZeeroBR deu reputação a Dragonight em [DÚVIDA] Ajuda em um script movement   
    Tenta ao invés de fazer o script pelo movements.xml, faz uma Creaturescript com a função "Onthink" pegando o item que tá no slot no anel (acho que tem uma função, getPlayerSlotItem ou algo parecido com isso) e daí adicionando a storage no player, acho que aí funciona e não dá conflito 
     
     
     
     
    cria nagatoring.lua
    dentro põe
     
    function onThink(cid, interval)
    local storage = 48913
    if getPlayerSlotItem(cid, 9) == 112 then -- 9 é o slot do anel!
    setPlayerStorageValue (cid, storage, 100)
    else
    setPlayerStorageValue (cid, storage, 0)
    end
    registerCreatureEvent(cid, "Nagatoring")
    return true
    end
     
    em creaturescripts.xml
    <event type="think" name="Nagatoring" event="script" value="nagatoring.lua"/>

    talvez de errado e voce tenha que por o registerCreatureEvent(cid, "Nagatoring") numa das linhas do seu evento PlayerLogin (login.lua) e apagar do script do ring!
    ah e mais se continuar dando errado, é porq não precisa da function no movements.xml pro absorb do anel funcionar, essa function era necessária em anéis que troca a sprite e "decai" a duração quando você põe no slot ~~ aqueles que brilha ~~ ...
  8. Gostei
    ZeeroBR deu reputação a WooX em [DÚVIDA] Ajuda em um script movement   
    Não tem porque usar ambos, deixa só o script.
  9. Gostei
    ZeeroBR recebeu reputação de Gabrielx17 em [TFS 0.x] New look system   
    Estive com o mesmo problema, creio que não, me fala uma coisa? quando você dá look em algum item retorna algum erro no console?
  10. Gostei
    ZeeroBR deu reputação a FlameArcixt em (Resolvido) Pedido Spell de invisibilidade   
    @xWhiteWolf
  11. Gostei
    ZeeroBR deu reputação a 139 em (Resolvido) Pedido Spell de invisibilidade   
    Pq vc não usa a do nightwolf? Não funciona no seu server?
     
  12. Gostei
    ZeeroBR deu reputação a LeoTK em (Resolvido) Pedido Spell de invisibilidade   
    eu postei o sistema de ghost pro player ficar invisível igual ao ADM
     
  13. Curtir
    ZeeroBR recebeu reputação de 139 em [TFS 0.4] Player sendo atacado pelo próprio summon   
    Consegui resolver o problema, era apenas registrar o evento "registerCreatureEvent(clone, "SummonAntKillPlayer")" no .lua da spell que invoca ele
  14. Gostei
    ZeeroBR recebeu reputação de Garoto Prodigio em [TFS 0.4] Player sendo atacado pelo próprio summon   
    Consegui resolver o problema, era apenas registrar o evento "registerCreatureEvent(clone, "SummonAntKillPlayer")" no .lua da spell que invoca ele
  15. Gostei
    ZeeroBR deu reputação a Garoto Prodigio em [TFS 0.4] Player sendo atacado pelo próprio summon   
    Provavelmente é em Creaturescripts, há uns dias atrás eu também resolvi este problema, veja se resolve pra você.
     
     
    Em creaturescripts.lua adicione estas duas linhas:
    <event type="combat" name="SummonAntKillPlayer" event="script" value="summonantkillplayer.lua"/> <event type="combat" name="PlayerAntKillSummon" event="script" value="playerantkillsummon.lua"/>  
    summonantkillplayer.lua      (Impede que o summon ataque o player, mesmo com ataques em area)
    function onCombat(cid, target) if isInArray(getCreatureSummons(target), cid) then return false end return true end  
    playerantkillsummon.lua         (impede que o player ataque seu summon, mesmo ataques em area)
    function onCombat(cid, target) if cid == getCreatureMaster(target) then doPlayerSendCancel(cid, "Voce nao pode matar seu summon.") return false end return true end  
    Por fim, em data/creaturescripts/scripts/login.lua     ----> Se você não colocar, não funcionará!
    Adicione:
    registerCreatureEvent(cid, "PlayerAntKillSummon") registerCreatureEvent(cid, "SummonAntKillPlayer")  
     
     
     

  16. Curtir
    ZeeroBR recebeu reputação de ruanvioto em (Resolvido)[Resolvido] OTClient Lagado   
    Errinho chato, né mano? mas achei a solução.
     
    1 - Vá na pasta do seu client
     
    2 - Abra o arquivo otclientrc.lua com seu editor de texto
     
    3 - Substitua o que tem lá dentro por isto
     
    -- this file is loaded after all modules are loaded and initialized -- you can place any custom user code here print 'Startup done :]' -- g_game.enableFeature(16) connect(g_game, { onGameStart = function () g_game.enableFeature(GameExtendedClientPing) end }) connect(g_game, { onGameStart = function () g_game.enableFeature(16) end })  
     
  17. Curtir
    ZeeroBR deu reputação a Yan Liima em [8.60] TFS 0.4 Rev3996 War & Cast   
    Em \data\npc\lib\npcsystem tentem utilizar está LIB:
    npchandler.lua
     
  18. Curtir
    ZeeroBR deu reputação a MySticaL em [Action] Script Quest   
    Script Quest:
    --[[ Script: Exemplo de Quest Autor: MySticaL Email: [email protected] ]] function onUse(cid, item, frompos, item2, topos) -- Não mecha. storage = 938312 -- Storage a cada quest que for criada aumente um numero da storage pra qnd vc pegar o baú de outra quest ñ aparecer que vc já fez. item = 2160 -- Id do item ira ganhar. quantidade = 1 -- Quantidade ira ganhar. level = 5 -- Level que precisa pra fazer. if getPlayerLevel(cid) >= level and getPlayerStorageValue(cid,storage) == -1 then -- Não mecha. doPlayerSendTextMessage(cid,25,"Você ganhou um pouco de dinheiro") -- Mensagem que aparecera quando ganhar o item. doPlayerAddItem(cid, item, quantidade) -- Não mecha. setPlayerStorageValue(cid,storage,1) -- Não mecha. elseif getPlayerLevel(cid) <= level then -- Não mecha doPlayerSendTextMessage(cid,25,"Você precisa ser level 5 ou mais.") -- Mensagem que ira aparecer se o player tiver menos level que o necessario. elseif getPlayerStorageValue(cid,storage) >= 1 then -- Não mecha. doPlayerSendTextMessage(cid,25,"Você já fez está quest") -- Quando tentar pegar mais de uma vez o baú. end return true end Actions.xml
    <action actionid="3123" event="script" value="script.lua"/> Obs: O actionid="3123" é o que você deve botar no item no Remeres Map Editor
    Caso você queria criar outra quest aumente a storage no script e o id no actions.xml !
    Como configurar ?
    R- \/
    ================================================================================================================================
    storage = 938312 -- Storage a cada quest que for criada aumente um numero da storage pra quando você for pegar o baú de outra quest não aparecer  que você já fez.
    ================================================================================================================================
    item = 2160 -- Id do item ira ganhar.
    ======================================================
    quantidade = 1 -- Quantidade ira ganhar.
    ======================================================
    level = 5 -- Level que precisa pra fazer.
    ======================================================
    Script bem simples mais irá ajudar alguns membros.
    Rep não cai o dedo
    Não sei muito sobre script.
     
    100% Créditos meu caso for postar em outro lugar deixe os créditos para min !
    Desculpem o tópico mal arrumado
     
  19. Curtir
    ZeeroBR deu reputação a Vodkart em [8.6][MODS] AutoLoot By Account! [+Item]   
    Sistema removido.
     
     
    Nova versão sem Bugs somente no Discord: vodkart#6090
  20. Curtir
    ZeeroBR deu reputação a jeremias em !spells ou !jutsus que não buga em STAFF.   
    Olá pessoal, resolvi adaptar o script do comando !spells ou !jutsus, essa adaptação consiste em prevenir que Staffs como GM, CM, ADM, tomem debug ao usar o comando.
    Recomendado para Staffs iniciantes ou esquecidos que usem o comando.
     
    Como coloco em meu servidor ?
    -- Adaptado por Jeremias 13/03/2018. function onSay(cid, words, param) if (getPlayerGroupId(cid) >= 3) then return doPlayerSendTextMessage(cid, 19, "Staff nao tem jutsus.") end local count = getPlayerInstantSpellCount(cid) local text = "" local t = {} for i = 0, count - 1 do local spell = getPlayerInstantSpellInfo(cid, i) if spell.level ~= 0 then if spell.manapercent > 0 then spell.mana = spell.manapercent .. "%" end table.insert(t, spell) end end table.sort(t, function(a, b) return a.level < b.level end) local prevLevel = -1 for i, spell in ipairs(t) do local line = "" if prevLevel ~= spell.level then if i ~= 1 then line = "\n" end line = line .. "Spells for Level " .. spell.level .. "\n" prevLevel = spell.level end text = text .. line .. " " .. spell.words .. " - " .. spell.name .. " : " .. spell.mana .. "\n" end doShowTextDialog(cid, 2175, text) return TRUE end
     
    Uma adaptação simples que previne dbugs desnecessários. 
  21. Curtir
    ZeeroBR deu reputação a MaTTch em [Vault System] Sistema de Cofre   
    Bom galera eu resolvi fazer o Vault System a pedido de um amigo meu e decidi compartilhar com vocês.
     
    Testado em 8.60 TFS 0.4
     
    EDIT -- O script foi arrumado, pois havia um bug que o player ganhava golds.
     
    Vamos lá.
     
    1° - Vá em data/actions/scripts e crie um arquivo chamado vault.lua, e dentro você coloca isso:
    local vaultStorage = 99991 -- storage em que ficara armazenado os golds ------------------//* Functions //------------------- local function getPlayerFreeSpace(cid) -- by MaTTch     local checkSlots, space = {3,5,6,10}, 0     local function getContainerFree(container)         local free = 0         if(not isContainer(container.uid)) then             return free         end         for i = 0, (getItemInfo(container.itemid).maxItems -1) do             local item = getContainerItem(container.uid, i)             if(item.itemid == 0) then                 free = free + 1             elseif(isContainer(item.uid)) then                 free = free + getContainerFree(item)             end         end         return free     end     for _, i in ipairs(checkSlots) do         local slotItem = getPlayerSlotItem(cid, i)         if(i ~= CONST_SLOT_BACKPACK and slotItem.itemid == 0) then             space = space + 1         elseif(isContainer(slotItem.uid)) then             space = space + getContainerFree(slotItem)         end     end     return space end local function withdrawMoneySecurity(cid, value, storage) -- by MaTTch     local storageMoney, countValue = getPlayerStorageValue(cid, storage), 0     local config = {         [1] = {ITEM_CRYSTAL_COIN, math.floor(value/getItemInfo(ITEM_CRYSTAL_COIN).worth)},         [2] = {ITEM_PLATINUM_COIN, math.floor((value/getItemInfo(ITEM_PLATINUM_COIN).worth)-(math.floor(value/getItemInfo(ITEM_CRYSTAL_COIN).worth)*100))},         [3] = {ITEM_GOLD_COIN, math.floor(value%100)}     }     for i = 1, #config do         local count = config[i][2]         if(count > 0) then             while(count > 0) do                 storageMoney = getPlayerStorageValue(cid, storage)                 local a, itemCap = count > 100 and 100 or count, getItemInfo(config[i][1]).weight                 if(getPlayerFreeCap(cid) >= (itemCap*a)) then                     if(getPlayerFreeSpace(cid) >= 1) then                         doPlayerAddItem(cid, config[i][1], a)                         setPlayerStorageValue(cid, storage, (storageMoney - (getItemInfo(config[i][1]).worth * a)))                         countValue = countValue + (getItemInfo(config[i][1]).worth * a)                         count = count - a                     else                         return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have enough space in container. You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.")                     end                 else                     return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have enough cap. You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.")                 end             end         end     end     return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.") end ------------------//* End Functions //------------------- function onUse(cid, item, fromPosition, itemEx, toPosition)     local cidMoney, vaultMoney = getPlayerMoney(cid), getPlayerStorageValue(cid, vaultStorage)     if(vaultMoney <= 0) then         if(cidMoney <= 0) then             return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have money.")         end         doPlayerRemoveMoney(cid, cidMoney)         setPlayerStorageValue(cid, vaultStorage, cidMoney)         doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have added "..cidMoney.." gold"..(cidMoney > 1 and "s" or "").." to vault. Now your money is kept in the vault chest, you can take it whenever you want.")     else         withdrawMoneySecurity(cid, vaultMoney, vaultStorage)     end     return true end 2° - Agora em data/actions/actions.xml adicione a tag:
    <action itemid="ID" event="script" value="vault.lua"/> Em ID você escolhe o id do item que quiser.
     
    3° - Agora em data/creaturescripts/scripts crie um arquivo com o nome vaultLook.lua, e dentro coloque isso:
    local config = { vaultId = ID, -- itemid do vault vaultStorage = 99991 -- storage em que ficara armazenado os golds } function onLook(cid, thing, position, lookDistance) local show = getPlayerStorageValue(cid, config.vaultStorage) if(thing.itemid == config.vaultId) then local str = "You see"..(getItemInfo(thing.itemid).article and " "..getItemInfo(thing.itemid).article.." " or " ")..getItemInfo(thing.itemid).name..".\nYou have "..(show < 0 and 0 or show).." gold"..(show > 1 and "s" or "").." in the vault." if(getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then str = str .. "\nItemID: ["..thing.itemid.."].\nPosition: [X: "..getThingPos(thing.uid).x.."] [Y: "..getThingPos(thing.uid).y.."] [Z: "..getThingPos(thing.uid).z.."]." end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str) return false end return true end 4° - Agora em data/creaturescripts/creaturescripts.xml adicione a tag:
    <event type="look" name="vaultLook" event="script" value="vaultLook.lua"/> 5° - Agora em data/creaturescripts/login.lua lá embaixo adicione junto dos outros:
    registerCreatureEvent(cid, "vaultLook") E agora o sistema já esta pronto para ser usado.
     
    - Aah mas como funciona?
    Você clica uma vez no cofre (vault) e deposita todo seu dinheiro nele, ao clicar de novo você pega-os de volta, e caso não tiver cap ou espaço na bag você pega somente o possível e o restante ficara la até você quiser pegar.
     
    --> Versão do Vault System em editText
     
    Créditos:
    MaTTch (eu)
  22. Curtir
    ZeeroBR deu reputação a Caronte em Novas Sprites Tibia Água etc...   
    Em nome da comunidade do TK, muito obrigado pela contribuição!
    Seu tópico de conteúdo foi aprovado e será movido para a seção adequada. Você ganhou 1 REP+!
  23. Curtir
    ZeeroBR deu reputação a L3K0T em Novas Sprites Tibia Água etc...   
    Liberando mais sprites novas do Tibia.
     
    Créditos: CipSoft
     
    gosto ? rep+ pq foi difícil conseguir.
     
     





  24. Curtir
    ZeeroBR deu reputação a Gabrielzxzx em Como criar quest   
    Oiie Hoje Insinarei A Faser 1 Quest Em Otserv 8.6

    primeiro : vao em data>actions>script
    e criem 1 pasta chamada quest.lua

    segundo : vao na sua pasta chamada quest.lua
    e colem isto
    function onUse(cid, item, frompos, item2, topos)
    if item.uid == 1636 then
    queststatus = getPlayerStorageValue(cid,1636)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você pegou 10k") -- a mensagen que ira aparecer quando vc pegar o item
    item_uid = doPlayerAddItem(cid,2160,100) -- item_uid = doPlayerAddItem(cid,2160~id do item~,100~Quantidade~)

    setPlayerStorageValue(cid,1636,1)

    else
    doPlayerSendTextMessage(cid,22,"Esta Vazio . Vc Ja Fes A Quest.") -- ira aprecer quando vc ja tiver pego e tentar dnv
    end
    else
    return 0
    end
    return 1
    end
    terceiro : vao em data>acitions>acitions.xml
    e adicionem esta tag

    <action uniqueid="1636" script="quest.lua" />

    quarto : vao no seu map editor
    e vao em dooad pallet>interior
    e procure 1 bau



    Id Do Bau 1748

    e coloquem o codigo 1636 no unique id





    E Salvem Boa Sorte Para Vcs

    Créditos:

    vipstyle
  25. Curtir
    ZeeroBR deu reputação a xWhiteWolf em (Resolvido)Spell para ficar intocavel   
    ahaauhauhauh eu ainda não curto essas idéias de ter que pagar por script.. faço as coisas na boa vontade e espero uma resposta em troca pelo menos do cara falar que gostou ou me contar como ele utilizou no server. Infelizmente muita gente acha que só porque sou suporter é minha obrigação ajudar e pega o script usa no server e nem responde mais nada

Informação Importante

Confirmação de Termo