
Histórico de Curtidas
-
Makhai Drakon recebeu reputação de Cat em (Resolvido)(PEDIDO) Adicionar limitação ao comando /goto, /c@Andreeyyy
function onSay(cid, words, param) local restricao = {"Demon","Fire Devil"} for r = 1, #restricao do if param == restricao[r]then player:sendCancelMessage("Você não pode usar isto diga /goto restricao") return true end if param == "restricao" then player:sendCancelMessage(restricao[r]) return true end local player = Player(cid) if getPlayerGroupId(cid) > 3 then local target = Creature(param) if target == nil then player:sendCancelMessage("Creature not found.") return false end player:teleportTo(target:getPosition()) return false end end end ---------------------------------------------------------------------------------------- function onSay(player, words, param) local restricao = {"Demon","Fire Devil"} for r = 1, #restricao do if param == restricao[r]then player:sendCancelMessage("Você não pode usar isto diga /c restricao") return true end if param == "restricao" then player:sendCancelMessage(restricao[r]) return true end if not player:getGroup():getAccess() then return true end local creature = Creature(param) if not creature then player:sendCancelMessage("A creature with that name could not be found.") return false end local oldPosition = creature:getPosition() local newPosition = creature:getClosestFreePosition(player:getPosition(), false) if newPosition.x == 0 then player:sendCancelMessage("You can not teleport " .. creature:getName() .. ".") return false elseif creature:teleportTo(newPosition) then if not creature:isInGhostMode() then oldPosition:sendMagicEffect(CONST_ME_POFF) newPosition:sendMagicEffect(CONST_ME_TELEPORT) end end return false end end
-
Makhai Drakon recebeu reputação de Cat em (Resolvido)(PEDIDO) Adicionar limitação ao comando /goto, /c@SouDeus Mano Se for dar umas respostas dessa e melhor ficar queto não acha ?
@Andreeyyy Testei não mano adicionei a função de vem quais são as restrições Bom aproveito!
/goto
function onSay(cid, words, param) local restricao = {"Demon","Fire Devil"} if param == "restricao" doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, restricao[r]") return true end for r = 1, #restricao do if param == restricao[r]then local player = Player(cid) if getPlayerGroupId(cid) > 3 then local target = Creature(param) if target == nil then player:sendCancelMessage("Creature not found.") return false end player:teleportTo(target:getPosition()) return false end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode usar isto diga /goto restricao") end end /c
function onSay(player, words, param) local restricao = {"Demon","Fire Devil"} if param == "restricao" doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, restricao[r]") return true end for r = 1, #restricao do if param == restricao[r]then if not player:getGroup():getAccess() then return true end local creature = Creature(param) if not creature then player:sendCancelMessage("A creature with that name could not be found.") return false end local oldPosition = creature:getPosition() local newPosition = creature:getClosestFreePosition(player:getPosition(), false) if newPosition.x == 0 then player:sendCancelMessage("You can not teleport " .. creature:getName() .. ".") return false elseif creature:teleportTo(newPosition) then if not creature:isInGhostMode() then oldPosition:sendMagicEffect(CONST_ME_POFF) newPosition:sendMagicEffect(CONST_ME_TELEPORT) end end return false end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode usar isto diga /c restricao") end end
-
Makhai Drakon recebeu reputação de Deathstroke em [TUTORIAL] Como adicionar pokemons com {Icon System}.Resolvi fazer este tutorial porque os que que encontrei estavam muito confusos e não entendi certas coisas.
Programas utilizados:
ObjectBuilder: http://www.4shared.com/rar/XsT3Kkgsba/ObjectBuilder034.html
ItemEditor: http://www.4shared.com/file/232461654/31f90261/otitemeditor037.html
[TUTORIAL] Como adicionar pokemons com {Icon System}.
1- Abra o seu ObjectBuilder.
2- Aperte Ctrl+O ou Clique em "File"/"Open".
3- Clique em Browse.
4- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
5- Caso for estendido marque a caixa.
6- Após isto procure as outfit, corpse, ícone e portrait do pokemon desejado.
obs: aconselho escrever os números em um bloco de notas
7- Após isto abra o ItemEditor .
8- Aperte Ctr+P ou Clique em "File"/"Preferences".
9- Clique em Browse.
10- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
11- Caso for estendido marque a caixa e confirme.
12- Aperte Ctr+N ou Clique em "File"/"Open...".
13- E abra a pasta onde fica seu item.otb.
14- Crie 5 itens.
15- Em Cliete ID coloque os IDs do portrait, corpse, 1 ícone on e 2 ícones off que você pegou no ObjectBuilder.
16- Deixe os atributos exatamente assim.
Portrait
Corpse
Icone On
Icone Use
Icone Off
obs: a partir daqui usara estes IDs
obs: aconselho escrever os números em um bloco de notas
17- Por fim de save.
.
18- Agora vá em Data/Items e abra items.xml.
Em algum local adicione isto!
<item id="AAAAA" article="a" name="Icone."> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="BBBBB" article="a" name="Icone using"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="CCCCC" article="a" name="Icone dead"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="DDDDD" article="a" name="EEEEE"> <attribute key="containerSize" value="10" /> <attribute key="decayTo" value="0" /> <attribute key="duration" value="300" /> </item> <item id="FFFFF" article="a" name="portrait"> <attribute key="weight" value="0" /> <attribute key="slotType" value="legs" /> </item> Em "AAAAA" coloque o ID do ícone on
Em "BBBBB" coloque o ID do ícone use
Em "CCCCC" coloque o ID do ícone off
Em "DDDDD" coloque o ID do corpse
Em "EEEEE" coloque fainted "nome do poke"
Em "FFFFF" coloque o ID do portrait
Salve e feche
19- Agora vá em Data/Monster/Pokes
Copie alguma .xml e modifique o seu nome para o do pokemon desejado depois abra-a
<?xml version="1.0" encoding="UTF-8"?> <monster name="AAAAA" nameDescription="a BBBBB" race="CCCCC" experience="1500" speed="207" manacost="0"> <health now="270" max="270"/> <look type="DDDDD" head="90" body="100" legs="95" feet="113" corpse="EEEEE"/> <targetchange interval="2000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="1"/> <flag pushable="1"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="97"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" chance="100" range="1" min="-50" max="-100"/> <attack name="Aqua Tail" interval="2805" chance="29" range="1"/> <attack name="Headbutt" interval="2705" chance="29" range="1"/> <attack name="Dragon Breath" interval="3040" chance="28" range="6"/> <attack name="Hyper Beam" interval="2899" chance="29" range="5"/> <attack name="Thunder Wave" interval="2993" chance="28" range="6"/> <attack name="Twister" interval="2852" chance="29" range="3"/> <attack name="Wing Attack" interval="3040" chance="28" range="6"/> <attack name="Thunder Punch" interval="2752" chance="29" range="1"/> <attack name="Fire Punch" interval="2952" chance="29" range="1"/> <attack name="Dragon Claw" interval="2900" chance="29" range="1"/> </attacks> <defenses armor="0" defense="0"> </defenses> <voices interval="5000" chance="10"> <voice sentence="FFFFF!"/> </voices> <loot> <item id="11449" chance="150" count="1" countmax="1"/> <item id="12159" chance="3000" count="1" countmax="1"/> <item id="13794" chance="10000" countmax="80"/> --snowball <item id="12275" chance="3000" count="1" countmax="1"/> <item id="12244" chance="70" count="1" countmax="1"/> <item id="12338" chance="10" count="1"/> --bag box --bag box </loot> <script> <event name="Spawn"/> </script> </monster> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID da outfit do pokemon
Em "CCCCC" coloque o a raça do pokemon
Em "DDDDD" coloque o ID da outfit do pokemon obs: no meu caso e 2241
Em "EEEEE" coloque o ID corpse obs: no meu caso e 20758
Em "FFFFF" coloque a fala do pokemon
Lista de raças:
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost Attacks Lembrando esses são os ataques que os pokemons selvagens soltara! E possível ver os attacks em data/spells/scripts/ps name = "Nome do attack" interval = "Intervalo para usar o attack" chance = Chance do attack ser acertado" obs: sempre deixe o melee 100 range = "Distancia mínima necessária para usar o attack"
Loot
item id = "ID do item que será dropado"
chance = "Chance do item ser dropado"
count = "Mínimo de itens a ser dropado"
countmax = "Máximo de itens a ser dropado"
salve e feche
20- Agora vá em Data/Monster e abra monster.xml
Adicione esta tag
1 - caso esteja em uma pasta
<monster name="AAAAA" file="pokes/BBBBB/CCCCC.xml"/> 2 - caso apenas esteja na pasta pokes
<monster name="AAAAA" file="pokes/CCCCC.xml"/> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o nome da pasta onde ele esta
Em "CCCCC" coloque o nome da .xml que você criou
salve e feche
21- Agora vá em Data/Lib e abra configuration.lua
1ª
desça um pouco e se ver algo deste género
Vá ate o ultimo e cole este código.
["AAAAA"] = {move1 = {name = "Aqua Tail", level = 10, cd = 12, dist = 1, target = 1, f = 50, t = "water"}, move2 = {name = "Thunder Wave", level = 12, cd = 16, dist = 1, target = 0, f = 70, t = "electric"}, move3 = {name = "Thunder Punch", level = 16, cd = 16, dist = 1, target = 1, f = 65, t = "electric"}, move4 = {name = "Fire Punch", level = 15, cd = 20, dist = 1, target = 1, f = 75, t = "electric"}, move5 = {name = "Dragon Claw", level = 22, cd = 16, dist = 1, target = 1, f = 60, t = "dragon"}, move6 = {name = "Dragon Breath", level = 40, cd = 20, dist = 1, target = 0, f = 80, t = "dragon"}, move7 = {name = "Twister", level = 46, cd = 24, dist = 1, target = 0, f = 80, t = "dragon"}, move8 = {name = "Wing Attack", level = 70, cd = 28, dist = 1, target = 0, f = 75, t = "flying"}, move9 = {name = "Hyper Beam", level = 70, cd = 24, dist = 1, target = 0, f = 190, t = "normal"}, move10 = {name = "Draco Meteor", level = 110, cd = 60, dist = 1, target = 0, f = 150, t = "dragon"}, }, Em "AAAAA" coloque o nome do pokemon
Moves
name = "Nome do attack"
level = "Level mínimo para usar o attack"
cd = "tempo para o attack recarregar"
dist = "distancia mínima para usar o attack"
target = "1 significa que precisa se alvo / 0 que não e necessário"
f = "força do attack"
t = "tipo do attack"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
2ª
Desça mais um pouco encontrara o fly
caso seu pokemon tenha pegue o id da outfit do fly e subtraia 351 EX: 2242-351=1891
Vá ate o ultimo e cole este código.
["AAAAA"] = {BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do fly subtraído por 351 EX: 2242-351=1891
Em "CCCCC" coloque a velocidade que dará
obs: Surf e ride mesma coisa
3ª
Desça mais um pouco encontrara o pokeballs
Vá ate o ultimo e cole este código.
["AAAAA"] = {effect = 188, on = BBBBB, use = CCCCC, off = DDDDD, all = {BBBBB, CCCCC, DDDDD}}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon use
Em "DDDDD" coloque o ID do icon off
4ª
Desça mais um pouco encontrara o icons
Vá ate o ultimo e cole este código.
["AAAAA"] = { on = BBBBB, off = CCCCC, use = DDDDD }, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon off
Em "DDDDD" coloque o ID do icon use
5ª
Desça mais um pouco encontrara o effectiveness mais não mecha nele
Desça mais um pouco encontrara o pokes
Vá ate o ultimo e cole este código.
["AAAAA"] = {offense = 4.5, defense = 10, specialattack = 12.2, vitality = 11.8, agility = 350, exp = 800, level = 80, wildLvl = 150, type = "ice", type2 = "ghost"}, Em "AAAAA" coloque o nome do pokemon
offense = "offense que ganha por level"
defense = "defense por level"
specialattack = "special attack que ganha por level"
vitality = "vida que o poke ganha pra cada vitality que tem"
agility = "velocidade base dos pokes"
exp = "experiência que dá a cada level que tem (somada a exp base, no xml do poke)"
level = "level min pra usar o poke / offense base"
wildlevel = "level que o pokemon selvagem será"
type = "tipo do pokemon"
type2 = "segundo tipo do pokemon" obs caso não tenha coloque no type"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
6ª
Desça mais um pouco encontrara o fotos
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do portrait
7ª
Desça mais um pouco encontrara o pokecatches
Vá ate o ultimo e cole este código.
["AAAAA"] = {chance = BBBBB, corpse = CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de capturar o pokemon obs quanto maior o numero mais difícil fica
Em "CCCCC" coloque o ID corpse
8ª
Desça mais um pouco encontrara o newpokedex
Vá ate o ultimo e cole este código.
["AAAAA"] = {gender = 500, level = 80, storage = 100, stoCatch = BBBBB}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque 1 e um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457
gender = "género género do pokemon 500 = 50% de ser m ou f, 75 = 75% de ser f 25 = 25% de ser f, -1 = sem sexo " obs se o server não tiver gender system não faz diferença
level = "level min pra usar o poke " obs apenas afetará o pokedex
storage = "Não mexa!"
stoCatch = "coloque um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457"
9ª
Desça mais um pouco encontrara o oldpokedex
Vá ate o ultimo e cole este código.
{"AAAAA", BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o level min pra usar o poke
Em "CCCCC" coloque o coloque um numero depois do pokemon anterior Ex o anterior é 1290 então coloque 1291
10ª
Desça mais um pouco encontrara o poevo
Caso o pokemon que será adicionado tenha uma anti evolução
Vá ate o ultimo e cole este código.
["AAAAA"] = {level = 150, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
11ª
Desça mais um pouco encontrara o spcevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
Vá ate o ultimo e cole este código.
["AAAAA"] = {[1] = {level = 65, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, [2] = {level = 65, evolution = "EEEEE", count = 1, stoneid = FFFFF, stoneid2 = GGGGG}}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da 1ª evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o 1º pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o 1º pokemon obs opcional deixe 0 se não tiver stone
Em "EEEEE" coloque o nome da 2ª evolução do pokemon
Em "FFFFF" coloque o ID da stone que ira evoluir o 2º pokemon
Em "GGGGG" coloque o ID do segundo tipo stone que ira evoluir o 2º pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
12ª
Desça mais um pouco encontrara o gobackmsgs mais não mecha nele
Desça mais um pouco encontrara o specialevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
specialevo = {"Poliwhirl", "Gloom", "Tyrogue", "Eevee", "AAAAA"} Em "AAAAA" coloque o nome da anti evolução pokemon
13ª
Desça mais um pouco encontrara o specialabilities
Caso queira colocar alguma habilidade no pokemon coloque
Em "AAAAA" coloque o nome da anti evolução pokemon
Coloque nas habilidades desejadas
14ª
Desça mais um pouco encontrara o auraSyst mais não mecha nele
Desça mais um pouco encontrara o hitmonchans mais não mecha nele
Desça mais um pouco encontrara o headbutt mais não mecha nele
Desça mais um pouco encontrara o lookClans mais não mecha nele
Desça mais um pouco encontrara o youAre mais não mecha nele
Desça mais um pouco encontrara o passivesChances
Caso queira colocar alguma especial no pokemon coloque
Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de sair a passiva
15ª
Desça mais um pouco encontrara o pokesPrice
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o preço que o pokemon será vendido no npc
salve e feche
22- Agora vá em Data/Movements/ e abra o movements.xml
1º
Logo no começo voçe vera o Icone System
Em <movevent type="Equip" itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
2º
Em <movevent type="DeEquip
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
23- Agora vá em Data/Actions/ e abra o actions.xml
Procure por Icone System
Em <action itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
24- Caso tenha adicionado evolução vá em Data/Actions/Scripts e abra o evolution.lua
Em local types =
Vá ate o final da lista da stone que evolui o pokemon coloque o nome da anti evolução Ex , "Spearow" obs caso for 2 stones diferentes adicione nas 2
Ficara assim
25- Seja feliz
Obrigado pela atenção qualquer duvida comente
Caso ajudei REP+
Creditos: 100% Ckfox
-
Makhai Drakon recebeu reputação de Fawkzz1 em [TUTORIAL] Como adicionar pokemons com {Icon System}.Resolvi fazer este tutorial porque os que que encontrei estavam muito confusos e não entendi certas coisas.
Programas utilizados:
ObjectBuilder: http://www.4shared.com/rar/XsT3Kkgsba/ObjectBuilder034.html
ItemEditor: http://www.4shared.com/file/232461654/31f90261/otitemeditor037.html
[TUTORIAL] Como adicionar pokemons com {Icon System}.
1- Abra o seu ObjectBuilder.
2- Aperte Ctrl+O ou Clique em "File"/"Open".
3- Clique em Browse.
4- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
5- Caso for estendido marque a caixa.
6- Após isto procure as outfit, corpse, ícone e portrait do pokemon desejado.
obs: aconselho escrever os números em um bloco de notas
7- Após isto abra o ItemEditor .
8- Aperte Ctr+P ou Clique em "File"/"Preferences".
9- Clique em Browse.
10- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
11- Caso for estendido marque a caixa e confirme.
12- Aperte Ctr+N ou Clique em "File"/"Open...".
13- E abra a pasta onde fica seu item.otb.
14- Crie 5 itens.
15- Em Cliete ID coloque os IDs do portrait, corpse, 1 ícone on e 2 ícones off que você pegou no ObjectBuilder.
16- Deixe os atributos exatamente assim.
Portrait
Corpse
Icone On
Icone Use
Icone Off
obs: a partir daqui usara estes IDs
obs: aconselho escrever os números em um bloco de notas
17- Por fim de save.
.
18- Agora vá em Data/Items e abra items.xml.
Em algum local adicione isto!
<item id="AAAAA" article="a" name="Icone."> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="BBBBB" article="a" name="Icone using"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="CCCCC" article="a" name="Icone dead"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="DDDDD" article="a" name="EEEEE"> <attribute key="containerSize" value="10" /> <attribute key="decayTo" value="0" /> <attribute key="duration" value="300" /> </item> <item id="FFFFF" article="a" name="portrait"> <attribute key="weight" value="0" /> <attribute key="slotType" value="legs" /> </item> Em "AAAAA" coloque o ID do ícone on
Em "BBBBB" coloque o ID do ícone use
Em "CCCCC" coloque o ID do ícone off
Em "DDDDD" coloque o ID do corpse
Em "EEEEE" coloque fainted "nome do poke"
Em "FFFFF" coloque o ID do portrait
Salve e feche
19- Agora vá em Data/Monster/Pokes
Copie alguma .xml e modifique o seu nome para o do pokemon desejado depois abra-a
<?xml version="1.0" encoding="UTF-8"?> <monster name="AAAAA" nameDescription="a BBBBB" race="CCCCC" experience="1500" speed="207" manacost="0"> <health now="270" max="270"/> <look type="DDDDD" head="90" body="100" legs="95" feet="113" corpse="EEEEE"/> <targetchange interval="2000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="1"/> <flag pushable="1"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="97"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" chance="100" range="1" min="-50" max="-100"/> <attack name="Aqua Tail" interval="2805" chance="29" range="1"/> <attack name="Headbutt" interval="2705" chance="29" range="1"/> <attack name="Dragon Breath" interval="3040" chance="28" range="6"/> <attack name="Hyper Beam" interval="2899" chance="29" range="5"/> <attack name="Thunder Wave" interval="2993" chance="28" range="6"/> <attack name="Twister" interval="2852" chance="29" range="3"/> <attack name="Wing Attack" interval="3040" chance="28" range="6"/> <attack name="Thunder Punch" interval="2752" chance="29" range="1"/> <attack name="Fire Punch" interval="2952" chance="29" range="1"/> <attack name="Dragon Claw" interval="2900" chance="29" range="1"/> </attacks> <defenses armor="0" defense="0"> </defenses> <voices interval="5000" chance="10"> <voice sentence="FFFFF!"/> </voices> <loot> <item id="11449" chance="150" count="1" countmax="1"/> <item id="12159" chance="3000" count="1" countmax="1"/> <item id="13794" chance="10000" countmax="80"/> --snowball <item id="12275" chance="3000" count="1" countmax="1"/> <item id="12244" chance="70" count="1" countmax="1"/> <item id="12338" chance="10" count="1"/> --bag box --bag box </loot> <script> <event name="Spawn"/> </script> </monster> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID da outfit do pokemon
Em "CCCCC" coloque o a raça do pokemon
Em "DDDDD" coloque o ID da outfit do pokemon obs: no meu caso e 2241
Em "EEEEE" coloque o ID corpse obs: no meu caso e 20758
Em "FFFFF" coloque a fala do pokemon
Lista de raças:
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost Attacks Lembrando esses são os ataques que os pokemons selvagens soltara! E possível ver os attacks em data/spells/scripts/ps name = "Nome do attack" interval = "Intervalo para usar o attack" chance = Chance do attack ser acertado" obs: sempre deixe o melee 100 range = "Distancia mínima necessária para usar o attack"
Loot
item id = "ID do item que será dropado"
chance = "Chance do item ser dropado"
count = "Mínimo de itens a ser dropado"
countmax = "Máximo de itens a ser dropado"
salve e feche
20- Agora vá em Data/Monster e abra monster.xml
Adicione esta tag
1 - caso esteja em uma pasta
<monster name="AAAAA" file="pokes/BBBBB/CCCCC.xml"/> 2 - caso apenas esteja na pasta pokes
<monster name="AAAAA" file="pokes/CCCCC.xml"/> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o nome da pasta onde ele esta
Em "CCCCC" coloque o nome da .xml que você criou
salve e feche
21- Agora vá em Data/Lib e abra configuration.lua
1ª
desça um pouco e se ver algo deste género
Vá ate o ultimo e cole este código.
["AAAAA"] = {move1 = {name = "Aqua Tail", level = 10, cd = 12, dist = 1, target = 1, f = 50, t = "water"}, move2 = {name = "Thunder Wave", level = 12, cd = 16, dist = 1, target = 0, f = 70, t = "electric"}, move3 = {name = "Thunder Punch", level = 16, cd = 16, dist = 1, target = 1, f = 65, t = "electric"}, move4 = {name = "Fire Punch", level = 15, cd = 20, dist = 1, target = 1, f = 75, t = "electric"}, move5 = {name = "Dragon Claw", level = 22, cd = 16, dist = 1, target = 1, f = 60, t = "dragon"}, move6 = {name = "Dragon Breath", level = 40, cd = 20, dist = 1, target = 0, f = 80, t = "dragon"}, move7 = {name = "Twister", level = 46, cd = 24, dist = 1, target = 0, f = 80, t = "dragon"}, move8 = {name = "Wing Attack", level = 70, cd = 28, dist = 1, target = 0, f = 75, t = "flying"}, move9 = {name = "Hyper Beam", level = 70, cd = 24, dist = 1, target = 0, f = 190, t = "normal"}, move10 = {name = "Draco Meteor", level = 110, cd = 60, dist = 1, target = 0, f = 150, t = "dragon"}, }, Em "AAAAA" coloque o nome do pokemon
Moves
name = "Nome do attack"
level = "Level mínimo para usar o attack"
cd = "tempo para o attack recarregar"
dist = "distancia mínima para usar o attack"
target = "1 significa que precisa se alvo / 0 que não e necessário"
f = "força do attack"
t = "tipo do attack"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
2ª
Desça mais um pouco encontrara o fly
caso seu pokemon tenha pegue o id da outfit do fly e subtraia 351 EX: 2242-351=1891
Vá ate o ultimo e cole este código.
["AAAAA"] = {BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do fly subtraído por 351 EX: 2242-351=1891
Em "CCCCC" coloque a velocidade que dará
obs: Surf e ride mesma coisa
3ª
Desça mais um pouco encontrara o pokeballs
Vá ate o ultimo e cole este código.
["AAAAA"] = {effect = 188, on = BBBBB, use = CCCCC, off = DDDDD, all = {BBBBB, CCCCC, DDDDD}}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon use
Em "DDDDD" coloque o ID do icon off
4ª
Desça mais um pouco encontrara o icons
Vá ate o ultimo e cole este código.
["AAAAA"] = { on = BBBBB, off = CCCCC, use = DDDDD }, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon off
Em "DDDDD" coloque o ID do icon use
5ª
Desça mais um pouco encontrara o effectiveness mais não mecha nele
Desça mais um pouco encontrara o pokes
Vá ate o ultimo e cole este código.
["AAAAA"] = {offense = 4.5, defense = 10, specialattack = 12.2, vitality = 11.8, agility = 350, exp = 800, level = 80, wildLvl = 150, type = "ice", type2 = "ghost"}, Em "AAAAA" coloque o nome do pokemon
offense = "offense que ganha por level"
defense = "defense por level"
specialattack = "special attack que ganha por level"
vitality = "vida que o poke ganha pra cada vitality que tem"
agility = "velocidade base dos pokes"
exp = "experiência que dá a cada level que tem (somada a exp base, no xml do poke)"
level = "level min pra usar o poke / offense base"
wildlevel = "level que o pokemon selvagem será"
type = "tipo do pokemon"
type2 = "segundo tipo do pokemon" obs caso não tenha coloque no type"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
6ª
Desça mais um pouco encontrara o fotos
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do portrait
7ª
Desça mais um pouco encontrara o pokecatches
Vá ate o ultimo e cole este código.
["AAAAA"] = {chance = BBBBB, corpse = CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de capturar o pokemon obs quanto maior o numero mais difícil fica
Em "CCCCC" coloque o ID corpse
8ª
Desça mais um pouco encontrara o newpokedex
Vá ate o ultimo e cole este código.
["AAAAA"] = {gender = 500, level = 80, storage = 100, stoCatch = BBBBB}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque 1 e um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457
gender = "género género do pokemon 500 = 50% de ser m ou f, 75 = 75% de ser f 25 = 25% de ser f, -1 = sem sexo " obs se o server não tiver gender system não faz diferença
level = "level min pra usar o poke " obs apenas afetará o pokedex
storage = "Não mexa!"
stoCatch = "coloque um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457"
9ª
Desça mais um pouco encontrara o oldpokedex
Vá ate o ultimo e cole este código.
{"AAAAA", BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o level min pra usar o poke
Em "CCCCC" coloque o coloque um numero depois do pokemon anterior Ex o anterior é 1290 então coloque 1291
10ª
Desça mais um pouco encontrara o poevo
Caso o pokemon que será adicionado tenha uma anti evolução
Vá ate o ultimo e cole este código.
["AAAAA"] = {level = 150, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
11ª
Desça mais um pouco encontrara o spcevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
Vá ate o ultimo e cole este código.
["AAAAA"] = {[1] = {level = 65, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, [2] = {level = 65, evolution = "EEEEE", count = 1, stoneid = FFFFF, stoneid2 = GGGGG}}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da 1ª evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o 1º pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o 1º pokemon obs opcional deixe 0 se não tiver stone
Em "EEEEE" coloque o nome da 2ª evolução do pokemon
Em "FFFFF" coloque o ID da stone que ira evoluir o 2º pokemon
Em "GGGGG" coloque o ID do segundo tipo stone que ira evoluir o 2º pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
12ª
Desça mais um pouco encontrara o gobackmsgs mais não mecha nele
Desça mais um pouco encontrara o specialevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
specialevo = {"Poliwhirl", "Gloom", "Tyrogue", "Eevee", "AAAAA"} Em "AAAAA" coloque o nome da anti evolução pokemon
13ª
Desça mais um pouco encontrara o specialabilities
Caso queira colocar alguma habilidade no pokemon coloque
Em "AAAAA" coloque o nome da anti evolução pokemon
Coloque nas habilidades desejadas
14ª
Desça mais um pouco encontrara o auraSyst mais não mecha nele
Desça mais um pouco encontrara o hitmonchans mais não mecha nele
Desça mais um pouco encontrara o headbutt mais não mecha nele
Desça mais um pouco encontrara o lookClans mais não mecha nele
Desça mais um pouco encontrara o youAre mais não mecha nele
Desça mais um pouco encontrara o passivesChances
Caso queira colocar alguma especial no pokemon coloque
Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de sair a passiva
15ª
Desça mais um pouco encontrara o pokesPrice
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o preço que o pokemon será vendido no npc
salve e feche
22- Agora vá em Data/Movements/ e abra o movements.xml
1º
Logo no começo voçe vera o Icone System
Em <movevent type="Equip" itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
2º
Em <movevent type="DeEquip
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
23- Agora vá em Data/Actions/ e abra o actions.xml
Procure por Icone System
Em <action itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
24- Caso tenha adicionado evolução vá em Data/Actions/Scripts e abra o evolution.lua
Em local types =
Vá ate o final da lista da stone que evolui o pokemon coloque o nome da anti evolução Ex , "Spearow" obs caso for 2 stones diferentes adicione nas 2
Ficara assim
25- Seja feliz
Obrigado pela atenção qualquer duvida comente
Caso ajudei REP+
Creditos: 100% Ckfox
-
Makhai Drakon recebeu reputação de zLockey9 em [TUTORIAL] Como adicionar pokemons com {Icon System}.Resolvi fazer este tutorial porque os que que encontrei estavam muito confusos e não entendi certas coisas.
Programas utilizados:
ObjectBuilder: http://www.4shared.com/rar/XsT3Kkgsba/ObjectBuilder034.html
ItemEditor: http://www.4shared.com/file/232461654/31f90261/otitemeditor037.html
[TUTORIAL] Como adicionar pokemons com {Icon System}.
1- Abra o seu ObjectBuilder.
2- Aperte Ctrl+O ou Clique em "File"/"Open".
3- Clique em Browse.
4- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
5- Caso for estendido marque a caixa.
6- Após isto procure as outfit, corpse, ícone e portrait do pokemon desejado.
obs: aconselho escrever os números em um bloco de notas
7- Após isto abra o ItemEditor .
8- Aperte Ctr+P ou Clique em "File"/"Preferences".
9- Clique em Browse.
10- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
11- Caso for estendido marque a caixa e confirme.
12- Aperte Ctr+N ou Clique em "File"/"Open...".
13- E abra a pasta onde fica seu item.otb.
14- Crie 5 itens.
15- Em Cliete ID coloque os IDs do portrait, corpse, 1 ícone on e 2 ícones off que você pegou no ObjectBuilder.
16- Deixe os atributos exatamente assim.
Portrait
Corpse
Icone On
Icone Use
Icone Off
obs: a partir daqui usara estes IDs
obs: aconselho escrever os números em um bloco de notas
17- Por fim de save.
.
18- Agora vá em Data/Items e abra items.xml.
Em algum local adicione isto!
<item id="AAAAA" article="a" name="Icone."> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="BBBBB" article="a" name="Icone using"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="CCCCC" article="a" name="Icone dead"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="DDDDD" article="a" name="EEEEE"> <attribute key="containerSize" value="10" /> <attribute key="decayTo" value="0" /> <attribute key="duration" value="300" /> </item> <item id="FFFFF" article="a" name="portrait"> <attribute key="weight" value="0" /> <attribute key="slotType" value="legs" /> </item> Em "AAAAA" coloque o ID do ícone on
Em "BBBBB" coloque o ID do ícone use
Em "CCCCC" coloque o ID do ícone off
Em "DDDDD" coloque o ID do corpse
Em "EEEEE" coloque fainted "nome do poke"
Em "FFFFF" coloque o ID do portrait
Salve e feche
19- Agora vá em Data/Monster/Pokes
Copie alguma .xml e modifique o seu nome para o do pokemon desejado depois abra-a
<?xml version="1.0" encoding="UTF-8"?> <monster name="AAAAA" nameDescription="a BBBBB" race="CCCCC" experience="1500" speed="207" manacost="0"> <health now="270" max="270"/> <look type="DDDDD" head="90" body="100" legs="95" feet="113" corpse="EEEEE"/> <targetchange interval="2000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="1"/> <flag pushable="1"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="97"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" chance="100" range="1" min="-50" max="-100"/> <attack name="Aqua Tail" interval="2805" chance="29" range="1"/> <attack name="Headbutt" interval="2705" chance="29" range="1"/> <attack name="Dragon Breath" interval="3040" chance="28" range="6"/> <attack name="Hyper Beam" interval="2899" chance="29" range="5"/> <attack name="Thunder Wave" interval="2993" chance="28" range="6"/> <attack name="Twister" interval="2852" chance="29" range="3"/> <attack name="Wing Attack" interval="3040" chance="28" range="6"/> <attack name="Thunder Punch" interval="2752" chance="29" range="1"/> <attack name="Fire Punch" interval="2952" chance="29" range="1"/> <attack name="Dragon Claw" interval="2900" chance="29" range="1"/> </attacks> <defenses armor="0" defense="0"> </defenses> <voices interval="5000" chance="10"> <voice sentence="FFFFF!"/> </voices> <loot> <item id="11449" chance="150" count="1" countmax="1"/> <item id="12159" chance="3000" count="1" countmax="1"/> <item id="13794" chance="10000" countmax="80"/> --snowball <item id="12275" chance="3000" count="1" countmax="1"/> <item id="12244" chance="70" count="1" countmax="1"/> <item id="12338" chance="10" count="1"/> --bag box --bag box </loot> <script> <event name="Spawn"/> </script> </monster> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID da outfit do pokemon
Em "CCCCC" coloque o a raça do pokemon
Em "DDDDD" coloque o ID da outfit do pokemon obs: no meu caso e 2241
Em "EEEEE" coloque o ID corpse obs: no meu caso e 20758
Em "FFFFF" coloque a fala do pokemon
Lista de raças:
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost Attacks Lembrando esses são os ataques que os pokemons selvagens soltara! E possível ver os attacks em data/spells/scripts/ps name = "Nome do attack" interval = "Intervalo para usar o attack" chance = Chance do attack ser acertado" obs: sempre deixe o melee 100 range = "Distancia mínima necessária para usar o attack"
Loot
item id = "ID do item que será dropado"
chance = "Chance do item ser dropado"
count = "Mínimo de itens a ser dropado"
countmax = "Máximo de itens a ser dropado"
salve e feche
20- Agora vá em Data/Monster e abra monster.xml
Adicione esta tag
1 - caso esteja em uma pasta
<monster name="AAAAA" file="pokes/BBBBB/CCCCC.xml"/> 2 - caso apenas esteja na pasta pokes
<monster name="AAAAA" file="pokes/CCCCC.xml"/> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o nome da pasta onde ele esta
Em "CCCCC" coloque o nome da .xml que você criou
salve e feche
21- Agora vá em Data/Lib e abra configuration.lua
1ª
desça um pouco e se ver algo deste género
Vá ate o ultimo e cole este código.
["AAAAA"] = {move1 = {name = "Aqua Tail", level = 10, cd = 12, dist = 1, target = 1, f = 50, t = "water"}, move2 = {name = "Thunder Wave", level = 12, cd = 16, dist = 1, target = 0, f = 70, t = "electric"}, move3 = {name = "Thunder Punch", level = 16, cd = 16, dist = 1, target = 1, f = 65, t = "electric"}, move4 = {name = "Fire Punch", level = 15, cd = 20, dist = 1, target = 1, f = 75, t = "electric"}, move5 = {name = "Dragon Claw", level = 22, cd = 16, dist = 1, target = 1, f = 60, t = "dragon"}, move6 = {name = "Dragon Breath", level = 40, cd = 20, dist = 1, target = 0, f = 80, t = "dragon"}, move7 = {name = "Twister", level = 46, cd = 24, dist = 1, target = 0, f = 80, t = "dragon"}, move8 = {name = "Wing Attack", level = 70, cd = 28, dist = 1, target = 0, f = 75, t = "flying"}, move9 = {name = "Hyper Beam", level = 70, cd = 24, dist = 1, target = 0, f = 190, t = "normal"}, move10 = {name = "Draco Meteor", level = 110, cd = 60, dist = 1, target = 0, f = 150, t = "dragon"}, }, Em "AAAAA" coloque o nome do pokemon
Moves
name = "Nome do attack"
level = "Level mínimo para usar o attack"
cd = "tempo para o attack recarregar"
dist = "distancia mínima para usar o attack"
target = "1 significa que precisa se alvo / 0 que não e necessário"
f = "força do attack"
t = "tipo do attack"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
2ª
Desça mais um pouco encontrara o fly
caso seu pokemon tenha pegue o id da outfit do fly e subtraia 351 EX: 2242-351=1891
Vá ate o ultimo e cole este código.
["AAAAA"] = {BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do fly subtraído por 351 EX: 2242-351=1891
Em "CCCCC" coloque a velocidade que dará
obs: Surf e ride mesma coisa
3ª
Desça mais um pouco encontrara o pokeballs
Vá ate o ultimo e cole este código.
["AAAAA"] = {effect = 188, on = BBBBB, use = CCCCC, off = DDDDD, all = {BBBBB, CCCCC, DDDDD}}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon use
Em "DDDDD" coloque o ID do icon off
4ª
Desça mais um pouco encontrara o icons
Vá ate o ultimo e cole este código.
["AAAAA"] = { on = BBBBB, off = CCCCC, use = DDDDD }, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon off
Em "DDDDD" coloque o ID do icon use
5ª
Desça mais um pouco encontrara o effectiveness mais não mecha nele
Desça mais um pouco encontrara o pokes
Vá ate o ultimo e cole este código.
["AAAAA"] = {offense = 4.5, defense = 10, specialattack = 12.2, vitality = 11.8, agility = 350, exp = 800, level = 80, wildLvl = 150, type = "ice", type2 = "ghost"}, Em "AAAAA" coloque o nome do pokemon
offense = "offense que ganha por level"
defense = "defense por level"
specialattack = "special attack que ganha por level"
vitality = "vida que o poke ganha pra cada vitality que tem"
agility = "velocidade base dos pokes"
exp = "experiência que dá a cada level que tem (somada a exp base, no xml do poke)"
level = "level min pra usar o poke / offense base"
wildlevel = "level que o pokemon selvagem será"
type = "tipo do pokemon"
type2 = "segundo tipo do pokemon" obs caso não tenha coloque no type"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
6ª
Desça mais um pouco encontrara o fotos
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do portrait
7ª
Desça mais um pouco encontrara o pokecatches
Vá ate o ultimo e cole este código.
["AAAAA"] = {chance = BBBBB, corpse = CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de capturar o pokemon obs quanto maior o numero mais difícil fica
Em "CCCCC" coloque o ID corpse
8ª
Desça mais um pouco encontrara o newpokedex
Vá ate o ultimo e cole este código.
["AAAAA"] = {gender = 500, level = 80, storage = 100, stoCatch = BBBBB}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque 1 e um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457
gender = "género género do pokemon 500 = 50% de ser m ou f, 75 = 75% de ser f 25 = 25% de ser f, -1 = sem sexo " obs se o server não tiver gender system não faz diferença
level = "level min pra usar o poke " obs apenas afetará o pokedex
storage = "Não mexa!"
stoCatch = "coloque um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457"
9ª
Desça mais um pouco encontrara o oldpokedex
Vá ate o ultimo e cole este código.
{"AAAAA", BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o level min pra usar o poke
Em "CCCCC" coloque o coloque um numero depois do pokemon anterior Ex o anterior é 1290 então coloque 1291
10ª
Desça mais um pouco encontrara o poevo
Caso o pokemon que será adicionado tenha uma anti evolução
Vá ate o ultimo e cole este código.
["AAAAA"] = {level = 150, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
11ª
Desça mais um pouco encontrara o spcevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
Vá ate o ultimo e cole este código.
["AAAAA"] = {[1] = {level = 65, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, [2] = {level = 65, evolution = "EEEEE", count = 1, stoneid = FFFFF, stoneid2 = GGGGG}}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da 1ª evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o 1º pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o 1º pokemon obs opcional deixe 0 se não tiver stone
Em "EEEEE" coloque o nome da 2ª evolução do pokemon
Em "FFFFF" coloque o ID da stone que ira evoluir o 2º pokemon
Em "GGGGG" coloque o ID do segundo tipo stone que ira evoluir o 2º pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
12ª
Desça mais um pouco encontrara o gobackmsgs mais não mecha nele
Desça mais um pouco encontrara o specialevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
specialevo = {"Poliwhirl", "Gloom", "Tyrogue", "Eevee", "AAAAA"} Em "AAAAA" coloque o nome da anti evolução pokemon
13ª
Desça mais um pouco encontrara o specialabilities
Caso queira colocar alguma habilidade no pokemon coloque
Em "AAAAA" coloque o nome da anti evolução pokemon
Coloque nas habilidades desejadas
14ª
Desça mais um pouco encontrara o auraSyst mais não mecha nele
Desça mais um pouco encontrara o hitmonchans mais não mecha nele
Desça mais um pouco encontrara o headbutt mais não mecha nele
Desça mais um pouco encontrara o lookClans mais não mecha nele
Desça mais um pouco encontrara o youAre mais não mecha nele
Desça mais um pouco encontrara o passivesChances
Caso queira colocar alguma especial no pokemon coloque
Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de sair a passiva
15ª
Desça mais um pouco encontrara o pokesPrice
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o preço que o pokemon será vendido no npc
salve e feche
22- Agora vá em Data/Movements/ e abra o movements.xml
1º
Logo no começo voçe vera o Icone System
Em <movevent type="Equip" itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
2º
Em <movevent type="DeEquip
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
23- Agora vá em Data/Actions/ e abra o actions.xml
Procure por Icone System
Em <action itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
24- Caso tenha adicionado evolução vá em Data/Actions/Scripts e abra o evolution.lua
Em local types =
Vá ate o final da lista da stone que evolui o pokemon coloque o nome da anti evolução Ex , "Spearow" obs caso for 2 stones diferentes adicione nas 2
Ficara assim
25- Seja feliz
Obrigado pela atenção qualquer duvida comente
Caso ajudei REP+
Creditos: 100% Ckfox
-
Makhai Drakon recebeu reputação de J.L em (Resolvido)Colocar distancia na pesca@J.L Desculpe, daqui a pouco dou uma olhada melhor no script, o range que eu te passei ele funciona para ataques, tava na esperança de funcionar como range de use também, calma aí que Jajá resolvo
-
Makhai Drakon recebeu reputação de ceesar90 em Como começar a editar as sourcers de um OT?@ceesar90 Vamos pensar o seguinte, o cliente usa c++ que oque faria sentido MinGW e como tu já e formado deve entender como usa né a mesma coisa no server, mas caso não saiba ainda, tenta achar um tutorial de dev c++ ai que tu deve conseguir
-
Makhai Drakon recebeu reputação de J.L em (Resolvido)Colocar distancia na pesca@J.L Coloca essa tag no items.xml dentro do item
<attribute key="range" value="1" />
-
Makhai Drakon recebeu reputação de Gr33n em alavanca com reward@1xeuzinho1
Coloca isso em algum lugar do seu data/items/items.xml
<item id="AAAAA" article="a" name="BBBBB"> <attribute key="containerSize" value="8" /> <attribute key="decayTo" value="0" /> <attribute key="duration" value="55" /> </item> Em:
AAAAA - Coloca o ID do corpse do monstro
BBBBB - Coloca fainted (e o nome do monstro.
Ficando assim:
<item id="8937" article="a" name="fainted Demonn"> <attribute key="containerSize" value="8" /> <attribute key="decayTo" value="0" /> <attribute key="duration" value="55" /> </item>
-
Makhai Drakon recebeu reputação de Christinacsa em (Resolvido)[PEDIDO] Npc troca item por item e da storage@Christinacsa
local cfg = { need_item = {5785, 10, 2160, 10}, reward_item = {13506, 1, 2160, 1, 2161, 1, 2162, 1}, storage = 40531, } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = msg:lower() if msgcontains(msg, 'kefla') then if getPlayerStorageValue(cid, cfg.storage) < 1 then if doPlayerRemoveItem(cid, cfg.need_item[1], cfg.need_item[2]) and doPlayerRemoveItem(cid, cfg.need_item[3], cfg.need_item[4])then doPlayerAddItem(cid, cfg.reward_item[1], cfg.reward_item[2]) doPlayerAddItem(cid, cfg.reward_item[3], cfg.reward_item[4]) doPlayerAddItem(cid, cfg.reward_item[5], cfg.reward_item[6]) doPlayerAddItem(cid, cfg.reward_item[7], cfg.reward_item[8]) selfSay('You just swap '.. cfg.need_item[2] cfg.need_item[1] ..' and '.. cfg.need_item[4] cfg.need_item[3] ..'for a kefla set', cid) setPlayerStorageValue(cid, cfg.storage, 1) else selfSay('You need '.. cfg.need_item[2] ..' '.. getItemNameById(cfg.need_item[1]) ..'.', cid) end else selfSay('You already did this exchange!', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Makhai Drakon recebeu reputação de Psgamerbr em (Resolvido)[Pedido] Item que mude a Sprite@Psgamerbr Testa ai em vez de perder outfit so quando deslogar, eu coloquei um tempo pra perder ela
data/actions/scripts/outfit changer.lua
local a = { --[ItemID] = {outfit = OutfitID, effect = EffectID, cd = Cooldown_em_minutos, msg = "Mensagem_enviada_ao_usar"}, [7070] = {outfit = 300, effect = 29, cd = 60, msg = "Você ganhou temporariamente um outfit de Grim Reaper!"}, [7071] = {outfit = 301, effect = 29, cd = 60, msg = "Você ganhou temporariamente um outfit de XXXX XXXXXX!"}, [7072] = {outfit = 302, effect = 29, cd = 60, msg = "Você ganhou temporariamente um outfit de XXXX XXXXXX!"}, } function onUse(cid, item, frompos, item3, topos) local b = a[item.itemid] local out = getCreatureOutfit(cid) local function ckfox() doCreatureChangeOutfit(cid, out) return true end doCreatureChangeOutfit(cid, b.outfit) doSendMagicEffect(getThingPos(cid), b.effect) addEvent(ckfox, b.cd*60*1000) sendMsgToPlayer(cid, 27, b.msg) return true end
data/actions/actions.xml
<action itemid="7070;7071;7072" event="script" value="outfit changer.lua"/>
-
Makhai Drakon recebeu reputação de Psgamerbr em Spell que tira palalyze@leozincorsair
Testa ai
local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 5000) setConditionParam(condition, CONDITION_PARAM_SPEED, -5000) function onCastSpell(cid, var) local effect = 14 -- Efeito que aparecera no player local cd = 8 -- cooldown para usa a magia novamente if isPlayer(cid) and exhaustion.check(cid, 12000) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, 12000) .. " segundos para usar novamente.") return FALSE end exhaustion.set(cid, 12000, cd) doCreatureSetNoMove(cid, 0) doRemoveCondition(cid, CONDITION_PARALYZE) doSendMagicEffect(getCreaturePosition(cid), effect) return TRUE end
-
Makhai Drakon recebeu reputação de Christinacsa em (Resolvido)[PEDIDO] Npc troca item por item e da storagePelo que eu li no script não tem nada constando o group, então funciona para ambos
Aconselho só mudar o selfsay da linha 34 falando para o player que ele ja fez a troca.
local cfg = { need_item = {5785, 10}, reward_item = {13506, 1}, storage = 40531, } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = msg:lower() if msgcontains(msg, 'kefla') then if getPlayerStorageValue(cid, cfg.storage) < 1 then if doPlayerRemoveItem(cid, cfg.need_item[1], cfg.need_item[2]) then doPlayerAddItem(cid, cfg.reward_item[1], cfg.reward_item[2]) selfSay('You just swap '.. cfg.need_item[2] ..' '.. getItemNameById(cfg.need_item[1]) ..' for '.. cfg.reward_item[2] ..' '.. getItemNameById(cfg.reward_item[1]) ..'.', cid) setPlayerStorageValue(cid, cfg.storage, 1) else selfSay('You need '.. cfg.need_item[2] ..' '.. getItemNameById(cfg.need_item[1]) ..'.', cid) end else selfSay('You already did this exchange!', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Makhai Drakon recebeu reputação de leozincorsair em Spell que tira palalyze@leozincorsair
Testa ai
local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 5000) setConditionParam(condition, CONDITION_PARAM_SPEED, -5000) function onCastSpell(cid, var) local effect = 14 -- Efeito que aparecera no player local cd = 8 -- cooldown para usa a magia novamente if isPlayer(cid) and exhaustion.check(cid, 12000) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, 12000) .. " segundos para usar novamente.") return FALSE end exhaustion.set(cid, 12000, cd) doCreatureSetNoMove(cid, 0) doRemoveCondition(cid, CONDITION_PARALYZE) doSendMagicEffect(getCreaturePosition(cid), effect) return TRUE end
-
Makhai Drakon recebeu reputação de gcmcorrea em Error no Login.@gcmcorrea me manda seu login.lua
-
Makhai Drakon recebeu reputação de Christinacsa em (Resolvido)[NPC] vende storage por item@Christinacsa
Lembra de colocar a codificação ANSI no notpad pra não bugar os acêntos
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config = { item1 = 13507, -- ID DO Item que precisara para trocar qt1 = 1000, -- Quantidade do item1 que precisa sto = 166666, -- Storage não mecher } if(msgcontains(msg, 'yes' )) then if getPlayerStorageValue(cid, config.sto) == -1 then if getPlayerItemCount(cid, config.item1) >= config.qt1 then selfSay('Você pagou a entrada oara a {PERFECT NAVE}', cid) setPlayerStorageValue(cid, config.sto, 1) doRemoveItem(cid, config.item1, config.qnt1) else selfSay('Você não tem o item necessario {Furie Coins}', cid) end else selfSay(' voce ja fez' , cid) return true end end end
-
Makhai Drakon recebeu reputação de Gnius em (Resolvido)[AJUDA] Healarea não funciona em pvp@Gnius
Testa
elseif spell == "Healarea" then local min = (getCreatureMaxHealth(cid) * 50) / 100 local max = (getCreatureMaxHealth(cid) * 60) / 100 local function doHealArea(cid, min, max) local amount = math.random(min, max) if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid)) end if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then doCreatureAddHealth(cid, amount) doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) end end local pos = getPosfromArea(cid, heal) local n = 0 doHealArea(cid, min, max) while n < #pos do n = n+1 thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253} local pid = getThingFromPosWithProtect(thing) doSendMagicEffect(pos[n], 12) if isCreature(pid) then if isSummon(cid) and (isSummon(pid) or isPlayer(pid)) then doHealArea(pid, min, max) elseif ehMonstro(cid) and ehMonstro(pid) then doHealArea(pid, min, max) end end end
-
Makhai Drakon recebeu reputação de mostps em [PEDIDO] NPC@mostps
Esse era o script do meu server, eu dei uma editada nele pra você, mas eu não testei!
Captain.xml
<?xml version="1.0" encoding="UTF-8"?> <npc name="Captain" script="Captain.lua" walkinterval="3000" floorchange="0" access="5" level="100" maglevel="1"> <health now="15" max="15"/> <look type="335" head="114" body="7" legs="7" feet="7" addons="2"/> <parameters> <parameter key="message_greet" value="Welcome |PLAYERNAME|, you want some {quest}?"/> </parameters> </npc> Captain.lua
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function PArea(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end local function backp() doTeleportThing(cid, parameters.exit) end if parameters.premium == false and not isPremium(cid) then npcHandler:say('Sorry, you need to be premium account!', cid) return true elseif doPlayerRemoveMoney(cid, parameters.price) == FALSE then npcHandler:say('Sorry, you dont have enought money!', cid) return true end doPlayerSendTextMessage(cid,22,'Good Luck!.') doTeleportThing(cid, parameters.enter) addEvent(backp, parameters.minutes*60*1000) npcHandler:resetNpc() return true end local node1 = keywordHandler:addKeyword({'quest'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Nessa {quest} possui monstros muito fortes você esta pronto para enfrenta-los?? Mais antes guarde suas pokebolas no DP....ah você so tem 60 minutos de tempo para realizar essa quest!!!!'}) node1:addChildKeyword({'yes'}, PArea, {premium = no, price = 0, enter = {x=1235, y=630, z=8}, exit = {x=1235, y=630, z=8}, minutes = 60}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) npcHandler:addModule(FocusModule:new())
-
Makhai Drakon 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 \/ -
Makhai Drakon recebeu reputação de Rodrigo Walking em [TUTORIAL] Como adicionar pokemons com {Icon System}.Resolvi fazer este tutorial porque os que que encontrei estavam muito confusos e não entendi certas coisas.
Programas utilizados:
ObjectBuilder: http://www.4shared.com/rar/XsT3Kkgsba/ObjectBuilder034.html
ItemEditor: http://www.4shared.com/file/232461654/31f90261/otitemeditor037.html
[TUTORIAL] Como adicionar pokemons com {Icon System}.
1- Abra o seu ObjectBuilder.
2- Aperte Ctrl+O ou Clique em "File"/"Open".
3- Clique em Browse.
4- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
5- Caso for estendido marque a caixa.
6- Após isto procure as outfit, corpse, ícone e portrait do pokemon desejado.
obs: aconselho escrever os números em um bloco de notas
7- Após isto abra o ItemEditor .
8- Aperte Ctr+P ou Clique em "File"/"Preferences".
9- Clique em Browse.
10- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
11- Caso for estendido marque a caixa e confirme.
12- Aperte Ctr+N ou Clique em "File"/"Open...".
13- E abra a pasta onde fica seu item.otb.
14- Crie 5 itens.
15- Em Cliete ID coloque os IDs do portrait, corpse, 1 ícone on e 2 ícones off que você pegou no ObjectBuilder.
16- Deixe os atributos exatamente assim.
Portrait
Corpse
Icone On
Icone Use
Icone Off
obs: a partir daqui usara estes IDs
obs: aconselho escrever os números em um bloco de notas
17- Por fim de save.
.
18- Agora vá em Data/Items e abra items.xml.
Em algum local adicione isto!
<item id="AAAAA" article="a" name="Icone."> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="BBBBB" article="a" name="Icone using"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="CCCCC" article="a" name="Icone dead"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="DDDDD" article="a" name="EEEEE"> <attribute key="containerSize" value="10" /> <attribute key="decayTo" value="0" /> <attribute key="duration" value="300" /> </item> <item id="FFFFF" article="a" name="portrait"> <attribute key="weight" value="0" /> <attribute key="slotType" value="legs" /> </item> Em "AAAAA" coloque o ID do ícone on
Em "BBBBB" coloque o ID do ícone use
Em "CCCCC" coloque o ID do ícone off
Em "DDDDD" coloque o ID do corpse
Em "EEEEE" coloque fainted "nome do poke"
Em "FFFFF" coloque o ID do portrait
Salve e feche
19- Agora vá em Data/Monster/Pokes
Copie alguma .xml e modifique o seu nome para o do pokemon desejado depois abra-a
<?xml version="1.0" encoding="UTF-8"?> <monster name="AAAAA" nameDescription="a BBBBB" race="CCCCC" experience="1500" speed="207" manacost="0"> <health now="270" max="270"/> <look type="DDDDD" head="90" body="100" legs="95" feet="113" corpse="EEEEE"/> <targetchange interval="2000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="1"/> <flag pushable="1"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="97"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" chance="100" range="1" min="-50" max="-100"/> <attack name="Aqua Tail" interval="2805" chance="29" range="1"/> <attack name="Headbutt" interval="2705" chance="29" range="1"/> <attack name="Dragon Breath" interval="3040" chance="28" range="6"/> <attack name="Hyper Beam" interval="2899" chance="29" range="5"/> <attack name="Thunder Wave" interval="2993" chance="28" range="6"/> <attack name="Twister" interval="2852" chance="29" range="3"/> <attack name="Wing Attack" interval="3040" chance="28" range="6"/> <attack name="Thunder Punch" interval="2752" chance="29" range="1"/> <attack name="Fire Punch" interval="2952" chance="29" range="1"/> <attack name="Dragon Claw" interval="2900" chance="29" range="1"/> </attacks> <defenses armor="0" defense="0"> </defenses> <voices interval="5000" chance="10"> <voice sentence="FFFFF!"/> </voices> <loot> <item id="11449" chance="150" count="1" countmax="1"/> <item id="12159" chance="3000" count="1" countmax="1"/> <item id="13794" chance="10000" countmax="80"/> --snowball <item id="12275" chance="3000" count="1" countmax="1"/> <item id="12244" chance="70" count="1" countmax="1"/> <item id="12338" chance="10" count="1"/> --bag box --bag box </loot> <script> <event name="Spawn"/> </script> </monster> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID da outfit do pokemon
Em "CCCCC" coloque o a raça do pokemon
Em "DDDDD" coloque o ID da outfit do pokemon obs: no meu caso e 2241
Em "EEEEE" coloque o ID corpse obs: no meu caso e 20758
Em "FFFFF" coloque a fala do pokemon
Lista de raças:
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost Attacks Lembrando esses são os ataques que os pokemons selvagens soltara! E possível ver os attacks em data/spells/scripts/ps name = "Nome do attack" interval = "Intervalo para usar o attack" chance = Chance do attack ser acertado" obs: sempre deixe o melee 100 range = "Distancia mínima necessária para usar o attack"
Loot
item id = "ID do item que será dropado"
chance = "Chance do item ser dropado"
count = "Mínimo de itens a ser dropado"
countmax = "Máximo de itens a ser dropado"
salve e feche
20- Agora vá em Data/Monster e abra monster.xml
Adicione esta tag
1 - caso esteja em uma pasta
<monster name="AAAAA" file="pokes/BBBBB/CCCCC.xml"/> 2 - caso apenas esteja na pasta pokes
<monster name="AAAAA" file="pokes/CCCCC.xml"/> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o nome da pasta onde ele esta
Em "CCCCC" coloque o nome da .xml que você criou
salve e feche
21- Agora vá em Data/Lib e abra configuration.lua
1ª
desça um pouco e se ver algo deste género
Vá ate o ultimo e cole este código.
["AAAAA"] = {move1 = {name = "Aqua Tail", level = 10, cd = 12, dist = 1, target = 1, f = 50, t = "water"}, move2 = {name = "Thunder Wave", level = 12, cd = 16, dist = 1, target = 0, f = 70, t = "electric"}, move3 = {name = "Thunder Punch", level = 16, cd = 16, dist = 1, target = 1, f = 65, t = "electric"}, move4 = {name = "Fire Punch", level = 15, cd = 20, dist = 1, target = 1, f = 75, t = "electric"}, move5 = {name = "Dragon Claw", level = 22, cd = 16, dist = 1, target = 1, f = 60, t = "dragon"}, move6 = {name = "Dragon Breath", level = 40, cd = 20, dist = 1, target = 0, f = 80, t = "dragon"}, move7 = {name = "Twister", level = 46, cd = 24, dist = 1, target = 0, f = 80, t = "dragon"}, move8 = {name = "Wing Attack", level = 70, cd = 28, dist = 1, target = 0, f = 75, t = "flying"}, move9 = {name = "Hyper Beam", level = 70, cd = 24, dist = 1, target = 0, f = 190, t = "normal"}, move10 = {name = "Draco Meteor", level = 110, cd = 60, dist = 1, target = 0, f = 150, t = "dragon"}, }, Em "AAAAA" coloque o nome do pokemon
Moves
name = "Nome do attack"
level = "Level mínimo para usar o attack"
cd = "tempo para o attack recarregar"
dist = "distancia mínima para usar o attack"
target = "1 significa que precisa se alvo / 0 que não e necessário"
f = "força do attack"
t = "tipo do attack"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
2ª
Desça mais um pouco encontrara o fly
caso seu pokemon tenha pegue o id da outfit do fly e subtraia 351 EX: 2242-351=1891
Vá ate o ultimo e cole este código.
["AAAAA"] = {BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do fly subtraído por 351 EX: 2242-351=1891
Em "CCCCC" coloque a velocidade que dará
obs: Surf e ride mesma coisa
3ª
Desça mais um pouco encontrara o pokeballs
Vá ate o ultimo e cole este código.
["AAAAA"] = {effect = 188, on = BBBBB, use = CCCCC, off = DDDDD, all = {BBBBB, CCCCC, DDDDD}}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon use
Em "DDDDD" coloque o ID do icon off
4ª
Desça mais um pouco encontrara o icons
Vá ate o ultimo e cole este código.
["AAAAA"] = { on = BBBBB, off = CCCCC, use = DDDDD }, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon off
Em "DDDDD" coloque o ID do icon use
5ª
Desça mais um pouco encontrara o effectiveness mais não mecha nele
Desça mais um pouco encontrara o pokes
Vá ate o ultimo e cole este código.
["AAAAA"] = {offense = 4.5, defense = 10, specialattack = 12.2, vitality = 11.8, agility = 350, exp = 800, level = 80, wildLvl = 150, type = "ice", type2 = "ghost"}, Em "AAAAA" coloque o nome do pokemon
offense = "offense que ganha por level"
defense = "defense por level"
specialattack = "special attack que ganha por level"
vitality = "vida que o poke ganha pra cada vitality que tem"
agility = "velocidade base dos pokes"
exp = "experiência que dá a cada level que tem (somada a exp base, no xml do poke)"
level = "level min pra usar o poke / offense base"
wildlevel = "level que o pokemon selvagem será"
type = "tipo do pokemon"
type2 = "segundo tipo do pokemon" obs caso não tenha coloque no type"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
6ª
Desça mais um pouco encontrara o fotos
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do portrait
7ª
Desça mais um pouco encontrara o pokecatches
Vá ate o ultimo e cole este código.
["AAAAA"] = {chance = BBBBB, corpse = CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de capturar o pokemon obs quanto maior o numero mais difícil fica
Em "CCCCC" coloque o ID corpse
8ª
Desça mais um pouco encontrara o newpokedex
Vá ate o ultimo e cole este código.
["AAAAA"] = {gender = 500, level = 80, storage = 100, stoCatch = BBBBB}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque 1 e um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457
gender = "género género do pokemon 500 = 50% de ser m ou f, 75 = 75% de ser f 25 = 25% de ser f, -1 = sem sexo " obs se o server não tiver gender system não faz diferença
level = "level min pra usar o poke " obs apenas afetará o pokedex
storage = "Não mexa!"
stoCatch = "coloque um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457"
9ª
Desça mais um pouco encontrara o oldpokedex
Vá ate o ultimo e cole este código.
{"AAAAA", BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o level min pra usar o poke
Em "CCCCC" coloque o coloque um numero depois do pokemon anterior Ex o anterior é 1290 então coloque 1291
10ª
Desça mais um pouco encontrara o poevo
Caso o pokemon que será adicionado tenha uma anti evolução
Vá ate o ultimo e cole este código.
["AAAAA"] = {level = 150, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
11ª
Desça mais um pouco encontrara o spcevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
Vá ate o ultimo e cole este código.
["AAAAA"] = {[1] = {level = 65, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, [2] = {level = 65, evolution = "EEEEE", count = 1, stoneid = FFFFF, stoneid2 = GGGGG}}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da 1ª evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o 1º pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o 1º pokemon obs opcional deixe 0 se não tiver stone
Em "EEEEE" coloque o nome da 2ª evolução do pokemon
Em "FFFFF" coloque o ID da stone que ira evoluir o 2º pokemon
Em "GGGGG" coloque o ID do segundo tipo stone que ira evoluir o 2º pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
12ª
Desça mais um pouco encontrara o gobackmsgs mais não mecha nele
Desça mais um pouco encontrara o specialevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
specialevo = {"Poliwhirl", "Gloom", "Tyrogue", "Eevee", "AAAAA"} Em "AAAAA" coloque o nome da anti evolução pokemon
13ª
Desça mais um pouco encontrara o specialabilities
Caso queira colocar alguma habilidade no pokemon coloque
Em "AAAAA" coloque o nome da anti evolução pokemon
Coloque nas habilidades desejadas
14ª
Desça mais um pouco encontrara o auraSyst mais não mecha nele
Desça mais um pouco encontrara o hitmonchans mais não mecha nele
Desça mais um pouco encontrara o headbutt mais não mecha nele
Desça mais um pouco encontrara o lookClans mais não mecha nele
Desça mais um pouco encontrara o youAre mais não mecha nele
Desça mais um pouco encontrara o passivesChances
Caso queira colocar alguma especial no pokemon coloque
Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de sair a passiva
15ª
Desça mais um pouco encontrara o pokesPrice
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o preço que o pokemon será vendido no npc
salve e feche
22- Agora vá em Data/Movements/ e abra o movements.xml
1º
Logo no começo voçe vera o Icone System
Em <movevent type="Equip" itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
2º
Em <movevent type="DeEquip
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
23- Agora vá em Data/Actions/ e abra o actions.xml
Procure por Icone System
Em <action itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
24- Caso tenha adicionado evolução vá em Data/Actions/Scripts e abra o evolution.lua
Em local types =
Vá ate o final da lista da stone que evolui o pokemon coloque o nome da anti evolução Ex , "Spearow" obs caso for 2 stones diferentes adicione nas 2
Ficara assim
25- Seja feliz
Obrigado pela atenção qualquer duvida comente
Caso ajudei REP+
Creditos: 100% Ckfox
-
Makhai Drakon recebeu reputação de henriquesafadao em [TUTORIAL] Como adicionar pokemons com {Icon System}.Resolvi fazer este tutorial porque os que que encontrei estavam muito confusos e não entendi certas coisas.
Programas utilizados:
ObjectBuilder: http://www.4shared.com/rar/XsT3Kkgsba/ObjectBuilder034.html
ItemEditor: http://www.4shared.com/file/232461654/31f90261/otitemeditor037.html
[TUTORIAL] Como adicionar pokemons com {Icon System}.
1- Abra o seu ObjectBuilder.
2- Aperte Ctrl+O ou Clique em "File"/"Open".
3- Clique em Browse.
4- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
5- Caso for estendido marque a caixa.
6- Após isto procure as outfit, corpse, ícone e portrait do pokemon desejado.
obs: aconselho escrever os números em um bloco de notas
7- Após isto abra o ItemEditor .
8- Aperte Ctr+P ou Clique em "File"/"Preferences".
9- Clique em Browse.
10- E abra a pasta onde fica seu tibia.spr e o tibia.dat.
11- Caso for estendido marque a caixa e confirme.
12- Aperte Ctr+N ou Clique em "File"/"Open...".
13- E abra a pasta onde fica seu item.otb.
14- Crie 5 itens.
15- Em Cliete ID coloque os IDs do portrait, corpse, 1 ícone on e 2 ícones off que você pegou no ObjectBuilder.
16- Deixe os atributos exatamente assim.
Portrait
Corpse
Icone On
Icone Use
Icone Off
obs: a partir daqui usara estes IDs
obs: aconselho escrever os números em um bloco de notas
17- Por fim de save.
.
18- Agora vá em Data/Items e abra items.xml.
Em algum local adicione isto!
<item id="AAAAA" article="a" name="Icone."> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="BBBBB" article="a" name="Icone using"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="CCCCC" article="a" name="Icone dead"> <attribute value="1" key="ispokeball"/> <attribute key="weight" value="100" /> <attribute key="slotType" value="feet" /> </item> <item id="DDDDD" article="a" name="EEEEE"> <attribute key="containerSize" value="10" /> <attribute key="decayTo" value="0" /> <attribute key="duration" value="300" /> </item> <item id="FFFFF" article="a" name="portrait"> <attribute key="weight" value="0" /> <attribute key="slotType" value="legs" /> </item> Em "AAAAA" coloque o ID do ícone on
Em "BBBBB" coloque o ID do ícone use
Em "CCCCC" coloque o ID do ícone off
Em "DDDDD" coloque o ID do corpse
Em "EEEEE" coloque fainted "nome do poke"
Em "FFFFF" coloque o ID do portrait
Salve e feche
19- Agora vá em Data/Monster/Pokes
Copie alguma .xml e modifique o seu nome para o do pokemon desejado depois abra-a
<?xml version="1.0" encoding="UTF-8"?> <monster name="AAAAA" nameDescription="a BBBBB" race="CCCCC" experience="1500" speed="207" manacost="0"> <health now="270" max="270"/> <look type="DDDDD" head="90" body="100" legs="95" feet="113" corpse="EEEEE"/> <targetchange interval="2000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="1"/> <flag pushable="1"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="97"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" chance="100" range="1" min="-50" max="-100"/> <attack name="Aqua Tail" interval="2805" chance="29" range="1"/> <attack name="Headbutt" interval="2705" chance="29" range="1"/> <attack name="Dragon Breath" interval="3040" chance="28" range="6"/> <attack name="Hyper Beam" interval="2899" chance="29" range="5"/> <attack name="Thunder Wave" interval="2993" chance="28" range="6"/> <attack name="Twister" interval="2852" chance="29" range="3"/> <attack name="Wing Attack" interval="3040" chance="28" range="6"/> <attack name="Thunder Punch" interval="2752" chance="29" range="1"/> <attack name="Fire Punch" interval="2952" chance="29" range="1"/> <attack name="Dragon Claw" interval="2900" chance="29" range="1"/> </attacks> <defenses armor="0" defense="0"> </defenses> <voices interval="5000" chance="10"> <voice sentence="FFFFF!"/> </voices> <loot> <item id="11449" chance="150" count="1" countmax="1"/> <item id="12159" chance="3000" count="1" countmax="1"/> <item id="13794" chance="10000" countmax="80"/> --snowball <item id="12275" chance="3000" count="1" countmax="1"/> <item id="12244" chance="70" count="1" countmax="1"/> <item id="12338" chance="10" count="1"/> --bag box --bag box </loot> <script> <event name="Spawn"/> </script> </monster> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID da outfit do pokemon
Em "CCCCC" coloque o a raça do pokemon
Em "DDDDD" coloque o ID da outfit do pokemon obs: no meu caso e 2241
Em "EEEEE" coloque o ID corpse obs: no meu caso e 20758
Em "FFFFF" coloque a fala do pokemon
Lista de raças:
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost Attacks Lembrando esses são os ataques que os pokemons selvagens soltara! E possível ver os attacks em data/spells/scripts/ps name = "Nome do attack" interval = "Intervalo para usar o attack" chance = Chance do attack ser acertado" obs: sempre deixe o melee 100 range = "Distancia mínima necessária para usar o attack"
Loot
item id = "ID do item que será dropado"
chance = "Chance do item ser dropado"
count = "Mínimo de itens a ser dropado"
countmax = "Máximo de itens a ser dropado"
salve e feche
20- Agora vá em Data/Monster e abra monster.xml
Adicione esta tag
1 - caso esteja em uma pasta
<monster name="AAAAA" file="pokes/BBBBB/CCCCC.xml"/> 2 - caso apenas esteja na pasta pokes
<monster name="AAAAA" file="pokes/CCCCC.xml"/> Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o nome da pasta onde ele esta
Em "CCCCC" coloque o nome da .xml que você criou
salve e feche
21- Agora vá em Data/Lib e abra configuration.lua
1ª
desça um pouco e se ver algo deste género
Vá ate o ultimo e cole este código.
["AAAAA"] = {move1 = {name = "Aqua Tail", level = 10, cd = 12, dist = 1, target = 1, f = 50, t = "water"}, move2 = {name = "Thunder Wave", level = 12, cd = 16, dist = 1, target = 0, f = 70, t = "electric"}, move3 = {name = "Thunder Punch", level = 16, cd = 16, dist = 1, target = 1, f = 65, t = "electric"}, move4 = {name = "Fire Punch", level = 15, cd = 20, dist = 1, target = 1, f = 75, t = "electric"}, move5 = {name = "Dragon Claw", level = 22, cd = 16, dist = 1, target = 1, f = 60, t = "dragon"}, move6 = {name = "Dragon Breath", level = 40, cd = 20, dist = 1, target = 0, f = 80, t = "dragon"}, move7 = {name = "Twister", level = 46, cd = 24, dist = 1, target = 0, f = 80, t = "dragon"}, move8 = {name = "Wing Attack", level = 70, cd = 28, dist = 1, target = 0, f = 75, t = "flying"}, move9 = {name = "Hyper Beam", level = 70, cd = 24, dist = 1, target = 0, f = 190, t = "normal"}, move10 = {name = "Draco Meteor", level = 110, cd = 60, dist = 1, target = 0, f = 150, t = "dragon"}, }, Em "AAAAA" coloque o nome do pokemon
Moves
name = "Nome do attack"
level = "Level mínimo para usar o attack"
cd = "tempo para o attack recarregar"
dist = "distancia mínima para usar o attack"
target = "1 significa que precisa se alvo / 0 que não e necessário"
f = "força do attack"
t = "tipo do attack"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
2ª
Desça mais um pouco encontrara o fly
caso seu pokemon tenha pegue o id da outfit do fly e subtraia 351 EX: 2242-351=1891
Vá ate o ultimo e cole este código.
["AAAAA"] = {BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do fly subtraído por 351 EX: 2242-351=1891
Em "CCCCC" coloque a velocidade que dará
obs: Surf e ride mesma coisa
3ª
Desça mais um pouco encontrara o pokeballs
Vá ate o ultimo e cole este código.
["AAAAA"] = {effect = 188, on = BBBBB, use = CCCCC, off = DDDDD, all = {BBBBB, CCCCC, DDDDD}}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon use
Em "DDDDD" coloque o ID do icon off
4ª
Desça mais um pouco encontrara o icons
Vá ate o ultimo e cole este código.
["AAAAA"] = { on = BBBBB, off = CCCCC, use = DDDDD }, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do icon on
Em "CCCCC" coloque o ID do icon off
Em "DDDDD" coloque o ID do icon use
5ª
Desça mais um pouco encontrara o effectiveness mais não mecha nele
Desça mais um pouco encontrara o pokes
Vá ate o ultimo e cole este código.
["AAAAA"] = {offense = 4.5, defense = 10, specialattack = 12.2, vitality = 11.8, agility = 350, exp = 800, level = 80, wildLvl = 150, type = "ice", type2 = "ghost"}, Em "AAAAA" coloque o nome do pokemon
offense = "offense que ganha por level"
defense = "defense por level"
specialattack = "special attack que ganha por level"
vitality = "vida que o poke ganha pra cada vitality que tem"
agility = "velocidade base dos pokes"
exp = "experiência que dá a cada level que tem (somada a exp base, no xml do poke)"
level = "level min pra usar o poke / offense base"
wildlevel = "level que o pokemon selvagem será"
type = "tipo do pokemon"
type2 = "segundo tipo do pokemon" obs caso não tenha coloque no type"
Lista de tipos
fighting, normal, water, ground, rock, dark, psychic, flying, electric, poison, fire, ice, grass, dragon, bug, steel, ghost
6ª
Desça mais um pouco encontrara o fotos
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o ID do portrait
7ª
Desça mais um pouco encontrara o pokecatches
Vá ate o ultimo e cole este código.
["AAAAA"] = {chance = BBBBB, corpse = CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de capturar o pokemon obs quanto maior o numero mais difícil fica
Em "CCCCC" coloque o ID corpse
8ª
Desça mais um pouco encontrara o newpokedex
Vá ate o ultimo e cole este código.
["AAAAA"] = {gender = 500, level = 80, storage = 100, stoCatch = BBBBB}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque 1 e um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457
gender = "género género do pokemon 500 = 50% de ser m ou f, 75 = 75% de ser f 25 = 25% de ser f, -1 = sem sexo " obs se o server não tiver gender system não faz diferença
level = "level min pra usar o poke " obs apenas afetará o pokedex
storage = "Não mexa!"
stoCatch = "coloque um numero depois do pokemon anterior Ex o anterior é 666456 então coloque 666457"
9ª
Desça mais um pouco encontrara o oldpokedex
Vá ate o ultimo e cole este código.
{"AAAAA", BBBBB, CCCCC}, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o level min pra usar o poke
Em "CCCCC" coloque o coloque um numero depois do pokemon anterior Ex o anterior é 1290 então coloque 1291
10ª
Desça mais um pouco encontrara o poevo
Caso o pokemon que será adicionado tenha uma anti evolução
Vá ate o ultimo e cole este código.
["AAAAA"] = {level = 150, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
11ª
Desça mais um pouco encontrara o spcevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
Vá ate o ultimo e cole este código.
["AAAAA"] = {[1] = {level = 65, evolution = "BBBBB", count = 1, stoneid = CCCCC, stoneid2 = DDDDD}, [2] = {level = 65, evolution = "EEEEE", count = 1, stoneid = FFFFF, stoneid2 = GGGGG}}, Em "AAAAA" coloque o nome da anti evolução pokemon
Em "BBBBB" coloque o nome da 1ª evolução do pokemon
Em "CCCCC" coloque o ID da stone que ira evoluir o 1º pokemon
Em "DDDDD" coloque o ID do segundo tipo stone que ira evoluir o 1º pokemon obs opcional deixe 0 se não tiver stone
Em "EEEEE" coloque o nome da 2ª evolução do pokemon
Em "FFFFF" coloque o ID da stone que ira evoluir o 2º pokemon
Em "GGGGG" coloque o ID do segundo tipo stone que ira evoluir o 2º pokemon obs opcional deixe 0 se não tiver stone
Para saber o ID das stones desça um pouco o configuration.lua que terá uma lista
level = "level mínimo para evoluir o pokemon"
evolution = "nome do pokemon evoluído"
count = "quantidade de stones necessárias"
stoneid = "ID da stone que ira evoluir o pokemon"
stoneid2 = "ID do segundo tipo stone que ira evoluir o pokemon" obs opcional
12ª
Desça mais um pouco encontrara o gobackmsgs mais não mecha nele
Desça mais um pouco encontrara o specialevo
Caso o pokemon que será adicionado tenha uma evolução especial Ex gloom ele pode evoluir para vileplume ou bellossom
specialevo = {"Poliwhirl", "Gloom", "Tyrogue", "Eevee", "AAAAA"} Em "AAAAA" coloque o nome da anti evolução pokemon
13ª
Desça mais um pouco encontrara o specialabilities
Caso queira colocar alguma habilidade no pokemon coloque
Em "AAAAA" coloque o nome da anti evolução pokemon
Coloque nas habilidades desejadas
14ª
Desça mais um pouco encontrara o auraSyst mais não mecha nele
Desça mais um pouco encontrara o hitmonchans mais não mecha nele
Desça mais um pouco encontrara o headbutt mais não mecha nele
Desça mais um pouco encontrara o lookClans mais não mecha nele
Desça mais um pouco encontrara o youAre mais não mecha nele
Desça mais um pouco encontrara o passivesChances
Caso queira colocar alguma especial no pokemon coloque
Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque a chance de sair a passiva
15ª
Desça mais um pouco encontrara o pokesPrice
Vá ate o ultimo e cole este código.
["AAAAA"] = BBBBB, Em "AAAAA" coloque o nome do pokemon
Em "BBBBB" coloque o preço que o pokemon será vendido no npc
salve e feche
22- Agora vá em Data/Movements/ e abra o movements.xml
1º
Logo no começo voçe vera o Icone System
Em <movevent type="Equip" itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
2º
Em <movevent type="DeEquip
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
23- Agora vá em Data/Actions/ e abra o actions.xml
Procure por Icone System
Em <action itemid=
Va ate o final da lista coloque o id o ícone on-id do ícone off; Ex 20740-20742;
Ficara assim
24- Caso tenha adicionado evolução vá em Data/Actions/Scripts e abra o evolution.lua
Em local types =
Vá ate o final da lista da stone que evolui o pokemon coloque o nome da anti evolução Ex , "Spearow" obs caso for 2 stones diferentes adicione nas 2
Ficara assim
25- Seja feliz
Obrigado pela atenção qualquer duvida comente
Caso ajudei REP+
Creditos: 100% Ckfox
-
Makhai Drakon deu reputação a Dwarfer em Job SystemACABOU A MOLEZA! Você que sempre fez os NPC's trabalharem dia e noite, disponíveis a qualquer momento mesmo que seja apenas para receber um "hi, buy rope, yes". A COISA MUDOU! Agora você vai ter que ralar. E olhe que os monstros estão com muito gold para gastar devido às mortes de aventureiros, despreparados de AOL ou de bençãos, que acabam por deixar dinheiro nas suas backpacks. VÁ TRABALHAR, SEU VAGAB..!
Depois dessa ladainha toda, estava eu testando algumas funções, umas coisitas aqui e ali e ao misturar tudo saiu isso aí meio que sem querer. Tem uns pontos que podem ser melhorados, mas como disse serviu apenas como uns testes para mim, mas resolvi compartilhar, mesmo sendo simplesinho. Acho que será útil para servidor com um pouquinho de RPG. Testado em TFS 0.4 e versão 8.60.
O Job System é um sistema no qual o player atenderá pedidos dos monstros. Cada pedido correto, o player ganha 1 job point que pode ser utilizado para comprar itens no npc ou como você queira fazer, em quests, acessos, seja lá o que for. O funcionamento é demonstrado no vídeo abaixo:
Segue o código do sistema (MOD) e do NPC.
jobsystem.xml
CONFIGURAÇÃO:
Desde que configure corretamente o mapa, não tem praticamente nada para modificar.
monsters = { [1] = {"Amazon", "Dwarf", "Elf Scout"}, [2] = {"Barbarian Bloodwalker", "Dwarf Guard", "Warlock"}, [3] = {"Vampire Bride", "Dwarf Geomancer", "Infernalist"} }
times = { deal = 30, lever = 2 } Aqui deal é o tempo em segundos entre cada pedido. Lever é o tempo em minutos para poder usar a alavanca novamente. Aconselho deixá-los nesses valores, já testei e funcionou certinho assim.
A configuração ocorre praticamente no mapa:
1 - Crie uma "loja" do mesmo tamanho e com a mesma configuração que as mostradas no vídeo e na imagem abaixo. Apenas com a posição do meio livre.
Não importa a "orientação" da loja. A única exigência é que a alavanca sempre esteja do lado do braço direito do char, conforme a imagem.
MUITO IMPORTANTE: NÃO USE ITENS STACKABLES NA LOJA
2. Definindo o rank da loja:
ALAVANCA DE ACTION ID:
4421 - Rank Apprentice
4422 - Rank Merchant
4423 - Rank Rashid
3. Todos os itens que não devem ser arrastados (itens da loja ou de decoração que não devam ser arrastados como o royal axe que mostrei lá no vídeo) devem receber o actionid 4420.
4. Os pisos onde os monstros serão criados devem ter actionid 4420. Além disso, ser área no-pvp e no logout (apenas por precaução).
5. Toda a área restante deve ser Protection Zone (PZ). Além disso, os locais do centro da loja onde os players ficarão devem ser No Logout Area.
Dwarfer.xml
job.lua
Configuração do NPC:
promote = {tomerchant = 50, torashid = 100}, tomerchant = 50 -> São necessários 50 pontos no rank Apprentice para avançar
torashid = 100 -> São necessários 100 pontos no rank Merchant para avançar
entice_rank = {-- Apprentice [2154] = {price = 1}, [2158] = {price = 3}, [2155] = {price = 7}, [2156] = {price = 100} }, merchant_rank = { -- Merchant [1998] = {price = 15}, [5950] = {price = 25}, [1987] = {price = 70}, [2402] = {price = 100} }, rashid_rank = { -- Rashid [9993] = {price = 15}, [9992] = {price = 25}, [9992] = {price = 70}, [7399] = {price = 100}} }
[id_do_item] = {price = preço do item} que aparecerá na lista do NPC.
É isso aí, seus vagal's
-
Makhai Drakon deu reputação a Pepeco em Mining system• Mining System •
Vim aqui disponibilizar o mining, não é tão avançado como o de outros mas ele é totalmente automático tanto para colocar items quanto para vender os items (alavanca). É uma script simples e fácil de entender, podendo ter alterações com pessoas que não tem muito experiencia em lua. Mesmo que ele seja simples, o forum esta morrendo, pretendo fazer updates nele, caso alguém tenha alguma ideia do que possa fazer, só deixar um comentário.
• Explicação •
› Mining_Config
config = { Level = 8, Axe_Skill = 10, Paredes = {5646,5640,5645,5639,5644,5648}, } -- Level = Level necessario para minerar -- Axe_Skill = Skill de axe necessaria para poder minerar -- Paredes = Paredes que vao ser mineradas › Mining_Items
config = { [1] = {Item = 2157, Random_min = 1, Random2_min = nil, Random_max = 3, Random2_max = nil, Count = 2, Special_Storage = nil, Magic_Effect = nil, Count_Shop = nil, Money_Shop = nil}, -- Gold Nugget } -- Random_min = A chance de cair o item em math.random -- Random2_min = Essa chance é menor, ou seja, mais dificil de cair. -- Random_max = É a chance maxima -- Random2_max = A mesma coisa que o de cima -- Count = A quantidade maxima que pode cair, é aleatorio -- Special_Storage = Caso voce queira que de alguma storage, para ver quantos players ja conseguiram e etc.. -- Magic_Effect = Caso queira que de algum magic effect diferente, se for nil, será o padrao. -- Count_Shop = Quantidade necessaria para poder vender o item no shop (alavanca) -- Money_Shop = Quanto que o item vai custar, por unidade ou seja, se eu colocar Count_Shop = 100 e Money_Shop = 2000, vai ser 100 * 2000. -- No final que tem esse "--" é o nome do item, é melhor se organizar assim, pois se ficar muitos items e voce querer fazer alguma manutenção, facilita muito.
Bom, eu acho que é isso, não tem mais nada para se explicar. Então vamos para o script.
Data/lib
Data/actions/scripts
Data/actions -- Abra o actions.xml
<action itemid="id do item" script="nome do arquivo"/>
Data/actions/scripts -- Esse aqui é o shop, não é obrigatório.
Data/actions -- Abra o actions.xml
<action actionid="id da action" script="nome do arquivo"/>
Caso tenha gostado, deixe seu REP+, ajuda e motiva muito trazer conteúdo para o forum.
-
Makhai Drakon recebeu reputação de thelifeofpbion em [PROJETO] Rust Tibia--Por favor me digam se me apoião ou não! Isso e muito importante para mim !--
Mapa do tópico
Resumo
Inovações
Introdução
Vagas
Objetivos
Imagens
Spoilers
Atualizações
Conclusão
--Resumo--
Os players começarão com um livro de receitas básico que você fará apenas os itens necessários!
Dentro do livro terá algumas receitas que se você possuir os materiais necessários para produzir a receita desejada você apenas precisa utiliza-la para criar o item!
Com o tempo você vai evoluindo seu livro assim desbloqueando novas receitas.
Cinza = Comum (Inicial)
Azul = Incomum (Comprado)
Amarelo = Raro (Vocation)
Vermelho = Épico (Quest)
Roxo = Lendário (???)
OBS: Cada livro tem no mínimo 1 receita única!
Estamos utilizando a versão 8.6 pois temos maior liberdade de modificações!
O cliente será próprio pois terá diversos itens novos
--Inovações--
Teremos diversos sistemas inovadores, mas que deixarei para descobrirem por si mesmos.
Mas abaixo vou divulgando alguns para que desperte seus interesses em nosso servidor!
House system
O house system em nosso server terá um grande diferencial pois terá "terrenos" em diversas locais sorteados no meio do mapa pode ate mesmo ter um no meio de uma hunt e você mesmo construirá sua casa no espaço já delimitado!
--Introdução--
Esta cansado desses serves padrões de poketibia, narutibia, dbo ou tibia ?
Hoje venho trazer uma grande oportunidade/inovação para o mundo tibia !
Então hoje venho pedir uma ajuda da comunidade do tk !
Consigo fazer sprites e sistemas muito bons mas quero que a qualidade das sprites seja muito boas!
Desenhar não e meu ponto forte, nem mesmo mapping, mas consigo me virar com o vago conhecimento que tenho nessa área!
Por isto estou aqui pedindo a colaboração de vocês, para que nosso server seja o melhor possível!
Que tal trazermos um mundo de sobrevivência ao tibia ?
--Vagas--
Spriter -- Toda ajuda e bem vinda!
Scripter -- Toda ajuda e bem vinda!
WebDisigner -- Não sei se irei fazer site ainda!
Mapper -- Toda ajuda e bem vinda!
Programador -- Toda ajuda e bem vinda!
Me viro em todas mas uma ajuda sempre e bem vinda!
--Objetivos--
1
Meu primeiro objetivo e fazer com que as pessoas saiam do automático e testem novas fronteiras no mundo tibia.
2
Criar sistemas com a melhor qualidade possível.
3
Trazer a felicidade as pessoas
--Imagens--
OBS: tera muito mais ilhas! estas 3 são apenas uma demonstração do que ja foi feito o mesmo para os itens!!!
To meio sem tempo agora mas quando possível disponibilizo mais imagens!
--Spoilers--
--Atualizações--
1.0
1.1
Para próxima atualização pretendo já ter feito a sprite e o script de todas receitas !
--Conclusão--
Então galera essa e minha ideia caso queiram ajudar ou dar sugestões e só comentar ai !
OBS: Não pretendo parar jamais com este projeto!
Site provisório: http://rusttibia.webnode.com
-
Makhai Drakon recebeu reputação de Pepeco em [PROJETO] Rust Tibia--Por favor me digam se me apoião ou não! Isso e muito importante para mim !--
Mapa do tópico
Resumo
Inovações
Introdução
Vagas
Objetivos
Imagens
Spoilers
Atualizações
Conclusão
--Resumo--
Os players começarão com um livro de receitas básico que você fará apenas os itens necessários!
Dentro do livro terá algumas receitas que se você possuir os materiais necessários para produzir a receita desejada você apenas precisa utiliza-la para criar o item!
Com o tempo você vai evoluindo seu livro assim desbloqueando novas receitas.
Cinza = Comum (Inicial)
Azul = Incomum (Comprado)
Amarelo = Raro (Vocation)
Vermelho = Épico (Quest)
Roxo = Lendário (???)
OBS: Cada livro tem no mínimo 1 receita única!
Estamos utilizando a versão 8.6 pois temos maior liberdade de modificações!
O cliente será próprio pois terá diversos itens novos
--Inovações--
Teremos diversos sistemas inovadores, mas que deixarei para descobrirem por si mesmos.
Mas abaixo vou divulgando alguns para que desperte seus interesses em nosso servidor!
House system
O house system em nosso server terá um grande diferencial pois terá "terrenos" em diversas locais sorteados no meio do mapa pode ate mesmo ter um no meio de uma hunt e você mesmo construirá sua casa no espaço já delimitado!
--Introdução--
Esta cansado desses serves padrões de poketibia, narutibia, dbo ou tibia ?
Hoje venho trazer uma grande oportunidade/inovação para o mundo tibia !
Então hoje venho pedir uma ajuda da comunidade do tk !
Consigo fazer sprites e sistemas muito bons mas quero que a qualidade das sprites seja muito boas!
Desenhar não e meu ponto forte, nem mesmo mapping, mas consigo me virar com o vago conhecimento que tenho nessa área!
Por isto estou aqui pedindo a colaboração de vocês, para que nosso server seja o melhor possível!
Que tal trazermos um mundo de sobrevivência ao tibia ?
--Vagas--
Spriter -- Toda ajuda e bem vinda!
Scripter -- Toda ajuda e bem vinda!
WebDisigner -- Não sei se irei fazer site ainda!
Mapper -- Toda ajuda e bem vinda!
Programador -- Toda ajuda e bem vinda!
Me viro em todas mas uma ajuda sempre e bem vinda!
--Objetivos--
1
Meu primeiro objetivo e fazer com que as pessoas saiam do automático e testem novas fronteiras no mundo tibia.
2
Criar sistemas com a melhor qualidade possível.
3
Trazer a felicidade as pessoas
--Imagens--
OBS: tera muito mais ilhas! estas 3 são apenas uma demonstração do que ja foi feito o mesmo para os itens!!!
To meio sem tempo agora mas quando possível disponibilizo mais imagens!
--Spoilers--
--Atualizações--
1.0
1.1
Para próxima atualização pretendo já ter feito a sprite e o script de todas receitas !
--Conclusão--
Então galera essa e minha ideia caso queiram ajudar ou dar sugestões e só comentar ai !
OBS: Não pretendo parar jamais com este projeto!
Site provisório: http://rusttibia.webnode.com