
TheuKu
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
TheuKu deu reputação a JhonatanCWest em [Tutorial] Explicando e Criando VocaçõesOlá 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
-
TheuKu deu reputação a Natanael Beckman em DEV C++ Compilando TFS no WindowsDEV 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 \/ -
TheuKu deu reputação a KekezitoLHP em Target Spell 0.1.0Nome: 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.
-
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"/>
-
TheuKu deu reputação a CoyoteStark em (Resolvido)[PEDIDO] Remover parede temporariamente por alavancafunction 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.
-
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
-
TheuKu deu reputação a Dwarfer em SCRIPT TILE TELEPORTEm movements/scripts, crie um arquivo.lua:
Em movements.xml, adicione a tag: <movevent event="StepIn" actionid="ACTION_ID_DO_TELEPORT" script="NOMEDOARQUIVO.lua" />
-
TheuKu deu reputação a Dwarfer em [Movements] Piso que Transforma em X Vocation - PedidoEm 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"/>