Ir para conteúdo

TheuKu

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Curtir
    TheuKu deu reputação a JhonatanCWest em [Tutorial] Explicando e Criando Vocações   
    Olá TibiaKing,

    Vi muitas pessoas com dúvidas, mesmo contendo tutoriais, não entendiam,então tentarei fazer um bom tutorial.

    Ok, vamos por a mão na massa!

    Basicamente nós nos basearemos nisso:
    Localizado em: DATA/XML/VOCATION.XML

    Exemplo


    Primeiro vou explicar cada item pra você criar sua vocação certinha!

    id = não deve haver nenhuma igual, tente seguir a sequencia para não se perder.
    name = nome da nova vocação.
    description = quando der look aparecera esse nome, e caso acc manager também.
    needpremium = se precisa de premmium para ter essa vocação (0 = não 1 = sim)
    gaincap = o tanto de cap que vai ganhar quando upar
    gainhp = o tanto de vida que vai ganhar quando upar
    gainmana = o tanto de mana que vai ganhar quando upar
    gainhpticks = o tanto de segundos que demora pra subir a vida
    gainhpamount = o tanto de vida que vai ganhar a cada ( no nosso exemplo 6 ) segundos
    gainmanaticks = o tanto de segundos que demora pra subir a mana
    gainmanaamount = o tanto de mana que vai ganhar a cada ( no nosso exemplo 3 ) segundos
    manamultiplier = quanto ml vai demorar pra subir, quanto menor mais rápido
    attackspeed = velocidade do ataque de wands e weapons (quanto menor mais rápido)
    soulmax = o maximo de soul
    gainsoulticks = o tanto de segundos que vai demorar pra subir o soul
    fromvoc = como ele será reconhecido nos scripts ( bote igual o id )

    Formulas:

    meleeDamage = quanto hita com weapons ( exceto wands e rods )
    distDamage = quanto hita com ataques a distancia
    wandDamage = quando hita com wand
    magDamage = quando hita com magias
    magHealingDamage = quanto heala com magias de cura, ( tanto exura como exura sio )
    defense = quanto defende com escudos
    armor = quanto defende com armaduras

    Skill Ids:

    (0) Fist
    (1) Club
    (2) Sword
    (3) Axe
    (4) Distance
    (5) Shield
    (6) Fishing

    PS: Quando menor o skill multiplier, mais rápido upa os skills.

    Criando nova vocação :
    1. Basta você adicionar nosso exemplo, embaixo das vocations.

    Exemplo



    Adicionando Spells às novas vocações
    2. Basta adicionar o nome da nova vocação em: data/spells/spells.xml

    Exemplo



    Tutorial criado por mim, exceto a parte dos Skill_ids, que peguei de outros tutos.
    Pronto, espero ter ajudado.
    Se gostaram agradeçam por favor.
    Obrigado, JhonatanCWest
  2. Obrigado
    TheuKu 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 \/
  3. Curtir
    TheuKu deu reputação a KekezitoLHP em Target Spell 0.1.0   
    Nome: Target Spell
    Autor: Socket
    Versão: 0.1.0
    Versão Testada: 8.54, TFS 0.3.6

    Informações Adicionais
    Quando a magia é lançada, caso você tenha target, a magia vai "seguindo" o target, caso não tenha, ela se movimenta na mesma direção que a pessoa que usou está olhando. Lembrando que se você muda de target, ela segue o novo, e se você matar o target, ou não tiver com nenhum alvo marcado, ela começa a andar na direção que você está olhando.
     
    Bem, acho que já expliquei tudo nas Informações Adicionais.

    No processo de instalação, x será o nome do arquivo, que você deverá escolher.

    Em data/spells/scripts crie um arquivo chamado x com extensão .lua e mude seu conteúdo para isso:
     
    local config = { jumps = 50, walktime = 500 } combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -15, 5, 5, 1.8, 3, -20, -40) function onCastSpell(cid) function move(cid, pos, n) local n = n or 0 if (n < config.jumps) then if (isCreature(cid)) then local pos = pos or getCreaturePosition(cid) local target = getCreatureTarget(cid) local dir = (target ~= 0) and getDirectionTo(pos, getCreaturePosition(target)) or getCreatureLookDirection(cid) local tpos = (target ~= 0) and getCreaturePosition(target) local newPos if ((target ~= 0) and ((pos.x == tpos.x) and (pos.y == tpos.y))) then newPos = tpos else newPos = getPosByDir(pos, dir) end if ((getTopCreature(newPos).uid == 0) and doTileQueryAdd(cid, newPos) ~= 1) then return false end doCombat(cid, combat, { pos = newPos, type = 2 }) addEvent(move, config.walktime, cid, newPos, n + 1) end end end move(cid) return true end Em data/spells abra o arquivo spells.lua e adcione a seguinte tag:
     
    <instant name="Target Spell" words="x" lvl="100" maglv="10" mana="500" exhaustion="30000" prem="1" enabled="1" script="x.lua"/>  
    Lembre de escolher as words, (x) e arrumar o nome em script.
     
    Configuração local config = { jumps = 50, walktime = 500 } Em jumps, você defini quantos "passos", a magia pode dar, lembrando que quando a magia "chega" no alvo, cada ataque que ela dá conta como 1 passo.

    Em walktime, você defini o tempo de um "passo", lembrando que é o mesmo tempo do dano, no caso o alvo esteja imóvel.

    Se quiser editar alguma coisa, no efeito ou dano, edite o combat, no script.

    Bem, é só isso, como eu estou sem conexão com a internet, e estou na escola, nem deu para botar SS. Configure e gogo se divertir.
  4. Obrigado
    TheuKu deu reputação a Dwarfer em (Resolvido)[PEDIDO] Efeito ao equipar item.   
    Não testei, qualquer coisa fala aí. Em movements/scripts, crie um arquivo.lua:
     
     
    No movements.xml adicione as tags para cada item:
    <movevent type="Equip" itemid="1111" slot="head" event="script" value="NOMEDOARQUIVO.lua"/> <movevent type="Equip" itemid="2222" slot="armor" event="script" value="NOMEDOARQUIVO.lua"/> <movevent type="Equip" itemid="3333" slot="legs" event="script" value="NOMEDOARQUIVO.lua"/> <movevent type="Equip" itemid="4444" slot="feet" event="script" value="NOMEDOARQUIVO.lua"/>  
  5. Curtir
    TheuKu deu reputação a CoyoteStark em (Resolvido)[PEDIDO] Remover parede temporariamente por alavanca   
    function onUse(cid, item, fromPosition, itemEx, toPosition) piece1pos = {x=623, y=377, z=8, stackpos=1} local tempo = 2*60*1000 -- tempo para parede voltar getpiece1 = getThingfromPos(piece1pos) if item.uid == 8107 and item.itemid == 9827 and getpiece1.itemid == 8518 then doRemoveItem(getpiece1.uid,1) doTransformItem(item.uid,item.itemid+1) doPlayerSendTextMessage(cid,22,"acho que ouvi um barulho, uma passagem deve ter se aberto.") addEvent(doCreateItem, tempo, 8518, piece1pos) addEvent(doTransformItem, tempo, item.uid,9827) elseif item.uid == 8107 and item.itemid == 9828 then doTransformItem(item.uid,item.itemid-1) addEvent(doCreateItem, 2*60*1000, item.itemid, piece1pos) else doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.") end return 1 end if item.uid == 8107 >> Unique Id da Alavanca
    item.itemid == 9827 >> ID da alavanca
    getpiece1.itemid == 8518 then >> ID da parede que vai ser removida
    addEvent(doCreateItem, tempo, 8518, piece1pos) >> neste local voce deve colocar novamente o ID da parede q vai ser criada novamente depois de X tempo
    piece1pos = {x=623, y=377, z=8, stackpos=1} >>> Posição da parede
    local tempo = 2*60*1000 -- tempo para parede voltar, neste caso, 2 minutos
    addEvent(doTransformItem, tempo, item.uid,9827) << aqui vc coloca novamente o id da alavanca q voltara para a posição original depois do tempo configurado.
  6. Curtir
    TheuKu deu reputação a Everson Miranda em Matar monstros numa area e spawnar boss   
    @Ricardo Monteiro
    Vê se esse aqui funciona
    em creaturescript.xml
     
    vamos para o arquivo lua...
    e, creaturescript/script crie um arquivo .lua com o nome de boss.lua
     
    agora crie outro arquivo .lua com o nome de bosslogin.lua
     
     
    explicando 
    Vemelho = nome do bixo que ira morrer para o boss aparecer
    Verde = nome do boss
    roxo = coordenadas aonde o boss ira aparecer
     
  7. Curtir
    TheuKu deu reputação a Dwarfer em SCRIPT TILE TELEPORT   
    Em movements/scripts, crie um arquivo.lua:
     
     
    Em movements.xml, adicione a tag: <movevent event="StepIn" actionid="ACTION_ID_DO_TELEPORT" script="NOMEDOARQUIVO.lua" />
     
  8. Curtir
    TheuKu deu reputação a Dwarfer em [Movements] Piso que Transforma em X Vocation - Pedido   
    Em movements/scripts, crie um arquivo.lua:
     
    local t = { [1] = 2, --[vocação de ID 1] = troca para a de ID 2 [2] = 1, [3] = 4, [4] = 3 } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local voc = t[getPlayerVocation(cid)] if not voc then doTeleportThing(cid, fromPosition) doPlayerSendCancel(cid, "Your vocation is not allowed to be changed.") return true end doPlayerSetVocation(cid, voc) doCreatureSay(cid, "You have changed your vocation!", TALKTYPE_ORANGE_1) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) return true end  
    No movements.xml:  <movevent type="StepIn" actionid="ACTION_ID_DO_PISO" event="script" value="NOMEDOARQUIVO.lua"/>

Informação Importante

Confirmação de Termo