Exelente RarTnE, realmente incrivel... Somente dei uma passada mas em algumas coisas que eu nem sabia!
Como assim Ex-Membros do Eks? Vai nos abandonar?
Aprovado e Movido!
Por RarTnE, 03 de nov. de 2012 em Tutoriais para Iniciantes
info
Grupo: Conde
Registrado: 13/12/11
Posts: 619
Reputação: +44

Exelente RarTnE, realmente incrivel... Somente dei uma passada mas em algumas coisas que eu nem sabia!
Como assim Ex-Membros do Eks? Vai nos abandonar?
Aprovado e Movido!
info
Grupo: Conde
Registrado: 09/09/12
Posts: 591
Reputação: +53
Char no Tibia: Rartne of Rook

Ex-Membros = Um pessoal legal que não entra mais.
Obrigado por aprovar. Isso irá ajudar muita gente.
info
Grupo: Conde
Registrado: 13/12/11
Posts: 619
Reputação: +44

Claro que ajudará, ficou incrivel!
Segura esse verdinho pra vc!
info
Grupo: Conde
Registrado: 09/09/12
Posts: 591
Reputação: +53
Char no Tibia: Rartne of Rook
Olá XTibianos,
hoje, por meio desse tópico, irei ensinar vocês como começar um servidor, desde do OT até o mapa e script's. Vamos ao sumário:
1• OTserv
2• Config.lua
3• Magias e Items
4• Portas
5• Mapa
Vamos lá.
1• OTserv
Essa é a parte onde você irá baixar seu OT. O que seria esse OT ? Seria o pasta do seu servidor, onde lá contem todos os scripts, mapas, magias, etc. Você escolhe seu servidor. Você pode encontrar muitos aqui mesmo no fórum. O local é esse:
Baixe o de seu gosto. Após baixar extraia ele e vamos configurar o Config.lua .
2• Config.lua
Essa é a parte onde nós iremos decidir a exp, ip, spawn, loot, entre outros.
-- The Forgotten Server Config
-- Account manager
accountManager = true
namelockManager = true
newPlayerChooseVoc = true
newPlayerSpawnPosX = 1035 - posição X que o player irá nascer.
newPlayerSpawnPosY = 1025 - Posição Y que o player irá nascer.
newPlayerSpawnPosZ = 7 - posição Z que o player irá nascer.
newPlayerLevel = 10 - Level inicial
newPlayerMagicLevel = 1 - ML inicial
redSkullLength = 30 * 24 * 60 * 60 - Tempo para sair o RED.
blackSkullLength = 45 * 24 * 60 * 60 - Tempo para sair o BLACK.
dailyFragsToRedSkull = 3 - Frags por dia para pegar RED.
weeklyFragsToRedSkull = 5 - Frags por dia para pegar BLACK.
protectionLevel = 1 - PZ Level.
pzLocked = 60 * 1000 - Tempo para sair o Battle.
removeWeaponAmmunition = false - False= Infinito
removeWeaponCharges = true - False= Infinito
removeRuneCharges = false - False= Infinito
whiteSkullTime = 15 * 60 * 1000 - Tempo de SKULL.
ip = "5.220.18.159" - IP
loginPort = 7171 - PORTA DO SERV
motd = "Welcome to the Azeroth Server!" - MSG quando loga.
serverName = "Azeroth" - Nome do servidor
loginMessage = "Welcome to the Azeroth Server!" - Login message. ( Quando o player entra no game)
-- Map.
mapName = "OMMM.otbm" - Nome que o servidor irá procurar na pasta World.
-- Premium-related
freePremium = true - Free Premium
-- Rates
experienceStages = true - Se for TRUE a exp só irá mexer na pasta XML.
rateExperience = 50.0 - Exp se não tiver com stage
rateSkill = 100.0 -Skill
rateMagic = 100.0 - ML
rateLoot = 3.0 - LOOT
Bom, aqui eu peguei um config.lua e destaquei apenas o principal. Porém para quem já é avançado no assunto pode mexer em muito mais.
3• Magias e Items
Bom, essa parte, digamos que é a mais fácil.
3.1• Magias
Versao 0.1b Tutorial
Voce nao Sabe nada sobre scripts e nem mesmo como funcionao e quer criar uma magia
Voce pode ir no classico copy/paste:
Primeiro Passo:
Copie uma tag no spells.xml Exemplo:
<instant name="Eternal Winter" words="exevo gran mas frigo" lvl="60" mana="1200" prem="1" selftarget="1" exhaustion="2000" needlearn="0" script="attack/eternal winter.lua">
<vocation name="Druid"/>
<vocation name="Elder Druid"/>
</instant>
E cole logo a baixo uma identica.
Agora edite certos campos:
<instant name="Eternal Winter" words="exevo gran mas frigo" lvl="60" mana="1200" prem="1" selftarget="1" exhaustion="2000" needlearn="0" script="attack/eternal extreme winter.lua">
<vocation name="Druid"/>
<vocation name="Elder Druid"/>
</instant>
Vermelho Palavras a serem ditas para a magia sair
Verde Level para Usar a magia
Amarelo Mana pra Usar a magia
Negrito Voce deve mudar para o nome do seu script, no caso usaremos eternal extreme winter
Procure na pasta scripts/attack o bloco de notas chamado eternal winter copieo e cole renomeie-o para eternal extreme winter, abaixo ensino como editar.
Em seguida voce pode editar certas coisas
--Calculed by ta4e--
--For tibia 8.31--
--Made in 07/11/08--
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
function getCombatFormulas(cid, lv, maglv)
local formula_min = -((lv*0.25 + maglv*3) * 2.7)
local formula_max = -((lv*0.25 + maglv*3) * 3.1)
if(formula_max < formula_min) then
local tmp = formula_max
formula_max = formula_min
formula_min = tmp
end
return formula_min, formula_max
end
local area = createCombatArea(AREA_CROSS5X5)
setCombatArea(combat, area)
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
Azul Minimo Dano -- Leve em base que dakele geito que esta 2.7 ira dar 500 de dano se voce multiplicar por 2 o 2.7 ira ficar 5.4 e ira dar 1000 de dano
Rosa Maximo Dano -- mesmo conceito de cima
Laranja se voce nao conhece o comando pode ser !z 1,2,3...66 ou /z 1,2,3...66 useo no seu ot e veja um bem legal e apague toda a parte laranja e bote o efeito que voce quer no meu caso irei botar 61
Conclusao a magia ira ficar com a forma do exevo gran mas frigo com otro dano e com otro efeito
___________
Update 0.2a
Usando tambem o comando !x ou /x 1,2,3...41
Na linha da sua magia vai estar assim:
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 18)
Para usar os efeitos do /x ou !x voce deve botar antes do EFFECT a palavra DISTANCE e ficara assim:
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 18)
Negrito Como devera ficar para utilizar o comando !x ou /x
Listinha de efeitos e seus devidos nomes:
!z ou /z:
0 - Blood Splat
1 - Mana Loss
2 - Poff Smoke
3 - Weapon Hit
4 - Explosion Area
5 - Explosion Hit
6 - Fire Area
7 - Yellow Ring
8 - Poison Ring
9 - Hit Area
10 - Teleport
11 - Energy Hit
12 - Blue Magic Sparkle
13 - Red Magic Sparkle
14 - Green Magic Sparkle
15 - Rising Fire
16 - Poison Hit
17 - Mort Area
18 - Green Sound
19 - Red Sound
20 - Poison Area
21 - Yellow Sound
22 - Purple Sound
23 - Blue Sound
24 - White Sound
25 - Bubbles
26 - Craps
27 - Gift Wraps
28 - Yellow Firework
29 - Red Firework
30 - Blue Firework
31 - Stun Effect
32 - Sleep
33 - Sea Serpent
34 - Groundshaker
35 - Hearts
36 - Fire
37 - Energy Area
38 - Small Clouds
39 - Holy Damage
40 - Big Clouds
41 - Ice Area
42 - Ice Tornado
43 - Ice Attack
44 - Stone Shower
45 - Small Plants
46 - Munchy
47 - Purple Energy
48 - Yellow Energy
49 - Holy Caldera
50 - Big Plants
51 - Cake
52 - Giant Ice
53 - Water Splash
54 - Plant Spin
55 - Nao Sei
56 - Nao Sei
57 - Nao Sei
58 - Nao Sei
59 - Nao Sei
60 - Nao Sei
61 - Nao sei
62 - Nao Sei
63 - Nao sei
64 - Nao Sei
65 - Nao Sei
66 - Nao Sei
!x ou /x:
0 - Spear
1 - Bolt
2 - Arrow
3 - Fire
4 - Energy
5 - Poison Arrow
6 - Burst Arrow
7 - Throwing Star
8 - Throwing Knife
9 - Small Stone
10 - Death
11 - Large Rock
12 - Snowball
13 - Power Bolt
14 - Poison
15 - Infernalbolt
16 - Hunting Spear
17 - Enchanted Spear
18 - Assassin Star
19 - Viper Star
20 - Royal Spear
21 - Sniper Arrow
22 - Onyx Arrow
23 - Piecing Bolt
24 - Sword
25 - Axe
26 - Club
27 - Ethreal Spear
28 - Ice
29 - Earth
30 - Holy
31 - Sudden Death
32 - Flash Arrow
33 - Flamming Arrow
34 - Shiver Arrow
35 - Energy Ball
36 - Small Ice
37 - Small Holy
38 - Small Earth
39 - Earth Arrow
40 - Explosion
41 - Cake
___________________
Update 0.2b
Mudando a area da sua spell:
Repare a linha da nossa primeira spell la em cima
local area = createCombatArea(AREA_CROSS5X5)
setCombatArea(combat, area)
Neste local voce edita a area da sua magia vamos começar:
Apague toda akela linha acima em negrito e bote isto:
local area = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}
setCombatArea(combat, createCombatArea(area))
Legenda dos numeros:
0 = nao vai acertar a magia
1 = aonde a magia vai acertar
2 = centro que eh o player (nao acertara tambem)
Agora voce pode fazer uma area que voce queira de qualquer forma
___________________
Update 0.3a
Como Trocar o Dano da sua Magia:
Para trocar o tipo de dano repare a linha da magia:
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
Vermelho Eh o tipo de dano que ira dar eh so mudalo para outro tipo
Listinha de Danos:
___________________
Update 0.3b
Botando em pratica tudo que aprendemos!
Neste update nos iremos usar todo o conteudo do tutorial para fazer uma magia com varios efeitos,danos e areas diferentes
Aqui esta o script que criei para trabalharmos em cima dele:
local combat1 = createCombatObject()
local combat2 = createCombatObject()
local combat3 = createCombatObject()
local combat4 = createCombatObject()
local combat5 = createCombatObject()
local combat6 = createCombatObject()
local combat7 = createCombatObject()
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 42)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition1 = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition1, CONDITION_PARAM_TICKS, 20000)
--setConditionParam(condition1, CONDITION_PARAM_SPEED, -500)
setConditionFormula(condition1, -0.8, 0, -0.8, 0)
setCombatCondition(combat1, condition1)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 17)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition2 = createConditionObject(CONDITION_ENERGY)
setConditionParam(condition2, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition2, 10, 2000, -80)
setCombatCondition(combat2, condition2)
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 52)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition3 = createConditionObject(CONDITION_FIRE)
setConditionParam(condition3, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition3, 10, 2000, -80)
setCombatCondition(combat3, condition3)
local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, PHYSICALDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 3)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition4 = createConditionObject(CONDITION_POISON)
setConditionParam(condition4, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition4, 10, 2000, -80)
setCombatCondition(combat4, condition4)
local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_EFFECT, 2)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition5 = createConditionObject(CONDITION_CURSED)
setConditionParam(condition5, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition5, 10, 2000, -80)
setCombatCondition(combat5, condition5)
local combat6 = createCombatObject()
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, 40)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition6 = createConditionObject(CONDITION_FREEZING)
setConditionParam(condition6, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition6, 10, 2000, -80)
setCombatCondition(combat6, condition6)
local combat7 = createCombatObject()
setCombatParam(combat7, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat7, COMBAT_PARAM_EFFECT, 6)
setCombatFormula(combat7, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition7 = createConditionObject(CONDITION_DAZZLED)
setConditionParam(condition7, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition7, 10, 2000, -80)
setCombatCondition(combat7, condition7)
arr1 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
arr2 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 3, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
arr3 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
arr4 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}
arr5 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}
arr6 = {
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
}
arr7 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
local area5 = createCombatArea(arr5)
local area6 = createCombatArea(arr6)
local area7 = createCombatArea(arr7)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)
setCombatArea(combat6, area6)
setCombatArea(combat7, area7)
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat4, parameters.var)
end
local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat5, parameters.var)
end
local function onCastSpell6(parameters)
doCombat(parameters.cid, parameters.combat6, parameters.var)
end
local function onCastSpell7(parameters)
doCombat(parameters.cid, parameters.combat7, parameters.var)
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6, combat7 = combat7 }
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 200, parameters)
addEvent(onCastSpell3, 300, parameters)
addEvent(onCastSpell4, 400, parameters)
addEvent(onCastSpell5, 500, parameters)
addEvent(onCastSpell7, 600, parameters)
addEvent(onCastSpell6, 700, parameters)
addEvent(onCastSpell7, 800, parameters)
return true
end
Legenda:
Azul Dano de cada wave (onda) da sua magia
Negrito Area das magias (arr)
Vermelho Pausa de uma wave para outra, se quizer aumente bote 100,300,500...
Pronto agora se voce viu os outros updates sabera mudar dano efeito e fazer uma otima magia bem louca
3.2• Items
1- Antes de tudo vá na pasta do seu servidor e vá em data/items/items.xml e abra.
1.1 - Assim que abrir o itens.xml Procure (Ctrl+F) pela Focus Cape e encontrará isso:
1.2 - Explicando os Attributes
<attribute key="weight" value="2100"/>
Este atribute é o da o peso do item, ou seja, a focus cape pesa 21 oz. (Nota 100 = 1 oz)
Este atribute é obrigatorio em todos os itens.
<attribute key="armor" value="9"/>
Este atribute dá o armor ou a "arm" ao item.
Lembrando que esse atribute só pode ser usado apenas em equipamentos.
<attribute key="slotType" value="body"/>
Este atribute é o que vai selecionar onde o item vai ser equipado, em outras palavras, o tipo do item se ele vai ser uma armadura, uma arma, um colar e por ai vai... Ele também é obrigatorio em todos os equips.
Caso queira aqui vai uma pequena lista:
<attribute key="magiclevelpoints" value="1"/>
Esse atribute dá ML (magic level) ao item.
----------------------------------------------------------------
ARMAS
2 - Para explicar os atributes das armas usarei a Bright Sword:
2.1 - Bom, como todos sabem no tibia existe três tipos de armas que no qual são : Axes, Swords e Clubs
Então vamos começar por esse atribute:
<attribute key="weaponType" value="sword"/>
Este é o atribute que faz a arma ser um axe,sword ou club. No caso a Bright sword é uma sword xD.
Se quiser mudar basta mudar o value="sword" para value="axe" ou value="club".
<attribute key="defense" value="30"/>
Este atribute dá a defesa/def á arma que também é usad em shields.
<attribute key="attack" value="36"/>
Atributo que seleciona o ataque da arma. Pelo amor de deus, não usem isso em shields ou equips... tenham bom senso
'
<attribute key="slotType" value="two-handed"/>
Este atributo não tem na Bright Sword por que ela é de uma mão, mais caso queira deixar de 2 mãos basta apenas usar esse atribute.
<attribute key="extradef" value="1" />
Este atribute da defesa extra ao item, como por exemplo a bright sword é (atk:36 def:30+1) e como vocês também ja viram em alguma database ou no tibia mesmo itens com esse +1, 2, 3, etc...
2.2 - Adicionando Dano elemental em uma Arma:
<attribute key="elementFire" value="10"/>
Dano de fire
<attribute key="elementEarth" value="10"/>
Dano de earth
<attribute key="elementIce" value="10"/>
Dano de gelo
<attribute key="elementEnergy" value="10"/>
Dano de energy
<attribute key="elementHoly" value="10"/>
Dano de holy
<attribute key="elementDeath" value="10"/>
Dano de death
<attribute key="elementPhysical" value="10"/>
Dano fisico
'
Usado um desses o elemento diminuirá o ataque da arma, ou seja, a Bright sword por exemplo se eu usar o atribute:
<attribute key="elementFire" value="10"/>
Ela ficará com (atk:26 + 10 fire damage def:30)
[36-10=26]
----------------------------------------------------------------
BOWS, CROSSBOWS E SPEARS
3 - Agora para explicar essa categoria irei usar a Bow, a arrow e a spear.
3.1 - Primeira a Arrow.
<attribute key="slotType" value="ammo"/>
Com este atribute a arrow deve ficar no lugarzinho da flecha para ser usada.
<attribute key="hitChance" value="90"/>
A chance de sucesso do player de acertar o alvo, ou seja, o player com uma arrow tem 90% de chance de acertar um Dwarf por exemplo.
<attribute key="ammoType" value="arrow"/>
Neste atribute ou você coloca arrow que será utilizado apenas por Bows/Arcos ou bolt que será apenas usado por Crossbow/Besta.
<attribute key="shootType" value="arrow"/>
Animação no qual a flecha aparecerá indo em direção ao alvo.
Lista das animações:
<attribute key="weaponType" value="ammunition"/>
Este Atribute faz o item virar uma munição.
Coloque ele Apenas em arrows e bolts.
<attribute key="ammoAction" value="removecount"/>
Ele serve para remover 1 arrow/bolt por tiro.
Aconselho não mecher ai.
3.2 - E agora a Bow:
<attribute key="weaponType" value="distance"/>
Come ste atribute a bow fica sendo uma arma de distância
<attribute key="ammoType" value="arrow"/>
Usando este atribute a bow precisará de algum tipo de arrow para atirar.
<attribute key="range" value="6"/>
Com este atribute você determina a distancia da qual ele pode atirar, ou seja, a bow pode atirar a 6 quadrados de distância.
3.3 - Vamos a Spear:
<attribute key="breakChance" value="10"/>
Essa atribute dá a spear uma chance (10%) de quebrar a cada hit.
<attribute key="ammoAction" value="moveback"/>
Esse atribute faz com que a spear em vez de ficar no chão volte para sua mão sem ter que usar o atribute de charges.
o resto eu expliquei com a bow e a arrow.
----------------------------------------------------------------
NECKLACES E AMULETS
4- Vamos começar com os Necklaces e Amulets e para isso eu escolhir o Elven amulet.
<attribute key="charges" value="50"/>
Esse atribute dá a quantidade de cargas/charges ao amuleto.
<attribute key="showcharges" value="1"/>
Essa atribute serve para quando o player der look no amuleto mostrar a quantidade de charges ele tem.
Obs: Não mexa ai.
<attribute key="showattributes" value="1"/>
Esse atribute serve para mostrar tudo que ele absorve.
<attribute key="absorbPercentAll" value="5"/>
Esse attribute serve para o amuleto absorver todos os tipos de danos em 5%.
Caso queira que absorva um elemento em especifico aqui vai uma lista:
Obs¹: Caso queira que ele receba mais dano em vez de absorver basta colocar o " - " na frente do número.
(exemplo: <attribute key="absorbPercentPhysical" value="-10"/> )
Obs²: Esses atributes também pode ser usado em shields,equips e até em rings.
----------------------------------------------------------------
RINGS
5 - Bom, o tutorial está quase no fim faltando apenas os Rings e as Backpacks.
Então vamos ao que interessa, e para isso escolhi o Power Ring
OBS: Certfique-se que ao editar ring, ver se está editando o ring certo, ou seja, o que brilha quando é equipado...
5.1 - Explicando os Attributes
<attribute key="duration" value="300"/>
Essa atribute dá o tempo que o item durará equipado, ou seja, o power ring dura 30 minutos (Nota 10 = 1 min)
<attribute key="decayTo" value="0"/>
Essa atribute faz com quer, quando o tempo do power ring acabar ele "some"
<attribute key="transformDeEquipTo" value="2166"/>
Essa atribute diz em qual item ele tranformará quando desequipar o power ring.
Recomendo não mexer ai.
<attribute key="skillFist" value="5"/>
Essa atribute aumenta seu Fist Fighting em 5 pontos.
<attribute key="showduration" value="1"/>
Esse atribute serve para quando o player der look no ring mostrar quando tempo ele ainda tem.
Recomendo de novo que não mexa ai.
<attribute key="manashield" value="1"/>
Esse atribute faz com que o player fique em estado de "utamo vita".
Não precisa mexer no "1".
<attribute key="healthGain" value="1"/> -- HP ganho
<attribute key="healthTicks" value="3000"/> -- Tempo nescessario (1000 = 1 segundo)
Esses atributes tem que ser usados em conjunto.
Eles fazem com que você recupera 1 de HP a cada 3 segundos.
<attribute key="manaGain" value="4"/> -- MP ganho
<attribute key="manaTicks" value="3000"/> -- Tempo nescessario (1000 = 1 segundo)
Esses atributes tem que ser usados em conjunto.
Eles fazem com que você recupera 4 de MP a cada 3 segundos.
<attribute key="speed" value="20"/>
Esse atribute aumenta a velocidade em "20" niveis, se quiser aumentar ou diminuir você ja sabe como xD
<attribute key="skillSword" value="4"/>
Essa atribute aumenta seu skill de sword em +4
<attribute key="skillAxe" value="4"/>
Essa atribute aumenta seu skill de axe em +4
<attribute key="skillClub" value="4"/>
Essa atribute aumenta seu skill de club em +4
<attribute key="skillShield" value="4"/>
Essa atribute aumenta seu skill de shield em +4
<attribute key="suppressDrunk" value="1"/>
Essa atribute deixa você imune a ficar bebum/bêbado/tonto/drunk/ etc...
'
<attribute key="invisible" value="1"/>
Essa atribute deixa você invisivél como se estivesse usando "utana vid"
4• Portas
Vamos aprender como abrir as portas? No caso ensinarei como é no Windows7:
Abra o Painel de Controle se estive no modo "Exibir em Categoria" vá em Sistema e Segurança e depois Firewall do Windows Ai Clique em Configurações Avançadas coloque em Regra de Saída e Nova Regra... Agora só adicionar a Porta.
5• Mapa
Essa é a parte que eu mais gosto
. Para editar um mapa você precisa de um mapa editor, no caso, RME.
Bom galera sempre existe uma dúvida, de qual melhor programa para se mapear, como tirar suas fotos, onde postar entre outros. Visando isto criei este tópico para tutoria-los nesta questão.
Agora que você já possui seu programa de mappear, e este a 'sua escolha', basta criar a sua área usando deste artefato.
Após iniciado o seu árduo trabalho como mapper, sempre é bom saber como você esta indo (se você esta mappeando bem ou não), então terminando sua 'tarefa' é sempre bom compartilha-la com os membros da comunidade.
Compartilhe as imagens
neste tópico.Espero ter ajudado a todos, caso fique alguma duvida, pergunte.
Bom gente, é isso. Eu juntei vários tutoriais. Seguindo eles vocês poderão ter um servidor "gostoso" de se jogar. Espero que tenham gostado.
Créditos: RarTnE
Ex-Membros do Ékz
Vital009 ♥
Editado Novembro 3 por RarTnE