Ir para conteúdo

Como Começar Um Servidor!


RarTnE

Posts Recomendados

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:

JKHx5.png

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 o.O'

 

<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 o.O'

 

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. :D

 

 

----------------------------------------------------------------

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 :D

 

 

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 :D

 

<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... o.O'

 

<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.

  • Este tópico será dividido da seguinte maneira:

  • RME;
  • Postando suas áreas para o público.

108dcox.png

  • Primeiramente você precisa da sua 'arma' de mappeamento. Eu prefiro o RME, portanto estou dispondo o link para Download deste.

  • Após instalado você pode mudar as extensions, a sua maneira.

  • Depois de pré-programado visando o seu querer, coloque o seu RME para identificar a versão automaticamente, isto lhe poupa de certas dores de cabeças.

 

 

 

Agora que você já possui seu programa de mappear, e este a 'sua escolha', basta criar a sua área usando deste artefato.

  • Aconselho aos novatos, a usarem esta seção de tutorial, para aprender a como melhor mappear e a usar sua arma de mappeamento.

compartilhar1.jpg

 

 

 

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.

  • Para postar sua imagem para os membros a visualizarem em alta definição. Siga estes passos.

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 por RarTnE
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...