Ir para conteúdo

Dersonpe

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Dersonpe deu reputação a Qwizer em Alguém sabe consertar esse erro.   
    manda o arquivo.
  2. Gostei
    Dersonpe deu reputação a xWhiteWolf em Monstros não usam magia.   
    não querendo desmerecer mas esse problema apesar de parecer complicado é muito simples:
    O primeiro erro dizia que você tentava executar um addEvent sem a criatura que ele tentava fazer usar a magia (já que ela estava morta)
    O segundo erro foi ao adicionar a tag IF NOT ISPLAYER (solução do vankk), fazendo com que monstros não soltassem mais a spell.

    A solução é muito simples: o Vankk não considerou que monstros poderiam executar a spell, vc precisa trocar a tag if not isPlayer pra if not isCreature

     
  3. Gostei
    Dersonpe deu reputação a xWhiteWolf em Monstros não usam magia.   
    DESDE que seja onCastSpellX onde X é o numero da spell;

    Na function onCastSpell(cid, var) vc não altera.

     
    local function onCastSpell1(parameters) <- vc só usa parameters.cid pq o que a funcao recebe é parameters. Se você tiver uma spell q esteja escrito qualquer outra use o nome dessa coisa.cid na checagem
    if isPlayerCreature(parameters.cid) then return true end
  4. Gostei
    Dersonpe deu reputação a Snowsz em (Resolvido)[Stamina BUG] player morre = stamina full)   
    Eu ia fazer o script assim , no seu ainda faltou um parâmetro "cid" na função que adiciona stamina, acho que isso resolve:

     
    local storage = 5612 function onPrepareDeath(cid, deathList) if isPlayer(cid) then setPlayerStorageValue(cid, storage, getPlayerStamina(cid)) -- Salva a Stamina atual do player end return true end function onLogin(cid) local stamina = getPlayerStorageValue(cid, storage) if not stamina == -1 then local newStamina = stamina-getPlayerStamina(cid) --Pega a stamina salva e calcula a diferença com a atual setPlayerStamina(cid, newStamina) -- Adiciona a diferença calculada setPlayerStorageValue(cid, storage, -1) -- Remove o valor da storage end return true end E não há a necessidade de por um "isPlayer" no login, pois quem faz login é um jogador.
     
    @Edit:
     
    Também está errado outra coisa, não para adicionar stamina ao player, e sim setar, corrigi o script, tenta...
  5. Gostei
    Dersonpe deu reputação a Natanael Beckman em DEV C++ Compilando TFS no Windows   
    DEV C++,  aprenda a compila uma source TFS!
     
    Downloads(Baixe de acordo as configurações do seu windows):
    DEV C++ CONFIGURADO PARA 32BITS
    DEV C++ CONFIGURADO PARA 64BITS
    REV 3884 TFS 0.4
     
    Certo, feitos os downloads, extrai DEV C++ no Disco C e REV 3884 em Documentos.
    ======================================
    Abra o DEV C++:
    ======================================

    ======================================
    Abra a Source:
    ======================================

    ======================================
    Localize a pasta da Source e abra o arquivo TheForgottenServer.dev, Documentos> trunk.r3884> dev-cpp> TheForgottenServer.dev:
    ======================================

    =============================================================

    ======================================
    Aguarde carregar todos os arquivos:
    ======================================

    ======================================
    Vamos adicionar o parâmetro -D__CONSOLE__ no teclado digita ALT + P, clique em parameters e adicione o parâmetro... Feito? clique em OK:
    ======================================

    ======================================
    Vamos compilar Source, no teclado digite CTRL+F9 e aguarde finalizar o processo:
    ======================================

    ======================================
    Se der tudo certo em Log vai estar como mostra a imagem abaixo:
    ======================================

    ======================================
    Verifique na pasta Documentos> trunk.r3884> dev-cpp você vai encontrar o arquivo TheForgottenServer.exe e pronto meu parabéns você compilou!
    ======================================

    ===========================================
    Só isso galera tutorial rápido resumido e útil!
    Créditos Natanael Beckman!    
    ===========================================     
     
    Caso você adquira uma source com apenas os arquivos .cpp e .h e não sabe como compilar o projeto, abaixo vamos explicar:
    Na pasta onde está localizado os arquivos .cpp e .h crie uma pasta chamada dev-cpp, e dentro dela adicione uma imagem icone.
     

     
    Abra o DEV-C++, clique em  File> New> Project:
     

     
    Logo em seguida selecione Empty Project, em name terá o nome Project1 altere utilize o nome quer quiser, após isso clique em OK e em seguida selecione a pasta dev-cpp que criamos:
     

     
    Agora selecione a opção Win32GUI caso use source OTX ou TFS selecione Win32Console ao lado << Browse selecione a imagem do icone que está na pasta Dev-Cpp.
     

     
    No mesmo menu na aba Parameters em C++ compiler adicione os seguintes parâmetros:
    -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D__GROUND_CACHE__ -D__USE_SQLITE__ -D__USE_MYSQL__ -D__CONSOLE__ -D__WAR_SYSTEM__ E em Linker adicione as seguintes libs:
    -lboost_filesystem -lboost_thread -lboost_system -lboost_regex -lsqlite3 -lwsock32 -llua5.1 -lws2_32 -leay32 -lmysql -lxml2 -lgmp -lz -s   No mesmo Menu na aba Build Option escreva na segunda coluna horizontal escreva Obj e dê OK.     Na lateral terá o nome do seu projeto o meu no caso é The Forgotten Server, clique com o botão direito do mouse em cima do nome e clique na opção Add Project:      Selecione na pasta da sua source todos os arquivos .cpp e .h após isso salva o projeto e já pode compilar CTRL+F9:         OpenSSL 0.9.8   1º baixe http://devpaks.org/details.php?devpak=73 2° abra Dev-Cpp > Tools > Packager Manager > Install > Seleciona o arquivo baixado e instala, fecha abre e testa!
      Clica aqui \/
  6. Gostei
    Dersonpe deu reputação a LucasAyres em Monstros não usam magia.   
    Tenta adicionar: 
    if isPlayer(parameters.cid) then return true end  E me diz o que deu
  7. Gostei
    Dersonpe deu reputação a xWhiteWolf em Dois Tipo De Spell Que Teleporta   
    ah desculpa, entendi agora...

    esse script aí tava cheio de erros, eu refiz nos moldes que você queria, espero que você goste
     
     
  8. Gostei
    Dersonpe deu reputação a WhiteBubble em (Resolvido)[duvida] meu server não tem Pasta Source   
    @dissolima Desculpa a demora, é que estava compilando ela para ver se estava tudo certo, enfim aqui o link da source: Source  e o scan, não sei se precisa do scan mas ta ai : Scan
     
    Caso não saiba compilar no windows use esse tutorial, que foi o que eu usei quando não sabia: Tutorial
  9. Gostei
    Dersonpe deu reputação a andre1189 em "Usar" itens "não usáveis"   
    Boa tarde, pessoal. Estou voltando a fazer scripts depois de muuuuuitos anos e praticando me deparei com o seguinte problema:
    Para praticar, resolvi fazer alguns scripts bem básicos. Um deles seria um sistema de forja onde eu colocasse um item em cima de uma bigorna e batesse nele com um martelo para transformar em outro item. Porém, quando fui testar o script, não consegui fazer o item "hammer" chamar action scripts DE JEITO NENHUM! Testei o script com a pick e funcionou perfeitamente, porém com o hammer nada! Ps. Criei uma action para ele no actions.lua
    Se alguém puder me ajudar, agradeço!
    Abraços!
  10. Gostei
    Dersonpe deu reputação a Jeff Owns em Sistema De AFK   
    Olá Galera Hoje eu Vou Postar um Sistema De Afk Para vcs Então VAMOS Lá

    Vá Na pasta do seu otserv data/talkaction/talkaction.xml Adicione a Tag abaixo




    Depois salve e Feche... Agr Va em data/talkactions/scripts. Abra um arquivo Lua q n estar sendo Usado Renomei Por Sistemaafk e Coloque Isto




    Pronto Seu Sistema De Afk Estar feito feche e salve.
    CREDITOS:
    Higor Lara
    Jeff Owns
  11. Gostei
    Dersonpe deu reputação a xWhiteWolf em (Resolvido)[pedido Spells] auto-explosao   
    local cooldown = 24*60*60 function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, 19329) >= cooldown then doPlayerSetStorageValue(cid, 19329, os.time()) local target = getCreatureTarget(cid) doCreatureAddHealth(cid, -getCreatureHealth(cid)) doCreatureAddHealth(target, -getCreatureHealth(target)) doCreatureSay(cid, "SUICIDE!!", 20) doSendMagicEffect(getPlayerPosition (cid), 0) doSendMagicEffect(getPlayerPosition (target), 0) else doPlayerSendCancel(cid, "Your skill is in cooldown, you can use it again after "..math.floor((cooldown - (os.time() - getPlayerStorageValue(cid, 19329)))/60).." minute(s).") end return true end   <instant name="Suicide" words="suicide" lvl="50" mana="20" prem="1" range="4" needtarget="1" blockwalls="1" exhaustion="2000" groups="1,2000" icon="88" needlearn="0" event="script" value="especiais/assistedsuicide.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant>
  12. Gostei
    Dersonpe deu reputação a vankk em [Error-spell interface]   
    Adiciona em baixo de local function onCastSpell1,2,3,4,5 a seguinte coisa:
    if not isPlayer(parameters.cid) then return true end
  13. Gostei
    Dersonpe deu reputação a xWhiteWolf em Dois Tipo De Spell Que Teleporta   
    1) 

    itemport.lua:
    local config = { storage = 49607,  tempo = 10, itemid = 6217 } local positions = {} function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) <= 0 then table.insert(positions, getThingPos(cid)) doPlayerSetStorageValue(cid, config.storage, #positions) doCreateItem(config.itemid, getThingPos(cid)) doSendMagicEffect(getThingPos(cid), 3) addEvent(function()   if isCreature(cid) then doPlayerSendTextMessage(cid, 22, "Your item has expired.")   doPlayerSetStorageValue(cid, config.storage, 0)   table.remove(positions, getPlayerStorageValue(cid, config.storage))   end  end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)]) doSendMagicEffect(getThingPos(cid), 10) end return true end 2)

    playerport.lua 
    local config = { storage = 49608, tempo = 10 } function onCastSpell(cid, var) if isPlayer(getCreatureTarget(cid)) then local name = getCreatureName(getCreatureTarget(cid)) if getPlayerStorageValue(cid, config.storage) <= 0 then doPlayerSetStorageValue(cid, config.storage, 1) doSendMagicEffect(getThingPos(cid), 65) doSendMagicEffect(getThingPos(getCreatureByName(name)), 65) addEvent(function()   if isCreature(cid) then   doPlayerSetStorageValue(cid, config.storage, 0)   doTeleportThing(cid, getThingPos(getCreatureByName(name)))   end  end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendCancel(cid, "You've already set your target.") end else doPlayerSendCancel (cid, "You can only use this spell on players.") end return true end e no spells.xml:
    <instant name="TK SUPORT" words="itemport" lvl="50" mana="100" prem="1" exhaustion="1000" needlearn="0" event="script" value="especiais/itemport.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> <instant name="TK SUPORT" words="playerport" lvl="50" mana="100" prem="1" range="7" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/playerport.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> agora vá em creaturescripts\scripts\login.lua e adicione essas linhas antes do ultimo return true
     if getPlayerStorageValue(cid, 49607) == -1 then         setPlayerStorageValue(cid, 49607, 0)      end  if getPlayerStorageValue(cid, 49608) ~= 0 then         setPlayerStorageValue(cid, 49608, 0)      end
  14. Gostei
    Dersonpe deu reputação a matsantos em (Resolvido)Exhausted entre spells.   
    Vai no seu spell e procura essa linha :  function onCastSpell(cid, var)
    Adiciona isso loga abaixo : local waittime = 1 -- Tempo de exhaustion
    local storage = 115818
    if exhaustion.check(cid, storage) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
    return false
    end
    No final do Script antes de return True ou return False sei la , adiciona isso : exhaustion.set(cid, storage, waittime)
    E em Spells.xml localiza sua spell e onde tem exhaustion coloca 0
  15. Gostei
    Dersonpe deu reputação a xWhiteWolf em Novo Sistema de Trainer [0.36~0.4]   
    Olá meus caros do Tibia King, hoje vim trazer pra vocês um sistema que bolei pra um concurso em outro fórum mas acabei ficando descontente e nunca cheguei a disponibilizar.
    Eu gostaria de agradecer inicialmente à três acontecimentos que sem eles não seriam possíveis a criação desse sistema.
    - A otlist obrigar que os servidores utilizem anti idle 
    - Os mages do meu servidor reclamarem que não dava pra treinar ml nos trainers
    - Ao @Storm Night, que embora tenha me irritado muito nesse tópico aqui , botou a sementinha dessa idéia na minha cabeça. 
     

     
    Explicação É a combinação de dois sistemas que eu ja havia feito, o primeiro escolhe entre todas as salas de treiner aquela que está vazia pra te alocar e o segundo te mantém alimentado e rodando pra simular o anti idle. (Nota: ele não impede o anti idle de fato, se vc quiser fazer isso vc vai precisar editar o script de anti idle que vc utiliza pra ignorar players com determinado storage e adicionar o storage no player quando ele entrar na sala e tirar ao sair.. mas não sei até que ponto isso pode provocar ban da OTservlist por isso decidi não ensinar isso aqui.)

    Sem mais delongas, talk is cheap, show me the code. 
     
    Idéia Basicamente dá pra reduzir toda a idéia do código nessa foto aqui:
     

    Você tem diversas salas com trainers nesse formato (pode ser em linha reta horizontal ou vertical tb, mas assim fica melhor distribuído). Você inclusive pode criar salas no meio do void  de forma que a distancia de uma vc nao consiga ver a outra e vai ser uma experiencia muito amigável para o player ver que está treinando sozinho na paz. Ao entrar no tp ele te aloca na primeira sala vazia, se não houverem salas vazias ele retorna que não tem posições livres

     
    Instalação Você precisa criar as salinhas dos trainers equidistantemente, ou seja, tendo a mesma distância A em X e mesma distância B em Y. Sério, se vc errar nessa parte é porque vc não sabe oque significa equidistante. Vai pesquisar preguiçoso!! Já aviso que não vou dar suporte quanto à isso.

    Você vai precisar criar salas parecidas com isso daqui:
     

    Perceba que não tem como ter acesso a essa sala, não tem como ser puxado pra fora do trainer, não tem dor de cabeça nenhuma e quando o player quiser sair ele só entra no tp e volta pro templo ou pra onde vc definir.

    Nesse teleport da sala vc adiciona o actionid 14877 e não bota nenhuma posição nele.
    Naquele tile que o player irá ficar que inclusive tem id diferente vc bota actionid 14878.
    Agora seleciona a area dessa sala no rme e vai copiando e colando percebendo sempre se vc tá criando as salas com mesma distância em X. Se o ponto inicial de uma sala é 140 e vc quer que todas tenham 12 sqm de distancia vc cria em 152, 164, 178.. por aí vai. 

    Quando terminar as salas que quiser e tiver montado as linhas e colunas da forma que desejou, vc vai criar um tp principal pra alocar os players nessa sala:


    Lembrando que ele não deve ter posição no rme, vc só bota o actionID 14876 e deixa a toPos dele 0, 0, 0. Ele não tem q te teleportar pra nenhum lugar pois a posição será decidida por script.

    Se você fez tudo certo até agora vc deve ter algo +- assim:
     


    O importante é manter a distancia certinha entre cada sala. Aí no caso eu fiz rX = 11 e rY = 8 (é a terceira ou quarta vez q eu to falando isso, se vcs errarem pqp eu vou ficar muito irritado);

    Vc não bota os trainers, e ali embaixo do spawn vc tem que botar um outro obstáculo pra impedir que o player ande pra baixo e dê a sala como livre.


    Feito isso só adicionar os scripts abaixo:
    movements.xml
        <movevent type="StepIn" actionid="14876" event="script" value="trainertp.lua"/>     <movevent type="StepIn" actionid="14877" event="script" value="trainertp2.lua"/>     <movevent type="StepIn" actionid="14878" event="script" value="foodtrainer.lua"/>
    movements/scripts/trainertp.lua:

    movements/scripts/trainertp2.lua:
     


    movements/scripts/foodtrainer.lua:
     

    FIM, qualquer dúvida ou comentário ou sugestão coloquem abaixo. Se gostou REP+, se não gostou REP+ pq deu trabalho e vai ser útil pra alguém, mesmo que de estudo. 
    Abraços do Lobo. 

    E ao cara do outro fórum que ficou falando que ia dar erro e quis ficar me corrigindo e mandando scripts sem noção pra "mostrar" que sabia de lua: 
  16. Gostei
    Dersonpe deu reputação a xWhiteWolf em Magia que Empurra   
    Bom galera, a um tempo atrás um amigo pediu uma magia que empurrasse e minha primeira iniciativa foi dar uma procura por aí. A maioria dos scripts que eu achei não funcionava, o resto funcionava cheio dos mais variados bugs então eu decidi pegar um desses scripts como base e fazer a magia que empurra.   
    Testado e funcionando em TFS 0.3.6 (Crying Damson).

    Não lembro de onde eu peguei e nem quem fez porque o autor não colocou créditos no script mas quero deixar bem claro de que 
    80% dos créditos vão pra esse pessoa, visto que eu apenas me baseei na metodologia dele pra fazer o script funcionar sem bugs
    Sem mais delongas, vamos ao script:




    OBS: Ele está 200% funcional, não empurra pra dentro de pz e nem buga de nenhuma forma.   

    Agora no spells.xml adicione: 
    <instant name="Get off here" words="exani grav" lvl="160"  mana="500" prem="1" direction="1" exhaustion="2000" needlearn="0" event="script" value="empurrar.lua"> <vocation id="6"/> <vocation id="7"/> <vocation id="5"/> </instant> Faça bom proveito!! 


    EDIT: Algumas imagens pra vocês


     

     
    PS: Dano adicionado pelo membro @Emersonssss ;]
  17. Gostei
    Dersonpe deu reputação a runeraserver em Custom Cliente - Todas as versões - Qualquer IP   
    Fala galera,

    Vejo muita gente com dúvida de como fazer custom clients. Neste tutorial vou ensinar para vocês criar custom clients de todas as versões e com qualquer ip.

    1º Passo:
    • Baixe o programa NotePad http://notepad-plus-plus.org/repository/6.x/6.7.5/npp.6.7.5.Installer.exe

    2º Passo:
    • Vá no diretório onde está instalado o client que deseja editar, clique com o direito em Tibia.exe e selecione "Edit with Notepad++"

    3º Passo:
    • Pressione ctrl + f e busque por login01.tibia.com e substitua pelo seu ip, (exemplo.com.br).
    Perceba que login01.tibia.com + os 3 NUL que aparecem, somam 20 caracteres (NUL conta como 1).
    O seu IP deverá conter 20 caracteres ou menos.
    Exemplo:
    exemplo.com.br possui 14 caracteres
    Como o meu exemplo possui 14 caracteres e login01.tibia.comNULNULNUL possui 20, vou ter que preencher esses 6 caracteres que faltam com 6 NUL.
    Para isso, você deverá deixar o cursos de texto na frente do seu ip (exemplo.com.br"AQUI") e ir para Plugins>Converter>Conversion.


     
    Digite 0 em decimal e clique em (ASCII: Insert) 6 vezes, devendo ficar assim: exemplo.com.brNULNULNULNULNULNUL (Lembrando que acrescenta 6 NUL no caso do exemplo, o seu IP deverá completar os 20 caracteres podendo haver mais ou menos NULs).



    Procure por esses ips e faça os passos acima em todos:
    login01.tibia.com login02.tibia.com login03.tibia.com login04.tibia.com login05.tibia.com tibia01.cipsoft.com tibia02.cipsoft.com tibia03.cipsoft.com tibia04.cipsoft.com tibia05.cipsoft.com Feito isso, procure por:
    132127743205872284062295099082293384952776326496165507967876361843343953435544496682053323833394351797728954155097012103928360786959821132214473291575712138800495033169914814069637740318278150290733684032524174782740134357629699062987023311132821016569775488792221429527047321331896351555606801473202394175817 Substitue por:
    109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413 Créditos: Gesior
  18. Curtir
    Dersonpe deu reputação a Macedo98 em [PEDIDO] MAP TRACKER 8.60 FUNCIONANDO!   
    https://www.mediafire.com/?t6sa5rwwdl1vbsv divirtam-se amiguinhos
  19. Curtir
    Dersonpe deu reputação a Caronte em (Resolvido)RME Como copiar o mapa ?   
    Segure SHIFT e clique com o esquerdo do mouse, e arraste.
    depois de você selecionar uma área, para ir selecionando infinitas, é só usar o CTRL quando for selecionar mais de 1 item...
     

    2.3 - Use títulos e ícones adequados:
    Ao criar um novo tópico no fórum, dê a ele um título que esteja relacionado ao conteúdo do tópico. Títulos como "Ajudaaa!" ou "Entrem aqui!" só pioram as coisas: ninguém vai saber do que se trata, e menos pessoas irão entrar para olhar o que você postou e também evite de usar o CAPSLOCK ao criar seu título.
  20. Gostei
    Dersonpe deu reputação a Luizpaiva em {Pedido}como eu posso colocar novos itens no meu rme?   
    Trocando os itens de seu Remere's Map Editor






    Bom, vejo que muitas pessoas tem dificuldades em trocar os itens de seu RME.




    Mas como assim, trocar os itens do meu RME???




    Voce ja viu no rme, o "Raw Pallete" , ai em tileset o "Other", la fica alguns itens. No seu RME, eles podem estar na versao do tibia 8.54,




    vou ensinar a voces a colocarem uma versao mais atualizada, ou a que voces quiserem.





    Então vamos lá:

    Vá na pasta do seu RME (provavelmente será essa: computador>disco local (C:)>arquivos de programa>remere's map editor) e a pasta será assim: (SS)









    2. Clique em Data:












    3. Agora, dentro da pasta Data estará assim:












    4. Agora voce vai na pasta da versao do seu mapa, por exemplo, alguns mapas abrem com o tibia 8.54 e outros com 8.6 (depende da versão do mapa, aqui no tutorial será com o 8.6, mas caso voce queira fazer com outra versao só fazer o mesmo na pasta da versao que voce queira).




    Clique em 8.6:












    5. Agora dentro da pasta 860, estará assim:












    6. Agora dentro da pasta tem esses itens, e no meios deles tem isto:












    Agora apague-os.





    7. Agora, voce escolhe, se quer pegar itens atualizados, (8.7...) ou da pasta do seu ot, se voce quiser pegar da pasta do seu ot, vá na pasta do seu ot e vá em data/itens/ dentro da pasta, provavelmente tera 3 itens la:





    Items.xml




    items (em bloco de notas)




    randomization





    Copie o items.xml e o items em bloco de notas





    8. Agora que copiou os 2, vá em computador>disco local (C:)>arquivos de programa>remere's map editor>data>860




    e cole os dois la, agora feche e abra seu RME.





    Pronto.






    Gostou

Informação Importante

Confirmação de Termo